基于軟核CPU技術(shù)的IP電話接口設(shè)計
許文建,付慧生,陳洪波,閻靜杰 2009/03/31
摘要:提出了一種基于會話初始化協(xié)議的VoIP系統(tǒng)(包括IP電話終端、SIP服務(wù)器和PSTN接入端口),并對SIF,與PSTN的互聯(lián)進行了系統(tǒng)級構(gòu)建。利用Ahera的SOPC軟核CPU技術(shù)和Nios
II處理器構(gòu)建了一個IP電話終端。該設(shè)計具有靈活的可擴展性,能夠在實現(xiàn)語音通信的基礎(chǔ)上較容易地擴展視頻接口、短信平臺等多媒體功能,給產(chǎn)品用戶和運營商提供了一種低成本的多媒體網(wǎng)絡(luò)通信終端設(shè)備,具有廣闊的市場前景。
關(guān)鍵詞:VoIP技術(shù);SOPC;IP電話終端;NiosⅡ;軟核CPU技術(shù)
l.引言
VoIP技術(shù)是一種基于IP數(shù)據(jù)網(wǎng)的語音傳輸技術(shù),它將標(biāo)準(zhǔn)的語音信號轉(zhuǎn)換成壓縮的數(shù)據(jù)報后在數(shù)據(jù)網(wǎng)絡(luò)而非傳統(tǒng)的電話網(wǎng)上進行傳輸,是一種實時語音通信技術(shù)。在利用VoIP技術(shù)進行通信時,一般先使用語音壓縮算法對語音信號進行壓縮編碼處理,再按IP標(biāo)準(zhǔn)進行打包,經(jīng)Internet發(fā)送到接收地;接收端把這些語音數(shù)據(jù)報串起來,經(jīng)解碼解壓縮處理后恢復(fù)成原來的語音信號,從而達到由IP網(wǎng)絡(luò)傳送語音的目的。其關(guān)鍵技術(shù)包括:信令、媒體編碼、媒體實時傳輸、業(yè)務(wù)質(zhì)量保障和網(wǎng)絡(luò)傳輸?shù)取?br />
當(dāng)然,VoIP不是非電話網(wǎng)上傳送語音業(yè)務(wù)的惟一方式,實際上,存在另外兩種快速、高效、價格合理的能達到長途話音傳輸?shù)姆椒,即幀中繼語音網(wǎng)絡(luò)技術(shù)(Voice
over Frame Relay,VoFR)和ATM語音網(wǎng)絡(luò)技術(shù)(Voice over Asynchronous Transfer
Mode,VoATM基于異步傳輸模式的語音網(wǎng)絡(luò)技術(shù)),但目前這兩種技術(shù)的發(fā)展速度較緩,技術(shù)不夠成熟。
2.硬件系統(tǒng)設(shè)計
一個完整的VoIP系統(tǒng)應(yīng)包含IP電話終端、網(wǎng)關(guān)、網(wǎng)守、網(wǎng)管系統(tǒng)、計費系統(tǒng)等幾部分。本文重點研究可直接掛接在計算機網(wǎng)絡(luò)上的IP電話終端。
2.1 硬件系統(tǒng)方案
通過對國內(nèi)外VoIP技術(shù)的研究,要面向社會推廣價格低廉的IP電話業(yè)務(wù),普通用戶的電話終端成本,運營商的設(shè)備、管理成本都是必須考慮的因素。因此,設(shè)計出了一個VoIP系統(tǒng)方案,如圖1所示。
該設(shè)計方案具有一個功能可擴展的基于軟核CPU技術(shù)的IP電話終端;具備基于會話初始化協(xié)議的SIP服務(wù)器,該協(xié)議是專為網(wǎng)絡(luò)會話而生的;并利用語音接口卡實現(xiàn)SIP與PSTN的互聯(lián)。具有技術(shù)先進、針對性強和通用性好等特點,是可行有效的。
2.2 IP電話終端硬件設(shè)計
根據(jù)1P電話終端的硬件需求,為該終端配置了音頻接入口、音頻編解碼芯片WM8731;網(wǎng)絡(luò)接口芯片DM9000A;存儲器IC42S16400;主控制器EP2C35;直流電源9
V,如圖2所示。
IP電話終端采用直流9 V供電,通過穩(wěn)壓芯片(輸出+5 V)為電路板供電.終端的A/D、D/A轉(zhuǎn)換器選用了Wolfson公司的24
b音頻編解碼芯片WM8731,以太網(wǎng)傳輸部分選用了Davicom公司的網(wǎng)絡(luò)接口芯片DM9000A,并為輸入撥號配備了鍵盤(號碼撥盤),為實現(xiàn)語音數(shù)據(jù)存儲,還在電路上給終端配置了存儲器(SDRAM,SRAM,F(xiàn)LASH),用戶可以根據(jù)自己的情況選擇包含所有或其中任一種存儲器的電話機。本設(shè)計選用了其中的SDRAM作語音數(shù)據(jù)存儲器。
2.2.1 撥號電路
為實現(xiàn)IP電話與普通電話的通用性,該終端加入鍵盤模塊,按鍵開關(guān)KEY0~KEY9,KEY_X,KEY_Y,KEY_ON,KEY_OFF(其中,除KEY_ON和KEY_OFF是鎖閉式按鍵外,其余均為非鎖閉式按鍵)采用行列掃描式接法,加入了74HC245總線收發(fā)器作為緩沖器,電路如圖3所示(由于按鍵過多,圖中僅給出KEY0~KEY3電路)。
每個這種開關(guān)用來控制史密特觸發(fā)電路,史密特觸發(fā)裝置的14個出口直接與CycloneⅡFPGA相連。每個開關(guān)當(dāng)不按下時提供一個高電平(3.3
V)。在按下時提供一個低電平(0V)。非鎖閉式按鍵開關(guān)是反彈的,它們相當(dāng)于電路的時鐘或復(fù)位輸入;鎖閉式按鍵是不可反彈的,按下時相當(dāng)于一個邏輯低電平(0V),彈出時提供一個邏輯高電平(3.3
V)。
2.2.2 音頻輸入及編解碼
音頻輸入及編解碼電路是通過Wolfson公司的WM8731編解碼器(編碼器和解碼器)實現(xiàn)的。它可以提供高質(zhì)量的24b/s音頻,由一系列的I2C總線接口控制,這些接口連接到Cyclone
II FPGA的引腳上。硬件電路如圖4所示。
3.軟核CPU的構(gòu)建
Altera推出的Nios/NiosⅡ系列嵌入式處理器擴展了目前世界上最流行的嵌入式軟核處理器的性能,是Altera公司為其FPGA產(chǎn)品配套開發(fā)的軟核CPU。在邏輯功能上,它們是32
b的精簡指令集CPU,用戶可以獲得超過200 DMIPS(Dhrystone Millions of Instructions
Per Sec—ond,百萬條指令/秒)的性能,并從三種處理器(e型、s型、f型)以及超過60個的IP核中選擇所需要的。NiosⅡ系統(tǒng)為用戶提供了最基本的多功能性,設(shè)計師可以據(jù)此創(chuàng)建一個最適合他們需求的嵌入式系統(tǒng)。Nios及NiosⅡ處理器通過FPGA編程的方式實現(xiàn)用戶所需,這是與傳統(tǒng)的CPU的一個根本的差別。
SOPC系統(tǒng)的平臺包括:Altera的Nios處理器、Aval—on總線,片內(nèi)外存儲器以及外設(shè)模塊等。利用SOPCBuilder,用戶可以很方便地將處理器、存儲器和其他外設(shè)模塊連接起來,形成一個完整的系統(tǒng)。其中,SOPC
Build—er中已包含了Nios處理器和其他一些常用的外設(shè)IP模塊。用戶也可以設(shè)計自己的外設(shè)IP。
可見,利用SOPC的軟核CPU技術(shù)在以下方面具有很大的技術(shù)優(yōu)勢:提高系統(tǒng)性能;更低的系統(tǒng)成本;應(yīng)對產(chǎn)品的生命周期;功能強大、易用的開發(fā)工具等。
SOPC Builder是QuartusⅡ附帶的一個用來開發(fā)基于處理器、外圍以及存儲器的片上可編程系統(tǒng)的開發(fā)工具。SOPC
Builder可以根據(jù)用戶的編輯實時地生成.ptf文件;系統(tǒng)PTF文件類似于一個數(shù)據(jù)庫文件,它存儲了系統(tǒng)模塊列表,模塊信息等。
在SOPC Builder環(huán)境里,用戶可以直接調(diào)用軟件提供的用于構(gòu)建CPU的基本模塊,也可以自定義模塊。本課題需要的模塊中,網(wǎng)絡(luò)接口與語音處理接口需要自定義,在構(gòu)建前必須有二者的源文件,設(shè)計采用了Verilog
HDL書寫源程序,事先寫好了DM9000A.v和Open_I2C.v兩個底層程序。
前述SDRAM接口、鍵盤輸入接口、網(wǎng)絡(luò)接口芯片接口、音頻處理接口和I2C接口均連接到Avalon總線,相當(dāng)于總線的外掛設(shè)備。構(gòu)建完成,選擇自動生成地址,其結(jié)果如圖5所示。
構(gòu)建完成后生成(Generate).bsf格式文件system.bsf,轉(zhuǎn)到QuartusⅡ環(huán)境下可以直接調(diào)用,相當(dāng)于一個自定義的控制器芯片。
4.接口電路的軟件設(shè)計
4.1 軟件設(shè)計
作為IP網(wǎng)絡(luò)的一個端點,IP電話必須像其他IP終端一樣,為其分配IP地址、子網(wǎng)掩碼、缺省路由器、DNS(Do—main
Name System,域名系統(tǒng))等。同時它存在自動和人-工兩種配置方式,自動方式的IP電話必須使能DHCP(Dynamic
Host Configuration Protocol,動態(tài)主機分配協(xié)議),手動方式由用戶對IP電話配置必要的信息。整個IP終端的軟件設(shè)計包括了主控制器、網(wǎng)絡(luò)接口、音頻輸入/輸出口和可選擇的存儲器等部分的設(shè)計,其軟件系統(tǒng)結(jié)構(gòu)如圖6所示。
首先使用SOPC Builder系統(tǒng)工具構(gòu)建了一個NiosCPU作為整個系統(tǒng)的處理器核,它的Avalon總線對其他接口及控制器進行指令和數(shù)據(jù)傳輸,包括:由內(nèi)部定時器控制的Avalon總線;為Nios
CPU配置了JATG通用異步收發(fā)器UART;為可選擇的片外存儲器配備了專用存儲器接口;控制語音輸入輸出的音頻數(shù)據(jù)接口,實現(xiàn)語音編解碼的控制和流處理;以太網(wǎng)接口負責(zé)CPU與DM9000A的數(shù)據(jù)收發(fā)和協(xié)議轉(zhuǎn)換。
工作過程如下:
當(dāng)撥號確認(rèn)后,主控制器對編解碼器發(fā)送控制指令,開始語音A/D轉(zhuǎn)換,并進行編碼,送到片外存儲器內(nèi)進行緩存;Nios CPU對撥號信息的解析確定。目的地址,通過Avalon總線對以太網(wǎng)接口發(fā)送數(shù)據(jù)傳輸指令;將符合以太網(wǎng)標(biāo)準(zhǔn)的數(shù)據(jù)從片外存儲器內(nèi)讀出,送入Internet中,返回確認(rèn)信息。系統(tǒng)處理流程圖如圖7所示。
4.2 I2C語音模塊
由于語音編解碼器的處理延時是影響VoIP話音質(zhì)量的因素之一,為了保證語音編解碼的實時性,軟件系統(tǒng)在控制WM8731編解碼器的編解碼同時,加入了I2C語音模塊,以實現(xiàn)語音數(shù)據(jù)的實時處理。它采用自頂向下設(shè)計方法利用QuartusⅡ進行設(shè)計。
I2C是一種雙向制串行總線協(xié)議,只有總線處于“非忙”狀態(tài)時,數(shù)據(jù)傳輸才能被初始化。數(shù)據(jù)傳輸期間,只要時鐘線為高電平,數(shù)據(jù)線都必須保持穩(wěn)定,否則數(shù)據(jù)線上的任何變化都被當(dāng)作“啟動”或“停止”信號。它實現(xiàn)數(shù)據(jù)的實時傳輸。
首先在QuartusⅡ環(huán)境內(nèi)創(chuàng)建一個名為I2C的原理圖文件,然后建立包括各個模塊的頂層圖(使用Altera提供的LPM功能模塊或者建立自己的功能模塊),在頂層圖中將各個功能模塊進行連接,如圖8所示。
調(diào)試通過以后必須對其引腳進行手動設(shè)置,以便程序的下載,如圖9所示。
將Wolfson WM8731音頻編解碼器被配置為控制模式,可以自動產(chǎn)生AD/DA的連續(xù)比特時鐘和左/右聲道時鐘(CLOCK_500.v)。編解碼系統(tǒng)采樣頻率設(shè)定為48
kHz。
I2C.v程序流程見圖10。
在QuartusⅡ中對本模塊進行測試,輸入頻率50 MHz,波形結(jié)果如圖11所示。
AUD_ADCDAT與AUD_DACDAT分別為I2C總線的輸入輸出,由圖11中可見其延遲為9.033 ns,實現(xiàn)了語音數(shù)據(jù)的實時處理。
5.結(jié)語
本文研究并設(shè)計了一個基于SIP的IP電話終端,其結(jié)構(gòu)比較完整。同時對系統(tǒng)進行了分塊測試和環(huán)境測試,實現(xiàn)了語音數(shù)據(jù)的A/D、D/A實時轉(zhuǎn)換,進行了數(shù)據(jù)報的收發(fā)。同時,本文提出的SIP與PSTN的互聯(lián)模型,使用戶(尤其是長途電話用戶)不必擔(dān)心SIP
IP終端與PSTN用戶的連接,可以在運營商的支持下自由地同其他用戶進行通信,而不用擔(dān)心產(chǎn)生高昂的通話費用。
Altera公司的軟件開發(fā)工具QuflrtusⅡ和NiosⅡ因其功能強大、可移植性強、可擴展性高,作為CPU開發(fā),給大系統(tǒng)的升級與擴展提供了簡便的操作界面與操作方法。
從長遠來看,在VoIP技術(shù)發(fā)展過程中僅實現(xiàn)語音傳輸功能是遠遠不夠的。但利用Altera公司的軟核CPU技術(shù),若在本文研究的基礎(chǔ)上添加短信平臺、VGA接口等,則IP電話終端就不僅能實現(xiàn)語音通信,還能實現(xiàn)短消息傳輸、視頻通訊等,或者與一些數(shù)據(jù)平臺服務(wù)商聯(lián)合,為用戶提供數(shù)字點播等服務(wù),以成為一個功能強大的多媒體通信終端。
現(xiàn)代電子技術(shù)
相關(guān)鏈接: