目录
一、SPI通讯协议简介
二、SPI物理层
三、SPI协议层
1.通讯模式
(一)模式零
(二)模式一
(三)模式二
(四)模式三
2.通讯流程
一、SPI通讯协议简介
SPI(Serial Peripheral Interface,串行外围设备接口)通讯协议,是Motorola公司提出的一种同步串行接口技术,是一种高速、全双工、同步通信总线,在芯片中只占用四根管脚用来控制及数据传输。
应用:EEPROM、Flash、RTC、ADC、DSP等。
优缺点:全双工通信、通讯方式较为简单、相对数据传输速率较快;没有应答机制确认数据是否接收,在数据可靠性上有一定缺陷(与I2C相比)。
二、SPI物理层
SCK(Serial Clock):时钟信号线,用于同步通讯数据;
MOSI(Master Output ,Slave Input):主设备输出/从设备输入引脚;
MISO(Master Input ,Slave Output):主设备输入/从设备输出引脚;
/CS(Chip Select):片选信号线,也称为CS_N。
物理层特点
点对点通信:主设备与单个从设备直接连接
多从机支持:可通过多个/CS线支持多个从设备(多个片选信号)
短距离通信:适合板级设备间通信,通常不超过几十厘米
三、SPI协议层
1.通讯模式
SPI一共有四种通讯模式。
CPOL:时钟极性
CPHA:时钟相位
(一)模式零
SCK(CPOL=0,CPHA=0)
CPHA = 0:表示在奇数沿进行采样
CPOL = 0:从设备处于空闲状态的时候是低电平
(二)模式一
SCK(CPOL=0,CPHA=1)
CPHA = 1:表示在偶数沿进行采样
CPOL = 0:从设备处于空闲状态的时候是低电平
(三)模式二
SCK(CPOL=1,CPHA=0)
CPHA = 0:表示在奇数沿进行采样
CPOL = 1:从设备处于空闲状态的时候是高电平
(四)模式三
SCK(CPOL=1,CPHA=1)
CPHA = 1:表示在偶数沿进行采样
CPOL = 1:从设备处于空闲状态的时候是高电平
2.通讯流程
我这里以CPOL=0,CPHA=0,为例
当CS_N被拉低的时候,是SPI开始通信的起始信号,
当CS_N被拉高的时候,是SPI结束通信的结束信号。
每个时钟传输1bit数据,输入输出同时进行,
两个设备进行通信,要么高位在前,要么低位在前。
SPI在进行数据传输的时候可以以8位或者16位进行一次传输
以上就是SPI通讯协议简介。