SPI通信协议原理讲解

电子说

1.3w人已加入

描述

SPI通信协议由摩托罗拉公司于20世纪80年代中期开发而成,包括SD卡、液晶显示器、一般闪存等等都在使用SPI进行通信。

SPI作为串行通信接口脱颖而出的原因很多,全双工比I2C传输速率更高,推挽输出接口能够减少走线分叉,能够保证在高速传输下信号的完整性,传输协议更加灵活,信息帧大小可以任意调节,不需要上拉电阻,功耗可以更低,外围电路和软件配置都更简单。

同时SPI的缺点也很明显,SPI通常仅支持一个主设备,传输距离短,一般只适合板内信号传输,没有硬件级别的错误检查协议,无法内部寻址,多重设备时需要额外的片选信号线。

通信协议

SPI总线包括四条逻辑线

通信协议

SPI有两种接线方式,第一种是常规的独立从机配置,每个从机都需要一条单独的CS线,当主机要和特定的从机进行通讯时,将相应的CS信号线拉低,并保持其他CS信号线为高。

同时因为从机的MISO引脚在同一条信号线上,因此要求未被选择的从机的MISO引脚要配置为高阻态输出。

SP的第二种接线方式为菊花链配置,我们一般将信号线以串行的方式从一个设备依次传到下一个设备,直到数据到达目标设备的数据传输方式称为菊花链。

菊花链最大的缺点是如果从机出现单点故障时,低于该设备优先级的从机就掉线了,距离主机越远的从机获得服务的优先级就越低。如果需要设置从线检测器并安排好从今优先级。

如果某个从机超时并及时处理,防止单点故障造成整个链路崩溃。

菊花链模式充分使用了SPI移位寄存器的功能,每个从机在下一个时钟周期将输入数据复制到输出。

SPI可以根据时钟极性CKP和时钟向性CKE配置前四种模式。

CKP用来配置时钟的默认状态,CP=0时空闲电平为低,电平0,CKP=1时空闲电平为高,电平1。

通信协议

CKE用来配置在哪个时钟边沿进行数据采样,CKE=0时,在时钟信号SCK的第一个跳变沿采样,CT=1时,在时钟信号SCK的第二个跳变沿采样。

SPI是一种同步通信的总线协议,数据线根据不同的配置在时钟的上升沿或下降沿进行采样。

SPI通信的持续过程如下,主机先将对应从机的CS信号拉低,通知从机开始建立连接,数据接收端检测到时钟的边缘信号之后,就立即开始读取数据线上的信号。

通信协议

因为SPI是全双工的,主机在发送数据的同时也在接收数据,主机可以通过查询的方式来判断从机是否有数据需要发送,如果有,主机会继续发送数据来获取从机想要发送的数据,之后从机只需要丢掉这些无效数据即可。

好了,以上就是SIP通信协议的全部内容,喜欢的话麻烦大家点赞收藏哦。

审核编辑 :李倩

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分