色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 車載GPS定位監(jiān)控系統(tǒng)中信號(hào)的分析與處理

          車載GPS定位監(jiān)控系統(tǒng)中信號(hào)的分析與處理

          ——
          作者:中國地質(zhì)大學(xué) 機(jī)械與電子信息工程學(xué)院 葉敦范 劉敏 時(shí)間:2007-06-07 來源:電子產(chǎn)品世界 收藏

          摘要: 提出了一種用dephi編程語言實(shí)現(xiàn)車載機(jī)接收的信號(hào)與信號(hào)處理設(shè)備之間通信的方法,以及如何提取車輛狀態(tài)信息并發(fā)送給車載機(jī),達(dá)到的目的。

          關(guān)鍵詞: ;;

          引言

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

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

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

          GPS車載機(jī)的

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

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

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

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

          中心發(fā)送命令結(jié)構(gòu)和命令集

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

          通信軟件的設(shè)計(jì)與實(shí)現(xiàn)

          GPS信號(hào)與監(jiān)控中心之間的通信大致分成兩個(gè)步驟:一是GPS接收機(jī)(即車載機(jī))接收衛(wèi)星信號(hào),監(jiān)控中心的通信控制器從GPS接收機(jī)輸出的信號(hào)中提取所需要的位置、速度和時(shí)間等數(shù)據(jù)信息;二是監(jiān)控中心將分析出的數(shù)據(jù)信息通過短消息的方式發(fā)送命令給每一臺(tái)車載機(jī)。具體步驟如下:
          function IsValidMsg(Str: String): Boolean;{判斷消息是否有效}
          function IsConfgMsg(Str: String): Boolean; {區(qū)分一般信息和確認(rèn)信息}
          procedure ResoleGprsV(RecvGprs: String);{處理接受信息}
          procedure ResoleGprsV1(RecvGprs: String);{處理一般信息 (V1)}
          procedure ResoleGprsV4(RecvGprs: String);{處理確認(rèn)信息(V4)}
          function Direc(sr: String): String;{車輛行駛方向}
          function HexCng(Rhex: String): String;{十六進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)}
          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ā)送命令集}

          從車載機(jī)接收的GPS信號(hào)中判斷返回的信息是否有效,如果無效則直接丟棄,如果有效,則確認(rèn)是一般信息還是確定信息,再接收處理一般信息或確定信息。

          區(qū)分一般信息和確認(rèn)信息的依據(jù)是參數(shù)字符串是否包含“V4”。
          Result := False;{初始返回結(jié)果}
          Result := pos(‘V4’, Str) > 0;{如果str包含“V4”,就返回true,否則false}
          判斷是否返回有效的信息的依據(jù)是參數(shù)字符串是否包含"*HQ"。    
          Result := False; {初始返回結(jié)果}
          Result := pos('*HQ',Str) > 0;{如果str包含“ *HQ”,就返回true,否則false}
          一般信息的標(biāo)志是V1。車載回傳的一般信息中包含的參數(shù)有車載序列號(hào)、移動(dòng)電話號(hào)碼、車牌號(hào)、時(shí)間、經(jīng)緯度、速度、方位 、日期。
          //獲取車載序列號(hào)(同樣的方法可以獲取移動(dòng)電話號(hào)碼、車牌號(hào)、時(shí)間)
          sCarNo := copy(RecvGprs, iPos + 4, 10);
          //獲取緯度(同樣的方法可以獲得經(jīng)度)
          sLatitude := copy(RecvGprs, iPos + 3, 9);
          sLatitude := FloatToStr( StrToFloat(copy(sLatitude, 1, 2)) +StrToFloat(copy(sLatitude, 3, 7)) / 60 );
          //獲取南緯和北緯(同樣的方法可以獲得東西經(jīng))
          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;
          //數(shù)據(jù)轉(zhuǎn)換
          sSpeed := FormatFloat('0.00' ,StrToFloat(sSpeed) * 1.852);{行駛速度轉(zhuǎn)換}
          sSceond := copy(sTime, 5, 2);{時(shí)間轉(zhuǎn)換}
          if StrToInt(sSceond) < 60 then{時(shí)間轉(zhuǎn)換('YYYY-MM-DD HH:MM:SS'表示為:年月日時(shí)分秒}
          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;

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

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

          處理一般信息中獲取的車輛狀態(tài),由字符類型轉(zhuǎn)換為二進(jìn)制數(shù)字符串,把二進(jìn)制數(shù)據(jù)的每一位存進(jìn)數(shù)組,每一位對應(yīng)表一中的一個(gè)車輛狀態(tài)。

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

          結(jié)語

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

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

          參考文獻(xiàn):
          1.  李麗、題原,GPS在車輛定位系統(tǒng)中的應(yīng)用,高師理科學(xué)刊,2006,26(3),46-49
          2.  鄧中衛(wèi),GPS技術(shù)、應(yīng)用與市場,航空工業(yè)出版社,1996:45-51
          3.  齊銳、屈韶琳、陽琳,用MapX開發(fā)地理信息系統(tǒng),清華大學(xué)出版社,2003:306-309
          4.  Okatan A,Salih A.Micro-controller based vehicle tracing system via use of GPS and GSM[C]. Proceedings of International conference on recent advances in space teclmologies, 2003:20-25



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉