當前位置:首頁 > 汽車電子 > 汽車電子
[導讀]引言隨著汽車在日常生產和生活中起的作用越來越突出,如何實現各類車輛的有效指揮、協(xié)調控制和管理已經成為交通運輸和安全管理部門面臨的一個重要問題。為了滿足提高運輸效率和安全保障的需要,對車輛定位監(jiān)控系統(tǒng)的

引言

隨著汽車在日常生產和生活中起的作用越來越突出,如何實現各類車輛的有效指揮、協(xié)調控制和管理已經成為交通運輸和安全管理部門面臨的一個重要問題。為了滿足提高運輸效率和安全保障的需要,對車輛定位監(jiān)控系統(tǒng)的研究也日趨迫切。

車載GPS定位監(jiān)控系統(tǒng)是GSM全球數字蜂窩移動通信技術和GIS地理信息技術、GPS全球衛(wèi)星定位技術以及計算機網絡技術相融合研制開發(fā)出來的軟件技術。它是通過安裝在車輛上的GPS接收機(即車載機)接收衛(wèi)星信號,監(jiān)控中心的通信控制器從GPS接收機輸出的信號中提取所需要的位置、速度和時間信息,結合車輛身份等信息形成數據報,然后通過無線信道發(fā)往控制中心;控制中心的主站接收子站發(fā)送的數據,處理接收信息通過短消息的方式逐次直接發(fā)送給每一臺車載機。最后,將車輛的具體數據和狀態(tài)在監(jiān)控中心的電子地圖上顯示出來。

本文討論的就是從接收機輸出的信號中提取所需要的位置、速度和時間信息的方法,以及中心處理信息后發(fā)送命令集的實現過程。

GPS車載機的通信協(xié)議

車載機與監(jiān)控中心之間的通信方式均以中心發(fā)送命令,車載機應答的方式進行,所以我們對車載機GPS信號的分析與處理必須完全依據車載GPS接收機與監(jiān)控中心的通信協(xié)議來進行,下面是GPS車載機通信協(xié)議的部分內容。

車載機返回信息
一般信息:
*XX,YYYYYYYYYY,V1,HHMMSS,S,latitude,D,longitu de,G,speed,direction,DDMMYY,vehicle_status#
確認信息:
*XX,YYYYYYYYYY,V4,CMD,hhmmss,HHMMSS,S,latitu de,D,longitude,G,speed,direction,DDM MYY,vehicle_status#
區(qū)分一般信息和確認信息的方法是看車載機傳回來的信息中是否包含“V4”,判斷返回信息是否有效的方法是看回傳信息中是否包含“HQ(制造商名稱)”。

其中:‘*’表示命令頭;‘XX’表示制造商名稱;‘,’表示分隔符;‘YYYYYYYYYY’表示車載機序列號;‘CMD’表示被確認的中心命令;‘hhmmss’表示被確認命令中的時間值;‘HHMMSS’表示車載機時間;‘S’表示數據有效位;‘latitude’表示緯度;‘D’表示緯度標志;‘longitude’表示經度;‘G’表示經度標志;‘speed ’表示速度;‘direction’表示方位角;‘DDMMYY’表示日/月/年;‘vehicle_status ’表示車輛狀態(tài)。

車載機返回GPS信息模式有兩種,一是返回最近的有效的GPS信息;二是返回最新的GPS信息。

中心發(fā)送命令結構和命令集

中心發(fā)送命令結構是:*XX,YYYYYYYYYY,CMD,HHMMSS,PARA1,PARA2,...#
在編寫中心發(fā)送指令時必需按照這個格式來寫,下面列出其中的七個中心發(fā)送命令。
定位監(jiān)控命令D1:該指令要求車載機以interval為時間間隔,回傳count次定位信息。
自動監(jiān)控設置命令S17:該指令完成對自動監(jiān)控參數的設置。
參數設置指令S12:該指令僅用于對S17命令的開關控制。
設置監(jiān)控中心短信號碼S2:車載機收到指令后將立即向新的監(jiān)控中心發(fā)送確認信息。
通話設置指令S13:phone_flag的bit0=0時允許打出,bit1=0時允許接聽。
清楚報警指令R7:車載機收到命令后將清除掉所有報警信息。
冷啟動指令R1:車載機收到命令后將執(zhí)行冷啟動復位,所有狀態(tài)參數全部清零。

通信軟件的設計與實現

GPS信號與監(jiān)控中心之間的通信大致分成兩個步驟:一是GPS接收機(即車載機)接收衛(wèi)星信號,監(jiān)控中心的通信控制器從GPS接收機輸出的信號中提取所需要的位置、速度和時間等數據信息;二是監(jiān)控中心將分析出的數據信息通過短消息的方式發(fā)送命令給每一臺車載機。具體步驟如下:
function IsValidMsg(Str: String): Boolean;{判斷消息是否有效}
function IsConfgMsg(Str: String): Boolean; {區(qū)分一般信息和確認信息}
procedure ResoleGprsV(RecvGprs: String);{處理接受信息}
procedure ResoleGprsV1(RecvGprs: String);{處理一般信息 (V1)}
procedure ResoleGprsV4(RecvGprs: String);{處理確認信息(V4)}
function Direc(sr: String): String;{車輛行駛方向}
function HexCng(Rhex: String): String;{十六進制數轉換為二進制數}
function HandleCarStatus(ArrBin: array of String): String;{處理車輛狀態(tài)}
function ChangeTel(sTel: String): String;{}
function StrToHex(sStr: String): String;
procedure SendSms(Tel, Other: String; iCmdID, iSendType: Integer;
CarID: String = ''){中心發(fā)送命令集}

從車載機接收的GPS信號中判斷返回的信息是否有效,如果無效則直接丟棄,如果有效,則確認是一般信息還是確定信息,再接收處理一般信息或確定信息。

區(qū)分一般信息和確認信息的依據是參數字符串是否包含“V4”。
Result := False;{初始返回結果}
Result := pos(‘V4’, Str) > 0;{如果str包含“V4”,就返回true,否則false}
判斷是否返回有效的信息的依據是參數字符串是否包含"*HQ"。    
Result := False; {初始返回結果}
Result := pos('*HQ',Str) > 0;{如果str包含“ *HQ”,就返回true,否則false}
一般信息的標志是V1。車載回傳的一般信息中包含的參數有車載序列號、移動電話號碼、車牌號、時間、經緯度、速度、方位 、日期。
//獲取車載序列號(同樣的方法可以獲取移動電話號碼、車牌號、時間)
sCarNo := copy(RecvGprs, iPos + 4, 10);
//獲取緯度(同樣的方法可以獲得經度)
sLatitude := copy(RecvGprs, iPos + 3, 9);
sLatitude := FloatToStr( StrToFloat(copy(sLatitude, 1, 2)) +StrToFloat(copy(sLatitude, 3, 7)) / 60 );
//獲取南緯和北緯(同樣的方法可以獲得東西經)
iPos := pos(',S,', RecvGprs); {查找",S,"在RecvGprs 的位置}
if iPos > 0 then; {如果RecvGprs 包含',S ,' 就執(zhí)行下面語句}
     sNS := ‘南緯’
else begin
     iPos := pos(‘,N,’, RecvGprs); {查找“,N,”
     在RecvGprs 的位置}
     sNS :=‘北緯’;
end;
//獲取速度、方位 、日期
sSpeed := copy(RecvGprs, iPos + 3, 6);{獲取速度}
sDirection := copy(RecvGprs, iPos + 10, 3);{獲取方位}
sDate := copy(RecvGprs, iPos + 14, 6); {獲取日期}
if Pos('.', sSpeed) <= 0 then{判斷sSpeed 是否包含'.',如果包含就執(zhí)行下面語句}
begin
      sSpeed := copy(RecvGprs, iPos + 3, 3); {獲取
     速度}
      sDirection := copy(RecvGprs, iPos + 7, 3); {獲
      取方位}
      sDate := copy(RecvGprs, iPos + 11, 6); {獲取
     日期}
end;
//數據轉換
sSpeed := FormatFloat('0.00' ,StrToFloat(sSpeed) * 1.852);{行駛速度轉換}
sSceond := copy(sTime, 5, 2);{時間轉換}
if StrToInt(sSceond) < 60 then{時間轉換('YYYY-MM-DD HH:MM:SS'表示為:年月日時分秒}
sDate := FormatDateTime('YYYY-MM-DD HH:MM:SS', IncHour(StrToDateTime('20' +copy(sDate, 5, 2) + '-' + copy(sDate, 3, 2) + '-' + copy(sDate, 1, 2) +' ' + copy(sTime, 1, 2) + ':' + copy(sTime, 3, 2) + ':'+ copy(sTime, 5, 2)), 8))
else begin
sDate := FormatDateTime('YYYY-MM-DD HH:MM:SS', IncHour(StrToDateTime('20' +
copy(sDate, 5, 2) + '-' + copy(sDate, 3, 2) + '-' + copy(sDate, 1, 2) +' ' + copy(sTime, 1, 2) + ':' + copy(sTime, 3, 2) + ':'+ '00'), 8));
sDate := FormatDateTime('YYYY-MM-DD HH:MM:SS',
IncMinute(StrToDateTime(sDate), + 1));
end;

確認信息的標志是V4。車載回傳的確認信息中包含車輛行駛方位和車輛狀態(tài)。

處理一般信息中獲取的方位信息,由字符類型轉換為整型數據,根據數據所在范圍確定車輛的行駛方位,小于22.5或大于337.5為正北方向,大于22.5小于67.5為東北方向,大于67.5小于112.5為正東方向,依此類推確認車輛的行駛方向。

處理一般信息中獲取的車輛狀態(tài),由字符類型轉換為二進制數字符串,把二進制數據的每一位存進數組,每一位對應表一中的一個車輛狀態(tài)。

//獲取車輛狀態(tài)
iPos := Pos('#', RecvGprs);
sCarStatus := copy(RecvGprs, iPos - 8, 8)
//轉換為二進制數字符串
sBin := '';
for I := 1 to 8 do
sBin := sBin + HexCng(copy(sCarStatus, I, 1)); 
//把二進制數據的每一位存進數組
for I := 0 to 31 do
ArrBin[I] := copy(sBin, I + 1, 1);
sCarStatuText :=  HandleCarStatus(ArrBin);{車輛狀態(tài)}
監(jiān)控中心根據每一臺車載機傳回的信息內容發(fā)送不同的命令。發(fā)送命令程序需嚴格按照中心發(fā)送命令集規(guī)定的的格式來寫,下面列舉其中的幾條命令:
//該指令要求車載機以sInterval為時間間隔,回傳sCount次定位信息。
sRightStr := '*HQ,0000000000,D1,' + sTime + ',' +sInterval + ',' + sCount + '#'
//車載機接到這條指令后將清除掉所有報警信息。
sRightStr := '*HQ,0000000000,R7,' + sTime + '#';
if Application.MessageBox(PChar('真的要解除對車輛【‘+CarID+’】報警嗎?'),‘提示’, MB_YESNO + MB_DEFBUTTON2) = IDNO then Exit;
這里的CarID指車載機序列號。
//車載機收到這條命令將會啟動斷油斷電。
sRightStr := '*HQ,0000000000,S20,' + sTime + ',1,3,10,3,5,5#';
if Application.MessageBox(PChar('真的要對車輛【'+CarID+'】斷油斷電嗎?'),'提示', MB_YESNO + MB_DEFBUTTON2) = IDNO then Exit;

結語

目前,車載GPS定位監(jiān)控系統(tǒng)已經被各運輸公司使用在出租車、客車以及大型車隊上,該軟件技術很好的實現了對車輛位置、狀態(tài)的監(jiān)控和調度管理。

隨著GPS應用領域的擴大,車載GPS導航定位監(jiān)控軟件的系統(tǒng)的功能也將隨著導航、通信等需求而不斷的增多和完善。GPS車載機通信協(xié)議會根據GPS車載機產品的功能升級而不斷升級,增加新的命令,相應的軟件系統(tǒng)也要增加新的指令,本系統(tǒng)的設計將易于這些升級維護工作的進行。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數據產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數據產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯合牽頭組建的NVI技術創(chuàng)新聯盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現場 NVI技術創(chuàng)新聯...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉