电子说
SPI,是英语 Serial Peripheral interface 的缩写,中文全称是串行外围设备接口。是 Motorola 所研发的一种串行通信协议。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD 转换器,还有数字信号处理器和数字信号解码器之间。SPI通信协议是一种高速的,全双工,同步的通信总线协议。可以支持百兆 bit/s 的通信速率。
SPI的通信原理十分简单,它是以主从方式来工作,这种模式通常是:一个主设备和一个或多个从设备,由主设备发起通信。需要至少 4 根线,然而事实上 3 根也可以(单向传输时)。4 根线分别是:
MOSI – 主设备数据输出,从设备数据输入(MOSI:master output slave input)
MISO – 主设备数据输入,从设备数据输出(MISO:master input slave output)
SCLK – 时钟信号,由主设备产生
CS /NSS – 从设备使能信号(片选),由主设备控制
接线实例:
时序图:
SPI有四种工作模式,由 CPOL 和 CPHA 决定。
CPOL: 时钟极性, 表示 SPI总线在空闲时, 时钟信号是高电平还是低电平。 如果 CPOL 被设为 1, 空闲时 SCK 时钟信号为高电平。 当 CPOL 被设为 0 时则正好相反。
CPOL = 0: SCK idle phase is low;
CPOL = 1: SCK idle phase is high;
CPHA: 时钟相位, 表示 SPI 进行数据采样时,SCK 是上升沿还是下降沿。 若 CPHA 被设置为 1, 则 SPI 设备在时钟信号变为下降沿时触发数据采样, 在上升沿时发送数据。当 CPHA 被设为 0 时也正好相反。
CPHA = 0: Output data at negedge of clock while receiving data at posedge of clock;
CPHA = 1: Output data at posedge of clock while receiving data at negedge of clock;
编辑:hfy
全部0条评论
快来发表一下你的评论吧 !