作者:謝俊紅,林軼,陳三鑒,黃土琛
引言
隨著車輛電子化和自動化程度的提高,車輛上的ECU日益增多。為了提高信號的利用率,要求在不同的ECU間,大量的數據狀態信息能夠實現共享,大量的控制信號能夠實時交換。這樣,傳統線束已遠遠不能滿足這種需求。
CAN總線及基于CAN的車輛網絡通信協議提供了解決上述問題的途徑。SAE J1939協議是美國汽車工程師協會(SAE)在CAN2.0B協議基礎上制定的重型貨車和客車網絡通信協議,是目前汽車電子網絡中應用最廣泛的應用層協議之一。該協議使用多路復用技術為車輛各傳感器、執行器和控制器提供建立在CAN總線基礎上的標準化高速網絡連接,在不同的ECU間實現高速數據共享,以有效減少線束數量并提高車輛電子控制系統的靈活性、可靠性、可維修性。
目前,車輛的ECU產品大都帶有SAE J1939 CAN接口。針對具有SAE J1939 CAN接口的ECU產品(如發動機、變速器及其緩速器和ABS等ECU),自定義若干ECU,集成實現基于SAE J1939協議的車輛網絡,完成自定義ECU的信息采集和各ECU間的信息交換。
1 車輛網絡拓撲結構
具有SAE J1939 CAN接口的ECU產品接上儀表板連成網絡后,已基本滿足車輛駕駛的要求。為了使自定義ECU對外通信盡量不影響ECU產品間的通信,整個網絡分為兩個網段,必要時可合并成一個網段。網段A包含信息交互ECU,發動機ECU,變速器及其緩速器ECU,ABS ECU;網段B包括信息交互ECU,發動機外圍、I橋及II橋ECU,分動器ECU,III橋及IV橋ECU。信息交互ECU用兩個CAN端口分別與兩個網段連接,具有報文轉發功能。車輛網絡拓撲結構如圖1所示。
2 車輛網絡通信設計
按照SAE J1939協議,車輛網絡通信設計包括以下幾方面內容:
◆物理層與SAEJI939-11兼容;
◆數據鏈路層與SAE J1939-21兼容;
◆網絡層與SAE J1939-31兼容;
◆應用層與SAE J1939-71兼容;
◆應用層診斷與SAE J1939-73兼容;
◆網絡管理層與SAE J1939-81兼容。
2.1 物理層
物理層實現網絡上所有ECU的電氣連接。物理介質采用特征阻抗為120 Ω的屏蔽雙絞線,CAN_H為黃色、CAN_L為綠色。網段盡可能使用線性拓撲結構,其波特率為250 kbps。網段干線兩端均以120 Ω電阻做終端匹配。ECU使用短支線與網段干線連接,在網段中采用不相等布置以防止產生駐波。
位時間內實現同步、網絡延時補償及采樣點位置確定等總線管理功能,其段組成如圖2所示。同步是相位緩沖段1加長或相位緩沖段2縮短,其上限為同步跳轉帶寬 (SJW)。采樣點盡量位于(但不超過)位時間的7/8,能實現傳播延遲和時鐘誤差最佳折中。時鐘頻率為16 MHz時,推薦分頻因子=4、SJw=ltq、TSEGl=13tq、TSEG2=2tq(tq為時鐘周期)。
2.2 數據鏈路層
數據鏈路層在物理層之上提供了可靠的數據傳輸功能,實現了應用層報文的數據交換。通過數據鏈路層的組織,實現了發送數據幀必須具有的同步、順序控制、錯誤控制和流控制等功能。
數據鏈路層通過協議數據單元(PDU)組織數據幀中的協議相關信息。PDU由數據幀中29位ID和O~8字節數據場組成,其數據結構如圖3所示。P場決定報文優先級;R位保留;DP位是數據頁位;PF場決定PDU格式(PDUl或PDU2);PS場為PDU細節,由PF場決定是目標地址DA還是對PF、的組擴展GE;SA為源地址。
數據鏈路層提供的報文有命令報文、請求報文、廣播/響應報文、應答報文及組功能報文。此外,數據鏈路層還實現了傳輸協議功能,用于將大于8字節報文進行打包重組、連接管理,分為廣播公告的BAM協議和點對點會話的RTS/CTS協議。
2.3 網絡層
網絡層定義了為不同網段間提供互聯功能的設備需求和服務。當多個網段存在時需要網絡互聯ECU,其功能包括報文轉發、報文過濾、報文地址轉換、報文重組及數據庫管理。網絡層功能對于特定ECU來說是可選的,網絡中僅信息交互ECU用到網絡層功能。
2.4 應用層
應用層定義了針對車輛應用的信號(參數)和報文(參數組)。應用層通過參數描述信號,給每個參數分配了一個19位的可疑參數編號(SPN);通過參數組描述報文,給每個參數組分配了一個24位的參數組編號(PGN)。SPN用來標識與ECU相關的故障診斷元素、部件或參數組中參數;PGN用來唯一標識一個特定參數組。除已分配的參數和參數組外,用戶還可通過分配未使用的SPN給自定義參數和定義專有報文對應用層進行補充。
2.5 應用層診斷
應用層診斷定義了診斷報文DMl-19,其作用如表1所列。這19種報文在網絡中并不都可用。目前,網絡中僅用到報文DMl、DM2、DM3及DMll。
表l中的診斷故障代碼(DTC)為4字節,由19位可疑參數編號(SPN)、5位故障失效模式(FMI)、7位故障發生次數(OC)以及1位SPN轉換方式(CM)組成,如圖4所示。
2.6 網絡管理層
網絡管理層通過提供地址分配管理和網絡錯誤管理的定義和過程描述,來唯一識別網絡上的控制器。其功能包括:請求網絡上控制器的地址和名字、為控制器聲明一個地址、公告不能聲明的地址和命令其他控制器使用新的地址等。
3 車輛網絡信息交互設計
車輛網絡信息交互選用的液晶顯示器為8寸、640×480像素、RS-232通信,具有6個無源P9接口薄膜按鍵,其顯示布局如圖5所示。圖中左半部分:上部為紅色信號指示燈及其報警提示,其下為其他顏色信號指示燈:中部為儀表模擬模式下表盤指針或數字模式下數字,其下為小儀表報警提示;下部為組成員數據及各組報警提示。圖中右半部分:上部為日期時間、環溫/氣壓、單/全里程,其下為診斷指示燈及DMl來源、菜單;下部為信息分頁,包括基本信息、各ECU 產品未處理的信息、DMl及DM2內容、DMl及DM2下載應答、DM3應答、DMll應答、單里程清零應答和日期時間交互修改等。
液晶顯示器的功能有:在指定位置顯示8×16英文字符,在指定位置畫線,在指定位置顯示預置位圖,在指定位置按指定方式自動顯示日期時間、讀取年月日、讀取時分秒、設置日期時間、顯示/關閉光標、打開/關閉背光。當進行不同程度的報警時,通過蜂鳴器發出的緩和或尖銳兩種不同的聲音進行提示。
4 車輛網絡軟件設計
4.1 信息交互ECU
信息交互ECU選用Freescale公司S12X系列中的MC;9S12XDP512作為主芯片,使用了嵌入式操作系統uC/()S-II。S12X的從CPU——中斷協處理器XGate,處理μC/OS-II時鐘節拍中斷并作任務切換,提高了系統的實時性,減輕了主CPU的負荷。XGate還用于處理與液晶顯示器串口通信、與PC串口通信、查詢鍵盤的有效輸入,并管理報警蜂鳴器。
信息交互ECU在μC/0S-II下創建了5個任務:系統初始任務、指示燈任務、儀表數據任務、鍵盤相關任務、J1939處理任務。系統初始任務打開 RTI中斷,上電自檢,打開日期時間顯示;指示燈任務周期性地顯示信號指示燈及紅色信號指示燈報警提示,顯示診斷指示燈及DMl來源,處理報警事件;儀表數據任務周期性地按選定模式顯示儀表及小儀表報警提示,顯示組成員數據及組報警提示,顯示環溫/氣壓及單/全里程,并處理報警事件;鍵盤相關任務在有效輸入下根據按鍵及菜單進行分頁顯示切換、系統設置修改等;JI939處理任務周期性地遍歷兩個端口的協議棧進行報文收發、報文轉發和提取應答等。
4.2 其余自制ECU
其余自制ECU選用Freescale公司S12系列中的M(29S12DGl28作為ECU主芯片。上電初始化后,在無限循環下先遍歷協議棧,對請求報文進行響應,然后采集數據更新報文。程序采集傳感器信息,周期性地更新應用層報文。程序根據采集的信號、數據生成DTC,周期性地更新應用層診斷報文,根據DTC數目決定是否發送及是否用傳輸協議。程序半固定數據如DTC信息、里程信息等均保存在EEPROM中,每次上電導入,發生變化后實時更新。
結語
通過對具備SAE J1939 CAN接口的ECU產品CAN總線功能進行分析,自定義若干ECU,集成實現基于SAE J1939協議的車輛網絡。在實驗室對比CAN卡、上車對比儀表板進行試驗研究的結果表明,所集成的車輛網絡工作穩定、信息量豐富、能實時反映故障診斷信息,解決了車輛儀表盤信息量較少和故障診斷實時性不足的問題。
雙核單片機的從CPU可提高μC/OS-II的實時性,降低了主CPU的負荷。此外,SAEJ1939協議的完備通信策略和成熟的通信機制,使得協議完全可以在修改應用層和應用層診斷相關定義之后,推廣應用到其他工業環境類似的CAN通信領域,如列車控制、工廠控制等。
責任編輯:gt
-
控制系統
+關注
關注
41文章
6657瀏覽量
110796 -
接口
+關注
關注
33文章
8691瀏覽量
151706 -
通信系統
+關注
關注
6文章
1204瀏覽量
53429
發布評論請先 登錄
相關推薦
評論