嵌入式數(shù)字多媒體終端硬件平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)
隨著信息時(shí)代的到來(lái),信息技術(shù)尤其是計(jì)算機(jī)多媒體技術(shù)與網(wǎng)絡(luò)技術(shù)飛速發(fā)展,語(yǔ)音教室在各種學(xué)校都已有了廣泛的應(yīng)用?,F(xiàn)存的語(yǔ)音教學(xué)系統(tǒng)一般都是采用模擬電路,可靠性低,抗干擾性弱,易發(fā)生串音,從而在傳輸過(guò)程中會(huì)失真、衰減,且易受干擾,導(dǎo)致語(yǔ)音質(zhì)量較差,同時(shí)布線也較復(fù)雜,建設(shè)成本比較高;另外現(xiàn)存的解決方案實(shí)現(xiàn)的功能較為單一,只能完成簡(jiǎn)單的教學(xué)功能,沒(méi)有提供隨意分組討論、點(diǎn)名、選擇題問(wèn)答等應(yīng)有的功能;另外,現(xiàn)存的解決方案沒(méi)有發(fā)揮出現(xiàn)有的多媒體網(wǎng)絡(luò)技術(shù)優(yōu)勢(shì),無(wú)法進(jìn)行高效、生動(dòng)的多媒體教學(xué),交互性比較差,教學(xué)效果受到很大的影響,嚴(yán)重影響了在實(shí)際教學(xué)中的推廣與應(yīng)用。要解決傳統(tǒng)語(yǔ)音教學(xué)面臨的問(wèn)題必須引入數(shù)字化的設(shè)計(jì)。
數(shù)字多媒體終端的硬件設(shè)計(jì)與實(shí)現(xiàn)
數(shù)字語(yǔ)音教學(xué)系統(tǒng)由教師端、多個(gè)學(xué)生端(數(shù)字多媒體終端)、數(shù)字傳輸網(wǎng)絡(luò)組成。其中,教師端一般采用計(jì)算機(jī)控制,主要完成系統(tǒng)管理及網(wǎng)絡(luò)管理。學(xué)生端既可以基于PC機(jī)平臺(tái),也可以采用經(jīng)濟(jì)型獨(dú)立設(shè)備。數(shù)字傳輸網(wǎng)絡(luò)是所要傳輸?shù)亩嗝襟w信息的載體。本文就是針對(duì)學(xué)生端設(shè)計(jì)一種經(jīng)濟(jì)實(shí)用的獨(dú)立設(shè)備。它采用嵌入式數(shù)字信號(hào)處理器DSP+CPLD+接口電路的設(shè)計(jì)模式。數(shù)字信號(hào)處理器DSP實(shí)現(xiàn)語(yǔ)音信號(hào)的處理、網(wǎng)絡(luò)接口部分的控制及多任務(wù)的管理。CPLD完成網(wǎng)絡(luò)適配部分設(shè)計(jì)及部分外圍電路控制。接口電路包含網(wǎng)絡(luò)接口、模擬語(yǔ)音輸入輸出接口。語(yǔ)音傳輸中要保證語(yǔ)音傳輸?shù)膶?shí)時(shí)性和交互性,實(shí)現(xiàn)學(xué)生端與教師端和其他學(xué)生端的通信。
硬件平臺(tái)構(gòu)造于DSP嵌入式系統(tǒng)上,該平臺(tái)采用了TI公司的數(shù)字信號(hào)處理器TMS320VC5402作為核心部件,利用可編程邏輯器件XC95288開(kāi)發(fā)了外圍控制電路和接口電路,其電路如圖1所示。它主要包括以下幾部分:
多種設(shè)備接口
包括網(wǎng)絡(luò)輸入、輸出接口、話筒輸入接口和耳機(jī)輸出接口。
語(yǔ)音信號(hào)前置放大
由于從話筒輸入的語(yǔ)音信號(hào)比較微弱(1~30mV),達(dá)不到編解碼器對(duì)信號(hào)強(qiáng)度的要求,因此必須進(jìn)行前置放大,這里由專用前置放大芯片完成。
語(yǔ)音信號(hào)的轉(zhuǎn)換及編解碼
語(yǔ)音信號(hào)的A/D,D/A轉(zhuǎn)換及編解碼功能是利用MC145480完成的,它的優(yōu)點(diǎn)是:①可將語(yǔ)音信號(hào)的A/D,D/A轉(zhuǎn)換及編解碼集成在一個(gè)芯片中,提高了系統(tǒng)穩(wěn)定性;②只需單電源供電,減少了雙電源供電所帶來(lái)的電源干擾問(wèn)題,提高了語(yǔ)聲質(zhì)量;③可提供A律及m律兩種編碼格式,提供符合ITU-T G.711建議的語(yǔ)音數(shù)據(jù)流。
系統(tǒng)控制、管理與語(yǔ)音壓縮
由數(shù)字信號(hào)處理器TMS320VC5402完成。該芯片處理速度快,可實(shí)現(xiàn)語(yǔ)音的實(shí)時(shí)處理,并實(shí)現(xiàn)語(yǔ)音的回聲抑制功能。除了能完成DSP所提供的功能外,利用內(nèi)嵌的DSP/BIOS實(shí)時(shí)操作系統(tǒng),可實(shí)現(xiàn)并建立語(yǔ)音實(shí)時(shí)多任務(wù)系統(tǒng)。
網(wǎng)絡(luò)適配電路
本網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)參考令牌總線網(wǎng),物理拓?fù)洳捎每偩€型結(jié)構(gòu),由一根線形的電纜連接各個(gè)站點(diǎn)。邏輯拓?fù)洳捎铆h(huán)形結(jié)構(gòu),每個(gè)站點(diǎn)知道自己左邊和右邊站點(diǎn)的地址,在邏輯上構(gòu)成一個(gè)環(huán),數(shù)據(jù)沿環(huán)逐節(jié)點(diǎn)順序傳送。這種物理結(jié)構(gòu)具有以太網(wǎng)電纜的可靠性,不會(huì)因某處電纜故障物而在物理上導(dǎo)致整個(gè)系統(tǒng)癱瘓。其所需電纜長(zhǎng)度短,安裝費(fèi)用低,易于布線、維護(hù)和擴(kuò)充。而且,物理上共享總線的站點(diǎn)之間可以直接通信,響應(yīng)速度較快。同時(shí),由于總線電纜固有的廣播特性,使得應(yīng)用中廣播功能的實(shí)現(xiàn)較為容易。另外,由于邏輯環(huán)是公平的,每一站點(diǎn)對(duì)信道的訪問(wèn)時(shí)間有一個(gè)確定的上界,因此可以防止某一站點(diǎn)獨(dú)占信道這種情況的發(fā)生。共享媒體語(yǔ)音網(wǎng)是一個(gè)局域通信網(wǎng)絡(luò),它沒(méi)有路由問(wèn)題,任何兩個(gè)站點(diǎn)之間可以使用一條直接鏈路,所以不需要單獨(dú)設(shè)置網(wǎng)絡(luò)層,而可以將尋址、排序、流控、差錯(cuò)控制等功能都放在數(shù)據(jù)鏈路層中實(shí)現(xiàn)。
該控制電路利用XILINX公司的可編程邏輯器件CX95288實(shí)現(xiàn)。網(wǎng)絡(luò)適配器把數(shù)據(jù)總線上的低電平并行信號(hào)轉(zhuǎn)換成0、1碼流,通過(guò)連接網(wǎng)絡(luò)各站點(diǎn)的電纜傳輸。它采用特殊技術(shù),以便利用適配器共享局域網(wǎng)線纜、局域網(wǎng)的介質(zhì)訪問(wèn)控制MAC方式和發(fā)送信號(hào)的類型。電路包括網(wǎng)絡(luò)接口、接收電路、發(fā)送電路及與DSP的接口電路。其中,網(wǎng)絡(luò)接口部分采用通用的RS-485通信接口,實(shí)現(xiàn)簡(jiǎn)單。共享媒體語(yǔ)音網(wǎng)絡(luò)的適配器電路結(jié)構(gòu)如圖2所示。
數(shù)字多媒體終端的軟件設(shè)計(jì)與實(shí)現(xiàn)
數(shù)字多媒體終端系統(tǒng)除了利用DSP完成信號(hào)處理,實(shí)現(xiàn)全部系統(tǒng)控制功能之外,在系統(tǒng)軟件設(shè)計(jì)中,需要對(duì)DSP、存儲(chǔ)器、外設(shè)等各種資源加以管理,同時(shí)還要處理多任務(wù)并發(fā)操作和不同任務(wù)之間的協(xié)調(diào)。為了保證系統(tǒng)的可靠性和穩(wěn)定性,本文采用了DSP/BIOS實(shí)現(xiàn)上述工作。
DSP/BIOS實(shí)時(shí)操作系統(tǒng)
DSP/BIOS是TI公司推出的一個(gè)實(shí)時(shí)操作系統(tǒng)(RTOS),與TI的Code Composer Studio(CCS)集成在一個(gè)開(kāi)發(fā)環(huán)境下。目前最新的版本是CCS 2.0 中的DSP/BIOS II。它支持軟件模塊化,通過(guò)修改內(nèi)核提供占先式多任務(wù)服務(wù);具有設(shè)備獨(dú)立的I/O數(shù)據(jù)流模型;可以對(duì)內(nèi)存進(jìn)行動(dòng)態(tài)分配與內(nèi)存管理。DSP/BIOS實(shí)際上是一個(gè)可調(diào)用的系統(tǒng)模塊API的集合,利用DSP/BIOS調(diào)試工具可以對(duì)程序進(jìn)行實(shí)時(shí)跟蹤與分析,提高應(yīng)用程序開(kāi)發(fā)的可靠性。通過(guò)DSP/BIOS 插件(Plug-ins)可實(shí)時(shí)觀察內(nèi)核中各線程的執(zhí)行狀態(tài)和對(duì)象的當(dāng)前屬性。利用配置工具(Configuration Tool)開(kāi)發(fā)者可以對(duì)各個(gè)模塊實(shí)行配置。非常有效地提高項(xiàng)目了開(kāi)發(fā)效率,簡(jiǎn)化了DSP應(yīng)用程序的開(kāi)發(fā)和調(diào)試。
DSP/BIOS實(shí)時(shí)語(yǔ)音處理多任務(wù)系統(tǒng)
對(duì)語(yǔ)音信號(hào)的處理利用DSP/BIOS建立實(shí)時(shí)多任務(wù)系統(tǒng)。DSP與音頻編解碼器之間的通信通過(guò)DSP的外設(shè)多通道緩沖串行口(McBSP)實(shí)現(xiàn)閉環(huán)測(cè)試。簡(jiǎn)單的語(yǔ)音處理系統(tǒng)由采集線程和播放線程兩個(gè)應(yīng)用任務(wù)組成。每個(gè)應(yīng)用任務(wù)分別對(duì)應(yīng)一個(gè)輸入SIO和一個(gè)輸出SIO流,通過(guò)兩個(gè)半雙工通道(一個(gè)輸入,一個(gè)輸出)來(lái)訪問(wèn)連接到音頻編解碼器的DSP多通道緩沖串行口。另外,在兩個(gè)任務(wù)之間的數(shù)據(jù)交換通過(guò)DPI設(shè)備驅(qū)動(dòng)完成。具體實(shí)現(xiàn)包括:
● 建立設(shè)備驅(qū)動(dòng)
設(shè)備驅(qū)動(dòng)采用DAX驅(qū)動(dòng)程序作為管理設(shè)備的軟件模塊。DAX驅(qū)動(dòng)模塊由DAX頭文件和DAX函數(shù)組成。DAX_Params作為配置工具設(shè)備驅(qū)動(dòng)對(duì)象的屬性。每個(gè)設(shè)備驅(qū)動(dòng)模塊同時(shí)還需要一個(gè)控制模塊,控制模塊由外部函數(shù)bind、start、stop和unbind等組成,通過(guò)DAX_Params參數(shù)結(jié)構(gòu)和配置工具配置控制器。其中,控制器的bind(unbind)函數(shù)負(fù)責(zé)綁定(解除綁定)設(shè)備驅(qū)動(dòng)模塊對(duì)設(shè)備端口的控制??刂破鞯膕tart函數(shù)負(fù)責(zé)調(diào)用流SIO_get時(shí)打開(kāi)設(shè)備端口,也就是打開(kāi)McBSP的接收和發(fā)送中斷使ISR中斷服務(wù)線程正常運(yùn)行??刂破鞯膕top函數(shù)使停止中斷運(yùn)行并關(guān)中斷。
DAX函數(shù)由配置工具中設(shè)備對(duì)象的函數(shù)表調(diào)用,在dax.c中初始化驅(qū)動(dòng)函數(shù)表DAX_FXNS,DAX函數(shù)表的結(jié)構(gòu)如下所示:
DEV_Fxns DAX_FXNS = {
DAX_close,
DAX_ctrl,
DAX_idle,
DAX_issue,
DAX_open,
DAX_ready,
DAX_reclaim
};
應(yīng)用程序不直接調(diào)用驅(qū)動(dòng)函數(shù),這個(gè)函數(shù)表用于SIO模塊調(diào)用特定的設(shè)備驅(qū)動(dòng)函數(shù),SIO模塊依次發(fā)送通常的函數(shù)調(diào)用適當(dāng)?shù)尿?qū)動(dòng)函數(shù)。
● 建立SIO流
本文利用靜態(tài)配置工具為每個(gè)任務(wù)建立一個(gè)輸入流和一個(gè)輸出流,采樣線程對(duì)應(yīng)采樣輸入流inSample和輸出流outSample,播放線程對(duì)應(yīng)播放輸入流inSink和輸出流outSink。
● 建立任務(wù)
系統(tǒng)利用DSP/BIOS建立兩個(gè)任務(wù)tasksample和tasksink,分別對(duì)應(yīng)Sample 和Sink線程,以完成語(yǔ)音的采集處理與播放處理。采樣線程Sample和播放線程Sink調(diào)用相同的I/O處理函數(shù),I/O處理函數(shù)如下所示:
static Void doStreaming(SIO_Handle input, SIO_Handle output, Uns nloops)
{
Ptr buf;
Int i, nbytes;
if ( SIO_staticbuf(input, &buf) == 0) {
SYS_abort("Error reading buffer");
}
while(1) {
if ((nbytes = SIO_get(input, &buf)) < 0) {
SYS_abort("Error reading buffer %d", i);
}
if (SIO_put(output, &buf, nbytes) < 0) {
SYS_abort("Error writing buffer %d", i);
}
}
}
雖然兩個(gè)線程調(diào)用了相同的I/O處理函數(shù),但是由于對(duì)應(yīng)不同的輸入/輸出流,因此在多任務(wù)操作中,不會(huì)出現(xiàn)沖突。
● 建立中斷服務(wù)程序
使用HWI硬件中斷服務(wù)管理器HWI配置相應(yīng)的中斷服務(wù)程序ISR。當(dāng)接收發(fā)生中斷時(shí),ISR將接收的數(shù)據(jù)放入緩沖區(qū),當(dāng)接收緩沖區(qū)滿時(shí),通知設(shè)備驅(qū)動(dòng)程序DAX,將緩沖區(qū)的數(shù)據(jù)發(fā)送到inSample流中,供上層任務(wù)處理。
結(jié)語(yǔ)
本文針對(duì)傳統(tǒng)模擬語(yǔ)音教學(xué)系統(tǒng)的弊端提出了數(shù)字語(yǔ)音教學(xué)系統(tǒng),并設(shè)計(jì)實(shí)現(xiàn)。該系統(tǒng)平臺(tái)主要為數(shù)字語(yǔ)音教室的隨意分組討論、點(diǎn)名、選擇題問(wèn)答、播放備課文件、回放等一系列功能提供了實(shí)現(xiàn)基礎(chǔ)。同時(shí)通過(guò)共享多種媒體,如聲音、音樂(lè)、文字、圖象等,減少時(shí)間浪費(fèi),使教學(xué)高效、生動(dòng),從而激發(fā)學(xué)生的學(xué)習(xí)積極性和想象力,有很好的開(kāi)發(fā)應(yīng)用價(jià)值?!?BR>參考文獻(xiàn):
1.TMS320C54XDSP Applications Guide.Texas Instuments, 1999.
2. TMS320C54XDSP Enhanced Peripherals.Texas Instuments, 1999.
3. 朱之劍、呂進(jìn),《多媒體技術(shù)及其應(yīng)用》,浙江科學(xué)技術(shù)出版社,1997年5月.
4. 胡道元,《計(jì)算機(jī)局域網(wǎng)》(第二版),清華大學(xué)出版社,1996年12月.
圖1 嵌入式多媒體終端硬件平臺(tái)結(jié)構(gòu)框圖
圖2 網(wǎng)絡(luò)適配器電路結(jié)構(gòu)
評(píng)論