SPI总线

浅谈SPI总线

作者:huqin   来源:本站原创   点击数:  3417   更新时间:2014年08月16日   【字体:    
id="iframeu2701052_1" src="http://pos.baidu.com/rckm?sz=336x280&rdid=2701052&dc=2&di=u2701052&dri=1&dis=0&dai=3&ps=239x631&coa=at%3D3%26rsi0%3D336%26rsi1%3D280%26pat%3D17%26tn%3DbaiduCustNativeAD%26rss1%3D%2523FFFFFF%26conBW%3D1%26adp%3D1%26ptt%3D0%26titFF%3D%2525E5%2525BE%2525AE%2525E8%2525BD%2525AF%2525E9%25259B%252585%2525E9%2525BB%252591%26titFS%3D14%26rss2%3D%2523000000%26titSU%3D0&dcb=BAIDU_SSP_define&dtm=HTML_POST&dvi=0.0&dci=-1&dpt=none&tsr=0&tpr=1473816212583&ti=%E6%B5%85%E8%B0%88SPI%E6%80%BB%E7%BA%BF&ari=2&dbv=2&drs=1&pcs=1569x731&pss=1569x243&cfv=18&cpl=25&chi=1&cce=true&cec=GBK&tlm=1453494475&rw=731&ltu=http%3A%2F%2Fwww.51hei.com%2Fmcu%2F4011.html&ltr=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DFPBbzzqlqBdOOREmnP8zfJJumWk4nEqRSskW_85I7-2Ga74dt1y74zkxgMyZvYww%26wd%3D%26eqid%3Dd7c6bc2a0000a7e60000000357d8a68e&ecd=1&psr=1600x900&par=1600x860&pis=-1x-1&ccd=24&cja=true&cmi=48&col=zh-CN&cdo=-1&tcn=1473816213&qn=aacdb30a7dbe80aa&tt=1473816212562.111.280.282" width="336" height="280" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="border-width: 0px; vertical-align: bottom; margin: 0px;">

SPI总线概述

 

    SPI全称是串行外设接口(Serial Peripheral Interface),是由Motorola提出的一种全双工同步串行通信接口,通信波特率可以高达5Mbps,但具体速度大小取决于SPI硬件。SPI接口具有全双工操作,操作简单,数据传输速率较高的优点,但也存在没有指定的流控制,没有应答机制确认是否接收到数据的缺点。

 

SPI总线的构成及信号类型

SPI总线只需四条线(如图1所示)就可以完成MCU与各种外围器件的通讯:

1)MOSI – Master数据输出,Slave数据输入

2)MISO – Master数据输入,Slave数据输出

3)SCK  – 时钟信号,由Master产生

4)/CS  – Slave使能信号,由Master控制。


                                                                           图1

SPI通信采用主从模式(Master-Slave)架构,一般为一个Master和多个Slave的应用模式。SPI总线构成如图2所示。


                                                                            图2

SPI总线操作时序

SPI接口在Master控制下产生的从器件使能信号和时钟信号,两个双向移位寄存器按位传输进行数据交换,传输数据高位在前,低位在后(MSB first)。如图3所示,在SCK的下降沿上数据改变,上升沿一位数据被存入移位寄存器。

 

图3

在一个SPI时钟周期内,会完成如下操作:

1) Master通过MOSI线发送1位数据,同时Slave通过MOSI线读取这1位数据

2) Slave通过MISO线发送1位数据,同时Master通过MISO线读取这1位数据

Master和Slave各有一个移位寄存器,如图4所示,而且这两个移位寄存器连接成环状。依照SCK的变化,数据以MSB first的方式依次移出Master寄存器和Slave寄存器,并且依次移入Slave寄存器和Master寄存器。当寄存器中的内容全部移出时,相当于完成了两个寄存器内容的交换。



                                                                               图4

另外,SPI有四种工作模式,通过设置时钟空闲时为高或者低的状态,以及数据是在时钟的上升沿或下降沿锁存可将SPI配置成相应的工作模式。

 

SPI总线注意点

1) Master配置SPI接口时钟的时候一定要考虑从设备的操作时序要求,因为Master这边的时钟极性和相位都是以Slave为基准的。因此在时钟极性的配置上一定要确定Slave是在SCK的下降沿还是上升沿输出数据,是在SCK的上升沿还是下降沿接收数据。

2) 当Slave时钟频率小于Master时钟频率时,如果Master的SCK的速率太快,会出现Slave接收到的数据不正确,而SPI接口又没有应答机制确认Slave是否接收到数据从而导致通信传输数据错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值