通信网络
SPI(串行外设接口)是一种流行的通信协议,通常在微控制器中实现,通常用于与外设(传感器、显示器等)交互。
SPI是一种同步通信协议,这意味着它有一条专用时钟线。SPI中的通信线路包括:
MISO =主机输入从机输出
MOSI =主输出从输入
SS =从机选择
SCK或SCLK =串行时钟
顾名思义,SPI中有主机和从机。主机是控制时钟线路的设备,因此控制通信。
SPI是一种全双工协议,因为有两条数据线,每个通信方向一条(主机到从机和从机到主机),这意味着可以同时发送和接收数据。
SPI总线
多个从器件可以使用相同的SCK、MISO和MOSI通信线路(称为SPI总线)连接到同一个主机。然而,每个从机都需要单独的从机选择(SS)线;主机根据其希望与哪个从机通信来设置从机选择线(低电平有效,即低电平表示选择,高电平表示取消选择)。
实际上,很少会同时在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这样的协议需要较少的通信线路,但是由于其复杂性,故障排除更加困难。
审核编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !