1.spi通信
spi也是一种串行通信方式,主要用于模块和单片机之间的连接,和USART的区别,传输速度快,频率更高。
但是传输距离没有USART远。
SPI,是英语 Serial Peripheral Interface 的缩写,顾名思义就是串行外围设备接口。 SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为 PCB 的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。
SPI(Serial Peripheral Interface一一串行外设接口)总线是Motorola公司 推出的一种同步串行接口技术。SPI总线系统是一种同步串行外接口,允许MCU与各种外围设备以串行方式进行通信,数据交换。外围设备包括FLASHRAM、A/D转换器、网络控制器、MCU等。SPI是一种高速的,全双工,同步的通信总线
SPI 是一个环形总线结构,由 ss(cs)、 sck、 sdi、 sdo 构成,其时序其实很简单,主要是在 sck 的控制下,两个双向移位寄存器进行数据交换
ss(cs)--片选信号(选择从设备,低电平有效)
SCK--时钟线
sdi(miso)--主机输入,从机输出
sdo(mosi)--主机输出,从机输入
环形总线
--类似于我们去商店买东西过程,顾客付钱,售货员给物品
数据交换的过程:
上升沿发送、下降沿接收、高位先发送。
上升沿到来的时候, sdo 上的电平将被发送到从设备的寄存器中。
下降沿到来的时候, sdi 上的电平将被接收到主设备的寄存器中。
假设主机和从机初始化就绪:并且主机的 sbuff=0xaa (10101010),从机的 sbuff=0x55 (01 010101),下面将分步对 spi 的 8 个时钟
周期的数据情况演示一遍(假设上升沿发送数据)。
这样就完成了两个寄存器 8 位的交换,上面的 0--1 表示上升沿、 1--0 表示下降沿, sdi、 sdo 相对于主机