数据校验原理及简化实现


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

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

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




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





» 相关内容
  光的偏振性检测方法及理解
  netFrame版本对数组最大长度的..
  LC并联谐振用于模拟混频详解
  条形磁铁的磁场方向判断方法
  PCIE开关和桥接的区别
  精密电阻快速匹配方法
  二次曲面参数及flashlight效果
  AHP算法之matlab代码
  LVDS需要注意的几个点
  阴阳与男女之区别
  四象限光电探测器的位置公式
  外触发获取数据实现原理
  自定义USB设备供电不足最终解..
  USB设备连接异常现象
  MCU程序中变量过多引发内存不..