1.前言
近年來道路交通事故呈上升趨勢,給國家和人民生命財產帶來了巨大損失。為此,國家相關部門已強制安裝行車數據記錄儀等措施。同時,國內的發動機電控技術處于發展階段,電控發動機試裝車階段常會出現因為車輛匹配不佳而導致大量的軟故障問題發生,甚至在批量交付給終端用戶后都還會發生系統故障。目前發動機廠家的解決辦法都是依靠技術人員到實地進行現場故障診斷以及電控單元的控制程序升級。由于車輛已經交到用戶手中,在全國各地無規律的分布,這將導致技術人員來回奔波,影響客戶對電控發動機的信任度。其次,售后服務的區域分布廣,差旅費帶來的開銷極大,勢必增加電控發動機廠家的開發、生產成本。遠程行車數據記錄儀便是解決以上難題的較好方法。
2.系統設計
遠程行車數據記錄儀設計涉及多個領域和技術,主要技術有計算機網絡技術、現代通信技術、分布式數據庫技術、在線監測和數據采集技術等。本軟件的硬件系統是基于飛思卡爾MCF51JM128為核心的控制器,使用CAN通道與發動機電控單元(ECU)通訊,使用串口與GPRS、GPS模塊通訊,AD采樣自身電池電壓,SPI操作SD卡文件系統。最終設計目標在于兼容CCP、SAEJ1939等多種汽車CAN協議與發動機電控單元(ECU)通訊,設置需要采集的監控變量,連續存儲發動的監控變量與行車GPS數據,并通過GPRS網絡,將數據遠程傳輸至服務器。一方面為專業客戶(汽車生產、研發和汽車維修部門),提供發動機狀態參數的遠程監控、故障調試服務。另一方面以網絡監控系統運營為主,為終端用戶(物流企業、團體車隊、個人用戶)提供基于GPS的車輛軌跡監控、防盜、油耗監控等以及遠程排故、遠程控制等功能。
2.1 方案設計
如何做到不改變現有電控發動機硬件設備,異地傳輸數據,實時監控發動機運行狀況?結合電控單元(ECU)的產品特性,如何對遍布全國角落的車輛運行狀況進行狀態監控以及故障診斷。針對車輛分布廣,地域性要求較高的特點,最為理想的則是利用無線網絡。
GPRS是目前解決移動通信信息服務的一種運用較廣泛的業務,它是以數據流量計費,覆蓋范圍廣泛、數據傳輸速度更快。移動網絡信號覆蓋的地方,我們都可以實現行車數據記錄儀的遠程數據傳輸。
圖1 系統框圖
如圖1系統框圖所示,行車記錄儀通過CAN線與ECU連接,基于CCP/1939通訊協議與ECU交換數據,行車記錄儀將所獲的發動機監控數據存儲于SD卡上,并根據需要將監控數據以及GPS經緯數據通過GPRS傳輸至遠程服務器。遠程服務器可以搭建網絡平臺以供客戶電腦監控車輛運行情況。同時服務器也可發送控制命令達到遠程控制車輛的目的。
2.2 硬件設計
基于GPRS無線網絡實現數據遠程傳輸,不需要對現有的電控單元(ECU)產品做任何硬件改動,只需引入GPRS無線模塊連接到發動機通信診斷口上即可。GPRS模塊目前主要以DTU (Data Transfer unit)數據傳輸單元為主,用于將串口數據轉換為TCP網絡數據或將TCP網絡數據轉換為串口數據。主控制器的選擇需要具備多路CAN通道,2路SCI通道,1路SPI通道,1路AD,1路IIC等必要硬件資源。
圖2 硬件設計框圖
MCU選擇FREESCALE公司的MCF51JM128,芯片FLASH空間128Kbytes,RAM空間16 Kbytes,帶2路SCI,2路SPI,1路CAN,1路IIC,AD通道12路。GPRS選擇了SIM900A, GPS選擇了HOULUX定位系列芯片。
2.3 軟件設計
2.3.1 單片機設計
單片機設計基于MCF51JM128芯片,采用CodeWarrior開發完成。系統上電,軟件首先進行必要的硬件初始化操作,判斷CAN接口、SD卡是否接觸良好?系統自檢完成后,即開始讀取SD卡的監控變量配置文件,將監控變量需求通過CAN通訊提交給ECU,ECU接受監控變量設置成功后,即按要求反饋監控變量的CAN數據原文。軟件周期存儲CAN數據以及GPS數據,以及發送數據至服務器。
圖3 軟件流程圖
2.3.1.1 CAN、SCI通訊
CAN通道支持125K,250K,500K,1M等4種波特率的數據傳輸,能有效適應CCP、SAEJ1939等控制協議傳輸需求。此外,記錄儀設備的系統信息也可以通過CAN通訊設置,PC與單片機的CAN通訊協議為自定義協議,使用2組11位ID識別,分別為1)0x234,0x235;2)0x236,0x237。第一組ID用來對GPRS模塊進行配置和通訊操作,第二組ID用來對系統配置常量的FLASH操作進行控制。
SCI通訊主要用于MCU與GPS以及GPRS模塊通訊, GPS數據傳輸波特率為9600;GPRS數據傳輸波特率為11520。
2.3.1.2 時鐘設置及校準
實時時鐘主要用于數據SD卡存儲提供文件命名來源,時鐘使用時鐘模塊提供的時鐘源,同時在能夠接收到GPS信號的狀態下,使用GPS時鐘源校準時鐘保證了時鐘的準確性。考慮到時鐘模塊掉電以及GPS沒有信號的狀態可能同時發生,導致失去正常時鐘,所以將會在FLASH中保存時鐘源提供的最新一天的時鐘數據,保存內容為年月日,以辨別SD卡存儲數據的時間真實與否。
2.3.1.3 SD卡文件系統
GPS數據保存在以創建文件時間(月日時分)命名的txt文檔中,以20k為一個單位,超過指定大小后,另開一個文件繼續存儲。由于GPS保存數據并不能預先判斷設備斷電和SD卡狀態,所以在存儲文件時采用單次存儲,單次關閉的方式,避免由于設備斷電等未知情況導致的文件保存不完整、無法正常打開。
2.3.1.4 GPS數據存儲
由于GPS響應相當頻繁,且對時間不太敏感,GPS數據采用開緩存非實時的方式進行處理。數據經處理后將$GPGGA(全球定位數據)取出,存入到SD卡txt文件,還可同時通過串口將數據發送至遠程服務器。
2.3.1.5 GPRS模塊設置
該模塊設置通過CAN轉SCI的方式由PC實現, GPRS模塊設置符合AT命令標準。通過SCI輸入AT命令,即可將GPRS模塊配置為數據透明傳輸模式,實現數據遠程傳輸。
常用的AT命令如下:
AT+CSTT="CMNET" //設置模塊的APN賬號
AT+CIPCFG=1,40,0,150,1000 //配置模塊自動啟動模式,斷線自動重連等待時間
AT+CIPMUX=0 //設置為單鏈接模式
AT+CIPMODE=1 //設置為數據包模式
AT+CIPSCONT=0,"TCP","192.168.0.1",7100,2 //設置通訊協議、服務器地址、端口
2.3.1.7 設備系統信息
通過設置系統配置信息可以選擇設備的使用插件、運行模式,以及ID標識等。該配置信息通過CAN總線實現讀、寫功能。
系統配置信息位于設備Flash 區域0x0001FC00地址處,該功能的實現需要對Flash 進行格式化和寫操作,相關代碼需要拷貝到RAM中執行。
表1 系統信息存儲說明
2.3.1.8 CCP數據監控
該功能的數據監控和SD卡存儲代碼實現保留第一版行車記錄儀的代碼實現,新添加遠程傳輸監控數據代碼實現,詳細內容如下:
行車記錄儀上電后依據系統配置信息得到當前CAN數據協議是否支持CCP協議,如果支持則讀取SD卡上的CCP配置文件(DAQLst.inf、DAQTgt.lst、*.a2l),單片機主要讀取DAQTgt.lst文件,該文件包含CCP監控變量的ECU地址信息,然后按照CCP協議與ECU通訊,設置開啟DAQ數據傳輸。系統支持標準觸發型、10ms、100ms等三種標準DAQ數據。ECU反饋回的監控數據信息按CAN數據原文格式配以時間標識存放在SD卡內,同時根據系統配置信息得到是否支持CCP遠程數據傳輸功能,如果支持則按照預訂的發送周期(分鐘)采樣CCP數據并發送給服務器。由于CCP最大數據量為254×8=2032字節,考慮到單片機內存大小,CCP的遠程數據傳輸采用分時間片傳輸模式,即建立一個小的數據緩沖區,將整個需要監控的數據量按照該緩沖區大小分時間片在1分鐘內分片發送。一個周期內,關注的監控信息只發送一次。
2.3.1.9 J1939數據監控
行車記錄儀上電后依據系統配置信息得到當前CAN數據協議是否支持J1939協議,如果支持則讀取SD卡上的配置文件(J1939.lst),然后按照J1939協議解析監控到的數據內容,同時根據配置文件設定的存儲周期和發送周期實現數據存儲功能和遠程數據傳輸功能。
考慮到單片機內存大小,同時由于選用的單片機不支持動態內存分配,所以提前設定了最大支持16組PGN的數據緩沖區,每一組PGN最大支持30字節的數據內容。具體文件格式如表2所示。
表2 J1939配置文件格式
PGN編號-需要監控的PGN編號。
數據模式-PGN在總線上出現的模式。
0:自動周期發送的PGN
1:請求發送的PGN,如DM1故障診斷。
2.3.1.10 遠程數據傳輸
配置GPRS模塊為自動數據透傳模式,相當于實現了片上SCI和TCP/IP數據格式的轉換,可以方便的通過無線網絡和單片機實現通訊。設計采用了自定義的報文格式封裝,具體數據如下:
表3 遠程傳輸報文協議
數據長度:按照數據種類定義數據內容的長度。
數據種類:(數據內容的類型)
0x33:J1939數據
0x34:CCP數據
0x35:數據(預留)
0xCC:GPS數據
數據校驗:數據幀結構中有效數據內容的累加校驗值。
幀頭、幀尾:0xAA5555AA
2.3.2 網絡平臺設計
網絡平臺適宜采用B/S瘦客戶端模式設計,設計方案是以平臺自身為服務器端,監聽行車數據記錄儀發起的遠程連接,當建立完成TCP連接之后,通過SOCKET套接字編程,交互數據,平臺根據遠程傳輸報文協議,解析數據原文,將發動機監控數據與GPS數據獨立存儲。
數據庫存儲設計,GPS數據存儲相對簡單,按NEMA0183標準格式提取需要的經緯信息,瞬時速度,UTC時間,海拔高度等數據即可。而發動機監控變量由于設置靈活,變量個數不定,導致了數據庫字段無法預先設定,傳統關系型數據庫如SQLSERVER, MySQL ,Oracle等數據庫無法滿足發動機監控變量的靈活存儲的需求。根據平臺需求特點,設計采用了Mongo DB非關系型數據庫存儲發動機監控變量數據。MongoDB是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。他支持的數據結構非常松散,因此可以存儲比較復雜的數據類型,滿足發動機監控變量靈活設置的存儲需求。
圖4 遠程監控平臺效果圖
平臺監控效果如圖4所示,功能大致如下:
①車輛信息管理:對車輛信息進行查詢、統計、打印報表及增、刪、改的維護工作。
②操作員信息管理:對操作員信息進行查詢、統計、打印報表。
③日志管理:對日常操作(如用戶登錄、車輛查詢、區域報警設定、消息發送等)。
④軌跡信息管理:車輛軌跡,歷史數據回放,指定回放速度。
⑤監控狀態管理:區域監控,多目標監控,單目標監控,非監控狀態。
⑥目標查詢:呼叫目標,中止呼叫,連續跟蹤,取消連續跟蹤。
⑦報警管理:超運行范圍報警,超速報警,違規線路報警。
⑧發動機監控:監控發動機參數。
⑨發動機故障診斷:發動機故障診斷,并下發排故建議。
⑩數據庫備份恢復:支持系統重要數據的定期自動備份。
3.總結與展望
總之,遠程行車數據記錄儀作為傳統數據記錄儀的補充,利用GPRS無線網絡資源,可以將分散且移動的汽車有效管理起來,實現發動機的遠程監控、遠程故障診斷、行車軌跡定位等功能。隨著我國3G網絡基本建設完成,打破了無線帶寬瓶頸的限制,使網絡帶寬得到較大提升,基于3G網絡將使得遠程行車數據記錄儀數據傳輸速度、測控命令響應速度更快,系統用戶體驗將得到明顯的改善。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.vmgcyvh.cn/
本文標題:遠程行車數據記錄儀系統設計