本文主要是介绍CRC16计算详解与Labview实现方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
@CRC16按字节计算原理
CRC的实现原理在这里不再赘述,本节介绍个人理解的CRC按字节计算的原理。
参考文章
参考文章
下表中+号代表异或运算](https://img-blog.csdnimg.cn/20190801111109706.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODEwNTY4MA==,size_16,color_FFFFFF,t_70)
以上为正向CRC计算,若为反向CRC计算则可将X7、X6~1、0及其对应列左右完全互换即可,互换完毕后,左右公式中的左移改为右移。
以上程序中MAXIM为CRC16反向计算,0xA001即0x8005的反向值;CCITT为CRC16CCITT反向计算,XMODEM为CRC16CCITT正向计算。其它类型的CRC16校验码计算可根据以上三种形式变换得出。
由于CRC16在过程中计算字节对应的CRC值运算量较大,所以直接采用查表法,而CCITT采用CRC实时计算的方式。
按字节计算的效率相比按位计算效率约高10倍。
这篇关于CRC16计算详解与Labview实现方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!