<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 一種嵌入式數(shù)字語音錄放系統(tǒng)的設計

          一種嵌入式數(shù)字語音錄放系統(tǒng)的設計

          作者: 時間:2012-02-13 來源:網(wǎng)絡 收藏

          隨著我國經濟建設的迅猛發(fā)展, 公安、鐵路、民航、金融等部門對記錄的需求不斷增長。把生成技術應用于工業(yè)監(jiān)控、自動應答、多媒體查詢、智能化儀表、辦公自動化系統(tǒng)或家用電氣產品中, 使它們具有輸出功能, 使之能在適當?shù)臅r候用語音實時報告系統(tǒng)的工作狀態(tài)、警告信息、提示信息或相關的解釋說明等, 無疑在提高人機通信能力、減少對錯誤處理的遺漏、提高系統(tǒng)性能、減輕人們的工作強度等方面都有極大的好處。

          本文引用地址:http://www.ex-cimer.com/article/149717.htm

          錄音系統(tǒng)是將現(xiàn)場的語音模擬信號轉變?yōu)殡x散的信號, 然后存儲在一定的存儲介質上的一種錄音方式, 它也是語音處理技術中常用的一種方式。采用數(shù)字錄音技術具有較高的效率和自動化程度, 而且錄音時間長, 并可將信息長期保存于存儲介質中, 同時對語音信息進行編輯整理非常方便, 并可快速查找。

          數(shù)字錄音系統(tǒng)具有PC機實現(xiàn)和系統(tǒng)實現(xiàn)兩種方式。使用PC機由于其體積龐大, 耗電高, 造價也高, 并且在某些情況下, 系統(tǒng)的穩(wěn)定性得不到保證, 所以用PC機來實現(xiàn)各項功能和操作, 就會受到一定的限制。而系統(tǒng)則具有體積小、供電方便、造價低、穩(wěn)定性高等優(yōu)點,所以得到了廣泛的應用。

          1 總體硬件方案

          本系統(tǒng)采用包含有A/D與D/A電路的語音芯片來實現(xiàn)模擬信號和數(shù)字信號的相互轉換, 而不需要再另外專門的A/D與D/A變換電路。在語音信號從駐極體*進入通用單片機之前, 通常應該進行信號的放大和濾波處理, 所以, 應有相應的輸入電路和器件; 同樣, 在放音的時候, 在信號經過D/A變換后, 也要經過濾波和放大處理,最后通過揚聲器將語音播放出來。另外, 本系統(tǒng)還可以從外部播放設備接收已有的語言信號, 并將語音信號存儲在語言芯片中, 然后在播放時將語音信號直接傳送到外部功放設備以達到更大輸出功率, 從而加強了本系統(tǒng)的兼容性、可擴展性和嵌入性。其系統(tǒng)總體結構如圖1所示。

          系統(tǒng)總體結構框圖

          圖1 系統(tǒng)總體結構框圖

          為了實現(xiàn)更多的功能, 本系統(tǒng)加入了其他外圍硬件設備, 其擴展功能模塊及系統(tǒng)總體結構框圖如圖1所示。本系統(tǒng)擴展有兩個可選的液晶顯示器LCD1602 和LCD12864, 而最終采用的LCD1602液晶顯示器的特點是體積小, 功耗低,具有背光功能, 采用通用接口芯片, 兼容性高。

          時鐘芯片DS1302則是具有串行輸入輸出高性能的通用時鐘芯片。測溫芯片DS1820體積小, 并可用數(shù)據(jù)線供電, 同時具有獨特的單線口(只需一個接口引腳即可通訊) 是其最大特點。存儲器AT24C02, 采用串口通訊技術, 可三位尋址。系統(tǒng)中的紅外接收放大頭可接收通用遙控器的命令, 用于實現(xiàn)短距離控制和數(shù)據(jù)采集功能。

          2 軟件

          系統(tǒng)軟件主要用于控制和協(xié)調單片機及外部設備, 是無需用戶干預的各種程序的集合, 它的主要功能是調度、監(jiān)控和維護系統(tǒng); 負責管理系統(tǒng)中各種獨立的硬件, 使得它們可以協(xié)調工作。

          系統(tǒng)軟件可使使用者或其他系統(tǒng)將其當作一個整體而不需要顧及到底層每個硬件是如何工作的。

          下面介紹本系統(tǒng)的軟件。

          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í)行相應的操作, 若有按鍵同時置0, 則按照程序的順序先后執(zhí)行。圖2所示是本系統(tǒng)的主程序流程圖。

          主程序流程圖

          圖2 主程序流程圖

          2.2 中斷子程序

          在單片機工作的同時, 不論是錄音還是放音, 系統(tǒng)都要完成三個過程的處理, 其目的是提高系統(tǒng)的處理能力。中斷程序是在微觀上的順序執(zhí)行, 但在宏觀上是并行執(zhí)行的。

          軟件程序首先是初始化, 即進行開中斷準備工作。然后是定時器開始定時中斷, 即在單片機運行一個機器周期后, 片內中斷存儲器自動加1,直至存儲器溢出后, 中斷標志位置1, 單片機在下一個機器周期里響應中斷子程序, 最后, 中斷子程序結束, 返回中斷前的主程序繼續(xù)運行, 程序又開始等待下一次中斷。循環(huán)中斷子程序的工作流程如圖3所示。

          循環(huán)中斷處理子程序流程圖

          圖3 循環(huán)中斷處理子程序流程圖

          2.3 錄音和放音子程序

          錄音初始化首先會通過查找系統(tǒng)參數(shù)找到錄音區(qū)的空白塊和空白頁的起始地址, 語音文件的數(shù)據(jù)就從該地址開始存儲; 同時讀出最大錄音時間和長度, 這兩個參數(shù)是用來自行停止錄音的。

          當沒有收到錄音結束的命令時, 如超過最大時間或長度, 錄音即自行停止。讀出這兩個參數(shù)后,先打開控制A/D變換速率的定時器, 然后再打開A/D變換操作。圖4所示是錄音子程序流程圖。

          錄音結束后, 首先停止當前操作, 然后語音芯片掉電待命; 最后返回主程序繼續(xù)運行。

          放音初始化主要是根據(jù)輸入語音文件所在起始塊的地址, 從指定地址開始發(fā)出放音命令, 接著再發(fā)送從當前地址開始的放音命令直到播完(EOM) 或存儲器末尾為止(OVF); 若按下STOP鍵, 則可直接停止放音并返回主程序。其放音子程序流程圖如圖5所示。

          錄音子程序流程圖

           放音子程序流程圖

          圖4 錄音子程序流程圖 圖5 放音子程序流程圖。

          3 PCB板設計

          電路圖設計完成后, 即可進行PCB板的制作。本項目中用Protel99SE軟件進行版圖繪制,設計中充分考慮了電磁兼容等問題。圖6所示是本系統(tǒng)的PCB的制作版圖。

           PCB的制作版圖

          圖6 PCB的制作版圖

          4 結束語

          為滿足高端用戶的需求, 本系統(tǒng)的硬件還可以進行升級, 也可選用其他的40腳直插的單片機AT89C52、AT89S52、AT89C53、AT89S53、STC89S51、STC89S52、STC89S53等; 對于現(xiàn)今的語音芯片而言ISD4003、ISD4004都是可選的;升級存儲器也是本系統(tǒng)的一個亮點, 系統(tǒng)可使原有2K 字節(jié)的存儲器升級為4KB、8KB、64KB、128KB, 甚至還可以達到幾兆的特定容量。所有可替換的元件都具有較好的兼容性, 可滿足各類場合下的應用要求。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();