VoIP語音卡在路由器中的應(yīng)用及硬件設(shè)計
摘要:介紹了VoIP語音卡在路由器中的應(yīng)用,詳細描述了一款應(yīng)用于路由器的語音卡的硬件結(jié)構(gòu)及其工作方式。 本文引用地址:http://2s4d.com/article/201710/368676.htm關(guān)鍵詞:VoIP PCI FXS 路由器 語音壓縮 1 VoIP在路由器中的應(yīng)用 近年來,VoIP(Voice over Internet Protocol)給通信市場帶來了強大的沖擊。IP語音業(yè)務(wù)推出后,由于其在通話費用上比傳統(tǒng)電話具有突出的優(yōu)勢,因而受到了廣泛歡迎。VoIP技術(shù)在路由器中應(yīng)用,可以大大節(jié)省有多個部門在不同地方辦公的企業(yè)或機構(gòu)的電話費用。圖1為一個VoIP路由器在公安分局與派出所間應(yīng)用的方案。 派出所網(wǎng)點的路由器DCR-2501V和DCR-2509V使用FR(幀中繼)或DDN線路同分局的DCR-3660實現(xiàn)互連,各網(wǎng)點的計算機可通過路由器連接分局的局域網(wǎng)或Internet,實現(xiàn)數(shù)據(jù)通信;同時,DCR-2501V或DCR-2509V通過FXS語音端口連接普通電話機,分局路由器通過E&M接口和PBX連接,這樣既可以實現(xiàn)內(nèi)部各部門間的數(shù)據(jù)通信,同時還可進行零費用的語音通話。 目前,VoIP的標準主要有國際電信聯(lián)盟技術(shù)部(ITU-T)建議的H.323系統(tǒng)和IETF建議的會話發(fā)起協(xié)議(Session Initiation Protocol,SIP)系統(tǒng)兩種。前者主要在電信網(wǎng)絡(luò)上實現(xiàn)多媒體業(yè)務(wù)制訂,技術(shù)已趨成熟。后者基于動態(tài)的Internet模式建網(wǎng),是基于軟交換技術(shù)的面向網(wǎng)絡(luò)會議和電話的簡單信令協(xié)議。在我國,主要選用H.323技術(shù)標準來實現(xiàn)VoIP,在H.323系列標準中,音頻壓縮編碼標準有G.711、G.722、G.723和G729等。 本文將介紹一種已經(jīng)應(yīng)用于路由器產(chǎn)品中的VoIP語音卡的硬件設(shè)計和工作原理。 該語音卡基于AudioCodes公司的VoPP(Voice Over Packet Processor,即語音包處理器)AC48302設(shè)計,采用PCI接口界面,可提供兩個FXS(Foreign Exchange Station)語音/傳真接口,可以方便靈活地應(yīng)用于本公司開發(fā)的系列路由器中,實現(xiàn)VoIP功能。其硬件結(jié)構(gòu)框圖如圖2所示,以下介紹各部分硬件的原理和作用。 2.1 PCI接口 路由器主板與語音卡之間通過PCI總線連接,便于通用。采用了PCI接口芯片PLX9030實現(xiàn)語音卡本地總線(HPI)與PCI總線之間的轉(zhuǎn)換。由于語音卡上數(shù)據(jù)流量不大,不需要利用如DMA方式主動向路由器主板上的Memory空間傳遞數(shù)據(jù)。因此,語音卡工作于PCI的從模式方式,AC48302通過中斷方式接收或發(fā)送語音數(shù)據(jù),PCI總線的數(shù)據(jù)寬度和速度為32位/33MHz。 2.2 CPLD部分 AC48302采用8位并行的主處理器接口HPI與外部CPU(即路由器CPU)進行數(shù)據(jù)交換。在本設(shè)計中,HPI接口與PLX9030的本地總線接口時序稍有差別,經(jīng)過CPLD進行調(diào)整。另外,路由器CPU還可通過CPLD控制CODEC和SLIC芯片。 AC48302是AudioCodes公司推出的一款低功耗、低價格的雙通道語音包處理器,其內(nèi)部集成了一個DSP內(nèi)核。該芯片的主要特性如下: ·支持兩個通道的語音壓縮編碼,語音壓縮標準包括G.729A、G.723.1、G.727、G.726、G.711。 ·兼容T.38或FRF.11傳真中繼(2.4~14.4kbps)。 ·呼叫ID產(chǎn)生和檢測,呼叫進程和用戶定義語音的檢測和產(chǎn)生。 ·兼容G.168的25ms回聲消除。 ·高性能的有效語音檢測(VAD)和舒適噪聲產(chǎn)生(CNG)。 ·DTMF檢測和產(chǎn)生。 ·A律/μ律可選的Codec接口,具有輸入輸出增益控制。 ·PCM Highway接口。 ·并行的主處理器接口(HPI)。 AC48302各部分硬件接口如圖3所示。 語音接口提供未壓縮的語音、傳真數(shù)據(jù)的輸入輸出通道。語音接口對外提供四根信號線構(gòu)成PCM總線,直接連接外部CODEC芯片的PCM Highway。這四根信號線為PCMIN、PCMOUT、PCMCLK、PCMFS。PCMIN輸入從CODEC送來的PCM信號,AC48302內(nèi)部的DSP按照相應(yīng)標準(如G.729)壓縮后從HPI口交給路由器CPU轉(zhuǎn)發(fā)。PCMOUT則相反,AC48302將路由器CPU送來的語音數(shù)據(jù)按照合適的標準解壓縮,然后從PCMOUT口送到外部CODEC,CODEC經(jīng)過數(shù)/模轉(zhuǎn)換后恢復成語音信號?熏通過用戶接口送給用戶端。PCMCLK提供2.048MHz的比特同步時鐘,而PCMFS提供8kHz的幀同步時鐘。 2.3.2 HPI接口 在本設(shè)計中,路由器CPU與AC48302通過HPI口進行通信。路由器CPU和DSP通過AC48302的片內(nèi)共享的雙口存儲器實現(xiàn)數(shù)據(jù)交互。片內(nèi)共享存儲器的映射關(guān)系見圖4。 HPI接口包括1根8位數(shù)據(jù)總線和幾根控制總線。路由器CPU通過三個寄存器(HPIC、HPIA和HPID)控制AC48302及訪問片內(nèi)存儲空間。HPIC為控制寄存器,用來選擇AC48302的高低字節(jié)順序、產(chǎn)生和接收中斷。HPIA為地址寄存器,用來尋址片內(nèi)的2K存儲空間。HPID為數(shù)據(jù)寄存器,用來緩存每次讀寫的兩個字節(jié)數(shù)據(jù),外部CPU可以單個Word或塊數(shù)據(jù)方式訪問HPID,當以塊數(shù)據(jù)方式訪問時,HPIA寄存器自動累加,這樣可以減少外部CPU寫HPIA寄存器的開銷。AC48302的內(nèi)部寄存器和存儲器為16位寬度,因此外部CPU每次訪問AC48302必須以兩個字節(jié)為基本單位,信號線HI/LO用來選擇高低字節(jié),信號HRS1、HRS0指示當前訪問的是哪個寄存器。 除了以上兩個重要的接口外,AC48302內(nèi)部還包含一個PCM時鐘發(fā)生器、一個用于測試的JTAG接口以及一個用于訪問外部SRAM及處理信道輔助信令的Memory&I/O接口。 2.4 CODEC接口芯片 CODEC芯片負責對DSP解壓縮后送來的PCM數(shù)據(jù)進行解碼,并將濾波后的模擬語音信號送到用戶線接口芯片SLIC,SLIC對其進行2-4線轉(zhuǎn)換后送給用戶端;同時,CODEC還負責將SLIC送來的模擬語音信號進行PCM編碼,然后送到DSP芯片進行壓縮處理。 本設(shè)計中,CODEC芯片采用IDT公司的4通道PCM編解碼芯片IDT821034。該芯片具有可編程增益設(shè)置、主時鐘可選(2.048MHz、4.096MHz和8.192MHz)、最大可支持128個可編程時隙、A律/μ律可選、內(nèi)置數(shù)字濾波器、串行控制接口、低功耗等特點。本設(shè)計中選用主時鐘為2.048MHz(E1幀模式),可劃分為32個相等的時隙(Slot0~Slot31),4個通道的接收和發(fā)送時隙可通過向串行控制口寫入控制字進行動態(tài)選擇。各時隙的位置都以8kHz的幀同步時鐘信號為參考,在IDT821034中,時隙0相對幀同步脈沖的位置有延遲模式和非延遲模式(圖6即為非延遲模式)。 PCM主時鐘(BCLK)、幀同步時鐘(FS)、接收數(shù)據(jù)(DR)和發(fā)送數(shù)據(jù)(DX)一起構(gòu)成PCM Highway信號,與AC48302進行連接。BCLK與FS分別對應(yīng)AC48302的PCMCLK和PCMFS,這兩個時鐘信號都由AC48302 產(chǎn)生;DR和DX分別對應(yīng)AC48302的PCMOUT和PCMIN。PCM Highway信號時序以及時隙與幀同步信號的關(guān)系分別如圖5、圖6所示。為了CODEC與DSP芯片間正確收發(fā)數(shù)據(jù),一般選擇CODEC芯片在BCLK的上升沿發(fā)送數(shù)據(jù)DX,下降沿采樣數(shù)據(jù)DR,而在另一端的AC48302,則在時鐘下降沿采樣PCMIN,上升沿發(fā)送PCMOUT。 2.5 用戶線接口(SLIC)芯片 設(shè)計中為了使語音卡能夠提供FXS接口功能,采用了愛立信公司的新型SLIC芯片PBL83710連接用戶接口。在該芯片內(nèi)部能夠產(chǎn)生高電壓鈴流信號及提供自動電池饋電切換,具有環(huán)流振鈴和地鍵檢測功能及2-4線轉(zhuǎn)換功能。該芯片將許多傳統(tǒng)的振鈴繼電器、鈴流發(fā)生器等器件集成在一個片內(nèi),節(jié)省了印制板空間和成本。 硬件驅(qū)動程序主要完成以下功能: (1)初始化PLX9030芯片,配置相關(guān)寄存器,選擇本地總線工作方式。 (2)初始化AC48302芯片,啟動AC48302內(nèi)部的DSP內(nèi)核到正常工作狀態(tài)。AC48302的啟動步驟按順序分為以下幾步:核代碼(Kernel)下載;程序代碼(Program)下載;初始化模式;啟動運行。 (3)驅(qū)動語音卡的正常操作。接收處理摘掛機中斷,將SLIC置于正確狀態(tài);配置CODEC芯片的各通道收發(fā)數(shù)據(jù)時隙以及CODEC芯片的增益控制;接收處理AC48302數(shù)據(jù)包處理中斷,AC48302每處理完一個語音數(shù)據(jù)包就通過中斷方式通知路由器CPU讀取當前Buffer中的數(shù)據(jù)或向Buffer?qū)懭胂乱粋€數(shù)據(jù)包。 本文采用的是FXS接口,只要對CODEC后面部分電路稍加改動即可實現(xiàn)FXO或E&M接口功能。目前,該語音卡方案在路由器產(chǎn)品中已獲廣泛采用。 相關(guān)推薦技術(shù)專區(qū) |
評論