睡眠模式:CAN 節(jié)點的 “低功耗待機狀態(tài)”
睡眠模式是 CAN 控制器的 “低功耗” 模式,在該模式下,控制器關閉大部分內(nèi)部電路(如發(fā)送電路、接收電路、時鐘電路),僅保留 “喚醒檢測電路”,功耗降至微安級(如 SJA1000 睡眠模式功耗 < 10μA),遠低于正常模式(通常為 mA 級)。睡眠模式的核心目標是 “降低節(jié)點待機功耗”,適用于電池供電的 CAN 節(jié)點(如無線 CAN 傳感器、便攜式診斷設備),延長電池續(xù)航時間。
(一)睡眠模式的技術細節(jié):低功耗設計與喚醒機制
睡眠模式的實現(xiàn)依賴 “功耗控制邏輯” 與 “喚醒檢測電路” 的協(xié)同:當 MCU 向 CAN 控制器寫入 “睡眠位”(如 CAN_CR 寄存器中的 SLP 位)時,控制器關閉發(fā)送 / 接收電路、內(nèi)部時鐘,僅保留喚醒檢測電路與狀態(tài)寄存器;此時,控制器不與總線交互,也不響應 MCU 的發(fā)送 / 接收指令,僅監(jiān)測 “喚醒事件”。
睡眠模式的 “喚醒事件” 主要有三種:
總線喚醒:若控制器配置為 “總線喚醒使能”,當總線上出現(xiàn)顯性位(如其他節(jié)點發(fā)送的幀起始位)時,喚醒檢測電路會觸發(fā)喚醒信號,控制器自動退出睡眠模式,恢復正常電路工作;
軟件喚醒:MCU 通過寫入 “喚醒位”(如 CAN_CR 寄存器中的 WUP 位),強制控制器退出睡眠模式;
硬件喚醒:部分 CAN 控制器支持外部硬件喚醒(如通過 GPIO 引腳輸入高電平),適用于需要外部觸發(fā)的場景(如便攜式診斷設備通過按鍵喚醒)。
喚醒過程中,控制器會逐步恢復內(nèi)部電路:首先啟動時鐘電路,同步總線時鐘;然后初始化發(fā)送 / 接收電路;最后清零睡眠標志,切換至正常模式(或之前的模式,如靜默模式),并通知 MCU 喚醒完成。喚醒時間通常為微秒級(如 < 100μs),確保節(jié)點能快速響應總線事件,避免錯過關鍵數(shù)據(jù)。
(二)睡眠模式的應用場景:低功耗待機與電池供電
睡眠模式主要用于 “電池供電的 CAN 節(jié)點” 與 “間歇性通信的場景”,核心需求是 “延長續(xù)航”。在無線 CAN 傳感器中,傳感器采用鋰電池供電,需要每 10 秒采集一次數(shù)據(jù)并發(fā)送到 CAN 總線:在兩次采集之間,傳感器的 CAN 控制器配置為睡眠模式,功耗從正常模式的 5mA 降至 5μA,續(xù)航時間從 1 天延長至 1 個月;當?shù)竭_采集時間時,MCU 通過軟件喚醒 CAN 控制器,發(fā)送數(shù)據(jù)后再次進入睡眠模式,兼顧通信需求與低功耗。
在便攜式 CAN 診斷設備中,睡眠模式同樣關鍵:診斷設備平時處于睡眠模式,僅通過按鍵喚醒;喚醒后,設備工作在靜默模式接收總線數(shù)據(jù),診斷完成后,若 5 分鐘無操作,自動進入睡眠模式,避免電池電量浪費。這種 “喚醒 - 工作 - 睡眠” 的循環(huán),確保設備在不使用時功耗最低,使用時能快速響應。
在汽車 CAN 節(jié)點中,部分非核心節(jié)點(如車載娛樂系統(tǒng)的 CAN 模塊)也支持睡眠模式:當汽車熄火后,車載娛樂系統(tǒng)的 CAN 控制器進入睡眠模式,停止與總線交互,降低汽車蓄電池的功耗,避免長時間停放導致電池虧電;當汽車點火時,通過總線喚醒(總線上出現(xiàn)喚醒幀),恢復正常通信。