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