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