<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 電源與新能源 > 設計應用 > 基于語(yǔ)音識別的汽車(chē)空調控制系統設計

基于語(yǔ)音識別的汽車(chē)空調控制系統設計

作者: 時(shí)間:2012-12-26 來(lái)源:網(wǎng)絡(luò ) 收藏

引言

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

1 系統硬件設計

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


1.1 主控制器

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

1.2 語(yǔ)音識別模塊

語(yǔ)音識別芯片選用的是ICRoute公司的LD3320芯片。該芯片集成了語(yǔ)音識別處理器和一些外部電路,包括A/D轉化器、D/A轉換器、麥克風(fēng)接口、聲音輸出接口等。本芯片在設計上注重節能與高效,不需要外接任何的輔助芯片(如Flash、RAM等),直接集成在現有的產(chǎn)品中即可以實(shí)現語(yǔ)音識別功能。識別的關(guān)鍵詞語(yǔ)列表是可以任意動(dòng)態(tài)編輯的。
基于語(yǔ)音識別的汽車(chē)空調控制系統設計
參照LD3320數據手冊,語(yǔ)音識別控制電路采用LD3320與STM32通過(guò)SPI串行方式進(jìn)行連接。語(yǔ)音識別模塊控制電路如圖2所示。首先,要將MD接高電平,芯片時(shí)鐘信號CLK連接到STM32時(shí)鐘信號輸出引腳MCO(PA8)上。引腳MBS是麥克風(fēng)偏置,接了一個(gè)RC電路,保證能輸出一個(gè)浮動(dòng)電壓給麥克風(fēng)。

1.3 SD卡存儲模塊

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


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

傳感器模擬信號是控制系統的輸入信號源。傳感器把非電量的物理量變成電量后并不一定適合A/D轉換器直接應用,還必須經(jīng)過(guò)放大、濾波、隔離及保護措施,才能送給單片機。單片機通過(guò)檢測這些傳感器信號來(lái)判斷系統的溫度、濕度等是否滿(mǎn)足用戶(hù)的要求。以車(chē)內溫度傳感器為例分析,溫度信號采集硬件連接圖如圖4所示。本系統采用NTC公司的高精度車(chē)內溫度傳感器Rntc,Rntc和電阻R0分壓后輸入到單片機。Rntc電阻值可以近似地用如下公式表達:
基于語(yǔ)音識別的汽車(chē)空調控制系統設計
其中,R1為絕對溫度下T1時(shí)的電阻值,T為要檢測的溫度,Rntc為該溫度下的電阻值,B值反映了溫度變化與阻值變化的關(guān)系。單片機信號輸入端得到的電壓為:
基于語(yǔ)音識別的汽車(chē)空調控制系統設計
根據公式(2)電壓計算出當前溫度傳感器的電阻,再由公式(1)計算出要檢測的溫度。

1.5 壓縮機驅動(dòng)模塊

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


1.6 風(fēng)門(mén)電動(dòng)機驅動(dòng)模塊

汽車(chē)空調伺服電機選用直流電動(dòng)機。伺服電機根據功能分為內外循環(huán)電動(dòng)機、混合風(fēng)門(mén)電動(dòng)機、模式風(fēng)門(mén)電動(dòng)機。電機采用兩個(gè)TA8083F系列芯片驅動(dòng),每個(gè)芯片可以驅動(dòng)兩個(gè)伺服電機。該芯片的輸入端口可以直接和單片機連接,STM32單片機的PE0~PE3引腳分別與驅動(dòng)芯片DI1A、DI2A、DI1B、DI2B引腳相連接。其硬件電路如圖5所示。
基于語(yǔ)音識別的汽車(chē)空調控制系統設計
根據輸入信號的不同,電機工作狀況也不同,具體的工作情況如表1所列。
基于語(yǔ)音識別的汽車(chē)空調控制系統設計


1.7 鼓風(fēng)機驅動(dòng)模塊

鼓風(fēng)機驅動(dòng)電路如圖6所示。用四合一集成運算放大器LM2902將單片機的PWM輸出信號T050放大,經(jīng)放大后的信號Blwc傳送給風(fēng)機調速模塊,從而調節鼓風(fēng)機的轉速。單片機輸出信號Blowoff control作為控制鼓風(fēng)機的開(kāi)關(guān)信號。2SC2412作為控制鼓風(fēng)機運轉的開(kāi)關(guān)。當單片機輸出高電平時(shí),2SC2412導通,鼓風(fēng)機停止運轉;當單片機輸出低電平時(shí),2SC2412反向截止,鼓風(fēng)機正常運轉。
基于語(yǔ)音識別的汽車(chē)空調控制系統設計


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

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

2 系統軟件設計

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

2.1 語(yǔ)音識別模塊

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

2.2 語(yǔ)音播放模塊

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

2.3 SD卡模塊

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

2.4 空調控制模塊

空調控制模塊主要包括信號采集模塊、風(fēng)門(mén)電機控制模塊、鼓風(fēng)機控制模塊、壓塑機控制模塊、后除霜控制模塊5個(gè)子模塊??照{控制流程如圖9所示。首先,進(jìn)行系統的初始化。若點(diǎn)火開(kāi)關(guān)正常啟動(dòng),信號采集模塊開(kāi)始采集傳感器數據,根據采集到的數據,判斷是否滿(mǎn)足風(fēng)機啟動(dòng)條件。若滿(mǎn)足條件,則設置風(fēng)機PWM占空比,進(jìn)而調節風(fēng)量的大小。當風(fēng)量大小滿(mǎn)足要求時(shí),接下來(lái)就要判斷是否滿(mǎn)足壓縮機的啟動(dòng)條件。若滿(mǎn)足條件,啟動(dòng)壓縮機;如果不滿(mǎn)足條件,則判斷風(fēng)門(mén)位置是否滿(mǎn)足條件。如果不滿(mǎn)足條件,則調節風(fēng)門(mén)電機轉動(dòng),直到滿(mǎn)足條件。最后,判斷是否滿(mǎn)足除霜條件,若滿(mǎn)足則啟動(dòng)后除霜繼電器。
基于語(yǔ)音識別的汽車(chē)空調控制系統設計
在軟件設計上,采用了指令冗余、軟件陷阱和重復設置各種工作方式控制字等方法,消除干擾。使用“Watchdog”定時(shí)器,實(shí)時(shí)監測程序的運行;運用CPU運算與控制功能,采用算術(shù)平均法,實(shí)現數字濾波,消除傳感器通道的千擾信號。

結語(yǔ)

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



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>