丁亞東,熊剛
(楊凌職業(yè)技術(shù)學(xué)院,陜西 楊凌 712100)
大約50%~60%的交通事故與酒后駕駛有關(guān),酒后駕駛已經(jīng)被列為車禍致死的主要原因[1]。在中國,每年由于酒后駕車引發(fā)的交通事故達(dá)數(shù)萬起;酒后駕車的危害觸目驚心,已經(jīng)成為交通事故的第一大“殺手”。基于此,本文將充分結(jié)合酒精濃度檢測的實際需求,介紹一種智能防酒駕裝置,以交通法規(guī)定的酒駕閾值進(jìn)行精確的檢測,在發(fā)現(xiàn)酒駕的第一時間發(fā)出報警和禁止車輛啟動,力求將酒駕扼殺在搖籃之中。
裝置包括數(shù)據(jù)采集模塊、數(shù)據(jù)轉(zhuǎn)換模塊、數(shù)據(jù)中心處理模塊、信息顯示模塊、報警模塊等部分,總體設(shè)計方案如圖1所示。裝置工作時監(jiān)測車內(nèi)各座位酒精濃度含量,司機(jī)位的參數(shù)已按交通法規(guī)定的酒駕及醉駕濃度含量標(biāo)準(zhǔn)進(jìn)行了閾值設(shè)定,當(dāng)檢測到司機(jī)酒精濃度閾值超標(biāo)后系統(tǒng)會馬上進(jìn)行聲光報警,同時設(shè)備屏幕上會顯示出相應(yīng)的酒精濃度含量,并且執(zhí)行設(shè)備動作,切斷車輛啟動系統(tǒng)電源,禁止車輛啟動,其他記錄系統(tǒng)分別進(jìn)行了閾值設(shè)定。當(dāng)其中一位或多位酒精濃度含量超過閾值后,設(shè)備屏幕會進(jìn)行超標(biāo)提示,但不會發(fā)出報警聲音。

圖1 系統(tǒng)總體方案框圖
系統(tǒng)使用STC12C5A60S2單片機(jī)作為核心處理器,負(fù)責(zé)將傳感器采集到數(shù)據(jù)以及數(shù)據(jù)轉(zhuǎn)換單元的數(shù)據(jù)進(jìn)行運(yùn)算處理,經(jīng)處理后控制TFT液晶屏進(jìn)行顯示,當(dāng)采集到的酒精濃度值超過報警閾值后進(jìn)行聲光報警;系統(tǒng)設(shè)計時將單片機(jī)PO口作為液晶屏數(shù)據(jù)口,P2.0為A/D轉(zhuǎn)換芯片的SDA控制口,P2.1為A/D轉(zhuǎn)換芯片的SCL控制口,P2.2為SD卡的CS控制口,P2.3-P2.7均為液晶屏控制口,P1.0-P1.3為傳感器的數(shù)字量采集控制口,P1.4、P1.5為系統(tǒng)預(yù)留按鍵控制口,P1.6、P1.7分別為SD卡的MISO和SCK控制口,P3.0、P3.1分別為系統(tǒng)的RXD和TXD程序下載口,P3.2為紅外遙控器控制預(yù)留接口,P3.3為SD卡的MOSI控制口,P3.4為聲光報警控制接口,P3.5-P3.7均為系統(tǒng)功能擴(kuò)展預(yù)留接口,在系統(tǒng)電源管腳上并聯(lián)一個0.1UF去耦電容,可使系統(tǒng)不受高頻尖刺波形的干擾以提高系統(tǒng)工作的穩(wěn)定性和可靠性[2-5],數(shù)據(jù)處理單元電路原理圖如圖2所示。

圖2 數(shù)據(jù)處理單元原理圖
數(shù)據(jù)采集單元為整個系統(tǒng)提供準(zhǔn)確穩(wěn)定的基礎(chǔ)數(shù)據(jù),并實時監(jiān)視著整個環(huán)境的參數(shù)變化,同時將數(shù)據(jù)傳輸給A/D轉(zhuǎn)換器件,本裝置采用MQ-3酒精傳感器模塊進(jìn)行酒精濃度的監(jiān)測。MQ-3酒精傳感器模塊主要由ZYMQ-3氣體傳感器和LM393電壓比較器構(gòu)成,ZYMMQ-3氣體傳感器負(fù)責(zé)采集氣體中的酒精含量并以電壓值輸出,LM393電壓比較器負(fù)責(zé)將傳感器采集到的電壓值與電位器設(shè)定值比較,并將比較結(jié)果以數(shù)字量輸出。模塊可同時輸出一路模擬量及一路數(shù)字量信號,調(diào)節(jié)電位器可控制數(shù)字量信號輸出的閾值,基于傳感器模塊的這一特點,系統(tǒng)在進(jìn)行軟件設(shè)計的時候加入了硬件抗干擾,可有效濾除系統(tǒng)工作中的干擾數(shù)據(jù),提高工作效率。
系統(tǒng)采用PCF8591進(jìn)行A/D轉(zhuǎn)換,該器件通過成熟的I2C總線來保證將傳感器的數(shù)據(jù)及時穩(wěn)定地傳輸給CPU。其功能包括多路復(fù)用模擬輸入、片上跟蹤和保持功能、8位模數(shù)轉(zhuǎn)換和8位數(shù)模擬轉(zhuǎn)換[6-9]。芯片可支持四路模擬量同時輸入,具體電路如圖3所示。

圖3 數(shù)據(jù)轉(zhuǎn)換單元原理圖
本系統(tǒng)以TFT240×320液晶屏作為信息顯示單元,負(fù)責(zé)將CPU處理的各類數(shù)據(jù)顯示,包括酒精濃度顯示,報警顯示,制作單位顯示,產(chǎn)品名稱顯示,歡迎logo顯示等,設(shè)計采用TFT彩屏的8位數(shù)據(jù)口顯示,同時支持SD卡圖片載入功能,顯示效果佳,TFT液晶屏與單片機(jī)的接口電路如圖4所示。
由于系統(tǒng)酒精監(jiān)測采樣有模擬量輸入及數(shù)字量輸入兩種方式,控制回路電路均為數(shù)字量I/O,故在系統(tǒng)供電單元采用雙電源供電的設(shè)計方式以實現(xiàn)模擬電路和數(shù)字電路之間的隔離,確保系統(tǒng)工作的穩(wěn)定可靠,同時系統(tǒng)供電單元的設(shè)計為適應(yīng)各類車型的不同電壓差異特別做了特殊適應(yīng)處理,不同車系的電瓶供電電壓各不相同,大致分布在12 V~24 V之間。本系統(tǒng)設(shè)計了1個寬電壓供電輸入電路,可支持DC9~36 V供電,并且為采集電路和控制電路分別進(jìn)行了獨立供電設(shè)計,在電路中加入了反接保護(hù)功能,可有效防止使用中的誤操作。主控電路可在DC9~36 V輸入范圍之內(nèi)保持輸出固定在DC 5 V/1 A,電路如圖5所示。酒精采樣電路(模擬電路)使用LM2596-5.0

圖4 信息顯示單元原理圖

圖5 主控電路供電原理圖

圖6 酒精采樣電路供電原理圖
依據(jù)系統(tǒng)功能按照結(jié)構(gòu)化程序設(shè)計的思想,系統(tǒng)總體軟件設(shè)計框圖如圖7所示。

圖7 系統(tǒng)總體軟件設(shè)計框圖
主模塊主要實現(xiàn)的功能有SD卡的初始化,TFT液晶屏的初始化,酒精濃度采集并送顯示,主駕駛位酒精濃度閾值判斷,副駕駛位酒精濃度閾值判斷,后座位左酒精濃度閾值判斷,后座位右酒精濃度閾值判斷。主模塊的程序流程圖如圖8所示。

圖8 主模塊程序流程圖
在單片機(jī)上SD卡以SPI模式運(yùn)行,本設(shè)計在SPI模式下僅需完成SD卡的初始化和讀SD卡操作即可完成功能設(shè)計,同時在SD卡程序模塊中包含了程序調(diào)用所需的圖片顯示子函數(shù),通過特定圖片地址查看軟件獲取放入SD中的圖片地址,程序運(yùn)行中只需調(diào)取相應(yīng)的圖片地址并檢測是否寫到屏幕邊緣即可完成一張圖片的顯示。讀SD卡流程如圖9所示。

圖9 讀SD卡流程圖
液晶屏顯示初始化主程序包括控制器初始化子函數(shù)、漢字字模調(diào)取子函數(shù)、字符串轉(zhuǎn)換子函數(shù)以及清屏子函數(shù)等組成。模塊中主要完成了對液晶顯示屏的初始化,后續(xù)在此基礎(chǔ)上進(jìn)行局部清屏或者全屏清屏后使用字符串轉(zhuǎn)換子函數(shù)可顯示所需內(nèi)容,液晶屏初始化流程圖如圖10所示。

圖10 液晶屏顯示初始化主程序
酒精濃度采集以I2C總線通信方式將傳感器采集到的酒精濃度數(shù)據(jù)傳輸至單片機(jī),然后將數(shù)據(jù)處理后送液晶屏指定位置顯示,同時還結(jié)合MQ-3傳感器模塊的特性,做了抗干擾處理,當(dāng)被采集濃度達(dá)不到傳感器采集的觸發(fā)值時(觸發(fā)值可由硬件進(jìn)行調(diào)整設(shè)置),模擬量不進(jìn)行采集工作,酒精濃度采集模塊流程圖如圖11所示。

圖11 酒精濃度采集模塊
報警模塊設(shè)計時采用了逐級掃描的方式,在程序設(shè)計中分別對4路監(jiān)測子程序進(jìn)行了不同閾值的設(shè)置。1路為主駕駛位,報警優(yōu)先級最高,設(shè)置了兩級報警,第一級為>0 mg/100 ml進(jìn)行聲光報警,第二級為>20 mg/100 ml進(jìn)行聲光報警,同時液晶屏也會切換到報警畫面且報警聲劇烈急促;2路為副駕駛位,設(shè)置報警值為>20 mg/100 ml發(fā)出聲光報警;3、4路位后座位左和右,設(shè)置報警值為>20 mg/100 ml發(fā)出聲光報警。
裝置軟件設(shè)計完成后,制作樣機(jī)并且進(jìn)行測試,樣機(jī)如圖12所示。

圖12 控制器樣機(jī)
環(huán)境溫度28 ℃,室內(nèi)面積20 m2;測試工具為FAR-555專用酒精濃度傳感器,測試數(shù)據(jù)為標(biāo)準(zhǔn)值。測試時,系統(tǒng)上電運(yùn)行,等待4路傳感器初始化完成后進(jìn)行酒精濃度檢測,同時使用FAR-555專用酒精濃度傳感器進(jìn)行酒精濃度檢測;測試中采用濃度為55°的某品牌酒,倒入少許至測試容器中,靠近傳感器進(jìn)行檢測。當(dāng)檢測距離固定的情況下,F(xiàn)AR-555檢測到酒精濃度為20 mg/100 ml時,系統(tǒng)1路傳感器檢測到為22 mg/100 ml,2路傳感器檢測到為23 mg/100 ml, 3路傳感器檢測到為24 mg/100 ml, 4路傳感器檢測到為32 mg/100 ml,此時測試出傳感器有誤差,故在程序中加入了算法補(bǔ)償,將傳感器檢測到的值進(jìn)行向下補(bǔ)償從而達(dá)到更加接近專用酒精濃度傳感器的檢測值。然后進(jìn)行10組數(shù)據(jù)測試,測試數(shù)據(jù)如表1所示。

表1 數(shù)據(jù)測試表 (mg/100 ml)

續(xù)表1 (mg/100 ml)
分析測試結(jié)果,最大絕對誤差3 mg/100 ml,最小絕對誤差-2 mg/100 ml,能夠滿足使用要求;在數(shù)據(jù)超限時,第1路聲光報警及顯示警示界面,2、3、4路聲光報警,裝置工作正常。
在日常駕車中對酒精濃度監(jiān)測的要求,主要是保證酒精濃度在一定溫度范圍內(nèi)被及時的監(jiān)測出來并能準(zhǔn)確而醒目地報警。本文以單片機(jī)為控制核心,分析智能防酒駕裝置的設(shè)計過程及實現(xiàn)方法,并且進(jìn)行了樣機(jī)測試。測試結(jié)果表明,該裝置的工作穩(wěn)定性高、沒有誤報警、測量誤差小、性價比高、實用性強(qiáng),達(dá)到了預(yù)期效果,具有一定的應(yīng)用價值。