接口协议(2) - SPI

SPI(Serial Peripheral Interface)是一种可以全双工/半双工/单工通信的接口协议,由2(单工)/3(双工)条信号线和1+条(每个从设备1条)片选信号线组成。支持MSB/LSB传输模式,支持4/8/16/32 bit数据长度(大部分SPI设备一般支持8/16 bit,其它bit一般需要硬件指定支持)。

1. 通信速率

速率没有硬性规定,一般3Kbps~100Mbps。

2. SPI接口

(1) MISO – Master Input Slave Output,主设备数据输入,从设备数据输出;
(2) MOSI – Master Output Slave Input,主设备数据输出,从设备数据输入;
(3) SCLK – Serial Clock,时钟信号,由主设备产生;
(4) CS – Chip Select,从设备使能信号,由主设备控制,每个从设备一条CS线,低电平被有效选中,相当于从设备地址。

3. 数据有效性

条件1:CS低电平有效.

对应从设备的CS信号线低电平时,从设备被选中,通信数据有效。

条件2:模式选择.

SPI Mode CPOL CPHA 空闲时SCK时钟 采样时刻
0 0 0 低电平 奇数边沿
1 0 1 低电平 偶数边沿
2 1 0 高电平 奇数边沿
3 1 1 高电平 偶数边沿

CPOL时钟极性,CPHA时钟相位,根据寄存器中这两者的不同配置,会有不同采样电平和边沿。

 

4. 起始信号

对应从设备的CS信号线电平由高变低,和对应从设备通信开始。

5. 结束信号

对应从设备的CS信号线电平由低变高,和对应从设备通信结束。

6. SPI模式

2-wire模式

单工模式,

(1) CLK + MOSI,只写模式。

(2) CLK + MISO,只读模式。

3-wire模式

CLK + MOSI + MISO布局,

(1) 半双工,读/写不可同时进行,一般通过改变寄存器对应配置寄存器来实现,读完写,写完读。

(2) 全双工,读/写可同时进行。

2倍读/写模式

CLK + MOSI + MISO布局,并非所有器件都支持这种模式,需要厂商的控制器支持,

(1) 2倍读模式,MOSI和MISO均做为MISO使用。

(2) 2倍写模式,MOSI和MISO均做为MOSI使用。

4倍读/写模式

CLK + MOSI + MISO + (WP#) + (HOLD#)布局,并非所有器件都支持这种模式,需要厂商的控制器支持,

在四倍输入/四倍输出SPI中,命令、地址和虚拟字节通过SPI_MOSI线以串行方式以1 bit为单位输出。只有数据字节是通过SPI_MOSI、SPI_MISO、SPI_WP#和SPI_HOLD#以4 bit为单位的输出(写)和输入(读)。

posted @ 2022-09-04 21:33  this毛豆  阅读(1098)  评论(0编辑  收藏  举报