基于TNETV1700的高分辨率IP電話(huà)系統設計
引 言
本文引用地址:http://dyxdggzs.com/article/85345.htm模擬電話(huà)的語(yǔ)音采集和傳輸一直是低信號分辨率方式,語(yǔ)音信號的采樣頻率為8 kHz,數據寬度為8位,只能滿(mǎn)足基本的語(yǔ)音通信要求,而不能傳輸更高質(zhì)量的語(yǔ)音,例如音樂(lè )信號、彩鈴服務(wù)等。隨著(zhù)通信技術(shù)的發(fā)展,對高分辨率語(yǔ)音信號的要求成為必然,這樣就要求信號采樣頻率達到32 kHz甚至更高,數據寬度為16位或者24位。傳統的模擬電話(huà)無(wú)法滿(mǎn)足這一要求,使得模擬電話(huà)必然被數字電話(huà)所取代。
IP電話(huà)是以IP網(wǎng)絡(luò )為傳輸載體,實(shí)現計算機對電話(huà)、電話(huà)對電話(huà),以及計算機對計算機之問(wèn)進(jìn)行話(huà)音通信的技術(shù)。計算機對計算機方式是技術(shù)發(fā)展的最終方向。
本文介紹一種以美國TI公司的雙核數字信號處理器(DSP)TNETV1700為核心的高分辨率IP數字電話(huà)系統,配置高分辨率16位模擬/數字轉換芯片,實(shí)現對語(yǔ)音信號的采集和輸出、調制和解調、處理和存儲等功能。數字語(yǔ)音信號通過(guò)USB接口傳輸到PC,由上層軟件實(shí)現IP交換數據。本文主要介紹基于TNETV1700的IP電話(huà)終端的軟硬件設計。
1 系統結構
整個(gè)系統由TNETV1700、AD50、LCD、Flash、鍵盤(pán)以及電源等組成。其系統結構連接如圖1所示。圖1中,TNETV1700是核心控制單元,負責所有與外部設備的信號交換;外部設備中AD50負責模擬信號/數字信號的轉換,AD50既具有對模擬信號進(jìn)行采集轉換成數字信號的功能,也具有將數字信號轉換成模擬信號、發(fā)送到揚聲器的功能;LCD實(shí)現時(shí)間、電話(huà)顯示、設置信息等人機交互的所有顯示功能;Flash用于保存TNETV1700的上電引導程序,也可通過(guò)更新Flash中的程序對系統進(jìn)行升級。
TNETV1700是美國TI公司最近推出的一款針對客戶(hù)端電話(huà)信號處理的專(zhuān)用DSP芯片,該芯片內部集成一個(gè)TI公司的C55系列DSP TMS320C55和一個(gè)ARM926EJ-S處理器。TMS320C55用于電話(huà)的語(yǔ)音信號處理,包括雙音多頻信號檢測和產(chǎn)生、回音相消、數據壓縮和解壓,以及數據組包和拆包等多種語(yǔ)音信號處理算法。ARM926EJ-S用于實(shí)現控制功能,包括對LCD、USB控制器、GPIO、Flash、鍵盤(pán)等的控制。使用TNETV1700的USB控制器,直接連接到PC,實(shí)現TNETV1700和PC之間語(yǔ)音數據的交互。此外,TNETV1700內部還具有通用DSP芯片常有的緩沖串口、HPI接口、定時(shí)器等片內外設。由于TNETV1700采用低功耗的TMS320C55,所以其功耗非常低,正常工作情況下,工作電流不到300 mA,整個(gè)系統可以采用從USB接口饋電方式,無(wú)需單獨供電。
2 系統硬件設計
AD50是TI公司生產(chǎn)的一款集成有A/D和D/A轉換器的芯片,TNETV1700與AD50連接后,可以只使用一個(gè)緩沖串口同時(shí)實(shí)現數據的采集和輸出,從而節省了TNETV1700的硬件開(kāi)銷(xiāo)。TNETV1700與AD50的硬件連接如圖2所示。
AD50的時(shí)鐘信號由TNETV1700的定時(shí)器0的輸出提供,時(shí)鐘頻率可以通過(guò)修改定時(shí)器0的設置而改變。AD50的FC引腳連接到TNETV1700的GPIO0(通用I/O引腳),用于控制AD50的串行通信;DIN(數據輸入引腳)和DOUT(數據輸出引腳)分別接TNETV1700緩沖串口0的DX0和DR0引腳;SCLK(移位時(shí)鐘輸出引腳)連接TNETV1700的CLKR0(緩沖串口0的接收時(shí)鐘引腳);幀同步信號FS連接TNETV1700緩沖串口0的FRX0引腳。
為了達到更好的信號處理效果,AD50的模擬信號輸入一般采用差分輸入方式,圖2中使用變壓器將單端信號轉換成差分信號。信號一正一負同時(shí)進(jìn)入采集系統,如果此時(shí)有隨機噪聲出現,通過(guò)正負信號的加減,可以有效消除部分噪聲。AD50的D/A輸出為差分信號,可以直接驅動(dòng)600 Ω的負載,同樣也可消除輸出電路上的隨機噪聲。
LCD控制器負責與LCD及其外設的連接。LCD控制器連接2個(gè)外設:一個(gè)是到ARM926EJS的DMA請求,另一個(gè)是ARM926EJS到LCD的中斷請求。這樣,ARM926EJS作為主設備,可以在CPU不參與的情況下實(shí)現對LCD的顯示控制。LCD作為被動(dòng)設備,只有少量需要返回的狀態(tài),發(fā)送中斷到ARM926EJS,由ARM926EIS安排時(shí)間讀取LCD狀態(tài)。這樣,使得整個(gè)LCD的顯示和控制占用較少的CPU資源。如果系統使用簡(jiǎn)單的點(diǎn)陣顯示,就無(wú)需LCD控制器參與,只需要簡(jiǎn)單的幾根GPIO掃描就可以。TNKTV1700與LCD的硬件連接如圖3所示。圖中,使用穩壓器MAX633將3.3 V電壓轉換成LCD所需要的15 V電源,使用穩壓器TPS79333將LCD和TNETV1700隔離開(kāi),以增強系統的可靠性,避免LCD的高壓損壞芯片;TNETV1700的LCD控制器直接連接到驅動(dòng)芯片LZ9FC22,通過(guò)啟動(dòng)芯片控制LCD。系統選擇LCD型號為L(cháng)Q035Q7D。
系統中的USB接口和鍵盤(pán)接口均為標準接口,硬件上連接簡(jiǎn)單方便。USB接口使用4線(xiàn)接口,分別為差分數據正、差分數據負、電源和地引腳。USB接口的電源也是整個(gè)系統的電源入口。鍵盤(pán)接口使用3×4的掃描鍵盤(pán),可以直接連接標準電話(huà)機的12個(gè)按鍵(為0~9、*號和#號)。如果需要增加按鍵,可以使用TNETV1700的GPIO口完成。
3 系統軟件設計
系統的軟件總框圖如圖4所示。圖中,初始化模塊包括TNETV1700系統的初始化、鍵盤(pán)監控的初始化、LCD顯示的初始化、AD50的初始化、USB控制器的初始化。在初始化過(guò)程中設置定時(shí)時(shí)間、采樣點(diǎn)數、計算變量的初始值、各種參數等。
監控模塊隨時(shí)判斷各種定時(shí)是否到達,其中包括DSP核數據定時(shí)、鍵盤(pán)掃描定時(shí)、LCD顯示定時(shí)以及USB接口通信請求等。監控模塊程序完成以上查詢(xún)工作,并調用各個(gè)相應的處理程序。
中斷服務(wù)模塊包括4個(gè)中斷,即AD50中斷服務(wù)、定時(shí)器中斷服務(wù)、USB接口發(fā)送和接收中斷服務(wù)。中斷服務(wù)模塊中的AD50轉換和計算模塊完成對信號數據的采樣、處理和計算。在整個(gè)程序運行中間,AD50轉換的中斷請求享有最高優(yōu)先權。
DSP核主要處理語(yǔ)音信號處理算法,DSP端的軟件結構如圖5所示。TNETV1700控制AD350采樣到語(yǔ)音信號后,首先經(jīng)過(guò)“G.168回音相消算法”消除回音,然后調用VAD(Voice Activity Detection,語(yǔ)音激活檢測)技術(shù)判斷是否有語(yǔ)音信號,從而判斷出是否有語(yǔ)音輸入,避免將噪聲傳輸出去。在通話(huà)期間進(jìn)行VAD算法,可以去除兩個(gè)語(yǔ)音之間的數據,大大減少數據傳輸量。信號可以經(jīng)過(guò)壓縮算法后進(jìn)行RTP組包,也可以直接經(jīng)過(guò)UMTD(Universal Multi-frequency Tone Detector,通用多頻音檢測)算法進(jìn)行RTP實(shí)時(shí)組包,組包之后將數據包傳送ARM核,DSP核就完成了整個(gè)數據上傳算法。語(yǔ)音數據下傳和上傳相反,進(jìn)行RTD拆包、UMTG(Universal Multi-frequency Tone Genera-tor,通用多頻音產(chǎn)生)、數據解壓等算法。數據壓縮算法只有G.726算法集成在TNETV1700片內,其他算法(如G.723或者G.729)則需要用戶(hù)編寫(xiě)程序完成,為特定需求的應用場(chǎng)合提供軟件的可適應性。
ARM核主要實(shí)現LCD、鍵盤(pán)和USB的控制功能。ARM端的軟件結構如圖6所示。ARM端軟件的功能主要是控制外設和數據收發(fā)。為了不丟失控制信號和收發(fā)的數據,整個(gè)軟件采用時(shí)間片輪詢(xún)策略:設置各個(gè)模塊的定時(shí)器,主程序輪詢(xún)各個(gè)模塊的定時(shí)是否到達,如果到達則進(jìn)行該模塊的相應工作;完成后,繼續輪詢(xún)下一個(gè)模塊的定時(shí)。整個(gè)程序涉及的模塊有4個(gè):與DSP端進(jìn)行數據收發(fā)的模塊,實(shí)時(shí)監控鍵盤(pán)模塊,與PC端的USB數據收發(fā)模塊以及LCD顯示模塊。
結 語(yǔ)
本文詳細介紹了基于TNETV1700的IP數字電話(huà)系統構成、硬件連接以及軟件程序開(kāi)發(fā)。系統使用TNETV1700的DSP核進(jìn)行語(yǔ)音信號的算法處理,使用TNETV1700的ARM核對液晶、鍵盤(pán)和USB接口進(jìn)行控制,實(shí)現了單芯片系統設計。整個(gè)系統設計簡(jiǎn)單、可靠、實(shí)用,是一種比較好的IP數字電話(huà)解決方案。
評論