LabVIEW编程LabVIEW开发 CRC16-CCITT- False校验 表例程与相关资料
CRC16-CCITT- False校验用的地方不多,一般都是按照modbus crc校验。设计到左移右移的区别。厂家的modbus crc16校验中,LabVIEW用的是右移的方式,这与校验算法相反,但是它后来异或的地方也是取反了,所以虽然表面上和算法不同,其本质是一样的。
Modbus CRC16校验如下所示,用的是右移,并与A001异或。
8005取反就是A001
CRC16-CCITT- False校验的LabVIEW程序,则是严格按照定义进行的,左移异或的参数。计算过程如下。
一个完整的CRC参数模型应该包含以下信息:WIDTH,POLY,INIT,REFIN,REFOUT,XOROUT。
NAME:参数模型名称。
WIDTH:宽度,即生成的CRC数据位宽,如CRC-8,生成的CRC为8位
POLY:十六进制多项式,省略最高位1,如 x8 + x2 + x + 1,二进制为1 0000 0111,省略最高位1,转换为十六进制为0x07。
INIT:CRC初始值,和WIDTH位宽一致。
REFIN:true或false,在进行计算之前,原始数据是否翻转,如原始数据:0x34 = 0011 0100,如果REFIN为true,进行翻转之后为0010 1100 = 0x2c
REFOUT:true或false,运算完成之后,得到的CRC值是否进行翻转,如计算得到的CRC值:0x97 = 1001 0111,如果REFOUT为true,进行翻转之后为11101001 = 0xE9。
XOROUT:计算结果与此参数进行异或运算后得到最终的CRC值,和WIDTH位宽一致。
通常如果只给了一个多项式,其他的没有说明则:INIT=0x00,REFIN=false,REFOUT=false,XOROUT=0x00。
常用的21个标准CRC参数模型:
厂家有提供LabVIEW的例子,但是不好用,只能运行VB的demo,现在将这些资料都放到这里,留个纪念,或者在以后的LabVIEW项目改造升级中会用到。
相关资料说明,如下所示。
LabVIEW、LabVIEW开发、LabVIEW编程、LabVIEW程序
文字内容均在附件Word中,同时上文中提到的例子和资料,均在word中的附件里,可点击下载。登录www.bjcyck.com可以查看更多详细信息。这里只是简略的介绍,有任何关于LabVIEW、LabVIEW开发、LabVIEW编程、LabVIEW程序相关问题,请与我们联系。