黃麗花,寧勝花,黎飛,陳宇
(上汽通用五菱汽車股份有限公司,廣西柳州 545007)
隨著電子信息化及新能源車輛的發展,整車上產生的數據也越來越多,作為車聯網發展的初期,所有整車廠都在嘗試對車輛的數據進行深度學習和分析,所以對數據要求也在發生著變化。目前主流數據采集方案是基于GB/T 32960-2016《電動汽車遠程服務與管理系統技術規范》來實現的,車載終端中存儲固定CAN總線采集信號,不能靈活變更采集車輛CAN總線信號。而隨著車聯網的迅猛發展,車輛CAN總線采集信號將呈現更多變化,固定采集信號方式無法滿足經常變動的真實需求,不同的車型、總線協議都會涉及到開發不同的車載終端軟件版本,加上對數據信號采集的不確定性,對數據采集的調整無疑會產生很大的工作量,會增加車載終端開發管理和時間成本,很難跟上車聯網技術發展。
一種電動汽車數據采集系統由車載終端、無線通信網絡、遠程服務平臺三大部分組成。車載終端安裝在電動汽車上,用于采集、存儲、傳輸電動汽車運行、充電、定位等整車及系統部件的關鍵狀態數據,同時通過其內置的通信模塊將數據往外發送到遠程服務平臺,由無線通信網絡負責將車載終端發送的數據傳輸到遠程服務平臺服務器;遠程服務平臺主要負責接收車載終端發來的數據,并按照相應的協議規則轉換后通過顯示屏展示出來。一種電動汽車數據采集系統框架如圖1所示。該方案的電動汽車數據采集系統是車聯網快速發展的產物,它的主要作用是實現了不同車型快速接入遠程服務平臺的兼容性功能,通過DBC快速適配不同車型采集的CAN總線信號,車載終端的固件與車型無關,縮短開發周期,極大地減少了后期維護的工作量。
遠程服務平臺采用采集動態數據CAN總線數據方案,在車載終端的設計中考慮到統一終端,避免在不同車型采用不同車載終端CAN總線信號數據情況,做到一個車載終端可以裝在不同協議的總線上,或者在數據臨時變更時也能夠通過簡單的配置指令靈活地應對不同的需求,因此車載終端定位為透傳終端,弱化其業務功能,強化技術靈活性。因為車載終端要采集的數據都是由遠程服務平臺下發的TBC決定的,遠程服務平臺告知車載終端采集數據信號項,所以車載終端不用去對要采集的數據協議進行了解,使得它不受業務環境影響,使其在任何一個具備CAN總線協議的車上都可以使用,并且無需改變車載終端程序,通過遠程服務平臺的簡單配置實現數據采集的需求,從而做到車載終端的兼容性。

圖1 一種電動汽車數據采集系統框架
一種電動汽車數據采集系統根據車輛CAN總線電子通信協議采集動態CAN總線信號,生成車輛CAN總線信息采集的DBC文件,由遠程服務平臺轉化為車載終端識別的配置文件TBC,遠程服務平臺將配置文件TBC通過無線網絡GPRS發送給車載終端,車載終端根據TBC文件采集總線上的車輛信息數據,依據組包協議將車輛CAN總線數據進行組包生成數據包,并將數據包回傳給遠程服務平臺,遠程服務平臺根據DBC文件解析數據包,獲得車輛數據信息。一種電動汽車數據采集系統車輛數據信號采集流程圖如圖2所示。

圖2 車輛數據信號采集流程圖
根據車輛CAN總線電子控制器協議,通過Vector CANoe軟件創建生成DBC文件。并在此基礎上刪減一些重復不必要的數據,加入波特率信息,制作成新的DBC文件,在整體格式上保留著 DBC文件格式。遠程服務平臺存儲DBC文件,DBC文件用于生成配置文件,也用于解析車載終端上傳的數據包。
DBC文件格式如下:
BO_幀ID 幾路CAN_報文名稱:報文所在控制器節點
SG_信號名稱:起始位|位長@0+(比例,偏移量)[最小值|最大值]“單位”Vector__XXX
車載終端根據TBC配置文件采集CAN總線的車輛數據信息,車載終端根據TBC配置文件提取波特率配置,設定數據傳輸速度。根據配置文件,車載終端提取幀ID、數據起始位和位長度,獲得CAN總線上幀ID上的數據。車載終端重復執行以上步驟,直到完成配置文件里所有幀數據的提取,完成車輛CAN總線數據信號的提取。波特率配置、幀ID配置和幀數據配置是配置TBC文件的三大項,波特率配置包括配置高速波特率、中速波特率和低速波特率,波特率根據車輛CAN總線信號傳輸速率進行配置。幀ID配置是對報文對象配置,報文對象在DBC文件中以“BO_”作為關鍵字,它包含有幀ID、幀類型(標準幀或擴展幀)等信息。幀數據配置是對Signal對象配置,Signal對象在DBC文件中以“SG_”作為關鍵字,由數據名稱、起始位、位長度、類型(Intel或Motorola)、分辨率、偏移量、最大值、最小值、單位等組成。
TBC文件格式如下:
BO_幀ID|標準幀或擴展幀等|Intel或Motorola 類型|一路CAN或兩路CAN
SG_起始位|位長度
由DBC文件生成TBC配置文件如下:
hsbaudrate 125000
msbaudrate 250000
lsbaudrate 500000
BO_288 MS_Vehicle_Odometer:5 IC
SG_VehOdo:7|32@0+(0.015625,0)[0|67108863.984375]"km"Vector_XXX
BO_288|0|1|1
SG_32|32
對車輛進行數據采集時,只需將TBC文件下發車載終端上,車載終端通過解析TBC文件的內容了解到采集指令,對總線上的數據進行分析處理組包,并按照約定的協議把組包好的數據回傳到遠程服務平臺上,協議也是遵從兼容性原則定義。
組包協議包含幀頭和數據項,幀頭長度為一個字節,幀頭低七位是幀數據字節長度數,幀頭最高位為更新位,更新位用于標識數據是否更新,數據項字節數最大為127字節。車載終端根據配置文件TBC采集車輛CAN總線上的數據,根據回傳數據組包一幀數據格式的數據順序與配置文件TBC中幀ID順序一一對應,打包成數據包。一個數據包對應一個配置文件,數據包包含多幀數據,但最多可傳輸255幀數據。表1所示為車載終端回傳數據包一幀數據格式。在數據上傳遠程服務平臺中采用數據定時回傳功能,每2 s回傳1個數據包。

表1 回傳數據組包一幀數據格式
遠程服務平臺在配置DBC 生成TBC文件過程中生成文件的MD5值,當作配置文件的唯一標識。該方案為防止數據包上傳過程丟包,車載終端在上傳數據包過程中同時回傳數據包的MD5值,以便遠程服務平臺校驗是哪個DBC文件的數據包,選用對應的DBC文件進行解析數據包。數據包和DBC文件里的數據項相對應,通過數據包對應的DBC文件對數據包進行解析,獲得車輛CAN總線上數據信號。遠程服務平臺通過提取DBC文件一個幀ID,并同時提取數據包一幀的幀頭,獲取數據字節長度,并根據數據字節長度提取該幀數據,根據車輛CAN總線電子控制器協議,獲得該幀數據所代表的數據含義。按順序依次提取每一幀數據,獲得車輛數據信號。通過把車輛CAN總線上幀原始數據有效數據組包返回,再通過遠程服務平臺對數據按照DBC文件的定義進行解析、存儲,最終展顯出來的就是可被識別的車輛數據信號。在TBC配置文件里并沒有對數據包里面數據指代的內容含義進行備注和注釋,僅僅從TBC配置文件和組包數據協議上無法直接獲得車輛數據信號所代表的意思,具有很好的保密性。
綜上所述,一種電動汽車數據采集系統解決了不能靈活變更采集車輛CAN總線上車輛數據信號的問題,能根據采集車輛數據信號的實際需求或者在數據采集臨時變更時,通過簡單配置TBC配置文件采集車輛數據信號應對不同的需求,節約網絡帶寬,通過遠程服務平臺直接變更配置文件TBC;車載終端定位為透傳終端,適應性強,數據采集系統對車載終端的依賴小,弱化其業務功能,強化其技術靈活性,增強了車載終端與車輛的匹配能力,使同一款車載終端具備匹配多種車型的能力,具有快速、高效、方便獲取車輛CAN總線數據信號的優點,不需要人工現場操作;遠程服務平臺通過GPRS網絡將配置文件TBC傳輸到車載終端,方案簡單、高效且不易出錯。該方案由于車載終端要采集的車輛數據是遠程服務平臺事先通過TBC配置文件告知的,車載終端不用去對要采集的車輛CAN總線協議進行了解,使得車載終端不受業務環境影響,使其在任何一個具備CAN總線協議的車輛上都可以使用,并且無需改變車載終端程序,通過遠程服務平臺的簡單配置實現數據采集的需求,使得車聯網系統具有很強的兼容性。