《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于16位微控制器的小車語音控制系統(tǒng)
基于16位微控制器的小車語音控制系統(tǒng)
摘要: SPCE061A是一款16位微控制器,,其高速的處理和特殊的內(nèi)核結(jié)構(gòu)使它能夠非常快速地處理復(fù)雜的數(shù)字信號,同時其內(nèi)嵌32KB的FLASH ROM和2KB的SRAM能夠存儲所需的數(shù)據(jù)和程序,,特別是其所提供的語音識別函數(shù)可供方便地進(jìn)行調(diào)用,,不需要過多地考慮語音算法,,為語音識別設(shè)計帶來了很大的方便,。本文選用SPCE061A作為該系統(tǒng)的控制核心,系統(tǒng)硬件結(jié)構(gòu)如圖1所示,。
Abstract:
Key words :
  SPCE061A是一款16位微控制器,,其高速的處理和特殊的內(nèi)核結(jié)構(gòu)使它能夠非常快速地處理復(fù)雜的數(shù)字信號,,同時其內(nèi)嵌32KB的FLASH ROM和2KB的SRAM能夠存儲所需的數(shù)據(jù)和程序,,特別是其所提供的語音識別函數(shù)可供方便地進(jìn)行調(diào)用,不需要過多地考慮語音算法,,為語音識別設(shè)計帶來了很大的方便,。本文選用SPCE061A作為該系統(tǒng)的控制核心,系統(tǒng)硬件結(jié)構(gòu)如圖1所示,。

小車<a class=語音控制系統(tǒng)硬件結(jié)構(gòu)圖" height:="" src="http://files.chinaaet.com/images/20110905/7719471a-83ce-4f0e-82e6-6dc9e488e318.jpg" />

圖1 系統(tǒng)硬件結(jié)構(gòu)圖

  方案論證

  主控模塊和語音處理模塊的選擇

  較MCS-51系列單片機(jī)而言,, SPCE061A單片機(jī)內(nèi)部集成有32KB的ROM、2KB的SRAM,,更能滿足軟件對空間的要求,,且不需要擴(kuò)展相關(guān)存儲器。另外,,該類單片機(jī)完全支持C語言,,軟件編寫比較方便,語音處理模塊采用凌陽的語音壓縮算法,,也用軟件來實(shí)現(xiàn),。該單片機(jī)內(nèi)部集成有A/D、D/A轉(zhuǎn)換功能,,方便實(shí)現(xiàn)語音錄放功能,。

  電機(jī)模塊的選擇

  電機(jī)模塊選擇直流電機(jī)。與步進(jìn)電機(jī)相比較而言,,直流電機(jī)具有轉(zhuǎn)速快,、控制方便等特點(diǎn),更能夠滿足小車較高速行駛情況的要求,,如圖2所示。

電機(jī)控制模塊原理圖

圖2 電機(jī)控制模塊原理圖

  測路程方案的選擇

  本文利用紅外對管來實(shí)現(xiàn)對小車的路程測量,。在小車的車輪轉(zhuǎn)軸上安裝一個不透光轉(zhuǎn)盤,,在轉(zhuǎn)盤邊緣均勻地打N個孔,當(dāng)紅外發(fā)射管發(fā)射的紅外光經(jīng)小孔照射到接收管時,,接收管的反向端電平將發(fā)生變化,,單片機(jī)通過檢測這種電平的變化便可以自行計算出小車的運(yùn)行路程,。紅外對管還具有體積較小、安裝較霍爾傳感器更方便,、成本低等特點(diǎn),。

  系統(tǒng)硬件結(jié)構(gòu)

  語音控制小車的系統(tǒng)硬件結(jié)構(gòu)主要由兩部分組成:一部分是SPCE061A精簡開發(fā)板,另外一部分是電機(jī)控制板,。SPCE061A精簡開發(fā)板為系統(tǒng)主控模塊,,電機(jī)控制板則驅(qū)動小車的前后兩個電機(jī)按系統(tǒng)的要求工作。

  小車控制板主要包括接口模塊,、電機(jī)控制模塊,、預(yù)留傳感器接口以及電源模塊等幾部分。其中,,電源模塊采用集成穩(wěn)壓芯片 L7805,,在輸出端(控制板的JP11)并接了一個470μF的去耦電容和一個 0.1μF的濾波電容,增強(qiáng)了系統(tǒng)電壓的穩(wěn)定性和抗干擾性能,。

  電機(jī)控制模塊是整個控制板的核心部分,,其根據(jù)61板的具體輸出信號啟動或停止相應(yīng)的電機(jī),并調(diào)整電機(jī)的正反轉(zhuǎn)方向,,實(shí)現(xiàn)小車的前進(jìn),、倒退等功能。后電機(jī)的控制電路包括方向控制和速度控制兩個單元,,前電機(jī)的控制電路則只有方向控制單元,。控制單元負(fù)責(zé)小車電機(jī)的正轉(zhuǎn),、反轉(zhuǎn)和停止三態(tài)控制,。速度控制單元是擴(kuò)展單元,以適應(yīng)不同的場合需求,。

  紅外對管測小車運(yùn)行路程部分的原理圖如圖3所示,。

紅外對管電路原理圖

圖3 紅外對管電路原理圖

  紅外發(fā)光管D2和接收管U4安裝在同一水平線上,發(fā)射管D2一直處于發(fā)射工作狀態(tài),。當(dāng)D2和U4間沒有被擋住,,即D2發(fā)射的紅外線照射在U4上時,U4的2腳和3腳導(dǎo)通,,同時2腳和1腳也導(dǎo)通,,此時晶體管Q1的基極電壓為Ub=VDD×R12/(R12R10),Q1導(dǎo)通,,SPEED端近似于接地,,呈低電平狀態(tài)。當(dāng)D2和U4間被擋住時,即D2發(fā)射的紅外線不能照射在U4上時,,U4的2腳和3腳截止,,同時2腳和1腳也截止,此時Q1的基極經(jīng)電阻R12和R10接地,,即基極電壓為0V,,此時Q1截止,SPEED端經(jīng)電阻R11接到VDD,,呈高電平狀態(tài),。單片機(jī)通過檢測這種高低電平的變化來實(shí)現(xiàn)小車的路程測量。

  軟件部分

  主程序流程

  小車的主程序流程圖如圖4所示,,主要分為四部分:初始化部分,、訓(xùn)練部分、識別部分和重訓(xùn)操作,。

小車語音控制系統(tǒng)程序流程圖

圖4 主程序流程圖

  初始化部分的初始化操作會將SPCE061A單片機(jī)上的IOB13~IOB10設(shè)置為輸出端,,用以控制電機(jī)。將其IOA的低8位IOA0~IOA7設(shè)置為下拉的輸入端,,用來連接按鍵,。

  訓(xùn)練部分完成的工作是建立語音模型。程序一開始會判斷小車是否被訓(xùn)練過,,如果沒有訓(xùn)練過,,系統(tǒng)會要求對其進(jìn)行訓(xùn)練,并且會在訓(xùn)練成功之后將訓(xùn)練的模型存儲到Flash中;如果已經(jīng)訓(xùn)練過則會把存儲在Flash中的模型調(diào)出,,裝載到辨識器中,。

  在識別環(huán)節(jié)當(dāng)中,如果辨識結(jié)果是名字,,直接置待命標(biāo)志,,然后等待動作命令。只有檢測到待命標(biāo)志,,小車才會根據(jù)相應(yīng)的辨識結(jié)果執(zhí)行動作,。如果沒有待命標(biāo)志,即使識別到動作命令也不會執(zhí)行動作,。小車在執(zhí)行完對應(yīng)的命令之后清除待命標(biāo)志,,結(jié)束待命狀態(tài)。

  考慮到有重新訓(xùn)練的需求,,這里設(shè)置了重新訓(xùn)練的按鍵,。程序運(yùn)行時循環(huán)掃描該按鍵,什么時間檢測到此鍵按下,,則將擦除語音模型存儲區(qū)首單元(0xe000)所在的頁,,等待復(fù)位到來,。復(fù)位后,程序重新從頭開始執(zhí)行,,當(dāng)檢測到語音模型存儲區(qū)首地址為0xffff(擦除后的值)時,系統(tǒng)會要求重新對其進(jìn)行訓(xùn)練,。

  FIQ中斷服務(wù)程序

  FIQ中斷服務(wù)程序用來調(diào)用語音辨識子程序,,并對a2000格式的語音進(jìn)行解碼播放。

  調(diào)試及性能分析

  系統(tǒng)的調(diào)試以程序?yàn)橹?。硬件調(diào)試時,,首先檢查電路的焊接是否正確,然后用萬用表測試或通電檢測,。軟件調(diào)試則需要分別進(jìn)行主程序,、FIQ中斷服務(wù)程序、顯示子程序等的編程及調(diào)試,。本程序采用單片機(jī)匯編語言編寫,,用KEIL uVision2編譯器編程調(diào)試。軟件調(diào)試直到語音能夠控制小車的行駛狀態(tài),,并顯示出小車的行駛距離等功能為止,。

  結(jié)語

  本文設(shè)計的語音控制系統(tǒng)主要采用16位單片機(jī)SPCE061A來實(shí)現(xiàn)。軟件編程則是采用C語言和匯編語言的混合編程來實(shí)現(xiàn)的,,集兩種語言的優(yōu)點(diǎn)于一體,,實(shí)現(xiàn)對硬件的實(shí)時控制。通過實(shí)驗(yàn)驗(yàn)證,,該語音控制系統(tǒng)主要可實(shí)現(xiàn)以下功能:

  (1)可以通過語音命令來控制小車的行駛狀態(tài),,實(shí)現(xiàn)前進(jìn)、后退,、左轉(zhuǎn),、右轉(zhuǎn)等功能;

  (2)顯示小車的運(yùn)行時間以及運(yùn)行路程;

  (3)可以擴(kuò)展控制板的調(diào)速環(huán)節(jié),利用系統(tǒng)的PWM資源,,實(shí)現(xiàn)小車的PWM調(diào)速;

  (4)預(yù)留多路開關(guān)型傳感器接口,,可以自行安裝各類傳感器,配合程序?qū)崿F(xiàn)小車的循跡,、避障等功能,。



 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。