基于凌陽單片機(jī)的語音遙控小車_第1頁
基于凌陽單片機(jī)的語音遙控小車_第2頁
基于凌陽單片機(jī)的語音遙控小車_第3頁
基于凌陽單片機(jī)的語音遙控小車_第4頁
基于凌陽單片機(jī)的語音遙控小車_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第1頁共38頁1引言11研究的背景及意義從這些數(shù)字可以看出,高科技含量的電子玩具已經(jīng)成為玩具行業(yè)發(fā)展的主流,發(fā)展科技型玩具是必然趨勢,不僅世界大玩具公司爭相開發(fā),世界電腦巨頭微軟、英特爾、IBM等,世界電器霸主松下、東芝、索尼也都垂青電子玩具,自己或與玩具廠商合作應(yīng)用半導(dǎo)體技術(shù)、數(shù)碼技術(shù)于玩具開發(fā)。他們把這叫做“面向明天的玩具”。美國麻省理工學(xué)院就得到迪斯尼等四家大公司資助數(shù)百萬美元的研究開發(fā)經(jīng)費(fèi)。科技、教育與玩具制造業(yè)的結(jié)合,將會是玩具業(yè)在技術(shù)上的又一次革命,將使玩具更可愛、更吸引人1。12國內(nèi)外研究現(xiàn)狀與發(fā)展根據(jù)美國玩具協(xié)會的調(diào)查統(tǒng)計(jì),近年來全球玩具銷量增幅與全球平均GDP增幅大致相當(dāng)。而全球玩具市場的內(nèi)在結(jié)構(gòu)比重卻發(fā)生了重大變化傳統(tǒng)玩具的市場比重在逐步縮水,高科技含量的電子玩具則蒸蒸日上。美國玩具市場的高科技電子玩具的年銷售額2004年較2003年增長52,而傳統(tǒng)玩具的年銷售額僅增長3。英國玩具零售商協(xié)會選出的2001年圣誕最受歡迎的十大玩具中,七款玩具配有電子元件2。近幾年,歐洲電子玩具大幅增長3。在英國,電子類玩具將成為英國增長最快和市場最大的玩具,2007年英國玩具市場將達(dá)到61億歐元;在德國,技術(shù)性玩具,如建筑、車輛和電子訓(xùn)練等玩具比其他歐洲國家更加流行4。13可行性分析本設(shè)計(jì)的核心是凌陽的16位單片機(jī)(SPCE061A)。該單片機(jī)采用凌陽最新推出的NSP16位微處理器內(nèi)核(以下簡稱NSP)。SPCE061A內(nèi)嵌32K字(WORD)閃存(FLASH),2K字(WORD)SRAM,有多達(dá)十四個(gè)的中斷源等豐富的片內(nèi)資源。CPU最高可工作在49MHZ的主頻下,較高的處理速度使NSP能夠非常容易地、快速地處理復(fù)雜的數(shù)字信號,這使得SPCE061A具有靈活的語音處理能力??梢圆シ臩ACMA2000和SACMS480等格式的語音資料,而且還可以配置外部存儲器,可以存儲很長的聲音段。其兩個(gè)音頻DAC輸出口可以接喇叭,發(fā)聲系統(tǒng)很容易實(shí)現(xiàn)。該單片機(jī)擁有兩個(gè)16位的I/O口,對于系統(tǒng)要求的顯示時(shí)間、外接鍵盤、中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第2頁共38頁外接存儲器完全可以滿足。擁有14個(gè)中斷源,9個(gè)中斷向量,2個(gè)中斷優(yōu)先級是SPCE061A可以完成大量中斷子程序,方便系統(tǒng)軟件的設(shè)計(jì)。以上所述SPCE061A可以滿足該設(shè)計(jì)的要求。借助于SPCE061A的語音特色,我們開發(fā)出了這款語音控制小車。5小車不僅具有前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)停車等基本功能;同時(shí)配合SPCE061A的語音特色,實(shí)現(xiàn)語音控制功能。中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第3頁共38頁2語音控制小車設(shè)計(jì)要求21功能要求語音控制小車是凌陽大學(xué)計(jì)劃推出的基于SPCE061A的代表性興趣產(chǎn)品,它配合61板推出,綜合應(yīng)用了SPCE061A的眾多資源,打破了傳統(tǒng)教學(xué)中單片機(jī)學(xué)習(xí)枯燥和低效的現(xiàn)狀。小車采用語音識別技術(shù),可通過語音命令對其行駛狀態(tài)進(jìn)行控制。語音控制小車的主要功能1可以通過簡單的I/O操作實(shí)現(xiàn)小車的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)功能;2配合SPCE061A的語音特色,利用系統(tǒng)的語音播放和語音識別資源,實(shí)現(xiàn)語音控制的功能;3可以在行走過程中聲控改變小車運(yùn)動(dòng)狀態(tài);4在超出語音控制范圍時(shí)能夠自動(dòng)停車。22功能說明1小車運(yùn)動(dòng)控制通過SPCE061A的I/O端口,驅(qū)動(dòng)控制板的H橋電路,進(jìn)而控制前輪電機(jī)和后輪電機(jī)。2聲控功能利用特定人語音識別實(shí)現(xiàn)小車的名稱和動(dòng)作訓(xùn)練,并根據(jù)相應(yīng)的語音指令輸入執(zhí)行前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停車等動(dòng)作。3定時(shí)控制功能利用時(shí)基定時(shí)器設(shè)定運(yùn)行時(shí)間,小車運(yùn)行同時(shí)啟動(dòng)定時(shí)器,時(shí)間到小車停止運(yùn)行。車體雙電機(jī)兩輪驅(qū)動(dòng)供電電池(四節(jié)AA12V4或15V4)注由于語音信號的不確定性,語音識別的過程會出現(xiàn)一定的誤差和不準(zhǔn)確性;由于小車行動(dòng)比較靈活,速度比較快,在使用時(shí)一定要注意保持場地足夠大,且保證不會對周圍的物體造成傷害;中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第4頁共38頁不要讓小車長時(shí)間運(yùn)行在堵轉(zhuǎn)狀態(tài)(堵轉(zhuǎn)狀態(tài)由于小車所受阻力過大,造成小車電機(jī)加電但并不轉(zhuǎn)動(dòng)的現(xiàn)象),這樣會造成很大的堵轉(zhuǎn)電流,有可能會損壞小車的控制電路。可以自行添加各種傳感器,實(shí)現(xiàn)避障、循跡、跟蹤等功能。中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第5頁共38頁3芯片特性簡介31SPCE061A簡介隨著單片機(jī)功能集成化的發(fā)展,其應(yīng)用領(lǐng)域也逐漸地由傳統(tǒng)的控制,擴(kuò)展為控制處理、數(shù)據(jù)處理以及數(shù)字信號處理(DSP,DIGITALSIGNALPROCESSING)等領(lǐng)域。凌陽的16位單片機(jī)就是為適應(yīng)這種發(fā)展而設(shè)計(jì)的。它的CPU內(nèi)核采用凌陽最新推出的NSP(MICROCONTROLLERANDSIGNALPROCESSOR)16位微處理器芯片(以下簡稱NSP)。圍繞NSP所形成的16位NSP系列單片機(jī)(以下簡稱NSP家族)采用的是模塊式集成結(jié)構(gòu),它以NSP內(nèi)核為中心集成不同規(guī)模的ROM、RAM和功能豐富的各種外設(shè)接口部件,如圖31所示。圖31NSP家族的模塊式結(jié)構(gòu)NSP內(nèi)核是一個(gè)通用的核結(jié)構(gòu)。除此之外的其它功能模塊均為可選結(jié)構(gòu),亦即這種結(jié)構(gòu)可大可小或可有可無。借助這種通用結(jié)構(gòu)附加可選結(jié)構(gòu)的積木式的構(gòu)成,便可形成各種不同系列派生產(chǎn)品,以適合不同的應(yīng)用場合。這樣做無疑會使每一種派生產(chǎn)品具有更強(qiáng)的功能和更低的成本。NSP家族有以下特點(diǎn)體積小、集成度高、可靠性好且易于擴(kuò)展NSP家族把各功能部件模塊化地集成在一個(gè)芯片里,內(nèi)部采用總線結(jié)構(gòu),因而減少了各功能部件之間的連線,提高了其可靠性和抗干擾能力。另外,模塊化的結(jié)構(gòu)易于系統(tǒng)擴(kuò)展,以適應(yīng)不同用戶的需求。中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第6頁共38頁具有較強(qiáng)的中斷處理能力NSP家族的中斷系統(tǒng)支持10個(gè)中斷向量及10余個(gè)中斷源,適合實(shí)時(shí)應(yīng)用領(lǐng)域。高性能價(jià)格比NSP家族片內(nèi)帶有高尋址能力的ROM、靜態(tài)RAM和多功能的I/O口。另外,NSP的指令系統(tǒng)提供具有較高運(yùn)算速度的16位16位的乘法運(yùn)算指令和內(nèi)積運(yùn)算指令,為其應(yīng)用增添了DSP功能,使得NSP家族運(yùn)用在復(fù)雜的數(shù)字信號處理方面既很便利,又比專用的DSP芯片廉價(jià)。功能強(qiáng)、效率高的指令系統(tǒng)NSP指令系統(tǒng)的指令格式緊湊,執(zhí)行迅速,并且其指令結(jié)構(gòu)提供了對高級語言的支持,這可以大大縮短產(chǎn)品的開發(fā)時(shí)間。低功耗、低電壓NSP家族采用CMOS制造工藝,同時(shí)增加了軟件激發(fā)的弱振方式、空閑方式和掉電方式,極大地降低了其功耗。另外,NSP家族的工作電壓范圍大,能在低電壓供電時(shí)正常工作,且能用電池供電。這對于其在野外作業(yè)等領(lǐng)域中的應(yīng)用具有特殊的意義。SPCE061A是一款16位NSP結(jié)構(gòu)的微控制器。該芯片帶有硬件乘法器,能夠?qū)崿F(xiàn)乘法運(yùn)算、內(nèi)積運(yùn)算等復(fù)雜的運(yùn)算。它不僅運(yùn)算能力強(qiáng),而且處理速度快,單周期最高可以達(dá)到49MHZ。SPCE061A內(nèi)嵌32K字的FLASH程序存儲器以及2K的SRAM。同時(shí)該SOC芯片具有ADC和DAC功能6,其MIC_ADC通道帶有AGC自動(dòng)增益環(huán)節(jié),能夠輕松將語音信號采集到芯片內(nèi)部,兩路10位的電流輸出型DAC,只要外接一個(gè)功放就可以完成聲音的播放。以上介紹的這些硬件資源使得該SPCE061A能夠單芯片實(shí)現(xiàn)語音處理功能7。為實(shí)現(xiàn)語音播報(bào)功能SPCE061A精簡開發(fā)板是最主要的部分,所有的設(shè)計(jì)都是圍繞它展開的,它為播報(bào)的實(shí)現(xiàn)提供了理論基礎(chǔ)。SPCE061A精簡開發(fā)板(簡稱61板),是以凌陽16位單片機(jī)SPCE061A精簡開發(fā)仿真實(shí)驗(yàn)板,大小相當(dāng)于一張撲克牌,可作為單片機(jī)項(xiàng)目初期研發(fā)使用。61板除了具備單片機(jī)最小系統(tǒng)電路外,還包括有電源電路、音頻電路(含MIC輸入部分和DAC音頻輸出部分)、復(fù)位電路等,采用電池供電,方便隨身攜帶使我們在掌握軟件的同時(shí),熟悉單片機(jī)硬件中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第7頁共38頁的設(shè)計(jì)制作,鍛煉我們的動(dòng)手能力,也為單片機(jī)學(xué)習(xí)者和開發(fā)者創(chuàng)造了一個(gè)良好的學(xué)習(xí)條件和開發(fā)新產(chǎn)品的機(jī)會61板上有調(diào)試器接口(PROBE接口)以及下載線(EZ_PROBE)接口,分別可接凌陽科技的在線調(diào)試器、簡易下載線,配合UNSPIDE,可方便地在板上實(shí)現(xiàn)程序的下載、在線仿真調(diào)試8。61板上的主要功能模塊如下SPCE061A單片機(jī)最小系統(tǒng)外圍電路模塊;電源輸入模塊;音頻電路(DAC音頻功放輸出)模塊;按鍵模塊;I/O端口接口模塊;調(diào)試、下載接口模塊;16位NSP微處理器;電壓CPUVDD為2436VI/OVDDH為2455V;時(shí)鐘032MHZ49152MHZ;內(nèi)置2K字SRAM;內(nèi)置32KFLASH;可編程音頻處理;晶體振蕩器;系統(tǒng)處于備用狀態(tài)下時(shí)鐘處于停止?fàn)顟B(tài),耗電僅為2A36V;2個(gè)16位可編程定時(shí)器/計(jì)數(shù)器可自動(dòng)預(yù)置初始計(jì)數(shù)值;2個(gè)10位DAC數(shù)模轉(zhuǎn)換輸出通道;32位通用可編程輸入/輸出端口;14個(gè)中斷源可來自定時(shí)器A/B,時(shí)基,2個(gè)外部時(shí)鐘源輸入,鍵喚醒;具備觸鍵喚醒的功能;使用凌陽音頻編碼SACM_S240方式24K位/秒,能容納210秒的語音數(shù)據(jù);鎖相環(huán)PLL振蕩器提供系統(tǒng)時(shí)鐘信號;32768HZ實(shí)時(shí)時(shí)鐘;7通道10位電壓模數(shù)轉(zhuǎn)換器ADC和單通道聲音模數(shù)轉(zhuǎn)換器;聲音模數(shù)轉(zhuǎn)換器輸入通道內(nèi)置麥克風(fēng)放大器和自動(dòng)增益控制AGC功能;中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第8頁共38頁具備串行設(shè)備接口;具有低電壓復(fù)位LVR功能和低電壓監(jiān)測LVD功能;內(nèi)置在線仿真電路ICE(INCIRCUITEMULATOR)接口;具有保密能力;具有WATCHDOG功能9。SPEC061A片內(nèi)存儲器結(jié)構(gòu)SPEC061A有2K的SRAM(包括堆棧區(qū)),其地址范圍為0X00000X07FF。前64個(gè)字,即0X00000X003F地址范圍內(nèi)可采用6位地址直接地址尋址方法,尋訪速度為2個(gè)CPU時(shí)鐘周期;其余0X00400X07FF地址范圍內(nèi)存儲器的尋訪速度則為3個(gè)CPU時(shí)鐘周期。SPCE061A是一個(gè)用閃存代替掩膜ROM的MTP(多次編程)芯片,具有32K閃存容量。用戶可以用閃存來存儲用戶程序。為了安全起見,不對用戶開放整體擦除功能。32K字的內(nèi)嵌式閃存被劃分為128頁(每頁存儲容量為256個(gè)字),它們在CPU正常狀態(tài)下均可通過程序擦除或?qū)懭搿H?2K字閃存均可在ICE工作方式下被編程寫入或被擦除。SPCE061A的結(jié)構(gòu)如圖32所示圖32SPCE061A的結(jié)構(gòu)中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第9頁共38頁SPCE061A有兩種封裝片,一種為84個(gè)引腳,PLCC84封裝形式;另一種為80個(gè)引腳,LQFP80封裝。它的排列如圖33所示。圖33SPCE061ALQFP80分裝引腳排列圖在PLCC84封裝中,有15個(gè)空余腳,用戶使用時(shí)這15個(gè)空余腳懸浮。在LQFP80封裝中有9個(gè)空余腳,用戶使用時(shí)這9個(gè)空余腳接地。最小系統(tǒng)接線如圖34所示,在OSC0、OSC1端接上晶振及諧振電容,在鎖相環(huán)壓控振蕩器的阻容輸入VCP端接上相應(yīng)的電容電阻后即可工作。其它不用的電源端和地端接上01F的去藕電容提高抗干擾能力。中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第10頁共38頁圖34SPCE061A最小系統(tǒng)原理圖32端口結(jié)構(gòu)SPCE061A提供了位控制結(jié)構(gòu)的I/O端口,每一位都可以單獨(dú)用于數(shù)據(jù)輸入或輸出。每個(gè)獨(dú)立的位可通過以下3種控制向量來作設(shè)定1數(shù)據(jù)向量DATA2屬性向量ATTRIBUTION3方向控制向量DIRECTION每3個(gè)對應(yīng)的控制向量組合在一起,形成一個(gè)控制字,用來定義相對應(yīng)I/O端口位的輸入輸出狀態(tài)和方式。例如,假設(shè)需要IOA0是下拉輸入引腳,則相對應(yīng)的DATA、ATTRIBUTION和DIRECTION的值均被設(shè)為“0”。如果需要IOA1是帶喚醒功能的懸浮式輸入引腳,則DATA、ATTRIBUTION和DIRECTION的值被設(shè)為“010”。與其它的單片機(jī)相比,SPCE061A除了每個(gè)I/O口可以單獨(dú)定義其狀態(tài)中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第11頁共38頁外,每個(gè)對應(yīng)狀態(tài)下的I/O端口性質(zhì)電路都是內(nèi)置的,在實(shí)際的電路中不需要再外接。例設(shè)A口為帶下拉電阻的輸入端口,在連接硬件時(shí)不用再外接下拉電路。1IO口的使用IOA0到TOA7,用于數(shù)碼管顯示的段驅(qū)動(dòng)。IOA8到IOA15,用于數(shù)碼管顯示的位驅(qū)動(dòng)。IOB8到IOB15,用于18鍵盤輸入。IOB0用于SPR4096模組的時(shí)鐘端口SCK信號。IOB1用于SPR4096模組的數(shù)據(jù)端口SDK信號。IOB2用于數(shù)碼管的冒號段驅(qū)動(dòng)。IOA口(IOA0IOA15)設(shè)置為帶數(shù)據(jù)緩存器的低電頻輸出。IOB口(IOB8IOB15)設(shè)置為帶下拉電阻的輸入引腳。IOB0與IOB2設(shè)置為帶數(shù)據(jù)緩存器的高電頻輸出。2SIO口的設(shè)置設(shè)置IOB0為SCK(串行接口時(shí)鐘端口),IOB1為SDK(串行接口數(shù)據(jù)端口),如表B7置1時(shí)不必設(shè)置IOB0和IOB1的輸入輸出狀態(tài)。串行設(shè)備地址設(shè)置為24位由B0,B1控制。設(shè)置數(shù)據(jù)幀的寫傳輸B6控制。設(shè)置傳輸速率CPUCLK/8,B4,B3控制。具體控制字如表31表31SIO口的控制設(shè)置B7B6B5B4B3B2B1B0SIOCONFIGR/WR/WENCLOCKSELADDRSELECT11001000以上就是所用到的與硬件如LED、鍵盤、SPR_4096連接的端口的介紹,除此之外還有異步通信串行接口、音頻輸入接口、麥克風(fēng)MIC輸入接口等。33凌陽中斷應(yīng)用(1)在每條指令結(jié)束后系統(tǒng)都自動(dòng)檢測中斷請求信號,如果有中斷請求,相應(yīng)的中斷允許位為真(允許中斷),相應(yīng)的總中斷0許位為真(允許中斷),則響應(yīng)中斷。中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第12頁共38頁(2)保護(hù)現(xiàn)場,CPU一旦響應(yīng)中斷,中斷系統(tǒng)會自動(dòng)的保存當(dāng)前的PC和SR寄存器(入棧)進(jìn)入中斷服務(wù)程序地址入口,中斷服務(wù)程序中可以通過入棧保護(hù)原程序中用到的數(shù)據(jù),保護(hù)現(xiàn)場前,一般要關(guān)中斷以防止現(xiàn)場被破壞。保護(hù)現(xiàn)場一般是將堆棧指令將原程序中用到的寄存器推入堆棧,在保護(hù)現(xiàn)場之后要開中斷,以響應(yīng)更高優(yōu)先級的中斷申請。(3)中斷服務(wù),即為相應(yīng)的中斷源服務(wù)。(4)清相應(yīng)的中斷請求標(biāo)志位,以免CPU總是執(zhí)行該中斷。(5)恢復(fù)現(xiàn)場,用堆棧指令將保護(hù)在堆棧中的數(shù)據(jù)彈出來,在恢復(fù)現(xiàn)場前要關(guān)中斷,以防止現(xiàn)場被破壞,在恢復(fù)現(xiàn)場后應(yīng)及時(shí)開中斷。(6)返回,此時(shí)CPU將PC指針和SR內(nèi)容出?;謴?fù)斷點(diǎn),從而使CPU繼續(xù)執(zhí)行剛才被中斷的程序。CPU執(zhí)行中斷的服務(wù)流程圖如圖35所示。圖35中斷服務(wù)流程圖SPCE061A系列單片機(jī)中斷系統(tǒng),是凌陽16位單片機(jī)中中斷功能較強(qiáng)的一種,它可以提供14個(gè)中斷源,具有兩個(gè)中斷優(yōu)先級,可實(shí)現(xiàn)兩級中斷嵌套功能。用戶可以用關(guān)中斷指令(或復(fù)位)屏蔽所有的中斷請求,也可以用開中斷指令使CPU接受中斷申請。每一個(gè)中斷源可以用軟件獨(dú)立控制為開或關(guān)中斷狀態(tài);但中斷級別不可用軟件設(shè)置。SPCE061A的結(jié)構(gòu)給出了三種類型的中斷軟件中斷、異常中斷和事件中斷。1軟件中斷,軟件中斷是由軟件指令BREAK產(chǎn)生的中斷。軟件中斷的向量地中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第13頁共38頁址為FFF5H。2)異常中斷,異常中斷表示為非常重要的事件,一旦發(fā)生,CPU必須立即進(jìn)行處理。目前SPCE061A定義的異常中斷只有復(fù)位一種。通常,SPCE061A系統(tǒng)復(fù)位可以由以下三種情況引起上電、看門狗計(jì)數(shù)器溢出以及系統(tǒng)電源低于電壓低限。不論什么情況引起復(fù)位,都會使復(fù)位引腳的電位變低,進(jìn)而使程序指針PC指向由一個(gè)復(fù)位向量(FFF7H)所指的系統(tǒng)復(fù)位程序入口地址。3)事件中斷,事件中斷(可簡稱“中斷”,以下提到的“中斷”均為事件中斷)一般產(chǎn)生于片內(nèi)設(shè)部件或由外設(shè)中斷輸入引腳引入的某個(gè)事件。這種中斷的開通/禁止,由相應(yīng)獨(dú)立使能和相應(yīng)的IRQ或FIQ總使能控制。SPCE061A的事件中斷可采用兩種方式快速中斷請求即FIQ中斷和中斷請求即IRQ中斷。這兩種中斷都有相應(yīng)的總使能。中斷源SPCE061A單片機(jī)的中斷系統(tǒng)有14個(gè)中斷源分為兩個(gè)定時(shí)器溢出中斷、兩個(gè)外部中斷、一個(gè)串行口中斷、一個(gè)觸鍵喚醒中斷、7個(gè)時(shí)基信號中斷、PWM音頻輸出中斷。中斷向量共有9個(gè)中斷向量即FIQ、IRQ0IRQ6及UARTIRQ。這9個(gè)中斷向量共可安置14個(gè)中斷源供用戶使用,其中有3個(gè)中斷源可安置在FIQ或IRQ0IRQ2中,另有10個(gè)中斷源則可安置在IRQ3IRQ6中。還有一個(gè)專門用于通用異步串行口UART的中斷源,須安置在UARTIRQ向量中。詳細(xì)如32表所示。中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第14頁共38頁表32中斷向量中斷源中斷優(yōu)先級中斷向量保留字FOSC/1024溢出信號PWMINTFIQ/IRQ0FFF8H/FFF6H_FIQ/_IRQ0TIMERA溢出信號FIQ/IRQ1FFF9H/FFF6H_FIQ/_IRQ1TIMERB溢出信號FIQ/IRQ2FFFAH/FFF6H_FIQ/_IRQ2外部時(shí)鐘輸入信號EXT1外部時(shí)鐘輸入信號EXT2觸鍵喚醒信號IRQ3FFFBH_IRQ34096HZ時(shí)基信號2048HZ時(shí)基信號1024HZ時(shí)基信號IRQ4FFFCH_IRQ44HZ時(shí)基信號2HZ時(shí)基信號IRQ5FFFDH_IRQ5頻選信號TMB1頻選信號TMB2IRQ6FFFEH_IRQ6UART傳輸中斷IRQ7FFFFH_IRQ7BREAK軟中斷從表中可以看到每個(gè)中斷入口地址對應(yīng)多個(gè)中斷源,因此在中斷服務(wù)程序中需通過查詢中斷請求位來判斷是那個(gè)中斷源請求的中斷。SPCE061A單片機(jī)有多個(gè)中斷源,為了使每個(gè)中斷源都能獨(dú)立地被開放和屏蔽,以便用戶能靈活使用,它在每個(gè)中斷信號的通道中設(shè)置了一個(gè)中斷屏蔽觸發(fā)器,只有該觸發(fā)器無效,它所對應(yīng)的中斷請求信號才能進(jìn)入CPU,即此類型中斷開放。否則即使其對應(yīng)的中斷請求標(biāo)志位置“1”,CPU也不會響應(yīng)中斷,即此類型的中中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第15頁共38頁斷被屏蔽。同時(shí)CPU內(nèi)還設(shè)置了一個(gè)中斷允許觸發(fā)器,它控制CPU能否響應(yīng)中斷。中斷控制寄存器。SPCE061A對中斷源的開放和屏蔽,以及每個(gè)中斷源是否被允許中斷,都受中斷允許寄存器P_INT_CTRL和P_INT_CLEAR及P_INT_CTRL_NEW控制和一些中斷控制指令。中斷控制單元P_INT_CTRL(讀/寫)(7010H)。P_INT_CTRL控制單元具有可讀和可寫的屬性,其讀寫時(shí)的意義是不同的。其各位如表33所列。表33中斷控制單元P_INT_CTRLB7B6B5B4B3B2B1B0IRQ3_KEYIRQ4_4KHZIRQ4_2KHZIRQ4_1KHZIRQ5_4HZIRQ5_2HZIRQ6_TMB1IRQ6_TMB2B15B14B13B12B11B10B9B8FIQ_FOSC/1024IRQ0_FOSC/1024FIQ_TMAIRQ1_TMAFIQ_TMBIRQ2_TMBIRQ3_EXT2IRQ3_EXT1當(dāng)寫中斷控制單元中的某位為“1”時(shí),即允許該位所代表的中斷被開放,并關(guān)閉屏蔽中斷觸發(fā)器,此時(shí)當(dāng)有該中斷申請時(shí),CPU會響應(yīng)。否則如果該位被置0則禁止該位所代表的中斷。即使有中斷申請,CPU也不會響應(yīng)。當(dāng)讀取中斷控制單元時(shí),其主要作為中斷標(biāo)志,因?yàn)槠涿恳晃痪硪粋€(gè)中斷,當(dāng)CPU響應(yīng)某中斷時(shí),便將該中斷標(biāo)志置“1”,即將P_INT_CTRL中的某位置“1”,可以通過讀取該寄存器來確定CPU響應(yīng)的中斷。清除中斷標(biāo)志控制單元P_INT_CLEAR(寫)(7011H)。清除中斷標(biāo)志控制單元主要用于清除中斷控制標(biāo)志位,當(dāng)CPU響應(yīng)中斷后,會將中斷標(biāo)志置位為“1”,當(dāng)進(jìn)入中斷服務(wù)程序后,要將其控制標(biāo)志清零,否則CPU總是執(zhí)行該中斷。其各位如表34所列。表34清除中斷標(biāo)志控制單元P_INT_CLEARB7B6B5B4B3B2B1B0IRQ3_KEYIRQ4_4KHZIRQ4_2KHZIRQ4_1KHZIRQ5_4HZIRQ5_2HZIRQ6_TMB1IRQ6_TMB2B15B14B13B12B11BB9B8中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第16頁共38頁10FIQ_FOSC/1024IRQ0_FOSC/1024FIQ_TMAIRQ1_TMAFIQ_TMBIRQ2_TMBIRQ3_EXT2IRQ3_EXT1因?yàn)镻_INT_CLEAR寄存器的每一位均對應(yīng)一個(gè)中斷,所以如果想清除某個(gè)中斷狀態(tài)標(biāo)志,只要將該寄存器中對應(yīng)的中斷位置1即可清除該中斷狀態(tài)標(biāo)志位。該寄存器只有寫的屬性,讀該寄存器是無任何意義的。激活和屏蔽中斷控制單元P_INT_CTRL_NEW讀/寫702DH。該單元用于激活和屏蔽中斷。其各位如表35所列。表35激活和屏蔽中斷控制單元P_INT_CTRL_NEWB7B6B5B4B3B2B1B0IRQ3IRQ4IRQ4IRQ4IRQ5IRQ5IRQ6IRQ6B15B14B13B12B11B10B9B8FIQIRQ0FIQIRQ1FIQIRQ2IRQ3IRQ3當(dāng)寫該控制單元時(shí),與P_INT_CTRL功能相似。讀該控制單元時(shí),只作為了解激活那一中斷的功能使用。與其寫入值是一致的。在語音遙控小車系統(tǒng)中應(yīng)用了兩個(gè)中斷,如下1)FIQTMA用于語音播放/識別中斷2)IRQ52HZ用于運(yùn)動(dòng)中斷定時(shí)控制34凌陽語音表36列出了不同音頻質(zhì)量等級的編碼技術(shù)標(biāo)準(zhǔn)(頻響)。表36不同音頻質(zhì)量等級的編碼技術(shù)標(biāo)準(zhǔn)信號類型頻率范圍/HZ采樣率/KHZ量化精度/(位)電話語音2003400816寬帶音頻(AM質(zhì)量)5070001616調(diào)頻廣播(FM質(zhì)量)2000015000037816高質(zhì)量音頻(CD質(zhì)量)202000044116凌陽音頻壓縮算法處理的語音信號的范圍是200HZ34KHZ的電話話音。壓縮分無損壓縮和有損壓縮。中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第17頁共38頁無損壓縮一般指磁盤文件,壓縮比低2141。而有損壓縮則是指音視頻文件,壓縮比可高達(dá)1001。凌陽音頻壓縮算法根據(jù)不同的壓縮比分為以下幾種具體可參見語音壓縮工具一節(jié)內(nèi)容SACMA2000壓縮比為8,8125,815SACMS480壓縮比為803,8045SACMS240壓縮比為8015按音質(zhì)排序A2000S480S2401波形編碼SUBBAND即SACMA2000特點(diǎn)高質(zhì)量、高碼率,適于高保真語音音樂。2參數(shù)編碼聲碼器(VOCODER)模型表達(dá),抽取參數(shù)與激勵(lì)信號進(jìn)行編碼。如SACMS240。特點(diǎn)壓縮比大,計(jì)算量大,音質(zhì)不高,廉價(jià)3混合編碼CELP即SACMS480特點(diǎn)綜合參數(shù)和波形編碼之優(yōu)點(diǎn)。除此之外,還具有FM音樂合成方式即SACMMS01在語音遙控小車系統(tǒng)設(shè)計(jì)中只用到了SACM_S480壓縮算法。35SPCE061A的開發(fā)方法SPCE061A的開發(fā)是通過在線調(diào)試器PROBE或EZPROBE實(shí)現(xiàn)的。它既是一個(gè)編程器(即程序燒寫器),又是一個(gè)實(shí)時(shí)在線調(diào)試器。用它可以替代在單片機(jī)應(yīng)用項(xiàng)目的開發(fā)過程中常用的軟件工具硬件在線實(shí)時(shí)仿真器和程序燒寫器。它利用了SPCE061A片內(nèi)置的在線仿真電路ICE(INCIRCUITEMULATOR)接口和凌陽公司的在線串行編程技術(shù)。PROBE或EZPROBE工作于凌陽IDE集成開發(fā)環(huán)境軟件包下,其5芯的仿真頭直接連接到目標(biāo)電路板上SPCE061A相應(yīng)管腳,直接在目標(biāo)電路板上的CPUSPCE061A調(diào)試、運(yùn)行用戶編制的程序。PROBE的另一頭是標(biāo)準(zhǔn)25針打印機(jī)接口,直接連接到計(jì)算機(jī)打印口與上位機(jī)通訊,在計(jì)算機(jī)IDE集成開發(fā)環(huán)境軟件包下,完成在線調(diào)試功能。在設(shè)計(jì)中采用了EZPROBE來完成與PC的連接。中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第18頁共38頁4總體方案介紹41系統(tǒng)硬件方案系統(tǒng)組成主要包括以下兩部分SPCE061A精簡開發(fā)板、語音小車控制電路板。圖中的語音輸入部分MIC_IN、按鍵輸入KEY、聲音輸出部分的功率放大環(huán)節(jié)等已經(jīng)做到了精簡開發(fā)板61板上,為我們使用提供了很大的方便。在電機(jī)的驅(qū)動(dòng)方面,采用全橋驅(qū)動(dòng)技術(shù),利用四個(gè)I/O端口分為兩組分別實(shí)現(xiàn)兩個(gè)電機(jī)的正傳、反轉(zhuǎn)和停轉(zhuǎn)三態(tài)運(yùn)行。系統(tǒng)的結(jié)構(gòu)框圖如圖41示。61板控制板SPCE061A功放SPKKEYMIC濾波方向控制橋路驅(qū)動(dòng)控制橋路方向電機(jī)驅(qū)動(dòng)電機(jī)圖41系統(tǒng)結(jié)構(gòu)框圖中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第19頁共38頁硬件模塊連接圖如圖42示。圖42硬件模塊連接圖42系統(tǒng)控制方案小車的運(yùn)動(dòng)控制采用語音控制和中斷定時(shí)控制相結(jié)合,通過語音觸發(fā)小車動(dòng)作,小車動(dòng)作之后,隨時(shí)可以通過語音指令改變小車的運(yùn)動(dòng)狀態(tài)。在每一次動(dòng)作觸發(fā)的同時(shí)啟動(dòng)定時(shí)器,如果小車由于某些原因不能正常的接收語音指令,則只要定時(shí)時(shí)間到,中斷服務(wù)程序會發(fā)出指令讓小車停下來。中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第20頁共38頁5系統(tǒng)硬件設(shè)計(jì)系統(tǒng)的硬件方面,由于大部分的功能實(shí)現(xiàn)都是在61板上完成的,只有電機(jī)控制部分電路另外設(shè)計(jì)在一塊獨(dú)立的電路板上,我們稱之為控制板。下面詳細(xì)的介紹小車的結(jié)構(gòu)和運(yùn)行原理以及控制電路板的結(jié)構(gòu)和功能實(shí)現(xiàn)。51車體介紹和小車的行走原理10語音控制小車為四輪結(jié)構(gòu),如圖51所示。其中前面兩個(gè)車輪由前輪電機(jī)控制,在連桿和支點(diǎn)作用下控制前輪左右擺動(dòng),來調(diào)節(jié)小車的前進(jìn)方向。在自然狀態(tài)下,前輪在彈簧作用下保持中間位置。后面兩個(gè)車輪由后輪電機(jī)驅(qū)動(dòng),為整個(gè)小車提供動(dòng)力。所以又稱前面的輪子為方向輪,后面的兩個(gè)輪子為驅(qū)動(dòng)輪,如圖52所示。圖51車體側(cè)視圖中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第21頁共38頁圖52車體頂視圖直走由小車的結(jié)構(gòu)分析,在自然狀態(tài)下,前輪在彈簧作用下保持中間狀態(tài),這是只要后輪電機(jī)正轉(zhuǎn)小車就會前進(jìn)。如圖53所示;倒車倒車動(dòng)作和前進(jìn)動(dòng)作剛好相反,前輪電機(jī)仍然保持中間狀態(tài),后輪電機(jī)反轉(zhuǎn),小車就會向后運(yùn)動(dòng),如圖54所示;左轉(zhuǎn)前輪電機(jī)逆時(shí)針旋轉(zhuǎn)(規(guī)定為正轉(zhuǎn)),后輪電機(jī)正轉(zhuǎn),這時(shí)小車就會在前后輪共同作用下朝左側(cè)前進(jìn),如圖55所示;右轉(zhuǎn)前輪電機(jī)反轉(zhuǎn),后輪電機(jī)正轉(zhuǎn),這時(shí)小車就是會在前后輪共同作用下朝右側(cè)前進(jìn),如圖56所示。中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第22頁共38頁圖53小車前進(jìn)原理圖圖54小車倒車示意圖中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第23頁共38頁圖55小車左轉(zhuǎn)示意圖圖56小車右轉(zhuǎn)示意圖52控制板原理圖11控制板主要包括接口電路、電源電路和兩路電機(jī)的驅(qū)動(dòng)電路,控制板原理中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第24頁共38頁圖如圖57所示。接口電路接口電路負(fù)責(zé)將61板的I/O接口信號傳送給控制電路板,I/O信號主要為控制電機(jī)需要的IOB8IOB11這四路信號,同時(shí)為了方便后續(xù)的開發(fā)和完善,預(yù)留了IOB12IOB15以及IOA8IOA15接口,可以在這些接口上添加一些傳感器。電源部分整個(gè)小車有4個(gè)電源信號電池電源,控制板工作電源,61板工作電源,61板的I/O輸出電源。系統(tǒng)供電由電池提供,控制板直接采用電池供電(VCC),然后經(jīng)二極管D1后產(chǎn)生61板電源(VCC_61),通過61板的VIO跳線產(chǎn)生61板的端口電源(V1)。二極管D1作用1、降壓,4節(jié)電池提供的電壓VCC最大可達(dá)到6V,D1可有效地降壓。2、保護(hù),D1可以防止電源接反燒壞61板。圖57控制板原理圖521全橋驅(qū)動(dòng)原理全橋驅(qū)動(dòng)又稱H橋驅(qū)動(dòng),下面介紹一下H橋的工作原理H橋一共有四個(gè)臂,分別為B1B4,每個(gè)臂由一個(gè)開關(guān)控制,示例中為三極管Q1Q4。中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第25頁共38頁如果讓Q1、Q2導(dǎo)通Q3、Q4關(guān)斷,如圖58所示,此時(shí)電流將會流經(jīng)Q1、負(fù)載、Q2組成的回路,電機(jī)正轉(zhuǎn)。圖58B1、B2工作時(shí)的H橋電路簡圖圖59B3、B4工作時(shí)的H橋電路簡圖如果讓Q1、Q2關(guān)斷Q3、Q4導(dǎo)通,如圖59所示,此時(shí)電流將會流經(jīng)Q3、負(fù)載、Q4組成的回路,電機(jī)反轉(zhuǎn)。如果讓Q1、Q2關(guān)斷Q3、Q4也關(guān)斷,負(fù)載LOAD兩端懸空,如圖510所示,此時(shí)電機(jī)停轉(zhuǎn)。這樣就實(shí)現(xiàn)了電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)、停止三態(tài)控制。如果讓Q1、Q2導(dǎo)通Q3、Q4也導(dǎo)通,那么電流將會流經(jīng)Q1、Q4組成的回路以及Q2和Q3組成的回路,如圖511所示,這時(shí)橋臂上會出現(xiàn)很大的短路電流。在實(shí)際應(yīng)用時(shí)注意避免出現(xiàn)橋臂短路的情況,這會給電路帶來很大的危害,嚴(yán)重的會燒毀電路。中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第26頁共38頁圖510B1B4全部停止工作時(shí)的H橋簡圖圖511B1B4全部工作時(shí)的H橋簡圖522動(dòng)力電機(jī)驅(qū)動(dòng)電路動(dòng)力驅(qū)動(dòng)由后輪驅(qū)動(dòng)實(shí)現(xiàn),負(fù)責(zé)小車的直線方向運(yùn)動(dòng),包括前進(jìn)和后退,后輪驅(qū)動(dòng)電路是一個(gè)全橋驅(qū)動(dòng)電路,如圖512所示Q1、Q2、Q3、Q4四個(gè)三極管組成四個(gè)橋臂,Q1和Q4組成一組,Q2和Q3組成一組,Q5控制Q2、Q3的導(dǎo)通與關(guān)斷,Q6控制Q1和Q4的導(dǎo)通與關(guān)斷,而Q5、Q6由IOB9和IOB8控制,這樣就可以通過IOB8和IOB9控制四個(gè)橋臂的導(dǎo)通與關(guān)斷控制后輪電機(jī)的運(yùn)行狀態(tài),使之正轉(zhuǎn)反轉(zhuǎn)或者停轉(zhuǎn),進(jìn)而控制小車的前進(jìn)和后退。12中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第27頁共38頁圖512后輪電機(jī)驅(qū)動(dòng)電路當(dāng)IOB8為高電平、IOB9為低電平時(shí)Q1和Q4導(dǎo)通,Q2和Q3截止,后輪電機(jī)正轉(zhuǎn),小車前進(jìn);反之當(dāng)IOB8為低電平、IOB9為高電平時(shí)Q1和Q4截止,Q2和Q3導(dǎo)通,后輪電機(jī)反轉(zhuǎn),小車倒退;而當(dāng)OB8、IOB9同為低電平時(shí)Q1、Q2、Q3和Q4都截止,后輪電機(jī)停轉(zhuǎn),小車停止運(yùn)動(dòng)。注意IOB8和IOB9不能同時(shí)置高電平,這樣會造成后輪驅(qū)動(dòng)全橋短路現(xiàn)象。523方向電機(jī)控制電路方向控制由前輪驅(qū)動(dòng)實(shí)現(xiàn),包括左轉(zhuǎn)和右轉(zhuǎn),前輪驅(qū)動(dòng)電路也是一個(gè)全橋驅(qū)動(dòng)電路,如圖512所示Q7、Q8、Q9、Q10四個(gè)三極管組成四個(gè)橋臂,Q7和Q10組成一組,Q8和Q9組成一組,Q11控制Q8、Q9的導(dǎo)通與關(guān)斷,Q12控制Q7和Q10的導(dǎo)通與關(guān)斷,而Q11、Q12由IOB10和IOB11控制,這樣就可以通過IOB10和IOB11控制前輪電機(jī)的正轉(zhuǎn)和反轉(zhuǎn),進(jìn)而控制小車的左轉(zhuǎn)和右轉(zhuǎn)。中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第28頁共38頁圖513前輪電機(jī)驅(qū)動(dòng)電路當(dāng)IOB10為高電平、IOB11為低電平時(shí)Q8和Q9導(dǎo)通,Q7和Q10截止,前輪電機(jī)正轉(zhuǎn),小車前輪朝左偏轉(zhuǎn);反之當(dāng)IOB10為低電平、IOB11為高電平時(shí)Q8和Q9截止,Q7和Q10導(dǎo)通,前輪電機(jī)反轉(zhuǎn),小車前輪朝右偏轉(zhuǎn);而當(dāng)IOB10、IOB11同為低電平時(shí)Q8和Q9截止,Q7和Q10也截止,前輪電機(jī)停轉(zhuǎn),在彈簧作用下前輪被拉回到中間位置,保持直向。注意IOB10、IOB11不能同時(shí)為高電平,這樣會造成前輪驅(qū)動(dòng)全橋的橋臂短路。結(jié)合以上對前輪和后輪的狀態(tài)分析,得到小車的運(yùn)行狀態(tài)與輸入的對照表,如下表所示表51基本的輸入與小車運(yùn)動(dòng)狀態(tài)對照表IOB11IOB10IOB9IOB8后電機(jī)前電機(jī)小車0000停轉(zhuǎn)停轉(zhuǎn)停0001正轉(zhuǎn)停轉(zhuǎn)前進(jìn)0010反轉(zhuǎn)停轉(zhuǎn)倒退0101正轉(zhuǎn)正轉(zhuǎn)左前轉(zhuǎn)1001正轉(zhuǎn)反轉(zhuǎn)右前轉(zhuǎn)另外還有一些不常用的運(yùn)行狀態(tài),比如右后轉(zhuǎn)、左后轉(zhuǎn)等,結(jié)合以上對前輪和后輪的狀態(tài)分析,其端口對照如表52所示表52輸入與小車的運(yùn)動(dòng)狀態(tài)對照表IOB11IOB10IOB9IOB8后電機(jī)前電機(jī)小車0110反轉(zhuǎn)正轉(zhuǎn)右后轉(zhuǎn)1010反轉(zhuǎn)反轉(zhuǎn)左后轉(zhuǎn)注意為了小車的安全請不要出現(xiàn)以下兩種組合情況表53禁止的輸入狀態(tài)列表IOB11IOB10IOB9IOB8后電機(jī)前電機(jī)小車11停轉(zhuǎn)停11停轉(zhuǎn)停中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第29頁共38頁6系統(tǒng)軟件設(shè)計(jì)61系統(tǒng)的總體程序流程語音識別小車的主程序流程如圖61所示,分為四大部分初始化部分、訓(xùn)練部分、識別部分、重訓(xùn)操作。初始化部分初始化操作將IOB8IOB11設(shè)置為輸出端,用以控制電機(jī)。必要時(shí)還要有對應(yīng)的輸入端設(shè)置和PWM端口設(shè)置等。訓(xùn)練部分訓(xùn)練部分完成的工作就是建立語音模型。程序一開始判斷小車是否被訓(xùn)練過,如果沒有訓(xùn)練過則要求對其進(jìn)行訓(xùn)練,并且會在訓(xùn)練成功之后將訓(xùn)練的模型存儲到FLASH,在以后使用時(shí)不需要重新訓(xùn)練;如果已經(jīng)訓(xùn)練過會把存儲在FLASH中的模型調(diào)出來裝載到辨識器中。識別部分在識別環(huán)節(jié)當(dāng)中,如果辨識結(jié)果是名字,停止當(dāng)前的動(dòng)作并進(jìn)入待命狀態(tài),然后等待動(dòng)作命令。如果辨識結(jié)果為動(dòng)作指令小車會語音告知相應(yīng)動(dòng)作并執(zhí)行該動(dòng)作,在運(yùn)動(dòng)過程中可以通過呼叫小車的名字使小車停下來。重訓(xùn)操作考慮到有重新訓(xùn)練的需求,設(shè)置了重新訓(xùn)練的按鍵(61板的KEY3),循環(huán)掃描該按鍵,一旦檢測到此鍵按下,則將擦除訓(xùn)練標(biāo)志位(0XE000單元),并等待復(fù)位。復(fù)位后,程序重新執(zhí)行,當(dāng)檢測到訓(xùn)練標(biāo)志位為0XFFFF時(shí)會要求重新對其進(jìn)行訓(xùn)練。系統(tǒng)的總體程序流程如圖61所示中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第30頁共38頁圖61系統(tǒng)總體程序流程圖下面詳細(xì)介紹以上提到的子程序。611語音識別的原理簡介在介紹子程序之前首先介紹一下語音識別的原理。語音識別主要分為“訓(xùn)練”和“識別”兩個(gè)階段。在訓(xùn)練階段,單片機(jī)對采集到的語音樣本進(jìn)行分析處理,從中提取出語音特征信息,建立一個(gè)特征模型;在識別階段,單片機(jī)對采集到的語音樣本也進(jìn)行類似的分析處理,提取出語音的特征信息,然后將這個(gè)特征信息模型與已有的特征模型進(jìn)行對比,如果二者達(dá)到了一定的匹配度,則輸入的語音被識別。中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第31頁共38頁612訓(xùn)練子程序當(dāng)程序檢測到訓(xùn)練標(biāo)志位BS_FLAG內(nèi)容為0XFFFF,就會要求操作者對它進(jìn)行訓(xùn)練操作,訓(xùn)練操作的過程訓(xùn)練采用兩次訓(xùn)練獲取結(jié)果的方式,以訓(xùn)練名字為例小車首先會提示給我取個(gè)名字吧,這時(shí)你可以告訴它一個(gè)名字(比如JACK);然后它會提示請?jiān)僬f一遍,這時(shí)再次告訴它名字(JACK),如果兩次的聲音差別不大,小車就能夠成功的建立模型,名稱訓(xùn)練成功;如果沒能夠成功的建立模型,小車會告知失敗的原因并要求重新訓(xùn)練。成功訓(xùn)練名稱后會給出下一條待訓(xùn)練指令提示音前進(jìn),參照名稱訓(xùn)練方式訓(xùn)練前進(jìn)指令。依次訓(xùn)練小車的名稱前進(jìn)指令倒車指令左轉(zhuǎn)指令右轉(zhuǎn)指令,全部訓(xùn)練成功子程序返回,訓(xùn)練結(jié)束。下面是訓(xùn)練部分的子程序,在訓(xùn)練時(shí)如果訓(xùn)練不成功TRAINWORD返回值不為0,要求重復(fù)訓(xùn)練,只有當(dāng)訓(xùn)練成功,TRAINWORD返回0,進(jìn)行下一條指令訓(xùn)練。13VOIDTRAINSDWHILETRAINWORDNAME_ID,S_NAME0/訓(xùn)練名稱WHILETRAINWORDCOMMAND_GO_ID,S_ACT10/訓(xùn)練第1個(gè)動(dòng)作WHILETRAINWORDCOMMAND_BACK_ID,S_ACT20/訓(xùn)練第2個(gè)動(dòng)作WHILETRAINWORDCOMMAND_LEFT_ID,S_ACT30/訓(xùn)練第3個(gè)動(dòng)作WHILETRAINWORDCOMMAND_RIGHT_ID,S_ACT40/訓(xùn)練第4個(gè)動(dòng)作613語音識別子程序語音識別流程首先獲取辨識器的辨識結(jié)果,判斷是否有語音觸發(fā),如果有語音觸發(fā)則會返回識別結(jié)果的ID號,ID號對應(yīng)名稱或者對應(yīng)不同的動(dòng)作。如果ID號為名稱,則結(jié)束運(yùn)動(dòng)(如果當(dāng)前在運(yùn)動(dòng)狀態(tài)),進(jìn)入待命狀態(tài),等待下一次中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第32頁共38頁的指令觸發(fā)如果ID號為動(dòng)作,則語音告知將要執(zhí)行的動(dòng)作,并執(zhí)行該動(dòng)作。614動(dòng)作子程序14動(dòng)作子程序包括前進(jìn)、倒車、左拐、右拐、停車子程序前進(jìn)由小車的結(jié)構(gòu)原理和驅(qū)動(dòng)電路分析知只要IOB8為高電平,IOB9,IOB10,IOB11全部為低電平即可實(shí)現(xiàn)小車的前進(jìn)。前進(jìn)子程序包括語音提示、置端口數(shù)據(jù)、啟動(dòng)定時(shí)器操作,該部分程序如下VOIDGOAHEAD/前進(jìn)PLAYSNDS_ACT1,3/語音提示P_IOB_DATA0X0100/前進(jìn)P_INT_MASK|0X0004/開2HZ中斷_ASM“INTFIQ,IRQ“UITIMECONT0/清定時(shí)器倒車由小車的結(jié)構(gòu)原理分析和驅(qū)動(dòng)電路分析知只要IOB9為高電平,IOB8,IOB10,IOB11全部為低電平即可實(shí)現(xiàn)小車的倒退。倒退子程序包括語音提示、置端口數(shù)據(jù)、啟動(dòng)定時(shí)器操作,程序如下VOIDBACKUP/倒退PLAYSNDS_DCZY,3/語音提示P_IOB_DATA0X0200/倒退P_INT_MASK|0X0004/開2HZ中斷_ASM“INTFIQ,IRQ“/允許總中斷UITIMECONT0/清定時(shí)器左轉(zhuǎn)由小車的結(jié)構(gòu)原理分析和驅(qū)動(dòng)電路分析知小車左轉(zhuǎn)需要兩個(gè)條件1前輪左偏2后輪前進(jìn),這時(shí)對應(yīng)的I/O狀態(tài)為IOB8、IOB10為高電平,中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第33頁共38頁IOB9、IOB11為低電平。左轉(zhuǎn)子程序包括語音提示、置端口數(shù)據(jù)、啟動(dòng)定時(shí)器操作,該部分程序如下VOIDTURNLEFT/左轉(zhuǎn)PLAYSNDS_GJG,3/播放提示音P_IOB_DATA0X0900/前輪右偏DELAY/延時(shí)P_IOB_DATA0X0500/前輪左偏P_INT_MASK|0X0004/開2HZ中斷_ASM“INTFIQ,IRQ“/允許總中斷UITIMECONT0/清定時(shí)器注在左轉(zhuǎn)之前首先讓前輪右偏,然后再讓前輪朝左偏,這樣前輪的擺動(dòng)范圍更大,慣性更大,擺幅也最大,能更好實(shí)現(xiàn)轉(zhuǎn)彎。右轉(zhuǎn)由小車的結(jié)構(gòu)原理分析和驅(qū)動(dòng)電路分析知小車右轉(zhuǎn)需要兩個(gè)條件1前輪右偏2后輪前進(jìn),這時(shí)對應(yīng)的I/O狀態(tài)為IOB8、IOB11為高電平,IOB9、IOB10為低電平。右轉(zhuǎn)子程序包括語音提示、置端口數(shù)據(jù)、啟動(dòng)定時(shí)器操作,該部分程序如下VOIDTURNRIGHT/右轉(zhuǎn)PLAYSNDS_GJG,3/播放語音提示P_IOB_DATA0X0500/前輪左偏DELAY/延時(shí)P_IOB_DATA0X0900/前輪右偏P_INT_MASK|0X0004/開2HZ中斷_ASM“INTFIQ,IRQ“/允許總中斷UITIMECONT0/清定時(shí)器中北大學(xué)2007屆畢業(yè)設(shè)計(jì)說明書第34頁共38頁注在右轉(zhuǎn)之前首先讓前輪左偏,然后再讓前輪朝右偏,這樣前輪的擺動(dòng)范圍更大,慣性更大,擺幅也最大,能更好實(shí)現(xiàn)轉(zhuǎn)彎。615中斷子程序雖然已經(jīng)有了前進(jìn)、后退以及停車(通過直接呼叫小車的名字使其停車)等語音控制指令,但是考慮環(huán)境的干擾因素,小車運(yùn)行時(shí)的噪音影響和有效距離的限制,小車運(yùn)行后可能接收不到語音指令而一直運(yùn)行。為了防止出現(xiàn)這種情況,加入了時(shí)間控制,在啟動(dòng)小車運(yùn)行的同時(shí)啟動(dòng)定時(shí)器,定時(shí)器時(shí)間到停止小車的運(yùn)行,該定時(shí)器借助于2HZ時(shí)基中斷完成,圖65所示為該程序的流程圖。可以在程序中修改UITIMESET參數(shù)來控制運(yùn)行時(shí)間,當(dāng)UITIMESET2時(shí),運(yùn)行時(shí)間為1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論