crc16modbus查表法_分别用定义法和查表法求取MODBUS_CRC16的值
根据
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的值相关推荐
- mysql分表组件_利用Sharding-Jdbc组件实现分表
看到了当当开源的Sharding-JDBC组件,它可以在几乎不修改代码的情况下完成分库分表的实现.摘抄其中一段介绍: Sharding-JDBC直接封装JDBC API,可以理解为增强版的JDBC驱动 ...
- element-ui表单_每日UI挑战强加-登录表单(分步教程)
element-ui表单 A step by step journey to create a good design from the daily UI challenge 一步步走,从日常的UI挑 ...
- 抽奖活动mysql表设计_购物商城数据库设计-商品表设计
大家好,今天我们来设计一下购物商城的商品表. 我们的目标是表结构能够满足下面这张图的搜索: 在设计表之前,我们先来了解下商品中的两个概念:SPU和SKU SPU SPU(Standard Produc ...
- mysql 分库分表策略_【数据库】分库分表策略
关系型数据库本身比较容易成为系统瓶颈,单机存储容量.连接数.处理能力都有限.当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库.优化索引,做很多操作时性能仍下降严重.此时就要考 ...
- 命令行使用mysql创建表空间_达梦命令行创建表空间
1.2命令方式创建 到数据库安装目录 cd /home/dmdba/bin 执行创建数据库实例的命令: ./dminit path=/home/dmdba/data db_name=数据库名 i ...
- 进位位判别法_竖式数字谜五位判别法分别是哪些
"算式谜"一般是指那些含有未知数数字或缺少运算符号的算式.解决这类问题可以根据已学过的知识,运用正确的分析推理方法,确定算式中未知数和运算符号.解答问题时,要想仔细审题,分析数字之 ...
- angular js创建表单_如何优雅的使用 Angular 表单验证
随便说说,这一节可以跳过 去年参加 ngChine 2018 杭州开发者大会的时候记得有人问我: Worktile 是什么时候开始使用 Angular 的,我说是今年(2018年) 3 月份开始在新模 ...
- mysql表空间_浅谈mysql中各种表空间(tablespaces)的概念
mysql中,会涉及到各种表空间的概念,虽然,很多方面这些概念和Oracle有相似性,但也有很多不同的地方,初学者很容易被这些概念弄的晕头转向,从而,混淆这些概念的区别和理解,下面,就简要介绍和说明一 ...
- 会签 数据库表设计_关于OA流程相关数据表的设计
一.前言 近期有些同学问起流程的表设计,终于有时间能写下博客,并整理下之前所发布的文章. 之前的文章讲到的表设计,没有给全且还存在漏洞,在这里向各位同学表示歉意.这是我个人最新领悟的一些流程思维,欢迎 ...
最新文章
- nginx源码编译、负载均衡及模块的扩展
- 基于ubuntu16.04多用户编译android N(android 7.1)系统提示ninja_wrapper错误问题
- Go使用HTTPClient发送Get Post请求
- 分布式事务选型的取舍 | 建议收藏
- 通过端到端的数据侦测提升QoS
- python 垃圾回收
- Android-HIDL实例解析
- idea 2018.1 for mac JRebel破解
- 讯飞输入法pad版x86_讯飞搜狗为何抵不过百度输入法?读完你就明白了
- vue入门学习篇——父子组件通信
- 特征点检测-SIFT
- python之sqlalchemy的使用
- 超全面!完全没有设计基础的新手如何做好PPT配色?(附神器)
- QQ音乐付费格式转换
- ZZULIOJ1013
- PIL imagefont 添加下划线
- codelite开发php,C++跨平台开发环境(CodeLite)
- 12306泄露数据可视化分析
- 苹果CMSv10最全系统标签,模板标签仿站必备
- P1008 [NOIP1998 普及组] 三连击 题解