從PN到PNC
PN一般指Partial Networking,中文名是部分網(wǎng)絡(luò)或局部網(wǎng)絡(luò)。
根據(jù)AUTOSAR_EXP_Layered Software Architecture這篇PPT的說法,PN的初衷是在AUTOSAR中,實施高效的能源管理,其目標(biāo)是提供一種節(jié)能機(jī)制,尤其是在總線通信處于激活狀態(tài)時(例如充電或KL15處于激活狀態(tài)時)。
Partial Networking允許在不需要那么多ECU工作的時候,關(guān)閉一批ECU的網(wǎng)絡(luò)通信。其他ECU可以繼續(xù)在同一總線通道(比如動力CAN)上通信。對于從節(jié)點(diǎn)來說,就是需要你的時候,你必須在;不需要你的時候,你必須閉嘴。通常CAN和FlexRay是支持Partial Networking的。
Partial Networking的兄弟被稱為Pretended Networking,姑且翻譯為裝模作樣網(wǎng)。這種方式允許在總線通信時關(guān)閉現(xiàn)有網(wǎng)絡(luò)中的ECU,節(jié)點(diǎn)可以自行決定是否切換到休眠模式。比如一個從節(jié)點(diǎn),把KL15拔了,ECU就不工作了,發(fā)什么CAN報文喚醒都不起作用。
AUTOSAR_EXP_LayeredSoftwareArchitecture(V4.2.2)p155
如上圖,黑線是真實的CAN總線,ECU A、B、C、D都被真實的雙絞線連在了一起。但是!從功能上來講,ECU A和B可以劃分為一組,ECU B、C、D可以劃分為一組。這樣我們就把真實的物理CAN總線,圈成了兩個相對獨(dú)立的網(wǎng)絡(luò)小組,組1和組2。我們管這樣的小組叫做Partial Network Cluster,中文名是部分網(wǎng)絡(luò)集群,姑且理解為虛擬CAN小組。這些小組成員的特點(diǎn)是,要醒一起醒,要睡一起睡。
PNC一般指Partial Network Cluster,是一組用于支持車輛功能的系統(tǒng)信號,這些功能分布在車輛網(wǎng)絡(luò)中的多個ECU上。
PNC若是蝶,它化繭成蝶之前是VFC。VFC指Virtual Function Cluster, 是初期設(shè)計階段的一種通信概念,用于實現(xiàn)一個或多個車輛功能所需的軟件組件之間的端口級通信。這里要解釋下AUTOSAR的開發(fā)思想,為了實現(xiàn)功能我們需要若干個SWC(Software Component-軟件組件)。這些SWC根據(jù)功能組成了若干個CSWC(Composition SWC),把CSWC之間的端口(Port)連在一起,就組成了VFC網(wǎng)絡(luò)。
AUTOSAR_EXP_LayeredSoftwareArchitecture(V4.2.2)p158
后來,圖紙變成了現(xiàn)實,VFC變成了PNC(基于CAN的)和ECU內(nèi)部的Interface,CSWC則變成了真實的ECU。
AUTOSAR_EXP_LayeredSoftwareArchitecture(V4.2.2)p158
總結(jié):PNC是住在CAN Bus上的小團(tuán)體,既求同年同月同日醒,又求同年同月同日睡。
從PNC醒和睡的暗號是什么
CAN上的網(wǎng)絡(luò)管理幀有8個字節(jié),通常我們會占用Byte2(含Byte2)之后的字節(jié),作為PNC的區(qū)域。舉個例子,Byte2里頭有效的PNC位就是PNC16-PNC23,Byte7里頭有效的PNC位就是PNC56-PNC63。以PNC16舉例,如果這個位的值是1,就是PNC生效,反之為0則PNC失效。
AUTOSAR_SWS_CANNetworkManagement(V4.2.2)p32
AUTOSAR_SWS_CANNetworkManagement(V4.2.2)p33
這里也要注意,對于一幀含有PNC信息的網(wǎng)絡(luò)管理報文來說,位于Byte1(CBV,控制位向量)的PNI Bit是需要置起的,這是后續(xù)判斷PNC生效與否的先決條件。即PNI Bit若為1,則需要繼續(xù)檢查PNC各個位是否置起;PNI Bit若為0,PNC信息整體丟失,注意不是失效,是上層收不到PNC信息。
總結(jié):PNC有效與失效的信息藏在網(wǎng)絡(luò)管理報文的User data中,以位為最小單位,1有效,0無效。但PNI是前提條件,PNI為1,PNC信息才能向上層傳遞;PNI為0,算作沒收到PNC信息。
從站獲取PNC信息的數(shù)據(jù)流
AUTOSAR_EXP_LayeredSoftwareArchitecture(V4.2.2)p159
我們看下數(shù)據(jù)流的流向。為了獲取到EIRA(External Internal Request Array)這個信息,我們在Ecu Config中設(shè)置了三個Global PDU,即PDU_CanIf_CanNm(8bytes),PDU_EIRA_CanNm_PduR(6bytes),PDU_EIRA_PduR_Com(6bytes)。
首先是CanIf,我們在這里可以先對網(wǎng)絡(luò)管理報文根據(jù)CAN ID進(jìn)行濾波,之后將數(shù)據(jù)放到PDU_CanIf_CanNm里面。
再向上是CanNm,8個字節(jié)去掉了Node ID和CBV,變成了6個字節(jié)。檢查CBV中PNI bit的值,若為1則向上層傳遞User Data。PNI如果為0的話,就算沒收到任何PNC,一定時間后會報超時。
到了PduR,我們配置了一條Path,把PDU送往Com(注意這里是Trigger發(fā)送),ComSignal我們假定主機(jī)廠要求只取前3個字節(jié),后面3個字節(jié)被舍棄。這樣我們只剩下了原來網(wǎng)絡(luò)管理幀的Byte2-Byte4。
最后ComSignal傳給了ComM,我們會進(jìn)一步通過Pnc Id去找到Pnc的位置,并檢查它的值是到底1還是0。
審核編輯 :李倩
-
CAN總線
+關(guān)注
關(guān)注
145文章
1987瀏覽量
132883 -
AUTOSAR
+關(guān)注
關(guān)注
10文章
380瀏覽量
22677 -
網(wǎng)絡(luò)通信
+關(guān)注
關(guān)注
4文章
825瀏覽量
31103
原文標(biāo)題:AUTOSAR PNC數(shù)據(jù)流分析
文章出處:【微信號:eng2mot,微信公眾號:汽車ECU開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
大眾數(shù)據(jù)流分析
關(guān)于高速數(shù)據(jù)流盤處理技術(shù)看完你就懂了
基于數(shù)據(jù)流分析與識別的Web資源訪問控制
基于數(shù)據(jù)流的脆弱性靜態(tài)分析
基于數(shù)據(jù)流的Java字節(jié)碼分析
網(wǎng)絡(luò)數(shù)據(jù)流存儲算法分析與實現(xiàn)

評論