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