SPI通讯速度与容错率

通讯速率
对于spi通信并没有规范最高的通信速率,在我的开发经验中有见过达到50mbit/s的应用场景,但通常比较常见的还是10mbit/s左右。
具体选用多快的通信速度,还得在实际项目中根据情况具体设计,比如:
1、当前主从机的主频和项目的具体应用都与spi数据的处理能力有着直接关系,一般spi通信的时钟频率都是来源于主频分频,这就在一定程度上限制了其通信速率上限。
即使能够达到较高速的速率,而处理器还需要处理更多的业务逻辑,再去处理spi数据也是不够及时的,此时高速率并没有太大的意义了。
2、spi硬件pcb布线长度等等影响着线路阻抗,这也同样限制了通信速率,一般通信距离越长,通信速度越低,否则容易造成通信不稳定。
特别是通信线路经过一些干扰源更是影响其稳定性,所以spi作为一种相对高速的通信方式,一般都不会用于长距离通信中,而是大量用于微处理器与外部spi接口的设备之间的通信,比如高速采样芯片adc、处理器之间等等。
3、前面说了即使spi主机能够达到较高的通信速率,但从机主频或者数据处理能力不够,这样也是没有太大意义的,当你可以通过配置从机为接收队列或者dma等方式进行优化,当然高速率在多机中能够减少同步延时。
值得注意的是一些芯片标称的最高通信速率,是在比较好的外界条件下的测试值,超过了该标称值可能也能用,但并不会很稳定,容易导致通信异常。
所以具体选用多快的通信速度,还需根据实际情况分析确认。
容错性
spi不像iic那样存在应答机制,也没有流控制机制,当从机配置较低,如果一个报文还没处理完,后一个报文又到来,导致传输错乱,其通信过程几乎都是靠硬件来保证数据的传输稳定性,是一种不可靠传输。
当然如果是用于多机通信倒是可以通过制定可靠性校验协议来保证传输数据的稳定,但这也在一定程度上会降低通信的有效数据传输速度。
像stm32的spi外设发送和接收都存在独立的crc校验功能,大致的原理就是使用crc在每个位上进行串行计算,然后在最后一次数据传输结束时来传输crc校验值,接受方接收到crc以后自动拿着数据和crc值进行比对,看是与否有数据故障,如果存在传输问题就会置位相应的crc故障标志位告知。
当然如果所选用的芯片spi外设没有独立crc模块可以模拟类似的操作进行处理,只是相对比较耗时,毕竟这个crc得软件自己处理。
stm32的spi外设的灵活度远不止这些,比如配置成双线单向模式等,可以把miso和mosi都向一个方向传输,从而提高一倍的传输速度,感兴趣可以参考一下手册玩一下。


虹科修车案例 | 2016年宝马 BMW i3 显示传动系统故障无法进入就绪状态
以太网通讯的MODBUS TCP通讯协议和自由格式通讯协议的区别
LED行业又一大动作:德豪润达将成雷士第一股东
12位数字预失真接收器子系统LTM9003
Fingerprints携手华视微电子打造首款无源指纹智能卡
SPI通讯速度与容错率
谷歌表示:将自动驾驶应用到专车上 接送乘客
高速ADC电源设计方案选择
工信部已下架377款拒不整改App;Q2中国大陆手机出货量同比降17%……
商汤生成式AI未来将持续引领收入增长!
全球自动驾驶汽车在硬件和软件上的技术总结
如何实现真正智能医疗的时代
三星与华为陆续发布了折叠屏手机,折叠的iPhone还会远吗?
运放OPA690的使用经验总结
功率器件SiC和GaN的电压变化率与电流变化率
世健代理的Microchip产品线为客户提供通信系统一揽子解决方案
【知识】工业4.0时代工业以太网对连接器提出的新要求
中低压变电站职能运维系统中物联技术的应用
中国车用发动机产量波动下滑,车用发动机市场正逐渐走向低迷
基于PIR传感器的安全报警系统电路设计