ECU的上下电都在做什么

ECU的启动首先肯定是从芯片的BootROM开始,之前也写过英飞凌Tricore系列的启动流程(感兴趣回戳—>英飞凌TC27X启动需要做什么)。当主芯片内核初始化完之后,软件初始化需要做什么呢?
在现在的汽车ECU开发中,大部分都慢慢引入AUTOSAR架构,所以在AUTOSAR架构中,软件的上下电流程是怎么做的呢?
在AUTOSAR架构中,软件的上下电流程主要由EcuM来管理,EcuM又分为两种,分别为:
1、Fixed EcuM:用于管理ECU固定状态,例如OFF、RUN和SLEPP以及这些状态之间的切换,对于没有特殊需求(例如部分启动或快速启动)的ECU,这已足够了,另外,Fixed EcuM不支持多核ECU。
2、Flexible EcuM:Flexible EcuM功能更强大,灵活度更高,允许一下情况:
1、部分或快速启动,即ECU以一组有限的功能启动,然后在逐步启动。
2、交错启动,即ECU最低限度启动,然后启动BSW和SWCs,从而交错BSW和应用程序启动。
3、支持多核ECU,其中ECU的所有不同核上的不同状态(启动、关闭、休眠、唤醒)均能很好的协调。
EcuM模块所负责的任务包括:
1、EcuM负责BswM,SchM和Autosar OS模块以及一些基本软件驱动程序模块的初始化和反初始化。
2、负责处理不同的ECU状态,包括SLEEP和SHUTDOWN状态。
3、EcuM还处理ECU的所有唤醒事件,从而区分真实的唤醒事件和不稳定的唤醒事件。
在实际应用中,大部分用的是Flexible EcuM,所以接下来主要针对Flexible EcuM进行介绍。如图1所示,展示了Flexible EcuM的状态机,
图1 Flexible EcuM状态机
STARTUP Phase
STARTUP阶段分为两部分,如图2所示。一部分在OS启动之前,称之为StartPreOS,这部分为初始化OS做基础,如图3所示,这个阶段要尽可能的短,主要设计的接口包括:
1、EcuM_AL_DriverInitZero:主要用于初始化DET模块,让其他模块可以报告任何开发错误,也可以保持为空函数。
2、EcuM_AL_DriverInitOne:主要用于对主芯片的外设进行初始化,例如GPIO、ADC、PWM、ICU等等。
图2 STARTUP阶段
图3 StartPreOS
STARTUP的第二部分,即为即StartPostOS序列,在调用EcuM_StartupTwo之后被激活。下图4显示了ECU初始化中PostOS启动后的顺序,主要包括:
图4 StartPostOS阶段
1、启动BSW Scheduler(SchM)-SchM代表BSW Scheduler。用于加载BSW中TASK的配置信息。
2、初始化BSW调度程序-SchM_Init()是为初始化SchM模块而定义的函数。它用于分配和初始化BSW Scheduler模块要使用的资源。它可以调用OS服务来触发AUTOSAR OS的任务。
3、BswM_Init(),用于初始化BswM模块,为了后续可以正常触发BswM中配置的规则和操作序列。
UP Phase
EcuM启动操作系统并完成SchM和BswM的初始化后,ECU进入UP Phase。当BSW Scheduler启动并调用BswM_Init时,UP Phase开始。此时,内存管理、通信堆栈、软件组件(SW-C)都尚未启动。此阶段由集成商定义,ECU按照集成商的指示从一种状态进入另一种状态,从一种模式进入另一种模式。
集成商首先必须负责NVM的初始化,然后调用NvM_Readall。然后触发BswM中配置的规则,分别完成通信协议栈、诊断协议栈、网络管理等的初始化,这些初始化完后,启动RTE,然后在启动SWC。这样程序就可以正常运行了。
SHUNTDOEN Phase
当程序中下电标志位置位后,开始进入SHUNTDOWN阶段,首先是对将通信相关的进行关闭,以及关闭RTE终止任务的周期调度,然后对SHUNTDOWN一些模块,例如DEM、BswM等。最后调用 EcuM_GoDown(),在此之中主要是将完成NvM的写入,以及操作SBC的下电。
SLEEP Phase
在此阶段,不应执行任何代码,但是仍会向ECU提供电源。应该认为这是一种节能状态,以节省能源。ECU能响应有意或无意的唤醒事件。对于意外唤醒事件,EcuM模块提供的协议会忽略意外的唤醒事件。在常规的ECU中,通常不会这个状态。
OFF Phase
当ECU断电时,ECU将进入OFF状态。在此状态下可以通过SBC唤醒。
(0)

相关推荐

  • 170页PPT充分了解AUTOSAR分层软件架构

    AUTOSAR经典平台架构在最高抽象层次上区分了运行在微控制器上的三个软件层:应用程序.运行时环境(RTE)和基础软件(BSW): 应用软件层主要与硬件无关: 软件组件之间的通信和通过RTE访问BSW ...

  • 基于AUTOSAR架构的汽车诊断通信协议桟的开发

    来源:乔美昀 , 韦天文/上汽通用五菱汽车股份有限公司 随着现代汽气车上集成的ECU越来越多,整车网络戒来越复杂.诊断通信作为车载网络中的一个重要功能,开发周期和难度也不断增加.为了提高软件的复用率和 ...

  • OTA 更新 - AP AUTOSAR 平台有哪些优势?

    后台回复"R20-11',获取最新AUTOSAR R20-11标准 在车辆开发中,使用软件实现新功能显然很流行.已经上市的车辆越来越多地采用最新的功能进行改装,例如与自动驾驶相关的功能.与此 ...

  • AutoSar在自动驾驶开发中应用原理(二)

    Aimee 自2002年开始开发以来,AUTOSAR已在汽车行业确立了自己的地位,成为软件基础结构和系统描述的全球标准,具有连续的设计流程和标准的交换格式,供所有参与的开发合作伙伴使用.从2009年推 ...

  • 驾驶域计算平台架构核心软件和底层硬件梳理

    来源:广发证券 随着智能网联汽车的发展,车载传感器的数量日益增加,日趋完善的性能对车载计算平台算力的需求更高.相较于低级别的自动驾驶,高等自动驾驶系统从传感器获取的数据量大大增加,而自动驾驶系统的良好 ...

  • ECU软件的AUTOSAR分层架构

    声明:本文内容及图片由BC-AUTO转载至网络.如果涉及到版权的问题,请联系管理员删除.

  • AutoSar在自动驾驶开发中应用原理

    Aimee 汽车应用软件开发已成为汽车开发过程中最复杂,最关键的活动.AUTOSAR(汽车开放系统架构)为汽车电子控制单元(ECU)开发了标准化的开放软件体系结构,是主机厂.供应商以及工具和半导体供应 ...

  • ECU软件的AUTOSAR分层架构(可领取)

    如需领取原件,在本公众号后台回复关键词"0301"即可获取领取方式. 以下是报告全部内容:

  • 浅析PREEvision中AUTOSAR NM开发

    AUTOSAR Network Management(以下简称:AUTOSAR NM),即"AUTOSAR网络管理",是AUTOSAR体系中的网络管理机制.在AUTOSAR NM中 ...

  • 圈外人看E2E保护

    安全在每个领域都是一个永恒的话题,汽车也不例外,而随着最近几年汽车电动化.智能化和网联化的发展,汽车安全也越来越受到用户及开发人员的重视,安全的要素也是多方面的,例如用户可能关心在使用车机系统时的隐私 ...

  • 一文了解汽车嵌入式AUTOSAR架构|附下载

    AUTOSAR (Automotive Open System Architecture)是一个由丰田.宝马.大众.福特.戴姆勒.通用.博世和 PSA 等汽车巨头在 2003 年成立的的联盟,Auto ...

  • AUTOSAR基础篇之EcuM

    前言 当你看到ECU从启动状态至正常运行状态,再从正常运行状态至休眠或关闭的过程时,你是否曾想过以下一些问题呢? ECU是怎么启动或关闭的呢? ECU启动方式有没有一般规律呢? 按照AUTOSAR标准 ...