news 2026/4/23 13:52:50

上下电管理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
上下电管理

上电:

主动唤醒:

由bswm主动请求ComM_RequestComMode(User, COMM_FULL_COMMUNICATION)以及ComM_CommunicationAllowed从默认COMM_NO_COM_NO_PENDING_REQUEST ->COMM_NO_COM_REQUEST_PENDING ->COMM_FULL_COM_NETWORK_REQUESTED;

ComM_Prv_ChannelMainFunction函数中迁移状态机至

ComM_Prv_FullComNetworkReq_StateHandling请求网络Nm_NetworkRequest,ComM_Prv_RequestBusSm,CanSM_NetworkModeTrans控制controller和cantrcv;

CANSM扮演的角色就是在ComM发起请求后,ComM会轮询等待channelRamPtr_pst->ChannelState_e和当前请求一致,否则会卡在死循环

被动唤醒:

根据ECUM的配置有多种途径,仅介绍其中一种做法,则是通过ComM_EcuM_Wakeupindication通知;

CanTrcv_MainFunction

CanTrcv_MainFunction_SPI

EcuM_SetWakeupEvent

设置事件EcuM_Prv_dataValWkpEventsInd_u32

在EcuM_MainFunction周期轮询中根据事件判断是否为有效唤醒源,

EcuM_Prv_WakeupValidation中

BswM_EcuM_CurrentWakeup 通知BSWM ,在此调用ComM_CommunicationAllowed;

ComM_EcuM_WakeUpIndication 确认CAN Channel唤醒源为被动唤醒ComM_ChannelStruct[X].PassiveRequestState_u8

后续会在ComM_Prv_ChannelMainFunction函数中迁移状态机

COMM_NO_COM_NO_PENDING_REQUEST ->COMM_NO_COM_REQUEST_PENDING ->COMM_FULL_COM_NETWORK_REQUESTED -> COMM_FULL_COM_READY_SLEEP;

调用ComM_Prv_RequestBusSm,CanSM_NetworkModeTrans控制controller和cantrcv,Nm_PassiveStartUp, CanNm_PassiveStartUp至此开始网络;

下电:

参考这个状态机,CANNM先切状态,根据配置timer到期后切入prepare,Nm_PrepareBusSleepMode调用ComM_Nm_PrepareBusSleepMode,等待bus sleep以及CANSM释放后进入COMM_NO_COMMUNICATION,然后BSWM再根据 ComM状态是否进入

COMM_NO_COMMUNICATION选择进入shutdown,关闭pdugroup和NVM_WriteAll,然后状态机流转停止调度器以及1145和SBC下电;

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 12:31:25

Revive Adserver完整指南:如何快速搭建免费广告管理系统

Revive Adserver完整指南:如何快速搭建免费广告管理系统 【免费下载链接】revive-adserver The worlds most popular free, open source ad serving system. You can download the latest release at: 项目地址: https://gitcode.com/gh_mirrors/re/revive-adserv…

作者头像 李华
网站建设 2026/4/23 13:52:47

轻松实现酷安社区桌面端体验:UWP版客户端完全使用指南

轻松实现酷安社区桌面端体验:UWP版客户端完全使用指南 【免费下载链接】Coolapk-Lite 一个基于 UWP 平台的第三方酷安客户端精简版 项目地址: https://gitcode.com/gh_mirrors/co/Coolapk-Lite 还在为安卓模拟器的卡顿和资源消耗而烦恼吗?想要在W…

作者头像 李华
网站建设 2026/4/23 12:29:16

PySide6 自定义侧边栏 实现思路与代码详解

PySide6 自定义侧边栏 实现思路与代码详解 PySide6 虽然得益于Qt框架的强大与Python语法的快速开发,但是默认提供的主题不符合现代UI的省美!比如:侧边栏一般也叫导航栏(更多是手机平板的等设备)。 写在前边 笔者使用的是Linux的Gnome桌面系…

作者头像 李华
网站建设 2026/4/23 12:47:50

【蓝桥杯单片机】第二讲 过渡模拟二与LED模块

一、过渡模拟二 1 小数点输入 case 11://小数点输入if(Seg_Disp_Mode 0 && Point_Flag 0 && Seg_Input[0] ! 11)//处于温度采集界面、标志位为0、输入数组第一位有数据{Seg_Point[2Seg_Input_Index] 1;Point_Wela Seg_Input_Index;//记录此时指针状态 便于…

作者头像 李华
网站建设 2026/4/23 12:47:23

涪陵区市电路灯批发报价与成本分析

在城市照明基础设施建设中,涪陵区近年来持续推进智慧化、绿色化升级,尤其在市电路灯系统的优化与更新方面成效显著。作为连接城市功能与居民生活的重要载体,路灯不仅承担基础照明任务,更需契合不同应用场景对光效、安全、节能及维…

作者头像 李华