浅谈SPI的通信线路

通信网络

648人已加入

描述

  SPI(串行外设接口)是一种流行的通信协议,通常在微控制器中实现,通常用于与外设(传感器、显示器等)交互。

  SPI是一种同步通信协议,这意味着它有一条专用时钟线。SPI中的通信线路包括:

  MISO =主机输入从机输出

  MOSI =主输出从输入

  SS =从机选择

  SCK或SCLK =串行时钟

  顾名思义,SPI中有主机和从机。主机是控制时钟线路的设备,因此控制通信。

  SPI是一种全双工协议,因为有两条数据线,每个通信方向一条(主机到从机和从机到主机),这意味着可以同时发送和接收数据。

  SPI总线

  多个从器件可以使用相同的SCK、MISO和MOSI通信线路(称为SPI总线)连接到同一个主机。然而,每个从机都需要单独的从机选择(SS)线;主机根据其希望与哪个从机通信来设置从机选择线(低电平有效,即低电平表示选择,高电平表示取消选择)。

SPI

  实际上,很少会同时在SPI总线上发送和接收数据(通常情况是指令后跟响应,或者只是主机从从机读取)。然而,SPI的优势之一是,由于具有专用且明确定义的通信线路,因此调试和故障排除非常简单(例如使用示波器)。像I2C这样的协议需要较少的通信线路,但是由于其复杂性,故障排除更加困难。

  SPI的另一个优势是,所有通信线路都被主动驱动为高电平或低电平,这与I2C相反,在后者中,通信线路仅被驱动为低电平,上拉电阻用于在通信线路未被主动驱动时将线路被动拉回到高电平(欲了解更多信息,请参阅我们关于I2C的文章)。使线路总是被有效驱动意味着可以实现更高的数据速率。

  双通道和四通道SPI

  SPI还有多种变体,称为双通道和四通道SPI,可以使用多条数据线同时单向传输数据(技术上是并行的),从而进一步提高数据吞吐量(整体通信速度)。这些变化在例如需要高数据吞吐量的闪存芯片中很受欢迎。采用双SPI时,通信照常开始(与单SPI相同),但在向从机发送命令后,可以更改为双模式(详情见从机数据手册)。在双模式下,MISO和MOSI线各自成为双向(半双工)通信线路,称为SIO0(串行I/O 0)和SIO1每个字节的偶数位通过SIO0传输,奇数位通过SIO1传输。

  四通道SPI与此类似,只是多了两条通信线路——SiO 2和SIO3,每次传输半个字节。

  SPI配置

  SPI协议中的一些参数是可设置的;例如数据是在时钟信号的上升沿还是下降沿发送/接收的,以及时钟空闲是高还是低。还可以配置数据是先传输最低有效位(LSB ),还是先传输最高有效位(MSB ),通常是MSB优先。

  实际上,很少会同时在SPI总线上发送和接收数据(通常情况是指令后跟响应,或者只是主机从从机读取)。然而,SPI的优势之一是,由于具有专用且明确定义的通信线路,因此调试和故障排除非常简单(例如使用示波器)。像I2C这样的协议需要较少的通信线路,但是由于其复杂性,故障排除更加困难。

  审核编辑:黄飞

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

全部0条评论

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

×
20
完善资料,
赚取积分