文獻標(biāo)識碼: A
文章編號: 0258-7998(2014)07-0021-03
近些年,汽車工業(yè)已發(fā)展成國家支柱性產(chǎn)業(yè),同時在國家經(jīng)濟發(fā)展戰(zhàn)略中具有十分重要的地位。據(jù)美國公路統(tǒng)計局統(tǒng)計,2001~2007年美國每年發(fā)生汽車側(cè)翻事故高達29 800起,僅次于正面碰撞的行車事故。汽車側(cè)翻[1]主要由汽車側(cè)向加速度和側(cè)傾角決定。隨著用于汽車電子和汽車狀態(tài)監(jiān)測的MEMS傳感器技術(shù)的發(fā)展,可以對其進行監(jiān)測,提高其主動安全性能。本文設(shè)計的車載通信系統(tǒng)有3大創(chuàng)新點:(1)基于MEMS傳感器預(yù)測汽車狀態(tài),在汽車側(cè)翻后實現(xiàn)自動求援,按一下主控界面的求救按鈕,求救短信(包括車輛的位置)會自動發(fā)送給急救中心,從而實現(xiàn)第一時間救援的目的。(2)通過GPS進行車輛導(dǎo)航,向信息數(shù)據(jù)中心傳輸車輛的經(jīng)度、緯度、速度等實時的車輛信息,這樣可以實時地追蹤車輛的信息,便于車輛的調(diào)控,最后實現(xiàn)智能交通的最終目標(biāo)。(3)車載通信系統(tǒng)可以集電話和短信功能為一體,運用時和手機一樣進行撥號,即可與外界實現(xiàn)交流。
1 車載嵌入式平臺的硬件
整個車載嵌入式平臺的硬件可以包括幾個部分:(1)采集汽車6自由度運動數(shù)據(jù)的數(shù)據(jù)采集模塊;(2)車載嵌入式平臺的主控制器;(3)負責(zé)遠程通信、汽車地理位置定位的GSM/GPRS/GPS模塊。其硬件搭建的原理框圖如圖1所示。
1.1 Windows CE 6.0操作系統(tǒng)
Windows CE具有快速的開發(fā)能力,與Linux等嵌入式系統(tǒng)相比,Windows CE系統(tǒng)具有開發(fā)周期短、開發(fā)人員上手快的特點。Windows CE具有強大的開發(fā)基礎(chǔ),提供了眾多的模塊化組件,為開發(fā)者開發(fā)性能可靠、功能各異的多樣化、個性化產(chǎn)品提供了方便[2]。
1.2 主控制器S3C6410
基于嵌入式的車載通信系統(tǒng)需要存儲大量汽車運行的數(shù)據(jù),實現(xiàn)GSM/GPRS通信、串口通信、界面顯示等功能。本文選擇三星公司的S3C6410芯片,它是具有ARM1176JZF-S處理器一切特性的嵌入式處理器芯片,為需要大量數(shù)據(jù)存儲的嵌入式系統(tǒng)設(shè)計提供了眾多選擇。此外,它還具有多媒體加速特性和USB特性。
1.3 車輛姿態(tài)測量模塊設(shè)計
為了減輕嵌入式系統(tǒng)的負擔(dān),這里專門開發(fā)了10自由度的運動參數(shù)測量和姿態(tài)解算模塊(IMU)。該IMU模塊上布置了3個MEMS傳感器芯片:MPU6050(測量汽車6個自由度的運動)、HMC5883(三軸地磁傳感器),BMP180(氣壓高度傳感器),均通過I2C與STM32F單片機相連,同時傳感器的數(shù)據(jù)中斷引腳與STM32F的IO引腳相連。使得傳感器完成一輪ADC輪換后,STM32F就讀取最新采集到的測量數(shù)據(jù),快速響應(yīng)姿態(tài)的變化。這樣的連接使得控制器擁有最大的主動權(quán),可快速地獲得各傳感器的狀態(tài)和轉(zhuǎn)化結(jié)果。
1.4 SIM908
本文選擇SIM Com公司的SIM908芯片作為GSM/GPRS通信模塊以及GPS定位模塊。此芯片融合了GSM/GPRS通信和GPS定位功能,簡化了硬件設(shè)計,并節(jié)省了空間和功耗。
2 車載嵌入式平臺的軟件實現(xiàn)
在基于汽車主動安全的車載嵌入式平臺硬件的設(shè)計基礎(chǔ)上,進行平臺的程序設(shè)計。平臺軟件設(shè)計包括三方面:(1)側(cè)翻預(yù)警系統(tǒng)的軟件設(shè)計;(2)串口通信的設(shè)計;(3)GSM/GPRS/GPS通信設(shè)計。其程序的總體設(shè)計流程圖如圖2所示。
2.1 汽側(cè)翻預(yù)警程序設(shè)計流程圖
側(cè)翻預(yù)警算法的軟件實現(xiàn)主要包括兩方面:(1)利用汽車6自由度數(shù)據(jù)進行姿態(tài)結(jié)算,得到汽車的實時側(cè)傾角,并計算出汽車側(cè)翻預(yù)警危險判別指示;(2)利用預(yù)測預(yù)報技術(shù)對側(cè)翻危險判別指示進行預(yù)測預(yù)報,從而實現(xiàn)汽車側(cè)翻預(yù)警[3]。其軟件實現(xiàn)流程圖如圖3所示。
預(yù)測預(yù)報算法的核心程序如下:
float
I[36]={1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0, 0,0,0,0,1};
Cheng(PN,QN,K,6,6,1);
float QNP[6]={0};Cheng(QN,PN,QNP,1,6,6); float QPQ[1]={0};
Cheng(QNP,QN,QPQ,1,6,1);QPQ[0]=QPQ[0]+1;
float K1[6]={0};constcheng(K,1/QPQ[0],K1,6);constcheng(K1,1,K,6);//更新PN
float P1[36]={0};Cheng(K,QN,P1,6,1,6);constcheng(P1,-1,P1,36);jiafa(P1,I,P1,36);
float P2[36]={0};Cheng(P1,PN,P2,6,6,6);constcheng(P2,1,PN,36);
for(int i=5;i>0;i--)
{ QN[i]=QN[i-1];}
QN[0]=-x;
//更新an
float e[6];constcheng(K,x-xforecast,e,6);jiafa(an,e,an,6);
2.2 串口通信設(shè)計
數(shù)據(jù)采集模塊以及無線通信、GPS定位模塊之間的通信為串口通信。因此,實現(xiàn)在Windows Embedded CE 6.0系統(tǒng)下的串口通信至關(guān)重要。本文在Visual Studio 2005中選擇采用串口API函數(shù)進行Windows Embedded CE 6.0系統(tǒng)下的串口通信程序設(shè)計。在Windows Embedded CE 6.0中一般采用Close Handle來關(guān)閉串口,Create File函數(shù)來打開串口。對于串口數(shù)據(jù)的讀取,本文采用Read File函數(shù),并采用事件觸發(fā)形式來觸發(fā)數(shù)據(jù)讀取。
2.3 GSM/GPRS/GPS通信設(shè)計
2.3.1 GSM通信
通過GSM模塊進行短信息的發(fā)送與接收是利用AT指令來實現(xiàn)的。主控制器通過串口向GSM模塊發(fā)生相應(yīng)的AT命令[4],就可操縱模塊進行相應(yīng)的功能實現(xiàn)。AT 指令是以 AT 開頭、以字符結(jié)束的字符串,AT 指令的響應(yīng)數(shù)據(jù)包在中間。每個指令執(zhí)行成功與否都有相應(yīng)的返回。AT命令需以AT開頭,加上相應(yīng)命令,并以回車符號結(jié)束。
GSM通信程序過程為:先進行GSM系統(tǒng)的初始化,包括短信息格式、短信服務(wù)中心號碼設(shè)置等;然后檢測網(wǎng)絡(luò)信號強度,有信號時才進行短消息的發(fā)生和接收。GSM通信流程圖如圖4所示。
首先進行系統(tǒng)初始化,首先是負責(zé)GSM通信的串口初始化,即打開相應(yīng)串口,設(shè)置串口波特率、校驗位、數(shù)據(jù)位、停止位,這里設(shè)置成115 200 b/s,無校驗位,8 bit數(shù)據(jù)位、1位停止位。然后是GSM芯片初始化,GSM初始化步驟為:首先通過串口發(fā)送"AT"字符,確定模塊是否存在,如果GSM芯片返回OK則模塊存在;接著發(fā)送字符"AT+CLIP=1",此命令用來設(shè)置來電顯示,以方便駕駛員使用系統(tǒng)電話功能;然后發(fā)送"AT+CMGF=0",此命令用來設(shè)置短信格式為PDU格式,此格式短信字符為UNICODE格式字符,可發(fā)送中文短信息;成功后,緊接著依次發(fā)送命令"AT+CGPSPWR=1"以及命令"AT+CGPSRST=1",這兩個命令用來打開GPS定位功能,此命令發(fā)送后,GPS冷啟動一般需要4~5 min時間。系統(tǒng)初始化后,利用命令“AT+CSQ”檢測GSM信號是否正常。信號正常則可使用短信功能和電話功能。
2.3.2 GPRS的數(shù)據(jù)傳輸設(shè)計
GPRS通用無線分組業(yè)務(wù)俗稱2.5G業(yè)務(wù),是利用當(dāng)前GSM網(wǎng)絡(luò)進行數(shù)據(jù)無線分組傳輸處理。GPRS可實現(xiàn)無線設(shè)備通過GPRS網(wǎng)絡(luò)與Internet網(wǎng)絡(luò)進行IP連接,利用GPRS無線網(wǎng)絡(luò)實現(xiàn)車載終端與遠程控制中心或服務(wù)中心的無線通信,可將行車數(shù)據(jù)通過網(wǎng)絡(luò)無線傳輸?shù)街行?,以減少車載終端的存儲壓力。Internet網(wǎng)絡(luò)通信一般有兩種方式,即UDP方式和TCP/IP方式。UDP方式通信不需對方回復(fù)確認,因此實時性強,但不能保證數(shù)據(jù)的完整性;TCP/IP方式通信時,每次數(shù)據(jù)傳輸需對方確認接收完整后才進行下一次數(shù)據(jù)傳輸,因此實時性較弱,但其能保證數(shù)據(jù)的完整性。在控制中心或服務(wù)中心實現(xiàn)基于Internet網(wǎng)絡(luò)的通信時,為保證通信質(zhì)量以及數(shù)據(jù)完整性,一般采用TCP/IP方式通信。車載通信終端利用GPRS網(wǎng)絡(luò)與Internet網(wǎng)絡(luò)連接,然后通過TCP/IP協(xié)議與控制中心或服務(wù)中心進行數(shù)據(jù)通信。本文所選的SIM908-C模塊內(nèi)置融合了TCP/IP協(xié)議[5]。所以,利用SIM908-C模塊進行GPRS數(shù)據(jù)傳輸設(shè)計,同樣也可以通過AT指令來實現(xiàn)。
2.3.3 GPS導(dǎo)航解析
SIM908中GPS模塊輸出的GPS定位信息符合NMEA通信標(biāo)準(zhǔn),其輸出信號格式為ASCII格式的數(shù)據(jù),其中包含了時間、經(jīng)度、緯度、數(shù)度、航向、高度和衛(wèi)星數(shù)量等信息[6]。模塊輸出7種不同的定位信息,包括:$GPGGA、$GPGLL、$GPGSA、$GPGSV、$GPRMC、$GPVTG和$GPZDA??赏ㄟ^命令A(yù)T+CGPSINF來設(shè)置信息的輸出類型。
本文單獨開辟一個線程用作GPS信號接收和解析。SIM908中GPS信號同樣是通過串口方式向外發(fā)送,因此主控制器同樣要利用串行端口接收GPS信號。在進行GPS信號解析之前,也同樣必須進行串口的一些操作,這里串口波特率設(shè)置成115 200 b/s,數(shù)據(jù)位設(shè)置為8 bit,無校驗位,停止位設(shè)置為1。然后開始讀串口中GPS信號并進行解析,最終將所需的GPS信息保存并顯示在GPS顯示界面上供駕駛員查看參考。
本文自主開發(fā)的基于汽車主動安全的車載嵌入式系統(tǒng)運行良好,側(cè)翻預(yù)警、車載通信功能工作穩(wěn)定。側(cè)翻預(yù)警條、短信、電話、導(dǎo)航及Internet等功能穩(wěn)定,能夠?qū)崿F(xiàn)對外界的信息交流和傳輸。這套系統(tǒng)初步實現(xiàn)了人-車-路的全面感知,為下一步實現(xiàn)智能汽車、智能交通打下基礎(chǔ),有著很強的社會經(jīng)濟利益。在本車載通信系統(tǒng)的基礎(chǔ)上可以繼續(xù)對車輛監(jiān)控調(diào)度中心的軟件進行研究和開發(fā),以滿足車聯(lián)網(wǎng)(智能交通)進一步的需要。
參考文獻
[1] 楊利勇.汽車側(cè)翻模擬及控制方法的研究[D].貴陽:貴州工業(yè)大學(xué),2004.
[2] 張勇,曾熾祥,許波.Windows CE應(yīng)用程序設(shè)計[M].西安:西安電子科技大學(xué)出版社,2008.
[3] 朱天軍.基于改進TTR算法的重型車輛側(cè)翻預(yù)警模塊[J].機械工程學(xué)報,2011,47(10):89-93.
[4] 孫鐵強,閆興龍.數(shù)據(jù)采集及基于GSM網(wǎng)絡(luò)的數(shù)據(jù)無線傳輸[J].電測與儀表,2004,41(12):55-57.
[5] 魏寧,王宇寰,施勇紅.基于GPRS無線網(wǎng)絡(luò)的數(shù)據(jù)采集系統(tǒng)的設(shè)計[J].北京電子科技學(xué)院學(xué)報,2006(4):79-82.
[6] 葉芳.基于GPS技術(shù)的車速傳感器的研制與應(yīng)用[D].重慶:重慶大學(xué),2009.