SPI协议如何校验? 有没有同一个数据包完成校验的方法?

2019-12-15 12:17发布

本帖最后由 wowangru 于 2018-11-7 13:58 编辑

SPI就像一个环形位移寄存器,本身没有校验。   没有不出错的通讯!    我现在想给SPI增加校验功能。  
   我如何才知道从机有没有正确接收呢?  从机发的数据主机有没有正确接收呢?   
   如果要直到是不是非得下一个数据包才能知道? 这样是不是效率会受影响!!


SPI  DMA接收完中断是否代表数据已经接收完成全部到了 接收数组?
SPI DMA发送完中断是否代表仅仅缓冲区数据空,但是有字节在位移寄存器里面 没有发送出去,请问有几个字节?假如我是按byte发送,如何解决这种情况呢,是否非得再往spi写入数据才能发送缓冲区剩余的数据? 这样每一帧会多无效的字节,如何解决呢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
23条回答
su33691
1楼-- · 2019-12-16 09:23
自己写IO口模拟SPI通信,就会明白了。
tcm123
2楼-- · 2019-12-16 14:32
和串口通信一样,应用层校验
wowangru
3楼-- · 2019-12-16 16:07
 精彩回答 2  元偷偷看……
loveavr999
4楼-- · 2019-12-16 17:35
如果是定长比较好办,可以在最后一个字节保存整个包的crc值,
从机收到后,比较下最后一个字节的crc值是否一致,一致就表示包是完整无误的,不一致再通知主机重发
wowangru
5楼-- · 2019-12-16 21:57
loveavr999 发表于 2018-11-7 12:23
如果是定长比较好办,可以在最后一个字节保存整个包的crc值,
从机收到后,比较下最后一个字节的crc值是否 ...

也就是必须两个包才能直到有没有收发成功?
hpu07
6楼-- · 2019-12-16 23:12
软件分层,如果硬件层没有校验,可以在应用层去做校验

一周热门 更多>