基于USB接口的VoIP手柄設(shè)計
VoIP是指將語音信號進行編碼、壓縮和分包等處理,通過IP網(wǎng)絡(luò)進行傳輸,實現(xiàn)計算機一計算機、普通電話普通電話、計算機與普通電話之間進行話音通信的技術(shù)。現(xiàn)代數(shù)字信號處理技術(shù)和語音壓縮編碼技術(shù)的進步,在技術(shù)上保證了IP電話在Internet網(wǎng)上傳輸?shù)目尚行?;而H.323標(biāo)準(zhǔn)的頒布和SIP協(xié)議的應(yīng)用,使得IP語音業(yè)務(wù)能夠在Internet網(wǎng)上迅速開展起來,并有望成為一種核心和關(guān)鍵技術(shù)。這種通信方式的經(jīng)濟性和軟交換的特點,使它具有非常廣闊的發(fā)展前景。
USB接口是一種應(yīng)用在計算機領(lǐng)域的新型接口技術(shù),最早由Compaq、Intel、Microsoft等多家公司在1994年11月共同提出的,其目的是用USB來取代PC現(xiàn)有的各種外圍接口,使外圍設(shè)備的連接具有單一化、即插即用、熱插拔、速率高和易擴展等特點。本文介紹的基于PC終端USB接口的VoIP手柄(話機),就是利用USB接口的特點得以實現(xiàn)的。
1 VoIP手柄的方案設(shè)計
本機的實現(xiàn)包括硬件設(shè)計和軟件編程兩部分。
1.1 硬件總體方案
VoIP手柄的通話是通過USB接口來實現(xiàn)的,所以硬件主要包括USB接口芯片AN2131QC、語音處理芯片MCl45483,另外還包括撥號鍵盤部分、顯示部分、電源處理部分等,其總體硬件框架結(jié)構(gòu)如圖l所示。其中撥號鍵盤主要采取編碼方式,通過AN2131QC的I/O檢測獲得按鍵信息。顯示部分為液晶顯示,可以顯示呼叫號碼、呼叫狀態(tài)、時間、日期和星期等信息。串行EEPROM的主要功能是存儲制造商信息、產(chǎn)品信息和設(shè)備信息。當(dāng)上電時,如果主控芯片的核檢測到EEPROM連接在I2C總線上,將首先處理這些信息。
1.2 AN2131QC芯片應(yīng)用介紹
本設(shè)計選擇的控制芯片是EZ_USB系列的AN2131QC。此芯片提供了基于RAM的,允許無限制設(shè)置和升級的解決方案,支持全速USB總線吞吐量的傳輸。在芯片內(nèi)核中提供大量的輔助指令,簡化了編碼,同時也加快了對USB特性的開發(fā)。芯片的簡化結(jié)構(gòu)如圖2所示。AN2132QC內(nèi)部有一個核:它由串行接口引擎(SIE)和USB接口兩部分組成。SIE負(fù)責(zé)和USB收發(fā)器、USB接口進行數(shù)據(jù)交換,以實現(xiàn)串行數(shù)據(jù)的編/解碼、差錯控制、位填充等與USB協(xié)議相關(guān)的功能。
1.3 MCl45483語音芯片應(yīng)用介紹
語音編碼也是本設(shè)計的關(guān)鍵部分之一。語音編解碼芯片選擇的是MC145483,這款芯片的特點主要體現(xiàn)在具有2 s補償?shù)?3位線性PCM編碼/解碼濾波器,實現(xiàn)語音信號的數(shù)字化和重構(gòu);工作電壓為3 V,功耗為8 mW,待機功耗僅為O.01 mW,只需單電源供電,因此減少了雙電源供電所帶來的電源干擾問題,提高了語聲質(zhì)量;該芯片還可以調(diào)節(jié)增益,設(shè)計簡單,具體實現(xiàn)如圖3所示。此設(shè)計能夠很好地滿足VoIP手柄的高質(zhì)量語音編/解碼功能的要求。
2 軟件功能的設(shè)計與實現(xiàn)
2.1 AN2131QC的USB自舉啟動
當(dāng)AN213lQC芯片復(fù)位(RESET)后,AN2131QC將自舉啟動檢查I2C總線上的EEPROM的存在。如果檢測到EEPROM,自舉啟動就會首先讀取EEPROM的第一個字節(jié)來決定枚舉的模式。不同的枚舉模式是由EEPROM首字節(jié)的數(shù)值來決定的,如表1所列。
在讀取EEPROM的首字節(jié)之前,自舉啟動必須設(shè)置EEPROM的地址計數(shù)器為O。它通過發(fā)送一個控制字節(jié)來選擇EEPROM,緊跟著一個O地址來設(shè)置內(nèi)部EEP-ROM地址指針為0。然后它發(fā)送一個控制字節(jié),并且開始讀取第1個EEPROM字節(jié)。
2.2 AN2131QC的USB傳輸
AN213lQC的USB傳輸分為塊傳輸、控制傳輸和中斷傳輸。
USB規(guī)范允許塊傳輸?shù)淖畲髷?shù)據(jù)包尺寸為8、16、32、64字節(jié),中斷數(shù)據(jù)l~64字節(jié)。AN2131QC提供了8個IN端點和8個OUT端點,每一個端點具有最大64字節(jié)的緩沖區(qū)空間。其中第2、4、6個IN和OUT端點可以和它緊接著的端點提供雙緩沖區(qū),允許8051在處理一個數(shù)據(jù)包的同時另外一個數(shù)據(jù)包在USB總線上傳輸,即6個“端點對”(USBPAIR寄存器)控制雙緩沖。805l在初始化時沒置14個端點有效位,并且通知AN213lQC核哪一個端點有效。缺省時端點O總是有效,塊數(shù)據(jù)出現(xiàn)在RAM中。每一個塊端點保留了64字節(jié)的RAM空間,l位計數(shù)寄存器,2位控制和狀態(tài)寄存器。8051能讀取狀態(tài)寄存器中的一位來決定端點是否為“忙”。在端點的“忙”位被設(shè)置時,8051將不能讀寫端點緩沖區(qū)和字節(jié)計數(shù)寄存器。當(dāng)一個端點為8051操作準(zhǔn)備好時,AN2131QC設(shè)置一個中斷請求位。AN2131QC向量中斷系統(tǒng)根據(jù)端點自動傳輸控制,從中斷服務(wù)子程序分離出中斷請求來響應(yīng)端點請求服務(wù)。
端點O是AN2131QC芯片中唯一的控制端點。盡管控制端點是雙向的,AN2131QC仍然提供了2個64字節(jié)的緩沖區(qū)INOBuF和OUToBUF。另外有一個附加的8字節(jié)緩沖區(qū),對端點O來說是唯一的,這個緩沖區(qū)保存著在控制傳輸過程中的SETUP階段到達時的數(shù)據(jù)。
中斷傳輸是一種特殊的塊傳輸。AN2131QC控制端點O接收特殊的SETUP令牌,它是一種主機用來處理設(shè)備控制信號的傳輸。主機通過端點。發(fā)送一系列標(biāo)準(zhǔn)設(shè)備請求表。
2.3 芯片固件程序
AN2131QC芯片的固件程序控制了整個硬件系統(tǒng)的運行。當(dāng)上電或連接時.其將自動下載至芯片的RAM中,由8051執(zhí)行。芯片固件程序負(fù)責(zé)處理主機發(fā)出的各種USB請求,流程如圖4所示。首先初始化所有的內(nèi)部狀態(tài)變量,然后調(diào)用AN2131QC的初始化程序Init()進行初始化,并開中斷。最后,芯片固件程序開始列舉USB設(shè)備,直至在端點0上收到SETUP令牌包時為止。一旦接收到SETUP令牌,其將重復(fù)執(zhí)行語音發(fā)送和接收VoiceRT()等功能。
2.4 驅(qū)動程序
驅(qū)動程序需要兩個:一個專用于下載芯片的固件程序,另一個用于在PC端實現(xiàn)接收/發(fā)送USB數(shù)據(jù)功能和語音數(shù)據(jù)處理功能。下載的應(yīng)用驅(qū)動程序包含WDM驅(qū)動程序所需的入口程序、即插即用程序、電源管理程序和卸載程序;而USB數(shù)據(jù)收發(fā)功能和語音數(shù)據(jù)處理驅(qū)動程序主要實現(xiàn)USB數(shù)據(jù)的接收、發(fā)送和語音信息的處理。這兩個程序需要在首次使用手柄時裝載到PC機上。
3 本設(shè)計的主要優(yōu)點
◇遵循USBl.1規(guī)范,無需聲卡,不需要外接電源。
◇兼容H.323、MGCP和SIP協(xié)議。
◇有LCD顯示屏和VoIP來電顯示功能。
◇采用了回音消除和噪聲抑制技術(shù)。
◇采用全雙工通信技術(shù)。
結(jié)語
本文主要介紹了基于USB接口的VoIP手柄的硬件和軟件設(shè)計方案,對USB接口通信方式作了較為詳細的介紹。在計算機端實現(xiàn)了H.323和SIP協(xié)議及服務(wù)質(zhì)量控制策略,保證了通話質(zhì)量。隨著計算機和Internet網(wǎng)絡(luò)進入每個家庭,VoIP電話技術(shù)必定有著廣闊的發(fā)展前景,人們將會得到更方便和更經(jīng)濟的通信服務(wù)。
評論