控制器子系统软件开发分为应用层软件开发和底层软件开发。底层软件开发是配置主芯片的驱动,包括输入输出驱动,微控制器驱动,通信驱动,存储器驱动等;完成BSW、RTE等相关模块的配置;以及配置相关协议栈(Bootloader、UDS、CCP等)。而应用层软件开发是基于子系统功能需求进行分解的软件功能需求,目前主流都是基于模型的开发。应用层软件开发的需求是由软件需求工程师根据子系统需求进行分解制定的,然后交给软件架构工程师进行架构的制定,架构工程师将建立好的架构模块交给应用层软件开发工程师,进行每个模块代码实现并进行代码的测试,最终交给集成工程师进行集成。软件需求工程师根据子系统需求说明书、软硬件接口文件、变更需求等上一级文件,梳理定义软件需求规范,包括操作系统需求、电源管理策略、传感器读取,执行器控制、信号特性需求、存储服务、通信服务,网络管理、故障诊断、标定、程序升级等功能需求和非功能需求,在整个软件开发过程中是非常关键的岗位,但是目前一般企业会将该工程师岗位交给应用层软件开发工程师,这样带来的问题是工程师通过上一级的文件直接实现代码,后期进行补充文档的工作,造成了文档更新不及时及文档信息与代码不符的现象。同时架构工程师在其中也是处境非常的艰难,经常需要针对软件开发工程师的错误不断调整接口和架构。
子系统软件需求规范模板
变更记录(在软件需求修改、评审、变更的过程中需要记录的一些信息,变更条目,变更时间,变更人等)
文档编制目的
文档的应用范围(车型及平台以及项目名称)
1缩略语和引用文件
1.2缩略语
1.3引用文件(引用的国标(强制标准)、行标、企标(例如网络管理规范,诊断规范,低压电源管理规范等相关的规范))
2 子系统软件需求
2.1子系统软件功能描述
2.1.1子系统软件功能框图
Application Layer框中将所有的应用层软件功能模块加入到其中。针对VCU,例如扭矩模块、充电管理模块、上下电管理模块、热管理模块等。
2.1.2子系统软件功能模块清单
序号 | 子系统功能 | 软件模块 |
SF1 | 扭矩控制 | 扭矩输入处理 |
扭矩决策 | ||
扭矩输出 | ||
SF2 | 上下电功能 | 低压上电 |
低压下电 | ||
高压上电 | ||
高压下电 |
2.2接口
2.2.1输入接口(硬线输入接口、CAN输入接口)
序号 | 变量名称 | 变量类型 | 初始值 | 变量存储类型 | 变量范围 | 输入输出 | …… |
1 | U32 | 0 | Local | [-2000,2000] | CAN_Output |
变量名称的定义:为了代码的清晰易懂,通常变量名采用一些注明的命名规则,主要有Camel标记法(驼峰标记法)、Pascal标记法、和匈牙利标记法。
2.2.2输出接口(硬线输出接口、CAN输出接口)
3 软件需求(以档位控制功能为例)
3.1软件模块1(如档位控制功能)
3.1.1软件模块1简述
针对输入的信号进行处理及诊断,实现档位的控制逻辑,并输出最终的档位请求信号。
3.1.2软件模块框图
3.1.3软件需求描述(系统需求的描述可以采用文字、表格、公式、状态图、流程图、时序图等多种方式进行描述。)
XXX(车型)_VCU_GSM_SSR_0001: VCU需满足以下条件(跳转条件4),才允许驾驶员从N档位换入D档。
- 低压蓄电池(XXX_X_LVBattery = 1) 在有效范围内(比如9~16V);
- 驾驶员系安全带(XXX_X_SafetyBelt = 1);
- 驾驶员踩下制动踏板(XXX_X_BrakePedalFlag = 1) ;
- 整车系统状态处于可行使状态(XXX_X_VehSts = 3) ;
- 驾驶员的档位请求为D档(XXX_X_GSMReq= 3) ;
- 整车车速(XXX_X_VehSpd < 2) 小于2km/h;
4 诊断需求(软件开发需要实现故障的判断、故障信息的处理、故障信息的记录)
5 网络管理需求
6标定功能需求
7程序刷新与升级要求
8软件安全需求
9 非功能要求
- CPU负载率要求
- RAM/ROM的使用率要求
- 传感器质量要求
- 执行器质量要求
- ……
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。