一種嵌入式數(shù)字語音錄放系統(tǒng)的設(shè)計
隨著我國經(jīng)濟建設(shè)的迅猛發(fā)展, 公安、鐵路、民航、金融等部門對語音記錄的需求不斷增長。把語音生成技術(shù)應(yīng)用于工業(yè)監(jiān)控系統(tǒng)、自動應(yīng)答系統(tǒng)、多媒體查詢系統(tǒng)、智能化儀表、辦公自動化系統(tǒng)或家用電氣產(chǎn)品中, 使它們具有語音輸出功能, 使之能在適當(dāng)?shù)臅r候用語音實時報告系統(tǒng)的工作狀態(tài)、警告信息、提示信息或相關(guān)的解釋說明等, 無疑在提高人機通信能力、減少對錯誤處理的遺漏、提高系統(tǒng)性能、減輕人們的工作強度等方面都有極大的好處。
數(shù)字錄音系統(tǒng)是將現(xiàn)場的語音模擬信號轉(zhuǎn)變?yōu)殡x散的數(shù)字信號, 然后存儲在一定的存儲介質(zhì)上的一種錄音方式, 它也是數(shù)字語音處理技術(shù)中常用的一種方式。采用嵌入式數(shù)字錄音技術(shù)具有較高的效率和自動化程度, 而且錄音時間長, 并可將信息長期保存于存儲介質(zhì)中, 同時對語音信息進行編輯整理非常方便, 并可快速查找。
數(shù)字錄音系統(tǒng)具有PC機實現(xiàn)和嵌入式系統(tǒng)實現(xiàn)兩種方式。使用PC機由于其體積龐大, 耗電高, 造價也高, 并且在某些情況下, 系統(tǒng)的穩(wěn)定性得不到保證, 所以用PC機來實現(xiàn)各項功能和操作, 就會受到一定的限制。而嵌入式系統(tǒng)則具有體積小、供電方便、造價低、穩(wěn)定性高等優(yōu)點,所以得到了廣泛的應(yīng)用。
1 總體硬件方案
本系統(tǒng)采用包含有A/D與D/A電路的語音芯片來實現(xiàn)模擬信號和數(shù)字信號的相互轉(zhuǎn)換, 而不需要再另外設(shè)計專門的A/D與D/A變換電路。在語音信號從駐極體*進入通用單片機之前, 通常應(yīng)該進行信號的放大和濾波處理, 所以, 應(yīng)有相應(yīng)的輸入電路和器件; 同樣, 在放音的時候, 在信號經(jīng)過D/A變換后, 也要經(jīng)過濾波和放大處理,最后通過揚聲器將語音播放出來。另外, 本系統(tǒng)還可以從外部播放設(shè)備接收已有的語言信號, 并將語音信號存儲在語言芯片中, 然后在播放時將語音信號直接傳送到外部功放設(shè)備以達到更大輸出功率, 從而加強了本系統(tǒng)的兼容性、可擴展性和嵌入性。其系統(tǒng)總體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)框圖
為了實現(xiàn)更多的功能, 本系統(tǒng)加入了其他外圍硬件設(shè)備, 其擴展功能模塊及系統(tǒng)總體結(jié)構(gòu)框圖如圖1所示。本系統(tǒng)擴展有兩個可選的液晶顯示器LCD1602 和LCD12864, 而最終采用的LCD1602液晶顯示器的特點是體積小, 功耗低,具有背光功能, 采用通用接口芯片, 兼容性高。
時鐘芯片DS1302則是具有串行輸入輸出高性能的通用時鐘芯片。測溫芯片DS1820體積小, 并可用數(shù)據(jù)線供電, 同時具有獨特的單線口(只需一個接口引腳即可通訊) 是其最大特點。存儲器AT24C02, 采用串口通訊技術(shù), 可三位尋址。系統(tǒng)中的紅外接收放大頭可接收通用遙控器的命令, 用于實現(xiàn)短距離控制和數(shù)據(jù)采集功能。
[!--empirenews.page--]
2 軟件設(shè)計
系統(tǒng)軟件主要用于控制和協(xié)調(diào)單片機及外部設(shè)備, 是無需用戶干預(yù)的各種程序的集合, 它的主要功能是調(diào)度、監(jiān)控和維護系統(tǒng); 負責(zé)管理系統(tǒng)中各種獨立的硬件, 使得它們可以協(xié)調(diào)工作。
系統(tǒng)軟件可使使用者或其他系統(tǒng)將其當(dāng)作一個整體而不需要顧及到底層每個硬件是如何工作的。
下面介紹本系統(tǒng)的軟件設(shè)計。
2.1 系統(tǒng)主程序
系統(tǒng)功能的實現(xiàn)依賴于軟硬件的協(xié)同工作。
軟件開發(fā)工作可由單片機控制軟件來實現(xiàn)。它能實現(xiàn)錄/放音、中斷放音、停止錄音、讀取參數(shù)等功能。
單片機控制軟件采用循環(huán)查詢方式, 即各種操作都有一個按鍵控制, 系統(tǒng)會循環(huán)檢查按鍵值(SW1~SW6), 若發(fā)現(xiàn)某按鍵置0, 即執(zhí)行相應(yīng)的操作, 若有按鍵同時置0, 則按照程序的順序先后執(zhí)行。圖2所示是本系統(tǒng)的主程序流程圖。
圖2 主程序流程圖
2.2 中斷子程序
在單片機工作的同時, 不論是錄音還是放音, 系統(tǒng)都要完成三個過程的處理, 其目的是提高系統(tǒng)的處理能力。中斷程序是在微觀上的順序執(zhí)行, 但在宏觀上是并行執(zhí)行的。
軟件程序首先是初始化, 即進行開中斷準備工作。然后是定時器開始定時中斷, 即在單片機運行一個機器周期后, 片內(nèi)中斷存儲器自動加1,直至存儲器溢出后, 中斷標(biāo)志位置1, 單片機在下一個機器周期里響應(yīng)中斷子程序, 最后, 中斷子程序結(jié)束, 返回中斷前的主程序繼續(xù)運行, 程序又開始等待下一次中斷。循環(huán)中斷子程序的工作流程如圖3所示。
圖3 循環(huán)中斷處理子程序流程圖[!--empirenews.page--]
2.3 錄音和放音子程序
錄音初始化首先會通過查找系統(tǒng)參數(shù)找到錄音區(qū)的空白塊和空白頁的起始地址, 語音文件的數(shù)據(jù)就從該地址開始存儲; 同時讀出最大錄音時間和長度, 這兩個參數(shù)是用來自行停止錄音的。
當(dāng)沒有收到錄音結(jié)束的命令時, 如超過最大時間或長度, 錄音即自行停止。讀出這兩個參數(shù)后,先打開控制A/D變換速率的定時器, 然后再打開A/D變換操作。圖4所示是錄音子程序流程圖。
錄音結(jié)束后, 首先停止當(dāng)前操作, 然后語音芯片掉電待命; 最后返回主程序繼續(xù)運行。
放音初始化主要是根據(jù)輸入語音文件所在起始塊的地址, 從指定地址開始發(fā)出放音命令, 接著再發(fā)送從當(dāng)前地址開始的放音命令直到播完(EOM) 或存儲器末尾為止(OVF); 若按下STOP鍵, 則可直接停止放音并返回主程序。其放音子程序流程圖如圖5所示。
圖4 錄音子程序流程圖 圖5 放音子程序流程圖。
3 PCB板設(shè)計
電路圖設(shè)計完成后, 即可進行PCB板的制作。本項目中用Protel99SE軟件進行版圖繪制,設(shè)計中充分考慮了電磁兼容等問題。圖6所示是本系統(tǒng)的PCB的制作版圖。
圖6 PCB的制作版圖
4 結(jié)束語
為滿足高端用戶的需求, 本系統(tǒng)的硬件還可以進行升級, 也可選用其他的40腳直插的單片機AT89C52、AT89S52、AT89C53、AT89S53、STC89S51、STC89S52、STC89S53等; 對于現(xiàn)今的語音芯片而言ISD4003、ISD4004都是可選的;升級存儲器也是本系統(tǒng)的一個亮點, 系統(tǒng)可使原有2K 字節(jié)的存儲器升級為4KB、8KB、64KB、128KB, 甚至還可以達到幾兆的特定容量。所有可替換的元件都具有較好的兼容性, 可滿足各類場合下的應(yīng)用要求。