发新帖本帖赏金 50.00元(功能说明)我要提问
返回列表
打印
[资料干货]

三线制SPI与四线制SPI

[复制链接]
970|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
forgot|  楼主 | 2023-2-14 11:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 forgot 于 2023-2-14 16:45 编辑

#申请原创#
SPI即Serial Peripheral Interface的缩写,全名串行外设接口,是一种高速的支持全双工同步通讯的接口技术。通讯速率可达几M到几十M,已知的有的器件SPI已达到50M,具体到产品中SPI的速率主要看主从器件SPI控制器的性能限制,速率越高,对于两边的数据处理能力及抗干扰性提高了要求。SPI经常用于单片机与其他一些外设芯片的通讯设计上,应用与USART、I2C各有优劣,成为最常用的集中串行数据传输总线之一。

  一般的常用的SPI是四根线:
SDO/MOSI – 主设备数据输出,从设备数据输入,如主机读取命令;
SDI/MISO – 主设备数据输入,从设备数据输,如从机返回数据;
SCLK – 时钟信号,由主设备产生,用于数据同步;
CS/SS – 从设备使能信号,由主设备控制来选择与哪一个从机进行通讯;

  但是还有一种SPI通讯为了减少线路和管脚,会采用3线制,网上很多人认为3线制是没有CS片选,这是不对的,真正的SPI三线制通讯模式是指SDO/MOSI与SDI/MISO共用一条总线的通讯方式,采用的是半双工通讯。这里又要说到什么是全双工什么是半双工了。
全双工是允许数据在两个方向上同时传输,它在能力上相当于两个单工通信方式的结合。全双工指可以同时进行信号的双向传输。
半双工是数据传输指数据可以在一个信号载体的两个方向上传输,但是不能同时传输。

  因为SDO/MOSI与SDI/MISO共用了一条总线,所以并不能同时传输,也就是所谓的半双工通讯。而通讯过程中同样要用到CS/SS线进行片选,并不是没有CS/SS。而所谓的不需要CS/SS 线是指的如果SPI线上有一个主机和一个从机的情况下,是可以省略CS/SS片选线的,因为只有1个从机,所以该从机的CS/SS可以设置成常选状态,不能采用CS/SS拉高来作为结束,如果出现数据错误后果会很严重,后面会一直错误,这种3线确实也是3条线,但是跟半双工3线制模式的SPI通讯还是有区别的,往往很多IC所明确的只能采用3线制一般都是指半双工模式。

  现在很多32位的微控制器都具备了片内硬件SPI外设,可以通过函数库的方式操作相关寄存器来实现,对于很多不含有硬件SPI的单片机而言,如果弄清楚了相关读写命令的SPI时序,也是可以通过IO口SPI模拟来实现SPI功能的,相对于硬件SPI,这种IO模拟时序可以直观理解时序原理,但是劣势就是占用CPU并且通讯速率一般。

使用特权

评论回复

打赏榜单

21ic小管家 打赏了 50.00 元 2023-03-13
理由:签约作者奖励

相关帖子

发新帖 本帖赏金 50.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1709

主题

12936

帖子

54

粉丝