SPI 总线协议及 SPI 时序图详解
SPI,是英语 Serial Peripheral Interface 的缩写,顾名思义就是串行外围设备接口。
SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约
了芯片 的管脚,同时为 PCB 的布局上节省空间,提供方便,正是出于这种简单易用的特
性,现在越来越多的芯片集成了这种通信协议。
SPI 是一个环形总线结构,由 ss(cs)、sck、sdi、sdo 构成,其时序其实很简单,主要是
在 sck 的控制下,两个双向移位寄存器进行数据交换。
上升沿发送、下降沿接收、高位先发送。
上升沿到来的时候,sdo 上的电平将被发送到从设备的寄存器中。
下降沿到来的时候,sdi 上的电平将被接收到主设备的寄存器中。
假设主机和从机初始化就绪:并且主机的 sbu=0xaa (10101010),从机的
sbu=0x55 (01010101),下面将分步对 spi 的 8 个时钟周期的数据情况演示一遍(假设
上升沿发送数据)。
---------------------------------------------------
脉冲 主机 sbu""" 从机 sbu"""" sdi""" sdo
---------------------------------------------------
0""" 00-0""" 10101010"""" 01010101""""" 0""""" 0
---------------------------------------------------
1""" 0--1"""" 0101010x"""" 10101011""""" 0""""" 1
1""" 1--0"""" 01010100"""" 10101011""""" 0""""" 1
---------------------------------------------------
2""" 0--1"""" 1010100x"""" 01010110""""" 1""""" 0
2""" 1--0"""" 10101001"""" 01010110""""" 1""""" 0
---------------------------------------------------
3""" 0--1"""" 0101001x"""" 10101101""""" 0""""" 1
3""" 1--0"""" 01010010"""" 10101101""""" 0""""" 1
---------------------------------------------------
4""" 0--1"""" 1010010x"""" 01011010""""" 1""""" 0
4""" 1--0"""" 10100101"""" 01011010""""" 1""""" 0
---------------------------------------------------
5""" 0--1"""" 0100101x"""" 10110101""""" 0""""" 1
5""" 1--0"""" 01001010"""" 10110101""""" 0""""" 1
---------------------------------------------------
6""" 0--1"""" 1001010x"""" 01101010""""" 1""""" 0
6""" 1--0"""" 10010101"""" 01101010""""" 1""""" 0
---------------------------------------------------
7""" 0--1"""" 0010101x"""" 11010101""""" 0""""" 1
7""" 1--0"""" 00101010"""" 11010101""""" 0""""" 1
---------------------------------------------------
8""" 0--1"""" 0101010x"""" 10101010""""" 1""""" 0
评论9