網(wǎng)絡(luò)管理中,主動(dòng)喚醒源/被動(dòng)喚醒源與網(wǎng)絡(luò)主動(dòng)喚醒/被動(dòng)喚醒的關(guān)系有時(shí)讓人傻傻分不清,本文侃侃這幾個(gè)名詞。
提示:基于CAN節(jié)點(diǎn)討論。
1主動(dòng)喚醒源/被動(dòng)喚醒源
主動(dòng)喚醒源:承擔(dān)著主動(dòng)喚醒網(wǎng)絡(luò)責(zé)任的喚醒源,稱為主動(dòng)喚醒源。比如:KL15硬線,User請(qǐng)求,ERA信號(hào)等。
KL15硬線:通過KL15硬線方式喚醒網(wǎng)絡(luò),說明當(dāng)前網(wǎng)絡(luò)沒有節(jié)點(diǎn)參與通信,為了快速將網(wǎng)絡(luò)喚醒,建立通信功能,被KL15硬線喚醒的節(jié)點(diǎn),需要主動(dòng)地去喚醒網(wǎng)絡(luò),進(jìn)而將網(wǎng)絡(luò)上其他節(jié)點(diǎn)喚醒。所以,可以將KL15硬線看作主動(dòng)喚醒源。同理,類似于KL15硬線喚醒網(wǎng)絡(luò)的其他硬線喚醒方式,也可以看作?主動(dòng)喚醒源;
User請(qǐng)求:User請(qǐng)求,是指通過ComM_RequestComMode()接口請(qǐng)求通信的方式,發(fā)起點(diǎn)為SWC,由于功能需要,節(jié)點(diǎn)需要在某些工況下主動(dòng)拉起其他節(jié)點(diǎn)通信;
ERA信號(hào):ERA信號(hào)怎么看作是主動(dòng)喚醒源呢?首先,ERA信號(hào)的使用,說明當(dāng)前節(jié)點(diǎn)有多個(gè)物理Channel(ComM的Channel與之一一對(duì)應(yīng)),PNC信息需要在不同的Channel之間路由,以實(shí)現(xiàn)不同網(wǎng)絡(luò)喚醒的目的。
比如:CAN 1在CAN BUS 1上收到一幀網(wǎng)絡(luò)管理報(bào)文,包含PNC #n = 1,且PNC #n與CAN1和CAN2均關(guān)聯(lián),PNC #n需要由CAN1路由到CAN2,CANBUS2網(wǎng)段內(nèi)可能節(jié)點(diǎn)均沒有喚醒,需要有節(jié)點(diǎn)承擔(dān)喚醒CAN BUS2 網(wǎng)絡(luò)的責(zé)任,即:主動(dòng)喚醒CAN BUS2網(wǎng)段內(nèi)的節(jié)點(diǎn)。此時(shí),路由到CAN 2節(jié)點(diǎn)的ERA信號(hào)就可以充當(dāng)主動(dòng)喚醒CAN BUS2上節(jié)點(diǎn)的責(zé)任,所以ERA信號(hào)可以看作主動(dòng)喚醒源。
除了上述的的主動(dòng)喚醒源,還有一些定時(shí)器、傳感器也可以作為主動(dòng)喚醒源。傳感器一般與硬線連接,類似于KL15硬線。定時(shí)器的使用場(chǎng)景不清楚大家有沒有遇到,這里給一個(gè)場(chǎng)景:智能補(bǔ)電。如果車輛長時(shí)間處于休眠狀態(tài),蓄電池可能虧電,虧電會(huì)導(dǎo)致車輛無法正常使用。為了防止蓄電池虧電,有些車上會(huì)配置智能補(bǔ)電功能,通過定時(shí)器設(shè)置定時(shí)時(shí)間,如果此時(shí)間內(nèi)車輛未有啟動(dòng),則定時(shí)器主動(dòng)觸發(fā)對(duì)應(yīng)節(jié)點(diǎn)的喚醒,對(duì)蓄電池進(jìn)行補(bǔ)電。
被動(dòng)喚醒源:不需要承擔(dān)喚醒網(wǎng)絡(luò)責(zé)任的喚醒源,稱為被動(dòng)喚醒源。比如:收到NM Msg。對(duì)于收到NM Msg需要分情況討論:
網(wǎng)絡(luò)管理沒有PN功能:節(jié)點(diǎn)收到的網(wǎng)絡(luò)管理報(bào)文沒有PNC信息,此時(shí)網(wǎng)絡(luò)管理報(bào)文看作被動(dòng)喚醒源。
網(wǎng)絡(luò)管理具有PN功能:如果對(duì)應(yīng)的ECU充當(dāng)Gateway角色,且有多個(gè)物理Channel,PNC #n關(guān)聯(lián)多個(gè)Channel,網(wǎng)絡(luò)管理報(bào)文可?看作主動(dòng)喚醒源(前面提到的ERA信號(hào));如果PNC #n僅關(guān)聯(lián)本Channel,不需要路由,網(wǎng)絡(luò)管理報(bào)文看作被動(dòng)喚醒源。
2網(wǎng)絡(luò)主動(dòng)喚醒/被動(dòng)喚醒
網(wǎng)絡(luò)主動(dòng)喚醒:由主動(dòng)喚醒源觸發(fā),調(diào)用CanNm_NetworkRequest()接口喚醒網(wǎng)絡(luò)的方式稱為網(wǎng)絡(luò)主動(dòng)喚醒。
網(wǎng)絡(luò)被動(dòng)喚醒:由被動(dòng)喚醒源觸發(fā),調(diào)用CanNm_PassiveStartUp()接口喚醒網(wǎng)絡(luò)的方式稱為網(wǎng)絡(luò)被動(dòng)喚醒。
問題拓展思考
對(duì)于PNC模式的切換,群內(nèi)小伙伴提出了這樣一個(gè)問題:"ERA = 1時(shí),PNC由PNC_NO_COMMUNICATION切換到PNC_REQUESTED。而EIRA = 1時(shí),PNC由PNC_NO_COMMUNICATION切換到PNC_READY_SLEEP",兩者為什么不同呢?
關(guān)于ERA、EIRA前文已經(jīng)聊過,可以參考Autosar網(wǎng)絡(luò)管理:Partial Network基礎(chǔ) 之 ERA/EIRA、PNC Gateway和Autosar網(wǎng)絡(luò)管理:CanNmPnResetTime對(duì)關(guān)聯(lián)Tx PDU的發(fā)送影響。這里說一下個(gè)人理解:ERA的使用需要配合Gateway的使能,當(dāng)某個(gè)PNC = 1時(shí),說明有節(jié)點(diǎn)(假設(shè)節(jié)點(diǎn)A)需要通信,假設(shè)節(jié)點(diǎn)A需要和不同網(wǎng)段的其他節(jié)點(diǎn)(假設(shè)節(jié)點(diǎn)C)通信,需要經(jīng)過節(jié)點(diǎn)B、節(jié)點(diǎn)D的路由,如下所示:
如果想喚醒Can2 Bus的節(jié)點(diǎn)C網(wǎng)絡(luò),需要節(jié)點(diǎn)D(與節(jié)點(diǎn)C同一個(gè)網(wǎng)段)發(fā)送網(wǎng)絡(luò)管理報(bào)文喚醒節(jié)點(diǎn)C。主動(dòng)發(fā)起通信的節(jié)點(diǎn)A在Can1 Bus,需要和Can2 Bus上的節(jié)點(diǎn)C通信,需要外部信號(hào)(PNC #n = 1)發(fā)送給節(jié)點(diǎn)B,由節(jié)點(diǎn)B路由給節(jié)點(diǎn)D,將PNC信息發(fā)送給節(jié)點(diǎn)C。
ERA = 1,與此PNC相關(guān)的節(jié)點(diǎn)(B、D)進(jìn)入PNC_REQUESTED狀態(tài),節(jié)點(diǎn)B、D的Channel請(qǐng)求進(jìn)入COMM_FULL_COMMUNICATION 狀態(tài),調(diào)用Nm_NetworkRequest()接口將Can 2 Bus上的節(jié)點(diǎn)喚醒;如果進(jìn)入的是PNC_READY_SLEEP模式,ComM將會(huì)釋放COMM_FULL_COMMUNICATION狀態(tài),且PNC信息不能路由,Can 2 Bus上的節(jié)點(diǎn)無法喚醒,節(jié)點(diǎn)A、C無法通信。
EIRA = 1,只是想把通信留在本網(wǎng)段,當(dāng)前節(jié)點(diǎn)參與通信即可,不需要和外部網(wǎng)段通信,因此進(jìn)入PNC_READY_SLEEP狀態(tài),網(wǎng)絡(luò)被動(dòng)喚醒。
審核編輯:劉清
-
傳感器
+關(guān)注
關(guān)注
2551文章
51194瀏覽量
754411 -
CAN總線
+關(guān)注
關(guān)注
145文章
1952瀏覽量
130847 -
網(wǎng)絡(luò)管理
+關(guān)注
關(guān)注
0文章
121瀏覽量
27691 -
定時(shí)器
+關(guān)注
關(guān)注
23文章
3251瀏覽量
114973
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論