基于STM32F103的語(yǔ)音識(shí)別汽車空調(diào)控制系統(tǒng)設(shè)計(jì)_第1頁(yè)
基于STM32F103的語(yǔ)音識(shí)別汽車空調(diào)控制系統(tǒng)設(shè)計(jì)_第2頁(yè)
基于STM32F103的語(yǔ)音識(shí)別汽車空調(diào)控制系統(tǒng)設(shè)計(jì)_第3頁(yè)
基于STM32F103的語(yǔ)音識(shí)別汽車空調(diào)控制系統(tǒng)設(shè)計(jì)_第4頁(yè)
基于STM32F103的語(yǔ)音識(shí)別汽車空調(diào)控制系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

基于STM32F103的語(yǔ)音識(shí)別汽車空調(diào)控制系統(tǒng)設(shè)計(jì)

引言

現(xiàn)在汽車上使用的電器越來(lái)越多,駕駛員需要手動(dòng)操作的電器開關(guān)也越來(lái)越多,不但增加了駕駛員的負(fù)擔(dān),還影響了行車安全。本文以STM32F103VET6(以下簡(jiǎn)稱STM32)芯片為控制核心,采用高性能LD3320語(yǔ)音識(shí)別芯片,設(shè)計(jì)基于語(yǔ)音識(shí)別的汽車空調(diào)控制系統(tǒng)。該系統(tǒng)可以用語(yǔ)音有效控制汽車空調(diào),減輕了駕駛員的操作負(fù)擔(dān),保證行車過(guò)程中的安全。1系統(tǒng)硬件設(shè)計(jì)

運(yùn)用語(yǔ)音識(shí)別技術(shù),結(jié)合各種傳感器對(duì)車身內(nèi)外的環(huán)境(如氣溫、陽(yáng)光強(qiáng)度等)以及制冷壓縮機(jī)的狀態(tài)等多種參數(shù)進(jìn)行實(shí)時(shí)檢測(cè),與設(shè)定參數(shù)相比較,微控制器經(jīng)過(guò)運(yùn)算處理做出判斷,輸出相應(yīng)的調(diào)節(jié)和控制信號(hào)。執(zhí)行機(jī)構(gòu)經(jīng)過(guò)實(shí)時(shí)調(diào)整和修正,實(shí)現(xiàn)對(duì)車廂內(nèi)空氣環(huán)境全方位、多功能的調(diào)節(jié)和控制。系統(tǒng)的執(zhí)行機(jī)構(gòu)主要包括溫度風(fēng)門電機(jī)、模式風(fēng)門電機(jī)、循環(huán)風(fēng)門電機(jī)、鼓風(fēng)機(jī)、壓縮機(jī)、除霜控制繼電器等。圖1為系統(tǒng)結(jié)構(gòu)框圖。

1.1主控制器

主控制器為基于ARMCortex—M3內(nèi)核的32位微控制器STM32F103VET6,內(nèi)置64KBRAM、512KBFlash,以及豐富的增強(qiáng)I/O端口和聯(lián)接到兩條APB總線的外設(shè),主要控制傳感器模擬信號(hào)的采集、語(yǔ)音信號(hào)的收發(fā)和汽車空調(diào)控制信號(hào)的輸出。

1.2語(yǔ)音識(shí)別模塊

語(yǔ)音識(shí)別芯片選用的是ICRoute公司的LD3320芯片。該芯片集成了語(yǔ)音識(shí)別處理器和一些外部電路,包括A/D轉(zhuǎn)化器、D/A轉(zhuǎn)換器、麥克風(fēng)接口、聲音輸出接口等。本芯片在設(shè)計(jì)上注重節(jié)能與高效,不需要外接任何的輔助芯片(如Flash、RAM等),直接集成在現(xiàn)有的產(chǎn)品中即可以實(shí)現(xiàn)語(yǔ)音識(shí)別功能。識(shí)別的關(guān)鍵詞語(yǔ)列表是可以任意動(dòng)態(tài)編輯的。

參照LD3320數(shù)據(jù)手冊(cè),語(yǔ)音識(shí)別控制電路采用LD3320與STM32通過(guò)SPI串行方式進(jìn)行連接。語(yǔ)音識(shí)別模塊控制電路如圖2所示。首先,要將MD接高電平,芯片時(shí)鐘信號(hào)CLK連接到STM32時(shí)鐘信號(hào)輸出引腳MCO(PA8)上。引腳MBS是麥克風(fēng)偏置,接了一個(gè)RC電路,保證能輸出一個(gè)浮動(dòng)電壓給麥克風(fēng)。

1.3SD卡存儲(chǔ)模塊

要實(shí)現(xiàn)具有人機(jī)交互功能的語(yǔ)音識(shí)別控制系統(tǒng),需要存放大量的MP3音頻文件。本系統(tǒng)中,MP3音頻播放文件存放在SD卡上,語(yǔ)音識(shí)別關(guān)鍵詞也存放在SD卡上,這樣可以很方便地更改要識(shí)別的關(guān)鍵詞,而不需要更改程序內(nèi)容。主控STM32將MP3數(shù)據(jù)依次從SD卡讀出來(lái),送入LD3320芯片內(nèi)部,這樣就可以從芯片的相應(yīng)的引腳輸出聲音。SD卡硬件連接如圖3所示。SD卡與STM32通過(guò)SPI方式進(jìn)行通信。將SD卡片選信號(hào)CS、數(shù)據(jù)輸入信號(hào)DI、數(shù)據(jù)輸出信號(hào)DO、時(shí)鐘信號(hào)SCLK分別與STM32的PC11、PD2、PC8、PC12引腳連接。

1.4傳感器模擬信號(hào)輸入模塊

傳感器模擬信號(hào)是控制系統(tǒng)的輸入信號(hào)源。傳感器把非電量的物理量變成電量后并不一定適合A/D轉(zhuǎn)換器直接應(yīng)用,還必須經(jīng)過(guò)放大、濾波、隔離及保護(hù)措施,才能送給單片機(jī)。單片機(jī)通過(guò)檢測(cè)這些傳感器信號(hào)來(lái)判斷系統(tǒng)的溫度、濕度等是否滿足用戶的要求。以車內(nèi)溫度傳感器為例分析,溫度信號(hào)采集硬件連接圖如圖4所示。本系統(tǒng)采用NTC公司的高精度車內(nèi)溫度傳感器Rntc,Rntc和電阻R0分壓后輸入到單片機(jī)。Rntc電阻值可以近似地用如下公式表達(dá):

其中,R1為絕對(duì)溫度下T1時(shí)的電阻值,T為要檢測(cè)的溫度,Rntc為該溫度下的電阻值,B值反映了溫度變化與阻值變化的關(guān)系。單片機(jī)信號(hào)輸入端得到的電壓為:

根據(jù)公式(2)電壓計(jì)算出當(dāng)前溫度傳感器的電阻,再由公式(1)計(jì)算出要檢測(cè)的溫度。1.5壓縮機(jī)驅(qū)動(dòng)模塊

壓縮機(jī)的動(dòng)力是由發(fā)動(dòng)機(jī)提供的,連接發(fā)動(dòng)機(jī)和壓縮機(jī)的重要電子部件是電磁離合器。根據(jù)汽車空調(diào)運(yùn)行情況和壓縮機(jī)開關(guān)的工作電壓,單片機(jī)控制繼電器吸合或斷開,以此控制壓塑機(jī)電磁離合器的吸合與斷開。當(dāng)蒸發(fā)器溫度一旦低于設(shè)定值,壓縮機(jī)就停止工作;反之,壓塑機(jī)保持正常工作,開始制冷。汽車空調(diào)蒸發(fā)器就是一個(gè)熱交換器,通過(guò)熱交換將進(jìn)入蒸發(fā)器的氣體變?yōu)槔滹L(fēng),從而達(dá)到制冷的目的。控制蒸發(fā)器溫度是空調(diào)自動(dòng)控制系統(tǒng)的重要任務(wù)。

1.6風(fēng)門電動(dòng)機(jī)驅(qū)動(dòng)模塊

汽車空調(diào)伺服電機(jī)選用直流電動(dòng)機(jī)。伺服電機(jī)根據(jù)功能分為內(nèi)外循環(huán)電動(dòng)機(jī)、混合風(fēng)門電動(dòng)機(jī)、模式風(fēng)門電動(dòng)機(jī)。電機(jī)采用兩個(gè)TA8083F系列芯片驅(qū)動(dòng),每個(gè)芯片可以驅(qū)動(dòng)兩個(gè)伺服電機(jī)。該芯片的輸入端口可以直接和單片機(jī)連接,STM32單片機(jī)的PE0~PE3引腳分別與驅(qū)動(dòng)芯片DI1A、DI2A、DI1B、DI2B引腳相連接。其硬件電路如圖5所示。

根據(jù)輸入信號(hào)的不同,電機(jī)工作狀況也不同,具體的工作情況如表1所列。

1.7鼓風(fēng)機(jī)驅(qū)動(dòng)模塊

鼓風(fēng)機(jī)驅(qū)動(dòng)電路如圖6所示。用四合一集成運(yùn)算放大器LM2902將單片機(jī)的PWM輸出信號(hào)T050放大,經(jīng)放大后的信號(hào)Blwc傳送給風(fēng)機(jī)調(diào)速模塊,從而調(diào)節(jié)鼓風(fēng)機(jī)的轉(zhuǎn)速。單片機(jī)輸出信號(hào)Blowoffcontrol作為控制鼓風(fēng)機(jī)的開關(guān)信號(hào)。2SC2412作為控制鼓風(fēng)機(jī)運(yùn)轉(zhuǎn)的開關(guān)。當(dāng)單片機(jī)輸出高電平時(shí),2SC2412導(dǎo)通,鼓風(fēng)機(jī)停止運(yùn)轉(zhuǎn);當(dāng)單片機(jī)輸出低電平時(shí),2SC2412反向截止,鼓風(fēng)機(jī)正常運(yùn)轉(zhuǎn)。

1.8后除霜驅(qū)動(dòng)模塊

前、側(cè)擋風(fēng)玻璃上的霜層通常是通過(guò)在汽車空調(diào)系統(tǒng)的風(fēng)道中,調(diào)整模式風(fēng)門的位置,利用空調(diào)系統(tǒng)中產(chǎn)生的暖氣(或流動(dòng)的空氣),達(dá)到清除結(jié)霜的目的。對(duì)后擋風(fēng)玻璃的除霜,常采用除霜熱線。除霜熱線是把數(shù)條電熱線(鎳鉻絲)均勻地粘在后窗玻璃內(nèi)部,各線兩端相接,形成并聯(lián)電路。當(dāng)兩端加上電壓后,電熱線就會(huì)升溫而加熱玻璃,從而達(dá)到防止或清除霜層的目的。后除霜控制電路如圖7所示。IG2為汽車空調(diào)電源,單片機(jī)輸出信號(hào)Defr通過(guò)三極管NIF5002N來(lái)控制繼電器的通斷,從而控制除霜熱線的通斷,來(lái)達(dá)到后除霜的目的。

2系統(tǒng)軟件設(shè)計(jì)

本系統(tǒng)軟件設(shè)計(jì)采用C語(yǔ)言開發(fā),用KeiluVision4軟件進(jìn)行編譯。開發(fā)過(guò)程按照模塊化分塊進(jìn)行,系統(tǒng)的主要模塊包括語(yǔ)音識(shí)別模塊、語(yǔ)音播放模塊、SD卡模塊以及空調(diào)控制模塊。

2.1語(yǔ)音識(shí)別模塊

語(yǔ)音識(shí)別模塊采用中斷的方式進(jìn)行工作,其工作流程大致為芯片初始化、寫入識(shí)別列表、開始識(shí)別、中斷響應(yīng)并獲取識(shí)別結(jié)果。語(yǔ)音識(shí)別流程如圖8所示。在初始化程序里,主要完成軟復(fù)位、模式設(shè)定、時(shí)鐘頻率設(shè)定和FIFO設(shè)定。在寫入識(shí)別列表之前,首先要讀取寄存器B2的值,檢查L(zhǎng)D3320是否處于空閑狀態(tài);然后,把識(shí)別語(yǔ)音列表信息寫入LD3320的05和B9寄存器中,每個(gè)識(shí)別條目是標(biāo)準(zhǔn)普通話的漢語(yǔ)拼音(小寫),每?jī)蓚€(gè)漢語(yǔ)拼音之間用一個(gè)空格間隔。在完成添加語(yǔ)音識(shí)別列表后,設(shè)定寄存器35的值為45H。此處設(shè)定的值越大,代表麥克的音量越大,識(shí)別距離也越遠(yuǎn),但是可能產(chǎn)生較多的誤識(shí)別;值越小代表麥克的音量越小,需要近距離說(shuō)話才能啟動(dòng)語(yǔ)音識(shí)別功能,識(shí)別率也高。設(shè)定寄存器37值為06H,啟動(dòng)語(yǔ)音識(shí)別,即可開始語(yǔ)音識(shí)別。如果麥克風(fēng)采集到聲音,不管是否識(shí)別出正常結(jié)果,都會(huì)產(chǎn)生一個(gè)中斷信號(hào)。進(jìn)入中斷函數(shù)后,首先清零寄存器29和寄存器02;然后,檢查B2寄存器是否為0x21。若值為0x21,表示閑,可以檢測(cè)2B的值;若為1,表示語(yǔ)音識(shí)別有結(jié)果產(chǎn)生。寄存器BF讀到數(shù)值為0x35,可以確定是一次語(yǔ)音識(shí)別流程正常結(jié)束。寄存器BA表示語(yǔ)音識(shí)別有幾個(gè)識(shí)別候選結(jié)果。最后,可以讀取寄存器C5,獲取識(shí)別結(jié)果。

2.2語(yǔ)音播放模塊

語(yǔ)音播放的軟件設(shè)計(jì)流程包括通用初始化、MP3播放初始化、播放音量調(diào)節(jié)、開始播放聲音以及中斷響應(yīng)。通用初始化時(shí),首先連續(xù)讀取寄存器06,相當(dāng)于激活了芯片;然后,按順序設(shè)置相關(guān)寄存器的值。MP3播放初始化時(shí),首先要設(shè)置寄存器BD的值為02H,啟動(dòng)MP3播放模塊;然后,向寄存器17寫入48H,激活DSP。語(yǔ)音播放模塊的音量分為16級(jí),用4位二進(jìn)制表示,這里需要設(shè)置寄存器8E的第2~5位的值來(lái)調(diào)節(jié)播放音量。當(dāng)播放語(yǔ)音時(shí),首先需要清零,開始播放位置。將寄存器1B的第3位設(shè)為1,然后執(zhí)行循環(huán)。當(dāng)播放條件為真時(shí),順序?qū)P3數(shù)據(jù)放入寄存器01(每次1個(gè)字節(jié)),播放位置值增加1。當(dāng)寄存器06的第3位等于0或者播放位置小于MP3文件的總長(zhǎng)度時(shí),就跳出循環(huán)。等到芯片播放該段后會(huì)發(fā)出中斷請(qǐng)求,而中斷函數(shù)會(huì)不斷接收數(shù)據(jù),直到FIFO-DA-TA裝滿或聲音數(shù)據(jù)結(jié)束。

2.3SD卡模塊

此模塊分為SD卡初始化和SD卡數(shù)據(jù)讀取。SD卡初始化時(shí),在發(fā)送CMD命令之前,在片選有效的情況下,首先要發(fā)送至少74個(gè)時(shí)鐘,否則將有可能出現(xiàn)SD卡不能初始化的問(wèn)題。然后,就可以發(fā)送復(fù)位命令CMD0。發(fā)送復(fù)位命令后等待8個(gè)時(shí)鐘周期,進(jìn)入SPI總線模式,接著發(fā)送CMD1命令。如果正確接收響應(yīng)信號(hào),表示SD卡初始化完成,可以接受后續(xù)讀寫命令。初始化完成后,發(fā)送CMD17讀命令。判斷響應(yīng)值是否全為0,然后,判斷接收數(shù)據(jù)開始令牌是否為0xfe,如果是,就可以接收正式數(shù)據(jù)和CRC碼。

2.4空調(diào)控制模塊

空調(diào)控制模塊主要包括信號(hào)采集模塊、風(fēng)門電機(jī)控制模塊、鼓風(fēng)機(jī)控制模塊、壓塑機(jī)控制模塊、后除霜控制模塊5個(gè)子模塊??照{(diào)控制流程如圖9所示。首先,進(jìn)行系統(tǒng)的初始化。若點(diǎn)火開關(guān)正常啟動(dòng),信號(hào)采集模塊開始采集傳感器數(shù)據(jù),根據(jù)采集到的數(shù)據(jù),判斷是否滿足風(fēng)機(jī)啟動(dòng)條件。若滿足條件,則設(shè)置風(fēng)機(jī)PWM占空比,進(jìn)而調(diào)節(jié)風(fēng)量的大小。當(dāng)風(fēng)量大小滿足要求時(shí),接下來(lái)就要判斷是否滿足壓

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論