MPC860的HDLC通道驱动程序的设计与实现
阐述了MPC860芯片及其SCC接口的基本工作原理,介绍了在SCC通道上实现HDLC协议的基本设计思想及具体实现,并给出了主要功能函数的设计流程。
HDLC作为一种基于点到点/多点的数据链路层协议,常常用来连接路由器和网关等网络设备。摩托罗拉公司生产的MPC860微处理器是当前应用非常广泛的嵌入式微处理器,良好的性价比和强大的通信与网络协议处理能力以及丰富的通信接口支持使其非常适合构建VOIP网关;特别是其SCC接口本身支持HDLC协议,因此可以通过它的一个SCC接口来为VOIP网关和信令网之间提供链路支持。VOIP作为一种基于IP的数据传输技术,广泛地利用Internet全球互连环境,将传统的PSTN电话网和Internet网络合二为一,因此可以有效地降低系统成本和管理成本。作为一种高效且经济的数据和话音通信方式,它是当前技术研究和开发的热点。实现VOIP的关键是IP网关,其中信令网关主要将信令网的信令信息转换成Internet网络的相关报文控制信息。本文介绍如何在MPC860板的SCC2通道上实现HDLC的驱动程序,从而为信令网和网关之间提供链路支持。
1 HDLC简介
HDLC是一个在同步网上传输数据并面向位的数据链路层协议,具有透明传输、可靠性高、传输效率高以及灵活性高等特点。它采用点对点或多点(多路播送或一对多)连接的主/从结构,要求每个从站都有唯一的地址,从站只有在允许通信时才能且只能和主站通信,这就消除了串行线路上由于几个从站同时发送引起冲突的可能性。其它的通用的二层协议如SS#7、AppleTalk、 LAPB、LAPD等都是基于HDLC及其帧结构的。HDLC帧结构如图1所示。
F:标志位,每个HDLC帧以8位序列(01111110)标志帧的开始和结束,这是HDLC中仅有的两个包含连续六个1的可能组合。为了避免在其它域中出现这种组合,HDLC采用了一种叫作位插入的办法实现组合,即每发现有连续五个1时便在下一位自动插入一个0,接收器在收到连续五个1之后又自动删去插入的0。标志位除了标志帧的开始和结束外,还可用作时钟同步,接收设备不断地搜寻标志位,以实现帧同步,从而保证接收部分对后续字段的正确识别。另外,在帧与帧的空载期间,可以连续发送这种标志序列,用作时间填充。
A:目的地址位,用于指示报文发往何站。每个从站必须有唯一的地址,主站必须知道每个从站的指定地址。全“1”构成的地址在HDLC中定义为广播地址,全“0”构成的地址在HDLC中定义为无站地址,用于测试数据链路的状态。
C:控制位,用于系统初始化、标志帧的序号,并在报文发送完成后通知从站响应,对以前发送帧进行应答。尾随控制段的信息通常用于报文传输、出错报告和其它各种功能,这些功能由控制段的格式完成。有三种格式可供使用:报文格式、监控格式和无序号格式。
I:信息域,是可选的。如果信息存在,它必须有8位整数数量的长度。
CRC:帧校验位,长度为16位或32位,帧校验序列用于对帧进行循环冗余校验,其校验范围从地址字段的第一比特到信息字段的最后一比特的序列,并且规定为了透明传输而插入的“0”不在校验范围内。
HDLC常被用来向X.25、ISDN和帧中继网等提供信令和控制数据链路。
评论