引言
語(yǔ)音控制系統(tǒng)是一種智能化系統(tǒng),,目前國(guó)內(nèi)較成型的語(yǔ)音控制產(chǎn)品還不多,因此,,進(jìn)行這方面的研究是很有意義的,。
SPCE061A是一款16位微控制器,其高速的處理和特殊的內(nèi)核結(jié)構(gòu)使它能夠非??焖俚靥幚韽?fù)雜的數(shù)字信號(hào),,同時(shí)其內(nèi)嵌32KB的FLASHROM和2KB的SRAM能夠存儲(chǔ)所需的數(shù)據(jù)和程序,特別是其所提供的語(yǔ)音識(shí)別函數(shù)可供方便地進(jìn)行調(diào)用,,不需要過(guò)多地考慮語(yǔ)音算法,,為語(yǔ)音識(shí)別設(shè)計(jì)帶來(lái)了很大的方便。本文選用SPCE061A作為該系統(tǒng)的控制核心,,系統(tǒng)硬件結(jié)構(gòu)如圖1所示,。
圖1系統(tǒng)硬件結(jié)構(gòu)圖
方案論證
主控模塊和語(yǔ)音處理模塊的選擇
較MCS-51系列單片機(jī)而言,SPCE061A單片機(jī)內(nèi)部集成有32KB的ROM,、2KB的SRAM,,更能滿足軟件對(duì)空間的要求,且不需要擴(kuò)展相關(guān)存儲(chǔ)器,。另外,,該類(lèi)單片機(jī)完全支持C語(yǔ)言,軟件編寫(xiě)比較方便,,語(yǔ)音處理模塊采用凌陽(yáng)的語(yǔ)音壓縮算法,,也用軟件來(lái)實(shí)現(xiàn)。該單片機(jī)內(nèi)部集成有A/D,、D/A轉(zhuǎn)換功能,,方便實(shí)現(xiàn)語(yǔ)音錄放功能。
電機(jī)模塊的選擇
電機(jī)模塊選擇直流電機(jī),。與步進(jìn)電機(jī)相比較而言,,直流電機(jī)具有轉(zhuǎn)速快、控制方便等特點(diǎn),,更能夠滿足小車(chē)較高速行駛情況的要求,,如圖2所示,。
圖2電機(jī)控制模塊原理圖
測(cè)路程方案的選擇
本文利用紅外對(duì)管來(lái)實(shí)現(xiàn)對(duì)小車(chē)的路程測(cè)量。在小車(chē)的車(chē)輪轉(zhuǎn)軸上安裝一個(gè)不透光轉(zhuǎn)盤(pán),,在轉(zhuǎn)盤(pán)邊緣均勻地打N個(gè)孔,,當(dāng)紅外發(fā)射管發(fā)射的紅外光經(jīng)小孔照射到接收管時(shí),接收管的反向端電平將發(fā)生變化,,單片機(jī)通過(guò)檢測(cè)這種電平的變化便可以自行計(jì)算出小車(chē)的運(yùn)行路程,。紅外對(duì)管還具有體積較小、安裝較霍爾傳感器更方便,、成本低等特點(diǎn),。
系統(tǒng)硬件結(jié)構(gòu)
語(yǔ)音控制小車(chē)的系統(tǒng)硬件結(jié)構(gòu)主要由兩部分組成:一部分是SPCE061A精簡(jiǎn)開(kāi)發(fā)板,另外一部分是電機(jī)控制板,。SPCE061A精簡(jiǎn)開(kāi)發(fā)板為系統(tǒng)主控模塊,,電機(jī)控制板則驅(qū)動(dòng)小車(chē)的前后兩個(gè)電機(jī)按系統(tǒng)的要求工作。
小車(chē)控制板主要包括接口模塊,、電機(jī)控制模塊,、預(yù)留傳感器接口以及電源模塊等幾部分,。其中,,電源模塊采用集成穩(wěn)壓芯片L7805,在輸出端(控制板的JP11)并接了一個(gè)470μF的去耦電容和一個(gè)0.1μF的濾波電容,,增強(qiáng)了系統(tǒng)電壓的穩(wěn)定性和抗干擾性能,。
電機(jī)控制模塊是整個(gè)控制板的核心部分,其根據(jù)61板的具體輸出信號(hào)啟動(dòng)或停止相應(yīng)的電機(jī),,并調(diào)整電機(jī)的正反轉(zhuǎn)方向,,實(shí)現(xiàn)小車(chē)的前進(jìn)、倒退等功能,。后電機(jī)的控制電路包括方向控制和速度控制兩個(gè)單元,,前電機(jī)的控制電路則只有方向控制單元??刂茊卧?fù)責(zé)小車(chē)電機(jī)的正轉(zhuǎn),、反轉(zhuǎn)和停止三態(tài)控制。速度控制單元是擴(kuò)展單元,,以適應(yīng)不同的場(chǎng)合需求,。
紅外對(duì)管測(cè)小車(chē)運(yùn)行路程部分的原理圖如圖3所示。
圖3紅外對(duì)管電路原理圖
紅外發(fā)光管D2和接收管U4安裝在同一水平線上,,發(fā)射管D2一直處于發(fā)射工作狀態(tài),。當(dāng)D2和U4間沒(méi)有被擋住,即D2發(fā)射的紅外線照射在U4上時(shí),,U4的2腳和3腳導(dǎo)通,,同時(shí)2腳和1腳也導(dǎo)通,,此時(shí)晶體管Q1的基極電壓為Ub=VDD×R12/(R12+R10),Q1導(dǎo)通,,SPEED端近似于接地,,呈低電平狀態(tài)。當(dāng)D2和U4間被擋住時(shí),,即D2發(fā)射的紅外線不能照射在U4上時(shí),,U4的2腳和3腳截止,同時(shí)2腳和1腳也截止,,此時(shí)Q1的基極經(jīng)電阻R12和R10接地,,即基極電壓為0V,此時(shí)Q1截止,,SPEED端經(jīng)電阻R11接到VDD,,呈高電平狀態(tài)。單片機(jī)通過(guò)檢測(cè)這種高低電平的變化來(lái)實(shí)現(xiàn)小車(chē)的路程測(cè)量,。
軟件部分
主程序流程
小車(chē)的主程序流程圖如圖4所示,,主要分為四部分:初始化部分、訓(xùn)練部分,、識(shí)別部分和重訓(xùn)操作,。
圖4主程序流程圖
初始化部分的初始化操作會(huì)將SPCE061A單片機(jī)上的IOB13~IOB10設(shè)置為輸出端,用以控制電機(jī),。將其IOA的低8位IOA0~IOA7設(shè)置為下拉的輸入端,,用來(lái)連接按鍵。
訓(xùn)練部分完成的工作是建立語(yǔ)音模型,。程序一開(kāi)始會(huì)判斷小車(chē)是否被訓(xùn)練過(guò),,如果沒(méi)有訓(xùn)練過(guò),系統(tǒng)會(huì)要求對(duì)其進(jìn)行訓(xùn)練,,并且會(huì)在訓(xùn)練成功之后將訓(xùn)練的模型存儲(chǔ)到Flash中,;如果已經(jīng)訓(xùn)練過(guò)則會(huì)把存儲(chǔ)在Flash中的模型調(diào)出,裝載到辨識(shí)器中,。
在識(shí)別環(huán)節(jié)當(dāng)中,,如果辨識(shí)結(jié)果是名字,直接置待命標(biāo)志,,然后等待動(dòng)作命令,。只有檢測(cè)到待命標(biāo)志,小車(chē)才會(huì)根據(jù)相應(yīng)的辨識(shí)結(jié)果執(zhí)行動(dòng)作,。如果沒(méi)有待命標(biāo)志,,即使識(shí)別到動(dòng)作命令也不會(huì)執(zhí)行動(dòng)作。小車(chē)在執(zhí)行完對(duì)應(yīng)的命令之后清除待命標(biāo)志,,結(jié)束待命狀態(tài),。
考慮到有重新訓(xùn)練的需求,,這里設(shè)置了重新訓(xùn)練的按鍵。程序運(yùn)行時(shí)循環(huán)掃描該按鍵,,什么時(shí)間檢測(cè)到此鍵按下,,則將擦除語(yǔ)音模型存儲(chǔ)區(qū)首單元(0xe000)所在的頁(yè),等待復(fù)位到來(lái),。復(fù)位后,,程序重新從頭開(kāi)始執(zhí)行,當(dāng)檢測(cè)到語(yǔ)音模型存儲(chǔ)區(qū)首地址為0xffff(擦除后的值)時(shí),,系統(tǒng)會(huì)要求重新對(duì)其進(jìn)行訓(xùn)練,。
FIQ中斷服務(wù)程序
FIQ中斷服務(wù)程序用來(lái)調(diào)用語(yǔ)音辨識(shí)子程序,并對(duì)a2000格式的語(yǔ)音進(jìn)行解碼播放,。
調(diào)試及性能分析
系統(tǒng)的調(diào)試以程序?yàn)橹?。硬件調(diào)試時(shí),首先檢查電路的焊接是否正確,,然后用萬(wàn)用表測(cè)試或通電檢測(cè),。軟件調(diào)試則需要分別進(jìn)行主程序、FIQ中斷服務(wù)程序,、顯示子程序等的編程及調(diào)試,。本程序采用單片機(jī)匯編語(yǔ)言編寫(xiě),用KEILuVision2編譯器編程調(diào)試,。軟件調(diào)試直到語(yǔ)音能夠控制小車(chē)的行駛狀態(tài),,并顯示出小車(chē)的行駛距離等功能為止。
結(jié)語(yǔ)
本文設(shè)計(jì)的語(yǔ)音控制系統(tǒng)主要采用16位單片機(jī)SPCE061A來(lái)實(shí)現(xiàn),。軟件編程則是采用C語(yǔ)言和匯編語(yǔ)言的混合編程來(lái)實(shí)現(xiàn)的,集兩種語(yǔ)言的優(yōu)點(diǎn)于一體,,實(shí)現(xiàn)對(duì)硬件的實(shí)時(shí)控制,。通過(guò)實(shí)驗(yàn)驗(yàn)證,該語(yǔ)音控制系統(tǒng)主要可實(shí)現(xiàn)以下功能:
(1)可以通過(guò)語(yǔ)音命令來(lái)控制小車(chē)的行駛狀態(tài),,實(shí)現(xiàn)前進(jìn),、后退、左轉(zhuǎn),、右轉(zhuǎn)等功能,;
(2)顯示小車(chē)的運(yùn)行時(shí)間以及運(yùn)行路程;
(3)可以擴(kuò)展控制板的調(diào)速環(huán)節(jié),,利用系統(tǒng)的PWM資源,,實(shí)現(xiàn)小車(chē)的PWM調(diào)速;
(4)預(yù)留多路開(kāi)關(guān)型傳感器接口,,可以自行安裝各類(lèi)傳感器,,配合程序?qū)崿F(xiàn)小車(chē)的循跡,、避障等功能。
參考文獻(xiàn)
1.李晶皎.嵌入式語(yǔ)音技術(shù)及凌陽(yáng)16位單片機(jī)應(yīng)用[M].北京:北京航空航天大學(xué)出版社,,2003:6-8
2.劉科斌,,韓佳玲,李國(guó)賓.監(jiān)控系統(tǒng)的語(yǔ)音識(shí)別與語(yǔ)音提示[J].遼寧師專(zhuān)學(xué)報(bào),,2002,,4(3):19-20
3.馬忠梅,籍順心等.單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社.2004
4.ASimpleIntelligentElectricalCarBasedonSCM.電子技術(shù)[J].2004(04)
5.熊慶國(guó).新型16位單片機(jī)SPCE061A及應(yīng)用展望[J].現(xiàn)代電子技術(shù),2003(8):55-56,,59