SPI具有以下特点:
-
全双工/半双工同步串行通信
-
一主多从
-
通过片选信号选择通信设备
-
可编程的时钟极性和时钟相位
1 信号描述
| 信号 | 描述 |
| MOSI | Master Output Slave Input,主机输出、从机输入引脚,用于数据传输。 |
| MISO | Master Input Slave Output,主机输入、从机输出引脚,用于数据传输。 |
| SS | Slave Select,选择信号,用以协调主从设备的通信。 |
| SCK | 时钟信号,用以同步数据的发送或接收。 |

(图)spi信号连接
2 不同时钟极性CPOL和时钟相位CPHA下的数据传输
CPOL为0时,SCK在空闲时为低电平;CPOL为1时,SCK在空闲时为高电平。
CPHA = 0 传输格式
定义SCK信号的第1个边沿,对应的MISO的电平为从机输出到主机的第1个有效数据,对应的MOSI的电平为主机输出到从机的第1个有效数据。
-
发出片选信号,切换需要传输数据信号
-
发出片选信号后,至少维持(tL),开始生成时钟信号
-
在第1个时钟边沿采样数据
-
在第2个时钟边沿切换数据
-
在第3个时钟边沿采样数据
-
...
-
完成数据传输后,最后1个时钟周期的第2个边沿需要维持(tT),才能取消片选
-
如需发起下一次数据传输,需要在上一次传出结束后至少间隔(tI)
(具体时间参数请参考指定通信设备的数据手册)

(图)CPHA = 0
CPHA = 1 传输格式
定义SCK信号的第2个边沿,对应的MISO的电平为从机输出到主机的第1个有效数据,对应的MOSI的电平为主机输出到从机的第1个有效数据。
-
发出片选信号
-
发出片选信号后,至少维持(tL),开始生成时钟信号
-
在第1个时钟边沿切换数据
-
在第2个时钟边沿采样数据
-
在第3个时钟边沿切换数据
-
在第4个时钟边沿采样数据
-
...
-
完成数据传输后,最后1个时钟周期的第2个边沿需要维持(tT),才能取消片选
-
如需发起下一次数据传输,需要在上一次传出结束后至少间隔(tI)
(具体时间参数请参考指定通信设备的数据手册)

(图)CPHA = 1
3 功能延伸
自动控制SS信号
SPI工作在主模式下,可选择自动控制SS信号。在数据传输时,自动片选外部设备。在数据传输完成后,自动取消外部设备片选。
三线SPI
在常规的四线模式下,SPI通过MOSI和MISO完成数据的双向传输(全双工)。SPI也可以工作在半双工模式下,这时只需要一根信号线就可以完成数据的输入输出。
-
在主机模式下,MOSI作为数据的I/O信号线(MOMI,Master Output, Master Input)
-
在从机模式下,MISO作为数据的I/O信号线(SISO,Slave Iuput Slave Output)

(图)三线SPI和四线SPI
通过SPI控制器控制数据的输入和输出。在数据输出时,由SCK信号线生成时钟信号。在信号输入时,SCK则接收时钟信号,用以同步数据输入。
5 结束语
至此,SPI总线已介绍完毕,希望本文可以帮助到大家!
欢迎大家通过后台与我交流学习心得,水平有限,如有错漏的地方请不吝指出,谢谢!
SPI是一种常见的同步串行接口,支持全双工和半双工通信,通过片选信号选择主从设备。CPOL和CPHA参数定义了时钟极性和相位,影响数据采样时刻。SPI还能实现自动控制SS信号和三线模式,提高通信效率。
https://mp.weixin.qq.com/s?__biz=Mzg3NDkwMjc2NA==&mid=2247483727&idx=1&sn=b2aaabd36e9ede4b2d3197edcf0a27d8&chksm=cec8e4ccf9bf6ddaedb8db4030bbe564df964cc2f4a5f47e4c45fcf4a5abd87e63906d5603de#rd
3545

被折叠的 条评论
为什么被折叠?



