串行外围设备接口(Serial Peripheral Interface,SPI)是由 Motorola 公司开发的,用来在微控制器和外围设备芯片之间提供一个低成本、易使用的接口(SPI 有时候也被称为4线接口)。这种接口可以用来连接存储器、AD/DA转换器、实时时钟日历、LCD驱动器、传感器、音频芯片,甚至其他处理器。目前支持 SPI 的元件很多,并且还在不断增加。
根据时钟极性和时钟相位的不同,SPI 有四个工作模式。 时钟极性有高、低两极:
1、时钟低电平时,空闲时时钟(SCK)处于低电平,传输时跳转到高电平; 2、时钟极性为高电平时,空闲时时钟处于高电平,传输时跳转到低电平。
时钟相位有两个:相位0 和 相位1。对于时钟相位0,如果时钟极性是低电平,MOSI 和 MISO 输出在时钟(SCK)的上升沿有效(如图1所示)。
图1. 时钟极性为低电平且时钟相位0时的SPI时序图
如果时钟极性为高电平,对于时钟相位0,这些输出在 SCK 的下降沿有效(如图2所示)。
图2. 时钟极性为高电平且时钟相位0时的SPI时序图
对于时钟相位1,情况则相反。此时如果时钟极性是低电平,MOSI 和 MISO 输出在时钟(SCK)的下降沿有效(如图3所示)。
图3. 时钟极性为低电平且时钟相位1时的SPI时序图
如果时钟极性是高电平,这些输出在 SCK 的上升沿有效(如图4所示)。
图4. 时钟极性为高电平且时钟相位1时的SPI时序图
工程中一般会用 CPOL 代表时钟极性,用 CPHA 代表时钟相位,在 S5PV210 的 datasheet 中,我们可以看到相应的 SPI 接口配置寄存器(如图5所示)。
图5. S5PV210的SPI配置寄存器CH_CFGn
也就是由两个位(CPOL 和 CPHA)共同决定 SPI 的工作模式,所以有 2 * 2 = 4 种工作模式。其中,时钟极性(CPOL)决定的是时钟空闲时电平的高低状态(0:空闲时低电平,1:空闲时高电平);时钟相位(CPHA)决定的是数据在时钟的上升沿或下降沿锁存/采样(0:第一个边沿开始,1:第二个边沿开始)。
最后,SPI 接口的一个缺点:没有指定的流控制,没有应答机制确认是否接收到数据。
全部评论