新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 運用EP7211實現(xiàn)傳呼信息實時語音合成和播放方案設(shè)計

運用EP7211實現(xiàn)傳呼信息實時語音合成和播放方案設(shè)計

作者: 時間:2012-01-04 來源:網(wǎng)絡(luò) 收藏

本文引用地址:http://www.butianyuan.cn/article/149879.htm

2.3 PDA系統(tǒng)的體系結(jié)構(gòu)

PDA系統(tǒng)中嵌入式處理器進行數(shù)據(jù)處理,解碼芯接收并進行解碼,LCD提供數(shù)據(jù)輸出顯示,觸摸屏提供用戶輸入接口,F(xiàn)lash用來存儲應(yīng)用程序和數(shù)據(jù),SRAM為程序運行提供內(nèi)存空間,電源電路為嵌入式處理器和外圍設(shè)備提供所需要工作電壓。

嵌入式處理器是Cirrus Logic公司專門為低成本、超低功耗的嵌入式應(yīng)用設(shè)計的,包含ARM7TDMI處理器內(nèi)核和豐富的外圍接口。外圍接口有CODEC音頻接口、SPI串行A/D接口、單色LCD接口、DRAM接口、紅外接口、2個PWM接口、時鐘RTC以及電源檢測接口。的內(nèi)核電路工作在2.5V,而外圍電路工作在3.3V;可根據(jù)具體情況對內(nèi)核的時鐘進行動態(tài)編程控制,可工作在18、36、49和74MHz。另外EP7211還有3種基本供電模式:正常操作(operating)、空閑(idle)和等待(standby)。在等待模式,主時鐘被關(guān)斷,整個CPU及相關(guān)外圍(除中斷和RTC)也關(guān)斷,但可通過中斷或按鈕來喚醒。

系統(tǒng)軟件開發(fā)平臺采用了我們自主開發(fā)研制的、專門面向嵌入式應(yīng)用系統(tǒng)開發(fā)的XGW平臺。XGW開發(fā)平臺采用消息驅(qū)動機制,是C語言開發(fā)。它功能強大、模塊化設(shè)計、擴展性強、產(chǎn)品升級容易,總體框架如圖5所示。

圖5全面反應(yīng)了XGW開發(fā)平臺的體系結(jié)構(gòu),包括事件消息驅(qū)動機制、內(nèi)存管理、字符和圖形顯示輸出、圖形組件庫等。圖形組件庫中的編輯框、列表框、按鈕等為用戶應(yīng)用程序開發(fā)提供系統(tǒng)應(yīng)用編程接口API。不過,XGW平臺對于系統(tǒng)硬件的中斷響應(yīng)沒有提供統(tǒng)一的入口和出口,需要開發(fā)人員單獨處理。XGW開發(fā)平臺的消息分為鼠標(biāo)消息、鍵盤消息和定時器消息等3類。

2.4 中斷服務(wù)例程

嵌入式處理EP7211本身提供的外設(shè)錄放Codec(coder/decoder)芯片可以的錄入和功能。該模塊提供2個獨立的16字節(jié)長的數(shù)據(jù)發(fā)送和接緩沖區(qū)(FIFO),其為全雙工模式,數(shù)字據(jù)點發(fā)速率是64kbps。芯片自身提供工作時鐘、定時脈沖以及數(shù)據(jù)串/并和并/串轉(zhuǎn)換功能。編程人員通過設(shè)置EP7211相應(yīng)的控制寄存器使能這些項功能,則每當(dāng)數(shù)據(jù)收發(fā)緩沖區(qū)半慢或者半空時(8字節(jié)),芯片自身就會產(chǎn)生一次中斷信號供外部處理。理論計算芯片中斷速率是1ms/次。

語音中斷服務(wù)例程主要完成的工作是,當(dāng)產(chǎn)生語音中斷時,仍然有數(shù)據(jù)需要,則向語音數(shù)據(jù)發(fā)送緩沖區(qū)FIFO中寫入指定數(shù)據(jù),剩下的工作由Codec芯片本身來完成。中斷服務(wù)例程ISR的偽代碼如下(因為具體代碼沒有通用性,故此處用偽碼描述):

void IRQ_Codec_Handler(void)

{

while(檢測系統(tǒng)狀態(tài)寄存器,發(fā)現(xiàn)語音芯片數(shù)據(jù)發(fā)送緩沖區(qū)FIFO非滿)

{

if(已經(jīng)播放過的語音數(shù)據(jù)長度給定的需要播放的語音數(shù)據(jù)長度)

{

向語音芯片發(fā)送數(shù)據(jù)緩沖區(qū)FIFO寫入指定數(shù)據(jù);

調(diào)整已經(jīng)播放過的語音數(shù)據(jù)長度;

if(已經(jīng)播放過的語音數(shù)據(jù)長度>=給定的需要播放的語音數(shù)據(jù)長度)//結(jié)束

{

禁止數(shù)據(jù)發(fā)送緩沖區(qū)中斷;

復(fù)位各相關(guān)的全局變量;

程序返回;

}

}

else

{

向語音芯片發(fā)送數(shù)據(jù)緩沖區(qū)FIFO寫入默認數(shù)據(jù)

0XFF;

}

}

}

3 試驗結(jié)構(gòu)和分析

由于在設(shè)計階段充分考慮過語音算法的大運算量和系統(tǒng)的性要求,故我們在具體的時候也采取了一些措施,比較突出的有:用ARM匯編語言來實現(xiàn)關(guān)鍵性的函數(shù)代碼;語音時提高處理器EP7211的工作頻率(處理器正常工作頻率是18MHz);對于一些常用的三角函數(shù)計算,采用查表的方式等來加快程序執(zhí)行速度。在PDA樣機測試中,單字符時間在650ms左右,基本上能夠滿足實際應(yīng)用需求。數(shù)據(jù)語音庫經(jīng)過處理之后,占用了729 560字節(jié)也能夠滿足本PDA系統(tǒng)的存儲的要求。

當(dāng)PDA系統(tǒng)收到1條個人時,在語音庫的支持下,立刻啟動語音合成算法,逐個進行字符語音合成。當(dāng)?shù)?個字節(jié)語音合成結(jié)束后,立刻啟動語音中斷服務(wù)例程進行語音播放。這樣收到的個人傳呼,前臺逐個字符解碼時,其后臺語音播放也在進行。根據(jù)實際測試參數(shù),基本上滿足了系統(tǒng)的性要求。

從一定角度看,單字符650 ms的語音合成時間基本能夠滿足實際應(yīng)用需要,但還是希望能夠進一步減小這個值。這由于我們對ARM算是器的使用還處在研究階段。ARM本身提供了16位的Thumb指令集和32位的ARM指令集,而且兩者在某些方面表現(xiàn)出較大差別。一般來講,Thumb代碼長度是ARM代碼長度的65%,而執(zhí)行效率要經(jīng)后者高出60%。但在某些方面,32位ARM指令集也會表現(xiàn)出其優(yōu)于16位Thumb指令集的強大功能;同時該處理器系統(tǒng)支持ARM指令庥和Thumb指令集混合編程模式。隨著對二者差別和各自優(yōu)勢的深入理解,結(jié)合本系統(tǒng)的硬件體系結(jié)構(gòu),采用有效的指令集混合編程模式將會使程序執(zhí)行效率進一步提高,從而使實時性得到進一步加強。


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉