您的位置:首页 > 其它

SPI通信协议

2015-09-07 09:17 148 查看
SPI

(1)SPI概述

SPI是Serial Peripheral Interface 的缩写,翻译过来是“串行设备通信接口”。SPI是Freescale(原Motorola)公司首先在其MC68HCXX系列处理器上定义使用的。

SPI是一种高速、主从式、全双工。同步传输(UART异步传输)的通信协议,并且只有4根线,分别是

CS(chip select)线。

SCLK(Serial Clock)串行时钟线。

MOSI(Master Output Slaver Input)指设备扮演主机时作为数据输出线,而设备扮演从机时作为数据输入线。

MISO(Master Input Slaver Output)指设备扮演主机时作为数据输入线,而设备扮演从机时作为数据输出线。

2个SPI设备将4根传输线,对接就可以完成SPI接口的物理连接。

(2)SPI原理

CS线用来控制片选信号,当一个SPI设备才CS线识别到了预先规定的片选信号,(高电平或者是低电平)则表示该设备被选中,接下来的操作对其有效,显然,使用CS线的话就可以完成“一主多从”的SPI网络假设,同时读者要注意在“一主一从”的SPI通信时,CS线并不是必须的。

SPI总线在传输数据的时候,由主机提供时钟脉冲(这个和MODBUS,IIC都是一样),从机的SCLK时钟线被动的接收脉冲,每个脉冲周期传输1位数据。

(3)SPI时序

用户可以配置SPI主设备在空闲状态下的SCLK电平状态,这称为时钟极性(用CPOL表示)。

同理用户还可以配置 在数据线上准备就绪的数据在SCLK一个脉冲周期中的哪一个边缘被读取,这个称为时钟相位。

(用CPHA表示),这里要解释一下,因为一个脉冲周期里就有两个边沿(上升或下降),第一个边沿的话时钟相位为0,第二个时钟边沿时钟相位为1,时钟极性也是只有两个高电平或低电平(1或者0),所以由分步计数原理(2*2=4)时钟极性和时钟相位就可以组合成4种时序。时序简图如下所示:



(4)优点:

数据输出通过MOSI和MISO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。完成一位数据传输,输入也使用同样原理。这样,在至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据的传输。要注意的是,SCK信号线只由主设备控制,从设备不能控制信号线。同样,在一个基于SPI的设备中,至少有一个主控设备。这样传输的特点:这样的传输方式有一个优点,与普通的串行通讯不同,普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送,甚至允许暂停,因为SCK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。也就是说,主设备通过对SCK时钟线的控制可以完成对通讯的控制。

(5)缺点

最后,SPI接口的一个缺点:没有指定的流控制,没有应答机制确认是否接收到数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  SPI