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