在車載網絡的開發過程中,需要發動機節點向總線網絡發送報文,為了降低成本,提高開發效率,模擬發動機。基於SAE J1939協議巾車輛應用層子標準及應用層診斷子標準,通過軟體編程進行發動機總線數據模擬器的開發,模擬總線網絡中的發動機ECU節點,向總線網絡發送報文,從而測試總線網絡上的另一節點儀表,檢驗儀表是否工作正常。
1 SAE J1939協議概述
SAE J1939標準是美國汽車工程師協會(SAE)發布的以CAN總線為核心的車輛網絡串行通訊和控制協議,採用多路復用技術為車輛上各傳感器、執行器和控制器提供在CAN總線基礎上的標準化高速網絡連接,在車輛電子裝置之間實現高速數據共享,有效減少電子線束的數量,提高車輛電子控制系統的靈活性、可靠性、可維修性及標準化程度。
1.1 SAE J1939協議簡介
J1939協議包括12個子標準。本文主要涉及車輛應用層及應用層診斷2個子標準。車輛應用層子標準(SAEJl939/71)規定了車輛控制控制參數的格式,包括參數範圍、解析度、類型及刷新率,數據場各位的含義;應用層診斷子標準(SAEJl939/73)主要針對排放的要求規定了12種診斷結果信息。
1.2 協議數據單元
SAE J1939應用層協議採用協議數據單元PDU傳遞信息,PDU由優先級P、保留位R、數據頁DP、PDU格式PF、PDU特定域PS(可作為目標地址、組擴展或專用)、源地址SA和數據域7部分組成,如表1所示。每個PDU相當於CAN協議中的一幀,它們將被分組封裝在一個或多個CAN數據幀中,通過物理介質傳送到其他網絡裝置。
本文引用地址:http://www.eepw.com.cn/article/197663.htm
2 總體方案設計
在開發過程中,通過調用USBCAN-Ⅱ接口卡庫埠函數,利用CAN總線實現上位機與下位機之間的通訊。發動機總線數據模擬器通過USBCAN-II智能接口向總線儀表發送數據並實時顯示,達到測試儀表的目的。系統結構如圖1所示。
該系統主要包括6大功能模塊,分別是發動機參數報文發送模塊、發動機故障報文發送模塊、CAN幀信息顯示模塊、虛擬儀表模塊、實時參數曲線模塊和儀表測試模塊。系統軟體採用C#環境開發,運行於Windows平臺。系統開發的總體流程是:首先實現與USBCAN-Ⅱ接口卡的通訊,連接成功後,在主界面選擇需要實現的功能,然後執行相關模塊的操作。在關閉程序的同時,關閉USBCAN-Ⅱ接口卡。程序開發流程如圖2所示。