控制器子系统软件开发分为应用层软件开发和底层软件开发。底层软件开发是配置主芯片的驱动,包括输入输出驱动,微控制器驱动,通信驱动,存储器驱动等;完成BSW、RTE等相关模块的配置;以及配置相关协议栈(Bootloader、UDS、CCP等)。而应用层软件开发是基于子系统功能需求进行分解的软件功能需求,目前主流都是基于模型的开发。应用层软件开发的需求是由软件需求工程师根据子系统需求进行分解制定的,然后交给软件架构工程师进行架构的制定,架构工程师将建立好的架构模块交给应用层软件开发工程师,进行每个模块代码实现并进行代码的测试,最终交给集成工程师进行集成。软件需求工程师根据子系统需求说明书、软硬件接口文件、变更需求等上一级文件,梳理定义软件需求规范,包括操作系统需求、电源管理策略、传感器读取,执行器控制、信号特性需求、存储服务、通信服务,网络管理、故障诊断、标定、程序升级等功能需求和非功能需求,在整个软件开发过程中是非常关键的岗位,但是目前一般企业会将该工程师岗位交给应用层软件开发工程师,这样带来的问题是工程师通过上一级的文件直接实现代码,后期进行补充文档的工作,造成了文档更新不及时及文档信息与代码不符的现象。同时架构工程师在其中也是处境非常的艰难,经常需要针对软件开发工程师的错误不断调整接口和架构。 子系统软件需求规范模板 变更记录(在软件需求修改、评审、变更的过程中需要记录的一些信息,变更条目,变更时间,变更人等) 文档编制目的 文档的应用范围(车型及平台以及项目名称) 1缩略语和引用文件 1.2缩略语 1.3引用文件(引用的国标(强制标准)、行标、企标(例如网络管理规范,诊断规范,低压电源管理规范等相关的规范)) 2 子系统软件需求 2.1子系统软件功能描述 2.1.1子系统软件功能框图 Application Layer框中将所有的应用层软件功能模块加入到其中。针对VCU,例如扭矩模块、充电管理模块、上下电管理模块、热管理模块等。 2.1.2子系统软件功能模块清单
2.2接口 2.2.1输入接口(硬线输入接口、CAN输入接口)
变量名称的定义:为了代码的清晰易懂,通常变量名采用一些注明的命名规则,主要有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档。
4 诊断需求(软件开发需要实现故障的判断、故障信息的处理、故障信息的记录) 5 网络管理需求 6标定功能需求 7程序刷新与升级要求 8软件安全需求 9 非功能要求
|
|