国产在线高清精品二区_yw193亚洲中文字幕无码一区_国产精品久久AV无码久久_日韩Aⅴ人妻无码一区二区_上萬網友分享里番全彩之和老师h全彩无码心得

Autosar網(wǎng)絡(luò)管理:CanNM PN功能_環(huán)球快看

來源: 個人圖書館-新用戶3849ayns 2023-06-21 15:27:18

我們清楚Autosar網(wǎng)絡(luò)管理,也知道收到網(wǎng)絡(luò)管理報文會喚醒網(wǎng)絡(luò),但是網(wǎng)絡(luò)管理如果上PN功能的話,就只能是指定的網(wǎng)絡(luò)管理報文才可以喚醒網(wǎng)絡(luò)。這個指定網(wǎng)絡(luò)管理報文是如何過濾的呢?來,我們看看Autosar怎么做的。


(資料圖片僅供參考)

1

為便于理解,以最常見的Can總線為例,其它總線同理。比如在某個Can網(wǎng)段內(nèi),有3個ECU,其中ECU1包含3路Can,即Node1、Node2、Node3,ECU2包含兩路Can,即Node4、Node5,ECU3包含1路Can,即Node6。如下所示:

假設(shè),我們示例中的Can網(wǎng)段設(shè)計了5個PNC,分別定義PNC ID為:0x01、0x02、0x03、0x04、0x05。一個Node可以加入一個PNC,也可以加入多個PNC。這里的PNC類似Ethernet的多播組概念。舉個例子:我的微信里有100個好友,但是我要將一些事情告訴某些好友,而不是全部好友。于是,我將好友1、2、3拉了一個小群,設(shè)置標(biāo)簽PNC1;我又拉了好友1、2、5、6組建了另一個小群,設(shè)置標(biāo)簽PNC2。我發(fā)朋友圈的時候,選擇PNC1標(biāo)簽的好友可見我的消息,即使我的所有朋友都會看朋友圈,但是只有我的好友1、2、3可以看到我的消息(即喚醒Node1、Node2、Node3)。

假設(shè)需求如下所示:

PNC1:Node1、Node5、Node6

PNC2:Node2、Node4、Node6

PNC3:Node2、Node6

PNC4:Node1、Node2、Node3、Node4、Node5

PNC5:Node2、Node5

需求可以進(jìn)行如下分配:

注釋:

1 表示使能Node,0 表示不使能Node。

2

一般來說,CAN網(wǎng)絡(luò)管理報文的PDU格式如下所示:

Byte0:節(jié)點ID,比如Node ID為0x509(假設(shè)網(wǎng)絡(luò)管理報文:0x500~0x5FF),工具配置時,此字節(jié)設(shè)置0x09即可。因為0x05是網(wǎng)段標(biāo)識,底層收到0x05xx的報文即可知道是網(wǎng)絡(luò)管理報文,之后根據(jù)偏移值(本例:0x09)即可知道是哪個Node。

Byte1:控制位向量。

Byte2~Byte7:用戶數(shù)據(jù)

這里只討論和PN功能相關(guān)的Bit6。

Bit6 = 1,表示有PN請求,如果有PN請求,則后面要判斷收到的網(wǎng)絡(luò)管理報文的PNC,判斷該節(jié)點是否在此PNC內(nèi);

Bit6 = 0,表示沒有PN請求,一般收到網(wǎng)絡(luò)管理報文就直接喚醒網(wǎng)絡(luò)。

3

NMPDU過濾算法

前面的討論為本小節(jié)做了鋪墊,那我們就好奇一個問題了:如果節(jié)點有PN功能,如果判斷收到的網(wǎng)絡(luò)管理報文可以喚醒當(dāng)前節(jié)點的網(wǎng)絡(luò)?

這里就涉及到了PDU的過濾算法問題。

示例

CanNmPnInfoOffset =4,PnInfo在PDU中偏移的距離

CanNmPnInfoLength = 2,Pn Info在PDU中的長度

如何識別出網(wǎng)絡(luò)管理報文可以喚醒該節(jié)點呢?Autosar中使用了屏蔽掩碼過濾的方式,如上例,Pn Info的長度為2byte,對應(yīng)設(shè)置2個Mask,比如:

CanNmPnFilterMaskByteIndex= 0,設(shè)置CanNmPnFilterMaskByteValue = 0x01;

CanNmPnFilterMaskByteIndex= 1,設(shè)置CanNmPnFilterMaskByteValue = 0x97。

之后對每個Pn Info采用位與運(yùn)算,運(yùn)算結(jié)果如下所示:

0x8E(NM PDU Byte5)0x86(relevant PN information)

其中,有一個字節(jié)與結(jié)果不為0,表示該報文可以喚醒當(dāng)前節(jié)點。如果兩個字節(jié)的比較均為0x00,則當(dāng)前節(jié)點網(wǎng)絡(luò)不被喚醒,忽略該網(wǎng)絡(luò)管理報文。

提示:

有些transceiver有PNC過濾功能,也可以在硬件上設(shè)置此過濾功能。針對NXP TJA1145 Transceiver而言,只能過濾通信速率在1Mbps的報文,因此要注意項目中的網(wǎng)絡(luò)管理報文速率,如果使用的是CANFD,且速率是500Kbps/2Mbps,則NXP TJA1145 Transceiver硬件過濾功能可能就不能使用。也許在不久的將來,硬件變速率過濾功能也將成為現(xiàn)實。

CANXL要來了,嵌入式的小伙伴,讓我們拭目以待吧。

標(biāo)簽:

猜你喜歡

<samp id="ookk2"></samp>