|
多方會議技術(shù)在DSP中的實現(xiàn) |
|
[ 通信界 / 西北工業(yè)大學電子信息學院 趙芙蓉 張捷 范艷開 / www.6611o.com / 2005/10/29 23:00:38 ] |
|
|
|
|
隨著企業(yè)對現(xiàn)代化通信系統(tǒng)的要求越來越高,電話會議系統(tǒng)在企業(yè)電話系統(tǒng)中的應(yīng)用越來越多,它可以極大地提高企業(yè)工作效率,改善企業(yè)的管理,提升企業(yè)的競爭力。
一般傳統(tǒng)電話會議的實現(xiàn)均利用企業(yè)內(nèi)部交換機(PBX)的多方通話功能,但有很大的局限性,特別是參加會議的人數(shù)有限,一般交換機不能超過8方,并且操作煩瑣,在使用中有很多不便。基于傳統(tǒng)電話會議系統(tǒng)的這一局限性,本文采用TI公司的TMS320C54X芯片來實現(xiàn)傳統(tǒng)交換機中的多方通話功能。

TMS320C54X系列
TMS320C54X是TI公司于1996年推出的新一代定點數(shù)字信號處理器。它采用先進的修正哈佛結(jié)構(gòu),片內(nèi)有8條總線(1條程序存儲器總線、3條數(shù)據(jù)存儲器總線和4條地址總線)、CPU、在片存儲器和在片外圍電路等硬件,加上高度專業(yè)化的指令系統(tǒng),使'C54X具有功耗小、高度并行等優(yōu)點,可以滿足實時處理的要求,目前已經(jīng)廣泛地應(yīng)用在電信領(lǐng)域中。
C54X提供高速雙向多通道帶緩沖串口McBSP。它可以與其它C54X器件、編碼器、或其它串口器件通訊。C54X芯片中只有三款有McBSP串口功能,分別是C5402有2個、C5410有3個、C5420有6個。每個McBSP有128個通道,可以通過相關(guān)寄存器進行配置。
C54X還提供一個主機接口(HPI)。HPI是一個8位并行口,用來與主設(shè)備或主處理器接口。外部主機是HPI的主控者,它可以通過HPI直接訪問CPU的存儲空間,包括存儲器映象寄存器。HPI支持主設(shè)備與 C54X之間的高速傳送數(shù)據(jù)。
DSP所在單板
DSP所在單板的總體結(jié)構(gòu)如圖1所示,MPC860作為單板的主處理器,用來管理單板的運行,控制各外設(shè)的操作。DSP作為單板的協(xié)處理器,負責多方通話程序的運行,也可以同時實現(xiàn)雙音多頻、FSK等功能。第一片F(xiàn)PGA主要實現(xiàn)單板的一些控制邏輯,如HPI接口控制邏輯、雙斷口總線仲裁邏輯、中斷定時邏輯等。第二片F(xiàn)PGA(DX1000)主要實現(xiàn)單板與背板的PCM鏈路交換,同時產(chǎn)生單板所需2M時鐘和幀同步信號。
單板通過雙端口與背板進行數(shù)據(jù)交換,通過DX1000與背板進行鏈路交換。另外,單板還提供調(diào)試串口和網(wǎng)口。
基本的工作流程為:背板信號通過隔離器進入雙口RAM,通過共享信箱的方式與主CPU通信。上電后,在BOOT FLASH的引導下完成系統(tǒng)的初始化。工作中,CPU從共享信箱接受命令后,發(fā)出指令,經(jīng)FPGA作處理后到達DSP模塊,DSP模塊對數(shù)據(jù)進行處理,處理后數(shù)據(jù)經(jīng)DX1000做交換后,送給背板。
多方會議的實現(xiàn)
在本文中僅使用多通道串口0和HPI來實現(xiàn)最多32方通話。首先要在DSP中開辟一個系統(tǒng)信箱,用于存放DSP與MPC860的握手聯(lián)絡(luò)字,以及對話音進行疊加或比大處理的控制字N,N=0表示對所有與會通道進行疊加處理,N≠0表示對所有與會通道進行比大處理。
所謂的多方會議功能就是通過把多個輸入話音通道疊加到一個輸出話音通道上來實現(xiàn)的。因此,每個輸出通道可以用兩個字(32比特)來控制相應(yīng)的32個輸入通道是否要疊加到該通道上來,1表示疊加(即參加會議),0表示不疊加(即不參加會議)。32個通道共64個字。如果相疊加的話音通道較多時,DSP也可以選擇音量最大的發(fā)送。所以,用戶既可以聽到所有與會人員的話音,也可以選擇聽到話音最大成員,方便又靈活。
多方會議的數(shù)據(jù)來源為DSP的多通道串口0的接收寄存器DRR10。每次數(shù)據(jù)到來時,就會產(chǎn)生中斷RINT0,因此,程序可以把從串口DRR10讀出的數(shù)據(jù)存到緩沖區(qū)DRR BUF里面,每幀數(shù)據(jù)到來,讀取一下命令信箱,從而對該幀數(shù)據(jù)進行處理。
當接收完一幀數(shù)據(jù)時,主程序會自動把數(shù)據(jù)送去處理,根據(jù)命令信箱所包含的時隙數(shù),完成對該語音信號的處理。
依據(jù)多方會議中包含的成員所對應(yīng)的時隙數(shù),將一個會議中所包含的語音數(shù)據(jù)提取出來。如果控制字N為0,就把所有成員的話音疊加起來發(fā)送,如果控制字N不為0, 對它們進行比大處理,把話音最大的發(fā)送。也就是說,一個用戶應(yīng)該聽到其他成員中話音最大的那一個。將處理后的數(shù)據(jù)填入發(fā)送數(shù)據(jù)緩沖區(qū)中。
語音數(shù)據(jù)的發(fā)送采用與接收相同的方法。每次把準備好的數(shù)據(jù)放到數(shù)據(jù)發(fā)送緩沖區(qū)DXR BUF,每產(chǎn)生一次接收中斷XINT0,就從緩沖區(qū)取出準備好的數(shù)據(jù),送到DXR10,完成對PCM話音鏈路的數(shù)據(jù)發(fā)送。主要的處理流程如圖2:

該處理流程首先對DSP及其串口進行初始化,然后和通過HPI和主機握手,判斷是否接收完一幀數(shù)據(jù)。如果沒有接收完,返回繼續(xù)等待。如果接收完一幀數(shù)據(jù),則DSP查看命令信箱,調(diào)用process按照主機的命令字N對語音信號進行處理。處理完以后返回等待,重復上一過程,直到32路都處理完。process的處理流程如圖3。

附 process的源程序:
PROCESS: STM #82H,AR4 ;地址82H中存放 命令控制字N LD *AR4,A BC ADD_PROCESS,AEQ CMP_PROCESS: DLD *AR1+,A ;AR1指向通道控 制字,加載控制字 NOP NOP XC 2,AEQ ST #0,*AR3+% NOP BC ONE_OVER,AEQ LD R_PTR,B ;R_PTR為接收數(shù) 據(jù)塊頭指針 STLM B,AR2 ST #0, R_PTR STM #31,BRC RPTB RE_LOP-1 AND #1,A,B BC NEXT,BEQ LD *AR2,B ABS B SUB MAX_POW,B ;MAX_POW 表 示語音最大值 BC NEXT,BLT MVDD *AR2,*AR3 ;AR3為一幀數(shù) 據(jù)處理指針 LD *AR2,B STL B,MAX_POW NEXT: LD A,-1,A MAR *AR2+ RE_LOP MAR *AR3+%
ONE_OVER: LD CHANNEL,A ;一路處理完,修改 通道值 ;CHANNEL表示 當前處理的通 道標號 ADD #1,A STL A,CHANNEL SUB #32,A NOP BC CMP_PROCESS,ALT B ALL_OVER ADD_PROCESS: DLD *AR1+,A ;加載命令字 NOP NOP XC 2,AEQ ST #0,*AR3+% BC ONE_END,AEQ LD R_PTR,B STLM B,AR2 ST #0,MAX_POW STM #31,BRC RPTB RE_LOP1-1 AND #1,A,B STLM B,T MPY *AR2+,B ADD MAX_POW,B STL B,MAX_POW LD A,-1,A RE_LOP1: LD MAX_POW,A STL A,*AR3+% ONE_END: LD CHANNEL,A ;一路處理完, 修改通道值 ADD #1,A STL A,CHANNEL SUB #32,A NOP BC ADD_PROCESS,ALT ;CHANNEL <32,轉(zhuǎn)到下 一個通道 處理 ;CHANNEL>=32, 處理下一個數(shù)據(jù)塊
結(jié)束語
多方會議服務(wù)本身正在不斷增長之中。盡管不斷引入的數(shù)據(jù)音頻和多媒體多方會議的受歡迎程度正在呈現(xiàn)不斷上升的態(tài)勢,但其代價太高。所以語音多方會議的在很長一段時間里仍會占據(jù)主導地位。
文中提出的用DSP來實現(xiàn)多方會議的功能,簡單易行,非常適合企業(yè)內(nèi)部的小型交換機使用,具有一定的實用價值。
|
作者:西北工業(yè)大學電子信息學院 趙芙蓉 張捷 范艷開 合作媒體:《世界電子元器件》 編輯:顧北 |
|
|
|
|
|
|
|
|