数据校验原理及简化实现


提到数据校验,不可避免的会想到CRC校验,奇偶校验,没错,就是这些东西,在通信传输里面经常用到,目的就是保证远程数据传输的准确无误,一套稳定的数据传输,如果没有加数据校验来保证传输质量,其后果是灾难性的,尤其对于数据传输的准确性有严格要求的场合。如航天星载等等场合,基本上要求传输数据一个都不能错,错了要立刻发现并重发补救。关于CRC校验就不说了,各位自行百度,网上也有成型的代码,8位,16位,32位的校验码生成方法都可以找到。

下面讲一个简单一点的校验方法,因为CRC校验计算相对多一些,尤其是32位,对实时通讯且MCU的主频不是很高的情况下,用CRC显得不堪重负,这时可以用个简单的数据求和移位的方法完成校验。比如把所有准备传输的数据全部相加,然后取出末尾的8位,16位或者32位,放在原来数据结尾,作为校验数。接收端收到数据包后,根据结尾的校验数,和本地重新计算出的校验数比对,一致则为传输正确,否则为传输错误。这种求和移位的方法简单而快速,对使用低频MCU(低功耗,多睡眠模式)的场景非常有意义!

点击数: 22   打印  添加到收藏   发布时间: 2020-09-11




上一篇:一片顶两片的LDO
下一篇:MCU中断编写注意事项





» 相关内容
  PID程序中DAC输出范围的限定区..
  MCU中断编写注意事项
  数据校验原理及简化实现
  一片顶两片的LDO
  三步实现ModelSim仿真Quartus..
  数字下变频的理解
  匿名IMU版本4.34的下位机协议..
  轻量级数据库SQLite大小的说明
  BUFF的有效性理解
  PHP页面顶端出现空白问题
  高速数据采集的一些关键点
  软硬件通用加密思路-针对PC端..
  隔离变压器的作用
  GSM下Unicode和中文字符转码
  Teamview远程ID和PWD自动回传..