必须得会的汽车 ECU 研发基础 --ECU 软件架构概览 3
汽车 ECU 软件的完整开发包括应用层软件和底层软件。应用层软件主要是对于被控对象的控制,比如控制发动机在不同工况下应该喷多少油,进多少气;或者控制变速箱在什么油门什么车速去换挡,怎么去控制离合器和同步器实现换挡,亦或者控制电机多少转速,多少扭矩。而底层软件是对于微控制器的编程,比如用代码实现设备驱动(如何配置寄存器),协议栈(如何配置 CAN 通道寄存器),电子器件或硬件电路的诊断等等。
基于当下流行的 AUTOSAR 架构,底层软件与应用层软件的关系如下所示,通过 RTE 连接底层软件和应用层软件,RTE 使得两者相互独立解耦。
1 底层软件
对于底层软件来说,主要分为几个抽象层:服务层,ECU 抽象层,微控制器抽象层和复杂驱动。这样做的目的:一方面实现底层软件的解耦,模块化,可重用等特点,另一方面通过复杂驱动来实现特殊化的需求,保持一定的灵活性,以此来满足一套代码可适用多个项目,加快研发进程,降低研发成本。
再根据底层软件功能,合理地拆分到不同抽象层,这样每个抽象层都有不同的功能模块。
以通讯功能为例,比如 CAN 通讯,CAN 驱动在微控制器抽象层,配置 CAN 通讯相关的寄存器(传输速率相关,CAN 数据帧的 ID, 长度,数据等);CAN 交互在 ECU 抽象层,与上层的功能模块交互,像把 CAN 报文信息传输给上层的 UDS,或 XCP,或 CAN 相关的模块;COM 层在服务层,进一步处理传输数据和传输特性。
2 应用层软件
以上基于 AUTOSAR 的底层软件架构,而对于应用层来说,其架构主要基于被控对象来考虑,除了最基本的输入和输出,那么肯定需要控制被控对象的执行器,比如电机,而怎么去控制电机,那么肯定需要考虑各种因素,制定清晰的逻辑关系或控制算法。所以从方法论上来说,应用层软件架构的基本框架:输入-->设定控制目标-->执行器控制-->输出-->RTE,当然精髓在设定控制目标和执行器控制,因为这两块既需要考虑实际应用工况,还需要考虑零部件本身的特性。
OK! 以上就是 ECU 软件架构的简单概览。
作者:Z-ONE_90490814141
文章来源:上汽零束 SOA 开发者论坛
原文链接:https://bbs.z-onesoft.com/omp/community/front/api/page/mainTz?articleId=7542
评论