6.2 开发仿真工程的必要性
一般来说,整车厂的一个项目(包含一个或多个新车型)从开发到成功量产,往往需要2~3年的时间。每个ECU的开发也不是独立的,在不同的开发阶段,各个ECU供应商都需要向整车厂提供该阶段要求的工程样品。对于软件功能稍微复杂一些的ECU,需要按软件开发计划在不同的时间节点提供对应的软件功能。递交的样品能否符合客户的要求,往往需要搭建一个仿真环境验证软硬件的功能,其中相对复杂的一个要求就是模拟与其他ECU之间的通信。
6.2.1 软件开发的V模型
RAD(Rap Application Development,快速应用开发)模型是软件开发过程中的一个重要模型,由于其模型形似字母V,所以又称为软件开发的V模型,如图6.4所示。它通过开发和测试同时进行的方式缩短开发周期,提高开发效率。
图6.4 软件开发的V模型
在V模型中,测试过程被加在开发过程的后半部分,单元测试关注的是检测代码的开发是否符合详细设计的要求。集成测试所关注的是检测此前测试过的各组成部分是否能完好地结合到一起。系统测试所关注的是检测已集成在一起的产品是否符合系统规格说明书的要求,而验收测试则检测产品是否符合最终用户的需求。
现在很多ECU项目的开发过程比V模型复杂得多,一般需要分为A样品、B样品、C样品和D样品。每个样品阶段都需要经历需求分析、概要设计、详细设计、软件编码、单元测试、集成测试、系统测试和验收测试,客户的需求和更改在不停变化,软件的新增功能和成熟度也在不断叠加。
与一些消费类产品相比,车载ECU的软件除了具有一些嵌入式系统的特征,还有一些自己的特殊特征。
(1)安全性:数据存储、通信安全等安全功能需满足相关安全强制要求(如ISO 26262等)。
(2)稳定性:严格的环境测试和机械性能要求。
(3)电源管理:低功耗、电源宽范围和抗干扰等要求。
(4)EMC要求:严格抗干扰和低辐射的要求。
(5)车载网络支持:目前常见CAN、LIN、MOST和以太网等。
6.2.2 仿真工程的必要性
由上面的V模型可以看到每个阶段都需要验证和确认,不管是ECU的开发工程师、测试工程师还是整车厂的工程师都需要搭建自己的测试和验证环境。由于在项目的A样品和B样品阶段,每个供应商生产的样品数量都非常有限,好多功能缺失或不稳定,这样,项目中的每个ECU供应商都无法拿到来自其他供应商的足够多的、功能稳定的真实样品搭建自己的测试环境,以满足对网络环境的完备性要求。
在这个阶段,不管从成本角度还是效率角度考虑,用户都需要一种仿真工具模拟其他ECU模块的功能,这样可以大大加快开发进度,缩短验证周期。在2.3节已经介绍了CANoe在项目开发中的作用,CANoe正是为了满足用户这样的需要。