《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計應(yīng)用 > 基于語音識別的汽車空調(diào)控制系統(tǒng)設(shè)計
基于語音識別的汽車空調(diào)控制系統(tǒng)設(shè)計
互聯(lián)網(wǎng)
摘要: 現(xiàn)在汽車上使用的電器越來越多,,駕駛員需要手動操作的電器開關(guān)也越來越多,,不但增加了駕駛員的負擔(dān),還影響了行車安全,。本文以STM32F103VET6(以下簡稱STM32)芯片為控制核心,,采用高性能LD3320語音識別芯片,設(shè)計基于語音識別的汽車空調(diào)控制系統(tǒng),。該系統(tǒng)可以用語音有效控制汽車空調(diào),,減輕了駕駛員的操作負擔(dān),保證行車過程中的安全,。
關(guān)鍵詞: 空調(diào)控制 語音識別 STM32
Abstract:
Key words :

引言

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

1 系統(tǒng)硬件設(shè)計

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



1.1 主控制器

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

1.2 語音識別模塊

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


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

1.3 SD卡存儲模塊

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



1.4 傳感器模擬信號輸入模塊

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



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


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

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



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

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

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


1.7 鼓風(fēng)機驅(qū)動模塊

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


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

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

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

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

2.1 語音識別模塊

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


2.2 語音播放模塊

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

2.3 SD卡模塊

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

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

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

在軟件設(shè)計上,,采用了指令冗余,、軟件陷阱和重復(fù)設(shè)置各種工作方式控制字等方法,消除干擾,。使用“Watchdog”定時器,,實時監(jiān)測程序的運行;運用CPU運算與控制功能,,采用算術(shù)平均法,實現(xiàn)數(shù)字濾波,,消除傳感器通道的千擾信號,。
結(jié)語

本文介紹了基于語音識別的汽車空調(diào)控制系統(tǒng),分別對硬件電路和軟件設(shè)計進行了詳細的介紹,。本系統(tǒng)開發(fā)成本低,、性能優(yōu)越,系統(tǒng)測試表明,,本系統(tǒng)具有一定的應(yīng)用價值,,可以用于中低檔汽車。

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