STM32單片機(jī)的酒精濃度探測(cè)儀設(shè)計(jì)
摘要:采用具有ARM Cortex—M3內(nèi)核的STM32F103VET6單片機(jī)與ME3-C2H5OH電化學(xué)式氣敏元件實(shí)現(xiàn)了對(duì)酒精濃度的測(cè)量,通過(guò)TFTLCD對(duì)測(cè)量數(shù)據(jù)進(jìn)行顯示,并采用語(yǔ)音模塊進(jìn)行語(yǔ)音報(bào)警提示,從而實(shí)現(xiàn)了對(duì)不同濃度酒精的檢測(cè)和顯示。設(shè)計(jì)的特點(diǎn)在于采用斜率和電壓范圍雙重保險(xiǎn)來(lái)判斷酒精濃度,提高了檢測(cè)的精度,解決了現(xiàn)有酒精傳感器恢復(fù)時(shí)間較長(zhǎng)的問(wèn)題,可應(yīng)用于酒后駕車和其他特殊場(chǎng)合的酒精檢測(cè)。
關(guān)鍵詞:酒精探測(cè)儀;ME3-C2H5OH;STM32;語(yǔ)音模塊;TFTLCD
引言
酒后駕車是導(dǎo)致交通事故的一個(gè)重要原因,給人們的生活和生命安全帶來(lái)巨大的危害。為了防止機(jī)動(dòng)車輛駕駛?cè)藛T酒后駕車,現(xiàn)場(chǎng)實(shí)時(shí)對(duì)人體呼氣中酒精含量的檢查已日益受到重視。本系統(tǒng)針對(duì)現(xiàn)有酒精傳感器恢復(fù)時(shí)間較長(zhǎng)的問(wèn)題,通過(guò)計(jì)算斜率成功地實(shí)現(xiàn)了快速酒精濃度檢測(cè),縮短了檢測(cè)間隔時(shí)間,大大提升了酒精檢測(cè)的效率。
1 酒精濃度探測(cè)儀的整體結(jié)構(gòu)
酒精濃度探測(cè)儀由單片機(jī)、酒精傳感器、信號(hào)調(diào)理電路、語(yǔ)音報(bào)警模塊、TFTLCD顯示模塊、通信模塊、功放模塊等部分組成,結(jié)構(gòu)框圖如圖1所示。由于語(yǔ)音報(bào)警模塊和TFTLCD顯示模塊對(duì)于單片機(jī)的處理速度和處理數(shù)據(jù)量要求高,再加上酒精檢測(cè)反應(yīng)速度較快,實(shí)時(shí)性較高,因此采用了ST公司的STM32系列的單片機(jī)作為主控端。ME3-C2H5OH電化學(xué)式氣敏元件具有功耗低、精度高、靈敏度高、線性范圍寬、抗干擾能力強(qiáng)、重復(fù)性優(yōu)異和穩(wěn)定性高等優(yōu)點(diǎn)。
2 硬件設(shè)計(jì)
2.1 單片機(jī)及其外圍接口的設(shè)計(jì)
單片機(jī)采用低功耗高速工業(yè)級(jí)芯片STM32F103VET6。STM32系列基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計(jì)的ARM Cortex—M3內(nèi)核,STM32F103為“增強(qiáng)型”系列,時(shí)鐘頻率達(dá)到72MHz,具有512 KB ROM、64 KB RAM,普通I/O口為80個(gè),具有8個(gè)定時(shí)/計(jì)數(shù)器,3個(gè)SPI、2個(gè)I2C總線、3個(gè)UART、1個(gè)USB、1個(gè)CAN總線等通信端口。具有2個(gè)I2S音頻口、1μs的雙12位ADC、4 Mbps的UART、18Mbps的SPI、18 MHz的I/O翻轉(zhuǎn)速度,內(nèi)部集成優(yōu)異的安全時(shí)鐘模式、帶喚醒功能的低功耗模式、內(nèi)部RC振蕩器、內(nèi)嵌復(fù)位電路等,完全滿足本酒精濃度探測(cè)儀的設(shè)計(jì)需求。
電源電路采用LM2596作為初級(jí)電壓轉(zhuǎn)換芯片,用來(lái)提供5 V電壓給外圍模塊供電,采用AMS-3.3作為末級(jí)電壓轉(zhuǎn)換芯片,用來(lái)提供3.3 V電壓給STM32供電。此芯片的輸出電流可以達(dá)到1 A,輸入電壓調(diào)節(jié)率小于0.2%,負(fù)載調(diào)節(jié)率小于0.4%,輸出電壓穩(wěn)定。
看門狗電路采用美國(guó)IMP公司生產(chǎn)的系統(tǒng)μP監(jiān)控芯片IMP706,IMP706能在上電、掉電期間或手動(dòng)情況下產(chǎn)生復(fù)位信號(hào),該器件內(nèi)含有1個(gè)1.6 s的看門狗定時(shí)器和4.4 V的電源電壓監(jiān)視器。另外,IMP706還有1個(gè)1.25 V門限的電源故障報(bào)警電路,可用于檢測(cè)電池電壓和非5 V的電源。
2.2 酒精傳感器
ME3-C2H5OH型酒精傳感器根據(jù)電化學(xué)原理工作,利用待測(cè)氣體在電解池中工作電極電位上的電化學(xué)氧化過(guò)程,待測(cè)氣體電化學(xué)反應(yīng)所產(chǎn)生的電流與其濃度成正比并遵循法拉第定律,通過(guò)檢測(cè)電流的大小就可以確定待測(cè)氣體的濃度。ME3-C2H5OH傳感器檢測(cè)處理電路如圖2所示。對(duì)被測(cè)者呼出氣體中酒精濃度的反應(yīng)以采樣電阻R1來(lái)獲取采樣電壓,通過(guò)運(yùn)放負(fù)反饋放大電路,對(duì)采樣電壓進(jìn)行放大。電路中的RT是熱電阻,用來(lái)抵消溫度漂移,保證恒定的放大系數(shù)。放大后的電壓信號(hào)送入STM32的ADC中,對(duì)經(jīng)過(guò)A/D轉(zhuǎn)化后的數(shù)據(jù)進(jìn)行分析處理,最后計(jì)算出酒精濃度的大小,從而判斷被測(cè)者是否飲酒。判斷結(jié)果通過(guò)語(yǔ)音芯片進(jìn)行語(yǔ)音提示,再通過(guò)LCD顯示濃度值。
圖3酒精傳感器為靈敏度、響應(yīng)恢復(fù)及輸出信號(hào)特性圖,圖4為濃度線性特征曲線圖。由圖3和圖4可以看出,ME3-C2H5OH型電化學(xué)元件靈敏度高、響應(yīng)速度快、零點(diǎn)漂移較小,而且此元件是線性的。因此,采用這類電化學(xué)元件來(lái)檢測(cè)酒精濃度值精度較高,反應(yīng)較快。
2.3 語(yǔ)音報(bào)警模塊
XF-S4040-CN中文語(yǔ)音合成芯片,是安徽中科大訊飛信息科技有限公司推出的基于InterSound4.6中文語(yǔ)音合成系統(tǒng)而設(shè)計(jì)的一款全新的中文語(yǔ)音合成芯片。該芯片可以通過(guò)異步串口(UART)及I2C總線接口方式接收命令和待合成的文本,直接合成為語(yǔ)音輸出,主要面向中高端應(yīng)用領(lǐng)域,提供一套語(yǔ)音合成效果出色、體積極小的語(yǔ)音解決方案。語(yǔ)言合成模塊電路如圖5所示。
XF-S4040-CN中文語(yǔ)音合成芯片針對(duì)嵌入式應(yīng)用領(lǐng)域設(shè)計(jì),具有合成任意中文文本及英文字母的能力。該芯片的主要特點(diǎn)是合成語(yǔ)音自然度高,控制接口簡(jiǎn)單方便,可調(diào)節(jié)功能強(qiáng)大。其操作命令格式如下所示。
基于串口的操作例程如下:
2.4 功放模塊
TDA7266是雙路音頻立體聲放大器,以MULTI—WATT形式封裝,專門為音樂(lè)設(shè)備和彩色電視機(jī)的高質(zhì)量音頻放大電路而設(shè)計(jì)。語(yǔ)音報(bào)警模塊輸出的左聲道和右聲道的語(yǔ)音信號(hào)通過(guò)電位器進(jìn)入TDA7266放大器中,進(jìn)行語(yǔ)音信號(hào)的放大,電位器用來(lái)調(diào)節(jié)音量大小,放大后輸出兩路音頻信號(hào),將這兩路分別接到兩個(gè)揚(yáng)聲器上。
TDA7266功放電路簡(jiǎn)單,聲音效果比較好,因此被廣泛應(yīng)用于高質(zhì)量的音頻放大上。功放模塊電路如圖6所示。
2.5 通信模塊
要求通信距離為幾十米到上千米時(shí),廣泛采用RS-485串行總線,RS-485采用平衡發(fā)送和差分接收的組合,因此具有抑制共模干擾的能力。加上總線收發(fā)器具有高靈敏度,能檢測(cè)低至200 mV的電壓,故傳輸信號(hào)能在千米以外得到恢復(fù)。RS-485接口總線上允許連接多達(dá)128個(gè)收發(fā)器,即具有多站能力,這樣用戶可以利用簡(jiǎn)單的RS-485接口方便地建立起設(shè)備網(wǎng)絡(luò)。本設(shè)計(jì)中,正是考慮到酒精濃度探測(cè)儀的數(shù)據(jù)有可能要傳回電腦上位機(jī)終端,要求傳輸距離比較遠(yuǎn)而且信號(hào)失真小,因此選擇RS-485通信。
2.6 TFTLCD顯示模塊
酒精濃度探測(cè)儀在使用中,需要顯示酒精濃度值大小、報(bào)警信息,同時(shí)還需要輸入酒精濃度報(bào)警點(diǎn)預(yù)設(shè)值,用來(lái)設(shè)定酒精濃度報(bào)警的范圍。因此,本設(shè)計(jì)中采用TFTLCD來(lái)顯示酒精濃度值,TFTLCD具有觸摸功能,可用于輸入酒精濃度預(yù)設(shè)值。
TFTLCD采用了26萬(wàn)色的TFTLCD屏幕,分辨率為320×240,可以實(shí)現(xiàn)友好的人機(jī)接口界面顯示。TFTLCD采用了Ilitek公司生產(chǎn)的ILI9320,它可以通過(guò)多種并行通信方式與單片機(jī)通信。TFTLCD屏幕自帶電阻式觸摸屏,利用壓力感應(yīng)進(jìn)行控制,采用TI公司生產(chǎn)的ADS7846作為觸摸屏控制芯片。ADS7846內(nèi)部集成了12位逐次逼近型A/D轉(zhuǎn)換器,轉(zhuǎn)換頻率為125 kHz。使用時(shí),ADS7846通過(guò)兩次A/D轉(zhuǎn)換得到觸點(diǎn)位置的X、Y
坐標(biāo),通過(guò)SPI總線與STM32通信,完成控制信息的輸入。
3 軟件設(shè)計(jì)
3.1 總體軟件設(shè)計(jì)方案
系統(tǒng)初始化完畢后,首先采集酒精濃度傳感器的值,采用do…while()等待傳感器初始化,直到最佳狀態(tài),否則就一直等待。傳感器初始化完成之后,就開(kāi)始進(jìn)入循環(huán)檢測(cè)模式,當(dāng)有人吹氣時(shí),可根據(jù)斜率的變化范圍檢測(cè)到,然后判斷其是否喝酒。當(dāng)檢測(cè)到酒精氣體時(shí),傳感器的電導(dǎo)率將會(huì)隨著氣體濃度的增大而增大,導(dǎo)致與傳感器連接的分壓電阻的電壓增大,單片機(jī)A/D接口的第7個(gè)通道將會(huì)采集此電壓。當(dāng)電壓值增大到一定程度,即酒精濃度達(dá)到設(shè)定的值時(shí),就會(huì)將標(biāo)志位置為喝酒狀態(tài);如果電壓降低,即酒精濃度為零,此時(shí)標(biāo)志位置為正常狀態(tài)。根據(jù)以上兩種不同狀態(tài),蜂鳴器、語(yǔ)音模塊以及LED指示燈進(jìn)行不同的報(bào)警。單片機(jī)不停地進(jìn)行定時(shí)的A/D轉(zhuǎn)換,在轉(zhuǎn)換結(jié)束中斷中進(jìn)行濾波、比較,兩次A/D測(cè)量值的差值既是電壓的變化率,也就是所需要的斜率值,將此值與之前設(shè)定的斜率范圍值進(jìn)行比較,從而也可以判斷出被測(cè)者是否飲酒。LCD會(huì)一直將采集到的值進(jìn)行濾波和取均值后的值進(jìn)行動(dòng)態(tài)顯示。
3.2 斜率算法設(shè)計(jì)
斜率算法的設(shè)計(jì)中主要使用到了單片機(jī)的定時(shí)A/D轉(zhuǎn)換資源,根據(jù)前文所述,需要計(jì)算電壓變換的斜率,即電壓在一定時(shí)間內(nèi)的變化范圍,使用定時(shí)A/D轉(zhuǎn)換功能可輕易地實(shí)現(xiàn)這一需求。
圖7為A/D轉(zhuǎn)換中斷程序流程圖,在主程序中只要根據(jù)此中斷設(shè)置的標(biāo)志位即可作出相應(yīng)的操作,比如語(yǔ)音播放的控制、蜂鳴器報(bào)警、LED燈的閃爍等。
結(jié)語(yǔ)
本文詳細(xì)介紹了基于STM32的酒精濃度探測(cè)儀設(shè)計(jì)方法。該探測(cè)儀具有高精度、高靈敏度、友好的人機(jī)交互、智能化的語(yǔ)音報(bào)警、攜帶方便等優(yōu)點(diǎn),可適用于各種需要對(duì)人體酒精含量進(jìn)行檢測(cè)的場(chǎng)合,尤其適用于酒后駕車的檢測(cè),具有廣闊的應(yīng)用前景。
- STM32單片機(jī)中文官網(wǎng)
- STM32單片機(jī)官方開(kāi)發(fā)工具
- STM32單片機(jī)參考設(shè)計(jì)
評(píng)論