一种二进制通信协议数据链路层传输帧格式制造技术

技术编号:18840038 阅读:26 留言:0更新日期:2018-09-05 08:23
本发明专利技术提出了一种二进制通信协议数据链路层传输帧格式,用于解决RTU模式中以时间间隔标识一帧数据开始和结束导致通信可靠性和传输效率较低的问题。本发明专利技术包括帧头、应用数据单元ADU和帧尾;帧头采用0xFE;应用数据单元ADU包括依次连接的地址段、简单数据单元PDU和校验段。地址段包括选项字节字段和设备号字段,简单数据单元PDU包括依次连接的命令码和数据段;帧尾采用0xFF。本发明专利技术的优点在于:帧头采用0xFE,帧尾采用0xFF,提高了数据传输的可靠性及传输的稳定性,缩短了每帧数据的传输时间,在传输大量数据时有效的提高数据的传输效率。采用0xFD作为转义字符,增加数据帧有效内容载荷。

A binary communication protocol data link layer transmission frame format

A binary communication protocol data link layer transmission frame format is proposed to solve the problem of low communication reliability and transmission efficiency caused by marking the start and end of a frame data at intervals in RTU mode. The invention comprises a frame header, an application data unit ADU and a frame tail; a frame header adopts 0xFE; and an application data unit ADU comprises an address segment connected sequentially, a simple data unit PDU and a check segment. Address segment includes option byte field and device number field, simple data unit PDU includes command code and data segment connected sequentially; frame end adopts 0xFF. The advantages of the invention are that the frame head adopts 0xFE and the frame tail adopts 0xFF, which improves the reliability of data transmission and the stability of transmission, shortens the transmission time of each frame data, and effectively improves the transmission efficiency of data when transmitting a large amount of data. 0xFD is used as escape character to increase effective load of data frames.

【技术实现步骤摘要】
一种二进制通信协议数据链路层传输帧格式
本专利技术属于通信传输协议领域,涉及一种数据链路层的通信协议,具体涉及一种二进制通信协议数据链路层传输帧格式,可用于控制设备之间的通信。
技术介绍
为实现控制器及不同设备之间的通信,工业上存在着多种通信协议,Modbus协议因其接口广泛,廉价,传输速率高效等特性,在工业领域被广泛的应用和推广,通过此协议,可实现控制器相互之间、控制器及其它设备之间进行通信,目前已成为一种工业领域被广为应用的真正开放、标准的网络通信协议,其在数据链路层协议主要有两种模式:ASCII码模式和RTU模式。当采用ASCII码模式通信时,消息中每8bits用两个ASCII码表示,报文以冒号(:)字符(ASCII码3AH)开始,以回车换行符结束(ASCII码0DH,0AH),这种方式的主要优点是字符发送时间间隔可达到1s而不发生错误,但ASCII码模式只能传输ASCII码,如果帧数据内容为二进制数据(信息多是二进制数据),则需要转化成ASCII码进行传输,造成传输数据变长,传输数据量变大。因此只在特殊场合应用。当采用RTU模式通信时,数据链路层传输帧格式的结构如图1所示,消息中每8bits对应两个4位的十六进制字符,每帧间的时间间隔不能超过少于3.5个字符,则帧结构包括一个至少3.5个字符的时间标志一帧数据的开始,应用数据单元ADU和一个至少3.5个字符的时间表示一帧数据的结束也即下一帧数据的开始,这种方式的主要优点是:在同样波特率下,可比ASCII码方式传送更多的数据,但由于帧数据采用时间间隔作为帧开始和帧结束标识,在实际通信过程中,时间间隔的控制通过字符超时定时器的时钟标记,定时器时钟依赖于硬件电路的设计和软件的编写,因此通信容易受到硬件电路和软件编程稳定性的影响,导致通信可靠性和传输效率较低。为了提高通信的可靠性和传输效率,目前采用的方法大多是在RTU模式的基础上通过在硬件电路上提高定时器的精确性,或者在软件编程上优化程序算法实现的,但是存在的缺陷是由于硬件电路设计本身的限制通信的可靠性和传输效率仍然较低。
技术实现思路
本专利技术的目的在于克服上述现有技术存在的不足,提出了一种二进制通信协议数据链路层传输帧格式,旨在提高通信的可靠性和传输效率。本专利技术的设计思路是:结合ModbusASCII码模式下具有专用的起始帧和结束帧的优点,将标准ModbusRTU模式下以时间间隔不能超过少于3.5个字符作为判断帧开始和结束的条件去除,改为在报文中增加0xFE作为帧头,0xFF作为结束帧。根据上述技术思路,本专利技术采用的技术方案为:一种二进制通信协议数据链路层传输帧格式,其传输帧格式包括帧头、应用数据单元ADU和帧尾;所述帧头,采用0xFE;所述应用数据单元ADU,包括依次连接的地址段、简单数据单元PDU和校验段,其中,所述地址段,包括选项字节字段和设备号字段,所述简单数据单元PDU,包括依次连接的命令码和数据段;所述帧尾,采用0xFF;所述应用数据单元ADU中出现的数据需要转义时,采用0xFD作为转义字符,转义规则为:若出现的数据为0xFD,则将0xFD表示为0xFD,0x00;若出现的数据为0xFE,则将0xFE表示为0xFD,0x01;若出现的数据为0xFF,则将0xFF表示为0xFD,0x02。上述一种二进制通信协议数据链路层传输帧格式,所述选项字节字段,其中第0位为加密指示位,加密指示位为0时代表不加密,为1时代表加密;第1位和第2位为两位连续的保留位,保留位的默认值为00;第3位和第4位为协议版本号,用于指示不同协议版本,使传输帧格式能向下兼容不同协议格式,协议版本号默认值为00;第5位、第6位和第7位为保留位,保留位的默认值为0。上述一种二进制通信协议数据链路层传输帧格式,所述设备号字段,其中第0位、第1位、第2位和第3位,表示目的设备号,第4位、第5位、第6位和第7位,表示源设备号,目的设备号和源设备号的取值均为0~15。上述一种二进制通信协议数据链路层传输帧格式,所述数据段,包括依次连接的1Byte有效数据长度段、NByte有效数据段和2Byte加密段。上述一种二进制通信协议数据链路层传输帧格式,所述命令码,其长度为1Byte。上述一种二进制通信协议数据链路层传输帧格式,所述校验段,其长度为1Byte,采用CRC校验方式。本专利技术与现有技术对比,具有以下特点:1.本专利技术帧头采用0xFE,帧尾采用0xFF,采用实际字符作为帧头,帧尾避免了通过硬件电路控制时间间隔,提高了数据传输的可靠性及传输的稳定性,克服了现有技术中以时间间隔作为帧的开始或结束标志带来的通信易受到硬件电路的性能和软件编程的影响的缺点;2.本专利技术采用0xFD作为转义字符,可减少数据帧中转义字符的个数,增加数据帧有效内容载荷,同时帧头采用0xFE,帧尾采用0xFF,数据传输所花费的时间长度为2个字符的时间,与现有技术,RTU模式中以3.5个字符的时间间隔作为传输帧的间隔相比,缩短了每帧数据的传输时间,在传输大量数据时这个时间的节约将有效的提高数据的传输效率。附图说明图1是现有RTU模式数据链路层传输帧格式的结构示意图;图2是本专利技术的整体结构示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本专利技术进行进一步的详细说明。参照图2,一种二进制通信协议数据链路层传输帧格式,所述传输帧格式包括帧头、ADU应用数据单元和帧尾,其具体组成如表1所示。所述帧头,采用0xFE。所述帧尾,采用0xFF。RTU传输模式要求发送的两针数据之间要有一定的数据间隔,以保证接收方能够区分,在实际工程中,时间间隔的控制通常通过字符超时定时器的时钟标记,需要采用硬件电路和软件编程来实现,因此消息传输的准确性及效率都依赖于硬件电路的性能和软件编程的实现,而本专利技术优选的使用特殊字符作为开始和结束标志,提高了数据传输的可靠性及传输的稳定性。表1帧格式由于帧头采用了0xFE,帧尾采用了0xFF,为防止所述应用数据单元ADU中出现0xFE,0xFF字符而使接收端错误的重新开始或终止一帧数据的接收,需要定义转义字符。转义字符的增加必然引起传输数据的增加,考虑到最小化数据单元中转义字符的个数,本专利技术优选的使用0xFD作为转义字符,当一个字符的数据小于0xFD时直接使用数据,当数据大于或等于0xFD时使用转义操作,将1Byte数据转义为2Byte数据,转义规则为:若出现的数据为0xFD,则将0xFD表示为0xFD,0x00;若出现的数据为0xFE,则将0xFE表示为0xFD,0x01;若出现的数据为0xFF,则将0xFF表示为0xFD,0x02,数据转义的对比如表1。表2转义字符设置数据转义0xFD0xFD0x000xFE0xFD0x010xFF0xFD0x02所述ADU应用数据单元,包括依次连接的地址段、简单数据单元PDU和校验段。所述地址段,优选的采用2Byte,包括选项字节字段和设备号字段。所述选项字节字段,其中,第0位为加密指示位,加密指示位为0时代表不加密,为1时代表加密;第1位和第2位为两位连续的保留位,保留位的默认值为00;第3位和第4位为协议版本号,用于指示不同协议版本,使传输帧格式能向下兼容不同协议格式,协议版本文档来自技高网
...

【技术保护点】
1.一种二进制通信协议数据链路层传输帧格式,包括帧头、应用数据单元ADU和帧尾;其特征在于:所述帧头,采用0xFE;所述应用数据单元ADU,包括依次连接的地址段、简单数据单元PDU和校验段,其中,所述地址段,包括选项字节字段和设备号字段,所述简单数据单元PDU,包括依次连接的命令码和数据段;所述帧尾,采用0xFF;所述应用数据单元ADU中出现的数据需要转义时,采用0xFD作为转义字符,转义规则为:若出现的数据为0xFD,则将0xFD表示为0xFD,0x00;若出现的数据为0xFE,则将0xFE表示为0xFD,0x01;若出现的数据为0xFF,则将0xFF表示为0xFD,0x02。

【技术特征摘要】
1.一种二进制通信协议数据链路层传输帧格式,包括帧头、应用数据单元ADU和帧尾;其特征在于:所述帧头,采用0xFE;所述应用数据单元ADU,包括依次连接的地址段、简单数据单元PDU和校验段,其中,所述地址段,包括选项字节字段和设备号字段,所述简单数据单元PDU,包括依次连接的命令码和数据段;所述帧尾,采用0xFF;所述应用数据单元ADU中出现的数据需要转义时,采用0xFD作为转义字符,转义规则为:若出现的数据为0xFD,则将0xFD表示为0xFD,0x00;若出现的数据为0xFE,则将0xFE表示为0xFD,0x01;若出现的数据为0xFF,则将0xFF表示为0xFD,0x02。2.根据权利要求1所述的一种二进制通信协议数据链路层传输帧格式,其特征在于:所述选项字节字段,其中第0位为加密指示位,加密指示位为0时代表不加密,为1时代表加密;第1位和第2位为两位连续的保留位,保留位的默认值为0...

【专利技术属性】
技术研发人员:薛飞汪顺长宋艳玲
申请(专利权)人:丽水博远科技有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1