(武漢工程大學 湖北 武漢 430200)
目前,作為汽車主動安全裝置之一的超速報警系統成為各國汽車行業的重要研發項目之一。通過多次研究超速現象造成的道路交通安全事故,我們得出超速對駕駛員的影響主要有駕駛員的視野變窄、動視力下降、辨別近物的能力下降[1]。目前已上市的超速報警系統主要是采用激光、雷達以及影像傳感等方式。例如,我國四川中測電子科技有限公司生產的測速報警裝置。就國內技術而言,遠近雷達、電子傳感等技術的進一步發展,生產更為先進和人性化的超速報警裝置已成為可能。
本系統基于單片機設計了一種超速報警裝置,主要目的是當汽車行駛在不同限速路段時,依據不同路段速度的要求,利用按鍵輸入初始值來設定汽車最高的行駛速度,同時由液晶顯示屏顯示當前的速度;再利用測速傳感器對汽車行駛速度進行監測,將監測到的信號送入單片機;經由單片機對實時速度與設定速度進行比較。若行駛的速度超過設定的最高速度,則警報器及時報警,提醒駕駛員降低行駛速度。
主控模塊由STC89C51為主體的最小系統構成。包括單片機、晶振電路和復位電路三部分[2]。如圖1所示,12MHz晶振來提供信號脈沖,引腳XTAL0和XTAL1構成振蕩電路產生諧波,此處選用30pf的電容來保持電路的穩定性。本設計采用手動電平復位方式,通過RST(9引腳)端與電源接通來實現。按鍵后,RST端為高電平,上電后電容緩慢充電,RST端電壓逐步轉化到穩定的低電平,復位完畢。

圖1 STC89C51最小系統電路圖
1.按鍵引腳
13腳/14腳:該引腳為單片機的通用IO口,在此系統中作為按鍵輸入接口,按下鍵后將IO口電平拉低對報警速度進行設置[3]。
2.并行I/O引腳
12腳:外部中斷信號輸入端0,該引腳引入霍爾傳感器測速電路,作為速度信號的輸入端。
A3144E系列高溫霍爾效應集成傳感器由穩壓電源,霍爾電壓發生器,差分放大器,施密特觸發器和輸出放大器組成,其輸入為磁感應強度,輸出為數字電壓訊號。霍爾傳感器和產生磁場的磁鋼需配對使用。
1.霍爾傳感器測速原理
測量車速需將車輪轉速轉換為脈沖信號,從而進行脈沖計數。該系統采用了M法(測頻法)來實現轉速測量。根據霍爾效應原理,將兩塊永久磁鋼固定在車輪轉軸的轉盤邊沿,轉盤隨軸旋轉時,磁鋼也同步旋轉。在轉盤下方安裝霍爾器件,轉盤旋轉時受磁鋼的磁場影響,霍爾器件輸出脈沖信號,其頻率和轉速成正比[4]。脈沖信號的周期與車輪的轉速有以下關系[5]。式中,P為車輪轉一圈的脈沖數。
(1)
2.霍爾傳感器與單片機的連接
霍爾傳感器測速電路如圖2所示。

圖2 霍爾測速電路 圖3 LCD1602顯示電路 圖4 聲光報警電路
實際測量時,霍爾傳感器固定在底板上,與霍爾探頭相對的電機軸上固定兩塊磁鋼塊,電機每轉一周,霍爾傳感器發出兩個脈沖信號,將此信號接到C51的P3.2引腳。設定T0定時,每分鐘進入P3.2引腳的脈沖個數即車輛的行駛速度。沒有磁鋼時輸出高電平,有磁鋼時輸出為低電平[6]。
本系統顯示裝置采用可以同時顯示32個字符(即16列2行)的字符型液晶LCD1602。如圖3所示,第3腳V0為液晶的灰度調整,本電路中第3腳與地之間的阻值為1k,與電源間的阻值為10k。第4~14腳都接單片機的I/O口。
本系統采用的是聲光報警器,如圖4所示,9012型PNP三極管相當于開關,單片機P1.0口輸出低電平時,三極管導通,蜂鳴器與發光二極管工作,報警電路工作;P1.0口輸出高電平時,報警電路停止運作。
本系統軟件設計主要包括主程序、脈沖計數程序、顯示模塊以及報警模塊程序的設計[7]。
系統主程序作用是實現硬件初始化、調用計數子程序、顯示和報警等功能。接通電源后系統初始化,提取已設置好的限速值,調用計數子程序完成對車速的檢測,并計算出車輛的實時速度。若測量的速度高于最初設定值,則主程序調用報警子程序,報警裝置發出報警信號;若測量的速度低于最初設定值,則主程序調用顯示子程序[8]。
void main()
{
init();//定時器初始化
lcd_init();//1602顯示屏初始化
while(1)
{
display();//時速顯示子程序
display_shangxian();//設置值顯示子程序
key();//超速值設置
alarm();//報警子程序
}
}
STC89C51含有2個用于定時(T0、T1)和計數的16位可編程定時/計數器。在計數模式下,T0和T1對單片機引腳P3.4和P3.5的外部脈沖進行計數。接通電源后,定時/計數器初始化,霍爾傳感器將速度信號經轉化后輸送到可識別脈沖信號的單片機,開始進行計數。定時器每過1s讀一次外部中斷計數值,此值即為脈沖信號的頻率。脈沖計數流程如圖6所示。

圖6 脈沖計數流程
LCD1602顯示屏由C51驅動進行車速的顯示。通過相應的程序設定將實時顯示出經由計數脈沖計算的車速(r/min)、最高限定車速值和超速警告等信息。
void lcd_init()//液晶初始化函數
{
uchar a;
write_1602com(0x38);//設置液晶工作模式:16*2行顯示,5*7點陣,8位數據
write_1602com(0x0c);//開顯示不顯示光標
write_1602com(0x06);//整屏不移動,光標自動右移
write_1602com(0x01);//清顯示
write_1602com(0x80);//顯示固定符號從第一行第1個位置之后開始顯示
for(a=0;a<16;a++)
{
write_1602dat(tab1[a]);//向液晶屏寫固定符號部分
}
write_1602com(0x80+0x40);//顯示固定符號寫入位置,從第2個位置后開始顯示
for(a=0;a<16;a++)
{
write_1602dat(tab2[a]);//顯示固定符號
}
}
根據道路車輛行駛的速度要求,將設置的最高車速連接到電源后報警模塊進行初始化。將單片機計算得到的車輛實時速度與設定值進行比較,若實時速度大于設定的最高速度,則報警器進行報警來提醒駕駛員減速。報警程序流程如圖7所示。
void alarm()
{
if(RPM>=shangxian)//判斷是否超過設定速度值
BUZZ=0;//超過蜂鳴器置0
else
BUZZ=1;//未超置1
}
此次系統設計中,我們使用Keil c51和Proteus軟件來進行程序編寫和系統仿真[9]。仿真結果分析如下:
(1)完成電路連接并載入程序,超速報警系統開始運行。如圖8所示,LCD1602顯示屏顯示設定的最高速度為10000r/min,顯示正常。
(2)調節電位器來改變電機轉速,當轉速值超過10000r/min時,報警裝置開始運作,如圖9所示,而當轉速再次調整降到10000r/min以下時,報警裝置停止運行,系統繼續正常運行。

圖8 初始化仿真 圖9 報警狀態仿真
本論文設計的超速報警器,其仿真結果顯示該裝置運行良好,并且所設計的功能都可以很好的完成。它能對汽車行駛速度進行監測,在汽車的實時行駛速度超過限定速度時提醒駕駛員及時降速,從根本上規避了超速駕駛汽車這一交通安全隱患。由于社會的急速發展,汽車主動安全的研究也快速被人們重視起來。超速報警器作為一種安全、有效的新型裝置為解決交通安全問題提供了一個相當合適的方案。