青島理工大學 劉艷偉 張 民 劉 婷
在酒駕事故中,很多是由于駕駛員飲酒過量導致的,當體內酒精濃度過高時,大腦反應速度會減慢,肢體不受控制,表情就會有異常,呼出的氣體也會帶有酒味,不飲酒或者飲少量的酒就不會導致以上癥狀,也就是說,當體內的酒精濃度不高時,就不會因飲酒引起危險事故?,F(xiàn)在,酒精的測量技術已經(jīng)有了不少的提升,有很多先進微處理器的酒精測試儀已經(jīng)被商品化。禁止酒后駕車的規(guī)定已經(jīng)在越來越多的國家開始,傳統(tǒng)的法醫(yī)血液酒精分析和精確的呼出氣體酒精測試相比,有很大的差距,例如,氣體酒精濃度測試可進行現(xiàn)場處理,可以進行無毒采樣,使交通控制更加高效。所以,需要設計一個酒精濃度檢測儀來測量駕駛員體內酒精濃度。
傳感器MQ-3根據(jù)酒精濃度的變化,其阻值也會隨著變化,通過取樣電阻的電壓變化表現(xiàn)出來;人體血液中酒精濃度不同,其呼出的氣體中酒精濃度也會不同。把MQ-3輸出的電壓以取樣電壓的形式送到模數(shù)轉換器,進行A/D轉換,將轉換后的數(shù)據(jù)送到單片機進行處理,如果酒精濃度的數(shù)值超過了所設定的報警值,則報警器報警,相應的二極管發(fā)光,數(shù)碼管顯示酒精濃度的值。
(1)傳感器電壓輸出范圍為0-5V。
(2)模數(shù)轉換芯片ADC0832電壓輸入范圍為0-5V,分辨率為8位,輸入輸出電平與TTL/CMOS相兼容。
(3)單片機具有256字節(jié)RAM標準功能。
(4)數(shù)碼管采用動態(tài)顯示方式。
單片機酒精濃度檢測儀使用MQ-3酒精傳感器采集氣體信號,并通過模數(shù)轉換器將模擬信號轉換為數(shù)字信號送至單片機,由單片機對數(shù)字信號進行分析處理,并將所得的結果通過數(shù)碼管顯示出來。鍵盤采用3個獨立鍵盤設置不同環(huán)境下酒精濃度的不同報警值,如果所檢測的酒精濃度超出了所設定的報警值,由蜂鳴器和LED燈進行聲光報警。顯示部分由1個四位一體共陽數(shù)碼管顯示當前數(shù)據(jù),數(shù)碼管由4個三極管來控制位選。
硬件設計電路框圖如圖3-1所示。
圖3-1 硬件方案總體框圖
由于周圍空氣中的氣體成分可能會影響到傳感器測量的準確性,因此傳感器要對其他氣體不敏感,只能對酒精氣體敏感,故選用MQ-3型氣敏傳感器,它有很高的靈敏度、良好的選擇性、可靠的穩(wěn)定性和長期的使用壽命。MQ-3型氣敏傳感器是由微型Al2O3,SnO2敏感層、陶瓷管、加熱器和測量電極構成的敏感元件固定在不銹鋼或者塑料的腔體內,加熱器是一個必不可少的元氣件,它為氣敏元件的工作提供了必要的工作條件。加熱回路與信號輸出回路組成了傳感器的標準回路,其中,傳感器表面電阻值的變化,可由信號輸出回路準確反映;通過負載電阻RL上的輸出電壓,就能知道表面電阻的變化。為了使測量的結果更精確,誤差減到最小,需要有合適的溫度,正常情況下,在測量前需要將傳感器先預熱3-5分鐘。MQ-3標準回路如圖3-2所示。
表3-1 血液酒精含量臨界值一覽表
圖3-2 MQ-標準回路
科學研究已經(jīng)證明,血液中的酒精含量與呼氣中的酒精含量有如下的關系:
BAC(in mg/L)=BrAC(in mg/L)x2200
其中,BAC表示血液中酒精的濃度,BrAC表示呼氣中酒精的濃度。
由表3-1血液酒精含量臨界值就可以對駕駛人員的酒駕行為進行定性,如血液酒精濃度低于200mg/L,可以對其酌情處理;血液中的酒精含量大于200mg/L而低于800mg/L,則是酒后駕駛,大于或等于800mg/L則是醉酒駕駛[2]。
通常片選使能端CS、芯片時鐘輸入端CLK、數(shù)據(jù)信號輸出端DO、數(shù)據(jù)信號輸入端DI與單片機相連接。由于DI端與DO端在通信時并不是都有效的,將DO端和DI端在同一根數(shù)據(jù)線上使用,ADC0832不工作時,其CS輸入端為高電平,CLK和DO/DI的電平任意。進行A/D轉換時,CS處于低電平,由單片機向CLK輸入脈沖,在第1個脈沖的下沉之前DI端為高電平,DI端在第2、3個脈沖下沉之前輸入2位數(shù)據(jù)用于選擇通道功能,CH0為模擬輸入通道0,CH1為模擬輸入通道1。如果2位數(shù)據(jù)都為1時,對CH1進行單通道轉換,分別為1和0時,只對CH0進行轉換;分別為0和1時,用CH0作為負輸入端,CH1則作為正輸入端;都為0時,CH1則作為負輸入端,CH0作為正輸入端。第3個脈沖下沉以后,DI端不再輸入,開始利用DO端,對數(shù)據(jù)進行讀取。從第4個脈沖下沉開始由DO端輸出數(shù)據(jù)最高位DATA7,每下沉一個脈沖,DO端就相應輸出一位數(shù)據(jù)。到第11個脈沖輸出最低位DATA0,一個字節(jié)輸出完成;然后從第11個字節(jié)的下沉輸出DATD0,連續(xù)輸出8位數(shù)據(jù),到第19個脈沖時數(shù)據(jù)輸出完成,一次完整的A/D轉換結束,將CS置高電平[3]。
每一個LED顯示塊由8個發(fā)光二極管構成,每一個發(fā)光二極管對應一個段,共8段。為了使LED顯示器顯示出不同的字型,需要把不同段的發(fā)光二極管點亮,這就需為LED顯示器提供代碼,因為這些代碼可使LED相應的段發(fā)光,從而顯示出不同數(shù)字和符號,該代碼稱為段碼。
由N個LED顯示塊可拼成N位的LED數(shù)碼顯示器。每一個LED顯示塊由1位位選線和8根段碼線構成。段碼線控制字符的字型,位選線控制LED顯示位的亮或暗,由于采用動態(tài)顯示,在同一時刻,只有選通的那一位顯示出字符,其他3位LED是熄滅的。按照這樣,不斷的循環(huán),就能使各位顯示出將要顯示的字符。由于視覺暫留作用和LED的余輝,只要時間間隔足夠小,則能給人造成同時亮的假象,達到同時亮的效果。
3個鍵盤分別接單片機的3個引腳。使用時需先將P1.0~P1.2全部置1,然后判斷是否有鍵按下,如果鍵盤輸入端變?yōu)榈碗娖?,表明此鍵盤已按下,如果鍵盤輸入端為高電平,表明此鍵沒有被按下,如圖3-3所示。在軟件編程的時候,需注意鍵盤消抖。
當輸入端為高電平時蜂鳴器不報警。而當輸入端為低電平的時候,蜂鳴器就會發(fā)出報警聲音。報警電路如圖3-4所示。
圖3-3 獨立鍵盤電路
圖3-4 蜂鳴器報警電路
主程序實現(xiàn)的功能:與硬件相結合實現(xiàn)酒精濃度檢測系統(tǒng)的各個功能。主要是檢測與顯示,見圖4-1所示。
圖4-1 主程序流程圖
圖4-2 模數(shù)轉換流程圖
模數(shù)轉換器的功能是將模擬信號轉化為數(shù)字信號,傳送給單片機。ADC0832轉換的流程圖見圖4-2所示。
系統(tǒng)設定報警值并轉換為壓縮的BCD碼存放在兩個存儲單元中,這些在報警子程序執(zhí)行之前實現(xiàn)。當傳感器輸入值進行A/D轉換后,就會調用比較程序,經(jīng)過數(shù)據(jù)處理后顯示的測量值與報警值比較,如果小于報警值就繼續(xù)執(zhí)行顯示程序。若大于報警值則將通過單片機進行聲光報警。
當傳感器檢測到被測氣體時,傳感器MQ-3調整電路決定了電壓每升高0.1V,實際被測氣體的濃度增加20ppm(1ppm=1mg/kg=1mg/L常用來表示氣體濃度,或者溶液濃度),也就是說,數(shù)字量電壓值1000mV對應血液中的的酒精濃度為200mg/L,電壓值與血液中的酒精濃度值在數(shù)值上的關系為:B(mg/L)=A(mV)x0.2,其中B代表血液中的酒精濃度值,單位為mg/L,A代表數(shù)字量電壓值,單位為mV,我們根據(jù)這個關系就可以在單片機里面將測得的數(shù)字量電壓值轉換為血液中的酒精濃度值。硬件與軟件聯(lián)合,對本實物進行調試,通過檢測,可得出以下結果,如表5-1所示。
表5-1 呼氣酒精含量、血液酒精濃度對應關系
通過軟、硬件聯(lián)合調試,從實驗結果中,可以得出呼出氣體中酒精濃度與血液中酒精濃度關系,與BAC(in mg/L)=BrAC(in mg/L)x2200數(shù)值關系相對應,從而可以確定此系統(tǒng)的準確性滿足設計基本要求,達到設計指標,從而也驗證了本次設計的準確性。
本設計以AT89S52為主,設計過程包括硬件設計和軟件編寫。硬件電路部分結構清晰、使用簡單。軟件部分采用模塊化設計思想,便于調試和修改。該系統(tǒng)具有以下意義:(1)提高人們的法律意識;(2)能夠便捷,準確,安全的檢測人體內的酒精濃度及監(jiān)測空氣中的酒精含量。體積小、性價比高、功耗低的特點,使其具有一定的使用和推廣價值。
[1]杜鵬.直流磁控濺射法設備SnO2薄膜及其氣敏性研究[D].天津:河北工業(yè)大學,2006.
[2]李瑞生.論危險駕駛罪的行為構成[D].新疆警官高等??茖W校,2012.
[3]仉冠生.表面肌電信號檢測系統(tǒng)的研究[D].河北工業(yè)大學,2007.
[4]Power Management Techniques for the F30X AND F31X[-Q].Silicon Laboratories Silicon Laboratories,2003,ANl38-DSll.