通信协议——SPI详解
SPI协议
(一)简介
SPI(Serial Periphera Interface)是串行外设接口的缩写。
特点有:
- 一种高速的、全双工、同步的串行通信总线;
- 采用主从方式工作;
- 一般有一个主设备和一个或者多个从设备;
- 需要至少4根线:MISO, MOSI, SCLK, CS
(二)协议
1. 寻址方式
当主设备要和某个从设备进行通信时,主设备需要先向对应从设备的片选CS线上发送使能信号(高/低由从机决定),表示选中该从设备
2. 通信过程
SPI总线在进行数据传送时,先传送高位,后传送低位。
相比IIC总线,没有起始信号,也没有结束信号,也没有应答信号。
采用同步方式工作,SCLK时钟线在上升沿或下降沿时发送器向数据线上发送数据,在下一个跳变沿时接收器从数据线上读取数据,完成一位数据传送,八个时钟周期即可完成一个字节数据的传送。
设置好工作方式后,可以在每个时钟周期的下降沿发送器发送数据,在每个时钟周期的上升沿接收器接收数据
3. 极性和相位
SPI总线有四种不同工作模式,取决于时钟极性CPOL和相位CPHA两个因素。
CPOL表示SCLK空闲时的状态:
- CPOL=0,空闲时SCLK为低电平
- CPOL=1,空闲时SCLK为高电平
时钟极性相当于空闲时SCLK的电平
CPHA表示采样时刻:
- CPHA=0,每个周期的第一个时钟沿采样
- CPHA=1,每个周期的第二个时钟沿采样
4. IIC和SPI的区别
相同点:
- 均采用串行、同步方式
- 均采用TTL电平,传输距离都不长,一般用于一个板子上两个模块的通信
- 均采用主从方式工作
不同点:
IIC | SPI |
---|---|
半双工 | 全双工 |
有应答机制 | 无应答机制 |
通过向总线广播从机地址来寻址 | 通过向对应从机发送使能信号来寻址 |
时钟极性和时钟相位固定 | 时钟极性和时钟相位可调 |