










【摘" 要】文章基于杰發AC78406芯片的CAN總線,設計實現OSEK直接網絡管理(OSEK NM)方式,實現建環、進入跛行狀態和睡眠等功能,有效保證汽車CAN網絡通信的安全性、可靠性,促進OSEK網絡管理在汽車網絡上的應用。
【關鍵詞】OSEK網絡管理;CAN總線;ECU
中圖分類號:U463.6" " 文獻標識碼:A" " 文章編號:1003-8639( 2024 )02-0030-03
Design and Implementation of OSEK Network Management Based on Auto Chips AC78406
FENG Xue,SHAO Guangya,WANG Qi
(Xuzhou XCMG Automobile Manufacturing Co.,Ltd.,Xuzhou 221100,China)
【Abstract】Based on the CAN bus of Auto Chips AC78406,the OSEK direct network management(OSEK NM)mode is designed and realized,and the functions of loop building,limping state and sleep are realized,it effectively guarantees the security and reliability of automobile CAN network communication,and promotes the application of OSEK network management in automobile network.
【Key words】OSEK NM;CAN bus;ECU
隨著社會的發展和國民生活水平的提高,對汽車功能、性能的要求也越來越高。因此,汽車制造業對舒適、安全、節能環保和信息化不斷追求,隨之而來的是越來越多的電子控制系統應用于汽車制造中[1],這使數據交互、網絡通信等問題變得更加復雜。為了保證網絡資源共享和網絡通信的安全性、可靠性,讓各控制器之間互相協調工作,OSEK(Open Systems and the Corresponding Interfaces for Automotive Electronics,汽車電子類開放系統和對應接口標準)由此提出。本文將介紹OSEK直接網絡管理的相關知識及使用杰發AC78406芯片進行開發測試的過程及結果。
1" OSEK NM
1.1" OSEK NM概述
OSEK直接網絡管理采用報文監測來控制網絡。這種網絡管理方式是一種自組織形式,網絡各節點間沒有主從之分,每個節點既監控網絡中的其它節點,同時又被網絡中其它的節點監控[2]。
1.2" OSEK NM的ECU狀態
網絡管理中的ECU狀態是指ECU在網絡管理過程中所處的狀態,主要有NMOn、NMShutDown、NMOff 3大狀態,其中NMOn又包含NMInit、NMAwake、NMBusSleep、NMActive和NMPassive 5種子狀態,而NMAwake又包含了NMReset、NMNormal和NMLimpHome 3種子狀態,具體的狀態轉換如圖1所示,各個狀態的說明見表1。
1.3" OSEK直接網絡管理的報文
OSEK直接網絡管理中傳輸的報文以NMPDU(NM Protocol Data Unit,NM協議數據單元)表示[3]。和數據幀結構不同,根據OSEK NM協議,NMPDU有固定的結構[4],包括NM地址域、NM控制域和NM數據域3部分。其中,NM控制域位于報文數據場中的第2個字節[5],NMPDU操作碼格式如圖2所示。
1)Alive報文:網絡中的ECU在初始化完成后,發送Alive報文,用來表明在網絡的邏輯環中加入了新的ECU。此外,當節點檢測到被令牌環跳過,也會發送Alive報文提醒其它節點自己處于在線狀態。在Alive報文中,目標地址等于源地址。
2)Ring報文:在形成穩定的NM邏輯環后,環中的每個ECU在接收到其前任者的Ring報文后,向其后繼者發送自己的Ring報文。后繼節點的地址即為每個Ring報文的目標地址。
3)LimpHome報文:當ECU處于故障狀態(NMRxcount和NMTxcount的數值超過特定閾值)時,會以一定周期(TError)發送LimpHome報文。與Alive報文相同,LimpHome報文目標地址等于源地址。
1.4" OSEK NM的邏輯環
1.4.1" 邏輯環的概念
邏輯環是網絡管理的組織結構,通過在網絡中依次發送Ring報文來實現。當形成穩定的NM邏輯環后,環中的每個ECU會將Ring報文發送給其后繼者(Successor)。Ring報文的目標地址為其后繼節點地址。邏輯環如圖3所示。
1.4.2" ECU跳過
當建立了邏輯環后,環中的Ring報文按照ECU地址的大小順序發送。當一個ECU在邏輯環中的順序處于一條Ring報文的源地址和目標地址之間,則對于這個ECU而言,Ring報文沒有按照順序進行傳送,而是將它跳過了。節點實時監測邏輯環中的Alive報文或Ring報文,并比較源地址、目標地址與自身地址,以確認自身是否被跳過。若接收到的NM報文的源地址為S,目標地址為D,節點的自身地址為R,則識別是否被跳過的邏輯如圖4所示。圖中,符號SDR表示Slt;Dlt;R,其它依次類推。若節點識別自身被跳過,則必須發送Alive報文,來通知網絡上的其它節點自己仍然在線。
2" 硬件設計
2.1" 杰發AC78406芯片概述
該項目采用的杰發公司開發的AC78406芯片是一款采用ARM CortexTM-M4F內核的高性能、低功耗MCU,廣泛應用于汽車。其頻率達到了120MHz,工作溫度范圍支持-40~+125℃,工作電壓支持2.7~5.5V,且該芯片達到了ISO 26262標準中的ASIL-B功能安全等級。
2.2" CAN收發器模塊
CAN收發控制器選用的是TJA1044型號的高速收發控制芯片。該芯片為帶有CAN協議控制器的微控制器提供差分發送和接收能力。CAN收發器的原理如圖5所示。TJA1044芯片為貼片式8管腳芯片,1、4管腳TXD、RXD與AC78406控制芯片的8、9管腳相連,實現TJA1044和AC78406之間的通信。2、3管腳為電源負極和正極,6、7管腳分別為CANL和CANH,與接插件相連。8管腳為STB,是待機模式控制輸入。5管腳為VIO,為IO口提供電壓。
3" 軟件設計
首先通過startNM()進行硬件初始化,CAN通過中斷進行發送或接收處理,將所要處理的報文放進FIFO中。判斷FIFO中是否有報文,有則處理,無則跳過,然后以10ms為周期,輪詢執行NM_MainFunction()。在NM_MainFuntion中,首先調用NMReset()函數完成網絡配置以及NMPDU的初始化,并發送Alive報文宣告自身在線。完成NMReset之后,系統進入工作模式,判斷發送計數器nmTxCount和接收計數器nmRxCount是否達到閾值,以此決定系統進入Normal模式還是LimpHome模式。在NMNormal模式時,如果tMax超時則回調NMReset()函數。在Normal模式和NMLimpHome模式時,如果接收到Ack位置1的報文,則進入睡眠等待狀態;若在等待時間內沒有發生喚醒事件,則進入睡眠模式;若發生喚醒事件,則進入NMReset()函數進行初始化設置。具體流程如圖6所示。
4" 測試結果及分析
采用3塊基于杰發AC78406的控制器,每個控制器分別代表一個ECU節點,節點ID分別為607、608、609。使用PCAN連接該3個控制器,通過PcanView的trace窗口,可以看出成功實現了預期結果,詳細結果如下。
1)建立邏輯環:先給608、609節點上電,節點608、609分別向自身發送0x01的Alive報文,然后二者成功建立邏輯環,分別向自己的后繼節點發送0x02的Ring報文,如圖7所示。
2)進入跛行狀態:給節點609下電,使609離線。在609離線后,608多次嘗試建立新的邏輯環,當nm_RxCountgt;rx_limit時,608進入跛行狀態,如圖8所示。
3)進入睡眠狀態:節點609發送0x12的請求睡眠指令,608滿足睡眠條件,也發送0x12的請求睡眠指令。609檢測到網絡上所有節點都已滿足睡眠條件時,發送0x32的確認進入睡眠的指令,進入等待睡眠狀態,如圖9所示。
4)加入新節點:在節點608、609建環成功后,給607節點上電,使607上線,并發送0x01的Alive報文,原節點在接收到607的上線信息后,更新自己的后繼節點,建立新的邏輯環,如圖10所示。
5" 總結
本文提出了一種基于杰發AC78406芯片的OSEK網絡管理的實現方法,主要介紹了OSEK網絡管理的相關知識以及硬件和軟件是如何實現的,最后通過測試,說明了該方法的可行性和有效性。
參考文獻:
[1] 湯志強. 汽車CAN網絡中OSEK網絡管理系統設計與優化[D]. 合肥:合肥工業大學,2014.
[2] 程安宇,苗艷強,蔡林沁,等. OSEK/VDX直接網絡管理一致測試方法設計[J]. 電子技術應用,2012,38(4):126-129.
[3] 侯亮. 汽車CAN網絡中OSEK網絡管理機制的研究與實現[D]. 合肥:合肥工業大學,2013.
[4] 呂康. 基于OSEK NM的某商用車CAN總線網關設計與驗證[D]. 成都:西華大學,2021.
[5] 陳綱. 基于CAN總線的OSEK/VDX直接網絡管理的研究與實現[D]. 南京:東南大學,2015.
(編輯" 楊凱麟)
收稿日期:2023-07-12
作者簡介
馮雪(1999—),女,主要從事汽車控制器底層開發工作。