基于DS80C320的路由器交换网板控制模块的设计与实现
2008-12-15
作者:王琳琳 杨兆选 张 涛 刘玉印
摘 要:介绍了采用Dallas公司的高速处理器DS80C320设计和实现的路由器交换网板" title="网板">网板控制模块" title="控制模块">控制模块,给出了控制模块的硬件结构图,并阐明了控制模块对交换芯片" title="交换芯片">交换芯片的控制功能。
关键词: 高速路由器 交换网板控制模块 DS80C320
近几年来,随着Internet规模的进一步扩大,对高性能、宽带接入的IP路由器的需求急剧增加。路由器的主要功能是数据包的转发,该功能由交换芯片来实现。因此,需要有一个处理器来实现对交换芯片数据包转发功能的控制,同时控制交换网板与主控板" title="主控板">主控板的通信,笔者采用DS80C320处理器。本系统的技术核心是如何利用EPLD产生的控制信号" title="控制信号">控制信号实现DS80C320与主控板间的通信和DS80C320对交换芯片的控制。
1 高速路由器的基本结构
高速路由器主要由主控板、交换网板和线路接口板等组成。主控板是路由器的控制核心,完成整个路由器的管理和控制,直接接收网管中心的指令。交换网板在路由器中完成高速数据交换,它由交换模块和控制模块组成。交换模块包括两片交换芯片,完成数据包转发功能;控制模块是交换网板的控制核心,实现对网板内各功能模块的状态检测和控制,保证交换芯片转发数据包的正常工作。控制模块与路由器的主控板通过HSCX(串行通信控制器)进行通信,完成主控板对交换网板功能请求的应答处理,还可以通过RS232串口与PC机进行通信,完成交换网板的功能调试。
2 控制模块的硬件结构
本系统的路由器交换网板控制模块主要由DS80C320处理器和一些外围器件组成,这些外围器件包括EPLD、FLASH、外部RAM和HSCX通道。控制模块的硬件结构如图1中虚线框部分所示。
2.1 DS80C320的特点
DS80C320属于Dallas公司的高速处理器系列。采用该芯片完成交换网板的控制功能,主要是DS80C320有以下几个特点:(1)具有新型高速结构,最大晶振频率33MHz,机器周期为4个时钟周期(普通MCS-51系列单片机的机器周期为12个时钟周期),从而使每条8051指令的执行速度在相同的晶振下快了3倍。(2)DS80C320与51系列单片机完全兼容,并采用标准的8051指令集,给设计与开发带来了方便。(3)可以通过改变MOVX指针的执行时间来访问速度不同的RAM和其他外围器件。
DS80C320提供16位地址线,可寻址64KB的数据空间和程序空间。由于DS80C320内不含片内ROM,所以程序代码是存储在FLASH中的。虽然目前系统的软件不到60KB,但考虑到系统升级需要程序的扩展,选用了128KB的FLASH空间,需要17位地址线。这样就产生处理器的寻址能力不足的问题,采用EPLD内部的20H寄存器来产生FLASH的第14、15、16位地址及片选信号和读写信号。128KB的FLASH空间分成了2页,每页有64KB,第16位地址线决定FLASH空间的页号,DS80C320通过这种方式访问FLASH的128KB空间。
2.2 EPLD功能描述
本系统的EPLD采用ALTERA公司的EPM7512,该芯片属于MAX7000系列。除了2.1中的寻址扩展功能外,EPLD还用作处理器与其外围电路控制信号的接口。由于本系统的控制信号比较多,若采用普通的逻辑门电路则整个系统的连线会非常复杂,功耗也会增加。所以采用EPLD来产生DS80C320与交换芯片、FLASH和HSCX之间的控制信号和地址信号。EPLD与处理器的接口主要实现了低位地址的锁存和一些器件的片选信号。CP_DATA[0:7]是地址和数据复用的信号,锁存后输出低位地址LOW_CP_ADD[0:7]。EPLD对HSCX通道的控制信号包括使能信号ENABLE_HSCX、复位信号RESET_HSCX、数据发送控制信号TXD_ENABLE等。EPLD对交换芯片的控制信号包括读写信号READ_OCM、WRITE_OCM、OCM操作类型选择信号EMB_MODE_OUT等。
2.3 DS80C320与HSCX间的通信
本系统的HSCX采用SIEMENS公司的SAB82525,该芯片提供两个全双工的高级链路控制(HDLC)通道,它的最高传输速率可达到4M bit/s。它用于主控板与交换网板间的数据通信,包括主控板发送、交换网板接收的功能请求,交换网板发送、主控板接收的应答及上报。由EPLD提供HSCX的数据线、地址线、使能信号和读写信号线。DS80C320对SAB82525的控制是通过读写SAB82525的内部寄存器来实现的;与HSCX之间的数据传送采用中断方式。当SAB82525满足产生中断的条件(如接收到数据帧)时,它向处理器发出中断请求,处理器读取中断寄存器ISTA、EXIR确定中断发生的原因并做出相应的处理。
3 基于DS80C320的控制模块对交换芯片的控制
采用的交换芯片PRS28G属于IBM公司的第二代高性能包路由交换产品。其端口速率达到OC48(2.5Gbps)并具有很好的扩展性,可通过速率扩展或者端口扩展构造出更大容量的交换网络,是数据帧和信元交换系统的理想解决方案。
交换芯片内部包含一个状态寄存器、32个应用寄存器及一个OCM接口。OCM接口是串行接口,用于处理器编程应用寄存器或是读取状态寄存器内容。交换芯片与DS80C320之间的通信和控制是通过EPLD内的OCM控制接口完成的。处理器并行读写EPLD。而OCM与EPLD的接口是串行的,串并转换是通过在EPLD内设置特定寄存器空间来完成的。处理器与交换芯片之间的数据传输过程是:处理器向EPLD特定寄存器写数据,数据通过EPLD输出EMB_DATA_IN串行信号,写入OCM指令寄存器,再根据OCM的指令集定义,决定其操作,包括读/写应用寄存器、读取状态寄存器、交换芯片复位等。每次操作的结果存储在响应寄存器中,在处理器控制下通过EMB_DATA_OUT信号移入EPLD特定地址空间,供处理器读取。
4 系统的软件构成
此系统的软件是由主函数及其调用的子函数和三个中断程序组成。
4.1 主函数(包括它调用的子函数)
主函数首先检测交换网板上的各种设备,初始化整个系统,然后开始一个主循环,在系统上电状态下程序总在这个循环中运行。在没有中断或复位请求的情况下,循环检测各功能模块的执行标志位,当标志位有效时,执行相应的功能模块。
主函数的概要流程如图2所示。
4.2 中断处理程序
三个中断处理程序分别是:
(1) 定时器中断处理程序,完成周期性功能模块标志位的产生。
(2) 外部中断1,完成来自HSCX的数据接收、存储及应答数据的发送功能。
(3) 串口中断,实现串口数据的接收、存储及应答数据的发送功能。
5 实验结果与讨论
为检测该系统是否能够稳定地运行,在软件中设计了FUNC_TEST子函数。该子函数负责向交换芯片的每个端口发送14个数据包,其中数据域的内容为随机值,这些数据在交换芯片内部循环,形成一定的负载流量,模拟路由器的实际工作环境。经检测,整个系统工作稳定,处理器DS80C320完成了本交换网板控制模块的控制功能。
参考文献
1 High-Speed Microcontroller Data Book. Dallas semiconductor,1995
2 李朝青.单片机原理及接口技术. 北京:北京航空航天大学出版社,1999.6
3 张 涛.一种高速路由器交换控制.代码的分析和优化.天津大学硕士学位论文. 2001