引言
就VoIP設(shè)備來說,如果語音處理器的功能和其它應用功能由一個處理器來完成,必然能極大地簡化電路,降低成本。Intel的IXP421即是這些多功能處理器的其中一種,它的PCM接口使VoIP設(shè)備的硬件結(jié)構(gòu)大大簡化了,還可以通過選擇不同微代碼的方式實現(xiàn)更加靈活的網(wǎng)絡應用。
Intel提供的解決方案是通過軟件DSP實現(xiàn)語音處理,并聲明DSP模塊可同時處理四路PCM窄帶話音,支持多種語音編碼及回波消除等功能。眾所周知,單路單向PCM語音速率為64Kbps,單路雙向為128Kbps,4路雙向則為512Kbps,如何保證語音處理所需要的CPU時間是個關(guān)鍵問題。
另外,回波消除或其它附加功能也會增加處理時間,在設(shè)計中還要考慮內(nèi)存讀寫、任務切換、中斷處理等系統(tǒng)因素造成的影響。
IXP421簡介
IXP421是Intel公司開發(fā)的采用XSCALE內(nèi)核的IXP4xx系列處理器之一,主頻為266MHz。IXP421采用多處理引擎和硬件多線程處理機制。它包括了一個處理器內(nèi)核和兩個并行網(wǎng)絡處理引擎,其中XSCALE內(nèi)核為處理器核心,它是以ARM V5內(nèi)核為原型,進行了DSP功能擴展,并優(yōu)化了16位數(shù)據(jù)類型的累加和乘法運算。啟動時首先初始化XSCALE核,然后網(wǎng)絡處理引擎將從內(nèi)存下載各自的微代碼,以完成外圍網(wǎng)絡接口的鏈路層協(xié)議處理,它們的執(zhí)行是完全并行于XSCALE內(nèi)核的,通過內(nèi)嵌的消息隊列與XSCALE核同步。先進高速總線(AHB)實現(xiàn)網(wǎng)絡處理引擎和XSCALE核之間的數(shù)據(jù)交換,其傳輸速率達到133.32MHz×32bit,完全能夠滿足高速網(wǎng)絡的數(shù)據(jù)傳輸要求。
DSP軟件模塊
Intel公司為IXP4xx系列處理器專門開發(fā)了DSP軟件包。根據(jù)實現(xiàn)的不同功能,運行時的DSP模塊可分為幾個部分,包括網(wǎng)絡端點、編碼器、解碼器、音頻生成器、音頻檢測器、語音播放器、混音器和T.38。如果系統(tǒng)有四路電話,則每一路電話應該分配一個網(wǎng)絡端點,一個音頻生成器,一個音頻檢測器,網(wǎng)絡端點代表每一路電話所需的TDM前端處理功能,用以實現(xiàn)TDM數(shù)據(jù)的收發(fā)、發(fā)送增益控制和回波消除,而音頻生成器、音頻檢測器則分別實現(xiàn)每一路電話的提示音及DTMF音頻檢測功能。另外,各路電話分享一個編碼器和一個解碼器,語音分流器負責控制網(wǎng)絡端點和編解碼器之間的數(shù)據(jù)流。語音播放器和混音器可多路共用,也可各路單獨占用一個,具體個數(shù)由應用需求決定。
圖1 系統(tǒng)硬件結(jié)構(gòu) |
系統(tǒng)結(jié)構(gòu)
整個系統(tǒng)由用戶線接口、以太網(wǎng)接口、處理器和通信控制總線組成,如圖1所示。處理器即IXP421,它是設(shè)備運行的嵌入式操作系統(tǒng)及應用程序的載體,主要功能是:在通話過程中充當語音數(shù)字處理器并分發(fā)語音包給特定的終端;在呼叫建立過程中處理網(wǎng)絡協(xié)議;初始化并控制各部分硬件模塊協(xié)同工作;提供用戶管理界面。內(nèi)存芯片容量為64MB,通過PC133內(nèi)存總線連接IXP421的內(nèi)存控制器。16MB的Intel Strata Flash芯片通過擴展總線連接IXP421。時鐘電路為處理器提供頻率為33.33MHz的參照時鐘,處理器內(nèi)核及其集成外圍電路的時鐘均由此分頻得到。復位電路為處理器提供上電復位功能,即在系統(tǒng)加電并穩(wěn)定后復位引腳,保持至少500ms的低電平。
用戶線接口,以Silicon Laboratroies公司的Si3210型接口芯片為核心,為用戶提供模擬電話接口功能,這些功能包括:用戶線直流饋電、摘掛機狀態(tài)檢測、DTMF檢測、振鈴、回鈴音及各種提示音、音頻采樣及D/A、A/D轉(zhuǎn)換,以及PCM數(shù)據(jù)收發(fā)等。
以太網(wǎng)接口,采用Intel的以太網(wǎng)接口芯片LXT972,其主要功能有:10BASE-T/100BASE-TX自適應、自動網(wǎng)絡協(xié)商、沖突檢測、鏈路狀態(tài)告警,通過MII總線接口,配合IXP421的以太網(wǎng)處理引擎(NPE),實現(xiàn)鏈路層功能,承載TCP/IP協(xié)議及其它應用層網(wǎng)絡協(xié)議。
串口,為用戶提供基于串口的管理及調(diào)試功能。IXP421有兩組串行輸入、輸出接口,分別為UART0和UART1,其中UART0是高速串行通信端口,支持的通信波特率最高達921.6Kbps。UART1為CONSOLE串行通信口,支持的波特率范圍為1200bps~231Kbps。
系統(tǒng)中較為重要的外部總線的作用如下:
1. HSS(High Speed Serial)總線,連接處理器的WAN/語音NPE和用戶線接口芯片(SLIC),有時鐘、幀同步、輸入、輸出4條線,支持同步串行傳輸,可配置時鐘頻率范圍為512KHz~8.192MHz。本文應用作為PCM語音信號的傳輸總線,時鐘為2MHz,即總共支持32個時隙。4路SLIC芯片各占一個時隙進行通信。IXP421的一個專用協(xié)處理器(VOICE NPE)負責HSS端口的總線數(shù)據(jù)收發(fā)。
2. MII(Media Independent Interface)總線,連接處理器的以太網(wǎng)NPE和以太網(wǎng)PHY接口芯片LXT972,分為MII數(shù)據(jù)總線和MII管理信息總線。IXP421的網(wǎng)絡處理引擎(NPEA)通過MII收發(fā)數(shù)據(jù),網(wǎng)絡處理引擎獨立于主CPU內(nèi)核工作,采用硬件多線程機制,使數(shù)據(jù)收發(fā)不占用主處理器時間,NPEA運行的微程序可提供對以太網(wǎng)PHY設(shè)備的簡單控制功能。
3. 控制用戶線接口芯片的串行外圍接口SPI(Serial Peripheral Interface)以菊花鏈形式串接,有輸入、輸出、時鐘、片選4根線,占用處理器的4個GPIO引腳。以串行8位命令方式讀寫SLIC的內(nèi)部寄存器,可以看作SLIC的控制總線。
性能測試
測試方法
兩路電話同時通話。對端電話保持有說話聲(本地解碼器保持一定的繁忙程度),用測試機一直ping被測設(shè)備的以太網(wǎng)地址,并運行EtherReal工具軟件,抓取被測設(shè)備發(fā)送到對端的RTP包,計算出RTP包時間間隔及抖動的統(tǒng)計值,同時觀察通話語音質(zhì)量。本設(shè)備和對端設(shè)備每隔5秒發(fā)送RTCP協(xié)議的發(fā)送者報告,分段丟包率是在發(fā)送者報告中給出的統(tǒng)計值。
測試說明
空閑時(未建立通話),被測設(shè)備處理器占用率為20%;
被測設(shè)備TDM總線數(shù)據(jù)格式為G711u;
通話時打開回波消除,延遲環(huán)節(jié)設(shè)定為1ms延時;
關(guān)閉靜音壓縮;
對端VoIP設(shè)備采用獨立的DSP芯片(MindSpeed: M82510-14 );
網(wǎng)絡環(huán)境為100BASE-TX以太網(wǎng),傳輸延遲小于1ms。
測試結(jié)果
時間間隔、抖動及分段丟包率
分析:表1的統(tǒng)計數(shù)據(jù)顯示,每種編碼的語音包到達對端的時間,都比規(guī)定的時間要提前零點幾個毫秒,這應該是本設(shè)備的DSP處理程序為對端DSP提前預留了處理時間。產(chǎn)生抖動可能是受被測設(shè)備系統(tǒng)任務切換時間影響。因為對端設(shè)備也在向本端發(fā)送RTP包,這就需要本設(shè)備的以太網(wǎng)任務、IP協(xié)議棧和DSP任務來處理,所以,語音接收和發(fā)送過程爭搶CPU時間,從而造成小的抖動,而以太網(wǎng)交換機轉(zhuǎn)發(fā)過程所造成的抖動應該可以忽略。
結(jié)論:由時間間隔和丟包率可見,被測設(shè)備沒有因為忙而產(chǎn)生延遲或丟包現(xiàn)象,在測試條件下處理器能力仍有富余。抖動是在設(shè)備允許的范圍內(nèi)。
語音質(zhì)量
分析:如表2所示,測試中G723.1編碼的語音效果有些問題,即對端聽本端的聲音效果不好,而本端聽對端的聲音效果很好,這可能是因為Intel的DSP模塊與MindSpeed的DSP芯片的某個編解碼參數(shù)不同。畢竟其它編碼方式?jīng)]有這一問題,所以G723.1的語音質(zhì)量給了低分。
結(jié)論:除G.723.1編碼語音質(zhì)量不理想外,其它幾種常用的編碼效果良好