實用以太網(wǎng)電話機(05-100)
網(wǎng)絡(luò)接口芯片采用SMSC公司的LAN91C111芯片,可自適應(yīng)工作于10M/100M兩種速率的以太網(wǎng)。采用該芯片的主要原因是Nios II軟件的IDE(集成開發(fā)環(huán)境)對其提供了較完善的支持,可縮短開發(fā)時間。也可選用其它網(wǎng)絡(luò)接口芯片以進一步降低成本。
語音編解碼器和語音放大器
語音編解碼器選用NS公司的四路PCM CODEC芯片TP3094,可同時進行四路全雙工話音的G.711編解碼。四路語音是為以后的特殊應(yīng)用留余地,如果只需一路話音,可選用該公司的TP3057芯片。語音放大器分為發(fā)送放大器和接收放大器。發(fā)送語音放大器選用Maxim公司的話筒放大器專用芯片MAX4060,能夠適應(yīng)平衡和差分兩種話筒信號輸入方式,抗噪能力強,功耗低。接收放大器采用普通的LM386芯片,成本低廉,性能可靠。
值得指出的是,以太網(wǎng)電話機與傳統(tǒng)的二線制電話機不同,由于收發(fā)信道分開,不存在“回聲”問題,不會由于收發(fā)電信號串擾而引起嘯叫(聲信號反饋造成的嘯叫另當別論)。因此,可以使用較大功率的放大器來輸出接收到的信號。本設(shè)計使用LM386做放大器,除了能夠用揚聲器輸出比普通免提電話機響亮和保真得多的語音外,振鈴聲也可用同一個揚聲器輸出,省去了振鈴蜂鳴器。
數(shù)字語音處理電路
圖1中,F(xiàn)PGA芯片內(nèi)的資源除構(gòu)建Nios II軟核處理器外,主要用于數(shù)字語音處理,這是本設(shè)計的重要特色。由硬件電路并行處理收發(fā)語音,可以大幅度地分擔處理器的工作,又避免了在使用普通的嵌入式處理器時再外加一片F(xiàn)PGA。由于強實時性的語音處理工作由硬件承擔,Nios II處理器及相應(yīng)軟件可專注于系統(tǒng)管理和網(wǎng)絡(luò)協(xié)議解析,增進了軟件效率。這一點是保證以太網(wǎng)電話機聲音質(zhì)量的關(guān)鍵。
數(shù)字語音處理電路主要完成以下工作:
- PCM時序控制
- 信號音編碼輸出
- 發(fā)送語音緩存
- 發(fā)送語音靜音控制
- 接收語音緩存
- 振鈴信號輸出
其它接口電路
除上述電路以外, FPGA芯片內(nèi)還構(gòu)建了以下一些必要的接口電路:
- 叉簧開關(guān)接口
- 撥號鍵盤接口
- LED接口
- RS232接口
- 配置電路和AS接口
- JTAG接口
軟件方案
由于采用了FPGA芯片,大量的信號處理工作已由硬件完成,因此以太網(wǎng)電話機的軟件相對較為簡單。整機軟件由嵌入式操作系統(tǒng)、網(wǎng)絡(luò)通信協(xié)議和電話應(yīng)用軟件三部分組成。
嵌入式操作系統(tǒng)
出于成本考慮,以太網(wǎng)電話機選擇使用“開源”嵌入式操作系統(tǒng)μC/OS II。由于語音信號的數(shù)字處理過程基本已由FPGA硬件完成,操作系統(tǒng)主要起控制和管理作用,所以使用μC/OS II完全能夠勝任。μC/OS II無內(nèi)嵌網(wǎng)絡(luò)通信協(xié)議,在應(yīng)用時要另行移植TCP/IP網(wǎng)絡(luò)通信協(xié)議到μC/OS II操作系統(tǒng)中。
LwIP網(wǎng)絡(luò)通信協(xié)議
以太網(wǎng)電話機必須采納通用的以太網(wǎng)網(wǎng)絡(luò)通信協(xié)議,即TCP/IP協(xié)議。這是以太網(wǎng)電話機能通過網(wǎng)絡(luò)實現(xiàn)電話通信的關(guān)鍵軟件。經(jīng)研究,選擇了LwIP來實現(xiàn)TCP/IP通信。LwIP具有很好的兼容性,稍微修改后即可移植到μC/OS II操作系統(tǒng)中并置于μC/OS II的管理和控制之下。
在本項目進行時,LwIP協(xié)議棧還沒有被加入到Altera公司的官方軟件中。但目前Altera公司已經(jīng)把它集成到其IDE里,最常用和最重要的TCP、IP、UDP、ARP、DHCP等協(xié)議均已得到支持,使用更為方便。
電話應(yīng)用軟件
傳統(tǒng)的電話機自身無需任何軟件即可工作,其信令傳輸、信號音和話音的接續(xù)、交換依賴于程控交換機端的軟件來檢測和控制。以太網(wǎng)電話機因為不要求網(wǎng)絡(luò)端提供額外設(shè)備,所以這些功能都要由電話機來實現(xiàn)。從一定意義上來講,是把程控交換機的功能分散到各個電話機來實現(xiàn)。所以,以太網(wǎng)電話機的應(yīng)用軟件十分類似于小程控交換機的軟件,主要有檢測摘掛機狀態(tài)、啟閉各種信號音、檢測撥號信息、向被叫送振鈴信息、和被叫交換語音數(shù)據(jù)等。
以太網(wǎng)電話機的工作過程
本以太網(wǎng)電話機制作并調(diào)試完成后,實現(xiàn)了網(wǎng)絡(luò)電話交換的功能,音質(zhì)優(yōu)良,感覺不出噪聲和延時,而且沒有回聲。
電話機上電后,F(xiàn)PGA首先自動從EPCS4芯片處取得配置數(shù)據(jù),完成對FPGA芯片的邏輯編程,構(gòu)建成片內(nèi)Nios II處理器、硬件外設(shè)接口電路和數(shù)字語音處理等邏輯電路。接著,以太網(wǎng)電話機啟動初始化程序,完成對硬件的初始化檢測、硬件外圍設(shè)備工作狀態(tài)的設(shè)定,自動把放置在Flash RAM中的應(yīng)用程序加載到SDRAM中。然后,以太網(wǎng)電話機轉(zhuǎn)入電話應(yīng)用程序,監(jiān)測本機的摘掛機狀態(tài)和來自網(wǎng)絡(luò)的其它電話機呼叫信號。
當檢測到本機摘機后,以太網(wǎng)電話機給本機送撥號音,隨即監(jiān)測來自撥號鍵盤的信息。收到正確的撥號信息后,電話機查找存儲的“號碼—IP地址”對照表,向被叫用戶發(fā)送呼叫信息。如果撥號有誤,電話機發(fā)忙音,提示用戶掛機。
被叫收到來自網(wǎng)絡(luò)上主叫電話機的呼叫后,如果原處于摘機或振鈴狀態(tài),則向主叫返回“忙”信息,主叫收到后結(jié)束呼叫,向本機送忙音。如果被叫處于掛機又不振鈴狀態(tài),則向主叫返回“閑”信息。主叫收到被叫的“閑”信息后,向本機送回鈴音,同時向被叫發(fā)“振鈴”信息。被叫收到“振鈴”信息后,電話機振鈴,振鈴音和主叫的回鈴音同步。一旦被叫摘機,立即停止振鈴,發(fā)“通話”信息給主叫。主叫收到“通話”信息后停送本機回鈴音,返回“通話”信息給被叫,雙方進入通話狀態(tài)。通話過程中,主、被叫發(fā)送各自的語音數(shù)據(jù)包給對方,同時接收對方發(fā)來的語音數(shù)據(jù)包。在此期間,兩電話機隨時檢測本機的摘掛機狀態(tài)。任何一方電話機掛機后,停送語音數(shù)據(jù)包,向?qū)Ψ桨l(fā)“結(jié)束”信號。對方收到“結(jié)束”信號后,亦停送語音數(shù)據(jù)包,向本機送忙音,提示用戶掛機。
結(jié)語
以太網(wǎng)的應(yīng)用現(xiàn)已十分普及,有了以太網(wǎng)電話機,只要把電話機往網(wǎng)絡(luò)上一接,就能給網(wǎng)絡(luò)增加內(nèi)線電話的功能。而由于以太網(wǎng)接入廣域網(wǎng)的技術(shù)十分成熟,只要再開發(fā)相應(yīng)的軟件,通過以太網(wǎng)電話機實現(xiàn)網(wǎng)間電話通信也是可能的。
本文雖然只以最普通的雙方通話說明了以太網(wǎng)電話機的功能,但只要網(wǎng)絡(luò)帶寬條件允許,通過軟件開發(fā),其它的許多電話功能以至語音調(diào)度功能都可以在以太網(wǎng)電話機上實現(xiàn),并且依然無需在網(wǎng)絡(luò)上增添額外設(shè)備。這些功能包括呼叫轉(zhuǎn)移、熱線呼叫、遇忙回叫、來電顯示、免打擾、多方會議、廣播、分組會議、用戶權(quán)限設(shè)定、監(jiān)聽、強占強插等等??傊?,以太網(wǎng)電話機可為語音的交換和調(diào)度提供一種新的解決思路。
評論