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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于DSP的聲控電子記事本系統(tǒng)

          基于DSP的聲控電子記事本系統(tǒng)

          作者: 時(shí)間:2011-07-06 來(lái)源:網(wǎng)絡(luò) 收藏

          2.3 數(shù)據(jù)FLASH存儲(chǔ)器

            數(shù)據(jù)FLASH存儲(chǔ)器KM29U64000是SAMSUNG公司的產(chǎn)品,它可在3伏電壓下低功耗工作,存貯量大、價(jià)位低、速度快、存儲(chǔ)數(shù)據(jù)掉電后可保持而不會(huì)丟失。其主要性能指標(biāo)如下:

            存儲(chǔ)單元陣列為(8M+256K;8bit;

            數(shù)據(jù)寄存器(512+16;8bit ;

            頁(yè)寫入為(512+16)Byte;

            塊擦除為(8K+256)Byte ;

            命令/地址/數(shù)據(jù)復(fù)用I/O端口;

            可靠的CMOS Floating-Gate技術(shù),耐受一百萬(wàn)次寫入/擦除,數(shù)據(jù)維持時(shí)間為10年,命令寄存器操作

            

            2.4 其它器件

            本系統(tǒng)還采用了Analog Devices公司的Codec(A/D、D/A變換器)AD73311L,SST的FLASH存儲(chǔ)器SST29LE010(128K%26;#215;8bit)存儲(chǔ)程序及運(yùn)算數(shù)據(jù)。

            3 系統(tǒng)內(nèi)主要芯片的互連互控

            3.1 MCU與

            MCU與采用串行口相連,傳送MCU對(duì)DSP的命令字與DSP對(duì)于MCU的反饋?zhàn)?。DSP串口1用于語(yǔ)音輸入和輸出,串口2用于與MCU相連。由于DSP的串口收發(fā)方式與MCU的串口不一致,所以MCU用I/O口模擬串口與DSP相連。為了保證數(shù)據(jù)傳送的穩(wěn)定性,MCU采用中斷方式接收。每次數(shù)據(jù)傳送一般不止一個(gè)字節(jié),所以采用打包方式傳送。

            3.2 DSP與數(shù)據(jù)FLASH存儲(chǔ)器

            DSP與數(shù)據(jù)存儲(chǔ)器的接口如圖2所示。DSP的數(shù)據(jù)總線中的8位連到FLASH存儲(chǔ)器的總線上;用DSP的讀寫控制線WR和RD控制FLASH芯片的讀寫;用DSP的I/O口FL0控制FLASH存貯器的CE(片選)端,以保證DSP在進(jìn)行其它總線操作時(shí)不會(huì)對(duì)該FLASH芯片產(chǎn)生誤操作;用DSP的另一個(gè)I/O口PF3連到FLASH芯片的“忙/閑”信號(hào)線上,監(jiān)視其工作狀態(tài);分別把兩個(gè)地址線A8和A9連到FLASH芯片的兩個(gè)鎖存控制CLE和ALE上,以便控制總線的狀態(tài)。

            3.3 DSP與程序FLASH存儲(chǔ)器

            ADSP2185的Byte存儲(chǔ)區(qū)是一個(gè)8位寬的外部雙向存儲(chǔ)空間,可用于存儲(chǔ)程序與數(shù)據(jù)。整個(gè)Byte存儲(chǔ)區(qū)的4Mbyte的存儲(chǔ)空間由256個(gè)16K%26;#215;8的頁(yè)面組成。Byte存儲(chǔ)區(qū)只能通過(guò)BDMA方式進(jìn)行訪問。在使用BDMA方式工作時(shí)用A0~A13作為低端地址,用D16~D18作為擴(kuò)展的高端地址,聯(lián)合使用實(shí)現(xiàn)4Mbyte的外部尋址能力。D8~D15作為數(shù)據(jù)總線,BMS、RD、WR分別用于控制存儲(chǔ)器的片選以及讀寫操作信號(hào)。DSP與程序FLASH存儲(chǔ)器的接口如圖3所示。 值得提出的是,ADSP2185的開發(fā)系統(tǒng)提供了“重載”功能的支持。其基本思路是,當(dāng)片內(nèi)RAM(程序RAM或數(shù)據(jù)RAM)不夠用時(shí),可以由主程序?qū)⑺枳映绦騽?dòng)態(tài)調(diào)入。子程序在程序FLASH存貯器中,在需要運(yùn)行時(shí)才將其調(diào)入DSP的RAM區(qū)。這樣就相當(dāng)于用軟件調(diào)入方法擴(kuò)大了DSP的RAM區(qū)。這一性能為本系統(tǒng)的設(shè)計(jì)提供了方便,這是因?yàn)檎Z(yǔ)音識(shí)別和編解碼程序都較長(zhǎng),不可能同時(shí)裝入DSP的RAM區(qū)。因此,系統(tǒng)軟件設(shè)計(jì)中必須利用這一點(diǎn)進(jìn)行程序動(dòng)態(tài)輸入。

            4 系統(tǒng)軟件設(shè)計(jì)

            本系統(tǒng)采用動(dòng)態(tài)程序調(diào)入的辦法擴(kuò)充可利用硬件資源,在一個(gè)芯片上實(shí)現(xiàn)了幾個(gè)復(fù)雜算法的協(xié)同工作;在程序結(jié)構(gòu)上,采用了C語(yǔ)言和匯編語(yǔ)言混合編程,充分利用了DSP的運(yùn)算速度,并兼顧了程序的靈活性;軟件系統(tǒng)采用清晰的層次結(jié)構(gòu)和明確的模塊劃分,便于局部修改和升級(jí);系統(tǒng)還根據(jù)不同功能所規(guī)定的各種參數(shù)的組合和從屬關(guān)系精心設(shè)計(jì)了存儲(chǔ)器的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),并將數(shù)據(jù)存儲(chǔ)、刪除、查找等程序模塊做了合理的封裝,供上層程序調(diào)用。

            

            4.1 系統(tǒng)軟件模塊的構(gòu)成

            系統(tǒng)的軟件設(shè)計(jì)包含MCU軟件設(shè)計(jì)和DSP軟件設(shè)計(jì)兩部分。MCU軟件主要是時(shí)鐘日歷、電源監(jiān)測(cè)控制、科學(xué)計(jì)算、鍵盤掃描、LCD顯示驅(qū)動(dòng)、與DSP通信等程序,如圖4所示。 DSP的軟件,主要包含五大功能模塊:系統(tǒng)基本IO、FALSH管理、語(yǔ)音、G.723.1編碼、G.723譯碼,如圖5所示。分為6層,上面3層是C語(yǔ)言編寫,用以增強(qiáng)程序的靈活性;下面3層用匯編語(yǔ)言編寫,主要是算法、系統(tǒng)設(shè)置和外圍器件控制。

            5 應(yīng)用前景

            我們研制成功的電子系統(tǒng),是未來(lái)SPDA(Speech Personal Digital Assistant:語(yǔ)音個(gè)人數(shù)字助理)的雛型。它集成了語(yǔ)音識(shí)別、語(yǔ)音壓縮編解碼、語(yǔ)音信號(hào)處理器DSP和大容量FLASH存儲(chǔ)器的數(shù)據(jù)管理等技術(shù),該系統(tǒng)所運(yùn)用的技術(shù)可應(yīng)用于語(yǔ)音撥號(hào)電話機(jī)、語(yǔ)音撥號(hào)+語(yǔ)音錄音電話機(jī)、電話機(jī)伴侶(語(yǔ)音撥號(hào)、報(bào)號(hào)、答錄)、PDA、隨聲聽、語(yǔ)音玩具、聲紋鎖、語(yǔ)音門戶等。


          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: DSP 聲控 記事本

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁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); })();