提示 :基于Can總線討論
1
RPB的作用
首先,確定一下RPB的位置,RPB在CBV字節(jié)的Bit0,如下所示:
RPB的作用是什么呢?看一下Autosar的官方解釋,如下所示:
意思就是:RPB = 1,有RMS(Repeat Message State)請求,否則沒有RMS請求。這里我們需要從收/發(fā)兩個層面理解:
- 接收 :如果接收到的網(wǎng)絡(luò)管理報文中,RPB = 1,請求當前的節(jié)點進入RMS狀態(tài)。
- 發(fā)送 :如果本節(jié)點的上層邏輯主動請求進入RMS,則會主動調(diào)用接口CanNm_RepeatMessageRequest(),之后本節(jié)點外發(fā)的網(wǎng)絡(luò)管理報文中RPB = 1。提示:RPB置位與否的操作需要靜態(tài)配置CANNM_NODE_DETECTION_ENABLED參數(shù)。
CanNm_RepeatMessageRequest()接口聲明如下所示:
2
RPB的使用場景
這里我們假設(shè)一種工況:某個網(wǎng)段存在3個ECU:ECU1、ECU2、ECU3,且ECU3具有PN功能,ECU1對應的網(wǎng)絡(luò)管理報文0x501,ECU2對應的網(wǎng)絡(luò)管理報文0x502,ECU3對應的網(wǎng)絡(luò)管理報文0x503。三個ECU在總線上的拓撲關(guān)系如下所示:
具體解釋3個節(jié)點的網(wǎng)絡(luò)狀態(tài)切換時序:
t0時刻 :ECU1和ECU2正常通信,兩者均處于NOS(Normal Operation State)狀態(tài),發(fā)送的網(wǎng)絡(luò)管理報文中,RPB未置位(RPB = 0)。ECU3處于BSM(Bus-Sleep Mode)狀態(tài)(ECU3具有PN功能,因為收到的網(wǎng)絡(luò)管理報文中,對應的PNC未置位,所以此時ECU3處于休眠狀態(tài))。
t1時刻 :ECU1主動調(diào)用接口CanNm_RepeatMessageRequest()請求進入RMS(Repeat Message State)狀態(tài),此時:
- ECU1進入RMS狀態(tài),ECU1發(fā)送的網(wǎng)絡(luò)管理報文中, PNI(Partial Network Information Bit)置位(PNI = 1) ,且關(guān)聯(lián)ECU3的 PNC_ECU3 = 1 ,ECU3網(wǎng)絡(luò)被喚醒;
- 且RPB = 1,隨即ECU2和ECU3進入RMS狀態(tài);
- ECU2和ECU3發(fā)送的網(wǎng)絡(luò)管理報文中,RPB = 1,且稍微晚于ECU1。
t2時刻: ECU1、ECU2、ECU3依次進入NOS狀態(tài),且三者的RPB = 0。
如下所示:
注意 :同一網(wǎng)段內(nèi)的所有節(jié)點,對應的CANNM_MSG_CYCLE_TIME、CANNM_REPEAT_MESSAGE_TIME、CANNM_WAIT_BUS_SLEEP_TIME、NM-TIME_OUT時間參數(shù)需要保持一致,以便于網(wǎng)段內(nèi)所有節(jié)點在近似相等的時間內(nèi)進入相同的網(wǎng)絡(luò)狀態(tài)。
綜上述:RPB具有協(xié)調(diào)不同ECU節(jié)點狀態(tài)切換的作用,以便于網(wǎng)段內(nèi)所有節(jié)點在近似相等的時間內(nèi)進入相同的網(wǎng)絡(luò)狀態(tài)。
RPB是否還有其他使用場景?期待你不同的看法。
審核編輯:劉清
-
CAN總線
+關(guān)注
關(guān)注
145文章
1971瀏覽量
132178 -
AUTOSAR
+關(guān)注
關(guān)注
10文章
370瀏覽量
22377 -
RMS
+關(guān)注
關(guān)注
2文章
149瀏覽量
36452
發(fā)布評論請先 登錄
請問command message與status message的意思是什么
request對象的常用方法

PHP中REQUEST和POST及GET有什么區(qū)別

請問一下RPB是干啥用的

verilog中repeat必須用begin和end嗎
PCI-E TLP學習筆記(2)

評論