SPI通信是怎么保证数据准确性的?
时间:12-12
整理:3721RD
点击:
本身没有任何同步,应答机制
很多时候也不加校验(如spi flash)
但是却基本不会出错
这是怎么做到的?
很多时候也不加校验(如spi flash)
但是却基本不会出错
这是怎么做到的?
这个...如果没有特殊情况,这种慢速的串行数据传输本身就不应该出错啊。。。就好比芯片内部两个register之间的连接一样
SPI本身好像是没有规定校验方式。。。应该需要tx rx 都有硬件支持吧,比如同时开crc32的校验,spi master 发完吐一个校验值,slave收完吐一个校验值。。。
对于这些低速接口,可以自己在帧格式里定义一些简单的例如CRC校验
一般都会在flash数据的后面加一个crc校验
SPI驱动信号强,不易受干扰。
你可以在上层再做一次校验。
你如果用过一些SPI的ADC, FLASK,就会知道它们也是有应答的。
可是主流的os都不对spi flash数据加crc
干扰还在其次,主要是数据丢失的情况
比如往SPI flash写数据的过程,就是master传过来512字节,然后就发命令写入,从来都不考虑device端由于某些原因无法完整接收这512字节的情况。那么是靠什么去保证这512字节的传输是正确的呢?
数据不多就读回来比较。
SPI NOR FLASH一般不加,因为可靠性高不容易出错。SPI NAND FLASH一般
内置ECC区域,某款芯片每页4K字节数据配256字节ECC。
正沿发负沿采,保证传输delay在半个周期内就没问题