crc校验c语言,crc校验c语言实现

kodinid 12 0

大家好,今天小编关注到一个比较意思的话题,就是关于crc校验c语言的,于是小编就整理了4个相关介绍crc校验c语言的解答,让我们一起看看吧。

  1. 用C++或C语言编一个CRC校验程序?
  2. Modbus RTU CRC校验详细步骤CRC值怎么计算?
  3. C语言如何编写modbus RTU协议?

C++或C语言编一个CRC校验程序

存储, 数据库系统方面的开发,主要用到* grpc/libevent/libev/libasio 实现性能网络服务器* protobuf 数据结构序列化/反序列化,方便数据交换* LevelDB/RocksDB 嵌入式KV数据库* snappy/zlib/lz4 数据压缩,解压缩* jemalloc/tcmalloc 高效内存分配器,尤其多线程场景* jerasure Reed Solomon编解码,给存储系统实现erasure code* murmurhash… 实现hash摘要* crc32 数据存储或传输时的数据校验* cJSON 解析json格式配置文件* libBSON JSON序列化/反序列化,MongoDB使用这种格式存储数据* boost 功能丰富的C++基础库,轻度使用,C++11/14后基本不用了。* libRedis redis是一个数据库服务,并不是单独的库,但其代码精简,质量非常高,里面很多代码都可以拿出来直接复用,比如网络,各种数据结构的实现。

Modbus RTU CRC校验详细步骤CRC值怎么计算

//参考如下C代码,Modbus RTU CRC!Uint16 Crc16(Uchar *pDatas, UCHAR ucLen){UINT16 ui16Crc = 0XFFFF;UCHAR i;while (ucLen--){ui16Crc ^= *pDatas++;for (i = 0; i >= 0x01;ui16Crc ^= 0xa001; //多项式}else{ui16Crc >>= 0x01;}}}return (ui16Crc);}

crc校验c语言,crc校验c语言实现-第1张图片-安济编程网
图片来源网络,侵删)

经常说CRC校验,到底是什么意思,是个什么原理

CRC即循环冗余校验码(Cyclic Redundancy Check): 是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。

基本原理是: 在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码又叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。校验码的具体生成过程为: ***设发送信息用信息多项式C(X)表示,将C(x)左移R位,则可表示成C(x)*2的R次方,这样C(x)的右边就会空出R位,这就是校验码的位置。通过C(x)*2的R次方除以生成多项式G(x)得到的余数就是校验码。

C语言如何编写modbus RTU协议

Modbus两种协议的编程方法

1、LRC校验 LRC域是一个包含一个8位二进制值的字节。LRC值由传输设备来计算并放到消息帧中,接收设备在接收消息的过程中计算LRC,并将它和接收到消息中LRC域中的值比较,如果两值不等,说明有错误

crc校验c语言,crc校验c语言实现-第2张图片-安济编程网
(图片来源网络,侵删)

LRC校验比较简单,它在ASCII协议中使用,检测了消息域中除开始的冒号及结束回车换行号外的内容

它仅仅是把每一个需要传输的数据按字节叠加后取反加1即可。下面是它对应的代码:

BYTEGetCheckCode(constchar*pSendBuf,intnEnd)//获得校验码 { BYTEbyLrc=0; charpBuf[4]; intnData=0; for(i=1;i>=1; wCrc^=0xA001; } else { wCrc>>=1; } } } returnwCrc; } 对于一条RTU协议的命令可以简单的通过以下的步骤转化为ASCII协议的命令:

crc校验c语言,crc校验c语言实现-第3张图片-安济编程网
(图片来源网络,侵删)

1、把命令的CRC校验去掉,并且计算出LRC校验取代。

2、把生成的命令串的每一个字节转化成对应的两个字节的ASCII码,比如0x03转化成0x30,0x33(0的ASCII码和3的ASCII码)。

3、在命令的开头加上起始标记“:”,它的ASCII码为0x3A。

4、在命令的尾部加上结束标记CR,LF(0xD,0xA),此处的CR,LF表示回车和换行的ASCII码。 掌握两种协议的编程方法,剩下的就是C语言的问题了。 悉雨辰寂

到此,以上就是小编对于crc校验c语言的问题就介绍到这了,希望介绍关于crc校验c语言的4点解答对大家有用。

标签: 校验 多项式 crc