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