Modbus通信协议中CRC校验快速C语言算法

2004 年第 11 期                福  建  电  脑    63

Modbus 通信协议中 CRC 校验的快速 C 语言算法

孟开元

(西安石油大学 计算机学院 陕西 西安 710065)

( ) 。

【摘  要】 本文主要讨论了 Modbus 通信协议的 R TU 帧格式中常用的错误校验方法, 即循环冗余校验法 CRC

提出了 Modbus 协议反转 CRC 校验的方法, 推导了反转 CRC 校验快速计算表格, 并用 C 语言实现了基于快速查

表算法的循环冗余校验程序。

【关键词】 校验算法, 循环冗余校验, 生成多项式, 查表法

( )

1  Modbus 协议应用简介 间 ,它被使用在网络中 显示为 T1 - T2 - T3 - T4 ,如表 2 。然

Modicon 可编程控制器 ,既可以在它们之间 ,也可以和各种 后被发送的是第一个域设备地址。联网的设备不断地监控网

网络上其他的设备间进行数据传输。所支持的网络包括 Mod ( )

络总线 ,包括在‘默认’间隔期间。当第一个域 地址域 被接收

bus 和 Modbus Plus 工业网络 ,还有标准网络 ,如 MAP 和 Ether 到时 ,每台设备译解它去查找该地址的设备。在最后一个传送

net 。网络通过控制器的接入线或者网络适配器 ,和 Modicon 可 的字符后面 ,一个类似的至少 3. 5 字符时间间隔标志者消息的

利用的出口等相连。连接关系图见图 1 。 结束。一个新的消息在这个间隔之后开始。整个消息帧必须

作为一连续的数据流被传送。如果超过 1. 5 字符时间的默认

间隔在帧结束前发生 ,接收设备删除不完全的消息并且假设下

一个字节将是一条新消息的地址域。一个典型的消息帧如表 2

所示。

表 2  RTU 消息帧

开始标志 地址域 功能域 数据域 CRC 校验域 结束标志

T1 - T2 - T3 - T4 8 比特 8 比特 n 8 比特 16 比特 T1 - T2 - T3 - T4

2. 3 地址域的处理

信息框架的地址领域包括 2 个字符的ASCII 或 8 个比特的

( )