概述
AutoSAR中CAN通信的網(wǎng)絡(luò)管理主要是根據(jù)CANNode接收和發(fā)送的NMMessage進(jìn)行該節(jié)點(diǎn)在整個(gè)網(wǎng)絡(luò)中的活動(dòng)的,根據(jù)NM Message控制整個(gè)網(wǎng)絡(luò)對(duì)Normal模式和Sleep模式的切換。
同時(shí)可以根據(jù)CAN NM PDU來(lái)檢測(cè)網(wǎng)絡(luò)上的其他節(jié)點(diǎn)的狀態(tài),進(jìn)行同步休眠等。主要包含以下內(nèi)容:
1.周期性的NMMessage在發(fā)送節(jié)點(diǎn)廣播式的發(fā)送,節(jié)點(diǎn)可以周期接收到NM PDU。
2.對(duì)于接收節(jié)點(diǎn)而言,接收到NMPDU表明相應(yīng)的節(jié)點(diǎn)想要保持網(wǎng)絡(luò)正常工作。
3.節(jié)點(diǎn)想要進(jìn)入Sleep模式,那么停止發(fā)送NM PDU準(zhǔn)備進(jìn)入Sleep,如果此時(shí)網(wǎng)絡(luò)還有別的節(jié)點(diǎn)在發(fā)送NMPDU,則延遲進(jìn)入Sleep。
4.在所有節(jié)點(diǎn)停止發(fā)送NMPDU并且設(shè)置的超時(shí)時(shí)間到,這時(shí)候整個(gè)網(wǎng)絡(luò)上的節(jié)點(diǎn)同步進(jìn)入Sleep模式。
5.節(jié)點(diǎn)想要從Sleep進(jìn)入到Normal模式,則請(qǐng)求發(fā)送NMPDU。
NM****狀態(tài)切換
在NM中狀態(tài)切換主要有兩個(gè)方面的考慮,其中一個(gè)是整個(gè)CAN NM的網(wǎng)絡(luò)切換關(guān)系,主要由三個(gè)主要的狀態(tài),分別是Network Mode、Pre-Bus Sleep Mode和Bus Sleep Mode,對(duì)于其內(nèi)部的轉(zhuǎn)換關(guān)系如下圖所示。
系統(tǒng)上電后,首先在Bus Sleep模式,如果有NM的通信請(qǐng)求就進(jìn)入正常的通信模式也就是下中的Network Mode。
在Network Mode主要處理整個(gè)系統(tǒng)的網(wǎng)絡(luò)管理的正常運(yùn)行,如果NM上的節(jié)點(diǎn)停止發(fā)送NM PDU,則在定義的TimeOut后進(jìn)入到Pre-Bus Sleep模式,等待整個(gè)通信上的網(wǎng)絡(luò)達(dá)到Bus TimeOut后徹底進(jìn)入Bus Sleep模式,如果在Pre-Bus Sleep模式下,收到了其它節(jié)點(diǎn)的NM請(qǐng)求,則進(jìn)入正常的Network模式。
在NM的狀態(tài)切換中還有一個(gè)比較重要的就是Network Mode的內(nèi)部狀態(tài)切換。無(wú)論是Bus Sleep還是Pre-Bus Sleep狀態(tài)下進(jìn)入到Network模式都會(huì)直接進(jìn)入Repeat Message State發(fā)送NM PDU,處于RepeatMessage State下的節(jié)點(diǎn)對(duì)于整個(gè)網(wǎng)絡(luò)上的節(jié)點(diǎn)來(lái)說(shuō)是有效的節(jié)點(diǎn),并確保其它節(jié)點(diǎn)在該狀態(tài)上保持激活狀態(tài)。Repaet模式下定義的TimeOut時(shí)間到同時(shí)接收到NM的請(qǐng)求進(jìn)入到Normal Operation State,在該模式下只有NN的請(qǐng)求就保持節(jié)點(diǎn)處于Awake狀態(tài)。
接收到RepeatMsg的請(qǐng)求或者對(duì)應(yīng)的RepeatMsg對(duì)應(yīng)的控制Bit接收,則進(jìn)入Repeat模式,如果接收到NMReleased請(qǐng)求則進(jìn)入ReadySleep States,ReadySleep States狀態(tài)下等待其它節(jié)點(diǎn)進(jìn)入到Sleep狀態(tài),如果NM TimeOut時(shí)間達(dá)到進(jìn)入到Pre-Bus Sleep等待總線Sleep。具體的狀態(tài)轉(zhuǎn)換如下所示。
網(wǎng)絡(luò)管理的狀態(tài)切換中一般主要是由TimeOut和Requested/Released進(jìn)行切換的,同時(shí)包含了對(duì)外部NMReq的處理,在使用的時(shí)候注意幾個(gè)TimeOut的時(shí)間,尤其是在做整個(gè)網(wǎng)絡(luò)上的Sleep機(jī)制的時(shí)候要充分考慮不同節(jié)點(diǎn)產(chǎn)生的jitters,該部分的考慮主要從內(nèi)部時(shí)鐘、NM相關(guān)模塊函數(shù)的循環(huán)時(shí)間和發(fā)送方式進(jìn)行考慮,由于該部分還有連調(diào)連試過(guò),所有先不詳細(xì)介紹,等后期如果進(jìn)行相關(guān)的工作再補(bǔ)充更新。
NM PDU
AutoSAR中NM的PDU主要包括三大部分,分別是節(jié)點(diǎn)的ID、控制位以及用戶數(shù)據(jù)。在標(biāo)準(zhǔn)的CANFrame的具體定義如下:
其中Control Bit Vector的定義如下
Bit0: Repeat Message Request 表明Repeat Msg是否被請(qǐng)求。
Bit3: NM Coordinator Sleep Bit 表明是否開始同步的ShutDown。
Bit4:Active Wakeup Bit 表明是否喚醒通信網(wǎng)絡(luò)。
Bit6: Partial Network Information Bit (PNI)。
Bit1/2/5/7用于后期擴(kuò)展。
對(duì)于Byte0和Byte1兩個(gè)Byte,AutoSAR定義的是通用的設(shè)置Byte,尤其是Byte0是Source的ID,只取其中的低八位,一般OEM都會(huì)定義特定的NM報(bào)文,而對(duì)于在NM PDU機(jī)制中的實(shí)現(xiàn)和定義主要寫入低八位的ID就可以。
對(duì)于UserData不同的OEM會(huì)有不同的定義,這個(gè)取決于自己的設(shè)置,之前參與Daimler的一個(gè)項(xiàng)目的時(shí)候,他們會(huì)把UserData0作為WakeUp Reason使用。
如果使用Partial Network Cluster(PNC),一般會(huì)在特定的UserData中包含PNC上節(jié)點(diǎn)所在的位置。對(duì)于NMPDU的使用根據(jù)具體的OEM要求設(shè)置即可。
Partial Network Cluster
PartialNetwork Cluster(PNC)的使用主要是關(guān)掉某些網(wǎng)絡(luò)上的不需要通信的節(jié)點(diǎn),而一些必須的節(jié)點(diǎn)可以正常通信,從而更好的節(jié)約能量,減少消耗。
只有在該節(jié)點(diǎn)的PNC功能使能,同時(shí)接收的NM PDU中PNI位為1的時(shí)候才進(jìn)行正常的PNC處理。同樣作為PNC的一個(gè)節(jié)點(diǎn)在發(fā)送NM PDU的時(shí)候PNI位也必須設(shè)置為1。
PNC在實(shí)現(xiàn)的時(shí)候在CANNM模塊提供了一種濾波機(jī)制,用來(lái)忽略無(wú)效的NMPDU。在使用PNC功能的時(shí)候,對(duì)于NMPDU 不用的OEM會(huì)在UserData中相應(yīng)的Bit表示一個(gè)PNC的網(wǎng)絡(luò)節(jié)點(diǎn),每一個(gè)Bit表示了一個(gè)PN節(jié)點(diǎn)。
對(duì)于濾波機(jī)制的使用一般從UserData數(shù)據(jù)開始,指定需要比較的Byte長(zhǎng)度,然后設(shè)置需要的比較信息(定義需要接收的Byte Value和Mask Value),進(jìn)行比較即可,只有滿足比較條件才認(rèn)為接收到的NM PDU是一條有效的NMPDU,否則忽略。
在PNC中提供了兩種NM的管理機(jī)制,分別為Internal and External Requested(EIR)PN和ExternalRequested(ER)PN。
對(duì)于EIR PN而言,主要是用于在接收到NM后,ECU根據(jù)接收到的NM PDU通知COMM模塊和BSWM去控制相關(guān)的NM通道中的I-PDU的使能和禁用,同時(shí)可以將接收和發(fā)送的數(shù)據(jù)通過(guò)COM模塊與APP層進(jìn)行交互。
ER PN而言主要是作為NM的Gateway收集外部的PN PDU使用,用于路由NM相關(guān)的PNC到指定的通信Bus通道,進(jìn)行PN控制。
PNC在AutoSAR****中的實(shí)現(xiàn)
對(duì)于PNC在AutoSAR中的實(shí)現(xiàn)將從CAN相關(guān)的PNC做闡述,因?yàn)楝F(xiàn)在CAN的PNC網(wǎng)絡(luò)管理也是用的最多的。
CAN的PNC在AutoSAR架構(gòu)中主要包括了支持CAN PNC的硬件、CAN、CanTrcv(SPI通信)、CanIf、CanNm、CanSM、NmIf、ComM、BSWM以及應(yīng)用層的SWC。整個(gè)PNC的相關(guān)狀態(tài)切換如下圖所示。
根據(jù)上面的圖片簡(jiǎn)單介紹幾個(gè)主要作用:
1.喚醒:MCU被喚醒后,對(duì)于帶有喚醒功能的TJA1145而言會(huì)在CANTrcv中將喚醒通知到CANIF,然后在EcuM中調(diào)用相關(guān)的函數(shù)對(duì)喚醒的有效性進(jìn)行判斷,從而將當(dāng)前喚醒的狀態(tài)通知給BswM進(jìn)行狀態(tài)處理。
2.PNC通信:在CANIf收到相關(guān)的NMPDU后,通知CANNM做PNC的有效性校驗(yàn),在PNC校驗(yàn)有效后通過(guò)PDUR和COM兩個(gè)模塊將有效PNC信息告知COMM中特定的PNC通道,然后COMM將PNC的狀態(tài)發(fā)送給BSWM,BSWM根據(jù)PNC的狀態(tài)和特定的Rules反饋給COMM進(jìn)行PNC通信請(qǐng)求,同時(shí)通過(guò)CANSM模塊經(jīng)CANIf去控制CNATrcv進(jìn)行通信模式切換。
3.在應(yīng)用層的SWC可以直接建立與BSWM的Mode Req CS接口或者SWC建立與COMM的用于請(qǐng)求通信的CS接口,實(shí)現(xiàn)SWC對(duì)通信的請(qǐng)求。
4.對(duì)于NM PDU的發(fā)送一般需要NM模塊進(jìn)行請(qǐng)求或者釋放,其控制指令也是在COMM受到BSWM或者SWC請(qǐng)求后發(fā)出控制指令。
5.對(duì)于PNC的NM PDU Group的使能和禁用開關(guān)需要BSWM結(jié)合具體的Rules進(jìn)行控制,從而StartNM PDU 和StopNM PDU。
6.TJA1145這款芯片的模式操作和喚醒幀定義需要通過(guò)SPI通信進(jìn)行控制。
審核編輯:劉清
-
CAN通信
+關(guān)注
關(guān)注
5文章
96瀏覽量
18239 -
OEM
+關(guān)注
關(guān)注
4文章
405瀏覽量
51076 -
AUTOSAR
+關(guān)注
關(guān)注
10文章
369瀏覽量
22266 -
OSEK
+關(guān)注
關(guān)注
2文章
19瀏覽量
13120
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
基于SNMP的通信網(wǎng)絡(luò)性能管理模塊設(shè)計(jì)

如何通過(guò)硬件實(shí)現(xiàn)安全CAN通信網(wǎng)絡(luò)的方式
AUTOSAR CAN網(wǎng)絡(luò)管理
充電機(jī)和BMS之間通信網(wǎng)絡(luò)采用CAN2.0B通訊協(xié)議
AUTOSAR CAN網(wǎng)絡(luò)管理狀態(tài)機(jī)介紹
基于移動(dòng)通信網(wǎng)絡(luò)維護(hù)管理
AUTOSAR_SWS_CAN網(wǎng)絡(luò)管理規(guī)范標(biāo)準(zhǔn)4.3.1
CAN網(wǎng)絡(luò)管理規(guī)范 AUTOSAR CP中文版
CAN網(wǎng)絡(luò)管理規(guī)范 AUTOSAR CP英文版
AUTOSAR CAN網(wǎng)絡(luò)管理協(xié)議
一文解析AUTOSAR CAN網(wǎng)絡(luò)管理

ZigBee無(wú)線通信網(wǎng)絡(luò)標(biāo)準(zhǔn)概述

評(píng)論