新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于EP7211實現(xiàn)傳呼信息實時語音合成和播放原理及設計

基于EP7211實現(xiàn)傳呼信息實時語音合成和播放原理及設計

作者: 時間:2010-03-15 來源:網絡 收藏

2.3 PDA系統(tǒng)的體系結構

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

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

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

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

2.4 中斷服務例程

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

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

void IRQ_Codec_Handler(void)

{

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

{

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

{

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

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

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

{

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

復位各相關的全局變量;

程序返回;

}

}

else

{

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

0XFF;

}

}

}

3 試驗結構和分析

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

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

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


上一頁 1 2 下一頁

評論


相關推薦

技術專區(qū)

關閉