用查表法计算CRC16的过程

采用自定义的协议通讯时,需要自己校验CRC码,对于CRC校验,目前有两种计算方式,一种是程序循环计算,另一种是查表法,我想问的是查表法中计算CRC16码,对于取出的字节先要做什么处理吗?比如字节内容为0101,是不是直接查表中对应的第五个数据就是它的校验码,字节内容为1010,是不是就是把表中第十个数据取出就是它的校验码?是这样吗?是查表之前要对字节进行处理,还是查表取出校验码后要对校验码做处理?谢谢!

问题补充:
程序中是对要查询CRC码的字节先与FF异或后乘2,然后形成指针再去DB中找对应的CRC码,(如上框),这样对吗?
取出CRC码后还要与FF异或,(如下框),搞不懂为何这样!

图片说明:

用查表法计算CRC16的过程   

最佳答案

参考:
使用西门子 S7-300 PLC 指针实现 CRC16 校验计算:
http://fs.gongkong.com/uploadfile/bbs/201302/2013021822464900001.pdf

提问者对于答案的评价:
还是自己用计算法来写吧,谢谢阿鸣大师!

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc284409.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月30日 下午10:50
下一篇 2020年10月30日 下午10:50

相关推荐