面向下一代網(wǎng)絡(luò)的網(wǎng)關(guān)接口芯片設(shè)計與實現(xiàn)
摘 要:本文重點介紹了NGN網(wǎng)關(guān)設(shè)備上核心接口芯片的基本原理和設(shè)計方法,該芯片能夠提供業(yè)務(wù)數(shù)據(jù)格式的轉(zhuǎn)換、信令處理、CPU接口映射等功能,采用Spartan3系列FPGA實現(xiàn),經(jīng)過系統(tǒng)測試,完全符合要求。
關(guān)鍵詞:下一代網(wǎng)絡(luò);網(wǎng)關(guān);CPU總線
前言
下一代網(wǎng)絡(luò)(NGN- Next Generation Network)是以IP為核心,可以同時支持語音、數(shù)據(jù)和多媒體業(yè)務(wù)的融合網(wǎng)絡(luò),是通信網(wǎng)絡(luò)的發(fā)展方向。傳統(tǒng)的以電路交換為核心的設(shè)備正逐漸被以IP為核心的網(wǎng)絡(luò)設(shè)備所替代。在這種演變過程中,設(shè)計一種能夠提供PSTN與NGN無縫連接的網(wǎng)關(guān)設(shè)備,從而實現(xiàn)以較低的成本向NGN網(wǎng)絡(luò)平滑過渡是目前各通訊設(shè)備制造商的重要研究課題。本文重點介紹了網(wǎng)關(guān)接口設(shè)備中核心器件,即NGN網(wǎng)關(guān)接口芯片的設(shè)計方法以及在Xilinx的Spartan3 XCS1000中的實現(xiàn)。
方案介紹
在本方案中,網(wǎng)關(guān)接口設(shè)備的主要功能是由網(wǎng)關(guān)接口板IP_GATEWAY所實現(xiàn),包括母板與子板兩部分,其中母板部分主要完成傳統(tǒng)的語音和數(shù)據(jù)部分的格式轉(zhuǎn)換以及信令處理,子板主要完成與媒體網(wǎng)關(guān)控制器MGC(Media Gateway Controller)的通信與控制功能,如H.248/Megaco 協(xié)議的處理、連接的建立與釋放等。其基本結(jié)構(gòu)如圖1所示,母板部分主要包括CPU-AMD Elan520,專用處理芯片OBCI3、以太網(wǎng)接口芯片、FPGA控制芯片、PCI橋、交換芯片TDM、板上RAM/ROM,以及時鐘、電源等模塊;子板部分(Gateway Blade)主要包括CPU-BCM1122,以太網(wǎng)交換芯片以及兩個DSP。限于篇幅,不做過多介紹。
如圖1所示,F(xiàn)PGA控制芯片(CLTA)處于整個母板的核心地位,其主要功能包括:語音和數(shù)據(jù)格式轉(zhuǎn)換,即將來自終端控制板的PCM格式語音和數(shù)據(jù)轉(zhuǎn)化為適用于TDM芯片的ST_BUS總線格式; AMD-Elan520的CPU讀寫邏輯映射以及SRAM存取,DMA模式控制;OBCI3接口控制;線路端編解碼功能。
圖1 網(wǎng)關(guān)接口板功能結(jié)構(gòu)圖
設(shè)計描述
FPGA的主要功能模塊如圖2所示。處于框圖上端的部分主要是數(shù)據(jù)流處理部分,主要完成數(shù)據(jù)格式轉(zhuǎn)換以及信令提取和傳遞功能,同時還包括線路端的編解碼功能;右邊主要是控制部分,完成CPU對FPGA、OBCI3芯片以及片外SRAM的存取和控制功能;左下部分主要是FPGA寄存器模塊以及如Flash保護(hù),系統(tǒng)報警處理等輔助模塊。
圖2 FPGA內(nèi)部功能結(jié)構(gòu)圖
數(shù)據(jù)流
從數(shù)據(jù)流角度看,F(xiàn)PGA包括與專用處理芯片OBCI3 相連的MasterLink[A,B],與終端控制板相連的Serial Link[0-5],與TDM芯片相連的ST_Link[0-11]。為提高網(wǎng)關(guān)接口設(shè)備的可靠性,所有的數(shù)據(jù)流都包括A、B兩路,分別來自主/備用設(shè)備,當(dāng)其中一路發(fā)生故障時,系統(tǒng)自動切換到另外一路。以上行數(shù)據(jù)為例,從終端控制板來的Serial Link共分6路,其中每一路數(shù)據(jù)格式都是由A、B兩路經(jīng)過Manchester編碼過的復(fù)用數(shù)據(jù),A/B路復(fù)用數(shù)據(jù)在Coder/Decoder模塊中經(jīng)過線路端解碼,恢復(fù)出A 、B兩路Cluster Link數(shù)據(jù),該數(shù)據(jù)采用PCM格式,其速率為4MHz,共分為32 個PCM 信道,每個信道16位,其中CH0 用于同步信道,CH16 用于信令信道,其它信道可以承載語音和數(shù)據(jù),又叫SPATA 信道。16位的SPATA 信道包含了8位的語音編碼和協(xié)議位,CH0包含同步編碼,如表1所示:其中PP 是協(xié)議比特,當(dāng)有告警時PP=11,否則為00,A=1時表明存在軟件或硬件告警,M=1 時表明存在摘掛機事件。其中,13 、12以及7 ~4為同步位,當(dāng)上下游接口芯片以每125ms的間隔固定檢測到同步碼的時候,整個系統(tǒng)處于完全同步狀態(tài),否則,對端芯片會在CH16發(fā)出遠(yuǎn)端告警,用于通知網(wǎng)關(guān)設(shè)備進(jìn)行故障處理。
圖3 控制狀態(tài)機
CH16 是16位寬的控制信道,用于發(fā)送控制命令包或接收反饋包,用于控制終端控制板的操作。MasterLink 只承載同步和信令信道,不包括SPATA 信道,MasterLink 也包含A B兩條鏈路。ST_Link是與TDM芯片相連的TDM 鏈路,滿足標(biāo)準(zhǔn)ST-BUS 的接口要求,只承載8位的語音信道。FPGA將前述Serial Link經(jīng)過Manchester解碼后分離的A/B路數(shù)據(jù)分別進(jìn)行8位數(shù)據(jù)提取,然后按照ST_BUS總線的格式分別放到各自對應(yīng)的通道中,共12路ST_link數(shù)據(jù)。具體實現(xiàn)上,采用2個雙口RAM,進(jìn)行數(shù)據(jù)緩存后,按照ST_BUS格式按序讀出。反之,F(xiàn)PGA進(jìn)行ST_BUS到Serial Link的擴展。
圖4 GPBUS與386總線映射關(guān)系
由于CH0中包含報警以及摘掛機信息,因此,6路Serial Link中的CH0被按位或運算后發(fā)送給OBCI3,由OBCI3進(jìn)行相應(yīng)的檢測和處理。反方向則將MasterLink 中來自O(shè)BCI3的CH0 廣播到同組各個Serial link中的CH0,以提供同步功能。另一方面,MasterLink 上的兩個CH16 用于控制遠(yuǎn)端終端控制板,CPU產(chǎn)生的控制信令通過OBCI3芯片,傳送到MasterLink的CH16 信道上,并由FPGA廣播到相應(yīng)Serial Link 的CH16 中,相反方向,Serial Link的CH16信道中來自遠(yuǎn)端終端控制板的反饋響應(yīng),通過FPGA轉(zhuǎn)發(fā)到MasterLink 的CH16 中,由OBCI3 接收,交給CPU處理。因此,最終ST_BUS上只包含SPATA的負(fù)荷,MasterLink只包含信令消息。通過TDM芯片,ST_BUS上的SPATA 信道進(jìn)行一級交換后進(jìn)入子板進(jìn)行語音壓縮、IP成包等后續(xù)處理。
控制流
如圖1所示,母板上采用了AMD公司的Elan520,由于該CPU采用的是專用的GP_BUS總線協(xié)議,與片外SRAM通訊需做一定處理。另外,OBCI3是我們自行設(shè)計的專用處理芯片,其CPU總線接口采用Intel-386總線協(xié)議格式,因此,F(xiàn)PGA必須提供兩組總線讀寫操作之間的邏輯映射。同時,OBCI3本身支持DMA模式存取SRAM,因此,F(xiàn)PGA還必須提供DMA接口的控制功能。
圖3是在FPGA具體實現(xiàn)中所采用的狀態(tài)機,系統(tǒng)共有4個狀態(tài),狀態(tài)翻轉(zhuǎn)的信號見圖3右下側(cè),低為有效。當(dāng)CPU沒有總線操作時,系統(tǒng)為空閑狀態(tài);當(dāng)CPU需要進(jìn)行SRAM操作時,SRAM片選信號有效,系統(tǒng)進(jìn)入OBC SRAM 存取狀態(tài),在此狀態(tài)下,F(xiàn)PGA將CPU的操作映射為標(biāo)準(zhǔn)的SRAM時序,從而完成SRAM的讀寫操作。FPGA同時監(jiān)測OBCI3的DMA請求信號,當(dāng)狀態(tài)為OBCI3 SRAM 存取時,如果CPU授權(quán)DMA請求,F(xiàn)PGA則激活OBCI3的HOLD_OUT信號,使OBCI3獲得系統(tǒng)總線控制權(quán),并啟動DMA模式直接存取片外SRAM,從而大大加快了系統(tǒng)處理的速度。當(dāng)CPU需要與OBCI3進(jìn)行通訊的時候,系統(tǒng)進(jìn)入OBCI3 存取狀態(tài),在該狀態(tài)下,F(xiàn)PGA將異步的GPBUS總線邏輯的讀寫操作映射為同步的Intel-386接口時序,見圖4。圖中上半部分是GPBUS的讀寫時序,而下半部分則是經(jīng)過FPGA映射后輸出的標(biāo)準(zhǔn)386 CPU接口時序。圖中箭頭標(biāo)明了兩組總線控制信號之間的時序關(guān)系。
設(shè)計實現(xiàn)
本設(shè)計采用Xilinx的Spartan3-XCS1000實現(xiàn)。Spartan3系列器件采用90nm工藝,具有豐富的內(nèi)部資源,包括17280個邏輯單元,120Kbit的分布式RAM和432Kbit的Block RAM,并提供了豐富的引腳接口類型。設(shè)計利用Synplify Pro 7.7進(jìn)行綜合,在ISE8.1中完成布局布線。經(jīng)過系統(tǒng)驗證,完全符合系統(tǒng)要求,現(xiàn)在已經(jīng)進(jìn)行批量生產(chǎn)。
結(jié)語
為順利向下一代網(wǎng)絡(luò)結(jié)構(gòu)過渡,本文設(shè)計了NGN網(wǎng)關(guān)設(shè)備中的接口芯片,該芯片能夠提供設(shè)備所需要的多種邏輯功能,極大地簡化了電路板的設(shè)計。同時,設(shè)計本身采用可擴展的設(shè)計結(jié)構(gòu),可以滿足系統(tǒng)擴展的要求。采用Spartan3系列FPGA實現(xiàn),經(jīng)過系統(tǒng)測試,完全符合設(shè)計需求。
參考文獻(xiàn)
1. 蔡康. 下一代網(wǎng)絡(luò)(NGN)業(yè)務(wù)及運營. 人民郵電出版社. 2004-8
2. ST-Bus Generic Device Specification (Application Note: MSAN126, Zarlink)
評論