基於CAN的網絡管理NM(network management)

感謝分享:
https://zhuanlan.zhihu.com/p/45226069
車載網絡總線管理的目的是使網絡中的ECU節點有序地睡眠和喚醒,在沒有通信需求的時候睡眠,可以節約電池的能量。

CAN總線上的網絡管理,是一種無中心式的網絡管理,網絡中的每個節點都依賴於自己和別人的網絡管理報文(NM PDU)來實現通信的睡眠和喚醒,這個NM PDU是週期性發送的,對於每個ECU來說,收到別的ECU發送的NM PDU則意味着當前的網絡有通信需求,自己發出NM PDU則是告知別的ECU自己有通信需求。如果某個ECU打算進入Bus-Sleep-Mode,它就會通止發送NM PDU,在進入Bus-Sleep-Mode之前會有一段延時,如果在這段延時中沒有收到任何NM PDU,則它就會轉入Bus-Sleep-Mode狀態了。
在這裏插入圖片描述
以上圖片是作者原文中給出的格式但是我認爲這個格式應該並不是行業標準,每一個車場應該是都有自己的一套通信方式;
CAN NM爲ECU的網絡管理定義了三種模式(Mode):

Bus-Sleep Mode
Prepare Bus-Sleep Mode
Network Mode
最後的Network Mode又分爲三個狀態(state),

Repeat Message State
Normal Operation State
Ready Sleep State
CAN總線上的網絡管理的核心,就是ECU在這3種模式和3個狀態之間的轉換的狀態機。
在這裏插入圖片描述
跟着狀態機走一遍,就會對這個過程有比較直觀的瞭解了。

ECU最初處於Bus-Sleep Mode中,當它有了通信需求(比如接收其他ECU的NM報文,或者它的邏輯功能要求自己喚醒,比如車門控制器收到了遙控鑰匙的信號),它就會進入Network Mode,Repeat Message狀態是Network Mode的入口狀態,到達這個狀態之後,ECU會啓動一個Repeat Message Timer,在這個Timer定義的時間內,ECU會一直處於Repeat Message狀態。當這個timer結束後,如果有通信需求,ECU則進入Normal Operation狀態,如果沒有通信需求,則進入Ready Sleep 狀態。Normal Operation狀態就是ECU正常運行的狀態,此時它的應用報文和NM報文都會正常收發。當ECU沒有通信需求,它會瞬間進入Ready Sleep狀態,在Ready Sleep中,如果又出現了通信需求,ECU則瞬間再回復到Normal Operation,如果在一個Timeout Timer中一直沒有通信需求,ECU就進入Prepare Bus-Sleep Mode,在Prepare Bus-Sleep狀態中,也會啓動一個Timeout Timer,如果在這段時間內有了通信需求,ECU又會立即回到Repeat Message狀態,如果過了這個timer還沒有通信需求,則ECU會回到Bus-Sleep Mode中。

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