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