SPI是串行外设接口(Serial Peripheral Interface),是一种高速的、全双工、同步的串行通信总线。SPI采用的是一种主从方式工作,一般有一个主设备和一个或多个从设备。SPI至少需要4根线。
在介绍SPI之前,先介绍SPI中的几个名词:
MISO: 主设备输入、从设备输出(Master Input,Slave Output)。
MOSI: 主设备输出,从设备输入(Master Output,Slave Input)。
SCL: 时钟(两个设备之间通讯,通讯速率受限于低速的设备。由主设备产生时钟信号)。
1 SPI的布线方式
上图中,CS为片选信号,哪个从设备的片选信号有效就代表哪个从设备进行通信,但是一次只能是一个从设备进行通信。
2.通信过程
SPI总线在进行数据传送时,先传送高位,后传送低位。一个字节传送完成后不需要应答信号就可以下一个字节的传送。SPI总线采用同步方式,时钟在上升沿或者下降沿发送器向数据线上发送数据,在紧接着的下降沿或者上升沿接收器从数据上接收数据。**具体是在哪个时序下进行发送数据或者接收数据后续的极性和相位进行设置。**下图为时序图:
3.极性和相位
CPOL代表极性,设定相应的空闲状态时的电平信号,CPHA确定是在时钟的上升沿还是在下降沿进行发送或者接收。
(1)SPI模式0,CPOL = 0,CPHA = 0;CLK空闲状态为低电平,数据在上升沿采样,在下降沿移出。
(2)SPI模式1,CPOL = 0,CPHA = 1;CLK空闲状态为低电平,数据在下降沿采样,在上升沿移出。
(3)SPI模式2,CPOL = 1,CPHA = 1:CLK空闲状态为高电平,数据在下降沿采样,在上升沿移出。
(4)SPI模式3,CPOL = 1,CPHA = 0:CLK空闲状态为高电平,数据在上升沿采样,在下降沿移出。
后续关于软件编程在进行优化总结。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)