MPC860的HDLC通道驱动程序的设计与实现
时间:11-20
来源:互联网
点击:
阐述了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和帧中继网等提供信令和控制数据链路。
2 MPC860及其SCC接口
MPC860是美国摩托罗拉公司生产的一种通用的32位嵌入式通信控制器。它是以RISC体系结构为基础并在片内集成有微处理器和多种外设接口的专用通信芯片,具有强大的通信和网络协议处理能力,可广泛应用于各种通信和网络产品中。它主要由嵌入式PowerPC内核、系统接口单元(SIU)和通信处理器模块(CPM)组成。它的CPM提供了丰富的串行通道,包括四个串行通信控制器(SCC)、两个串行管理单元(SMC)、一个串行外围接口(SPI)和一个I2C接口。
其中,SCC是MPC860最强大的通信设备。四个SCC端口通过相应的配置可支持不同的协议,如以太网、IEEE802.3 10M局域网、HDLC、appleTalk、通用异步收发协议UART、同步UART、串行红外线接口IrDA、二进制同步通信BISYNC及透明发送等网络协议,可以分别用于网桥、路由器、网关、LAN、WAN及专用网。因此,本文将其中的一个SCC端口配置成HDLC模式用在VOIP信令网关中,为信令网和网关之间提供链路支持。SCC数据通信基本流程如图2所示。
当处于接收状态时,数据首先进入FIFO。当接收FIFO充满时,CPM向SCC发请求,并由CPM RISC处理该请求,然后通过写SDMA将数据按照缓存描述符的指示存入指定的缓存中。缓存描述符是进行数据收发的基础,它由三个部分组成:头16个比特用来描述收发的状态模式;接下来是数据长度描述符,表示即将存入缓存的数据长度;最后是数据指针,它指向即将存入数据的缓存。发送过程与接收过程基本上是一样的,通过缓存描述符,能够正确读写缓存。
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和帧中继网等提供信令和控制数据链路。
2 MPC860及其SCC接口
MPC860是美国摩托罗拉公司生产的一种通用的32位嵌入式通信控制器。它是以RISC体系结构为基础并在片内集成有微处理器和多种外设接口的专用通信芯片,具有强大的通信和网络协议处理能力,可广泛应用于各种通信和网络产品中。它主要由嵌入式PowerPC内核、系统接口单元(SIU)和通信处理器模块(CPM)组成。它的CPM提供了丰富的串行通道,包括四个串行通信控制器(SCC)、两个串行管理单元(SMC)、一个串行外围接口(SPI)和一个I2C接口。
其中,SCC是MPC860最强大的通信设备。四个SCC端口通过相应的配置可支持不同的协议,如以太网、IEEE802.3 10M局域网、HDLC、appleTalk、通用异步收发协议UART、同步UART、串行红外线接口IrDA、二进制同步通信BISYNC及透明发送等网络协议,可以分别用于网桥、路由器、网关、LAN、WAN及专用网。因此,本文将其中的一个SCC端口配置成HDLC模式用在VOIP信令网关中,为信令网和网关之间提供链路支持。SCC数据通信基本流程如图2所示。
当处于接收状态时,数据首先进入FIFO。当接收FIFO充满时,CPM向SCC发请求,并由CPM RISC处理该请求,然后通过写SDMA将数据按照缓存描述符的指示存入指定的缓存中。缓存描述符是进行数据收发的基础,它由三个部分组成:头16个比特用来描述收发的状态模式;接下来是数据长度描述符,表示即将存入缓存的数据长度;最后是数据指针,它指向即将存入数据的缓存。发送过程与接收过程基本上是一样的,通过缓存描述符,能够正确读写缓存。
- 蓝牙无线电调制解调器Siw1701原理与应用(02-19)
- 嵌入式移动数据库的关键技术(03-20)
- 在嵌入式SQL中怎样使用游标(08-12)
- 嵌入式Linux系统软件开发学习思路详细介绍 (08-20)
- 基于AVR单片机的嵌入式“瘦服务器”系统设计思想(03-11)
- 嵌入式系统设计中的存储碎片收集策略(05-04)