CAN總線局部網絡管理機制及實現
硬件實現
在CAN總線中報文是以廣播形式發送的,當節點處于休眠狀態時,大部分收發器檢測到總線中的報文時會喚醒節點。這就會使網絡管理的局部網絡功能失效。
為實現部分節點喚醒的功能,需要特殊的收發器支持。特殊收發器具有報文濾波功能,只在收到特定報文之后才能被喚醒。NXP已經率先推出支持局部網絡管理的收發器TJA1145和UJA1168。TJA1145是一種高速CAN收發器,而UJA1168是集成5V/100mA微處理器供電的CAN系統基礎芯片。
除了傳統收發器的TX、RX引腳,NXP的兩款支持PN的收發器均通過SPI與CAN控制器相連。通過SPI,MCU可控制CAN收發器的模式轉換以及設置收發器的報文濾波,實現特定報文喚醒的功能。連接方式參見圖2。
圖2 支持PN的收發器連接實例圖
軟件實現
除了需要支持硬件濾波的收發器外,在軟件部分,還需要遵循一套支持PN的網絡管理協議來配合應用程序實現分組協同睡眠和喚醒。AUTOSAR組織已經推出支持PN的網絡管理協議AUTOSARR3.2.1,該協議主要通過特定的網絡管理報文來實現分組睡眠。
AUTOSAR 3.2.1中定義的CAN網絡管理報文格式如圖3所示。Byte 0表示源節點地址,Byte 1為固定格式ControlBit Vector.不同的bit有特殊的含義,如圖3所示,該字節的bit 6(Partial Network Bit)就表明該報文是否與PN相關。NM報文中其余字節為User data,可根據用戶需求自定義。OEM可根據EE功能定義,指定User data中的不同的位來表示不同的PN組是否需要保持喚醒。例如,將Byte 2的bit 0設定為PN1組的喚醒指示位時,如節點欲保持PN1組喚醒,則需將其置為1;如不需要保持PN1組喚醒,則將其位置為0或停發網絡管理報文。當網絡上同屬于PN1的所有節點都沒有保持喚醒的要求時,PN1組按照睡眠邏輯協同進入睡眠。
圖3 默認網絡管理報文格式定義
圖4 Control Bit Vector格式定義
每個節點只關心自己所處的PN組的狀態,在節點發送的網絡管理報文加入所屬PN的信息(User data),就可以實現不同PN分組休眠和喚醒。
結論
本文介紹了局部網絡(PN)管理的概念及優勢,并闡述了其在CAN總線上的硬件及軟件實現??梢钥吹?,隨著汽車EE功能越來越復雜,局部網絡管理的分組睡眠和喚醒的機制是一種有效的節省電量的方法。
評論