根据

Modbus

协议,

常规

485

通讯的信息发送形式如下:

地址

功能码

数据信息

校验码

1byte

1byte

nbyte    2byte

CRC

校验是前面几段数据内容的校验值,为一个

16

位数据,发送时,低

8

位在前,高

8

为最后。

例如:

信息字段代码为

: 1011001

,校验字段为:

1010

发送方

:发出的传输字段为

:

1 0 1 1 0 0 1 1 0 10

信息字段

校验字段

接收方

使用相同的计算方法计算出信息字段的校验码,

对比接收到的实际校验码,

如果相

等及信息正确,

不相等则信息错误;

或者将接受到的所有信息除多项式,如果能够除尽,则

信息正确。

CRC-16

校验码计算方法:

常用查表法和计算法。计算方法一般都是:

(

1

)、预置

1

16

位的寄存器为十六进制

FFFF

(即全为

1

),称此寄存器为

CRC

寄存

器;

(

2

)、把第一个

8

位二进制数据(既通讯信息帧的第一个字节)与

16

位的

CRC

寄存器

的低

8

位相异或,把结果放于

CRC

寄存器,高八位数据不变;

(

3

)、把

CRC

寄存器的内容右移一位(朝低位)用

0

填补最高位,并检查右移后的移出

位;

(

4

)、如果移出位为

0

:重复第

3

步(再次右移一位);如果移出位为

1

CRC

寄存器与

项式

A001

(

1010 0000 0000 0001

)进行异或;

(

5

)、重复步骤

3

4

,直到右移

8

次,这样整个

8

位数据全部进行了处理;

(

6

)、重复步骤

2

到步骤

5

,进行通讯信息帧下一个字节的处理;

crc16modbus查表法_分别用定义法和查表法求取MODBUS_CRC16的值相关推荐

  1. mysql分表组件_利用Sharding-Jdbc组件实现分表

    看到了当当开源的Sharding-JDBC组件,它可以在几乎不修改代码的情况下完成分库分表的实现.摘抄其中一段介绍: Sharding-JDBC直接封装JDBC API,可以理解为增强版的JDBC驱动 ...

  2. element-ui表单_每日UI挑战强加-登录表单(分步教程)

    element-ui表单 A step by step journey to create a good design from the daily UI challenge 一步步走,从日常的UI挑 ...

  3. 抽奖活动mysql表设计_购物商城数据库设计-商品表设计

    大家好,今天我们来设计一下购物商城的商品表. 我们的目标是表结构能够满足下面这张图的搜索: 在设计表之前,我们先来了解下商品中的两个概念:SPU和SKU SPU SPU(Standard Produc ...

  4. mysql 分库分表策略_【数据库】分库分表策略

    关系型数据库本身比较容易成为系统瓶颈,单机存储容量.连接数.处理能力都有限.当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库.优化索引,做很多操作时性能仍下降严重.此时就要考 ...

  5. 命令行使用mysql创建表空间_达梦命令行创建表空间

    1.2命令方式创建 到数据库安装目录   cd /home/dmdba/bin 执行创建数据库实例的命令: ./dminit  path=/home/dmdba/data db_name=数据库名 i ...

  6. 进位位判别法_竖式数字谜五位判别法分别是哪些

    "算式谜"一般是指那些含有未知数数字或缺少运算符号的算式.解决这类问题可以根据已学过的知识,运用正确的分析推理方法,确定算式中未知数和运算符号.解答问题时,要想仔细审题,分析数字之 ...

  7. angular js创建表单_如何优雅的使用 Angular 表单验证

    随便说说,这一节可以跳过 去年参加 ngChine 2018 杭州开发者大会的时候记得有人问我: Worktile 是什么时候开始使用 Angular 的,我说是今年(2018年) 3 月份开始在新模 ...

  8. mysql表空间_浅谈mysql中各种表空间(tablespaces)的概念

    mysql中,会涉及到各种表空间的概念,虽然,很多方面这些概念和Oracle有相似性,但也有很多不同的地方,初学者很容易被这些概念弄的晕头转向,从而,混淆这些概念的区别和理解,下面,就简要介绍和说明一 ...

  9. 会签 数据库表设计_关于OA流程相关数据表的设计

    一.前言 近期有些同学问起流程的表设计,终于有时间能写下博客,并整理下之前所发布的文章. 之前的文章讲到的表设计,没有给全且还存在漏洞,在这里向各位同学表示歉意.这是我个人最新领悟的一些流程思维,欢迎 ...

最新文章

  1. nginx源码编译、负载均衡及模块的扩展
  2. 基于ubuntu16.04多用户编译android N(android 7.1)系统提示ninja_wrapper错误问题
  3. Go使用HTTPClient发送Get Post请求
  4. 分布式事务选型的取舍 | 建议收藏
  5. 通过端到端的数据侦测提升QoS
  6. python 垃圾回收
  7. Android-HIDL实例解析
  8. idea 2018.1 for mac JRebel破解
  9. 讯飞输入法pad版x86_讯飞搜狗为何抵不过百度输入法?读完你就明白了
  10. vue入门学习篇——父子组件通信
  11. 特征点检测-SIFT
  12. python之sqlalchemy的使用
  13. 超全面!完全没有设计基础的新手如何做好PPT配色?(附神器)
  14. QQ音乐付费格式转换
  15. ZZULIOJ1013
  16. PIL imagefont 添加下划线
  17. codelite开发php,C++跨平台开发环境(CodeLite)
  18. 12306泄露数据可视化分析
  19. 苹果CMSv10最全系统标签,模板标签仿站必备
  20. P1008 [NOIP1998 普及组] 三连击 题解

热门文章

  1. 关掉微软没用的服务,让你的电脑提速百倍(转)
  2. 女生做软件测试的利弊如何权衡?
  3. python判断字符串间的包含关系
  4. vb.net 简单取摄像头图片_【图片】大车监控如何安装?_大车监控吧
  5. 无线攻击 --aircrack-ng套件之一:Airbase-ng(攻击客户端多用途工具)
  6. win10升级到win11教程
  7. 文件下载和二进制文件(图片、mp4视频)预览响应头的设置(防止中文名名乱码)
  8. 【办公常用软件】万彩办公大师教程丨PDF OCR 帮助文档
  9. QPython 3C 操作 压缩包
  10. 如何将时间序列分解为周期序列和趋势序列的和?