樓澤宇
摘要:目前的車(chē)輛安全防護(hù)系統(tǒng)尚未有針對(duì)車(chē)輛突然傾覆、突然調(diào)頭、沖出路面墜落等狀態(tài)的安全防護(hù)措施。汽車(chē)安全預(yù)警裝置是安裝在汽車(chē)上用于顯示汽車(chē)運(yùn)動(dòng)姿態(tài)信息并在車(chē)輛發(fā)生左右側(cè)傾角或前后俯仰角過(guò)大、轉(zhuǎn)向太快、車(chē)體瞬間拋空時(shí)發(fā)出預(yù)警的裝置。預(yù)警裝置采用高速單片機(jī)及運(yùn)動(dòng)姿態(tài)傳感器進(jìn)行車(chē)輛行駛中的姿態(tài)數(shù)據(jù)采集與計(jì)算分析,可實(shí)時(shí)顯示車(chē)輛的側(cè)傾角、俯仰角、運(yùn)動(dòng)方位角、重力加速度等信息,當(dāng)這些信息數(shù)據(jù)接近影響行車(chē)安全的狀態(tài)時(shí)可發(fā)出預(yù)警提醒,達(dá)到嚴(yán)重程度時(shí)還輸出機(jī)械安全保護(hù)裝置的啟動(dòng)信號(hào),最大限度地提高行車(chē)的安全性。
關(guān)鍵詞:汽車(chē);運(yùn)動(dòng)姿態(tài);安全;預(yù)警
中圖分類(lèi)號(hào):TP274 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2017)05-0206-04
汽車(chē)行駛中的側(cè)傾角、角速度、重力加速度等是反映車(chē)輛運(yùn)動(dòng)狀態(tài)的重要安全信息數(shù)據(jù)。LEADIY-M3C型傳感器可以測(cè)量并輸出三維的角速度、三維的加速度、地球磁場(chǎng)數(shù)據(jù)以及氣壓、溫度、海撥數(shù)據(jù),經(jīng)過(guò)高速單片機(jī)快速運(yùn)算后可以得到反映行駛車(chē)輛運(yùn)動(dòng)姿態(tài)的信息數(shù)據(jù),如車(chē)輛的左右側(cè)傾角、前后俯仰角、轉(zhuǎn)向速率、垂直方向的重力加速度等,利用這些數(shù)據(jù)可以為車(chē)輛是否處在安全行駛狀態(tài)提供判斷依據(jù)。當(dāng)行駛中的車(chē)輛發(fā)生大角度的傾斜、急速轉(zhuǎn)向、車(chē)體拋空時(shí),汽車(chē)安全預(yù)警裝置可發(fā)出預(yù)警信號(hào),當(dāng)有更嚴(yán)重的車(chē)輛傾覆、急剎甩頭、沖出路面等危險(xiǎn)狀態(tài)時(shí),可同時(shí)與車(chē)輛安全保護(hù)執(zhí)行系統(tǒng)聯(lián)動(dòng),為車(chē)輛上的乘客安全提供一種保護(hù)。
1 電路設(shè)計(jì)
圖1為汽車(chē)安全預(yù)警裝置的電路系統(tǒng)結(jié)構(gòu)框圖。預(yù)警裝置主要由傳感器模塊、單片機(jī)處理模塊、信息顯示與報(bào)警輸出模塊、電源模塊等組成。傳感器模塊與單片機(jī)處理器通過(guò)串口進(jìn)行通信,傳感器模塊根據(jù)單片機(jī)指令可發(fā)送三維角速度、三維加速度、姿態(tài)角以及大氣壓、海撥高度、溫度等數(shù)據(jù)。單片機(jī)處理器對(duì)接收到的數(shù)據(jù)進(jìn)行運(yùn)算處理并送液晶顯示模塊實(shí)時(shí)顯示左右傾角、前后俯仰角、運(yùn)動(dòng)方向角、垂直加速度等信息。報(bào)警器具有聲光提醒功能,聯(lián)動(dòng)輸出信號(hào)為機(jī)械執(zhí)行機(jī)構(gòu)提供啟動(dòng)信號(hào)。電源模塊將9-30V的直流電壓變換成5V的穩(wěn)定電源。通信接口用于系統(tǒng)升級(jí)或與汽車(chē)電腦通信。
1.1 單片機(jī)處理器
單片機(jī)處理器采用宏晶公司的STC12C5A60S2單片機(jī),使用44腳的方形貼片封裝(LQFP-44),主要參數(shù)為:
(1)電源電壓:5.5-3.5V
(2)時(shí)鐘頻率:最大35MHZ
(3)數(shù)據(jù)存儲(chǔ)器:1280字節(jié)
(4)程序存儲(chǔ)器:60K字節(jié)
(5)EEPROM:1K 字節(jié)
(6)8通道10位ADC轉(zhuǎn)換器。
圖2為單片機(jī)處理器電路原理圖。主要資源使用情況為:P3.4-P3.7用于中文液晶顯示;P1.2-P1.3用于與姿態(tài)傳感器通信;P3.0-P3.1用于程序下載及工作時(shí)的數(shù)據(jù)輸出;P1.4-P1.7口用于功能按鍵開(kāi)關(guān),為了提高處理器的運(yùn)算速度,晶振采用24MHz。
1.2 姿態(tài)傳感器模塊
姿態(tài)傳感器采用軟芯微科技有限公司的LEADIY-M3C模塊,使用5V供電。其中重力加速度的測(cè)量范圍最大為正負(fù)8g,角速度為2000度/秒,磁場(chǎng)強(qiáng)度測(cè)量范圍為正負(fù)2.5 gauss,測(cè)量時(shí)量程可根據(jù)需要設(shè)定,姿態(tài)傳感器與單片機(jī)處理器采用串行口通信,波特率有115200 Baud、9600 Baud、230400 Baud、460800 Baud四檔可設(shè)定。
1.3 信息顯示電路
中文顯示屏使用中文液晶顯示模塊12864M-3,可顯示4行×8個(gè)中文漢字,由于汽車(chē)安全預(yù)警裝置顯示刷新的速度要求不高,所以使用串行接口方式進(jìn)行通信。顯示屏接口電路如圖3。串口使用時(shí),液晶模塊接口的15腳需接地,其中模塊的20腳為背光燈負(fù)端,與單片機(jī)的P3.4口相連。模塊的4腳為使能端口,與單片機(jī)的P3.7相連。模塊的5腳為數(shù)據(jù)端口,與單片機(jī)的P3.6相連。模塊的6腳為時(shí)鐘端口,與單片機(jī)的P3.5相連。
1.4 通信接口電路
由于宏晶公司的STC系列單片機(jī)可從串口直接下載程序,因此通信接口電路采用USB轉(zhuǎn)換芯片CH340G。CH340G是一款引腳最少的USB轉(zhuǎn)串口芯片,圖4為其典型的應(yīng)用電路。設(shè)計(jì)中應(yīng)注意在使用5V的USB電源時(shí),其第4腳(為3.3V電源接口)應(yīng)接一個(gè)4700PF或0.01μF的小電容,否則電路不能正常工作。另外為了芯片工作時(shí)不影響單片機(jī)電源復(fù)位,在串行口第2、 3腳分別串接一個(gè)二極管和電阻。
1.5 電源電路
電源電路采用DC-DC轉(zhuǎn)換芯片LM2576S,它能將輸入電壓為9V-30V的直流電壓轉(zhuǎn)換為穩(wěn)定的+5V直流電壓,非常適合在汽車(chē)設(shè)備中應(yīng)用。圖5為應(yīng)用電路。
2 程序設(shè)計(jì)
汽車(chē)安全預(yù)警裝置的控制程序采用C語(yǔ)言編程,應(yīng)用Keil_C51編譯器平臺(tái),編程前先安裝Keil μVision2以上版本軟件及USB轉(zhuǎn)串口(CH340G)驅(qū)動(dòng)程序。在程序設(shè)計(jì)調(diào)試中用USB線連接電路板,可直接下載程序運(yùn)行以測(cè)試功能是否正常,調(diào)試編程非常方便。單片機(jī)汽車(chē)安全預(yù)警裝置主要的控制程序有初始化程序、主循環(huán)程序、串口中斷接收數(shù)據(jù)程序、信息運(yùn)算處理程序、顯示程序等。
2.1 初始化程序
單片機(jī)處理器在上電后需要進(jìn)行一系列的初始化工作。汽車(chē)安全預(yù)警裝置控制程序的主要初始化內(nèi)容步驟為:液晶屏初始化、顯示開(kāi)機(jī)信息、設(shè)置串口1及串口2的波特率、開(kāi)串口接收中斷等,最后進(jìn)入主程序循環(huán)。
2.2 主循環(huán)程序
主循環(huán)程序是根據(jù)串行口接收到的傳感器姿態(tài)數(shù)據(jù)不斷運(yùn)算并顯示的過(guò)程,姿態(tài)傳感器輸出的數(shù)據(jù)類(lèi)型是可以設(shè)定的,如選擇接收姿態(tài)幀、溫度氣壓幀、高度幀信息時(shí),參考主循環(huán)程序代碼可編寫(xiě)如下:endprint
//******以下汽車(chē)安全預(yù)警裝置主循環(huán)程序******//
while(1)
{
keywork();//查按鍵信息
if (_Angle_Ok == 1) display_Angle();//姿態(tài)幀語(yǔ)句處理
if (_Temp_Pres_Ok == 1) display_T_P();//溫度氣壓幀語(yǔ)句處理
if(_Altitude_Ok==1) display_Altitude();//高度幀語(yǔ)句處理
switch(STATE) //顯示刷新控制
{
case 0:{Show_INFO1();break;}//顯示屏1信息
case 1:{Show_INFO2();break;}//顯示屏2信息
default:break;
}
}
//******汽車(chē)安全預(yù)警裝置主循環(huán)程序結(jié)束******//
2.3 姿態(tài)數(shù)據(jù)接收程序
姿態(tài)數(shù)據(jù)接收程序使用串口2,主要是根據(jù)姿態(tài)數(shù)據(jù)傳感器輸出的幀格式進(jìn)行幀識(shí)別與存儲(chǔ),如接收到一幀數(shù)據(jù)則給出接收成功標(biāo)志,然后主程序根據(jù)標(biāo)志處理姿態(tài)數(shù)據(jù)。以下為串口2中斷接收姿態(tài)數(shù)據(jù)程序代碼:
//***串口2中斷接收姿態(tài)數(shù)據(jù)程序***//
// A7 7A 72 07 B0 DB 38 21 CB AC 15 姿態(tài)數(shù)據(jù)格式
// A7 7A 74 07 63 D9 00 35 8E 01 00 溫度氣壓數(shù)據(jù)格式
// A7 7A 75 07 12 F9 EB FF FF 00 00 高度幀數(shù)據(jù)格式
//_Angle_Buff[11]; //姿態(tài)數(shù)據(jù)接收緩存
//_Temp_Pres_Buff[11]; //溫度與氣壓接收緩存
//_Altitude_Buff[11]; //高度數(shù)據(jù)
void Lediym3c_rx(void) interrupt 8 using 2
{
static uint8 in1, cnt1, type1;
if (S2CON&0X01) //S2RI=1
{ S2CON &= 0XFE; //S2RI=0
IE2 &=0XFE; //ES2=0 關(guān)串口2中斷
in1 = S2BUF;
if (in1 == 0xA7){cnt1 = 0;type1 = 0;}
_Hard[cnt1] = in1;
if (cnt1 == 2)
{
if (_Hard[0] == 0xA7 && _Hard[1] == 0x7A && _Hard[2] == 0x72){if(_Angle_Ok==0)type1 = 1;else type1=0;}//
else if (_Hard[cnt1 - 2] == 0xA7&& _Hard[cnt1 - 1] == 0x7A && _Hard[cnt1] == 0x74){if(_Temp_Pres_Ok==0)type1 = 2;else type1=0;}
else if (_Hard[cnt1 - 2] ==0xA7 && _Hard[cnt1 - 1] == 0x7A && _Hard[cnt1] == 0x75){if(_Altitude_Ok==0)type1 = 3;else type1=0;}
else type1 = 0;
}
switch (type1)
{
case 1:{ _Angle_Buff[cnt1] = in1;
if (cnt1==10) // 11個(gè)數(shù)據(jù)
{
_Angle_Buff[0] =0xA7;//
_Angle_Buff[1] =0x7A;//
_Angle_Buff[2] =0x72;//
_Angle_Ok = 1;
cnt1 = 0;type1 = 0;
}
break;}
//
case 2:{ _Temp_Pres_Buff[cnt1] = in1;
if (cnt1==10) // // 11個(gè)數(shù)據(jù)
{
_Temp_Pres_Buff[0] =0xA7;//
_Temp_Pres_Buff[1] =0x7A;//
_Temp_Pres_Buff[2] =0x74;//
_Temp_Pres_Ok = 1;
cnt1 = 0;type1 = 0;
}
break;}
case 3: {_Altitude_Buff[cnt1] = in1;
if (cnt1==10) // // 11個(gè)數(shù)據(jù)
{
_Altitude_Buff[0] =0xA7;//
_Altitude_Buff[1] =0x7A;//
_Altitude_Buff[2] =0x75;//
_Altitude_Ok = 1;
cnt1 = 0;type1 = 0;
}
break;}endprint
default: break;
}
cnt1 ++;
}
IE2 |=0X01; //ES2=1 允許串口2中斷
}
//***串口2中斷接收姿態(tài)數(shù)據(jù)程序結(jié)束***//
3 實(shí)驗(yàn)板制作與測(cè)試
實(shí)驗(yàn)板制作與調(diào)試過(guò)程包括:繪制主控板的電路原理圖和PCB圖、PCB打樣、元器件焊接、檢查調(diào)試電路板、編程并將編譯好的程序代碼燒入單片機(jī)、根據(jù)實(shí)際運(yùn)行情況調(diào)試硬件電路和修改控制程序、測(cè)試系統(tǒng)的功能等。圖6為實(shí)驗(yàn)板的印制電路板圖。將汽車(chē)安全預(yù)警裝置實(shí)驗(yàn)電路板安裝調(diào)試好后進(jìn)行進(jìn)行車(chē)載測(cè)試,行車(chē)中顯示數(shù)據(jù)能真實(shí)反映車(chē)體的姿態(tài)及運(yùn)動(dòng)方向,用手翻動(dòng)實(shí)驗(yàn)板達(dá)到傾斜45度以上時(shí)能發(fā)出預(yù)警聲,90度時(shí)能輸出保護(hù)聯(lián)動(dòng)裝置控制信號(hào)。當(dāng)急速轉(zhuǎn)向、舜間自由掉落測(cè)試時(shí)同樣具有預(yù)警和輸出聯(lián)動(dòng)信號(hào)的功能。圖7為汽車(chē)姿態(tài)信息的顯示圖。
4 結(jié)語(yǔ)
用LEADIY-M3C姿態(tài)傳感器設(shè)計(jì)的單片機(jī)汽車(chē)安全預(yù)警裝置具有電路簡(jiǎn)單、程序編程容易、測(cè)量姿態(tài)數(shù)據(jù)穩(wěn)定可靠等特點(diǎn),除了用于汽車(chē)等運(yùn)動(dòng)物預(yù)警控制外,也可以用于地面水平度、建筑物高度、溫度、氣壓等靜態(tài)數(shù)據(jù)的測(cè)量。
參考文獻(xiàn)
[1]張國(guó)敬.一種基于GPS與姿態(tài)儀的航道測(cè)深技術(shù)[J].施工技術(shù),2015,(S1):839-842.
[2]繆奕峰,徐寶綱,李永平.飛行姿態(tài)儀失效時(shí)的模擬飛行分析[J].科技信息,2010,(28):559.
[3]劉躍雷,呂俊軍,吳云超.利用船載GPS姿態(tài)儀提高磁場(chǎng)的測(cè)量精度[J].艦船科學(xué)技術(shù),2009,(10):69-72.
[4]趙鵬,沈庭芝,單寶堂.基于MEMS的微型無(wú)人機(jī)姿態(tài)儀的設(shè)計(jì)[J].火力與指揮控制,2009,(06):164-167.
[5]張曉靜,戰(zhàn)智濤.基于傾角傳感器設(shè)計(jì)的帆船姿態(tài)儀[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2008,(05):54-55.
[6]何松,陳興武.基于MPU9250的無(wú)人機(jī)姿態(tài)信息采集及處理[J].福建工程學(xué)院學(xué)報(bào),2016,(06):587-592.
[7]沈超,周翟和,胡佳佳.基于無(wú)線射頻技術(shù)的移動(dòng)機(jī)器人姿態(tài)解算調(diào)試系統(tǒng)設(shè)計(jì)[J].機(jī)械制造與自動(dòng)化,2016,(06):156-158+175.endprint
數(shù)字技術(shù)與應(yīng)用2017年5期