SPI 协议
SPI,是英语 Serial Peripheral interface 的缩写,顾名思义就是串行
外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且
在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为 PCB 的布
局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越
多的芯片集成了这种通信协议,比如 P89LPC900.
SPI 是一个环形总线结构,由 ss(cs)、sck、sdi、sdo 构成,其时
序其实很简单,主要是在 sck 的控制下,两个双向移位寄存器进行数据
交换。
假设下面的 8 位寄存器装的是待发送的数据 10101010,上升沿
发送、下降沿接收、高位先发送。
那么第一个上升沿来的时候 数据将会是 sdo=1;寄存器=01010
10x。下降沿到来的时候,sdi 上的电平将所存到寄存器中去,那么这
时寄存器=0101010sdi,这样在 8 个时钟脉冲以后,两个寄存器的内
容互相交换一次。这样就完成里一个 spi 时序。
例子:
假设主机和从机初始化就绪:并且主机的 sbuff=0xaa,从机的 sb
uff=0x55,下面将分步对 spi 的 8 个时钟周期的数据情况演示一遍:假
设上升沿发送数据
脉冲
主机 sbuff
从机 sbuff
sdi
sdo