SPI协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外设接口。广泛用在ADC、LCD等设备与MCU间,要求通讯速率较高的场合。区分它与I2C协议差异以及FLASH存储器与EEPROM存储器的区别。下面我们分别对SPI协议的物理层及协议层进行讲解。
物理层
SS低电平工作(工作启动线)
SCK时钟线(公用时钟线)
MISO:master input slave output(数据传输线1)
MOSI:master output slave input(数据传输线2)
协议层
SPI协议定义了通讯的起始和停止信号、数据有效性、时钟同步等环节。
标号1处,NSS信号线由高变低,是SPI通讯的起始信号。从机开始工作。
标号6处,NSS信号由低变高,是SPI通讯的停止信号,表示本次通讯结束,从机的选中状态被取消。
CPOL/CPHA时钟作用模式
CPOL是限定SCK的工作模式,CPOL=0上升沿采样;CPOL=1下降沿采样。
CPHA也是限定SCK工作模式,CPHA=0奇数边沿采样,CPHA=1偶数边沿采样。
模式0和3比较常用。
23.2.1 SPI特征
-
3线全双工同步传输
-
带或不带第三根双向数据线的双线单工同步传输
-
8或16位传输帧格式选择
-
主或从操作
-
支持多主模式
-
8个主模式波特率预分频系数(最大为fPcux/2)从模式频率(最大为fPcLx/2)
-
主模式和从模式的快速通信
-
主模式和从模式下均可以由软件或硬件进行NSS管理:主/从操作模式的动态改变可编程的时钟极性和相位
-
可编程的数据顺序,MSB在前或LSB在前可触发中断的专用发送和接收标志
-
SPI总线忙状态标志
-
支持可靠通信的硬件CRC
-
一在发送模式下,CRC值可以被作为最后一个字节发送
-
一在全双工模式中对接收到的最后一个字节自动进行CRC校验可触发中断的主模式故障、过载以及CRC错误标志
支持DMA功能的1字节发送和接收缓冲器:产生发送和接受请求