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