摘要:使用NI LabVIEW軟件開發平臺和PXI模塊化儀器系統中的CAN通訊模塊,創建過濾識別J1939協議報文標識符ID及多幀報文按協議格式解析接收和封裝發送的設計方法,構建基于J1939協議的CAN總線通訊平臺,完成整車電環境半實物仿真、發動機臺架試驗CAN總線信息的收發解析、存貯及實時顯示。
關鍵詞:LabVIEW軟件;J1939協議;CAN總線;PXI測控裝置
中圖分類號:TP335 文獻標志碼:A 文章編號:1005-2550(2011)06-0018-05
Build of CAN Communication Platform Based on LabVIEW and J1939 Protocal
ZHOU Yue-gang
(Dongfeng Commercial Vehicle Technical Center of DFL,Wuhan 430056,China)
Abstract:Using NI LabVIEW software development platform and the CAN communication module in the PXI module instrumentation,design a process for filtering and identificating ID of J1939 protocol and analyzing multi-frame message to receive and packaging to send. Building a communication platform based on the J1939 protocol CAN bus,complete vehicle electrical environment-loop simulation,and engine test bed information on the CAN bus transceiver analysis,and storage and real-time display.
Key words:LabVIEW;J1939 protocol;CAN bus;PXI monitoring devices
進入21世紀以來,商用車CAN總線網絡的應用得到了異常迅猛的發展。現今市面上滿足國3~國5排放標準的商用車,無一例外的均應用CAN總線網絡,進行整車VECU、發動機EECU、自動變速箱ECU、汽車組合儀表ECU、輪胎防抱死制動ECU之間的數據通訊。基于J1939協議的商用車CAN總線,針對單片機微控制器MCU節點的MCU + CAN控制器 + CAN收發器的CAN通訊接口,在車載網絡控制系統中得到了大量應用;而對整車道路試驗、發動機臺架試驗、整車電環境半實物仿真測試的上位機節點的PC機或筆記本電腦 + CAN通訊模塊,大都使用價格昂貴的Vector CANoe模塊。
測試中存在的問題:
(1)PXI測控裝置無基于J1939協議的CAN通訊功能,不能滿足試驗工況對CAN總線報文信息分析的功能需求;
(2)CANoe模塊時序不受PXI儀器時鐘速率控制,無法與PXI時序的其它測量參數同步觸發測量。
基于LabVIEW和J1939協議的CAN總線通訊技術方法實施,在國內汽車行業PXI測控裝置的應用屬于空白,難點是如何將LabVIEW軟件開發平臺與復雜的J1939協議有效的結合,實現報文信息的過濾接收、合成重組及封裝發送。
面對商用車CAN總線通訊網絡的特點,構建基于LabVIEW和J1939協議的CAN總線通訊平臺,嵌入在NI PXI模塊化接口的測控裝置中,用于發動機臺架試驗、整車電環境半實物仿真測試。
1 J1939協議
J1939協議以CAN2.0B規范為基礎制定,對CAN2.0B擴展幀29位標識符ID定義形成J1939的編碼系統,包括優先級P、預留位R、數據頁DP、協議數據單元PF、擴展單元PS、源地址SA和數據字節Data,如圖1所示。這七部分在開放式系統互聯參考模型(OSI)應用層[1],通過協議數據單元PDU(Protocal Data Unit)被封裝成一個或多個CAN數據幀,通過物理層[2] [3]發送給總線網絡其它設備節點。
1.1 PDU格式
PDU定義了數據幀中與J1939協議相關的信息,由標識符ID和數據場組成,見圖1。
PDU1格式報文PF在0~239之間,報文為點對點向目標地址發送,PS:報文接收的目標地址,SA:報文發送的源地址,在目標地址中填入255,為全局地址發送。
PDU2格式報文PF在240~255之間,報文向全局地址發送,PS:參數組擴展值,J1939協議大部分報文為PDU2格式。
PDU數據場包含參數組中數據內容,參數組編號PGN(Parameter Group Number)用于唯一標識參數組的號碼,由一個或幾個參數構成一幀或多幀報文,而參數組是應用層中定義的與某個ECU相關的若干參數(例如發動機水溫、燃油溫度等)的組合。
1.2 J1939協議與CAN2.0B標準區別
1.2.1 標識符ID
CAN2.0B不同功能的報文信息可以使用相同的ID,根據制造商特定的協議使用CAN設備,在集成時會產生ID不能識別或識別不一致問題。J1939每幀報文的標識符唯一,且每幀報文都有自己的PGN,為每個節點規定唯一的源地址,并將源地址映射到CAN標識符中,避免多個節點使用相同的標識符;例如ID:0CF00400代表發動機轉速、扭矩報文。
1.2.2 OSI模型
開放式系統互聯參考模型如圖2所示,CAN2.0規范定義了七層OSI參考模型的物理層和數據鏈路層[4],是低層標準,CAN總線產品的兼容性、互換性和可集成性差。J1939是面向OSI參考模型應用層的高層協議,在應用層定義了針對車輛應用的信號(參數)和報文(參數組)。通過參數描述信號,并給每個參數分配了一個編號SPN(Suspect Parameter Number),參數定義了PDU數據場中字節的物理意義,例如SPN190代表發動機轉速;狀態參數表示具有多態信號的某一種狀態,例如發動機巡航控制/扭矩限值/轉速限值/怠速設定;測量參數反映接收到的信號值具體大小,例如發動機轉速/扭矩/燃油消耗量。一個PGN中可能有幾個SPN,PGN61444包含了SPN190發動機轉速和SPN513發動機扭矩等參數。
1.2.3 多幀報文
CAN2.0B規范定義只能使用單幀報文傳輸,J1939協議除單幀報文傳輸外,還使用對話式、廣播式多幀報文傳輸,并按多幀數據傳輸協議進行打包封裝發送和接收合成重組處理,其中對話式多幀報文發送接收節點需要握手協議,廣播式多幀報文面向全局地址發送。
2 CAN總線通訊平臺
2.1 模塊接口
PXI-8464/2雙通道CAN2.0B通訊接口模塊,內含SJA1000T CAN控制器和TJA1041T高速CAN收發器及TJA1054AT低速CAN收發器。J1939數據鏈路層通過PDU格式實現報文的打包封裝,通過CAN控制器組織、發送CAN數據幀具有必須的同步、順序控制、錯誤控制和流控制,自動產生CRC校驗位和ACK應答位插入數據幀中。
J1939物理層協議規定了每個網段最多30個ECU,CAN總線通訊速率250k Bits/s,總線電平顯性、隱性,差分電壓3.5V/1.5V,差分傳輸雙絞線線纜顏色CAN-H黃色、CAN-L綠色,CAN收發器完成MCU至CAN總線之間收發電平的匹配轉換。
2.2 軟件設計
基于LabVIEW和J1939協議的CAN總線報文收發多任務處理流程,如圖3所示,采用生產者/消費者循環數據結構。生產者循環使用“元素入隊列”函數向報文簇隊列中添加數據,消費者循環使用“元素出隊列”函數從報文簇隊列中移出數據。循環間采用隊列的方式進行操作,消除多任務處理競爭狀態,當生產數據比消費處理數據的速度快時,隊列的緩沖作用保證報文數據不丟失。
建立接收報文ID解析過濾的識別方法。確定報文標識符ID的枚舉型狀態變量識別報文,根據狀態變量條件結構過濾報文。
PDU1、PDU2格式單幀報文全部入隊列,數據場大于8字節的對話式、廣播式多幀報文按J1939協議多幀數據合成重組后入隊列,其它無數據場的報文幀舍去,處理完的接收報文簇分解后出隊列計算、存貯和顯示。
建立發送報文ID解析封裝的識別方法。報文解析首先確定幀類型狀態變量,其次根據狀態變量的條件判斷,進行報文格式的封裝定義。
數據場小于或等于8字節的PDU1、PDU2單幀發送報文直接入隊列,數據場大于8字節的對話式、廣播式多幀報文按J1939協議多幀數據處理打包封裝簇合成后入隊列,處理完的J1939發送報文簇分解后出隊列并寫入CAN口。
3 應用效果
在整車電環境的半實物仿真報文接收測試試驗中,應用圖4所示的基于LabVIEW和J1939協議的CAN總線通訊平臺,與Vector CANoe模塊在同一時間段比對測試,接收的某型號發動機穩態工況EECU報文如圖5所示,一秒內接收EECU發出的526幀報文,比對測試接收的報文無丟失現象。
發動機燃油消耗量報文,實時反映了發動機燃油經濟性,在商用車J1939協議CAN總線網絡中,分別被車輛VECU接收,作為換擋控制策略控制自動變速箱汽車;組合儀表ECU接收并實時顯示,提示駕駛員形成良好的駕駛習慣,操縱汽車達到最佳燃油經濟性的路況行駛。為使發動機獲得最佳的動力性、經濟性和兼顧排放達標,需要對發動機電控單元EECU進行標定匹配,獲得最佳噴油脈寬的標定參數。標定之后做比對試驗,驗證EECU的標定效果。
發動機穩態工況試驗,能夠反映車輛的等速工況;而發動機變工況瞬態試驗,能夠模擬實際道路循環中發動機狀態。通過將實時報文油耗和實際測量瞬態油耗的對比,研究兩者之間的對應吻合關系,判斷發動機EECU的控制效果。
某型號發動機+工況臺架試驗瞬態油耗比對測量曲線見圖6,從J1939協議CAN總線接收并解析的EECU油耗報文數據,與臺架油耗儀實測數據在發動機低負荷時存在差異,即發動機低負荷時實際噴油量較小,設定噴油量與實際噴油量的差異比值較大。這個差異是因為發動機低負荷共軌軌壓波動較大,導致噴油量波動變化而客規存在。總體兩條曲線吻合相當一致,通過CAN總線接收的發動機噴油目標值,與實際測量值接近,且變化趨勢和時序同步,反映了發動機EECU標定匹配獲得了最佳噴油脈寬的目標值。
4 總結
基于LabVIEW和J1939協議的NI PXI模塊化系統架構的CAN總線通訊平臺的開發,建立了PXI CAN模塊在商用車CAN總線通訊的應用基礎,項目具有推廣和商品應用前景。在發動機臺架試驗、整車電環境半實物仿真分析中,實現對CAN總線報文信息的過濾識別、合成接收、封裝發送、解析計算及存貯顯示。
應用LabVIEW軟件平臺強大的數學分析運算及隊列處理能力,滿足試驗工況對CAN總線報文信息解析的功能需求,同時實現對報文數據與NI PXI儀器其它測量參數同步采樣,試驗數據比對分析處理具有實時性和真實性。
參考文獻:
[1] SAE J1939-11[S].物理層.
[2] SAE J1939-13[S].物理層.
[3] SAE J1939-71[S].車輛應用層.
[4] SAE J1939-21[S].數據鏈路層.