張文強 陳晨 劉文軍 吳新兵 浦信 李大鵬
摘要:新能源汽車的發(fā)展代表了汽車工業(yè)的一種新趨勢。為了加強行車安全及提升車輛運行效率,高效地獲取新能源車輛行車數(shù)據(jù)成為一種迫切需要。設計了一種基于 S3C6410 主控芯片的多功能通用車載數(shù)據(jù)采集終端,并給出了相應的數(shù)據(jù)獲取軟件實現(xiàn)。硬件方面,車載終端支持兩路CAN總線、GPS、無線通信和數(shù)據(jù)存儲等多種接口。軟件方面,圍繞新能源汽車數(shù)據(jù)采集應用,構建了一個穩(wěn)定、高效的數(shù)據(jù)流傳輸通道。實驗表明,數(shù)據(jù)采集終端實現(xiàn)了多種接口支持并在功能上能夠很好地滿足應用需求。
關鍵詞:新能源汽車;CAN總線;數(shù)據(jù)收集;無線通信
中圖分類號:U463 文獻標識碼:B 文章編號:1009-3044(2018)12-0290-03
Abstract: The development of green vehicle represents a new trend in the automotive industry. In order to enhance road safety and improve the efficiency of vehicle operation, efficiently access to driving data become an urgent requirement. Based on S3C6410 master chip, we design a versatile vehicle data collection terminal, and give the corresponding software implement. In hardware, the terminal supports two-way CAN bus, GPS, wireless communication and data storage capability. In software, concerning the data collect of green vehicles, we construct a stable and efficient data transmission channel. Experiments show that the designed vehicle data collection terminal can meet the application requirements adequately in function.
Key words: CAN bus; green vehicle; data collection; vehicle terminal
隨著全球汽車工業(yè)的飛速發(fā)展,能源和交通等問題日益突出,大力發(fā)展節(jié)能環(huán)保的新能源汽車,通過互聯(lián)網(wǎng)新技術提升傳統(tǒng)汽車產(chǎn)業(yè)成為一種趨勢?;旌蟿恿?、純電動、燃料電池電動汽車等新能源汽車的機械結構相對傳統(tǒng)內(nèi)燃機汽車結構簡單,但電池、電機及電氣結構更加復雜。加強行車安全、提高車輛的運行效率,對車輛運行狀況的監(jiān)管成為一種必然。當前行車數(shù)據(jù)采集終端多實時轉(zhuǎn)發(fā)車輛控制器局域網(wǎng)絡(Controller Area Network,CAN)接口中的數(shù)據(jù)[1-2],沒有進行本地化保存,一旦信號較差時容易造成數(shù)據(jù)丟失,無法進行數(shù)據(jù)再現(xiàn)?;谲囕d診斷系統(tǒng)(Second On-Board Diagnostics, OBDII)的數(shù)據(jù)采集模式一般通過藍牙通信將數(shù)據(jù)發(fā)送至用戶手機,用途主要體現(xiàn)在車速測量、體檢打分等后裝市場上。由于該模式采集數(shù)據(jù)類型較為單一、準確性和可靠性相對不足等缺點,制約了深層應用[3]。設計一款多功能通用型車輛數(shù)據(jù)采集終端成為一種迫切需求,通過該新型終端獲得的實時數(shù)據(jù)能夠用于車輛監(jiān)控,給技術研發(fā)人員、售后人員及管理人員等提供針對性服務。此外,基于車輛大數(shù)據(jù)的進一步分析可以用于車輛的駕駛行為分析[4]、油耗分析[5]、故障診斷與預測[6-7]等。
1 硬件設計
1.1終端設計
車載終端負責新能源車輛運行時數(shù)據(jù)的穩(wěn)定、可靠、實時采集與存儲。要求該采集終端在硬件方面能夠支持多種接口,做到良好的通用性和擴展性;軟件方面則需要構建各種數(shù)據(jù)源穩(wěn)定、高效的傳輸通道。車載終端在功能上主要針對車輛的運行狀態(tài)監(jiān)控、故障診斷、原始數(shù)據(jù)存儲與發(fā)送、本地化程序升級等應用。其中,原始數(shù)據(jù)以文件保存于本地存儲卡,用于后期針對性的數(shù)據(jù)挖掘和數(shù)據(jù)分析。終端設備采集到的數(shù)據(jù)包括 CAN 總線獲取的車輛實時數(shù)據(jù)和通過車載全球定位系統(tǒng)(Global Positioning System , GPS)模塊獲取的車輛實時位置信息兩種。圖1給出了終端的硬件結構框圖。
1.2 終端結構與功能分析
考慮功耗和性能需求,數(shù)據(jù)采集終端選用成熟穩(wěn)定的基于 ARM11 架構的三星 S3C6410 處理器[8]。該處理器具有 128MB 的 DDR 內(nèi)存以及 1GB 的 NANDFLASH,具有多種硬件加速器和高達 667M 的主頻,功耗低、數(shù)據(jù)處理功能強大、擴展性良好等特點。由于S3C6410芯片沒有集成CAN控制器,兼顧 CAN節(jié)點的性能和成本,終端采用符合CAN2.0B技術規(guī)范并支持 SPI 接口的 Microchip MCP2515 CAN 控制器實現(xiàn)濾波。主控芯片通過MCP2551收發(fā)器連接到汽車 CAN網(wǎng)絡上,該芯片支持1Mb/s的運行速率且具有很強的抗噪性。
車載終端采集獲取的GPS數(shù)據(jù)主要用于監(jiān)控車輛的行車位置,ARM主控芯片通過UART2串口與GPS模塊相連。車載終端與外部設備通過短距離和長距離通信進行交互。短距離通信包括終端和手機(或Pad、筆記本電腦)之間的實時雙向高速數(shù)據(jù)流的穩(wěn)定傳輸。一方面,終端無顯示屏幕時可以借助手機、Pad實時顯示車輛運行狀況信息。另一方面,要求能夠完成本地化的整車控制器程序更新。較高數(shù)據(jù)傳輸速率的雙向通信,通過WiFi無線通信實現(xiàn)。選用支持 SDIO 接口的 RTL8189芯片,該芯片支持 AP/STA 主從兩種工作模式,具有高性能、低成本特征。長距離傳輸主要完成原始數(shù)據(jù)到數(shù)據(jù)中心服務器的數(shù)據(jù)傳輸,使用中興 MC2716 3G 無線通信模塊??紤]到本地數(shù)據(jù)存儲的需要,采用支持 SDIO 接口的TF卡。
2 軟件設計
當前常見的嵌入式操作系統(tǒng)有Linux、WinCE、VxWorks、Android等[9-11]。由于Linux系統(tǒng)具有開放源代碼、內(nèi)核穩(wěn)定,支持多任務、完善的硬件驅(qū)動和多種文件系統(tǒng)等優(yōu)點,終端選擇采用 Linux 嵌入式操作系統(tǒng)。對終端進行系統(tǒng)移植,并通過修改驅(qū)動、配置內(nèi)核、加載驅(qū)動、系統(tǒng)燒寫等操作完成對各硬件模塊的支持。
車載終端軟件負責采集車輛數(shù)據(jù)源中的數(shù)據(jù),構建一個從源到監(jiān)控中心流向的穩(wěn)定通道,使數(shù)據(jù)可靠交付給監(jiān)控中心。本質(zhì)上,終端軟件設計可以分為數(shù)據(jù)采集融合、數(shù)據(jù)本地存儲和數(shù)據(jù)傳輸三部分,如圖2所示。首先,軟件將獲取的CAN總線車輛數(shù)據(jù)和GPS位置數(shù)據(jù)進行融合打包;然后,終端軟件將數(shù)據(jù)按照一定格式進行本地化存儲。同時,采用TCP協(xié)議數(shù)據(jù)還會通過3G無線通信發(fā)送給監(jiān)控中心。注意,采集的原始數(shù)據(jù)是CAN數(shù)據(jù)幀,經(jīng)過協(xié)議解析后的車輛實時數(shù)據(jù),可以通過無線短距離通信發(fā)送給手持設備進行顯示,輔助售后人員進行現(xiàn)場故障排除等應用。
2.1 CAN數(shù)據(jù)幀
按照國際標準組織,CAN協(xié)議定義了物理層、數(shù)據(jù)鏈路層和應用層。其中,物理層負責定義數(shù)據(jù)傳輸方式,數(shù)據(jù)鏈路層負責數(shù)據(jù)報文成幀、仲裁及報文濾波等,應用層留給用戶定義。與CAN總線協(xié)議對應,應用于車輛中通信的為SAE J1939協(xié)議。其中J1939-21對數(shù)據(jù)鏈路層的格式進行了定義,SAE J1939-71給出了應用層定義。在數(shù)據(jù)鏈路層,數(shù)據(jù)幀以協(xié)議數(shù)據(jù)單元(Protocol Data Unit, PDU)為單位進行信息傳送,一個PDU相當于CAN協(xié)議中的擴展幀。圖3給出了CAN數(shù)據(jù)擴展幀和PDU格式。其中,P為優(yōu)先級,R為保留位(固定為0),DP為數(shù)據(jù)頁(固定為0),PF為PDU格式(報文編碼),PS為PDU細節(jié),SA為原地址。R+DP+PF+PS構成參數(shù)組編號(PGN)。如幀ID為18FEEE00的數(shù)據(jù)幀其PGN為0x00FEEE。
在應用層消息以報文(Message)傳遞。此處的報文是指一個或多個具有相同PGN的CAN數(shù)據(jù)幀,即報文可能包含一個或多個CAN數(shù)據(jù)幀。以下僅舉一例表明協(xié)議數(shù)據(jù)幀的具體含義,如表1所示。
2.2 數(shù)據(jù)獲取
車輛數(shù)據(jù)獲取采用Socket CAN網(wǎng)絡編程模型。該模型中CAN協(xié)議位于操作系統(tǒng)的網(wǎng)絡層上。驅(qū)動成功的CAN控制器可以被視為一個普通的網(wǎng)絡設備,這樣就可以通過網(wǎng)絡Socket接口調(diào)用CAN設備驅(qū)動的方法以實現(xiàn)軟件編程。該模型的優(yōu)點是能夠同時打開多個CAN套接字進行數(shù)據(jù)的收發(fā)管理,本實現(xiàn)中采用Epoll多接口編程模型進行套接口數(shù)據(jù)收發(fā)管理。
使用Socket CAN編程模型獲得車輛CAN總線數(shù)據(jù)的步驟如下:
1) 網(wǎng)絡通信初始化。
socket(PF_CAN, SOCK_RAW, CAN_RAW);
2) 將CAN套接字綁定到接口,注意需要監(jiān)聽所有CAN接口。
sAddr.can_family = AF_CAN;
sAddr.can_ifindex = 0;//監(jiān)聽所有CAN接口
bind(nSocket, (struct sockaddr*)&sAddr;, sizeof(struct sockaddr_can));
3) 設置濾波功能,僅接收擴展幀數(shù)據(jù)。
sFilter.can_id = 0x00000000U;
sFilter.can_id |= CAN_EFF_FLAG;
sFilter.can_mask = 0x80000000U;
setsockopt(nSocket,SOL_CAN_RAW,CAN_RAW_FILTER, &sFilter;, sizeof(struct can_filter));
4) 多接口數(shù)據(jù)接收,完成CAN總線車輛數(shù)據(jù)的接收任務并使接收到的數(shù)據(jù)進入數(shù)據(jù)隊列。采用Epoll編程模型過程如下:
(a) nEpoll = epoll_create(2);
(b) epoll_ctl(nEpoll, EPOLL_CTL_ADD, nSocket, &sEvent;);
(c) nEvents=epoll_wait(nEpoll, sArrEvent, 2, 10);
(d) 處理事件,數(shù)據(jù)接收并作入隊列操作。
2.3 數(shù)據(jù)解析顯示與存儲
融合后的車輛數(shù)據(jù)包含GPS位置數(shù)據(jù)和CAN總線數(shù)據(jù),數(shù)據(jù)流轉(zhuǎn)過程中進一步分解為三路數(shù)據(jù),一路通過J1939協(xié)議規(guī)范解析后由無線通信實時發(fā)送到遠程監(jiān)控中心,另外一路存儲到本地SD卡上,第三路通過短距離通信傳輸?shù)绞殖衷O備上本地化顯示。解析處理后的數(shù)據(jù)需要通過格式化處理以方便與顯示設備進行交互。文件的命名策略根據(jù)實際需要生成,比如為了區(qū)別車輛終端及記錄采集的時間,可以“車架號-采集時間”命名。此外,可以根據(jù)需要靈活配置存儲文件的大小。
3 系統(tǒng)實現(xiàn)
3.1 數(shù)據(jù)設定
以下采用模擬測試驗證車輛采集終端的運行效果。其中,在模擬測試方案中選擇 CANalyst-II CAN 總線分析儀測試數(shù)據(jù)的收發(fā)。該設備可以被視為一個標準的 CAN 節(jié)點,在 CAN 總線產(chǎn)品開發(fā)、設備測試、數(shù)據(jù)分析等場景下應用廣泛。試驗中可以通過配套軟件設置報文發(fā)送的波特率、幀格式與類型、幀 ID、CAN通道以及數(shù)據(jù)等。數(shù)據(jù)采集終端原型系統(tǒng)與 CANalyst-II 分析儀的連接如圖4所示。數(shù)據(jù)采集模塊上電后,會依據(jù)配置文件對 WiFi 進行自動配置,并運行客戶端程序。設定分析儀的波特率為 250kbps,假定傳輸?shù)膸愋蜑閿?shù)據(jù)幀、擴展幀,數(shù)據(jù)長度為 8 字節(jié)。
3.2 結果
測試結果表明車載數(shù)據(jù)采集模塊和數(shù)據(jù)傳輸系統(tǒng)能夠穩(wěn)定工作。圖5給出了軟件運行獲取CAN分析儀數(shù)據(jù)并經(jīng)過解析后在屏幕上呈現(xiàn)的部分內(nèi)容。從圖中數(shù)據(jù)可以看出,解析后的數(shù)據(jù)直觀地反映了車輛的實時運行數(shù)據(jù)和運行狀態(tài),從而采集的數(shù)據(jù)可以作為參數(shù)優(yōu)化和故障診斷的依據(jù)。車載終端軟件運行在本地TF卡上存儲相應的數(shù)據(jù)文件。所存儲的本地文件通過無線通信方式發(fā)送給遠程服務器,為車輛數(shù)據(jù)分析和挖掘等潛在應用服務。
4 結束語
針對新能源汽車數(shù)據(jù)采集應用的實際需求,給出了一種多功能通用型智能車載數(shù)據(jù)采集終端設計。該終端支持兩路CAN總線、GPS、無線通信以及TF存儲接口。軟件實現(xiàn)上圍繞車輛數(shù)據(jù)的獲取和傳輸建立了完整的數(shù)據(jù)流向通道。模擬實驗表明,該車載終端能夠完成整車 CAN 網(wǎng)絡和GPS數(shù)據(jù)的采集、存儲和發(fā)送,性能穩(wěn)定,可靠性良好,很好地滿足了應用需求。
參考文獻:
[1] 王任重. 基于CAN總線的車載網(wǎng)絡控制系統(tǒng)研究與設計[D]. 上海: 上海工程技術大學. 2015: 20-28.
[2] Qi Z, Dong P, Ma K, et al. A design of in-car multi-layer communication network with Bluetooth and CAN bus[C]. Proc. of 2016 IEEE 14th International Workshop on Advanced Motion Control. 2016: 323 – 326.
[3] Jia T, Luo WG, Jia HB, et al. Research on remote diagnosis system based on baidumap API and OBD II diagnosis technology[C]. Proc. of 2016 International Conference on Communication Problem-Solving (ICCP), 2016: 1-3.
[4] Jo K, Lee M, Kim J, et al. Tracking and behavior reasoning of moving vehicles based on roadway geometry constraints[J]. IEEE Transactions on Intelligent Transportation Systems. 2016, 9: 1-17.
[5] 汪成亮, 陳俊宏, 張晨. 基于車聯(lián)網(wǎng)的油耗檢測及其時空分布研究[J]. 計算機工程, 2013, 39(9): 34-38.
[6] 顏伏伍, 曹愷, 胡杰, 等. 基于 Internet 和 3G 的汽車遠程診斷數(shù)據(jù)采集技術的研究[J]. 汽車工程, 2013, 35(5): 467-471.
[7] 章軍輝, 李慶, 陳大鵬. 一種電動車專家自診斷方法及系統(tǒng)[J]. 計算機科學, 2016, 43(6A): 34-36.
[8] Chen XL, Yang YW. Design of bus vehicle monitoring terminal design on S3C6410[C]. Proc. of World Automation Congress, 2012: 1-4.
[9] 于偉, 毛耀, 肖靖, 等. 基于 VxWorks系統(tǒng)的高空氣球吊籃反捻控制器[J]. 計算機工程與應用, 2016, 52(22), 266-270.
[10] Hu J, Liu C, Yan F, et al. The development of vehicle diagnostic system based on Android platform[C]. Proc. of 2015 International Conference on Connected Vehicles and Expo (ICCVE), 2015: 42-47.
[11] Luca B, Luciano B, Marco DF, et al. An integrated simulation framework to model electric vehicle operations and services[J]. IEEE Transactions on Vehicular Technology. 2016, 65(8): 5900-5917.