HSPY通讯协议
- 格式:doc
- 大小:82.50 KB
- 文档页数:9
HSPY3603仪表采用RS232或者RS485传输标准与计算机通迅,详细资料如下:注(本机只支持功能码03,10,06)波特率:9600起始位:1数据位:8校验位:无停止位:2一.MODBUS_RTU帧结构消息发送至少要以3.5个字符时间的停顿间隔开始;整个消息帧必须作为一连续的数据传输流,如果在帧完成之前有超过3.5个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域。
同样地,如果一个新消息在小于3.5个字符时间内接着前个消息开始,接收的设备将认为它是前一消息的延续。
一帧信息的标准结构如下所示:地址域: 主机通过将要联络的从机的地址放入消息中的地址域来选通从设备,单个从机的地址范围是1…15(十进制)。
功能域:有效的编码范围是1…255(十进制);当消息从主机发往从机时,功能代码将告之从机需要去干什么。
例如:读/写一组寄存器的数据内容等。
数据域:主机发给从机的数据域中包含了从机完成功能域的动作时所必要的附加信息;如:寄存器地址等。
CRC校验:CRC生成之后,低字节在前,高字节在后。
注:本仪表通讯时帧与帧之间的响应间隔,通讯速率大于等于9600bps时不大于5msMODBUS RTU 通讯协议通讯数据的类型及格式:信息传输为异步方式,并以字节为单位。
在主站和从站之间传递的通讯信息是10位的●通讯数据(信息帧)格式一、通讯信息传输过程:当通讯命令由发送设备(主机)发送至接收设备(从机)时,符合相应地址码的从机接收通讯命令,并根据功能码及相关要求读取信息,如果CRC校验无误,则执行相应的任务,然后把执行结果(数据)返送给主机。
返回的信息中包括地址码、功能码、执行后的数据以及CRC校验码。
如果CRC校验出错就不返回任何信息。
1.1 地址码:地址码是每次通讯信息帧的第一字节(8位),从0到255。
这个字节表明由用户设置地址的从机将接收由主机发送来的信息。
每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送信息。
HSPR协议协议名称:HSPR协议一、背景和目的本协议旨在规范和确保HSPR(High-Speed Packet Radio)协议的设计、实施和使用。
HSPR是一种用于高速数据传输的无线通信协议,旨在提供高效、可靠的数据传输服务。
二、定义和缩写1. HSPR:High-Speed Packet Radio,高速数据包无线通信协议。
2. 用户:指使用HSPR协议进行数据传输的个人或组织。
三、协议内容1. HSPR协议的目标:a. 提供高速、可靠的数据传输服务。
b. 支持多种数据格式和应用场景。
c. 保障用户隐私和数据安全。
2. 协议规范:a. 数据传输速率:i. HSPR协议要求支持最低传输速率为XX Mbps。
ii. 协议允许根据网络负载和用户需求动态调整传输速率。
b. 数据格式:i. HSPR协议支持多种数据格式,包括文本、图像、音频和视频等。
ii. 协议规定了数据格式的编码、解码和传输方式。
c. 数据传输可靠性:i. HSPR协议采用差错检测和纠正技术,确保数据传输的可靠性。
ii. 协议规定了数据传输过程中的重传机制和错误处理方式。
d. 用户隐私和数据安全:i. HSPR协议要求对用户数据进行加密保护,防止数据泄露和篡改。
ii. 协议规定了用户身份验证和访问控制的机制。
3. 协议实施和使用:a. HSPR协议的实施:i. HSPR协议的实施应遵循相关的技术标准和规范。
ii. 协议实施需要考虑网络设备的兼容性和性能要求。
b. HSPR协议的使用:i. 用户应按照协议规范使用HSPR协议进行数据传输。
ii. 用户需遵守协议规定的用户隐私和数据安全要求。
四、协议监督和维护1. 协议监督:a. 监督机构应负责监督HSPR协议的实施和使用情况。
b. 监督机构应定期进行协议性能评估和改进。
2. 协议维护:a. HSPR协议的维护应由专门的技术团队负责。
b. 维护团队应及时修复协议中的漏洞和问题,并提供技术支持。
HTTPS协议详解HTTPS是什么HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是基于安全目的的HTTP通道,其安全基础由SSL层来保证, 因此加密的详细内容就需要SSL。
最初由netScape公司研发,主要提供了通讯双方的身份认证和加密通信方法。
现在广泛应用于互联网上安全敏感通讯。
HTTPS与HTTP主要区别1.协议基础不同:HTTPS在HTTP下加入了SSL层;2.通讯方式不同:HTTPS在数据通信之前需要客户端、服务器进行握手(身份认证),建立连接后,传输数据经过加密,通信端口443。
HTTP传输数据不加密,明文传输,通信端口80;3.HTTPS协议需要到ca申请证书,一般免费证书很少,需要交费。
SSL协议基础SSL协议位于传输层和应用层之间,本身又分为两层:SSL记录协议(SSL Record Protocol):建立在可靠传输层协议(TCP)之上,为上层协议提供数据封装、压缩、加密等基本功能。
记录协议层封装了高层协议的数据,协议数据采用 SSL 握手协议中协商好的加密算法及 MAC 算法来保护。
记录协议传送的数据包括一个序列号,这样就可以检测消息的丢失、改动或重放。
如果协商好了压缩算法,那么 SSL 记录协议还可以执行压缩功能。
SSL握手协议(SSL Handshake Procotol):在SSL记录协议之上,用于实际数据传输前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
握手协议是关于客户和服务器如何协商它们在安全信道中要使用的安全参数,这些参数包括要采用的协议版本加密算法和密钥。
另外,客户要认证服务器,服务器则可以选择认证/不认证客户。
PKI 在客户—服务器认证阶段就开始运作了,这就是握手协议的实质。
SSL协议提供的主要服务认证客户机和服务器的合法性,确保数据发送到正确的客户机和服务器加密数据以防止数据中途被窃取维护数据的完整性,确保数据在传输过程中不被改变。
python 通信协议解析Python是一种功能强大的编程语言,广泛应用于各个领域,包括通信协议解析。
本文将重点介绍Python在通信协议解析方面的应用。
我们需要了解什么是通信协议。
通信协议是计算机网络中用于实现数据传输和通信的规则集合。
常见的通信协议包括HTTP、TCP/IP、UDP等。
在网络通信中,数据的传输必须遵循特定的协议规范,才能实现准确、高效的通信。
Python作为一种通用编程语言,具有丰富的库和模块,可以用于解析各种通信协议。
下面我们将分别介绍Python在HTTP、TCP/IP和UDP协议解析方面的应用。
首先是HTTP协议解析。
HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的应用层协议。
Python的标准库中包含了http.client模块,可以用于发送和接收HTTP请求。
通过http.client模块,我们可以实现与服务器的通信,并解析服务器返回的HTTP响应。
例如,我们可以使用Python编写一个简单的程序,发送HTTP GET请求并解析服务器返回的HTML页面。
接下来是TCP/IP协议解析。
TCP/IP(Transmission Control Protocol/Internet Protocol)是一种用于在计算机网络中传输数据的协议。
Python的socket模块提供了对TCP/IP协议的支持,可以实现网络通信。
通过socket模块,我们可以创建TCP或UDP的套接字,并使用套接字进行数据传输。
例如,我们可以使用Python编写一个简单的TCP客户端程序,连接到服务器并发送数据。
最后是UDP协议解析。
UDP(User Datagram Protocol)是一种无连接的传输协议,它不保证数据的可靠传输。
Python的socket模块也可以用于UDP协议的解析。
通过socket模块,我们可以创建UDP 套接字,并使用套接字进行数据传输。
卫星网络中SCPS-TP协议拥塞控制算法改进姜月秋;郭秦超;关世杰;关启学【摘要】传统的SCPS-TP协议中Vegas算法的窗口增长是基于往返延时测算的被动型增长.当反向传输发生拥塞或者Vegas算法中窗口调整的不及时性都会影响正向传输效率.针对以上问题提出一种以单向传输延时作为测算并通过以多次单向传输延时变化比率预测链路将要发生的变化,从而提前进行窗口调整的算法Vegas_pre.该算法更加精确地获得信息传输的网络状态,对拥塞窗口进行更加有效的调整,提高了信息在空间传输的效率.Opnet仿真结果表明,改进的Vegas算法在空间网络中数据的传输效率要高于原算法.【期刊名称】《计算机应用与软件》【年(卷),期】2018(035)006【总页数】4页(P134-137)【关键词】SCPS-TP;延时变化比率;卫星网络;Vegas【作者】姜月秋;郭秦超;关世杰;关启学【作者单位】沈阳理工大学辽宁沈阳110159;沈阳理工大学辽宁沈阳110159;沈阳理工大学辽宁沈阳110159;沈阳理工大学辽宁沈阳110159【正文语种】中文【中图分类】TP3910 引言卫星通信网络具有信息传播距离远、受地理位置因素影响小等特点,如今已经成为重要的无线通信方式之一。
尤其在地理偏远、人员稀少以及船只、飞行器通信方面更加不可或缺。
但是由于卫星通信中空间、时间中一些因素的影响,导致信息传输中存在着传播延时长、误码率高、往返链路不对称,以及间歇性连接等问题[1]。
原始的TCP传输协议以Reno为基础,但其较强的侵略性会导致拥塞窗口的严重震荡,而性能高度依赖于拥塞丢失数据后恢复算法,如快速重传和重传超时,这些因素也限制了吞吐量的增长[2-3]。
所以对卫星通信传输层的改进将有助于改善卫星传输效率[4]。
最近几年出现比较有名的TCP协议的改进方法:TCP-Hybla将网络传输时延与传输速率独立,TCP-Westwood实时评估网络的带宽,以及美国航天局设计的SCPS协议[5]。
cphy协议详解摘要:一、CPHY协议简介1.CPHY协议的定义和作用2.CPHY协议的发展历程二、CPHY协议的组成部分1.物理层a.传输介质b.物理连接c.物理信号2.数据链路层a.帧结构b.错误控制c.流量控制三、CPHY协议的工作原理1.数据传输过程2.帧同步与解码3.错误检测与纠正4.流量控制与拥塞管理四、CPHY协议的应用领域1.通信网络2.数据中心3.工业自动化4.其他领域五、CPHY协议的发展趋势与展望1.技术进步带来的挑战与机遇2.新应用场景的拓展3.我国在CPHY协议方面的研究与应用正文:CPHY协议详解随着信息技术的飞速发展,数据通信的需求日益增长,CPHY协议作为一种广泛应用于通信领域的协议,其重要性日益凸显。
本文将对CPHY协议进行详细解读,以帮助大家更好地了解这一协议。
一、CPHY协议简介CPHY(Communication Protocols for High-speed Networks)协议,即高速网络通信协议,是一种定义了高速网络传输介质的物理层和数据链路层的协议。
其作用是实现数据在高速网络中的可靠传输,为各种应用场景提供稳定、高效的数据通信服务。
CPHY协议的发展历程可追溯到20世纪90年代,经过多年的演进与完善,现已广泛应用于通信网络、数据中心、工业自动化等领域。
二、CPHY协议的组成部分CPHY协议包括物理层和数据链路层两个部分。
物理层主要负责传输介质、物理连接和物理信号的定义;数据链路层则负责帧结构、错误控制、流量控制等方面的规定。
物理层和数据链路层的紧密结合,使得CPHY协议能够满足高速、高可靠性数据传输的需求。
三、CPHY协议的工作原理CPHY协议的工作原理主要包括数据传输过程、帧同步与解码、错误检测与纠正以及流量控制与拥塞管理。
在数据传输过程中,发送端将数据按照CPHY协议规定的帧结构进行打包,然后通过物理层传输到接收端。
接收端收到数据后,首先进行帧同步与解码,确保数据的正确接收。
hessian 协议Hessian 协议。
Hessian 协议是一种基于二进制的轻量级远程通信协议,它可以用于在客户端和服务器之间进行数据传输。
Hessian 协议的设计初衷是为了提高数据传输的效率和性能,尤其适用于移动设备和网络带宽有限的环境中。
Hessian 协议采用简单的数据结构和压缩算法,使得数据传输更加高效和快速。
Hessian 协议的特点之一是其简洁性。
相比于其他基于文本的协议,如 XML 和JSON,Hessian 协议使用二进制格式进行数据传输,因此可以减少数据的传输量,提高传输效率。
同时,Hessian 协议的数据结构也相对简单,只包含基本的数据类型和对象引用,不需要额外的标记符号或描述信息,使得数据的解析和处理更加高效。
另一个特点是 Hessian 协议的跨平台性。
由于 Hessian 协议使用的是二进制格式,不依赖于特定的编程语言或操作系统,因此可以在不同的平台上进行数据传输,实现跨语言的通信。
这使得 Hessian 协议成为了一种通用的远程通信协议,可以在不同的系统和环境中被广泛应用。
此外,Hessian 协议还具有良好的性能表现。
由于采用了二进制格式和简单的数据结构,Hessian 协议在数据传输和解析过程中的性能表现非常优秀。
相比于其他文本格式的协议,Hessian 协议可以更快地进行数据传输和解析,降低了系统的资源消耗,提高了整体的性能表现。
总的来说,Hessian 协议是一种高效、简洁、跨平台的远程通信协议,适用于移动设备和网络带宽有限的环境中。
它的设计初衷是为了提高数据传输的效率和性能,使得客户端和服务器之间的通信更加高效和快速。
在实际的应用中,可以根据具体的需求选择合适的协议,以实现更好的通信效果。
Hessian 协议作为一种轻量级的远程通信协议,可以为我们提供一种高效、简洁、跨平台的数据传输方案,为系统的性能优化和资源消耗提供了有力支持。
编程手册编程手册 (1)第一篇编程指南 (6)1.1简要介绍 (6)1.2一般说明 (6)1.3三倍DES运算 (7)1.3.1密钥的用法 (7)1.3.2密钥的加密方案 (7)1.ANSI X9.17方式 (7)2.变量方式 (7)YYYY YYYY YYYY YYYY (8)BBBB BBBB BBBB BBBB (8)YYYY YYYY YYYY YYYY (8)BBBB BBBB BBBB BBBB (8)CCCC CCCC CCCC CCCC (8)YYYY YYYY YYYY YYYY (8)ZZZZ ZZZZ ZZZZ ZZZZ (8)BBBB BBBB BBBB BBBB (8)CCCC CCCC CCCC CCCC (8)1.4密钥的生成、输入和输出 (8)1.5命令消息格式 (9)1.5.1TCP/IP方式 (9)1.5.2串口Async方式 (9)1.6响应消息格式 (10)1.6.1TCP/IP方式 (10)1.6.2串口Async方式 (11)1.7数据的表示 (11)1.7.1ASCII字符编码 (12)1.7.2EBCDIC字符编码 (12)1.7.3EBCDIC码至ASCII码的转换表 (14)1.8输入/输出流控制 (16)1.9错误控制 (16)1.10多HSM的使用 (17)1.11用户存储 (17)1.11.1分配和使用索引 (18)1.11.2指定存储数据 (19)1.12通过一台连接在HSM上的打印机打印 (20)1.13禁止弱密钥和半弱密钥 (20)1.13.1DES弱密钥 (20)1.13.2DES半弱密钥 (21)1.14本地主密钥 (21)1.14.1LMK表 (21)1.14.2标准测试用LMK集 (22)1.15本地主密钥变种 (23)1.16本地主密钥三DES变量方案 (24)1.16.1一般说明 (24)1.16.2密钥类型表 (25)1.16.3密钥方案表 (26)第二篇主机命令 (27)2.1一般说明 (27)2.2通用密钥管理命令 (27)2.2.1生成密钥 (28)2.2.2生成并打印一个成份 (29)2.2.3由密的成份组成一个密钥 (31)2.2.4输入一个密钥 (32)2.2.5输出一个密钥 (33)2.3区域主密钥(ZMK)管理 (34)2.3.1生成并打印一个ZMK成份 (35)2.3.2由三个ZMK成份组成一个ZMK (37)2.3.3由2到9个ZMK成份组成一个ZMK (38)2.3.4将ZMK由ZMK转为LMK加密 (40)2.4区域PIN密钥(ZPK)管理 (42)2.4.1生成一个ZPK (43)2.4.2将ZPK由ZMK转为LMK加密 (44)2.4.3将ZPK由LMK转为ZMK加密 (46)2.5区域加密密钥,区域认证密钥管理 (47)2.5.1生成一个ZEK/ZAK (48)2.5.2将ZEK/ZAK从ZMK转为LMK加密 (49)2.5.3将ZEK/ZAK从LMK转为ZMK加密 (50)2.6终端主密钥,终端PIN密钥和终端认证密钥管理 (51)2.6.1生成并打印一个TMK、TPK或PVK (52)2.6.2生成一个TMK、TPK或PVK (54)2.6.3将TMK、TPK或PVK从LMK转为另一TMK、TPK或PVK加密542.6.4将TMK、TPK或PVK从ZMK转为LMK加密 (55)2.6.5将TMK、TPK或PVK从LMK转为ZMK加密 (56)2.6.6生成一对PVKs (57)2.7终端认证密钥管理 (60)2.7.1生成一个TAK (61)2.7.2将TAK从ZMK转为LMK加密 (62)2.7.3将TAK从LMK转为ZMK加密 (63)2.7.4将TAK从LMK转为TMK加密 (64)2.8PIN和Offset的生成 (65)2.8.1生成一个随机的PIN (66)2.8.2生成一个VISA的PIN校验值 (67)2.9PIN校验 (68)2.9.1校验一个用VISA方式的终端PIN (68)2.9.2校验一个用VISA方式的、用于交换的PIN (69)2.9.3校验一个用比对方式的终端PIN (70)2.9.4校验一个用比对方式的、用于交换的PIN (71)2.10PIN翻译 (72)2.10.1将PIN从一个ZPK翻译到另一个ZPK(已升级) (73)2.10.2将PIN从TPK翻译到ZPK (75)2.10.3将PIN从ZPK翻译到LMK (76)2.10.4将PIN从TPK翻译到LMK (77)2.10.5将PIN从LMK翻译到ZPK (78)2.11PIN请求数据处理 (79)2.12清除PIN支持 (81)2.12.1加密一个明文的PIN (82)2.13主机口令支持 (82)2.14消息认证码支持 (83)2.14.1生成一个MAC (84)2.14.2校验一个MAC (85)2.14.3校验并转换一个MAC (85)2.14.4用ANSI X9.19方式对大消息生成MAC(MAB) (86)2.14.5用银联方式对大消息生成MAC(MAB) (88)2.15打印输出的格式 (92)2.15.1字格式打印PINs (95)ONE TWO THREE FOUR (95)2.15.2以列形式打印PINs (96)2.15.3装载格式化数据至HSM (97)2.15.4装载附加格式化数据至HSM (98)2.16复合命令 (99)2.16.1退出授权状态 (99)2.16.2生成密钥校验值(非双倍长度ZMK) (100)2.16.3生成密钥校验值 (101)2.16.4完成诊断 (102)2.16.5HSM状态 (103)2.17VISA卡校验值 (104)2.17.1生成CVK对 (105)2.17.2将CVK对由LMK下加密转换为ZMK下加密 (105)2.17.3将CVK对由ZMK下加密转换为LMK下加密 (106)2.17.4生成VISA CVV (107)2.17.5校验VISA CVV (108)2.17.6用EDK密钥加解密数 (109)第三篇PIN格式 (110)3.1一般说明 (110)3.2格式01 (110)3.3格式02 (111)3.4格式03 (111)3.5格式04 (112)3.6格式05 (113)1NP1...PNR...R . (113)第四篇错误代码 (113)4.1错误代码表 (113)第五篇名词表 (115)5.1一般说明 (115)文档修订记录版本创建日期作者校订备注1.02007/12/21第一篇编程指南1.1 简要介绍HSM(Host Security Module)称为主机安全模块(注:以下将主机安全模块均称为HSM),作为主机的外围设备,为主机在一个物理上安全的环境中实现加/解密运算的功能。
HSPY3603仪表采用RS232或者RS485传输标准与计算机通迅,详细资料如下:
注(本机只支持功能码03,10)
波特率:1200,2400,4800,9600,19200
起始位:1
数据位:8
校验位:无
停止位:1
一.MODBUS_RTU帧结构
消息发送至少要以3.5个字符时间的停顿间隔开始;整个消息帧必须作为一连续的数据传输流,如果在帧完成之前有超过3.5个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域。
同样地,如果一个新消息在小于3.5个字符时间内接着前个消息开始,接收的设备将认为它是前一消息的延续。
一帧信息的标准结构如下所示:
地址域: 主机通过将要联络的从机的地址放入消息中的地址域来选通从设备,单个从机的地址范围是1…15(十进制)。
地址0是用作广播地址,以使所有的从机都能认识。
功能域:有效的编码范围是1…255(十进制);当消息从主机发往从机时,功能代码将告之从机需要去干什么。
例如:读/写一组寄存器的数据内容等。
数据域:主机发给从机的数据域中包含了从机完成功能域的动作时所必要的附加信息;如:寄存器地址等。
CRC校验:CRC生成之后,低字节在前,高字节在后。
注:本仪表通讯时帧与帧之间的响应间隔,通讯速率大于等于9600bps时不大于5ms
注:共用电源输出/停止设定的时候电源的通讯地址为0xAA,这时可以起停多台电源。
MODBUS RTU 通讯协议
通讯数据的类型及格式:
信息传输为异步方式,并以字节为单位。
在主站和从站之间传递的通讯信息是10位的字格式:
●通讯数据(信息帧)格式
一、通讯信息传输过程:
当通讯命令由发送设备(主机)发送至接收设备(从机)时,符合相应
地址码的从机接收通讯命令,并根据功能码及相关要求读取信息,如果CRC 校验无误,则执行相应的任务,然后把执行结果(数据)返送给主机。
返回的信息中包括地址码、功能码、执行后的数据以及CRC校验码。
如果CRC校验出错就不返回任何信息。
1.1 地址码:
地址码是每次通讯信息帧的第一字节(8位),从0到255。
这个字节表明由用户设置地址的从机将接收由主机发送来的信息。
每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送信息。
当从机回送信息时,回送数据均以各自的地址码开始。
主机发送的地址码表明将发送到的从机地址,而从机返回的地址码表明回送的从机地址。
相应的地址码表明该信息来自于何处。
1.2 功能码:
是每次通讯信息帧传送的第二个字节。
ModBus通讯规约可定义的功能码为1到127。
作为主机请求发送,通过功能码告诉从机应执行什么动作。
作为从机响应,从机返回的功能码与从主机发送来的功能码一样,并表明从机已响应主机并且已进行相关的操作。
表8.1 MODBUS部分功能码
1.3 数据区:
数据区包括需要由从机返送何种信息或执行什么动作。
这些信息可以是数据(如:开关量输入/输出、模拟量输入/输出、寄存器等等)、参考地址等。
例如,主机通过功能码03告诉从机返回寄存器的值(包含要读取寄存器的起始地址及读取寄存器的长度),则返回的数据包括寄存器的数据长度及数据内容。
对于不同的从机,地址和数据信息都不相同(应给出通讯信息表)。
HSPY系列电源采用Modbus通讯规约,主机(PLC、RTU、PC机、DCS等)利用通讯命令(功能码03),可以任意读取其数据寄存器(其数据信息表详见附录)。
HSPY响应的命令格式是从机地址、功能码、数据区及CRC码。
数据区的数据都是两个字节,并且高位在前。
4.静止时间要求
发送数据前要求数据总线静止时间即无数据发送时间大于(5ms 波特率为9600时).
二、M ODBUS功能码简介(HSPY可编程电源只支持以下功能码)
2.1 功能码“03”:读多路寄存器输入
例如:主机要读取地址为01,起始地址为1000的2个从机寄存器数据。
从机数据寄存器的地址和数据为:
主机发送的报文格式:
从机响应返回的报文格式:
2.5 功能码“10”:写多路寄存器
主机利用这个功能码把多个数据保存到HSPY电源的数据存储器中去。
Modbus通讯规约中的寄存器指的是16位(即2字节),并且高位在前。
这样HSPY的存储器都是二个字节。
例如:主机要把0E10保存到地址为1000的从机寄存器中去(从机地址码为01)。
主机发送的报文格式:
从机响应返回的报文格式:
三、错误校验码(CRC校验):
主机或从机可用校验码进行判别接收信息是否正确。
由于电子噪声或一些其它干扰,信息在传输过程中有时会发生错误,错误校验码(CRC)可以
检验主机或从机在通讯数据传送过程中的信息是否有误,错误的数据可以放弃(无论是发送还是接收),这样增加了系统的安全和效率。
MODBUS通讯协议的CRC(冗余循环码)包含2个字节,即16位二进制数。
CRC码由发送设备(主机)计算,放置于发送信息帧的尾部。
接收信息的设备(从机)再重新计算接收到信息的CRC,比较计算得到的CRC是否与接收到的相符,如果两者不相符,则表明出错。
●CRC码的计算方法是:
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,进行通讯信息帧下一个字节的处理;
7、将该通讯信息帧所有字节按上述步骤计算完成后,得到的16位CRC寄存器的高、低字节进行交换;
8、最后得到的CRC寄存器内容即为:CRC码。