南京航空航天大學電子信息工程學院 賀 信
下一代網絡(NGN)是多網融合的產物,是可以提供多種包括媒體、音頻、數據等各種業務的開放性網絡。PICMG(PCI Industrial Computer Manufacturers Group)是開放性通信平臺架構規范的領導者,2005年PICMG在ATCA[1](Advanced Telecom Computing Architecture)的基礎上提出的MTCA(Micro Telecom Computing Architecture)架構規范[2],從此MTCA成為業界研究的熱點。MTCA因其開放性的架構標準,特別適用于多種不同網絡融合的小型化應用。本文提出一種基于此架構的ISDN網關設計[3][4],實現ISDN網絡在IP網絡中的接入。
本系統是通過設計符合MTCA規范的AMC(Advanced Mezzanine Card:高級夾層卡)模塊來實現ISDN接入網關的功能。1個典型的MTCA系統包括:12塊AMC模塊、1或2個MCH(MicroTCA Carrier Hub)、互連背板以及電源、散熱等模塊。MTCA系統支持AMC.0的所有4種規格的板卡,本系統采用AMC.2 Type E2(2個Gigabit Ethernet)。

圖1 AMC硬件組成
ISDN接入網關主要完成兩個功能:一是ISDN信令的與IP網絡中SIP(Session Initiation Protocol∶初始會話協議)[5]信令之間的轉換;二是媒體流之間的轉換。一個典型的通信流程如下:
(a)ISDN終端通過ISDN接入網關對IP網絡中的PC軟電話發起呼叫。
(b)ISDN接入網關收到ISDN信令呼叫信號,轉換為IP網絡中的SIP信令呼叫信號,發送至軟電話。
(c)軟電話按照SIP信令流程反饋SIP信令至ISDN接入網關。
(d)ISDN接入網關將來自軟電話的SIP信令轉換為相應ISDN的信令,發送至ISDN終端。
(e)以上過程直至呼叫建立,ISDN接入網關將ISDN信道與IP網絡中的媒體流通道打開,并進行相應的媒體流格式轉換。
本網關的AMC模塊硬件按照功能主要劃分為兩部分:一是核心控制電路,完成信令轉換的處理和媒體流協議的轉換,是電路的核心部分;二是接口電路,完成ISDN線路的接入和MTCA系統的接入及管理。AMC硬件組成如圖1。
核心控制電路采用MindSpeed公司的VOIP處理器M82515作為主處理器,用于媒體流的協議的轉換并提供軟件運行的硬件平臺;采用CPLD芯片來實現不同信號之間的交換、映射等處理。
M82515是專業用于VOIP設計的32位處理器,內部具有2個ARM920核和一個DSP核心,其中兩個ARM920核分別用于控制和媒體流處理,DSP核用于呼叫中各種鈴音的產生。
核心控制電路中的VOIP處理器最小系統,配備2片32M SDRAM芯片、1片用于存儲應用程序的8M Flash芯片以及1片用于存儲啟動程序(bootloader)1M Flash芯片。
接口電路的設計按照接口種類分為3個部分:一是用于ISDN線路接入的U接口,采用motorola公司的U接口芯片MC145572來設計實現;二是用于接入MTCA的GMII接口,采用REALTEK公司的以太網物理層芯片RT8201BL和Marvel公司的以太網交換芯片88E6045來設計實現;三是用于MTCA管理的I2C接口,采用Atmel公司的單片機ATmega128L來設計實現。
由于ISDN網關應用在電信領域,因此需要保證其實時性要求。本網關軟件平臺采用的操作系統是WindRiver公司開發的Vxworks實時操作系統。VxWorks操作系統由內核、I/O系統、文件系統、網絡支持幾部分組成,并且擁有功能強大,界面友好的開發工具Tornado開發平臺。網關軟件的設計包括兩大方面:一是基礎軟件系統,包括BSP(Board Support Package:板級支持包)的定制、操作系統的移植以及芯片驅動的編寫;二是應用程序的設計,本系統中應用程序主要完成ISDN信令和SIP信令呼叫流程的控制與轉換、媒體流的控制、交換和管理,應用程序的開發采用C語言設計。在下文中著重對Vxworks移植和呼叫流程的控制與轉換進行介紹[6][7]。
VxWorks的移植是通過BSP來實現的。Wind River公司的Tornado開發工具對應于不同硬件平臺提供了相應的BSP配置程序,功能十分強大。僅僅通過Tornado開發工具我們就可以生成bootloader引導程序和VxWorks內核映像。
BSP的配置文件一般在VxWorks編澤環境Tornado的目錄target/config/all和target/config/CPUxxx(CPU型號)中,前一個目錄中是通用的配置,一般不用修改,后一個目錄中包括了對應的處理器的型號,如本系統BSP的配置是主要是在target/config/MindARM920(MindSpeed提供)中的config.h文件中進行的。配置文件config.h主要定義了引導行,目標機操作系統包含的主要成分,如軟驅、IDE硬盤、SCSI設備、網絡等設備驅動,文件系統(DOSFS,TFFS,CDROMFS等),調試方式,內存地址等及有關參數。引導行(boot line)定義了引導設備、引導路徑、操作系統文件名、主機/目標機IP地址、子網掩碼、FTP用戶名和口令等參數。
修改config.h最重要的一步是修改引導行。引導文件bootrom.sys根據引導行來確定引導設備、引導路徑、操作系統文件,并且引導行存放在固定的位置。操作系統訪問引導行來確定網絡的配置,系統reboot時也將訪問引導行。bootrom.sys和VxWorks將它轉換為一個特定的引導參數結構BOOT_PARAMS。在config.h中,引導行定義為有特定格式的字符串。BOOT_PARAMS定義在hootlib.h中。
BSP配置完成后,接下來就是生成bootloader文件bootrom_uncmp和內核映像文件VxWorks。
在Tornado集成環境中執行菜單命令Build-〉Build Boot ROM…,在彈出的對話框中,左邊框中選擇BSP,選中ARM920,右邊框中選擇要生成的影像文件,選擇bootrom_uncmp,然后點擊OK確認。Tornado將生成bootrom_uncmp。VxWorks內核映像文件的生成和bootrom_uncmp文件生成的操作基本一致。
在設計呼叫流程控制與轉換軟件之前,先了解一下ISDN終端通過網關對SIP終端的呼叫模型,如圖2。
從模型中,我們知道ISDN信令與SIP信令之間的一一對應關系,因此在網關軟件中需要在實現ISDN協議(Q931、Q921)、SIP協議的基礎上設計綜合處理軟件來實現協議的轉換控制。在Vxworks軟件設計中,采用不同的任務來實現相對獨立的各個功能。本軟件系統中定義的任務如下:
Q931Task():ISDN信令中Q931協議任務,實現標準的Q931協議。
Q921Task():ISDN信令中Q921協議任務,實現標準的Q921協議。
IHDLTask():綜合處理任務,實現ISDN信令與SIP信令的轉換、控制。

圖2 ISDN終端呼叫SIP終端的基本呼叫模型

圖3 綜合處理任務主程序流程圖
eXosipTask()∶SIP協議處理任務,實現標準的SIP協議,本系統中通過eXosip協議棧和Osip2協議棧來實現。
QmcSendTask()∶ISDN信令物理層協議實現,HDLC發送任務。
QmcRcvTask()∶ISDN信令物理層協議實現,HDLC接收任務。
在軟件中還定義了一些其它的任務,比如用于定時的任務等,各任務之間通過消息隊列進行通信。其中ISDN信令Q931和Q921任務、SIP信令任務均按照協議定義的通信流程設計,物理層協議的兩個任務功能只是簡單的接收和發送處理,因此在此不多做介紹。下面給出綜合處理任務的主處理流程如圖3所示。
本文提出了一種基于MTCA架構的ISDN接入網關的設計,給出了系統軟硬件的結構。該系統利用MTCA這種小型化、開放性的平臺架構,可廣泛應用在各種多業務接入系統中。目前該網關已應用于某單位的含Pstn、ISDN、E1等多種業務MTCA接入平臺中,與常見的電信平臺相比,其體積小、成本低,安裝使用方便。
[1]PICMG標準,行業標準,Ethernet Advanced MezzanineCard Speci fi cation,AMC.2 R1.0,2007.
[2]PICMG標準,行業標準,Micro Telecommunications Computing Architecture Base Specification,MTCA.0 R1.0,2006.
[3]中華人民共和國郵電部技術規定,行業標準,YDN 034.3-1997,ISDN用戶-網絡接口規范第3部分:第三層基本呼叫控制技術規范,1997.
[4]中華人民共和國郵電部技術規定,行業標準,YDN 034.2-1997,ISDN用戶-網絡接口規范第2部分:數據鏈路層技術規范,1997.
[5]IETF標準,行業標準,RFC 3261 SIP:Session Initiation Protocol,2001.
[6]周啟平,張楊.VxWorks下設備驅動程序及BSP開發指南[M].北京:中國電力出版社,2004.
[7]程敬原.VxWorks軟件開發項目實例完全解析[M].北京:中國電力出版社,2005.