2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩61頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  基于單片機的語音控制小車設計</p><p><b>  摘要</b></p><p>  隨著電子工業(yè)的發(fā)展,具有語音控制功能的小車越來越受到人們的青睞,在人們的日常消費生活中起著不可忽視的作用。目前,聲控技術已在很多領域得到使用。</p><p>  本文對語音控制功能的小車概況做了闡述。在硬件設計方面,本論文以凌陽公

2、司的SPCE061A單片機為控制核心,以語音小車控制電路板為輔,設計小車的動作。完成了電源電路、復位電路、鍵盤電路、音頻輸入電路,音頻輸出電路和無線控制電路等硬件功能模塊的設計。在軟件方面,利用C語言進行編程,進行語音的“訓練”和“識別”。設計出具有如下功能的語音聲控小車:能夠根據(jù)錄制的語音命令來控制小車的前進,后退,左轉(zhuǎn),右轉(zhuǎn)的功能。測試表明,在環(huán)境背景噪音不太大,控制者的發(fā)音清晰的前提下,語音控制小車的語音識別系統(tǒng)能對特定的語音指令

3、做出智能反應,做出預想中的有限的動作。</p><p>  論文首先對系統(tǒng)的方案進行論證,然后對各單元的軟件、硬件工作原理進行了闡述,并介紹了系統(tǒng)的主要組成部分情況。</p><p>  關鍵詞:SPCE061A,語音識別,全橋驅(qū)動,小車</p><p>  Voice control car design based on single chip microcom

4、puter</p><p><b>  Abstract</b></p><p>  With the development of the electronics industry, the voice - the control car become more and more popular to people. And it plays an importan

5、t role in people 's daily life. At present, the voice - activated technology has had 2 in many fields, For example, voice - activated phone. Only if you called out the names you want and it automatically called to th

6、e telephone. </p><p>  This article gives a detail to the voice-activated car. In hardware design, the paper use Sunplus SPCE061A as the control of core. On the software, we use C language programming for vo

7、ice "training"and"recognition". .Completedthepowercircuit,resetcircuit,keyboardcircuitry,audioinputcircuits,audiooutputcircuitandcontrolcircuitofwirelesshardwaresuchasthedesignoffunctionmodules.It has

8、 the following features: According to recorded the voice command to control the car to start, stop,turn right , and </p><p>  First of all, cca shut confirm the system of the program, and then describe the u

9、nit 's software and hardware as well as introduce the main components of the situation.</p><p>  Key words: SPCE061A,Speech Recognition,F(xiàn)ull-bridge ,driver,Trolley</p><p><b>  目 錄</

10、b></p><p><b>  摘要I</b></p><p>  AbstractII</p><p>  第1章 緒 論- 1 -</p><p>  1.1 選題的目的和意義- 1 -</p><p>  1.1.1選題目的- 1 -</p><p&

11、gt;  1.1.2.選題意義- 1 -</p><p>  1.2 語音小車的發(fā)展及現(xiàn)狀- 1 -</p><p>  1.3 課題的目的任務和要求- 2 -</p><p>  第2章 語音小車的方案論證- 3 -</p><p>  2.1 語音控制方案- 3 -</p><p>  2.2 方

12、案論證- 4 -</p><p>  2.2.1 采用DSP+FPGA方案- 4 -</p><p>  2.2.2采用MCS-51方案- 4 -</p><p>  2.2.3 采用凌陽61方案- 5 -</p><p>  2.3 系統(tǒng)控制方案- 6 -</p><p>  第3章 系統(tǒng)硬件設計- 9

13、 -</p><p>  3.1 系統(tǒng)硬件總體設計- 9 -</p><p>  3.2 系統(tǒng)各單元設計- 10 -</p><p>  3.2.1 控制單元設計- 10 -</p><p>  3.2.2 動力單元設計- 15 -</p><p>  3.2.3 音頻單元設計- 16 -</

14、p><p>  3.2.4 小車單元設計- 19 -</p><p>  3.3 系統(tǒng)總體電路圖- 26 -</p><p>  第4章 系統(tǒng)軟件設計- 27 -</p><p>  4.1 系統(tǒng)總體程序設計- 27 -</p><p>  4.2 系統(tǒng)各分支設計- 28 -</p><

15、;p>  4.2.1訓練子程序- 28 -</p><p>  4.2.2語音識別子程序- 29 -</p><p>  4.2.3動作子程序- 31 -</p><p>  4.2.4中斷子程序- 34 -</p><p>  第5章 系統(tǒng)調(diào)試- 37 -</p><p>  5.1 硬件調(diào)試-

16、37 -</p><p>  5.2 軟件調(diào)試- 38 -</p><p>  5.3 系統(tǒng)聯(lián)調(diào)- 39 -</p><p>  結(jié) 論- 41 -</p><p>  參考文獻- 43 -</p><p>  致 謝- 45 -</p><p>  附 錄- 47 -</

17、p><p><b>  第1章 緒 論</b></p><p>  1.1 選題的目的和意義</p><p><b>  1.1.1選題目的</b></p><p>  通過設計一個用單片機控制的語音小車來熟悉模塊化編程方法,掌握C語言匯編語言的程序設計和調(diào)試方法,并理解單片機的原理、結(jié)構(gòu)、指令;運

18、行模式及應用方法。</p><p>  1.1.2.選題意義</p><p>  語音識別系統(tǒng)的實用化研究是語音識別研究的一個主要方向。以玩具市場為例,具有高科技含量的電子玩具、智能玩具發(fā)展迅猛,電子互動式、智能化玩具已經(jīng)成為玩具行業(yè)發(fā)展的主流。我國是玩具生產(chǎn)和出口大國,但在高科技玩具的發(fā)展方面和國外的差距很大,因此,及時投入精力廣泛開展這方面的研究,無論對技術創(chuàng)新應用,還是社會經(jīng)濟發(fā)展,

19、都有巨大的現(xiàn)實意義。與機器進行語音交流,讓機器明白你說什么,這是人們長期以來夢寐以求的事情。語音識別技術就是讓機器通過識別和理解過程把語音信號轉(zhuǎn)變?yōu)橄鄳奈谋净蛎畹母呒夹g。近二十年來,語音識別技術取得顯著進步,開始從實驗室走向市場。語音識別功能大大增加了玩具使用的樂趣,并使玩具體現(xiàn)出一定的智能性,因此成為大部分電子玩具、智能玩具設計中使用的關鍵技術。本文利用凌陽單片機設計一個具有語音識別功能的智能遙控小車。該設計將遙控車由傳統(tǒng)的手動遙

20、控改成了語音識別遙控,集成了先進的語音識別技術,加上小車的機動靈活的特點,使控制者可以通過語音控制小車實現(xiàn)預設動作,從而釋放控制者的雙手,而且小車和控制者之間還具有一定的交互功能。所以此次研究具有較強的實用性和發(fā)展前景。</p><p>  1.2 語音小車的發(fā)展及現(xiàn)狀</p><p>  隨著微電子技術、計算機技術、及傳感器技術的迅速發(fā)展,現(xiàn)今聲控技術已經(jīng)應用到社會中的各個角落,為人們

21、提供著各種便利。</p><p>  1、聲控玩具車:進一步提高系統(tǒng)的濾噪性能,和識別的準確率,并利用已有的軟件開發(fā)出獨具特色的語音芯片,并將其集成在遙控上即可做出聲控玩具車。</p><p>  2、能識別主人的看門狗:在本系統(tǒng)的基礎上擴充對說話者的識別功能,并將軟件硬件化,集成在芯片上。將芯片置于防盜門上,使之可以完成主人叫門即開門的功能。</p><p>  

22、3、真實汽車上的聲控系統(tǒng):在駕駛的過程中,不便于用手來完成的其它操作可以用聲控系統(tǒng)來實現(xiàn)。這于我們的系統(tǒng)是極其相似的。但是實際的汽車中可能存在著大量的噪聲,所以,濾噪便成為最為關鍵的技術。</p><p>  聲控技術雖然是一項比較先進的技術。但是,聲控技術在無限傳輸時的合成的質(zhì)量不是很好,它還需進一步提高,因為無線環(huán)境中的背景噪音太大了,當然還有其他方面的因素影響著聲控功能的發(fā)揮,具體來說表現(xiàn)在以下幾個方面:&

23、lt;/p><p>  1 、時效型。從發(fā)出指令到執(zhí)行指令,有一段延遲時間,雖已降低到盡可能的小,但還是很明顯。可行的方法就是改用高效的DSP芯片,這在經(jīng)費上和時間上都是不允許的。</p><p>  2.、對環(huán)境的適應。如果環(huán)境噪聲很大,或偶爾出現(xiàn)較大的噪聲,則會出現(xiàn)誤識。這個不足之處還沒有很有效的解決方案。</p><p>  3、多人識別。各人的發(fā)音不盡相同,因此

24、該系統(tǒng)還限于單人識別。若要做多人識別,則識別的時效性會降低,即有很大的延遲。另外,多人識別,也沒有較為有效、成熟的算法供參考。</p><p>  1.3 課題的目的任務和要求</p><p>  聲控小車其技術要求是通過相關語音對小車進行操作控制。使用了“前、后、左、右、?!蔽鍌€字作為小車行駛的指令。本畢業(yè)設計有助于培養(yǎng)我們的獨立動手能力、思考能力。具體的項目制作過程分為兩部分:軟件部

25、分和硬件部分。其目的讓我們熟悉61板的設計與制作,并掌握其原理;學會運用C語言進行編程且運用。</p><p>  語音控制小車的主要功能: </p><p>  1. 可以通過簡單的I/O操作實現(xiàn)小車的前進、后退、左轉(zhuǎn)、右轉(zhuǎn)功能; </p><p>  2. 配合SPCE061A的語音特色,利用系統(tǒng)的語音播放和語音識別資源,實現(xiàn)語音控制的功能; </p&

26、gt;<p>  3. 可以在行走過程中聲控改變小車運動狀態(tài); </p><p>  4. 在超出語音控制范圍時能夠自動停車。</p><p>  第2章 語音小車的方案論證</p><p>  2.1 語音控制方案</p><p><b>  2.1.1基本原理</b></p><

27、;p>  機器語音識別、處理的過程與人對語音識別、理解過程基本上是一致的,目前主流的語音識別技術是基于統(tǒng)計模式識別的基本理論。一個完整的語音識別系統(tǒng)可大致分為語音特征提取、聲學模型與模式匹配(識別算法)和語義理解3部分。其基本原理如圖2.1所示。</p><p>  圖2.1語音識別系統(tǒng)原理框圖</p><p>  從圖中我們可以看出語音識別一般分為2個步驟:第一步是系統(tǒng)“學習”或“

28、訓練”階段,這一個階段的任務是建立識別基本單元的聲學模型以及進行文法分析的語言模型,即構(gòu)建參考模式庫;第二步是“識別”或“測試”階段,根據(jù)識別系統(tǒng)的類型選擇能夠滿足要求的識別方法,采用語音分析方法分析出這種識別方法所要求的語音特征參數(shù),按照一定的準則和測度與參考模式庫中的模型進行比較,通過判決得出結(jié)果。</p><p>  2.1.2語音識別系統(tǒng)的構(gòu)成</p><p>  語音識別系統(tǒng)的基

29、本結(jié)構(gòu)主要包括預處理、A /D轉(zhuǎn)換、起止點識別、特征提取和識別判斷等部分, 結(jié)構(gòu)如下圖2.2所示。</p><p>  圖2.2語音識別系統(tǒng)的基本結(jié)構(gòu)</p><p><b>  2.2 方案論證</b></p><p>  2.2.1 采用DSP+FPGA方案</p><p>  語音識別根據(jù)實際需要和應用場合的不同

30、,可以分為孤立詞識別和連續(xù)語音識別、特定人識別和非特定人識別。語音識別追求的主要指標為高識別率、實時性和大詞匯量;而對于一個語音識別系統(tǒng),還應考慮軟硬件設計簡單、價格低廉、外圍控制靈活、人機交互便捷等特點?,F(xiàn)在應用于語音識別的芯片主要為DSP(數(shù)字信號處理器)芯片:如TI公司的TMS320系列。然而, 將DSP 芯片用于小型語音識別系統(tǒng)中, 其不足之處是很明顯的:引腳多、 價格貴、 使用繁瑣;控制功能弱,常需要與單片機或FPGA (現(xiàn)場

31、可編程門陣列)結(jié)合, 來實現(xiàn)人機交互; 常需要外接A /D 轉(zhuǎn)換芯片;引腳為3. 3 V,與單片機、FPGA、F lash 存儲器等連接時,要考慮電平匹配。這些將使整個系統(tǒng)結(jié)構(gòu)龐大,設計繁瑣。</p><p>  2.2.2采用MCS-51方案</p><p>  采用 MCS-51 系列單片機實現(xiàn),由于有語音識別和語音播放功能,所以需要擴展語音識別模塊和語音播放模塊,這樣必然造成端口的資

32、源緊張,所以還必須加入接口擴展芯片。該實現(xiàn)方案結(jié)構(gòu)如圖 2.3 所示。</p><p>  圖2.3采用 MCS-51 系列單片機實現(xiàn)語音控制小車</p><p>  2.2.3 采用凌陽61方案</p><p>  SPCE061A是凌陽科技推出的一個16位結(jié)構(gòu)的微控制器。CPU時鐘頻率為0.32~49.152 MHz,具有較高的處理速度,可使μ’n SPTM能夠

33、非常容易、快速地處理復雜的數(shù)字信號;擁有可編程音頻處理;內(nèi)置2 K Word的SRAM和32 K Word的FLASH;2個16位可編程定時器/計數(shù)器(可自動預置初始計數(shù)值),2個10位DAC輸出通道,32位通用可編程輸入/輸出端口。它是數(shù)字語音識別應用領域產(chǎn)品中的一種比較經(jīng)濟的選擇。</p><p>  圖2.4基于SPCE061A的語音控制小車實現(xiàn)方案</p><p>  本案采用采用

34、SPCE061A實現(xiàn)語音控制小車方案。</p><p>  系統(tǒng)結(jié)構(gòu)框圖2.5如下:</p><p><b>  圖2.5結(jié)構(gòu)系統(tǒng)圖</b></p><p>  系統(tǒng)組成主要包括以下兩部分:SPCE061A精簡開發(fā)板、語音小車控制電路板。 圖中的語音輸入部分MIC_ IN、按鍵輸入KEY、聲音輸出部分的功率放大環(huán)節(jié)等已經(jīng)做到了精簡開發(fā)板——61

35、 板上,為我們使用提供了很大的方便。在電機的驅(qū)動方面,采用全橋驅(qū)動技術,利用四個I/O端口分為兩組分別實現(xiàn)兩個電機的正傳、反轉(zhuǎn)和停三態(tài)運行。</p><p>  2.3 系統(tǒng)控制方案 </p><p>  小車的運動控制采用語音控制和中斷定時控制相結(jié)合,通過語音觸發(fā)小車動作,小車動作之后,隨時可以通過語音指令改變小車的運動狀態(tài)。在每一次動作觸發(fā)的同時啟動定時器,如果小車由于某些原因不能正

36、常的接收語音指令,則只要定時時間到,中斷服務程序會發(fā)出指令讓小車停下來。 </p><p>  第3章 系統(tǒng)硬件設計</p><p>  3.1 系統(tǒng)硬件總體設計</p><p>  系統(tǒng)的硬件方面,由于大部分的功能實現(xiàn)都是在61板上完成的,只有電機控制部分電路另外設計在一塊獨立的電路板上,我們稱之為控制板。下面詳細的介紹小車的結(jié)構(gòu)和運行原理以及控制電路板的結(jié)構(gòu)和

37、功能實現(xiàn)。</p><p>  圖3.1 總體設計框圖</p><p>  圖3.2 系統(tǒng)硬件框圖</p><p>  3.2 系統(tǒng)各單元設計</p><p>  3.2.1 控制單元設計</p><p>  SPCE061A 最小系統(tǒng)中,包括 SPCE061A 芯片及其外圍的基本模塊,其中外圍的基本模塊有:晶振

38、輸入模塊(OSC) 、鎖相環(huán)外圍電路(PLL) 、復位電路(RESET) 、指示燈(LED)等。</p><p>  圖3.3 61板最小系統(tǒng)</p><p>  SPCE061A芯片特性簡介</p><p>  SPCE061A是一種十六位單片機,使用它可以非常方便靈活的實現(xiàn)語音的錄放,該芯片擁有8路10位精度的ADC,其中一路為音頻轉(zhuǎn)換通道,并且內(nèi)置有自動增益電

39、路。這為實現(xiàn)語音錄入提供了方便的硬件條件。兩路10位精度的DAC,只需要外接功放(SPY0030A)即可完成語音的播放。另外十六位單片機具有一套易學易用的指令系統(tǒng)和集成開發(fā)環(huán)境,在此環(huán)境中,它支持標準C語言編程,也支持C語言與匯編語言的互相調(diào)用。另外還提供了語音錄放的庫函數(shù),只要了解庫函數(shù)的使用,就可以很容易的完成語音的錄放、識別等功能,這些都為軟件開發(fā)提供了方便的條件。SPCE061是一款擁有2KRAM、32KFlash、32個I/O

40、口,并集成了AD/DA功能強大的16位微處理器,它還擁有豐富的語音處理功能,為小車的功能擴展提供了相當大的空間。只要按照該單片機的要求對其編制程序就可以實現(xiàn)很多不同的功能。</p><p>  SPCE061A 是繼&micro;’nSP?系列產(chǎn)品SPCE500A等之后凌陽科技推出的又一款16位結(jié)構(gòu)的微控制器。與SPCE500A不同的是,在存儲器資源方面考慮到用戶的較少資源的需求以及便于程序調(diào)試等功能,S

41、PCE061A里只內(nèi)嵌32K字的閃存(FLASH)。較高的處理速度使&micro;’nSP?能夠非常容易地、快速地處理復雜的數(shù)字信號。因此,與SPCE500A相比,以&micro;’nSP?為核心的SPCE061A微控制器是適用于數(shù)字語音識別應用領域產(chǎn)品的一種最經(jīng)濟的選擇。</p><p>  SPCE061A特性: </p><p>  ?16 位μ’nSP 微處理器;

42、</p><p>  ?工作電壓:內(nèi)核工作電壓 VDD為 3.0V~3.6V(CPU),I/O口工作電壓 VDDH為 VDD~5.5V(I/O);</p><p>  ?CPU時鐘:0.32MHz~49.152MHz;</p><p>  ?內(nèi)置 2K字 SRAM;</p><p>  ?內(nèi)置 32K閃存 ROM;</p>

43、<p>  ?可編程音頻處理;</p><p><b>  ?晶體振蕩器;</b></p><p>  ?系統(tǒng)處于備用狀態(tài)下(時鐘處于停止狀態(tài)),耗電小于 2μA@3.6V;</p><p>  ?2 個 16 位可編程定時器/計數(shù)器(可自動預置初始計數(shù)值);</p><p>  ?2 個 1

44、0 位 DAC(數(shù)-模轉(zhuǎn)換)輸出通道;</p><p>  ?32 位通用可編程輸入/輸出端口;</p><p>  ?14 個中斷源可來自定時器 A / B,時基,2 個外部時鐘源輸入,鍵喚醒;</p><p>  ?具備觸鍵喚醒的功能;</p><p>  ?使用凌陽音頻編碼 SACM_S240 方式(2.4K位/秒),能容納 2

45、10 秒的語音數(shù)據(jù);</p><p>  ?鎖相環(huán) PLL 振蕩器提供系統(tǒng)時鐘信號; </p><p>  ?32768Hz 實時時鐘; </p><p>  ?7 通道 10 位電壓模-數(shù)轉(zhuǎn)換器(ADC)和單通道聲音模-數(shù)轉(zhuǎn)換器; </p><p>  ?聲音模-數(shù)轉(zhuǎn)換器輸入通道內(nèi)置麥克風放大器和自動增益控制(AGC)功能; ?具

46、備串行設備接口;</p><p>  ?低電壓復位(LVR)功和低電壓監(jiān)測(LVD)功能; </p><p><b>  ?內(nèi)置在線仿真板</b></p><p>  另外,SPCE061A單片機具有易學易用的效率較高的一套指令系統(tǒng)和集成開發(fā)環(huán)境。在此環(huán)境中,支持標準C語言,可以實現(xiàn)C語言與凌陽匯編語言的互相調(diào)用,并且提供了語音錄放的庫函數(shù)

47、,只要了解庫函數(shù)的使用,就會很容易完成語音錄放,這些都為軟件開發(fā)提供了方便的條件。</p><p>  精簡開發(fā)板——61 板 </p><p>  SPCE061A精簡開發(fā)板(簡稱 61 板,SPCE061A EMU BOARD的簡稱),是以凌陽16 位單片機SPCE061A為核心的精簡開發(fā)-仿真-實驗板,是“凌陽科技大學計劃”專為大學生、電子愛好者等進行電子實習、課程設計、畢業(yè)設計

48、、電子制作及電子競賽所設計的,也可作為單片機項目初期研發(fā)使用。61板”除了具備單片機最小系統(tǒng)電路外,還包括有電源電路、復位電路、ICE 電路、音頻電路(含 MIC 輸入部分和 DAC 音頻輸出部分)等。“61 板”可以采用電池供電。</p><p>  1. SPCE061A功能</p><p>  61板上有調(diào)試器接口(Probe 接口)以及下載線(EZ_Probe)接口,分別可接凌陽科

49、技的在線調(diào)試器、簡易下載線,配合 unSP IDE,可方便地在板上實現(xiàn)程序的下載、在線仿真調(diào)試。</p><p>  圖3.4SPCE061 板硬件框圖</p><p>  表 3.1 框圖說明</p><p>  61 板接口說明如圖3.3所示:</p><p>  2.61 板輸入/輸出(I/O)接口</p><p&g

50、t;  61 板將SPCE061A 的32 個I/O 口IOA0~IOA15,IOB0~IOB15 全部引出,對應的引腳為:A 口,41~48、53、54~60;B 口,5~1、81~76、68~64。而且該I/O 口是可編程的,即可以設置為輸入或輸出。設置為輸入時,分為懸浮輸入或非懸浮輸入。非懸浮輸入又可以設置為上拉輸入或是下拉輸入。在5V 情況下,上拉電阻為150K,下拉電阻為110K;設置為輸出時,可以選擇同向輸出或者反相輸出。&

51、lt;/p><p>  圖3.5 SPCE061 板接口說明圖</p><p>  3.音頻輸入/輸出接口</p><p>  正如我們在前面介紹的 61 板具有強大的語音處理功能,如圖 3.5 所示,X1 是語音的MIC 輸入端,帶自動增益(AGC)控制。J12 和J3 都是語音輸出接口,一個是耳機插孔;另一個是兩針的插針外接喇叭,由DAC 輸出引腳21 或22 經(jīng)語

52、音集成放大器SPY0030 放大,然后輸出。SPY0030 是凌陽的芯片,相當于LM386,但是比386 音質(zhì)好。它可以工作在2.4~6.0V范圍內(nèi),最大輸出功率可達700mW(LM386 必須工作在4V 以上,而且功率只有100mW)。</p><p>  4 在線調(diào)試器(PROBE)和EZ-PROBE 接口.</p><p>  圖3.5中J4 為PROBE 的接口,該接口有5 針,其

53、中兩個分別是地(VSS)和3.3V 電源(VCC)。此接口與PROBE 的5 針接口相連,PROBE 的另一端接PC 機25 針并口。這樣,就不需要再用仿真器和編程器了,只要按如圖3.4所示將其連接好,就可以通過它在PC 機上調(diào)試程序、在線仿真、最后將程序下載到芯片中,完成程序的燒寫。如圖3.5中的J11 是EZ-PROBE 的接口,我們提供一根轉(zhuǎn)接線用作EZ-PROBE 的下載,一端連接PC 機的25 針并口,另外一端連接61 板的5

54、 針 EZ-PROBE 接口,如圖3.6所示:</p><p>  圖 3.6 61、PROBE/連接線、計算機三者之間的連接圖</p><p>  3.2.2 動力單元設計</p><p>  電源部分的電路,由電池盒提供的 4.5V直流電壓經(jīng)過 SPY0029 后產(chǎn)生 3.3V給整個系統(tǒng)供電。SPY0029 是凌陽公司設計的電壓調(diào)整 IC,采用 CMOS 工藝

55、,具有靜態(tài)電流低、驅(qū)動能力強、線性調(diào)整出色等特點,如圖3.7圖中的 VDDH3 為 SPCE061A的 I/O電平參考,如果該點接 SPCE061A(PLCC84 封裝,下面的介紹中當出現(xiàn) SPCE061A的引腳描述時,均指此封裝的芯片)的 51 腳,可使 I/O輸出高電平為 3.3V;VDDP為PLL鎖相環(huán)電源, 接SPCE061A的7腳; VDD和VDDA分別為數(shù)字電源與模擬電源, 分別接SPCE061A的15腳和36腳; AVSS

56、1是模擬地, 接SPCE061A的24腳; VSS是數(shù)字地, 接SPCE061A的38腳; AVSS2接音頻輸出電路的 AVSS2。</p><p>  圖中前后兩組電容用來去耦濾波,使其供給芯片的電源更加干凈平滑。為了獲得標準的3.3V電壓,加入SPY0029A三端穩(wěn)壓器。兩個二極管D3和D4,是為防止誤將電源接反造成不必要損失而設置的,注意在操作過程中千萬不要將電源接反,因為反向電壓超過一定的值,二極管將會

57、被損壞,達不到保護的目的。</p><p>  圖 3.7電源電路圖</p><p>  3.2.3 音頻單元設計</p><p>  音頻電路由音頻輸出和音頻輸入兩部分組成。SPCE061A內(nèi)置 2路10 位精度的 DAC,只需要外接功放電路即可完成語音的播放。圖中的 SPY0030 是凌陽的一款音頻放大芯片,可以工作在 2.4~6V范圍內(nèi),最大輸出功率可達 7

58、00mW。 SPCE061A 芯片中已經(jīng)集成了音頻輸入專用 ADC 以及 AGC 放大電路,因此芯片外部的電路比較簡單。</p><p><b>  圖3.8 音頻電路</b></p><p><b>  音頻輸入部分</b></p><p>  如圖3.9,MICP和MICN將隨著MIC產(chǎn)生的波形變化,并在兩個端口處形成

59、兩路反相的波形,再經(jīng)過兩級運放放大,把放大的語音信號交給ADC轉(zhuǎn)換為數(shù)字量,這個時候就可以通過單片機編程對這些數(shù)據(jù)進行處理,比如說進行語音數(shù)據(jù)壓縮、語音識別等。</p><p>  圖3.9音頻輸入外圍電路</p><p><b>  音頻輸出部分</b></p><p>  SPY0030A是凌陽公司開發(fā)的專門用于語音信號放大的芯片,它的增益

60、為:Gain = 2 * 5000 / ( 5000 + R1 ),如圖 3.10是SPY0030的典型應用電路。</p><p>  圖3.10 SPY0030A工作原理圖</p><p><b>  數(shù)摸轉(zhuǎn)換電路</b></p><p>  凌陽SPCE061A單片機自帶雙通道DAC音頻輸出,DAC1、DAC2轉(zhuǎn)換輸出的模擬量電流信號分別通

61、過AUD1和AUD2管腳輸出,DAC輸出為電流型輸出,所以DAC輸出經(jīng)過SPY0030音頻放大,以驅(qū)動喇叭放音,放大電路(只列出DAC1,DAC2類似),這為單片機的音頻設計提供了極大方便。在它們后面接一個簡單的音頻放大電路和喇叭即可實現(xiàn)語音播報功能。 </p><p>  圖3.11 數(shù)模轉(zhuǎn)換電路</p><p>  按鍵、LED和復位電路</p><p>  此

62、電路主要是對電源和睡眠指示作用以及復位重新訓練小車等作用如3.12圖示。</p><p><b>  圖3.12按鍵電路</b></p><p>  圖3.13 復位電路 圖3.14 LED電路</p><p>  3.6 下載線接口電路和在線調(diào)制電路</p><p>

63、;  此電路主要是下載程序代碼和在線調(diào)試程序,為其那片機提供靈魂。如圖3.15所示。</p><p>  圖3.15下載調(diào)制電路</p><p><b>  MCU連接電路</b></p><p>  微處理電路即其小系統(tǒng)電路如圖3.16所示,也是整個設計的核心部分,此單片機是16位單片機具有強大的處理功能,外部的其它信息由其處理后在傳出,以達

64、到控制效果。</p><p>  圖3.16 微處理器連接圖</p><p>  3.2.4 小車單元設計</p><p>  語音控制小車為四輪結(jié)構(gòu)。其中前面兩個車輪由前輪電機控制,在連桿和支點作用下控制前輪左右擺動,來調(diào)節(jié)小車的前進方向。在自然狀態(tài)下,前輪在彈簧作用下保持中間位置。后面兩個車輪由后輪電機驅(qū)動,為整個小車提供動力。所以又稱前面的輪子為方向輪,后面

65、的兩個輪子為驅(qū)動輪。</p><p><b>  1、小車的行走原理</b></p><p><b>  (1)車體介紹</b></p><p>  語音控制小車為四輪結(jié)構(gòu),如圖 3.17 所示。</p><p>  圖3.17 車體側(cè)視圖</p><p>  其中前面兩個車

66、輪由前輪電機控制,在連桿和支點作用</p><p>  下控制前輪左右擺動,來調(diào)節(jié)小車的前進方向。在自然狀態(tài)下,前輪在彈簧作用下保持中間位置。后面兩個車輪由后輪電機驅(qū)動,為整個小車提供動力。所以又稱前面的輪子為方向輪,后面的兩個輪子為驅(qū)動輪,</p><p>  如圖 3.18所示。</p><p>  圖3.18車體側(cè)視圖</p><p>

67、  (2)小車的行走原理</p><p>  直走:由小車的結(jié)構(gòu)分析,在自然狀態(tài)下,前輪在彈簧作用下保持中間狀態(tài),這是只要后輪電機正轉(zhuǎn)</p><p>  小車就會前進。如圖3.19 所示;</p><p>  圖3.19小車前進原理圖</p><p>  倒車:倒車動作和前進動作剛好相反,前輪電機仍然保持中間狀態(tài),后輪電機反轉(zhuǎn),小車就會向后

68、運動,如圖3.20所示</p><p>  圖3.20小車倒車示意圖</p><p>  左轉(zhuǎn):前輪電機逆時針旋轉(zhuǎn)(規(guī)定為正轉(zhuǎn)),后輪電機正轉(zhuǎn),這時小車就會在前后輪共同作用下朝左</p><p>  側(cè)前進,如圖3.21所示</p><p>  圖3.21小車左轉(zhuǎn)示意圖</p><p>  右轉(zhuǎn):前輪電機反轉(zhuǎn),后輪電機

69、正轉(zhuǎn),這時小車就是會在前后輪共同作用下朝右側(cè)前進,如圖 3.22所示;</p><p>  圖3.22小車右轉(zhuǎn)示意圖</p><p><b>  2、控制板原理圖</b></p><p>  控制板主要包括:接口電路、電源電路和兩路電機的驅(qū)動電路,控制板原理圖如圖 3.23所示。 </p><p>  接口電路:接口電路

70、負責將61板的I/O接口信號傳送給控制電路板,I/O信號主要為控制電機需要的IOB8~IOB11這四路信號,同時為了方便后續(xù)的開發(fā)和完善,預留了IOB12~IOB15以及IOA8~IOA15接口,可以在這些接口上添加一些傳感器。 </p><p>  電源部分:整個小車有4個電源信號:電池電源,控制板工作電源,61板工作電源,61板的I/O輸出電源。系統(tǒng)供電由電池提供,控制板直接采用電池供電(VCC),然后經(jīng)二極

71、管D1后產(chǎn)生61板電源(VCC_61),通過61板的Vio跳線產(chǎn)生61板的端口電源(V1)。 </p><p><b>  二極管D1作用: </b></p><p>  1、降壓,4節(jié)電池提供的電壓VCC最大可達到6V,D1可有效地降壓。 </p><p>  2、保護,D1可以防止電源接反燒壞61板。</p><p>

72、;  圖3.23 控制板原理圖</p><p><b>  3、全橋驅(qū)動原理 </b></p><p>  全橋驅(qū)動又稱 H橋驅(qū)動,下面介紹一下 H橋的工作原理: </p><p>  H橋一共有四個臂,分別為 B1~B4,每個臂由一個開關控制,示例中為三極管 Q1~Q4。如果讓 Q1、Q2 導通 Q3、Q4 關斷,此時電流將會流經(jīng) Q1、負載

73、、Q2 組成的回路,電機正轉(zhuǎn) 如果讓 Q1、Q2 關斷 Q3、Q4 導通,如圖4.16所示,此時電流將會流經(jīng) Q3、負載、Q4 組成的回路,電機反轉(zhuǎn)。如果讓 Q1、Q2 關斷 Q3、Q4 也關斷,負載 Load 兩端懸空,如圖 3.24所示,此時電機停轉(zhuǎn)。這樣就實現(xiàn)了電機的正轉(zhuǎn)、反轉(zhuǎn)、停止三態(tài)控制。如果讓 Q1、Q2 導通 Q3、Q4 也導通,那么電流將會流經(jīng) Q1、Q4 組成的回路以及 Q2和 Q3 組成的回路,如圖3.25所示,這時

74、橋臂上會出現(xiàn)很大的短路電流。在實際應用時注意避免出現(xiàn)橋臂短路的情況,這會給電路帶來很大的危害,嚴重的會燒毀電路。</p><p>  圖3.24 B1~B4 全部停止工作時的H 橋簡圖 圖3.25 B1~B4 全部工作時的 H 橋簡圖</p><p><b>  動力電機驅(qū)動電路 </b></p><p>  動力驅(qū)動由后輪驅(qū)動實現(xiàn),負責小車的

75、直線方向運動,包括前進和后退,后輪驅(qū)動電路是一個全橋驅(qū)動電路,如圖3.26所示:Q1、Q2、Q3、Q4 四個三極管組成四個橋臂,Q1 和 Q4 組成一組,Q2 和Q3 組成一組,Q5 控制 Q2、Q3 的導通與關斷,Q6 控制 Q1 和 Q4 的導通與關斷,而 Q5、Q6 由 IOB9 和 IOB8控制,這樣就可以通過 IOB8 和 IOB9 控制四個橋臂的導通與關斷控制后輪電機的運行狀態(tài),使之正轉(zhuǎn)反轉(zhuǎn)或者停轉(zhuǎn),進而控制小車的前進和后退

76、。</p><p>  圖3.26動力電機驅(qū)動電路圖</p><p>  表3.2小車運行狀態(tài)與端口對照:</p><p>  另外還有一些不常用的運行狀態(tài),比如右后轉(zhuǎn)、左后轉(zhuǎn)等,結(jié)合以上對前輪和后輪的狀態(tài)分析,其端口對照如表 3.3所示:</p><p><b>  表3.3端口對照表</b></p>&

77、lt;p>  注意:為了小車的安全請不要出現(xiàn)以下兩種組合情況:</p><p>  表 3.4 禁止的輸入狀態(tài)列表</p><p>  3.3 系統(tǒng)總體電路圖</p><p>  圖3.27 總體電路圖</p><p>  第4章 系統(tǒng)軟件設計</p><p>  4.1 系統(tǒng)總體程序設計 </p&

78、gt;<p>  系統(tǒng)的總體程序流程如圖 4.1 所示:</p><p>  圖 4.1 系統(tǒng)總體程序流程圖</p><p>  語音識別小車的主程序流程如圖4.1所示,分為四大部分:初始化部分、訓練部分、識別部分、重訓操作。 </p><p>  初始化部分:初始化操作將 IOB8~IOB11 設置為輸出端,用以控制電機。必要時還要有對應的輸入端設置

79、和PWM 端口設置等。 </p><p>  訓練部分:訓練部分完成的工作就是建立語音模型。程序一開始判斷小車是否被訓練過,如果沒有訓練過則要求對其進行訓練,并且會在訓練成功之后將訓練的模型存儲到FLASH,在以后使用時不需要重新訓練;如果已經(jīng)訓練過會把存儲在FLASH 中的模型調(diào)出來裝載到辨識器中。 </p><p>  識別部分:在識別環(huán)節(jié)當中,如果辨識結(jié)果是名字,停止當前的動作并進入

80、待命 狀態(tài),然后等待動作命令。如果辨識結(jié)果為動作指令小車會語音告知相應動作并執(zhí)行該動作,在運動過程中可以通過呼叫小車的名字使小車停下來。 </p><p>  重訓操作:考慮到有重新訓練的需求,設置了重新訓練的按鍵(61 板的KEY3) ,循環(huán)掃描該按鍵,一旦檢測到此鍵按下,則將擦除訓練標志位(0xe000 單元) ,并等待復位。復位后,程序重新執(zhí)行,當檢測到訓練標志位為0xffff時會要求重新對其進行訓練。 &

81、lt;/p><p>  下面詳細介紹以上提到的子程序。</p><p>  4.2 系統(tǒng)各分支設計</p><p>  4.2.1訓練子程序</p><p>  當程序檢測到訓練標志位BS_Flag內(nèi)容為0xffff,就會要求操作者對它進行訓練操作,訓練操作的過程如圖 4.2所示:訓練采用兩次訓練獲取結(jié)果的方式,以訓練名字為例:小車首先會提示:

82、給我取個名字吧, 這時你可以告訴它一個名字 (比如Jack) ; 然后它會提示: 請再說一遍, 這時再次告訴它名字 (Jack) ,如果兩次的聲音差別不大,小車就能夠成功的建立模型,名稱訓練成功;如果沒能夠成功的建立模型,小車會告知失敗的原因并要求重新訓練。成功訓練名稱后會給出下一條待訓練指令提示音:前進,參照名稱訓練方式訓練前進指令。依次訓練小車的名稱—前進指令—倒車指令—左轉(zhuǎn)指令—右轉(zhuǎn)指令,全部訓練成功子程序返回,訓練結(jié)束。<

83、/p><p><b>  圖4.2訓練流程圖</b></p><p>  void TrainSD()</p><p><b>  {</b></p><p>  while(TrainWord(NAME_ID,S_NAME) != 0) ; //訓練名稱</p><p>

84、;  while(TrainWord(COMMAND_GO_ID,S_ACT1) != 0) ; //訓練第1個動作</p><p>  while(TrainWord(COMMAND_BACK_ID,S_ACT2) != 0) ; //訓練第2個動作</p><p>  while(TrainWord(COMMAND_LEFT_ID,S_ACT3) != 0) ; //訓練

85、第3個動作</p><p>  while(TrainWord(COMMAND_RIGHT_ID,S_ACT4) != 0) ;//訓練第4個動作</p><p><b>  }</b></p><p>  4.2.2語音識別子程序 </p><p>  語音識別流程如圖 4.3所示:首先獲取辨識器的辨識結(jié)果,判斷是否

86、有語音觸發(fā),如果有語音觸發(fā)則會返回識別結(jié)果的ID號,ID號對應名稱或者對應不同的動作。如果ID號為名稱,則結(jié)束運動(如果當前在運動狀態(tài)) ,進入待命狀態(tài),等待下一次的指令觸發(fā);如果 ID 號為動作,則語音告知將要執(zhí)行的動作,并執(zhí)行該動作。注:語音識別程序在語音中斷函數(shù)中進行。</p><p>  圖4.3語音識別部分流程圖</p><p>  void BSR(void)</p>

87、;<p><b>  {</b></p><p>  int Result;//辨識結(jié)果寄存</p><p>  Result = BSR_GetResult();//獲得識別結(jié)果</p><p>  if(Result>0)//有語音觸發(fā)?</p><p><b>  

88、{</b></p><p>  *P_IOB_Data=0x0000;//臨時停車</p><p>  switch(Result)</p><p><b>  {</b></p><p>  case NAME_ID://識別出名稱命令</p><p>  Stop();/

89、/停車待命</p><p><b>  break;</b></p><p>  case COMMAND_GO_ID://識別出第一條命令</p><p>  GoAhead(); //執(zhí)行動作一:直走</p><p><b>  break;</b></p><p&

90、gt;  case COMMAND_BACK_ID://識別出第二條命令</p><p>  BackUp();//執(zhí)行動作二:倒車</p><p><b>  break;</b></p><p>  case COMMAND_LEFT_ID://識別出第三條命令</p><p>  TurnLeft();

91、//執(zhí)行動作三:左轉(zhuǎn)</p><p><b>  break;</b></p><p>  case COMMAND_RIGHT_ID://識別出第四條命令</p><p>  TurnRight();//執(zhí)行動作四:右轉(zhuǎn)</p><p><b>  break;</b></

92、p><p><b>  default:</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b&g

93、t;</p><p>  4.2.3動作子程序 </p><p>  動作子程序包括:前進、倒車、左拐、右拐、停車子程序。 </p><p>  前進:由小車的結(jié)構(gòu)原理和驅(qū)動電路分析知:只要IOB8 為高電平,IOB9,IOB10,IOB11 全部為低電平即可實現(xiàn)小車的前進。前進子程序包括語音提示、置端口數(shù)據(jù)、啟動定時器操作。 </p><p&g

94、t;  倒車:由小車的結(jié)構(gòu)原理分析和驅(qū)動電路分析知:只要IOB9 為高電平,IOB8,IOB10,IOB11全部為低電平即可實現(xiàn)小車的倒退。倒退子程序包括語音提示、置端口數(shù)據(jù)、啟動定時器操作。 </p><p>  左轉(zhuǎn):由小車的結(jié)構(gòu)原理分析和驅(qū)動電路分析知:小車左轉(zhuǎn)需要兩個條件:1.前輪左偏2.后輪前進,這時對應的 I/O 狀態(tài)為:IOB8、IOB10 為高電平,IOB9、IOB11 為低電平。左轉(zhuǎn)子程序包括語

95、音提示、置端口數(shù)據(jù)、啟動定時器操作。 </p><p>  右轉(zhuǎn):由小車的結(jié)構(gòu)原理分析和驅(qū)動電路分析知:小車右轉(zhuǎn)需要兩個條件:1.前輪右偏2.后輪前進,這時對應的 I/O 狀態(tài)為:IOB8、IOB11 為高電平,IOB9、IOB10 為低電平。右轉(zhuǎn)子程序包括語音提示、置端口數(shù)據(jù)、啟動定時器操作。 </p><p>  注:在轉(zhuǎn)彎之前首先讓前輪朝目標方向的反方向偏轉(zhuǎn),然后再讓前輪朝目標方向偏

96、轉(zhuǎn),這樣前輪的擺動范圍更大,慣性更大,擺幅也最大,能更好實現(xiàn)轉(zhuǎn)彎。</p><p>  void GoAhead() //前進</p><p><b>  { </b></p><p>  PlaySnd(S_ACT1,3);//提示</p><p>  *

97、P_IOB_Data=0x0100;//前進</p><p>  *P_INT_Mask |= 0x0004;//以下為中斷定時操作</p><p>  __asm("int fiq,irq");</p><p>  uiTimecont = 0;</p><p><b>  }<

98、/b></p><p>  //=============================================================</p><p>  // 語法格式:void BackUp();</p><p>  // 實現(xiàn)功能:后退子函數(shù)</p><p><b>  // 參數(shù):無<

99、/b></p><p>  // 返回值:無</p><p>  //=============================================================</p><p>  void BackUp() //倒退</p><p><b&g

100、t;  {</b></p><p>  PlaySnd(S_DCZY,3);//提示</p><p>  *P_IOB_Data=0x0200;//倒退</p><p>  *P_INT_Mask |= 0x0004;//以下為中斷定時操作</p><p>  __asm("in

101、t fiq,irq");</p><p>  uiTimecont = 0;</p><p><b>  }</b></p><p>  //=============================================================</p><p>  // 語法格式:void

102、 TurnLeft();</p><p>  // 實現(xiàn)功能:左轉(zhuǎn)子函數(shù)</p><p><b>  // 參數(shù):無</b></p><p>  // 返回值:無</p><p>  //=============================================================&

103、lt;/p><p>  void TurnLeft() //左轉(zhuǎn)</p><p><b>  {</b></p><p>  PlaySnd(S_GJG,3);</p><p>  *P_IOB_Data=0x0900;//右轉(zhuǎn)</p><

104、p>  Delay();//延時</p><p>  *P_IOB_Data=0x0500;//左轉(zhuǎn)</p><p>  *P_INT_Mask |= 0x0004;//以下為中斷定時操作</p><p>  __asm("int fiq,irq");</p><p>  

105、uiTimecont = 0;</p><p><b>  }</b></p><p>  //=============================================================</p><p>  // 語法格式:void TurnRight();</p><p>  // 實

106、現(xiàn)功能:右轉(zhuǎn)子函數(shù)</p><p><b>  // 參數(shù):無</b></p><p>  // 返回值:無</p><p>  //=============================================================</p><p>  void TurnRight()

107、 //右轉(zhuǎn)</p><p><b>  {</b></p><p>  PlaySnd(S_GJG,3);//語音提示</p><p>  *P_IOB_Data=0x0500;//左轉(zhuǎn)</p><p>  Delay();

108、//延時</p><p>  *P_IOB_Data=0x0900;//右轉(zhuǎn)</p><p>  *P_INT_Mask |= 0x0004;//以下為中斷定時操作</p><p>  __asm("int fiq,irq");</p><p>  uiTimecont = 0;</p&g

109、t;<p><b>  }</b></p><p>  //=============================================================</p><p>  // 語法格式:void Stop();</p><p>  // 實現(xiàn)功能:停車子函數(shù)</p><p&

110、gt;<b>  // 參數(shù):無</b></p><p>  // 返回值:無</p><p>  //=============================================================</p><p>  void Stop() //停車

111、</p><p><b>  {</b></p><p>  *P_IOB_Data=0x0000;//停車</p><p>  PlaySnd(S_RDY,3);//語音提示</p><p><b>  }</b></p><p>  4.2.4

112、中斷子程序 </p><p>  雖然已經(jīng)有了前進、后退以及停車(通過直接呼叫小車的名字使其停車)等語音控制指令,但是考慮環(huán)境的干擾因素,小車運行時的噪音影響和有效距離的限制,小車運行后可能接收不到語音指令而一直運行。為了防止出現(xiàn)這種情況,加入了時間控制,在啟動小車運行的同時啟動定時器,定時器時間到停止小車的運行,該定時器借助于 2Hz 時基中斷完成,所示為該程序的流程圖??梢栽诔绦蛑行薷膗 i Time set

113、 參數(shù)來控制運行時間,當ui Time set=2 時,運行時間為1s,以此類推。</p><p>  void IRQ5(void)__attribute__((ISR));//運動定時控制</p><p>  void IRQ5(void)</p><p><b>  { </b></p><p>  if(u

114、iTimecont++ == uiTimeset)</p><p><b>  {</b></p><p>  *P_IOB_Data = 0x0000;</p><p><b>  }</b></p><p>  *P_INT_Clear = 0x0004;</p><p>

115、;<b>  }</b></p><p>  程序中需要說明的幾個問題</p><p>  在程序中可能有幾個地方不易理解,下面我向大家說明一下: </p><p>  首先,小車有沒有被訓練過是怎么知道的? </p><p>  在這里利用了一個特殊的 Flash 單元, 語音模型存儲區(qū)首單元 (該示例程序中為 0xe

116、000單元) 。 當 Flash在初始化以后,或者在擦除后為 0xffff,在成功訓練并存儲后為 0x0055(該值由辨識器自動生成) 。這樣就可以根據(jù)這個單元的值來判斷是否經(jīng)過訓練。 </p><p>  其次,為什么已經(jīng)訓練過的系統(tǒng)在重新運行時還要進行模型裝載? </p><p>  在首次訓練完成之后,辨識器中保存著訓練的模型,但是系統(tǒng)一旦復位辨識器中的模型就會丟失,所以在重新運行時

溫馨提示

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

評論

0/150

提交評論