SPI 协议详解
引言
因为 UART 没有时钟信号,无法控制何时发送数据,也无法保证双发按照完全相同的速度接
收数据。因此,双方以不同的速度进行数据接收和发送,就会出现问题。
如果要解决这个问题,UART 为每个字节添加额外的起始位和停止位,以帮助接收器在数据
到达时进行同步;
双方还必须事先就传输速度达成共识(设置相同的波特率,例如每秒 9600 位)。
传输速率如果有微小差异不是问题,因为接收器会在每个字节的开头重新同步。相应的协议
如下图所示;
如果您注意到上图中的 11001010 不等于 0x53,这是一个细节。串口协议通常会首先发送最
低有效位,因此最小位在最左边 LSB。低四位字节实际上是 0011 = 0x3,高四位字节是 0101
= 0x5。
异步串行工作得很好,但是在每个字节发送的时候都需要额外的起始位和停止位以及在发送
和接收数据所需的复杂硬件方面都有很多开销。
不难发现,如果接收端和发送端设置的速度都不一致,那么接收到的数据将是垃圾(乱
码)。
下面开始讲一下 SPI 协议,会有哪些优点。
SPI 通讯协议
于是我们想有没有更好一点的串行通讯方式;相比较于 UART,SPI 的工作方式略有不同。
评论0
最新资源