摘 要:提出了一種基于會話初始化協議的VoIP系統(包括IP電話終端、SIP服務器和PSTN接入端口),并對SIP與PSTN的互聯進行了系統級構建。利用Altera的SOPC軟核CPU技術和Nios II處理器構建了一個IP電話終端。該設計具有靈活的可擴展性,能夠在實現語音通信的基礎上較容易地擴展視頻接口、短信平臺等多媒體功能,給產品用戶和運營商提供了一種低成本的多媒體網絡通信終端設備,具有廣闊的市場前景。
關鍵詞:VoIP技術;SOPC;IP電話終端;Nios Ⅱ;軟核CPU技術
中圖分類號:TN91 文獻標識碼:B
文章編號:1004-373X(2008)11-093-04
Study and Design of IP Phone Interface Based on Soft Core CPU Technology
XUE Wenjian,FU Huisheng,CHEN Hongbo,YAN Jingjie
(School of Information and Electrical Engineering,China University of Mining Technology,Xuzhou,221008,China)
Abstract:This paper brings forward a VoIP system based on Session Initial Protocol (SIP),including IP phone terminal,SIP server and PSTN interface.Meanwhile,it builds an interconnection structure between SIP and PSTN.It makes use of Altera SOPC soft core CPU technology and Nios Ⅱ processor to build a IP phone terminal.It′s able to expand flexibly and upgrade,such as easily expand a VGA interface and short message platform.That is a low-cost multi-media communication terminal for production user and server support.So it has a broad market foreground.
Keywords:VoIP technology;SOPC;IP phone terminal;Nios Ⅱ;soft core CPU technology
1 引 言
VoIP[1]技術是一種基于IP數據網的語音傳輸技術,它將標準的語音信號轉換成壓縮的數據報后在數據網絡而非傳統的電話網上進行傳輸,是一種實時語音通信技術。在利用VoIP技術進行通信時,一般先使用語音壓縮算法對語音信號進行壓縮編碼處理,再按IP 標準進行打包,經Internet發送到接收地;接收端把這些語音數據報串起來,經解碼解壓縮處理后恢復成原來的語音信號,從而達到由IP網絡傳送語音的目的。其關鍵技術包括:信令、媒體編碼、媒體實時傳輸、業務質量保障和網絡傳輸等。
當然,VoIP不是非電話網上傳送語音業務的惟一方式,實際上,存在另外兩種快速、高效、價格合理的能達到長途話音傳輸的方法,即幀中繼語音網絡技術(Voice over Frame Relay,VoFR)和ATM語音網絡技術(Voice over Asynchronous Transfer Mode,VoATM基于異步傳輸模式的語音網絡技術),但目前這兩種技術的發展速度較緩,技術不夠成熟。
2 硬件系統設計
一個完整的VoIP系統應包含IP電話終端、網關、網守、網管系統、計費系統等幾部分。本文重點研究可直接掛接在計算機網絡上的IP電話終端。
2.1 硬件系統方案
通過對國內外VoIP技術的研究,要面向社會推廣價格低廉的IP電話業務,普通用戶的電話終端成本,運營商的設備、管理成本都是必須考慮的因素。因此,設計出了一個VoIP系統方案,如圖1所示。
圖1 VoIP系統整體設計圖
該設計方案具有一個功能可擴展的基于軟核CPU技術的IP電話終端;具備基于會話初始化協議的SIP服務器,該協議是專為網絡會話而生的;并利用語音接口卡實現SIP與PSTN的互聯。具有技術先進、針對性強和通用性好等特點,是可行有效的。
2.2 IP電話終端硬件設計
根據IP電話終端的硬件需求,為該終端配置了音頻接入口、音頻編解碼芯片WM8731;網絡接口芯片DM9000A;存儲器IC42S16400;主控制器EP2C35;直流電源9 V,如圖2所示。
圖2 IP電話終端電路結構圖
IP電話終端采用直流9 V供電,通過穩壓芯片(輸出+5 V)為電路板供電,終端的A/D、D/A轉換器選用了Wolfson公司的24 b音頻編解碼芯片WM8731,以太網傳輸部分選用了Davicom公司的網絡接口芯片DM9000A,并為輸入撥號配備了鍵盤(號碼撥盤),為實現語音數據存儲,還在電路上給終端配置了存儲器(SDRAM,SRAM,FLASH),用戶可以根據自己的情況選擇包含所有或其中任一種存儲器的電話機。本設計選用了其中的SDRAM作語音數據存儲器。
[BT4]2.2.1 撥號電路
為實現IP電話與普通電話的通用性,該終端加入鍵盤模塊,按鍵開關KEY0~KEY9,KEYX,KEYY,KEYON,KEYOFF(其中,除KEYON和KEYOFF是鎖閉式按鍵外,其余均為非鎖閉式按鍵)采用行列掃描式接法,加入了74HC245總線收發器作為緩沖器,電路如圖3所示(由于按鍵過多,圖中僅給出KEY0~KEY3電路)。
圖3 鍵盤輸入及撥號電路
每個這種開關用來控制史密特觸發電路,史密特觸發裝置的14個出口直接與Cyclone Ⅱ FPGA相連。每個開關當不按下時提供一個高電平(3.3 V),在按下時提供一個低電平(0 V)。非鎖閉式按鍵開關是反彈的,它們相當于電路的時鐘或復位輸入;鎖閉式按鍵是不可反彈的,按下時相當于一個邏輯低電平(0 V),彈出時提供一個邏輯高電平(3.3 V)。
[BT4]2.2.2 音頻輸入及編解碼
音頻輸入及編解碼電路是通過Wolfson公司的WM8731[2]編解碼器(編碼器和解碼器)實現的。它可以提供高質量的24 b/s音頻,由一系列的I2C總線接口控制,這些接口連接到Cyclone II FPGA的引腳上。硬件電路如圖4所示。
圖4 音頻輸入輸出電路
3 軟核CPU的構建
Altera推出的Nios/Nios Ⅱ系列嵌入式處理器擴展了目前世界上最流行的嵌入式軟核處理器的性能,是Altera公司為其FPGA產品配套開發的軟核CPU。在邏輯功能上,它們是32 b的精簡指令集CPU,用戶可以獲得超過200 DMIPS(Dhrystone Millions of Instructions Per Second,百萬條指令/秒)的性能,并從三種處理器(e型、s型、f型)以及超過60個的IP核中選擇所需要的。Nios Ⅱ系統為用戶提供了最基本的多功能性,設計師可以據此創建一個最適合他們需求的嵌入式系統。Nios及Nios Ⅱ處理器通過FPGA編程的方式實現用戶所需,這是與傳統的CPU的一個根本的差別。
SOPC系統的平臺包括:Altera的Nios處理器、Avalon總線,片內外存儲器以及外設模塊等。利用SOPC Builder,用戶可以很方便地將處理器、存儲器和其他外設模塊連接起來,形成一個完整的系統。其中,SOPC Builder中已包含了Nios處理器和其他一些常用的外設IP模塊。用戶也可以設計自己的外設IP。
可見,利用SOPC的軟核CPU技術在以下方面具有很大的技術優勢:提高系統性能;更低的系統成本;應對產品的生命周期;功能強大、易用的開發工具等。
SOPC Builder是Quartus Ⅱ附帶的一個用來開發基于處理器、外圍以及存儲器的片上可編程系統的開發工具。SOPC Builder可以根據用戶的編輯實時地生成.ptf文件;系統PTF文件類似于一個數據庫文件,它存儲了系統模塊列表,模塊信息等。
在SOPC Builder環境里,用戶可以直接調用軟件提供的用于構建CPU的基本模塊,也可以自定義模塊。本課題需要的模塊中,網絡接口與語音處理接口需要自定義,在構建前必須有二者的源文件,設計采用了Verilog HDL書寫源程序[3],事先寫好了DM9000A.v和OpenI2C.v兩個底層程序。
前述SDRAM接口、鍵盤輸入接口、網絡接口芯片接口、音頻處理接口和I2C接口均連接到Avalon總線,相當于總線的外掛設備。構建完成,選擇自動生成地址,其結果如圖5所示。
圖5 Nios Ⅱ處理器
構建完成后生成(Generate).bsf格式文件system.bsf,轉到Quartus Ⅱ環境下可以直接調用,相當于一個自定義的控制器芯片。
4 接口電路的軟件設計
4.1 軟件設計
作為IP網絡的一個端點,IP電話必須像其他IP終端一樣,為其分配IP地址、子網掩碼、缺省路由器、DNS(Domain Name System,域名系統)等。同時它存在自動和人工兩種配置方式,自動方式的IP電話必須使能DHCP(Dynamic Host Configuration Protocol,動態主機分配協議),手動方式由用戶對IP電話配置必要的信息。整個IP終端的軟件設計包括了主控制器、網絡接口、音頻輸入/輸出口和可選擇的存儲器等部分的設計,其軟件系統結構如圖6所示。
圖6 軟件系統結構圖
首先使用SOPC Builder系統工具構建了一個Nios CPU作為整個系統的處理器核,它的Avalon總線對其他接口及控制器進行指令和數據傳輸,包括:由內部定時器控制的Avalon總線;為Nios CPU配置了JATG通用異步收發器UART;為可選擇的片外存儲器配備了專用存儲器接口;控制語音輸入輸出的音頻數據接口,實現語音編解碼的控制和流處理;以太網接口負責CPU與DM9000A的數據收發和協議轉換;
工作過程如下:
當撥號確認后,主控制器對編解碼器發送控制指令,開始語音A/D轉換,并進行編碼,送到片外存儲器內進行緩存;Nios CPU對撥號信息的解析確定目的地址,通過Avalon總線對以太網接口發送數據傳輸指令;將符合以太網標準的數據從片外存儲器內讀出,送入Internet中,返回確認信息。系統處理流程圖如圖7所示。
圖7 系統處理流程圖
4.2 I2C語音模塊
由于語音編解碼器的處理延時是影響VoIP話音質量的因素之一,為了保證語音編解碼的實時性,軟件系統在控制WM8731編解碼器的編解碼同時,加入了I2C語音模塊,以實現語音數據的實時處理。它采用自頂向下設計方法利用Quartus Ⅱ進行設計[4]。
I2C是一種雙向制串行總線協議[5],只有總線處于“非忙”狀態時,數據傳輸才能被初始化。數據傳輸期間,只要時鐘線為高電平,數據線都必須保持穩定,否則數據線上的任何變化都被當作“啟動”或“停止”信號。它實現數據的實時傳輸。
首先在Quartus Ⅱ環境內創建一個名為I2C的原理圖文件,然后建立包括各個模塊的頂層圖(使用Altera提供的LPM功能模塊或者建立自己的功能模塊),在頂層圖中將各個功能模塊進行連接,如圖8所示。
調試通過以后必須對其引腳進行手動設置,以便程序的下載,如圖9所示。
將Wolfson WM8731音頻編解碼器被配置為控制模式,可以自動產生AD/DA的連續比特時鐘和左/右聲道時鐘(CLOCK500.v)。編解碼系統采樣頻率設定為48 kHz。
I2C.v程序流程見圖10。
圖8 I2C語音頂層原理圖
圖9 I2C引腳設置
圖10 語音數據流處理程序流程圖
在Quartus Ⅱ中對本模塊進行測試,輸入頻率50 MHz,波形結果如圖11所示。
AUDADCDAT與AUDDACDAT分別為I2C總[LL]線的輸入輸出,由圖11中可見其延遲為9.033 ns,實現了語音數據的實時處理。
圖11 I2C.v程序波形分析
5 結 語
本文研究并設計了一個基于SIP的IP電話終端,其結構比較完整。同時對系統進行了分塊測試和環境測試,實現了語音數據的A/D、D/A實時轉換,進行了數據報的收發。同時,本文提出的SIP與PSTN的互聯模型,使用戶(尤其是長途電話用戶)不必擔心SIP IP終端與PSTN用戶的連接,可以在運營商的支持下自由地同其他用戶進行通信,而不用擔心產生高昂的通話費用。
Altera公司的軟件開發工具Quartus Ⅱ和Nios Ⅱ因其功能強大、可移植性強、可擴展性高,作為CPU開發,給大系統的升級與擴展提供了簡便的操作界面與操作方法。
從長遠來看,在VoIP技術發展過程中僅實現語音傳輸功能是遠遠不夠的。但利用Altera公司的軟核CPU技術,若在本文研究的基礎上添加短信平臺、VGA接口等,則IP電話終端就不僅能實現語音通信,還能實現短消息傳輸、視頻通訊等,或者與一些數據平臺服務商聯合,為用戶提供數字點播等服務,以成為一個功能強大的多媒體通信終端。
參 考 文 獻
[1]Uyless Black.VOICE OVER IP.American:Prentice Hall/Pearson,2000.
[2]Wolfson.Microelectronics plc.WM8731/WM8731L.pdf.American,2004.
[3]夏宇聞.Verilog數字系統設計教程\\[M\\].北京:北京航空航天大學出版社,2003.
[4]王志華,鄧仰東.數字集成系統的結構化設計與高層次綜合\\[M\\].北京:清華大學出版社,2001.
[5]楊玉峰,黃煒.基于Nios的IP網絡電話終端設計\\[C\\].2006年中國大學生電子設計文章競賽優秀作品集,2006.
作者簡介
許文建 男,1983年出生, 江蘇徐州人,碩士研究生。研究方向為檢測技術與自動化裝置。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。