乐于分享
好东西不私藏

赤赤老师学堂 |ECU开发过程-软件开发篇二

赤赤老师学堂 |ECU开发过程-软件开发篇二

点击“蓝字”关注我们,开启充能模式~

“赤赤老师学堂”开课啦!关注我们,了解更多汽车整车及零部件的开发知识!

赤赤老师

凯晟首席技术官

上节课我们聊了聊ECU软件开发的前世今生,以及它的开发流程中的第一阶段:需求分析阶段。

如果还未看过第一篇课程内容的同学,可以通过下方的传送通道前往第一篇进行学习:

ECU开发过程-软件开发篇一

赤赤老师

今天我们接着聊聊需求分析之后的几个开发阶段。拿出你的小本本,我们要开始咯!

02

软件架构设计

软件架构设计是平台软件开发的关键设计步骤,设计内容包括软件静态结构、软件动态运行时以及软件配置生成方法。

根据需求确定不同的软件功能模块分层,层次自底向上的划分标准为:

MCU抽象层

主要包括MCU内部驱动模块,可直接访问MCU内核以及外设寄存器,以及通过总线扩展的外部设备,使上层软件与MCU设备不相关。

ECU抽象层

主要包括MCU外部IC设备的驱动程序模块,使上层软件不关心MCU设备或外部IC设备在ECU内的硬件分布。

服务层

主要包括操作系统功能、网络通讯和管理服务、存储服务、诊断服务等。

复杂驱动

主要包括与ECU应用相关的专用驱动程序,可直接访问MCU以及外部IC设备,并直接向应用层提供服务。

接口层

底层软件与应用层软件之间的接口层。

应用层

主要包括ECU应用功能模块。

#存储区域分配

根据需求确定按照存储区域类型进行分配。定义ROM各个区域起始地址、分配空间大小的划分,主要包括以下几个部分:

Boot代码存储区

程序存储区

客户程序存储区

如果应用层软件由外部开发

监控程序存储区

如果有安全监控要求

标定数据存储区

客户匹配数据存储区

如果应用层软件由外部开发

监控匹配数据区

如果有安全监控要求

RAM访问区

客户RAM访问区

如果有安全监控要求

监控RAM访问区

如果有安全监控要求

下线测试数据区

ECU以及车辆信息存储区

其他Non-volatile存储区域

各个存储区域需要考虑到CPU访存速度以及减少由于字对齐造成的存储资源浪费等因素,再细分为各个子区域。

#动态Runtime运行设计

根据需求定义ECU软件runtime的运行模式,主要包括:

初始化模式 

下线检测模式 

软件刷新模式

正常运行模式

After-run模式

Limp-home模式

每个模式下需根据要求再定义周期运行任务。

#软件配置生成方法设计

软件配置生成方法一般包括三个步骤:编译前配置、编译链接、编译后处理。

编译前配置:

系统常数如何配置并生成高级语言代码

软件模块如何配置并生成高级语言代码

编译链接:

模块编译选项

对象和库文件链接选项

编译后处理:

ASAP2文件如何生成

编译后hex文件如何处理

#软件架构评审

软件架构设计人员邀请系统,功能开发及软件开发工程师,进行评审会议:

Step 01

软件架构设计人员介绍整个架构设计的背景以及具体方案

Step 02

讨论组成员对该方案进行提问,在该阶段不需要讨论具体实现过程

Step 03

设计人员针对问题回复设计思路,若有open项,则记录并跟踪open项直至关闭

03

概念开发

概念开发包括概念设计和概念评审。概念设计的目的在于设计或找出能够满足功能需求的全新或已有的可行的技术方案,并在下一阶段概念设计评审中进行方案评估。

输入:

原始客户需求文档

如果有客户原始需求文档

系统需求定义规范

在概念设计方案中以下必须考虑:

需求规范是否已有成熟方案可以借鉴或已经发布的功能代码可以复用

如果技术方案需要论证方案可行性,则需要进行可行性测试

功能架构和输入输出

ECU资源计划

各种运行模式

是否会对其他功能产生影响

如果有几种设计方案,则需要对设计方案进行比较(开发时间、风险等)

当符合以下条件中任何一项时,必须进行相应的概念设计流程:

新的控制功能

已有功能应用到新的平台(相同的CPU,且输出级相同的情况可以不考虑)

系统架构需要改变

对其他功能有影响

用到新的IC或处理器外设功能

用到新的总线系统

新的传感器或执行器

该功能前一次概念设计评审结果为不通过

概念评审的目的是通过讨论的方式检查概念设计是否可以满足功能需求,并分析其对现有系统的影响,同时避免概念的重复开发。

输入:

原始客户需求文档(如果有)

系统需求定义规范

概念设计文档(格式不限)

评审采用会议讨论的方式,邀请对象包括:

概念设计人

两位以上具有软件功能设计经验的工程师

安全监控专家

如果该功能的实现影响到监控功能

相关硬件工程师

如果该功能的实现影响到硬件设计

概念设计评审会会议议程如下:

Step 01

概念设计者介绍功能开发背景以及概念设计方案

Step 02

概念设计讨论组成员对概念设计方案进行提问,在该阶段不需要讨论具体实现过程

Step 03

概念设计讨论组成员对概念设计方案进行提问,在该阶段不需要讨论具体实现过程

待续未完

赤赤学堂往期课程回顾

ECU开发过程-软件开发篇一

赤赤老师

ECU开发过程-系统功能开发篇一

赤赤老师

ECU开发过程-系统功能开发篇二

赤赤老师

ECU开发过程-硬件篇一

赤赤老师

ECU开发过程-硬件篇二

赤赤老师

PROFILE

赤赤老师

凯晟首席技术官

土生土长的西北汉子,在人生的不同阶段分别就读于西安交大和上海交大。在汽车行业从业16年,对汽车行业具有深入了解,拥有丰富的汽车项目开发经验、产品与技术团队管理经验。

赤赤老师学堂作为凯晟公众号的一个子版块,聚焦于汽车整车及零部件的研发,帮助大家对于汽车的整个开发流程有一个基本的了解。