原创
SPI Interface
2009-12-3 11:43
3004
5
5
分类:
通信
SPI:
串行外围设备接口(serial peripheral interface)是由motorola公司开发用来在微处理器和外围设备之间提供一个低成本、易使用的接口。这种接口可以用来连接存储器、A/D转换器、RTC芯片、LCD驱动器、传感器、音频芯片设置其他微处理器。
SPI是一个同步协议接口,所有的传输都参考一个公共时钟,这个时钟信号由主机产生,接收数据的从设备使用时钟来对串行比特率的接收进行同步化。SPI支持一对多,即一个主机可以接多个外设,这时主机通过触发从设备的片选输入引脚来选择接收数据的从设备,没有被选中的从设备将不参与SPI传输。SPI主要有个4个信号:MOSI、MISO、SCLK、CS。
(1)MOSI – 主设备数据输出,从设备数据输入
(2)MISO – 主设备数据输入,从设备数据输出
(3)SCLK – 时钟信号,由主设备产生
(4)CS – 从设备使能信号,由主设备控制
SPI传输 在主器件的移位脉冲下,数据按位传输,高位在前,地位在后,为全双工通信,数据传输速度总体来说比I2C总线要快,速度可达到几Mbps。
在主机和从设备中都包含一个串行移位寄存器,主机通过向它的SPI串行寄存器写入一个字节来发起一次传输,寄存器是通过MOSI向从设备传送数据,同时从机也将自己移位寄存器的字节通过MISO返回给主机,这样两个移位寄存器的值就被交换了,从机的写操作和读操作时同时进行的,因此SPI是个很有效的协议。如果只是进行写操作,主机只需A忽略接收到的字节;反过来,如果主机要读取从机一个字节就必须发送一个空字节来触发从机传输。SPI时序 SPI接口有四种不同的数据传输时序,取决于CPOL和CPHL这两位的组合。现选取时钟极性为低电平切时钟相位为0模式的时序图进行分析。
DB(f)mF$I#s-?@`0图2
[i:j&DE0 我们来关注SCK的第一个时钟周期,在时钟的前沿采样数据(上升沿,第一个时钟沿),在时钟的后沿输出数据(下降沿,第二个时钟沿)。首先来看主机,主机的输出口(MOSI)输出的数据bit1,在时钟的前沿被从器件采样,那主机是在何时刻输出bit1的呢?bit1的输出时刻实际上在SCK信号有效以前,比 SCK的上升沿还要早半个时钟周期。bit1的输出时刻与SSEL信号没有关系。再来看从设备,主机的输入口MISO同样是在时钟的前沿采样从器件输出的bit1的,那从设备又是在何时刻输出bit1的呢。从设备是在SSEL信号有效后,立即输出bit1,尽管此时SCK信号还没有起效。关于0模式的SPI时序在下图将得到更清晰明了的验证:在SCK上升沿前,主机MSB已经由MOSI输出,而CS信号一到来,从设备即将MSB输出。
关闭
站长推荐
/3
文章评论(0条评论)
登录后参与讨论