傳統的電話網是以電路交換的方式傳輸語音信號的,它需要的基本帶寬為64Kb/s。據統計,在正常的通話情況下,大約只有40%的時間為有聲期,其余時間電路均為空占,網絡帶寬利用率不高。隨著計算機技術的不斷發展,尤其是互聯網絡的不斷完善,基于分組交換的數據通信成為最重要的通信方式。而要在基于IP的分組網絡上傳輸語音,就必須對模擬的語音信號進行特殊的處理,使處理后的信號可以適合在面向無連接的分組網絡上傳輸,這就是分組語音技術。本文介紹的就是一種基于ARM7內核的IP電話設計。 G.728編碼標準 語音編碼技術是IP電話的核心技術之一,編碼質量的好壞直接關系到IP電話的通信質量。 G.728標準的語音編碼算法是16Kb/s的聲碼器編碼標準,采用低時延碼本激勵線性預測(LD-CELP)技術。線性預測器使用的是反饋型后向自適應技術,預測器系數是根據上一幀的語音量化數據進行更新的,因此算法時延較短,為0.625ms,相當于5個采樣點時間,這也是G.728的幀長時間。由于使用反饋型自適應技術,因此預測器系數無須傳送,唯一需要傳送的是激勵信號量化值,也就是碼本索引值。G.728標準的語音編碼算法的碼本總共有1024個矢量,索引需占10比特,因此其比特率為10/0.625=16Kb/s。 G.728標準的語音編碼的主要特點有:算法時延短,僅為0.625ms;一路編碼時延小于2ms;傳輸比特率為16Kb/s;MOS值為4.173,達到了長途通信質量。 由于G.728標準的語音編碼算法的時延短,語音傳輸比特率可以滿足IP電話的應用要求,所以選用G.728標準的語音編碼算法作為IP電話的編碼算法。 硬件系統設計 TMS470R1A256屬于TI TMS470R1x通用16/32位精簡指令微控制器系列。該系列采用高速的ARM7內核,從而保證了其高性能、高吞吐量和編碼空間效率。 系統的主要作用是充分利用ARM7內核高速的數據處理能力,以減輕計算機CPU的負擔;語音的錄入和輸出系統也單獨分離出來,這樣可以更好的和MCU進行數據傳輸,減少不必要的中間環節,減少時延。最后,通過高速的PCI總線,將數據傳送給計算機。系統的總體結構框圖如圖1所示,各模塊的具體功能如表1所示。 圖1 系統總體結構框圖 1 MCU與Flash的通信 由于TMS470R1A256的I/O接口電壓為3.3V,而AM29F101B的接口電壓為5V,所以在接口部分需要進行電壓轉換,并且AM29F101B的片選信號(CE)和輸出使能信號(OE)需要地址譯碼。這些工作均由一片復雜的可編程邏輯器件(CPLD)來完成。 由于AM29F101B的接口速度較慢,所以TMS470R1A256和AM29F101B之間的接口必須插入軟件等待狀態,具體要插入的軟件等待狀態數目可以由數據手冊計算得到或在調機時由試驗得到。TMS470R1A256與AM29F101B之間的接口電路如圖2所示。 圖2 MCU與Flash的接口電路 2 MCU與ADC、DAC之間的通信 本系統所選用的G.728標準的語音編碼算法需要8kHz的采樣速率。所以對ADC和DAC要求最高采樣率或轉換時間不低于8kHz。 根據語音信號的特點,選用TI的TLC32044芯片,這是一片集成了ADC和DAC功能的芯片。它的最高轉化速率為19.2kHz,轉換位數為14位,輸入電壓帶范圍可調,有標準同步串口,還有輸入濾波器和輸出重構濾波器,這樣可以省去模擬濾波器的設計。TMS470R1A256與TLC32044的接口電路如圖3所示。 圖3 MCU與ADC、DAC的接口電路 3 MCU與雙端口RAM之間的通信 為了體現PCI總線速度快的優點,選用速度較快的雙端口RAM芯片CY7C133-25,其最大傳輸速率為25ns。雙端口RAM在MCU的數據空間的地址映射為8000H~87FFH。 需要強調的是雙端口RAM的BUSY信號。本設計并不使用這個信號,因為分別對雙端口RAM的不同部分進行操作,所以避免了可能發生的任何沖突,因此省去了BUSY信號,該信號懸空。 電路的電壓轉換和地址譯碼同樣由CPLD來完成。MCU與雙端口RAM的接口電路如圖4所示。 圖4 MCU與雙端口RAM的接口電路 4 PCI9052與雙端口RAM之間的通信 MCU的任務是完成語音的編碼和解碼,然后再通過PCI總線與計算機進行數據交換。MCU與PCI9052之間用一片雙端口RAM(容量為2k×16bit)進行數據交換。 由于PCI9052具有5個局部地址空間和4個局部設備片選信號,所以連線變得相當的簡單,只需要將雙端口RAM映射到其中一個局部地址空間,然后使用其中的一個片選信號連接到雙端口RAM的CE,最后將PCI9052的讀寫信號(R/W)和OE對應連接到雙端口RAM的R/W和OE。這樣就省去了地址譯碼等外圍邏輯電路。 軟件系統設計 IP電話系統要實現的算法就是語音編碼算法,還要完成與計算機的數據交換。 軟件部分的主要作用是用嵌入式操作系統中的TCP/IP協議對需要傳送的語音編碼信號進行打包,再通過計算機上的網卡將數據通過Internet傳送到接收方,并把接收到的TCP/IP包還原為原來的語音編碼信號,最后通過PCI總線傳輸給MCU進行語音解碼。 結束語 本設計方案的主要優點是對計算機硬件的要求不高,處理速度快,語音的輸入輸出系統單獨集成,且信噪比高。 |