- 空管雷达数据通讯转换器
- 2、3路100M以太网口
- 4、8、16路HDLC同步RS-232串口
- 串口、以太网双向转换
- 1U、19英寸标准机架式机箱
- 双电源冗余,低功耗、无风扇设计
HDLC协议,有时又称SDLC协议,是行业通信普遍采用的一种链路层协议。
HDLC协议规范参见ISO/IEC 13239标准文档。对于大部分行业通信的开发者和应用者,一般不需要对该标准做仔细的研究,因为其中相当多的内容我们用不到。
本文只描述HDLC协议的关键技术点,详细的介绍和说明请参考百度百科HDLC词条:http://baike.baidu.com/view/89174.htm。
SDLC/HDLC协议的标志符是一个8bit位组合,其格式为01111110(十六进制7E),即两个0中间夹着6个连续的1。一帧信息以标志符为起始,并以标志符作为结束,所以标志符也称为帧定界符。
HDLC协议的目标是能传输任意位组合的数据(即所谓的数据透明传输),同时标志符具有唯一性,即在数据序列中不能再出现01111110的序列。
为了达到透明传输的目的,发送方采用“0比特插入技术”,在发送信息帧时,对于除标志符以外的所有信息,只要遇到5个连续的1,就在其后自动插入1个0。接收方为恢复信息的原来格式,在接收时采用“0比特删除技术”,即除标志符外,当连续接收到5个1时,就自动删除1个0。
HDLC完整的帧由标志字段(F)、地址字段(A)、控制字段(C)、信息字段(I)、帧校验序列字段(FCS)等组成:
标志字段(F):为标志符01111110,标志帧的起止。
地址字段(A):标识通信站点的地址,其中全1表示广播地址。
控制字段(C):确定帧类型。
信息字段(I):可变长字节的信息内容,必须是8位的整数倍,也可以为0长度。
帧校验序列(FCS):采用16位的CRC,对两个标志字段之间的整个帧的内容进行校验。
开始标志 Opening Flag |
地址字段 Address Field |
控制字段 Control Field |
信息字段 Information Field |
帧校验序列 Frame Check Sequence Field |
结束标志 Closing Flag |
01111110 |
1字节 |
1字节 |
可变长,N字节 |
2字节 |
01111110 |
HDLC协议根据控制字段把帧划分为信息帧I(Information)、 监控帧S(Supervisory)和无编号帧U(Unnumbered)三大类。并定义了NRM、ARM、ABM三种链路操作方式,约定通信端点之间如何主从,如何进行握手。
在实际应用中,我们只是利用HDLC的帧机制,透明传输用户自定义的数据包,一般不实现协议规定的帧类型和操作模式。用户根据行业通信的需要,采用自定义帧类型及地址字段。
FCS字段一般是必须的,为了保证数据的可靠性,CRC校验往往必不可少。
针对不同的应用,用户一般自定义链路操作方式,并不实现HDLC规范定义的操作方式。
实际应用的帧格式往往如下图所示:
开始标志 Opening Flag |
用户自定义数据字段 Data Field |
帧校验序列 Frame Check Sequence Field |
结束标志 Closing Flag |
01111110 |
可变长,N字节 |
2字节 |
01111110 |
由于HDLC很多情况下工作在低速线路上,为了避免包的延迟过长,要求数据字段尽可能的短,一般最长不超过256字节。