AutoSar CAN網絡管理狀態機理解

AutoSar CAN網絡管理狀態機理解

  • 前言

網絡管理是整車控制很重要的功能。在CAN網絡中通常有兩種報文,應用數據幀和網絡管理幀。應用數據幀只負責網絡在正常工作模式下各節點的數據交互,網絡管理幀控制和協調各節點喚醒,工作,休眠的時序。AutoSar CAN網絡管理規範要求所有節點按如下狀態機管理和交流各自的網絡狀態以控制整車的網絡活動狀態。爲什麼狀態機要是這個樣子?爲什麼總共五個狀態休眠就三個狀態?爲了比較形象的說明汽車CAN網絡管理狀態機,本文以學生宿舍作息管理模型爲例做簡要說明。

 

 

  • 設計要求

網絡管理系統的三個基本要求:

  1. 網絡上各節點能同時喚醒。
  2. 網絡上各節點能同時休眠。
  3. 網絡上新增(減少)一個節點(只要總節點數≥2)後,新的網絡依然滿足要求1,2

此處同時只的是第一個喚醒(休眠)控制器和最後一個喚醒(休眠)控制器的喚醒(休眠)時間差在設計允許範圍內,比如200ms。

 

網絡管理系統的增強性要求:

  1. 網絡上任一節點能都能喚醒網絡,即多主喚醒方式。
  2. 網絡上任一節點能知道其他節點所有的狀態,即狀態共享。

 

  • 學生宿舍作息模型

設某學生宿舍有N個同學,作息規定:

  1. 大家同時醒來。
  2. 大家同時睡着。
  3. 宿舍裏新來一個人或離開一個人也不影響其他人按規定1,2作息。

此處同時只的是第一個人醒來(睡着)和最後一個醒來(睡着)的時間差在允許範圍內,比如1分鐘。睡着的意思是大腦真正進入睡眠狀態,不能僅從閉上眼睛判斷。有什麼方法能實現該作息規定呢?

 

  1. 管理員模型:
  1. 選舉一個同學爲宿舍長。
  2. 宿舍中央掉一盞燈。
  3. 舍長一關燈大家一起睡覺,10分鐘後一起睡着。
  4. 舍長一開燈大家醒來。

 

這個方法挺簡單,但是要有約束:

  1. 舍長必須永遠存在。否則有一天他生病或請假不能開關燈,那麼其它人就不能正常作息。
  2. 舍長必須第一個醒來,他不醒來就沒人開燈。
  3. 舍長必須最後一個睡着,否則關燈後有一個人遲遲不入睡,他不知道。

可見,管理員模型存在風險集中和僞同步兩個缺點。

 

  1. 獨立模型:
  1. 各人牀頭放一盞牀頭燈。
  2. 各人只能控制自己牀頭燈“開”和“關”。
  3. 各人能看到其他人牀頭燈“開”和“關”的狀態。
  4. 只要1個人的牀頭燈是開的,房間就是亮的。
  5. 只有所有人的牀頭燈是關的,房間才變黑暗。
  6. 當房間黑暗時,只要有1個人的牀頭燈亮,所有人都要醒來。
  7. 當1個人準備睡覺時他就關掉自己的牀頭燈。
  8. 只要房間是亮的,所有人都不會睡着,即使他已經躺在牀上。
  9. 只要房間變黑暗,10分鐘後所有人都會睡着。

其中,第6條保證同時醒來,同時也是對管理員模型舍長風險的分解。即任何人都能叫醒其它人。第7~9條保證同時睡着。爲什麼必須要同時睡着呢?這是因爲如果不同時睡着,就不能按照規則6讓大家同時醒來。譬如,修改第7條當1個人關燈後,不管其他人有沒有關燈他就在10分鐘後睡着。但是他睡着後因爲有燈亮着,按照第6條他又得醒來。雖然他只經過了短暫的睡着狀態,但他還是以爲是第二天天亮了,然而其他人還處在第一天晚上的狀態,這樣系統時間就亂了。第9條是說從入睡到睡着有一個時間過程,不可能宿舍一黑大家都睡着。

同步睡眠的方法如圖,假設有三個同學A,B,C他們按順序關燈。關燈後,他們只是躺下,眼睛還是睜開的。這時就一直看房間還是不是亮着。只要亮着,就說明有人還沒睡,那就等待。直到C關燈躺下後,房間變黑。大家才集體閉眼睡覺,10分鐘後一起睡着。我們發現從最後一個人關燈到集體睡着的時間是固定的,而第一個人關燈到最後一個人關燈的時間是不固定的,該時間就是網絡休眠的最大延遲時間。

 

 

同步喚醒的方法如圖,任意一個同學(假設同學B)開燈,大家就同時起牀。但每個人起牀時間或許不一樣,有的快有的慢。所以是要規定一個最快時間,比如5分鐘。在這5分鐘內,必須要讓牀頭燈開着,目的是讓其他同學有時間看到自己的確被叫起來了。因爲起牀後就是自由活動了,或者去教室,或者呆在宿舍。或者把燈一關坐在牀上睜大眼睛看天花板,反正至少同學B的燈一直開着你就不能閉眼,哪怕今天你在牀上乾坐一天。

 

綜合上述同步喚醒和休眠時序,我們得到每個同學的作息管理狀態機。這和AutoSar CAN網絡管理狀態機基本一樣。

 

 

  • AutoSar CAN網絡管理同步算法

以下內容摘自《AUTOSAR_SWS_CANNetworkManagement.pdf》

7.1 Coordination algorithm部分:

The AUTOSAR CanNm is based on decentralized(*1) direct network management strategy, which means that every network node performs activities self-sufficient depending on the Network Management PDUs only that are received or transmitted within the communication system.

AUTOSAR CanNm基於分散的(*1)直接網絡管理策略,這意味着每個網絡節點根據僅依靠在通信系統內接收或發送的網絡管理PDUs幀就可以執行自足的網絡管理活動。

The AUTOSAR CanNm algorithm is based on periodic Network Management PDUs,which are received by all nodes in the cluster via broadcast transmission. Receptionof Network Management PDUs indicates that sending nodes want to keep thenetwork management cluster awake. If any node is ready to go to the Bus-Sleep Mode, it stops sending Network Management PDUs, but as long as Network Management PDUs from other nodes are received, it postpones transition to the BusSleep Mode. (*2) Finally, if a dedicated timer elapses because no Network Management PDUs are received anymore, every node initiates transition to the Bus-Sleep Mode.

AUTOSAR CanNm算法基於週期性網絡管理PDU,通過廣播傳輸由集羣中的所有節點接收。接收到網絡管理PDU表明發送節點希望保持網絡管理集羣處於喚醒狀態。如果任何節點已準備好進入總線-休眠模式,它將停止發送網絡管理PDU,但只要接收到來自其他節點的網絡管理PDU,它就會推遲進入到BusSleep模式。(*2) 最後,如果經過一定時間再沒有接收到網絡管理PDU,則每個節點都會進入到BusSleep模式。

If any node in the network management cluster requires bus-communication, it can wake-up the network management cluster from the Bus-Sleep Mode by transmitting Network Management PDUs. For more details concerning wakeup procedure itself please refer to the AUTOSAR SWS ComM [7].

如果網絡管理集羣中的任何節點需要總線通信,則它可以通過發送網絡管理PDU將網絡管理集羣從休眠模式喚醒。有關喚醒程序本身的更多詳細信息,請參閱AUTOSAR SWS ComM [7]。

理解:

  1. 分散的目的正是爲了排除集中式管理員模型的風險。
  2. 推遲的目的是爲了所有的節點同步進入BusSleep模式。

 

  • 新能源汽車CAN網絡管理的必要性

低成本的控制器使用硬線方式喚醒,即所有的ECU都連接在點火開關上,ACC/IGON時所有ECU同步喚醒。但是ACC/IGOFF時,各節點不能同步休眠。有的節點提前休眠,有的節點比如MCU因爲放電時間較長要晚點休眠,而VCU作爲主控節點往往最後一個休眠。

 

通常情況下異步休眠也沒有什麼問題。但是特殊情況下,比如下圖節點A已經休眠了但是節點B還沒有休眠,這時鑰匙又打開了,所謂玩鑰匙。IGOFF-ON的時間間隔很短,大約幾百毫秒。那麼對節點A是一個新的循環,對節點B還處於原來的循環。這樣可能就會存在隱患,譬如不同ECU故障管理的駕駛循環計數值不一致。

 

所以,嚴格控制所有ECU同步休眠是很有意義的。在傳統燃油汽車ECU系統裏,鑰匙OFF後發動機立即熄火,只要整車廠企標規定所有ECU在一定時間內必須休眠(譬如200~300ms),基本上可以算同步。但是在新能源汽車,由於電機控制器MCU母線電容要放電,該時間是秒級的(主動放電3S內,被動放電60S左右)。則整車廠企標不能要求所有控制器在鑰匙OFF後短時間內同步休眠。那麼,必須要通過網絡管理協調所有ECU同步休眠。

 

  • 對AutoSar CAN網絡管理的誤區

     AutoSar CAN網絡管理允許CAN喚醒控制器,但是不是隻要採用AutoSar CAN網絡管理就必須要CAN喚醒呢?我認爲不一定,通常下面幾個情況可能需要控制支持CAN喚醒:

  1. 停車充電時要喚醒控制器,譬如BMS,MCU,VCU。
  2. 需要通過無線鑰匙啓動車輛,無線模塊發送CAN報文喚醒車輛ECU

      對於新能源汽車第1條是必須的,那麼相關節點是不是必須要支持CAN喚醒呢?要知道帶CAN喚醒功能的芯片和不帶CAN喚醒功能的芯片成本相差也比較大。如果通過巧妙電路設計,比如在無線喚醒模塊上增加電子開關連接到KL15上,對於各ECU依然表現爲硬線喚醒控制器,CAN網絡管理只負責控制休眠,那麼用低成本的CAN芯片就能實現網絡管理。如今各整車廠對零部件供應商的ECU成本要求越來越嚴苛,ECU成本主要受制於高性能芯片,芯片供應商推進高性能Chip的目的是爲了更高的利潤,但是零部件商一定要清醒是否有必要,在能實現整車功能的前提下,儘量用低功能的芯片有成本優勢。

 

七、小結:

1. 以學生宿舍作息管理模型爲例說明了AutoSar CAN網絡管理的狀態機。

2. 解釋了新能源汽車必須要用CAN網絡管理控制ECU同步休眠。

3. 對於成本嚴格的整車網絡,推薦用硬線喚醒結合CAN網絡控制休眠的方法,可以採用不帶CAN喚醒功能的芯片達到網絡管理的目的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章