【全文大纲】 : https://blog.csdn.net/Engineer_LU/article/details/135149485
1 . 概要
1 . 作为嵌入式玩家,掌握SPI协议有莫大好处
2 . SPI属于全双工通信协议,
3 . 接下来从物理层,协议层,应用层,从下往上深入浅出剖析
2 . 物理层
- 无图无真相,直接上图,如图所示,结构及其简洁,双方共地情况下,四线互联,SPI通信分为主从模式,相对主机MASTER,MOSI为发送,MISO为接收,SCLK为时钟,CS为 片选,需要注意双方的电平识别“0”,“1”的阈值电压,若一方5V供电,另一方3.3V供电,此时需要加电平转换电路
3 . 协议层
- 无论任何协议,直接看通信波形分析直截了当,如图所示,数据量一共由三个部分组成,SCK,MOSI/MSIO/SSEL,其中SSEL就是上述的CS片选。
- SPI除了波形,还需要注意通信极性相位模式,一般来说分为四种模式,其中CPOL为极性,CPHA为相位。
- CPOL = 0, CPHA = 0
- CPOL = 0, CPHA = 1
- CPOL = 1, CPHA = 0
- CPOL = 1, CPHA = 1
- SPI除了支持单数据串行数据,还支持双数据并行,四数据并行模式。
4 . 应用层
- 芯片自带SPI : 当物理层,协议层都明确后,就可以把数据交给应用层,一般来说芯片外设都自带了SPI,因此,软件中配置好SPI寄存器,就可以进行收发了。
- 普通IO模拟 : 有时候芯片无额外资源时,可用此方案,对IO口无要求,IO模拟SPI时序即可进行收发。
- 应用层主要再次制定用户通信协议,一般通信的组成部分由帧头,数据长度,数据内容,校验码组成,根据此结构制定的通信协议一般比较可靠且简洁,因此行业内多数采用此结构
5 . 小结
个人风格秉承深入浅出,简洁风格描述,谢谢观看。
技术交流QQ群 : 745662457
群内专注 - 问题答疑,项目外包,技术研究