車載網絡總線管理的目的是使網絡中的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狀態了。

AUTOSAR中定義的網絡管理PDU
上圖定義了NM PDU的格式,byte 0標識ECU的節點地址,byte 1是控制信息。
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個狀態之間的轉換的狀態機。

基於CAN的網絡管理中ECU的NM狀態機
跟着狀態機走一遍,就會對這個過程有比較直觀的了解了。
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中。
綜上所述,ECU網絡管理的實現的核心就是實現這個狀態機,在AUTOSAR中,這些狀態之間的跳變就是由AUTOSAR定義的各種接口函數實現的。但是真實使用的時候不是這么簡單,還有很多機制,暫不深究。
