此問題源于群內(nèi)小伙伴的討論,本文將該問題帶來的思考分享給大家。
1、RPB的作用
首先,確定一下RPB的位置,RPB在CBV字節(jié)的Bit0,如下所示:
RPB的作用是什么呢?看一下Autosar的官方解釋,如下所示:
意思就是:RPB = 1,有RMS(Repeat Message State)請求,否則沒有RMS請求。這里我們需要從收/發(fā)兩個(gè)層面理解:
接收:如果接收到的網(wǎng)絡(luò)管理報(bào)文中,RPB = 1,請求當(dāng)前的節(jié)點(diǎn)進(jìn)入RMS狀態(tài)。
發(fā)送:如果本節(jié)點(diǎn)的上層邏輯主動(dòng)請求進(jìn)入RMS,則會(huì)主動(dòng)調(diào)用接口CanNm_RepeatMessageRequest(),之后本節(jié)點(diǎn)外發(fā)的網(wǎng)絡(luò)管理報(bào)文中RPB = 1。提示:RPB置位與否的操作需要靜態(tài)配置CANNM_NODE_DETECTION_ENABLED參數(shù)。
CanNm_RepeatMessageRequest()接口聲明如下所示:
2、RPB的使用場景
這里我們假設(shè)一種工況:某個(gè)網(wǎng)段存在3個(gè)ECU:ECU1、ECU2、ECU3,且ECU3具有PN功能,ECU1對應(yīng)的網(wǎng)絡(luò)管理報(bào)文0x501,ECU2對應(yīng)的網(wǎng)絡(luò)管理報(bào)文0x502,ECU3對應(yīng)的網(wǎng)絡(luò)管理報(bào)文0x503。三個(gè)ECU在總線上的拓?fù)潢P(guān)系如下所示:
具體解釋3個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)狀態(tài)切換時(shí)序:
t0時(shí)刻:ECU1和ECU2正常通信,兩者均處于NOS(Normal Operation State)狀態(tài),發(fā)送的網(wǎng)絡(luò)管理報(bào)文中,RPB未置位(RPB = 0)。ECU3處于BSM(Bus-Sleep Mode)狀態(tài)(ECU3具有PN功能,因?yàn)槭盏降木W(wǎng)絡(luò)管理報(bào)文中,對應(yīng)的PNC未置位,所以此時(shí)ECU3處于休眠狀態(tài))。
t1時(shí)刻:ECU1主動(dòng)調(diào)用
接口CanNm_RepeatMessageRequest()請求進(jìn)入RMS(Repeat Message State)狀態(tài),此時(shí):
ECU1進(jìn)入RMS狀態(tài),ECU1發(fā)送的網(wǎng)絡(luò)管理報(bào)文中,PNI(Partial Network Information Bit)置位(PNI= 1),且關(guān)聯(lián)ECU3的PNC_ECU3 = 1,ECU3網(wǎng)絡(luò)被喚醒;
且RPB = 1,隨即ECU2和ECU3進(jìn)入RMS狀態(tài);
ECU2和ECU3發(fā)送的網(wǎng)絡(luò)管理報(bào)文中,RPB = 1,且稍微晚于ECU1。
t2時(shí)刻:ECU1、ECU2、ECU3依次進(jìn)入NOS狀態(tài),且三者的RPB = 0。
如下所示:
注意:同一網(wǎng)段內(nèi)的所有節(jié)點(diǎn),對應(yīng)的CANNM_MSG_CYCLE_TIME、CANNM_REPEAT_MESSAGE_TIME、CANNM_WAIT_BUS_SLEEP_TIME、NM-TIME_OUT時(shí)間參數(shù)需要保持一致,以便于網(wǎng)段內(nèi)所有節(jié)點(diǎn)在近似相等的時(shí)間內(nèi)進(jìn)入相同的網(wǎng)絡(luò)狀態(tài)。
綜上述:RPB具有協(xié)調(diào)不同ECU節(jié)點(diǎn)狀態(tài)切換的作用,以便于網(wǎng)段內(nèi)所有節(jié)點(diǎn)在近似相等的時(shí)間內(nèi)進(jìn)入相同的網(wǎng)絡(luò)狀態(tài)。
RPB是否還有其他使用場景?期待你不同的看法。
審核編輯:劉清
-
CAN總線
+關(guān)注
關(guān)注
145文章
1987瀏覽量
132870 -
網(wǎng)絡(luò)管理
+關(guān)注
關(guān)注
0文章
125瀏覽量
28206 -
AUTOSAR
+關(guān)注
關(guān)注
10文章
380瀏覽量
22669 -
RMS
+關(guān)注
關(guān)注
2文章
151瀏覽量
36739
發(fā)布評(píng)論請先 登錄
前端和嵌入式各自都是干啥的
請問一下睡眠模式怎么用WFI進(jìn)入中斷?
不好意思了 還得求助一下大家呢
請問下圖的這個(gè)比較器結(jié)構(gòu)主要是干啥用的?
STM32CubeMx是干啥子的
請問一下STM32H750BV用哪個(gè)包好?
電磁爐加熱一下就停一下什么原因及解決辦法
RPB(Repeat Message Request Bit)干啥用的?

科普一下MTU是什么,如何設(shè)置MTU

評(píng)論