SPI总线协议
0. 概述
-
数据线:
SCL :同步时钟线,用于控制时序,可通过CPOL设置极性
MOSI :主机发送–从机接收 数据线
MISO :主机接收–从机发送 数据线
CS/NSS:片选信号线,低电平有效,但是每个从设备都想要一根CS线,占用引脚多 -
支持全双工通信
-
高速片上通信协议:
支持MHz级速率(取决于设备)波特率 = SCK 时钟频率
1. 四个参数
1. LSB/MSB: 大端小端选择
示例:(如下图)
2. 8-bit/16bit: 字长选择
3. 时钟极性(CPOL):
-
CPOL = 0:SCL空闲状态为低电平
-
CPOL = 1:SCL空闲状态为高电平
示例:(如下图)
4. 时钟相位(CPHA):
-
CPHA= 0:在时钟信号SCK的第一个跳变沿采样
-
CPHA = 1:在时钟信号SCK的第二个跳变沿采样
示例:(如下图)
2. 四种时钟模式
- tip:若发送数据在上升沿,则接收数据在下降沿,反之
模式 | CPOL | CPHA | SCL 空闲电平 | 主设备更新数据(MOSI) | 主设备采样数据(MISO) | 从设备采样数据(MOSI) | 从设备更新数据(MISO) |
---|---|---|---|---|---|---|---|
0 | 0 | 0 | 低电平 | 下降沿 | 上升沿 | 上升沿 | 下降沿 |
1 | 0 | 1 | 低电平 | 上升沿 | 下降沿 | 下降沿 | 上升沿 |
2 | 1 | 0 | 高电平 | 上升沿 | 下降沿 | 下降沿 | 上升沿 |
3 | 1 | 1 | 高电平 | 下降沿 | 上升沿 | 上升沿 | 下降沿 |
3. 多从机模式
3.1 多CS模式 :每个从机都需要一根单独的CS线
3.2 菊花链(环形)拓扑:
- 菊花链的最大缺点是因为是信号串行传输,所以一旦数据链路中的某设备发生故障的时候,它下面优先级较低的设备就不可能得到服务了;
- 另一方面,距离主机越远的从机,获得服务的优先级越低,所以需要安排好从机的优先级,并且设置总线检测器,如果某个从机超时,则对该从机进行短路,防止单个从机损坏造成整个链路崩溃的情况;
4.优缺点:
4.1 优点:
- 全双工串行通信
- 通信速率高
- 配置简单
- 硬件结构简单,从机使用主机时钟
4.2 缺点
- 通常只支持一个主机
- 需要更多的引脚
- 没有物理层的错误检测协议
- 没有硬件从机应答信号
- 通信距离短(片上通信)
5.参考链接
SPI协议详解(图文并茂+超详细) – 知乎
图片来源:B站up主 铁头山羊
来源链接:https://www.cnblogs.com/jiejielin-blogs/p/18811629
没有回复内容