建立基於 SAE J1939 協定與 NI PXI 的 CAN 匯流排平台

跃钢 周,Dongfeng Motor Corporation

“此系統具備強大的 LabVIEW 數學分析队列處理、NI PXI 裝置,以及適用於嚴厲車輛測試環境的 CAN 介面模組,提供多重測試情況必須的 CAN 匯流排訊息資訊分析功能。”

- 跃钢 周,Dongfeng Motor Corporation

挑戰:

將 J1939 協定合併至 CAN 匯流排通平台設計。

解決方案:

使用 NI LabVIEW 系統設計軟體與 NI PXI CAN 通訊模組,設計過濾 J1939 協定 ID 的方法,以依照協定格式接收與傳送多個帧,並建立 CAN 通訊平台。我們也執行完整的車輛硬體迴路 (HIL) 電気環境模擬,並建置了包含 CAN 匯流排訊息傳送與接收、儲存與即時顯示的引擎台測試平台。

所有符合中國國家 III 至 IV 排放標準的商用車輛,都使用 CAN 匯流排,在電子控制單元 (ECU) 之間通訊,包括車輛 ECU (VECU)、引擎 ECU (EECU)、自動變速箱 ECU、儀器 ECU 與反駕駛制動系統 ECU。車輛控制網路已執行基於 J1939 協定的商用車輛 CAN 匯流排,並結合多點控制單元 (MCU)、CAN 控制器與 MCU 節點 CAN 收發器架構。包含 PC、CAN 通訊模組與軟體的現有道路測試、引擎台式測試與車輛電動環境 HIL 模擬測試解決方案,成本極高。

 


通訊方法問題

因為 CAN 2.0 B 規格中的工業匯流排訊息識別符與資料帧缺少通用定義,所以參數是任意的。商用車輛的 CAN 匯流排通規格遵循基於 CAN 2.0 B 的 SAE J1939 協定。目前,適用於國家汽車產業的 PXI 控制裝置應用中,不存在基於 LabVIEW 與 J1939 協定的 CAN 匯流排通方法,因此我們決定將 LabVIEW 軟體與複雜的 J1939 協定相結合,以過濾、接收、合成、重新結合與傳送訊息。

 

考量商用汽車的 CAN 匯流排網路特性,我們建立了一個基於 LabVIEW 與 J1939 協定的 CAN 匯流排平台,並將其嵌入到 NI PXI 模組化介面裝置中,以進行引擎台與汽車電気環境 HIL 測試。

 

J1939 協定與 CAN 2.0 B 規格差異

J1939 協定以 CAN 2.0 B 規格為基礎。CAN 2.0 B 擴充帧中的 29 位元 ID 可定義為 J1939 編碼系統,包含優先度 (P)、預留位元 (R)、資料頁 (DP)、協定資料單元 (PF)、擴充單元 (PS)、來源地址 (SA) 與資料欄位,如圖 1 所示。開放式系統互連 (OSI) 參考模型應用層包含 7 個部分,這些部分會透過協定資料單元 (PDU) 封裝在一個或多個 CAN 資料帧中,並透過物理層傳送至匯流排網路中的其他裝置節點。

 

不同的 CAN 2.0 B 裝置函式使用相同的 ID 傳送不同的訊息資訊,因此根據特定製造商協定選擇的 CAN 裝置可能會在系統整合時造成未認識或不一致的 ID。J1939 協定中的每個訊息帧都有唯一的識別子與 PGN,為每個節點分配唯一的源地址,並將源地址映射至 CAN 識別子,以避免使用相同的識別子的多個節點。例如,ID:0CF00400 表示引擎速度與扭矩訊息。

 

CAN 2.0 B 規格定義了 7 個 OSI 參考模型層中的資料連結層,即是低層標準,如圖 2 所示。CAN 匯流排產品通常具有不良的相容性、互換性與整合性。相反,依據 OSI 參考模型應用層,J1939 是一款高階協定,可定義汽車應用訊號 (參數) 與訊息 (參數群)。訊號由參數描述,每個參數分配一個疑似參數號 (SPN)。這些參數會定義 PDU 資料欄位中的資料字元的物理含義;例如, SPN190 表示引擎速度。

 

CAN 2.0 B 規格只能傳輸單帧訊息,而 J1939 協定可傳輸單帧訊息與多帧訊息,包括對話與播放。J1939 可根據多帧資料傳輸協定,打包、傳送、接收、合成與重新排序訊息。

 

模組介面

模組介面由 NI PXI CAN 雙埠式收發儀、SJA1000T CAN 控制器、TJA1041T 高速 CAN 收發儀與 TJA1054AT 低速 CAN 收發儀组成。J1939 協定資料連結層會依照 PDU 格式打包訊息,並執行 CAN 資料帧同步化、序列控制、錯誤控制與流控制。

 

根據 J1939 物理層協定,每個網路段均可包含

  • 最多 30 個 ECU
  • CAN 匯流排通速率 250 kB/s
  • 包含主流電平與衰退電平的匯流排電壓
  • 差動電壓為 3.5 V 或 1.5 V

 

此外,CAN 匯流排收發儀會轉換 CAN 匯流排與 MCU 之間的電壓水平。

 

軟體設計

如圖 3 所示,基於 J1939 協定多作業處理流程的 CAN 匯流排訊息使用生產者與消費者迴路架構。生產者迴圈使用元素入队列函式將資料添加至消息簇的队列,而消費者迴圈使用元素出队列函式將資料移出消息簇的队列。队列會在迴圈之間進行通訊,以避免多項作業之間的衝突。當資料產生速度高於資料消耗時,队列缓冲区可避免消息資料損失。

 


實作方式

如圖 4 所示,我們在 HIL 車輛電気環境模擬中執行了基於 LabVIEW 與 J1939 協定的 CAN 匯流排通平台,以進行訊息接收測試。我們同時將其與 Vector CANoe 模組進行比較。圖 7 顯示了從持續運作的引擎收到的 EECU 訊息。在 1 秒內,系統可從 EECU 接收 526 帧訊息,而不會丢失訊息。

 

引擎燃料消耗訊息可在即時顯示引擎燃料效率。VECU 依照商用車輛 J1939 協定,在 CAN 匯流排網路中接收訊息,以控制自動變速箱車輛的移位。組合儀器 ECU 即時接收並顯示此訊息,以提醒駕駛人有良好的駕駛習慣,並操作車輛以達到最佳燃料效率。为了最佳的引擎效能、效率與排放標準,我們會校準 EECU 以取得最佳的注入脉冲寬度校準參數。校準後,我們會執行比較測試,以確認 EECU 校準效果。

 

引擎固定狀態測試可顯示車輛在一定速度下的效能。在可變工作狀態下的引擎暫停測試可模擬實際道路狀態下的引擎狀態。透過比較即時燃料消耗訊息與實際即時燃料消耗量測,可判斷 EECU 控制效能。

圖 8 顯示在 10 個工作狀態下量測引擎暫停燃料消耗測試台曲線的比較。當引擎在低負載下運作時,依照 J1939 協定,CAN 匯流排接收與解析的 EECU 燃料消耗訊息資料與測試機與工作台燃料消耗量測器明顯不同。因此,當引擎在低負載下運作時,實際的燃料注入量會很低。由於引擎在低負載下運作時,常見的駕駛壓變動,因此目標與實際的燃料注入量會大幅不同,因此燃料量會變動。這兩個曲線通常一致:透過 CAN 匯流排接收的引擎燃料注入目標值與實際量測值非常相似,且趋势與時序也會同步。這意味著 EECU 校準取得了最佳的注入脉冲寬度目標值。

 

Strong Foundation 顯示期望

基於 J1939 協定的 CAN 匯流排通訊平台與 NI PXI 平台,可在商用車用 CAN 匯流排通訊應用中執行 NI CAN 模組。此平台對未來的應用,如引擎台式測試、車輛電気環境模擬 HIL 測試、實現濾波、認識、合成、接收、封裝、傳輸、儲存、解析、計算與即時 CAN 匯流排訊息顯示等,都有許多好處。

 

此系統具備強大的 LabVIEW 數學分析與队列處理、NI PXI 裝置,以及適用於嚴厲的車輛測試環境的 CAN 介面模組,可提供多重測試情況所必須的 CAN 匯流排訊息資訊分析功能。演示由 NI PXI 裝置擷取的訊息資料取樣同步化。比較分析可證明測試資料的即時性能與真實性。

 

作者資訊:

銅銅週期
Dongfeng Motor Corporation
郵編:518129
zhouyg@dfl.com.cn

圖 1. J1939 資料帧格式
圖 2. OSI 參考型號
圖 3. 基於 LabVIEW 與 J1939 協定的 CAN 匯流排多任务訊息收發儀
圖 4. 車輛電動環境 HIL 模擬測試引擎
圖 5. 測試台
圖 6. 基於 LabVIEW 與 J1939 協定執行的 CAN 匯流排通平台
圖 7. 引擎穩定狀態 EECU 訊息
圖 8. 在可變引擎工作狀態下的燃料消耗比較測試