CAN網絡管理(TJA1145如何實現MCU的休眠喚醒)

節點喚醒方式

本地喚醒:?喚醒源來源于自身模塊,比如常說的KL15,控制器由KL15線供電,即只能在鑰匙置于“ACC”或者“ON”檔時運行軟件和維持CAN通信

  • 對于正在運行的CPU軟件,無論它處在什么狀態,只要Hardware OFF,PMIC供電立即切斷,3.3V,5.0V立即消失,程序立即停止運行,ECU系統進入OFF模式,不存在Sleep模式。該狀態下PMIC也不消耗電能,ECU系統的電能消失是0,比較KL30節點的Sleep模式最節省電能。
  • KL15節點沒有下電流程,隨時可能終止運行,沒有時間進入AfterRun模式和做Eeprom最終存儲。WakeUp信號的消失后ECU直接進入OFF模式,不存在Sleep模式,不耗費電能。
  • KL30節點有完整的下電流程,軟件根據WakeUp信號的消失可以控制自己按步驟進入AfterRun模式,存儲數據到flash,設置PMIC進入Sleep模式。ECU進入Sleep模式只有PMIC在耗電。AutoSar網絡管理只針對KL30節點。(參考BSWMECUM的上下電流程)

遠程喚醒:?喚醒源來源于自身ECU節點所在的網絡報文

  • 網絡喚醒是以網絡管理報文為基礎來協同整個網絡“同睡同醒”,CanNM采用分布式的直接網絡管理方式來發送自身節點所需的網絡管理請求及自身網絡管理狀態,并接受來自網絡上其他ECU節點的網絡管理請求與狀態。"同睡同醒"機制的目的是確保所有節點在睡眠和喚醒操作上保持同步。當一個節點準備進入睡眠模式時,它會通過網絡發送一個特殊的同步消息,通知其他節點它即將進入睡眠狀態。其他節點接收到該消息后,會做出相應的響應,以確保整個系統在同一時間進入睡眠狀態。同樣地,當一個節點準備喚醒時,它會發送一個喚醒消息來通知其他節點。其他節點接收到喚醒消息后,會做出相應的響應,以確保整個系統在同一時間喚醒。
  • 該狀態機的狀態類型可分為“三大三小”。

“三大”指的是Bus Sleep Mode、Network Mode、Prepare Bus-Sleep Mode;

“三小”則值得是Network Mode下的三個子狀態:Repeat Message State、Normal Operation Mode、Ready Sleep Mode。

  • 一旦進入Network Mode,計時器T_NM_Timeout就會啟動,只要成功接收到來自總線上的NM報文或者成功發送至總線NM報文,都會將該計時器T_NM_Timeout重置。一旦T_NM_TIMEROUT 超時,那么就會離開該狀態轉而進入Prepare Bus-Sleep狀態。
  • 報文發送與接受狀態

“Bus-Sleep”階段,只接收NM報文喚醒,不發送任何報文;

“Pre-Bus-Sleep”階段,同樣僅允許接收NM報文,對于早已在發送Buffer中的APP報文應發送完畢后立刻停止APP報文;

“Network Mode”模式下,除了在Ready Sleep階段不允許發送NM報文之外,其余階段APP報文與NM報文正常收發;

CanNM報文周期性的向MCU發送,如果一旦一段時間沒有收到,MCU就通過SPI向TJA115的寄存器寫數據,要進入sleep模式,之后TJA1145在向PMIC拉低

如何讓TJA1145進入sleep和wakeup狀態

下圖以TJA1043簡單說明can報文如何使MCU進入到休眠喚醒狀態:

  • S1:MCU滿足休眠條件時,通過發送SPI相應指令讓TJA1145進入Sleep狀態;

例如下面的用法:

簡單的指令代碼實現就是下圖:

  • S2:TJA1145進入到Sleep狀態后,INH引腳就會拉低,控制5V或者3V關閉電源輸出,間接導致MCU整個系統處理掉電狀態,此時TJA1145始終處于供電狀態(由于BAT始終有電),整個ECU成功進入到休眠狀態;
  • S3:TJA1145雖然處于Sleep狀態,屬于極低功耗狀態,同步也檢測著網絡是否存在有效喚醒源;
  • S4:當TJA1145發現有效喚醒源之后,就會自動從Sleep狀態切換成Standby狀態,在Standby狀態下INH引腳拉高,此時5V與3V便會正常輸出,從而MCU被正常供電,程序開啟正常運行;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/14902.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/14902.shtml
英文地址,請注明出處:http://en.pswp.cn/web/14902.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深度學習模型keras第二十五講:使用KerasNLP從零開始預訓練Transformer模型

1、KerasNPL預訓練Transformer模型概念 使用KerasNLP來預訓練一個Transformer模型涉及多個步驟。由于Keras本身并不直接提供NLP的預訓練模型或工具集,我們通常需要結合像TensorFlow Hub、Hugging Face的Transformers庫或自定義的Keras層來實現。 以下是一個簡化的…

Android Baidu地圖SDK只展示藍背景,沒有繪制內容問題解決

背景 項目里接入了Baidu地圖SDK,用于展示信息、選點。 在一個新的Activity中,引入了TextureMapView,用于地圖展示。 選點過程有兩個頁面。 A頁面中有一個不能滑動的地圖,只是用來展示,沒有其他任何操作。 點擊A頁…

Plesk中如何移除之前添加的域名

我這邊想要移除我之前綁定到主機的域名,但是不知道如何在主機上面進行移除,由于我使用的Hostease的Windows虛擬主機產品默認帶普通用戶權限的Plesk面板,但是不知道如何在Plesk上操作移除域名,因為也是對于Hostease主機產品不是很了…

java單元測試:JUnit斷言庫

JUnit斷言庫提供了一組用于驗證測試結果的工具。這些斷言方法幫助開發人員在單元測試中明確表達預期結果,并在實際結果與預期結果不符時報告失敗。 1. JUnit中的斷言 斷言用于驗證測試的預期結果。JUnit 5(Jupiter)提供了一組靜態方法&…

獲取和設置代理的動態IP的方式

引言 大家好,今天我來給大家分享一下如何通過編程技術來獲取和設置代理的動態IP。在網絡世界中,代理和動態IP是非常常見的概念,尤其對于需要大規模訪問網站或者需要隱藏真實IP地址的應用程序來說,更是必不可少的工具。接下來&…

【精品】【算法實戰】每日一題:如何用Python實現給定整數序列中尋找最小長度窗口以包含所有不同元素的算法?

問題: 如何用Python實現給定整數序列中尋找最小長度窗口以包含所有不同元素的算法? 核心思路 核心思路是利用雙端隊列(作為滑動窗口)來找到一個滿足特定條件的最小長度子序列。算法遍歷給定的序列,對于每個新數據點…

【Spring】Spring框架對RESTFul風格的支持

1、簡介 Spring框架對RESTful風格的支持主要體現在Spring MVC和Spring Boot等模塊中。RESTful(Representational State Transfer,表述層資源狀態轉移)是一種軟件架構風格,它強調資源(通常是網絡上的信息)的…

Java方法的基本用法

Java方法的基本用法 前言一、什么是方法方法存在的意義示例 二、方法定義語法基本語法代碼示例注意事項 三、方法調用的執行過程基本規則代碼示例計算兩個整數相加計算 1! 2! 3! 4! 5! 四、實參和形參的關系代碼示例交換兩個整型變量原因分析解決辦法 五、沒有返回值的方法…

初識java——javaSE (6)接口的實現——比較器與深拷貝,淺拷貝

文章目錄 前言一 比較器1.1 關于兩個對象的比較1.2 Comparable接口:1.3 Arrays.sort方法的實現1.4 比較器的實現Comparator接口 二 深拷貝與淺拷貝2.1 淺拷貝:Cloneable接口:clone方法:實現拷貝:淺拷貝: 2.…

Python3 筆記:Python的所有關鍵字

查看Python的關鍵字首先需要用import導入keyword模塊 import keyword # 查看Python的所有關鍵字,先用import導入keyword模塊 print(keyword.kwlist) 運行結果: [False, None, True, and, as, assert, async, await, break, class, continue, def, …

MQ如何保證消息不丟失

MQ如何保證消息不丟失 問題分析具體分析及解決方案RabbitMQ生產者RabbitMQ配置消費者 KafkaKafka配置消費者 問題分析 從Kafka和RabbitMQ進行分析,MQ消息丟失的情況有生產者推送消息時數據丟失,MQ中間件宕機情況下數據丟失,消費者消費時消息…

GoLand map中的并發問題——為什么會造成并發問題?該怎么解決?

GoLand map中的并發問題——為什么會造成并發問題?該怎么解決? 問題提出原因解析具體原因競態檢測器 如何解決并發問題呢?方法一 : 使用sync.Mutex方法二: 使用sync.Map我們首先了解一下sync.Map的常用方法&#xff1a…

2024.5.24.python.exercise

# python文件操作 # f open("打字版.txt", "a", encoding"UTF-8") # writer input("請輸入你想要寫入到文件的內容") # f.write(writer) # f.flush() # f.close() # f open("打字版.txt", "r", encoding"…

代碼隨想錄算法訓練營第三十九天 | 738.單調遞增的數字、968.監控二叉樹 (可以跳過)

監控二叉樹同樣的等代碼隨想錄刷完后,再回頭來看,先跳過 738.單調遞增的數字 代碼隨想錄 解題思路 例如:98,一旦出現strNum[i - 1] > strNum[i]的情況(非單調遞增),首先想讓strNum[i - 1]--…

游戲引擎支持腳本編程的好處

哈嘍呀,大家好,淼淼又來和大家見面啦,咱們今天來聊聊游戲引擎,游戲引擎作為現代游戲開發的核心,它集成了圖形渲染、物理模擬、音頻處理、動畫系統、輸入輸出控制等多種復雜技術于一體,為開發者提供了一個高…

ASP+ACCESS基于WEB網上留言板

摘要 本文概述了ACCESS數據庫及其相關的一些知識,著重論述ACCESS數據庫和ASP的中間技術,構建一個簡單的留言板。具體的實現是構造一個留言板系統,能很方便的和同學溝通和交流。留言板具有功能強大、使用方便的特點。用戶以個人的身份進入&am…

瑞芯微RV1126——人臉識別源碼分析

本節內容主要分為3部分,第一部分是流程結構圖;第二部分為人臉識別代碼流程;第三部分為具體的代碼分析。 1.流程結構圖 2.人臉識別代碼流程 1、人臉數據的初始化: init_all_rockx_face_data();init_face_data();2、創建rtsp會話,這里包括發…

一個典型的分布式緩存系統是什么樣的?no.32

分布式 Redis 服務 由于本課程聚焦于緩存,接下來,我將以微博內的 分布式 Redis 服務系統為例,介紹一個典型的分布式緩存系統的組成。 微博的 Redis 服務內部也稱為 RedisService。RedisService 的整體架構如圖所示。主要分為Proxy、存儲、集…

產品推薦 | 基于Xilinx XCKU115的半高PCIe x8 硬件加速卡

一、板卡概述 本板卡系我公司自主研發,采用Xilinx公司的XCKU115-3-FLVF1924-E芯片作為主處理器,主要用于FPGA硬件加速。板卡設計滿足工業級要求。如下圖所示: 二、功能和技術指標 板卡功能 參數內容 主處理器 XCKU115-3-FLVF1924-E 板卡…

UE4/UE5像素流送云推流:多人訪問不穩定、畫面糊、端口占用多等

UE4/UE5想要實現網頁訪問,很多工程師會選擇guan方的像素流送。但這個技術要求在模型開發初期就接入。對于一些已有UE模型是無法進行流化的。雖然也可以解決新UE模型的網頁訪問問題,但在實際的應用中,點量云流也收到很多反饋說,使用…