SPI接口的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。 在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。
SPI接口在内部硬件实际上是两个简单的移位寄存器,传输的数据为8位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。如下图所示,在SCLK的下降沿上数据改变,同时一位数据被存入移位寄存器。
SPI接口内部硬件图示:
|
最后注意:
SPI接口的一个缺点:没有指定的流控制,没有应答机制确认是否接收到数据
由于SPI这个缺点存在,使得在实际操作SPI,尤其是多SPI设备时,需要小心对待SPI数据发送,确保数据正常发出和被接收
比如在引用I/O端口辅助NSS控制,如果控制器内核频率与I/O速率不一致的情况下就要用一些办法保证使能端与SPI发送接收在时间段上稳定有效