應用領域:商用車CAN 總線通訊
挑戰(zhàn):CAN2.0B 規(guī)范的工業(yè)總線通訊、報文標識符和數(shù)據(jù)幀定義沒有形成統(tǒng)一的標準,參數(shù)定義
隨意性很大。商用車CAN 總線通訊標準,遵循建立在CAN2.0B 基礎上的SAE J1939 協(xié)議。報文標識
符ID,按照SAE 標準制定的車速、發(fā)動機轉速、扭矩、溫度、壓力、燃油消耗量等參數(shù)的物理定
義,報文數(shù)據(jù)幀格式對應協(xié)議數(shù)據(jù)單元相應數(shù)據(jù)內容的封裝。面臨的挑戰(zhàn)是將J1939 協(xié)議融會貫通
于CAN 總線通訊平臺的設計之中。
應用方案:使用NI LabVIEW 軟件開發(fā)平臺和PXI 模塊化儀器系統(tǒng)中的CAN 通訊模塊,創(chuàng)建過濾
識別J1939 協(xié)議報文標識符ID 及多幀報文按協(xié)議格式解析接收和封裝發(fā)送的設計方法,并據(jù)此方
法構建CAN 通訊平臺;完成整車電環(huán)境半實物仿真、發(fā)動機臺架試驗CAN 總線信息的收發(fā)、存貯及
實時計算顯示。
使用的產(chǎn)品:
LabVIEW2009 軟件平臺
PXI-1045 機箱
PXI-8464/2 CAN 通訊模塊
概述:
進入21 世紀以來,商用車CAN 總線網(wǎng)絡的應用得到了異常迅猛的發(fā)展?,F(xiàn)今市面上滿足國3~國5 排放標準的商用車,無一例外均應用CAN 總線網(wǎng)絡,進行整車VECU、發(fā)動機EECU、自動變速箱ECU、汽車組合儀表ECU、車輪防抱死制動ECU 之間的數(shù)據(jù)通訊。基于J1939 協(xié)議的商用車CAN總線,針對單片機微控制器MCU 節(jié)點的MCU + CAN 控制器 + CAN 收發(fā)器的CAN 通訊接口,在車載網(wǎng)絡控制系統(tǒng)中得到了大量應用;而對整車道路試驗、發(fā)動機臺架試驗、整車電環(huán)境半實物仿真測試的上位機節(jié)點的PC 機或筆記本電腦 + CAN 通訊模塊,大都使用價格昂貴的Vector CANoe 模塊。
存在的問題:
1)PXI 測控裝置無基于J1939 協(xié)議的CAN 通訊功能,不能滿足試驗工況對CAN 總線報文信息分析的功能需求。
2)CANoe 模塊時序不受PXI 儀器時鐘速率控制,無法與PXI 時序的其它測量參數(shù)同步觸發(fā)測量。
基于LabVIEW 和J1939 協(xié)議的CAN 總線通訊技術方法,在國內汽車行業(yè)PXI 測控裝置的應用屬于空白,難點是如何將LabVIEW 軟件開發(fā)平臺與復雜的J1939 協(xié)議有效結合,實現(xiàn)報文信息的過濾接收、合成重組及封裝發(fā)送。針對商用車CAN 總線通訊網(wǎng)絡的特點,構建基于LabVIEW 和J1939 協(xié)議的CAN 總線通訊平臺,嵌入在NI PXI 模塊化接口的測控裝置中,用于發(fā)動機臺架試驗、整車電環(huán)境半實物仿真測試。
J1939 協(xié)議
J1939 協(xié)議以CAN2.0B 規(guī)范為基礎制定,對CAN2.0B 擴展幀29 位標識符ID 定義形成J1939 的編碼系統(tǒng),包括優(yōu)先級P、預留位R、數(shù)據(jù)頁DP、協(xié)議數(shù)據(jù)單元PF、擴展單元PS、源地址SA 和數(shù)據(jù)字節(jié)Data,如圖1 所示。這七部分在開放式系統(tǒng)互聯(lián)參考模型(OSI)應用層,通過協(xié)議數(shù)據(jù)單元PDU(Protocal Data Unit)被封裝成一個或多個CAN 數(shù)據(jù)幀,通過物理層發(fā)送給總線網(wǎng)絡其它設備節(jié)點。

圖1 J1939 數(shù)據(jù)幀格式
PDU 定義了數(shù)據(jù)幀中與J1939 協(xié)議相關的信息,由標識符ID 和數(shù)據(jù)場組成。
PDU1 格式報文PF 在0~239 之間,報文為點對點向目標地址發(fā)送,PS:報文接收的目標地址,
SA:報文發(fā)送的源地址,在目標地址中填入255,為全局地址發(fā)送。
PDU2 格式報文PF 在240~255 之間,報文向全局地址發(fā)送,PS:參數(shù)組擴展值,J1939 協(xié)議大部分報文為PDU2 格式。PDU 數(shù)據(jù)場包含參數(shù)組中數(shù)據(jù)內容,參數(shù)組編號PGN(Parameter Group Number)用于唯一標識參數(shù)組的號碼,由一個或幾個參數(shù)構成一幀或多幀報文,而參數(shù)組是應用層中定義的與某個ECU相關的若干參數(shù)(例如發(fā)動機水溫、燃油溫度等)的組合。
J1939 協(xié)議與CAN2.0B 標準區(qū)別
標識符ID:CAN2.0B 不同功能的報文信息可以使用相同的ID,根據(jù)制造商特定的協(xié)議使用CAN設備,在集成時會產(chǎn)生ID 不能識別或識別不一致問題。J1939 每幀報文的標識符唯一,且每幀報文都有自己的PGN,為每個節(jié)點規(guī)定唯一的源地址,并將源地址映射到CAN 標識符中,避免多個節(jié)點使用相同的標識符,例如ID:0CF00400 代表發(fā)動機轉速、扭矩報文。
OSI 模型:CAN2.0 規(guī)范定義了七層OSI 參考模型的物理層和數(shù)據(jù)鏈路層,是底層標準,如圖2所示, CAN 總線產(chǎn)品的兼容性、互換性和可集成性差。J1939 是面向OSI 參考模型應用層的高層協(xié)議,在應用層定義了針對車輛應用的信號(參數(shù))和報文(參數(shù)組)。通過參數(shù)描述信號,并給每個參數(shù)分配了一個編號SPN(Suspect Parameter Number),參數(shù)定義了PDU 數(shù)據(jù)場中字節(jié)的物理意義,例如SPN190 代表發(fā)動機轉速。一個PGN 中可能有幾個SPN,PGN61444 包含了SPN190 發(fā)動機轉速和SPN513 發(fā)動機扭矩等參數(shù)。多幀報文:CAN2.0B 規(guī)范定義只能使用單幀報文傳輸,J1939 協(xié)議除單幀報文傳輸外,還使用對話式、廣播式多幀報文傳輸,并按多幀數(shù)據(jù)傳輸協(xié)議進行打包封裝發(fā)送和接收合成重組處理,其中對話式多幀報文發(fā)送接收節(jié)點需要握手協(xié)議,廣播式多幀報文面向全局地址發(fā)送。

圖2 開放式系統(tǒng)互聯(lián)參考模型(OSI)
模塊接口
PXI-8464/2 雙通道CAN2.0B 通訊接口模塊,內含SJA1000T CAN 控制器和TJA1041T 高速CAN收發(fā)器及TJA1054AT 低速CAN 收發(fā)器。J1939 數(shù)據(jù)鏈路層通過PDU 格式實現(xiàn)報文的打包封裝,通過CAN 控制器發(fā)送CAN 數(shù)據(jù)幀必須具有的同步、順序控制、錯誤控制和流控制,自動產(chǎn)生CRC 校驗位和ACK 應答位插入數(shù)據(jù)幀中。J1939 物理層協(xié)議規(guī)定了每個網(wǎng)段最多30 個ECU,CAN 總線通訊速率250 kBits/s,總線電平顯性、隱性,差分電壓3.5V/1.5V,差分傳輸雙絞線線纜顏色CAN-H 黃色、CAN-L 綠色,CAN 收發(fā)器完成MCU 至CAN 總線之間收發(fā)電平的匹配轉換。
軟件設計
基于J1939 協(xié)議的CAN 總線報文收發(fā)多任務處理流程,如圖3 所示,采用生產(chǎn)者/消費者循環(huán)數(shù)據(jù)結構。生產(chǎn)者循環(huán)使用“元素入隊列”函數(shù)向報文簇隊列中添加數(shù)據(jù),消費者循環(huán)使用“元素出隊列”函數(shù)從報文簇隊列中移出數(shù)據(jù)。循環(huán)間采用隊列的方式進行通信,避免多任務處理競爭狀態(tài),當生產(chǎn)數(shù)據(jù)比消費處理數(shù)據(jù)的速度快時,隊列的緩沖作用保證報文數(shù)據(jù)不丟失。

圖3 基于LabVIEW 和J1939 協(xié)議的CAN 總線通訊報文收發(fā)多任務處理
建立接收報文ID 解析過濾的識別方法。確定報文標識符ID 的枚舉型狀態(tài)變量識別報文,根據(jù)狀態(tài)變量條件結構過濾報文。PDU1、PDU2 格式單幀報文全部入隊列,數(shù)據(jù)場大于8 字節(jié)的對話式、廣播式多幀報文按J1939協(xié)議多幀數(shù)據(jù)合成重組后入隊列,其它無數(shù)據(jù)場的報文幀舍去,處理完的接收報文簇分解后出隊列計算、存貯和顯示。廣播幀報文接收合成,首先進行TP.CM-BAM 命令幀解析,提取EECU 發(fā)送報文的PGN 和幀數(shù),其次對接收的TP.DT-BAM 數(shù)據(jù)幀組報文刪除幀序號,通過替換數(shù)組子集對接收報文合成重組,還原PGN 標識的數(shù)據(jù)長度大于8 字節(jié)的廣播幀報文。建立發(fā)送報文ID 解析封裝的識別方法。報文解析首先確定幀類型狀態(tài)變量,其次根據(jù)狀態(tài)變量的條件判斷,進行報文格式的封裝定義。數(shù)據(jù)場小于或等于8 字節(jié)的PDU1、PDU2 單幀發(fā)送報文直接入隊列,數(shù)據(jù)場大于8 字節(jié)的對話式、廣播式多幀報文按J1939 協(xié)議多幀數(shù)據(jù)處理打包封裝簇合成后入隊列,處理完的J1939 發(fā)送報文簇分解后出隊列并寫入CAN 口。廣播幀報文發(fā)送封裝,ID 解析將發(fā)送報文的PGN 封裝在廣播報文命令幀標識符ID-TP.CM 中,報文數(shù)組解析進行字節(jié)數(shù)和幀數(shù)計算,創(chuàng)建幀序號加報文子集的8 字節(jié)多幀數(shù)組,與數(shù)據(jù)幀標識符ID-TP.DT 打包封裝簇合成TP.DT-BAM,TP.CM-BAM 與TP.DT-BAM 組成廣播幀格式報文。
應用效果
在整車電環(huán)境的半實物仿真報文接收測試試驗中,應用圖4 所示的基于LabVIEW 和J1939 協(xié)議的CAN 總線通訊平臺,與Vector CANoe 模塊在同一時間段比對測試,接收的某型號發(fā)動機穩(wěn)態(tài)工況EECU 報文如圖5 所示,一秒內接收EECU 發(fā)出的526 幀報文,比對測試接收的報文無丟失現(xiàn)象。發(fā)動機燃油消耗量報文,實時反映了發(fā)動機燃油經(jīng)濟性,在商用車J1939 協(xié)議CAN 總線網(wǎng)絡中,分別被車輛VECU 接收,作為換擋控制策略控制自動變速箱汽車;組合儀表ECU 接收并實時顯示,提示駕駛員形成良好的駕駛習慣,操縱汽車達到最佳燃油經(jīng)濟性的路況行駛。為使發(fā)動機獲得最佳的動力性、經(jīng)濟性和兼顧排放達標,需要對發(fā)動機電控單元EECU 進行標定匹配,獲得最佳噴油脈寬的標定參數(shù)。標定之后做比對試驗,驗證EECU 的標定效果。發(fā)動機穩(wěn)態(tài)工況試驗,能夠反映車輛的等速工況;而發(fā)動機變工況瞬態(tài)試驗,能夠模擬實際道路循環(huán)中發(fā)動機狀態(tài)。通過將實時報文油耗和實際測量瞬態(tài)油耗的對比,研究兩者之間的對應吻合關系,判斷發(fā)動機EECU 的控制效果。
?。╝)整車電環(huán)境的半實物仿真 (b)發(fā)動機臺架試驗
圖4 基于LabVIEW 和J1939 協(xié)議的CAN 總線通訊平臺應用

注:一秒內接收報文 39736 – 39210 = 526
圖5 發(fā)動機穩(wěn)態(tài)工況EECU 報文

圖6 發(fā)動機變工況臺架試驗油耗比對測量
某型號發(fā)動機十工況臺架試驗瞬態(tài)油耗比對測量曲線見圖6 所示,從J1939 協(xié)議CAN 總線接收并解析的EECU 油耗報文數(shù)據(jù),與臺架油耗儀實測數(shù)據(jù)在發(fā)動機低負荷時存在差異,即發(fā)動機低負荷時實際噴油量較小,設定噴油量與實際噴油量的差異值較大。這個差異是因為發(fā)動機低負荷共軌軌壓波動較大,導致噴油量波動變化而客規(guī)存在。兩條曲線總體吻合一致,通過CAN 總線接收的發(fā)動機噴油目標值,與實際測量值接近,且變化趨勢和時序同步,反映了發(fā)動機EECU 標定匹配獲得了最佳噴油脈寬的目標值。
總結
基于LabVIEW 和J1939 協(xié)議的NI PXI 模塊化系統(tǒng)架構的CAN 總線通訊平臺的開發(fā),建立了NICAN 模塊在商用車CAN 總線通訊的應用基礎,項目具有推廣和商品應用前景。在發(fā)動機臺架試驗、整車電環(huán)境半實物仿真分析中,實現(xiàn)對CAN 總線報文信息的過濾識別、合成接收、封裝發(fā)送、存貯、解析計算及實時顯示。應用LabVIEW 軟件平臺強大的數(shù)學分析運算及隊列處理能力,以及適應整車苛刻測試環(huán)境的NI PXI 儀器及CAN 接口模塊,滿足試驗工況對CAN 總線報文信息解析的功能需求,同時實現(xiàn)對報文數(shù)據(jù)與NI PXI 儀器其它測量參數(shù)同步采樣,試驗數(shù)據(jù)比對分析處理具有實時性和真實性。
電子發(fā)燒友App


























評論