一、SPI特征
·3线全双工同步传输
·带或不带第三根双向数据线的双线单工同步传输
·8或16位传输帧格式选择
·主或从操作
·支持多主模式
·8个主模式波特率预分频系数(最大为fPCLK/2)
·从模式频率(最大为fPCLK/2)
·主模式和从模式下均可以由软件或硬件进行NSS管理;主/从操作模式的动态改变
·可编程的时钟极性和相位
·可编程的数据顺序,MSB在前或LSB在前
·可触发中断的专用发送和接收标志
·可触发中断的主模式故障、过载以及CRC错误标志
·支持DMA功能的1字节发送和接收缓冲器:产生发送和接受请求
SPI框图
1.这里NSS引脚设置为输入
MOSI脚相互连接,MISO脚相互连接。这样数据在主和从之前串行地传输(MSB位在前)。通信总是由主设备发起。主设备通过MOSI脚把数据发生给从设备,从设备通过MISO引脚回传数据。这意味着全双工通信的数据输出和数据输入是用同一个时钟信号同步的;时钟信号由主设备通过SCK脚提供。
整体的传输大概可以分为以下几个过程:
1、主机先将NSS信号拉低,这样可以保证开始接受数据;
2、当接收端检测到时钟的边沿信号时,他立即读取数据线上的信号,这样就得到了一位数据(1bit);
3、主机发送到从机时:主机产生相应的时钟信号,然后数据一位一位地从MOSI信号线上进行发送到从机;
3、主机接受从机数据:如果从机需要将数据发送回主机,则主机将继续生存预定数量的时钟信号,并且从机将会数据通过MISO信号线发送。
注释:右边到左边是字节高位到地位
二、SPI通讯的优缺点
1、优势
全双工串行通信;
高速数据传输速率
简单的软件配置
极其灵活的数据传输,不限于8位,他可以是任意大小的字;
非常简单的硬件结构。从站不需要唯一地址(与I2C不同)。从机使用主机时钟,不需要精密时钟振荡器/晶振(与UART不同)。不需要收发器(与CAN不同)。
2、缺点
没有硬件的从机应答信号(主机可能在不知情的情况下五处发送)
通常仅支持一个主设备
需要更多的引脚(与I2C不同)
没有定义硬件级别的错误检查协议
与RS-232和CAN总线相比,只能支持非常短的距离。