




免費(fèi)預(yù)覽已結(jié)束,剩余38頁(yè)可下載查看
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
河南科技學(xué)院2010屆本科畢業(yè)論文(設(shè)計(jì))論文題目:基于凌陽(yáng)單片機(jī)語(yǔ)音識(shí)別的多路燈光控制系統(tǒng)學(xué)生姓名: 張雙洋所在院系: 機(jī)電學(xué)院所學(xué)專(zhuān)業(yè): 應(yīng)用電子技術(shù)教育導(dǎo)師姓名: 徐君鵬完成時(shí)間: 2010年5月01日摘要隨著人們生活水平的提高,對(duì)于智能家居的要求也越來(lái)越高,為了幫助那些行動(dòng)不方便的殘疾人,和老年人方便的實(shí)現(xiàn)開(kāi)燈與關(guān)燈,本文是以一種具有DSP(數(shù)字信號(hào)處理)功能的16位凌陽(yáng)單片機(jī)SPCE061A為核心處理器的語(yǔ)音識(shí)別系統(tǒng),它能完成針對(duì)特定人的若干命令(特定的孤立詞)的語(yǔ)音識(shí)別。本設(shè)計(jì)在具體實(shí)踐時(shí),以漢語(yǔ)的短命令為識(shí)別對(duì)象,體現(xiàn)漢語(yǔ)特征;本系統(tǒng)設(shè)計(jì)、制作了系統(tǒng)硬件電路,然后對(duì)系統(tǒng)軟件進(jìn)行了設(shè)計(jì),其中硬件電路包括:電源模塊,凌陽(yáng)單片機(jī)的最小系統(tǒng),語(yǔ)音輸入模塊,語(yǔ)音輸出模塊,無(wú)線發(fā)射部分,無(wú)線接收部分;軟件部分主要包括:主程序,語(yǔ)音識(shí)別子程序,語(yǔ)音存儲(chǔ),語(yǔ)音播放程序,等;本系統(tǒng)該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,具有很高的性價(jià)比,便于推廣和應(yīng)用。關(guān)鍵字:SPCE061A, 特定人語(yǔ)音識(shí)別, PT2262/2272 , 無(wú)線收發(fā)模塊Based on Sunplus Speech Recognition lighting control systemAbstractWith the improvement of living standard, the requirements for the smart home become more sophisticated and less mobile in order to help those with disabilities, and olderly people to facilitate the realization of lights and turn off the lights, This is a kind of DSP (Digital signal processing) functions Sunplus 16-bit MCU SPCE061A core processor speech recognition system that can complete a number of orders for a particular person (a specific isolated word) speech recognition. In practice this design when, in the Chinese language short order to identify the object, reflects Chinese characteristics; The system is designed and manufactured hardware circuit, then the system software design, Hardware which includes: Power module, MCU of Sunplus Minimum System,Voice input module, Voice output module, wireless transmitter, wireless receiver part; Software part includes: The main program, Speech recognition subroutine, Vice storage, Voice, player, etc.; The system is simple, with very high cost, ease of promotion and application.Keyword:SPCE061A, Specific Speech recognition, PT2262/2272, Wireless Transceiver目錄1 緒論12 設(shè)計(jì)要求13 方案論證13.1 整體方案選擇.14 系統(tǒng)硬件電路設(shè)計(jì)24.1 SPEC061A簡(jiǎn)介.24.2 SPEC061A芯片特性.34.3 SPEC061A 最小系統(tǒng).44.4 電源電路.54.5 音頻輸出模塊.64.7 無(wú)線發(fā)射模塊.74.8 無(wú)線接收模塊.85 系統(tǒng)軟件設(shè)計(jì)85.1 程序流程圖.85.2 Flash存儲(chǔ)器讀寫(xiě).105.3 語(yǔ)音訓(xùn)練模塊.155.4語(yǔ)音播放模塊.186 結(jié)束語(yǔ).20致謝.20參考文獻(xiàn).21附錄一 系統(tǒng)原理圖22附錄二 主程序231 緒論語(yǔ)音識(shí)別技術(shù)就是讓機(jī)器通過(guò)識(shí)別和理解把語(yǔ)音信號(hào)轉(zhuǎn)變?yōu)橄鄳?yīng)的文本或命令的技術(shù)。語(yǔ)音識(shí)別是一門(mén)交叉學(xué)科,正逐步成為信息技術(shù)中人機(jī)接口的關(guān)鍵技術(shù),語(yǔ)音識(shí)別技術(shù)與語(yǔ)音合成技術(shù)的結(jié)合,使人們能夠甩掉鍵盤(pán),通過(guò)語(yǔ)音命令進(jìn)行操作。近年來(lái)語(yǔ)音學(xué)研究的深入和數(shù)字信號(hào)處理軟硬件技術(shù)的發(fā)展,語(yǔ)音技術(shù)的應(yīng)用己經(jīng)逐步具備走出實(shí)驗(yàn)室,服務(wù)于社會(huì)的能力。尤其在孤立詞語(yǔ)音識(shí)別技術(shù)已基本成熟,逐漸開(kāi)始應(yīng)用于家電產(chǎn)品、智能玩具等對(duì)識(shí)別率要求不是極其嚴(yán)格的領(lǐng)域?,F(xiàn)在的燈光控制系統(tǒng)中,只是簡(jiǎn)單的通過(guò)手動(dòng)開(kāi)關(guān)來(lái)控制不同位置的燈,或者是采用聲光控的方式實(shí)現(xiàn)燈光的控制,手動(dòng)的控制方式對(duì)于病人,老人以及殘疾人等這些特殊群體,開(kāi)關(guān)燈光控制系統(tǒng)的弊端就體現(xiàn)出來(lái)了。如果是聲光控的方式,它比較適合樓道,廁所等公共場(chǎng)所,不適合在家庭,房間里安裝,而且控制起來(lái)比較單一,觸發(fā)需要一定的條件。而本文提供的語(yǔ)音控制的燈光系統(tǒng)它可以安裝在房間里的任何一個(gè)位置,具有特定人的語(yǔ)音識(shí)別功能,不僅給人們的生活帶來(lái)了極大的方便,而且讓人們體驗(yàn)到了高科技帶來(lái)的神奇方便的生活。2 設(shè)計(jì)要求系統(tǒng)具體設(shè)計(jì)要求:硬件電路部分:(1) SPEC061A單片機(jī)最小系統(tǒng);(2) 語(yǔ)音A/D輸入部分;(3) SPEC061A 的DAC音頻輸出;(4) PT2262/2272 無(wú)線發(fā)射接收部分軟件部分:(1) 主程序的設(shè)計(jì);(2) 語(yǔ)音訓(xùn)練,存儲(chǔ),子程序的設(shè)計(jì);(3) 音頻播放程序的設(shè)計(jì);(4) 語(yǔ)音識(shí)別程序的設(shè)計(jì);3 方案論證3.1 整體方案選擇方案一:基于DSP的孤立詞語(yǔ)識(shí)別系統(tǒng),隨著語(yǔ)音信號(hào)處理技術(shù)的不斷發(fā)展與成熟,語(yǔ)音識(shí)別正逐步成為信息技術(shù)中人機(jī)接口的關(guān)鍵技術(shù),DSP芯片,即數(shù)字信號(hào)處理器,是專(zhuān)門(mén)為快速實(shí)現(xiàn)各種信號(hào)處理算法而設(shè)計(jì)的,具有特殊結(jié)構(gòu)的微處理器,其處理速度比最快的CPU還快1050倍,整個(gè)系統(tǒng)核心以DSP芯片,語(yǔ)音輸入采用TLC320AD50C進(jìn)行A/D轉(zhuǎn)換,但是這種方案成本較高,同時(shí)使用的嵌入式操作系統(tǒng)也會(huì)占用一部分額外的硬件資源,這樣會(huì)大大的提高開(kāi)支。目前情況下我們不考慮這種方案。方案二:基于ARM+DSP 的語(yǔ)音識(shí)別子系統(tǒng),由于多數(shù)的嵌入式系統(tǒng)都使用了ARM、DSP等高速的芯片,本系統(tǒng)采用ARM為系統(tǒng)的主控芯片,DSP芯片負(fù)責(zé)對(duì)語(yǔ)音信號(hào)的隱馬爾可夫模型建立 ,從而使得嵌入式系統(tǒng)的語(yǔ)音識(shí)別更為方便簡(jiǎn)捷 ,但是由于該系統(tǒng)的技術(shù)要求較高,在現(xiàn)階段靈活使用這些高端芯片有一定的困難,因此目前我們也不采用該方案。方案三:基于SPEC061A的語(yǔ)音識(shí)別系統(tǒng),系統(tǒng)采用凌陽(yáng)SPCE061A單片機(jī)作為語(yǔ)音識(shí)別系統(tǒng)的主控芯片。這是一款包含DSP功能并集成了A/D,D/A等一系列功能的語(yǔ)音處理專(zhuān)用SOC,通過(guò)硬件電路設(shè)計(jì)和軟件代碼部分成功的設(shè)計(jì)并實(shí)現(xiàn)了一種具有語(yǔ)音識(shí)別功能、語(yǔ)音提示(語(yǔ)音合成)及語(yǔ)音回放(語(yǔ)音編碼記錄)功能的嵌入式語(yǔ)音識(shí)別系統(tǒng)。語(yǔ)音識(shí)別模型采用(DHMM)離散隱馬爾可夫模型,利用Baum-welth重估算法、前向后向算法、viterbi算法來(lái)完成語(yǔ)音模板的訓(xùn)練和語(yǔ)音識(shí)別的任務(wù),系統(tǒng)硬件框圖如圖1所示:SPEC061A 凌陽(yáng)單片機(jī)MIC語(yǔ)音輸入模塊語(yǔ)音輸出模塊電源電路無(wú)線發(fā)射模塊圖 1 語(yǔ)音識(shí)別系統(tǒng)的硬件框圖4系統(tǒng)硬件電路的設(shè)計(jì)4.1 SPCE061A簡(jiǎn)介 SPCE061A是凌陽(yáng)科技研發(fā)生產(chǎn)的性價(jià)比很高的一款十六位單片機(jī),具有易學(xué)易用且效率較高的一套指令系統(tǒng)和集成開(kāi)發(fā)環(huán)境。在此環(huán)境中,支持標(biāo)準(zhǔn)C語(yǔ)言,可以實(shí)現(xiàn)C語(yǔ)言與匯編語(yǔ)言的互相調(diào)用,并且,提供了語(yǔ)音錄放和語(yǔ)音識(shí)別的函數(shù)庫(kù),只要了解庫(kù)函數(shù)的使用方法,就可以很容易完成語(yǔ)音錄放,為軟件開(kāi)發(fā)提供了方便的條件。 SPCE061A主要包括輸入/輸出端口、定時(shí)器/計(jì)數(shù)器、數(shù)/模轉(zhuǎn)換、模/數(shù)轉(zhuǎn)換、串行設(shè)備輸入/輸出、通用異步串行接口、低電壓監(jiān)測(cè)和復(fù)位等電路,并且內(nèi)置在線仿真電路ICE接口,使其能夠快速地處理復(fù)雜的數(shù)字信號(hào)。SPCE061A片內(nèi)還集成了一個(gè)ICE(在線仿真電路)接口,使得對(duì)該芯片的編程、仿真變得非常方便,而ICE接口不占用芯片上的硬件資源,結(jié)合凌陽(yáng)科技提供的集成開(kāi)發(fā)環(huán)境(unSP IDE),用戶可以進(jìn)行在線調(diào)試、仿真;而程序的下載(燒寫(xiě))也是通過(guò)該接口完成。SPCE061A內(nèi)部結(jié)構(gòu)圖如圖2所示。圖2 SPCE061A內(nèi)部結(jié)構(gòu)圖4.2 SPCE061A芯片特性 16位nSP微處理器; 工作電壓:內(nèi)核工作電壓VDD為3.03.6V(CPU),I/O口工作電壓VDDH為VDD5.5V(I/O); CPU時(shí)鐘:0.32MHz49.152MHz; 內(nèi)置2K字SRAM; 內(nèi)置32K閃存ROM; 可編程音頻處理; 晶體振蕩器; 系統(tǒng)處于備用狀態(tài)下(時(shí)鐘處于停止?fàn)顟B(tài)); 2個(gè)16位可編程定時(shí)器/計(jì)數(shù)器(可自動(dòng)預(yù)置初始計(jì)數(shù)值); 2個(gè)10位DAC(數(shù)-模轉(zhuǎn)換)輸出通道; 32位通用可編程輸入/輸出端口; 14個(gè)中斷源可來(lái)自定時(shí)器A / B,時(shí)基,2個(gè)外部時(shí)鐘源輸入,鍵喚醒; 具備觸鍵喚醒的功能; 使用凌陽(yáng)音頻編碼SACM_S240方式(2.4K位/秒),能容納210秒的語(yǔ)音數(shù)據(jù); 鎖相環(huán)PLL振蕩器提供系統(tǒng)時(shí)鐘信號(hào); 32768Hz實(shí)時(shí)時(shí)鐘; 7通道10位電壓模-數(shù)轉(zhuǎn)換器(ADC)和單通道聲音模-數(shù)轉(zhuǎn)換器; 聲音模-數(shù)轉(zhuǎn)換器輸入通道內(nèi)置麥克風(fēng)放大器和自動(dòng)增益控制(AGC)功能; 具備串行設(shè)備接口; 低電壓復(fù)位(LVR)功和低電壓監(jiān)測(cè)(LVD)功能; 內(nèi)置在線仿真板(ICE,In- Circuit Emulator)。4.3 SPCE061A最小系統(tǒng) SPCE061A最小系統(tǒng)包括SPCE061A芯片及其外圍的基本模塊,其中外圍的基本模塊有:實(shí)時(shí)時(shí)鐘模塊(OSC)、鎖相環(huán)外圍電路(PLL)、復(fù)位電路(RESET)、指示燈(LED)等,如圖3所示。實(shí)時(shí)時(shí)鐘電路采用晶體振蕩電路,外接32768HZ晶振和連個(gè)20PF的電容。SPEC061A鎖相環(huán)的作用是將系統(tǒng)提供的實(shí)時(shí)鐘基頻(32768HZ)進(jìn)行倍頻,調(diào)至49.152MHZ、40.96MHZ、32.768MHZ、24.567MHZ或20.480MHZ。系統(tǒng)預(yù)設(shè)的PLL振蕩頻率為24.567MHZ。圖 3 SPCE061A最小系統(tǒng)4.4 電源電路圖4 電源電路SPCE061A板采用3節(jié)5號(hào)電池進(jìn)行供電,由J4接入,其中前后兩組電容用來(lái)去耦濾波,使其供給芯片的電源更加干凈平滑。為了獲得標(biāo)準(zhǔn)的3.3伏電壓,在電路上加入SPY0029三端穩(wěn)壓器和兩個(gè)二極管,是為了防止誤將電源接反造成不必要損失而設(shè)置的。在操作過(guò)程中千萬(wàn)不要將電源接反,因?yàn)榉聪螂妷撼^(guò)一定值,二極管將會(huì)被損壞,達(dá)不到保護(hù)的目的。后面的零電阻及其電源分成不同的幾路是為了減少電磁干擾設(shè)置的。圖 1是電源部分的電路,4.5V直流電壓經(jīng)過(guò)SPY0029后產(chǎn)生3.3V給整個(gè)系統(tǒng)供電。 SPY0029是凌陽(yáng)公司設(shè)計(jì)的電壓調(diào)整IC,采用CMOS工藝。SPY0029具有靜態(tài)電流低、驅(qū)動(dòng)能力強(qiáng)、線性調(diào)整出色等特點(diǎn)。圖中的VDDH3為SPCE061A的I/O電平參考,接SPCE061A的51腳,這種接法使得I/O輸出高電平為3.3V;VDDP為PLL鎖相環(huán)電源,接SPCE061A的7腳;VDD和VDDA分別為數(shù)字電源與模擬電源,分別接SPCE061A的15腳和36腳;AVSS1是模擬地,接SPCE061A的24腳;VSS是數(shù)字地,接SPCE061A的38腳; AVSS2接音頻輸出電路的AVSS2。61板電源模塊電路如圖4,SPCE061A的內(nèi)核供電為3.3V,而I/O端口可接3.3V5V,所以在電源模塊(61板上)中有一個(gè)端口電平選擇跳線,如圖中的J5。本系統(tǒng)需要的端口高電平為3.3V,所以圖8中的J5跳線需要跳到2和3上。4.5 音頻輸出模塊音頻輸出(D/A)部分的原理圖如圖5所示,可以直接聽(tīng)喇叭輸出的聲音。圖中的SPY0030也是凌陽(yáng)公司的產(chǎn)品。它的詳細(xì)說(shuō)明可以參見(jiàn)SPY0030 data sheet。和LM386相比,SPY0030還具有下述優(yōu)勢(shì),比如LM386工作電壓需在4V以上, SPY0030僅需2.4V即可工作(兩顆電池即可工作);LM386輸出功率100mW以下, SPY0030約700mW。芯片將聲音處理后輸出(J2),經(jīng)SPY0030音頻放大輸出(J3)通過(guò)揚(yáng)聲器還原為聲音。 圖 5 音頻輸出電路SPY0030A是凌陽(yáng)公司開(kāi)發(fā)的專(zhuān)門(mén)用于語(yǔ)音放大的芯片。SPY0030的輸入電壓的范圍是2.46.0伏,該電路中采用的電壓是3.3伏。SPCE061A內(nèi)置2路10位DAC,只需要外接功放電路即可完成語(yǔ)音的播放。4.6 音頻輸入模塊音頻輸入部分如圖6 所以,MIC_IN通道的信號(hào)從MIC_IN引腳輸入,ADC最大參考電壓為VDD,模擬信號(hào)電壓范圍也是0VDD.經(jīng)過(guò)寄存器后有AGC將MIC_IN信號(hào)控制在制定的范圍內(nèi),AGC的電壓增益倍數(shù)可通過(guò)外部電路調(diào)整。圖 6 音頻輸入電路 4.7 無(wú)線發(fā)射模塊發(fā)射模塊的電路如圖7所示,本系統(tǒng)的發(fā)射部分采用PT2262發(fā)射模塊,不僅可以實(shí)現(xiàn)自動(dòng)控制,還能夠強(qiáng)制進(jìn)行燈光控制。圖 7 無(wú)線發(fā)射模塊4.8 無(wú)線接收部分無(wú)線接收模塊電源電路如圖8 所示,無(wú)線接收模塊如圖9所示,接收部分是控制燈光和插座的開(kāi)關(guān)的。首先,對(duì)于整個(gè)模塊的供電部分采用阻容降壓的方式,實(shí)現(xiàn)模塊+5V的供電,接收模塊采用PT2272,并通過(guò)CD4013電路進(jìn)行控制,實(shí)現(xiàn)無(wú)線控制。圖 8 無(wú)線接收電源模塊圖 9 無(wú)線接收模塊5 系統(tǒng)軟件設(shè)計(jì)5.1 程序流程圖在主函數(shù)中調(diào)用相關(guān)函數(shù)完成特定人語(yǔ)音的訓(xùn)練,然后在訓(xùn)練成功后進(jìn)行語(yǔ)音識(shí)別,根據(jù)識(shí)別的命令執(zhí)行相關(guān)的操作。程序流程框圖如圖10所示:開(kāi)始初始化I/O是否第一次上電?擦除指定的FLASH置相關(guān)標(biāo)志位語(yǔ)音識(shí)別初始化是否為觸發(fā)狀態(tài)?判斷是第幾組命令?設(shè)置觸發(fā)判斷是第幾條?名稱(chēng)A組B組全亮全滅判斷是第幾條?判斷是第幾條?是否為觸發(fā)名稱(chēng)?A組第一路亮第一路滅第二路亮第二路滅B組第三路亮第三路滅第四路亮第三路滅訓(xùn)練是否超時(shí)?清除觸發(fā)標(biāo)志訓(xùn)練鍵按下否擦除FLASH標(biāo)志圖 10 主流程圖根據(jù)FLASH中的標(biāo)志位來(lái)進(jìn)行判斷是否為第一次下載。使用庫(kù)函數(shù)BSR_ExportSDWord(uiCommandID)將訓(xùn)練好的語(yǔ)音模型導(dǎo)出存儲(chǔ)到FLASH中進(jìn)行操作,然后再調(diào)用讀寫(xiě)FLASH函數(shù)。在進(jìn)行語(yǔ)音識(shí)別時(shí),首先讀取FLASH將語(yǔ)音模型取得,然后調(diào)用BSR_ImportSDWord(uiCommandID)函數(shù)將語(yǔ)音資源載入內(nèi)存。在識(shí)別出命令后,執(zhí)行相關(guān)操作,及打開(kāi)某路燈,或者是關(guān)閉某路燈。5.2 Flash 存儲(chǔ)器讀寫(xiě)SPEC061A 有32K字的內(nèi)嵌入閃存(Flash存儲(chǔ)器),這32K字內(nèi)存給劃分為128個(gè)頁(yè),每個(gè)頁(yè)的存儲(chǔ)容量為256字,第一頁(yè)的范圍為0x8000x80FF,最后一頁(yè)的地址范圍為0XFF000XFFFF。它們?cè)贑PU空閑狀態(tài)下均可通過(guò)編程被設(shè)置為只讀或出/寫(xiě)方式。全部32K字均可在ICE工作方式下被編程寫(xiě)入或被擦除。Flash存儲(chǔ)器的控制端的地址為0x7555(P_Flash_Ctrl = 0x7555;Flash存儲(chǔ)器的匹配數(shù)據(jù)為0Xaaaa(C_FLASH_MATCH = 0xAAAA);Flash存儲(chǔ)器的頁(yè)擦除控制字為0x5511(C_FLASH_PAGE_ERASE = 0x511);Flash存儲(chǔ)器字的寫(xiě)入控制字為0x5533(C_FLASH_1WORD_PGM = 0x5533);Flash存儲(chǔ)器的順序?qū)懭攵嘧值目刂谱譃?x5544(C_FLASH_SEQUENT_PGM = 0x5544)。(1)Flash存儲(chǔ)器的頁(yè)擦除的過(guò)程如圖11所示:開(kāi)始P_Flash_Ctrl = C_FLASH_MATCHP_Flash_Ctrl = C_FLASH_PAGE_ERASEP_Flash_Ctrl = P_age_Address延時(shí)20ms結(jié)束圖11 Flash 頁(yè)擦除流程32KB的內(nèi)嵌式閃存地址從0x8000開(kāi)始被劃分為128頁(yè)(每頁(yè)存儲(chǔ)容量為256B),它們?cè)贑PU正常運(yùn)行狀態(tài)下均可通過(guò)程序擦除或?qū)懭?。全?2KB閃存均可在ICE工作方式下被編程寫(xiě)入或擦除。擦除一頁(yè)的流程是:先給命令用戶接口地址0x7555里送0xAAAA,然后給命令用戶接口地址0x7555里送0x5511,在給要擦除頁(yè)地址送任意數(shù),約20ms即可完成擦除操作,然后可以執(zhí)行其他操作。例如,擦除第六頁(yè)(0x85000x85FF)流程如下:先向0x7555送0xAAAA;在向0x7555送0x5511;最后向0x85XX至0Xxxxx送任意數(shù)即可。Flash存儲(chǔ)器頁(yè)擦除程序:=/函數(shù):F_FlashErase()/語(yǔ)法:void F_FlashErase(sector)/描述:擦除256字節(jié)/參數(shù): 擦除頁(yè)的起始地址/返回:無(wú)=.PUBLIC _F_FlashErase_F_FlashErase: .proc push bp to spbp = sp + 1r1 = C_FLASH_MATCH/AAAAP_Flash_Ctrl = r1r1 = C_FLASH_PAGE_ERASE/5511P_Flash_Ctrl = r1r1 = bp+3/擦除一頁(yè)r1 = r1pop bp from spretf.ENDP .END(2)Flash存儲(chǔ)器的寫(xiě)入一個(gè)字的過(guò)程:寫(xiě)入一個(gè)字的流程是:先給命令用戶接口地址0x7555里送0xAAAA,然后給命令用戶接口地址0x7555里送0x5533,再給要寫(xiě)入地址送數(shù)據(jù),約40us即可寫(xiě)入操作,然后可以執(zhí)行其他操作。例如,向0x8000寫(xiě)入0xFFFF流程如下:0x7555到0xAAAA;0x7555到0x5333;0x8000到0Xffff。程序流程圖如圖12所示。P_Flash_Ctrl = C_FLASH_MATC開(kāi)始P_Flash_Ctrl = C_FLASH_1WORD_PGMData_Adress = Writed_Data延時(shí)40ms結(jié)束圖12 Flash 寫(xiě)入字流程Flash存儲(chǔ)器的寫(xiě)入字的程序:=函數(shù): F_FlashWrite1Word()語(yǔ)法:void F_FlashWrite1Word(int addr,int Value)描述:寫(xiě)一個(gè)字到FLASH中參數(shù):1、被寫(xiě)數(shù)據(jù)的存儲(chǔ)地址 2、被寫(xiě)數(shù)據(jù)返回:無(wú)=.PUBLIC _F_FlashWrite1Word_F_FlashWrite1Word: .proc push bp to spbp = sp+1r1 = C_FLASH_MATCH/AAAAP_Flash_Ctrl = r1r1 = C_FLASH_1WORD_PGM/5533P_Flash_Ctrl = r1r1 = bp+3/flash addressr2 = bp+4/datar1 = r2pop bp from spretf.ENDP(3)Flash存儲(chǔ)器的順序?qū)懭胱郑涸贔lash存儲(chǔ)器按順序?qū)懭攵嘧值淖映绦蛑?,?dāng)寫(xiě)入字結(jié)束時(shí),需要寫(xiě)入一個(gè)數(shù)據(jù)(可為任意數(shù))到P_Flash_Ctrl寄存器當(dāng)中,以結(jié)束當(dāng)前多字節(jié)寫(xiě)入狀態(tài)。以上各子程序當(dāng)中,延時(shí)由硬件完成,用戶無(wú)需在軟件當(dāng)中做軟件延時(shí)。在沒(méi)有寫(xiě)入Flash存儲(chǔ)器時(shí),(如果Flash存儲(chǔ)器已經(jīng)被擦除)讀出0xA000的數(shù)據(jù)是0xFFFF,所以在開(kāi)始時(shí)讀出的數(shù)據(jù)是0xFFFF。寫(xiě)多個(gè)字節(jié)流程是:先給命令用戶接口地址0x7555里送0xAAAA,然后給命令用戶接口地址0x7555里送0x5544,再給要寫(xiě)入字首地址送數(shù)據(jù),約40us即可完成1個(gè)字節(jié)寫(xiě)入操作。在給命令用戶接口地址0x7555里送0x5544,給寫(xiě)入字節(jié)地址數(shù)據(jù),等40us即可,循環(huán)操作,即可完成多字的寫(xiě)入。程序流程圖如圖13所示。開(kāi)始P_Flash_Ctrl = C_FLASH_MATCP_Flash_Ctrl = C_FLASH_SEQUENT_PGMData_Adress = Writed_Data延時(shí)40ms數(shù)據(jù)是否全部寫(xiě)入?寫(xiě)結(jié)束控制字結(jié)束圖 13 FLASH 存儲(chǔ)器順序?qū)懭攵嘧諲YFlash存儲(chǔ)器的順序?qū)懭胱值某绦颍?/函數(shù):F_FlashWrite()/語(yǔ)法:F_FlashWrite(int sector,int &num,int size)/描述:順序?qū)懚鄠€(gè)字/參數(shù):1、被寫(xiě)數(shù)據(jù)的起始地址 / 2、被寫(xiě)數(shù)據(jù) / 3、寫(xiě)數(shù)據(jù)的數(shù)量/返回:無(wú)= .PUBLIC _F_FlashWrite_F_FlashWrite: .proc push bp to spbp = sp+1r1 = bp+3/flash base addressr2 = bp+4/datar3 = bp+5/多個(gè)字節(jié)r4 = C_FLASH_MATCH/AAAAP_Flash_Ctrl = r4L_FlashWriteLoop:r4 = C_FLASH_SEQUENT_PGM/5544P_Flash_Ctrl = r4r4 = r2+r1+ = r4r3 -= 1jnz L_FlashWriteLoopP_Flash_Ctrl = r3 /寫(xiě)結(jié)束pop bp from spretf.ENDP5.3 語(yǔ)音訓(xùn)練模塊當(dāng)程序檢測(cè)到訓(xùn)練標(biāo)志位uiFlagFirst 為1時(shí),就會(huì)要求使用者對(duì)它進(jìn)行訓(xùn)練操作,訓(xùn)練采用兩次訓(xùn)練獲取結(jié)果的方式,以訓(xùn)練控制器的名稱(chēng)為例:控制器首先會(huì)提問(wèn)”給我取個(gè)名字吧”,這是訓(xùn)練者告訴控制器一個(gè)名字。讓后就會(huì)提示“再說(shuō)一遍”,這是再次告訴控制器的名字,如果兩次輸入的差別不大,控制器就能成功的建立模型,此時(shí)訓(xùn)練名字成功;如果沒(méi)有成功建立模型,會(huì)提示你錯(cuò)誤的原因,平要求重新訓(xùn)練。一條訓(xùn)練命令成功訓(xùn)練后,會(huì)給出下一個(gè)要訓(xùn)練名稱(chēng)的提示。可以根據(jù)相關(guān)的提示進(jìn)行訓(xùn)練。訓(xùn)練系程序流程如圖14 所示:訓(xùn)練名稱(chēng)開(kāi)始訓(xùn)練第一組第二組全亮全滅第一組名稱(chēng)1號(hào)燈亮1號(hào)燈滅2號(hào)燈亮2號(hào)燈滅結(jié)束第二組名稱(chēng)3號(hào)燈亮3號(hào)燈滅4號(hào)燈亮4號(hào)燈滅圖 14 語(yǔ)音訓(xùn)練程序流程圖訓(xùn)練子程序:unsigned int TrainWord(unsigned int WordID,unsigned int SndIndex)int Result;PlaySnd(SndIndex);/引導(dǎo)訓(xùn)練,播放指令對(duì)應(yīng)動(dòng)作while(1)Result = BSR_Train(WordID,BSR_TRAIN_TWICE);/訓(xùn)練兩次,獲得訓(xùn)練結(jié)果if(Result=0) break;switch(Result)case -1:/沒(méi)有檢測(cè)出聲音PlaySnd(S_NOVOICE);return -1;case -2: /需要訓(xùn)練第二次PlaySnd(S_AGAIN);break;case -3:/環(huán)境太吵PlaySnd(S_NOISY);return -3;case -4:/數(shù)據(jù)庫(kù)滿 return -4;case -5: /檢測(cè)出聲音不同if(WordID = NAME_ID)PlaySnd(S_NAMEDIF); /兩次輸入名稱(chēng)不同else PlaySnd(S_COMDIF); /兩次輸入命令不同return -5;case -6: /序號(hào)錯(cuò)誤return -6;default:break;return 0;5.4 語(yǔ)音播放模塊在系統(tǒng)正常工作時(shí),會(huì)根據(jù)語(yǔ)音輸入的命令做出相應(yīng)的應(yīng)答,并執(zhí)行相應(yīng)的操作,去控制其中一路燈光的打開(kāi)或關(guān)閉,語(yǔ)音播放采用SACM_480格式的語(yǔ)音自動(dòng)播放模式,程序流程圖,如圖11 所示。入口S480自動(dòng)放音初始化獲取語(yǔ)音數(shù)據(jù)需要等待播放結(jié)束?播放結(jié)束了嗎?S480停止返回NNYY圖11 語(yǔ)音播放程序流程圖語(yǔ)音播放程序操作步驟:1. 新建一個(gè)工程,在工程里建立一個(gè)新的C語(yǔ)言文件。2. 程序中會(huì)用到語(yǔ)音識(shí)別的API函數(shù),先拷貝語(yǔ)音識(shí)別庫(kù)bsrv222SDL.lib 到工程文件夾。 3. 拷貝語(yǔ)音識(shí)別頭文件bsrSD.h、bsrSD.inc到工程文件夾。4. 拷貝語(yǔ)音播放庫(kù)sacmv26e.lib 和頭文件A480.h、a480.inc到工程文件夾。5. 拷貝支持sacmv26e.lib 的匯編語(yǔ)言文件hardware.asm 和頭文件hardware.h、hardware.inc 到工程文件夾。6. 在IDE 集成開(kāi)發(fā)環(huán)境的Project/Setting/link 中鏈接bsrv222SDL.lib 和sacmv26e.lib 庫(kù)到工程中。7. 添加hardware.asm、FIQ.asm、hardware.asm、main.c、Flash.asm等文件到工程文件的“Source Files”,添加bsrSD.h、bsrSD.inc、A480.h、a480.inc、hardware.h、hardware.inc頭文件到“Head Files”。8. 拷貝語(yǔ)音資源, 并加載到工程當(dāng)中;9. 按照程序流程圖編寫(xiě)程序。10. Rebuild All。11. 按照硬件連接圖連接硬件。12. 下載程序,運(yùn)行。SACM_480格式自動(dòng)播放程序如下:void PlaySnd(unsigned int SndIndex)BSR_StopRecognizer();SACM_S480_Initial(1);SACM_S480_Play(SndIndex,3,3);while(SACM_S480_Status()&0x0001) != 0)SACM_S480_ServiceLoop();*(unsigned int *)0x7012 = 1;SACM_S480_Stop();BSR_InitRecognizer(BSR_MIC);BSR_EnableCPUIndicator();6 結(jié)束語(yǔ)時(shí)間過(guò)得真快,轉(zhuǎn)眼幾個(gè)月的時(shí)間已經(jīng)過(guò)去了,我的畢業(yè)設(shè)計(jì)也基本上實(shí)現(xiàn)了課題的要求,及能對(duì)控制器進(jìn)行語(yǔ)音訓(xùn)練,使其識(shí)別特定人的語(yǔ)音,并通過(guò)無(wú)線發(fā)射接收模塊,進(jìn)行相應(yīng)的燈光控制。本系統(tǒng)的設(shè)計(jì)主要是應(yīng)用到家庭里,比如在客廳的一個(gè)位置放置一個(gè)控制器,能方便的通過(guò)語(yǔ)音來(lái)控制某個(gè)房間或地點(diǎn)的燈光開(kāi)關(guān)或閃爍;該系統(tǒng)還可以為老人或行動(dòng)不方便的殘疾人使用,在漆黑的夜晚開(kāi)燈或關(guān)燈對(duì)于行不方便的人來(lái)說(shuō)確實(shí)比較困難,如果把該系統(tǒng)給他們使用,將會(huì)給他們帶來(lái)極大的方便,并體會(huì)到科技帶來(lái)的快樂(lè)。因此該系統(tǒng)具有較普遍的推廣性和實(shí)用性。不過(guò)目前本系統(tǒng)采用的凌陽(yáng)單片機(jī)對(duì)一些語(yǔ)音的識(shí)別還不是太好特別是一些發(fā)音比較相近的漢字來(lái)說(shuō),很容易造成混淆,在使用該系統(tǒng)時(shí),要盡量使用發(fā)音產(chǎn)別較大的詞語(yǔ),來(lái)進(jìn)行區(qū)分以不至于導(dǎo)致系統(tǒng)的混亂。致謝我的這次畢業(yè)設(shè)計(jì)是在老師的精心指導(dǎo)和大力支持下完成的。在課題選定、理論基礎(chǔ)和方案的論證上,老師為我們做了認(rèn)真的分析和耐心的講解,從理論指導(dǎo)到實(shí)際操作徐老師也給我提供了極大的幫助。至此論文定稿之際,對(duì)老師表示衷心的感謝! 感謝老師能在繁忙的教學(xué)之中抽出時(shí)間為我提供耐心的指導(dǎo),幫我們解決在設(shè)計(jì)過(guò)程中遇到的種種問(wèn)題。這次的畢業(yè)設(shè)計(jì)是由我個(gè)人獨(dú)立完成的,在這個(gè)過(guò)程中我還是得到了許許多多同學(xué)的幫助和老師的指導(dǎo),對(duì)于凌陽(yáng)單片機(jī)來(lái)說(shuō),我是沒(méi)有接觸過(guò)的,在得到這個(gè)題目的時(shí)候,我首先要做的是了解一下這個(gè)單片機(jī),這個(gè)單片機(jī)和我們以前學(xué)的51單片機(jī)的區(qū)別在哪兒,它的最小系統(tǒng)是什么,它應(yīng)該怎么開(kāi)發(fā),它的編譯環(huán)境是什么,它的下載方式有是什么,等等一系列的問(wèn)題擺在了我的面前。從徐老師那兒領(lǐng)到這塊開(kāi)發(fā)板開(kāi)始,我先把元器件焊接好,把單片機(jī)的最小系統(tǒng)調(diào)整好,開(kāi)發(fā)板焊接好的時(shí)候,通電紅色的發(fā)光亮了說(shuō)明電源正常,呵呵,心里還是有點(diǎn)高興的,不過(guò)接著的問(wèn)題是一個(gè)接一個(gè)的,我按照書(shū)上講的下載方式連接號(hào)下載線時(shí),可不知為什么怎么都下不進(jìn)去程序,我懷疑是不是板子沒(méi)焊好,還是電腦沒(méi)有配置好,搞了好長(zhǎng)一段時(shí)間都不明白,還是在同學(xué)的幫助下,原來(lái)是我的單片機(jī)沒(méi)有安好,處于懸空中,是接觸非接觸,哎,總算把問(wèn)題找到了,程序下進(jìn)去了,可是怎么搞就是播放不出聲音,我就通過(guò)凌陽(yáng)單片機(jī)論壇通過(guò)一些網(wǎng)友幫助,經(jīng)過(guò)一些有經(jīng)驗(yàn)的學(xué)長(zhǎng)指導(dǎo),原來(lái)是I/O口參考電壓的問(wèn)題,總算把單片機(jī)的最小系統(tǒng)弄明白了,接著一些相關(guān)的問(wèn)題也迎刃而解。真是有點(diǎn)萬(wàn)事開(kāi)頭難啊,經(jīng)過(guò)不斷的努力我的系統(tǒng)終于實(shí)現(xiàn)了基本功能,在此向給我提供過(guò)幫助的老師,同學(xué),網(wǎng)友等等表示我忠心的謝意!參考文獻(xiàn):1 李朝青.單片機(jī)原理及接口技術(shù)M.北京航空航天出版社,1999.32 候媛彬.凌陽(yáng)單片機(jī)原理及其畢業(yè)設(shè)計(jì)精選M.科學(xué)出版社,2006.13 盧勝利.基于凌陽(yáng)SPCE061A設(shè)計(jì)實(shí)驗(yàn)平臺(tái)綜合設(shè)計(jì)教程M.機(jī)械工業(yè)出版社,2007.14 肖玲妮.Protel 99 SE印刷電路板教程M.清華大學(xué)出版社,2003.85 譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì)教程M.清華大學(xué)出版社,2005.76 龍佑喜.C語(yǔ)言程序設(shè)計(jì)教程M.湖南教育出版社,2004.97 康華光.電子技術(shù)基礎(chǔ)M.高等教育出版社,2005.78 趙明富.EDA技術(shù)基礎(chǔ)M.北京大學(xué)出版社,2007.69 薛均義.凌陽(yáng)16位單片機(jī)原理及應(yīng)用M.北京航空航天大學(xué)出版社2003.710 易克初等.語(yǔ)音信號(hào)處理.國(guó)防工業(yè)出版社M.2000.1111 胡航.語(yǔ)音信號(hào)處理.哈爾濱工業(yè)大學(xué)出版社M.2000.812 康華光,鄒壽彬.電子技術(shù)基礎(chǔ)(第五版)M.高等教育出版社.200513 朱勇單片機(jī)原理與應(yīng)用技術(shù)M清華大學(xué)出版社.200614 高峰. 單片微機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)及實(shí)用技術(shù)M.北京:機(jī)械工業(yè)出版社.200415 何希才,伊兵,杜煜.實(shí)用電子電路設(shè)計(jì).北京:電子工業(yè)出版社,199816 康華光 電子技術(shù)基礎(chǔ) 模擬部分(第五版) M.高等教育出版社,2005.717 康華光 電子技術(shù)基礎(chǔ) 數(shù)字部分(第五版) M.高等教育出版社,2005.718 王遠(yuǎn).模擬電子技術(shù).北京:北京機(jī)械出版社,199419 潭博學(xué),苗江靜集成電路原理及應(yīng)用北京:電子工業(yè)出版社.200320 樓然苗,李光飛51系列單片機(jī)設(shè)計(jì)實(shí)例北京航空航天大學(xué)出版社.2006 附錄一:圖 15 主控電路原理圖圖 16 無(wú)線發(fā)射電路附錄二:子程序:#include bsrSD.h#include s480.h#include robot.hvoid LightSystemInit(void);unsigned int IsFirstDownLoad(void);void FormatFlash(void);void TrainFiveCommand(void);void SaveFiveCommand(unsigned int uiAddr);void ImportFiveCommand(unsigned int uiAddr_Import);unsigned int TrainWord(unsigned int WordID,unsigned int SndIndex);void PlaySnd(unsigned int SndIndex);extern void SACM_S480_ServiceLoop();extern unsigned int SACM_S480_Status();extern void F_FlashErase(int);extern void F_FlashWrite1Word(unsigned int,unsigned int);void LightSystemInit(void)*(unsigned int *)0x7012 = 1;*P_IOB_Data = 0xffff;*P_IOB_Attrib = 0xffff;*P_IOB_Dir = 0xffff;*P_IOB_Data = 0xffff;unsigned int IsFirstDownLoad(void)unsigned int uiFlagFirst_Sub;unsigned int uiFlashData;unsigned int *p;p = (unsigned int *)0xfd00;uiFlashData = *p;if(uiFlashData = 0xffff)uiFlagFirst_Sub = 1;return uiFlagFirst_Sub;else if(uiFlashData = 0xaaaa)uiFlagFirst_Sub = 0;return uiFlagFirst_Sub;elseuiFlagFirst_Sub = -1;return uiFlagFirst_Sub;void FormatFlash(void)F_FlashErase(0xF700);/存儲(chǔ)第一組命令的Flash空間F_FlashErase(0xF700+100);/每條命令占用96個(gè)字,用函數(shù)導(dǎo)出占用100個(gè)字F_FlashErase(0xF700+200);F_FlashErase(0xF700+300);F_FlashErase(0xF700+400);F_FlashErase(0xF900);/存儲(chǔ)第一組命令的Flash空間F_FlashErase(0xF900+100);/每條命令占用96個(gè)字,用函數(shù)導(dǎo)出占用100個(gè)字F_FlashErase(0xF900+200);F_FlashErase(0xF900+300);F_FlashErase(0xF900+400);F_FlashErase(0xFB00);/存儲(chǔ)第一組命令的Flash空間F_FlashErase(0xFB00+100);/每條命令占用96個(gè)字,用函數(shù)導(dǎo)出占用100個(gè)字F_FlashErase(0xFB00+200);F_FlashErase(0xFB00+300);F_FlashErase(0xFB00+400);void TrainFiveCommand(void)BSR_DeleteSDGroup(0);/初始化存儲(chǔ)器RAMPlaySnd(0);/播放提示音1while(TrainWord(NAME_ID,0) != 0);while(TrainWord(Command_One_ID,1) != 0);while(TrainWord(Command_Two_ID,2) != 0);while(TrainWord(Command_Three_ID,3) != 0);while(TrainWord(Command_Four_ID,4) != 0);void SaveFiveCommand(unsigned int uiAddr)unsigned int uiCommandID;unsigned int uiCount;unsigned int uiRes_Export;for(uiCommandID = 0x100;uiCommandID0x105;uiCommandID+)uiRes_Export = BSR_ExportSDWord(uiCommandID);while(uiRes_Export)uiRes_Export = BSR_ExportSDWord(uiCommandID);for(uiCount = 0;uiCount100;uiCount+)F_FlashWrite1Word(uiAddr,BSR_SDModeluiCount);*(unsigned int *)0x7012 = 1;uiAddr += 1;void ImportFiveCommand(unsigned int uiAddr_Import)unsigned int uiCommand_Import;unsigned int uiCount;unsigned int uiRes_Import;unsigned int *p_Import;BSR_DeleteSDGroup(0);/清除內(nèi)存p_Import = (unsigned int *)uiAddr_Import;for(uiCommand_Import = 0;uiCommand_Import 5;uiCommand_Import+)for(uiCount = 0;uiCount 100;uiCount+)uiRes_Import = *p_Import;BSR_SDModeluiCount = uiRes_Import
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 我長(zhǎng)大了健康領(lǐng)
- 城市管理信息系統(tǒng)
- 寫(xiě)景朗讀指導(dǎo)課件
- 教育研究方法文獻(xiàn)
- 企業(yè)數(shù)據(jù)架構(gòu)之?dāng)?shù)據(jù)質(zhì)量提升與企業(yè)級(jí)數(shù)據(jù)模型構(gòu)建策略
- 2025年燒結(jié)釹鐵硼永磁材料項(xiàng)目規(guī)劃申請(qǐng)報(bào)告
- 2025年家用家具項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告模板
- 2025年米面類(lèi)項(xiàng)目提案報(bào)告
- 詞的教學(xué)課件
- 五分鐘英文教學(xué)試講課件
- 2025-2030年中國(guó)高爾夫產(chǎn)品行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 山東威海經(jīng)發(fā)投資控股集團(tuán)有限公司及下屬子公司招聘筆試題庫(kù)2025
- 新能源汽車(chē)充電樁建設(shè)方案及流程
- 2025-2030年中國(guó)人乳寡糖(HMO)行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 動(dòng)火工作方案
- 2025年互聯(lián)網(wǎng)醫(yī)療平安好醫(yī)生阿里健康京東健康對(duì)比分析報(bào)告
- 2025年政治理論時(shí)政熱點(diǎn)知識(shí)試題庫(kù)(附含答案)
- 造粒機(jī)銷(xiāo)售合同協(xié)議
- 森工集團(tuán)考試試題及答案
- 糖尿病飲食試題及答案
- 2025年預(yù)應(yīng)力混凝土用鋼棒產(chǎn)品質(zhì)量監(jiān)督抽查實(shí)施細(xì)則
評(píng)論
0/150
提交評(píng)論