Proteus:SPI通信协议
来源:labcenter.com | 作者:labcenter | 发布时间: 2024-01-31 | 87 次浏览 | 分享到:

简介

SPI 或串行外设接口是微控制器流行的通信协议之一,通常在微控制器中实现,常用于与外围设备(传感器、显示器等)交互。SPI是一种同步通信协议,它有专用的时钟线(有关更多信息,请参阅我们关于同步与异步通信协议的文章)。SPI 中的通信线路包括:

MISO = Master In Slave Out

MOSI = Master Out Slave In

SS = Slave Select

SCK or SCLK = Serial Clock

根据命名,SPI 存在主设备和从设备。主设备控制时钟线,因此也控制通信。SPI 是一种全双工协议,因为它有两条数据线,每个通信方向(主站对从站和从站对主站)各一条,这意味着可以同时发送和接收数据。

SPI 总线

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

实际上,在 SPI 总线上同时发送和接收数据的情况并不多见(通常的情况是先发出指令后作出响应,或者只是主设备从从设备读取数据)。不过,SPI 的优势之一是,由于具有专用且定义明确的通信线路,它可以直接进行调试和故障排除(例如使用示波器)。I2C 等协议需要的通信线路较少,但由于其复杂性,故障排除更加困难。

SPI 的另一个优点是,所有通信线路都是高电平或低电平主动驱动的,而 I2C 等通信线路只是低电平驱动,当通信线路没有被主动驱动时,上拉电阻会被动地将通信线路拉回高电平(更多信息,请参阅我们关于 I2C 的文章)。始终主动驱动线路意味着可以实现更高的数据传输速率。

双线和四线 SPI

SPI 也有双 线SPI 和四线 SPI,可以使用多条数据线同时向一个方向传输数据(从技术上讲是并行传输),从而进一步提高数据吞吐量(整体通信速度)。这在需要高数据吞吐量的闪存芯片中很受欢迎。使用双 SPI 时,通信开始时与往常一样(与单 SPI 相同),但在向从设备发送命令后可更改为双模式(详细情况请参阅从设备数据手册)。在双模式下,MISO 和 MOSI 线路分别成为双向(半双工)通信线路,称为 SIO0(串行 I/O 0)和 SIO1;每个字节的偶数位在 SIO0 上传输,奇数位在 SIO1 上传输。Quad SPI 与之类似,只是多了两条通信线路--SIO2 和 SIO3,而且每次传输半个字节。

SPI 配置

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

本文章版权归英国Labcenter公司所有,由广州风标电子提供翻译,原文链接如下:https://www.labcenter.com/blog/sim-spi-protocol/