一文详解SPI串行外设接口

接口/总线/驱动

1139人已加入

描述

半双工和全双工传输

半双工和全双工这两个术语指代用两个器件通过某种通道进行数据传输所采用的两种模式。在半双工系统中,连接线的两端都有一个发送器和一个接收器,但是它们不会同时激活,在任何给定的时间内,数据只能沿通道朝着一个方向传输。USB和I2C接口都是半双工的,且RS485一般也作为半双工接口使用。全双工系统中两条单独的通道,它们两端各有一个发送器个一个接收器,两条通道同时以相反的方向传输数据。一条通道上的发送器无论何时有了可传输的数据,都可以传输。

SPI

SPI是一个缩写,代表串行外设接口,是一种全双工四导线同步串行接口,用于芯片到芯片之间的通信。SPI以主从方式通信,一般由主设备启动数据交换。SPI的四条信号线:SCL、MOSI、MISO和SS。

半双工

SPI信号线

在SPI的 应用中,主设备通常是微控制器或微处理器(CPU),与SPI从设备连接。对于主设备通过MOSI线发送的每个数字,从设备都会同时从MISO线返回一个数字。结果就是在每个时钟周期内(SCLK线)都完成一次全双工数据传输。因为SPI不使用设备地址,所以你必须使用SS线来选定每一个从设备。

半双工

全双工通信主/从设备寄存器操作方法

每个从设备都等待控制输入(SS线)电压降低,之后就开始从主设备读入数据,与时钟信号保持同步。

半双工

SPI数据传输时间图

上图中,数据在时钟脉冲的下降沿改变(切换),在上升沿被读取。数据一行上的每一个长相奇特的“盒子”都代表数据的单个数字,要么是低(0)要么高(1)。当SS线为高电平(闲置)时,从设备将使MISO引脚进入高阻抗状态。这样就有效地将MISO线从电路中移除,直至连接该从设备的SS线电平再次被拉低为止。注:主/从设备必须使用同一个时钟和数据模式才能通信,而且大多数从设备在制作成四种模式之一时,都采用固定接线。如果主设备使用不同的时钟模式连接到多个从设备上,那么它就需要针对每个从设备重新配置。

半双工

多个SPI从设备和一个主设备

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

全部0条评论

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

×
20
完善资料,
赚取积分