LabVIEW编程LabVIEW开发 CRC16-CCITT- False校验 表例程与相关资料

简介: LabVIEW编程LabVIEW开发 CRC16-CCITT- False校验 表例程与相关资料

LabVIEW编程LabVIEW开发  CRC16-CCITT- False校验  表例程与相关资料

CRC16-CCITT- False校验用的地方不多,一般都是按照modbus crc校验。设计到左移右移的区别。厂家的modbus crc16校验中,LabVIEW用的是右移的方式,这与校验算法相反,但是它后来异或的地方也是取反了,所以虽然表面上和算法不同,其本质是一样的。

Modbus CRC16校验如下所示,用的是右移,并与A001异或。

8005取反就是A001

df54563024754fc2bd2d3f823e54c1ec.png

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参数模型:

a9a95cdd421d4f0586c48c83b1258054.png 厂家有提供LabVIEW的例子,但是不好用,只能运行VB的demo,现在将这些资料都放到这里,留个纪念,或者在以后的LabVIEW项目改造升级中会用到。


相关资料说明,如下所示。

LabVIEW、LabVIEW开发、LabVIEW编程、LabVIEW程序

文字内容均在附件Word中,同时上文中提到的例子和资料,均在word中的附件里,可点击下载。登录www.bjcyck.com可以查看更多详细信息。这里只是简略的介绍,有任何关于LabVIEW、LabVIEW开发、LabVIEW编程、LabVIEW程序相关问题,请与我们联系。

相关文章
|
数据安全/隐私保护 Windows
LabVIEW项目中使用库
LabVIEW项目中使用库
392 1
|
机器学习/深度学习 人工智能
LabVIEW使用OpenVINO加速必备工具包下载与安装教程
LabVIEW使用OpenVINO加速必备工具包下载与安装教程
653 0
LabVIEW使用OpenVINO加速必备工具包下载与安装教程
|
数据采集 传感器 监控
目前比较好用的LabVIEW架构及其选择
目前比较好用的LabVIEW架构及其选择
690 0
|
数据采集 安全 测试技术
LabVIEW调用DLL时需注意的问题
LabVIEW调用DLL时需注意的问题
874 0
|
数据采集 监控 测试技术
JKI State Machine的特点与详细介绍
JKI State Machine的特点与详细介绍
608 0
JKI State Machine的特点与详细介绍
LabVIEW 调整Table表格行高列宽的方法与例程
LabVIEW 调整Table表格行高列宽的方法与例程
951 1
|
算法 C语言
LabVIEW实现CRC校验
CRC(循环冗余校验),是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。
LabVIEW实现CRC校验
|
存储 Unix Linux
LabVIEW与实时目标之间的FTP文件
LabVIEW与实时目标之间的FTP文件
604 0
|
数据采集 监控 数据可视化
利用LabVIEW和数字孪生技术实现PCB电路板测试
利用LabVIEW和数字孪生技术实现PCB电路板测试
292 0