全部博文(776)
分类: 嵌入式
2010-12-22 08:31:30
SPI接口的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。
SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,低位在后,上升沿发送,下降沿接收,为全双工通信,数据传输速度总体来说比I2C总线要快,速度可达到几Mbps。
SPI接口是以主从方式工作的,这种模式通常有一个主器件和一个或多个从器件,其接口包括以下四种信号:
(1)MOSI – 主器件数据输出,从器件数据输入
(2)MISO – 主器件数据输入,从器件数据输出
(3)SCLK – 时钟信号,由主器件产生
(4)/SS – 从器件使能信号,由主器件控制
在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。
在多个从器件的系统中,每个从器件需要独立的使能信号,硬件上比I2C系统要稍微复杂一些。
SPI接口内部硬件图示:
最后注意:
SPI接口的一个缺点:没有指定的流控制,没有应答机制确认是否接收到数据
由于SPI这个缺点存在,使得在实际操作SPI,尤其是多SPI设备时,需要小心对待SPI数据发送,确保数据正常发出和被接收
比如在引用I/O端口辅助NSS控制,如果控制器内核频率与I/O速率不一致的情况下就要用一些办法保证使能端与SPI发送接收在时间段上稳定有效