周良潤
摘 要 本文主要在J1939協(xié)議的基礎(chǔ)上對汽車信息采集系統(tǒng)進行相關(guān)的分析及研討。
關(guān)鍵詞 J1939協(xié)議 汽車信息采集系統(tǒng)
中圖分類號:U279.3 文獻(xiàn)標(biāo)識碼:A
1關(guān)于J1939協(xié)議
1.1 J1939協(xié)議的提出及意義
J1939協(xié)議是美國汽車工程師協(xié)會(SEA)在CAN2.0B協(xié)議的基礎(chǔ)上制定的客車和重型貨車網(wǎng)絡(luò)通信應(yīng)用層協(xié)議,分為數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、應(yīng)用層及網(wǎng)絡(luò)管理等幾部分,其物理層是基于CAN控制器。該協(xié)議采用CAN總線的數(shù)據(jù)幀封裝其數(shù)據(jù)信息,在不同的ECU間實現(xiàn)高速數(shù)據(jù)共享,從而有效減少線束數(shù)量并提高車輛電子控制系統(tǒng)的靈活性、可靠性以及可維修性。
1.2 J1939協(xié)議的汽車信息采集系統(tǒng)的優(yōu)點
(1)使用CAN總線實現(xiàn)顯示信息的傳送,共享車輛上電控模塊的信息,使車內(nèi)布線簡單;(2)傳輸及顯示信息具有較高的可靠性;(3)儀表體積較??;(4)系統(tǒng)擴展能力強;(5)實時性好,且精確度高;(6)顯示內(nèi)容豐富形象。
1.3 J1939協(xié)議介紹
1.3.1 J1939協(xié)議的報文格式
J1939協(xié)議是負(fù)責(zé)數(shù)據(jù)傳輸?shù)膫鬏攨f(xié)議,它的功能主要分為數(shù)據(jù)的拆分打包和重組、數(shù)據(jù)傳送管理兩部分。 J1939協(xié)議遵循CAN2.0B的要求,使用擴展幀式(29位ID)定義形成了自身的編碼系統(tǒng),從而實現(xiàn)發(fā)送數(shù)據(jù)幀同步、順序控制、錯誤控制和流控制等功能。數(shù)據(jù)單元PDU(分為PDU1格式和PDU2格式,PDU1格式報文支持點對點會話,而PDU2格式支持大部分報文廣播發(fā)送)組織了組織信息的框架,包括優(yōu)先級(P,3)、擴展數(shù)據(jù)頁(EDP,1)、數(shù)據(jù)頁(DP,1)、PDU格式(PF,8)、PDU特定域(PS,8)、源地址(SA,8)以及數(shù)據(jù)域(DF,8)。在開放式系統(tǒng)互聯(lián)參考模型(OSI )應(yīng)用層中,這七個部分被封裝成一個或多個CAN數(shù)據(jù)幀,通過物理層發(fā)送到總線網(wǎng)絡(luò)的其他設(shè)備節(jié)點。一個CAN幀只有一個PDU,而一個PDU有時候需要多個CAN幀才能完成。
1.3.2 J1939應(yīng)用層協(xié)議
SEAJ1939協(xié)議明確規(guī)定了汽車內(nèi)部ECU的地址配置、命名、通訊方式及報文發(fā)送等。協(xié)議中的應(yīng)用層協(xié)議則對車輛應(yīng)用的信號(參數(shù))和報文(參數(shù)組)有了新的定義。應(yīng)用層通過參數(shù)描述信號,給每個參數(shù)分配了一個十九位的SPN碼(可疑參數(shù)編號);通過參數(shù)組描述報文,給每個參數(shù)分配了一個二十四位的PGN碼(參數(shù)組編號)(即EDP、DP、PF、PS)。其中,SPN用于識別與ECU相關(guān)的故障診斷元素、部件或參數(shù)組中的相關(guān)參數(shù);PGN用來唯一標(biāo)識一個特定的參數(shù)組,主要用來識別或標(biāo)識命令、數(shù)據(jù)、某些請求及應(yīng)答等。
2基于當(dāng)前J1939協(xié)議的汽車信息采集系統(tǒng)的探討
當(dāng)前J1939協(xié)議的汽車信息采集系統(tǒng)主要是利用車輛網(wǎng)絡(luò)中的CAN總線接口采集車輛的各項信息,經(jīng)過系統(tǒng)的CAN通信模塊解析之后,即可顯示汽車的信息數(shù)據(jù)。
2.1系統(tǒng)硬件電路設(shè)計
系統(tǒng)硬件電路的設(shè)計由微控制器、CAN總線接口、信號采集處理電路、接口電路等組成,如圖1所示。
汽車通過CAN總線獲得報文格式,然后根據(jù)J1939協(xié)議的相關(guān)參數(shù)標(biāo)準(zhǔn)計算出車輛的發(fā)動機轉(zhuǎn)速、節(jié)氣門開度、水溫以及故障代碼等信息,接著從相應(yīng)的傳感器以模擬量、開關(guān)量、脈沖量等形式獲取汽車的燃油量、轉(zhuǎn)動泵壓力、制動氣壓等信息,再經(jīng)過信號采集處理電路進行分壓濾波整形處理后直接送往微控制器進行A/D變換處理。這些信息經(jīng)過微控制器計算處理后便通過USB和UART接口傳送給車載多媒體設(shè)備或虛擬數(shù)字儀進行顯示。
汽車信息采集系統(tǒng)以處理器為核心,實現(xiàn)CAN網(wǎng)絡(luò)中的J1939協(xié)議的應(yīng)用層協(xié)議解析汽車工況信息功能。處理器要完成CAN通訊、RS232通訊、A/D轉(zhuǎn)換、數(shù)據(jù)存儲等功能,同時還要實時處理數(shù)據(jù)并顯示。因此,在設(shè)計時選用集成FLEXCAN控制器的處理器,不僅可以簡化系統(tǒng)的硬件設(shè)計,還能提高產(chǎn)品的性能。
2.2系統(tǒng)軟件設(shè)計
系統(tǒng)的軟件設(shè)計采用Keil RealView MDK-ARM環(huán)境編寫,通過J-Link調(diào)試仿真器與STM32 F103C8T6 的JTAG接口連接,從而實現(xiàn)在線仿真調(diào)試。汽車信息采集系統(tǒng)通電后,先對微控制器的重啟和時鐘控制(RCC)模塊以及嵌套向量中斷控制器(NVIC)模塊進行初始化,并使能設(shè)置CAN屏蔽碼和驗收碼。CAN模塊的初始化過程如下:
(1)根據(jù)CAN節(jié)點的相關(guān)信息初始化一個CAN-InitTypeDef型結(jié)構(gòu),并通用CAN-Init函數(shù)對CAN接口進行初始化;
(2)創(chuàng)建CAN-FilterInitTypeDef結(jié)構(gòu)體,調(diào)用CAN-FilterInit函數(shù)對CAN過濾器進行初始化;
(3)調(diào)用CAN-ITConfig函數(shù)對CAN中斷源進行使能設(shè)置。系統(tǒng)初始化完成之后,待CAN總線接收中斷產(chǎn)生,判斷總線數(shù)據(jù)是否滿足屏蔽條件。將29位標(biāo)識符報文與驗收碼、屏蔽碼值逐漸比較,屏蔽碼用于定位相關(guān)位(0為相關(guān),1為不相關(guān))。只有當(dāng)標(biāo)識符中的相關(guān)位與驗收碼相應(yīng)位同步時,系統(tǒng)才能接收報文。如果滿足屏蔽條件,則從寄存器讀取相應(yīng)的數(shù)據(jù),并存入緩沖區(qū),然后通過CAN-RECEIVE函數(shù)讀取相應(yīng)的數(shù)據(jù),再根據(jù)J1939協(xié)議判斷計算車輛工況及故障代碼等信息,處理后通過USB或UART發(fā)送到車載多媒體設(shè)備或虛擬數(shù)字儀表進行顯示。
3結(jié)語
基于J1939協(xié)議的汽車采集系統(tǒng)主要通過硬件設(shè)計和軟件設(shè)計兩個方面實現(xiàn)對車輛信息的實時采集。當(dāng)前大多數(shù)車輛的ECU產(chǎn)品都遵循SEAJ1939協(xié)議的CAN總線接口,為車輛信息的快速采集和故障的在線診斷定位提供了便利。隨著電子化技術(shù)的發(fā)展,基于J1939協(xié)議的汽車信息采集系統(tǒng)將會更加廣泛的應(yīng)用于汽車中。
參考文獻(xiàn)
[1] 齊鳳英.基于SAEJ1939協(xié)議的動力傳動系統(tǒng)虛擬儀表及數(shù)據(jù)采集系統(tǒng)[J]. 制造業(yè)自動化,2012(04).
[2] 陳光建,何華平,賈金玲.基于虛擬儀器的實時數(shù)據(jù)采集系統(tǒng)[J].儀表技術(shù)與傳感器,2011(04).