技术文章和通讯

用基于模型的设计开发和测试AUTOSAR软件组件和复杂设备驱动程序

Enric Valencia博士和Joan Albesa博士,IDNEO


AUTOSAR已经是一个事实上的汽车应用软件的设计和实现的工业标准。AUTOSAR开放、标准化的软件体系结构有助于oem和供应商在项目上进行协作,因为大多数应用程序逻辑可以在应用程序层的软件组件(SW-C)中实现,该应用程序层与标准运行时环境(RTE)而不是与ECU硬件(图1)进行接口(图1)。

图1所示。AUTOSAR软件架构。

虽然我们团队参与的一些AUTOSAR项目涉及一组运行在RTE之上的SW-C,但其他项目需要通过在RTE下运行的复杂设备驱动程序(CDD)更直接地访问ECU微控制器。CDD开发在历史上一直是一个更大的工程挑战,因为CDD代码不仅必须与RTE交互,还必须与RTE下的基本软件(BSW)交互。

我们在SW-C开发中使用基于模型的设计已经有一段时间了。基于模型的设计支持一个完善和成熟的工作金宝app流,其中使用AUTOSAR创作工具生成的软件组件描述ARXML文件来创建初始的Simulink金宝app®设计的表现。我们最近与MathWorks Consulting Services合作,将我们在这一领域的能力扩展到CDD开发。现在,我们不再手工编码CDD软件,而是对SW-C和CDD使用基于模型的设计。

对这两种类型的AUTOSAR软件使用相同的工作流和工具集,不仅降低了成本、培训时间和维护开销,还使我们能够轻松地在SW-C和CDD团队之间转移工程师。更重要的是,通过对所有AUTOSAR项目使用基于模型的设计,我们至少减少了50%的开发时间,同时增加了在设计阶段早期识别的缺陷数量,并减少了在硬件测试和其他方面发现的缺陷数量。

自顶向下的组件设计方法

使用我们的AUTOSAR创作工具DaVinci Developer,我们定义软件组件体系结构和接口,然后导出软件组件描述ARXML文件。按照自顶向下的方法,我们将这些文件导入到Simulink中,以创建一个框架模型,其中所有接口的设置都与我们在DaVi金宝appnci Developer中定义的完全一样。

我们使用这个框架模型作为在statflow中建模和模拟应用程序控制逻辑的基础®(图2)我们将Simulink模型中的元素链接到IBM管理的相关需求金宝app®理性的®®.以这种方式建立可追溯性支持了对认证的影响分析和文件编制活动。金宝app

图2。上图:骨架模型。底部:完成模型。

代码生成与验证

在运行模拟以检查我们的初始设计之后,我们进行正式的测试。在过去,MATLAB®脚本作为我们对AUTOSAR项目的验证套件。虽然这个内部框架工作得很好,但它需要大量的工作来开发和维护。在Math金宝appWorks顾问的支持下,我们评估了Simulink Test™作为一种替代方案。金宝app我们发现Simulink T金宝appest提供了与我们的MATLAB脚本相同的测试功能,同时消除了维护负担。

我们现在使用Simul金宝appink Test来定义测试套件和测试用例,以及自动生成测试工具(图3)。我们主要运行基线测试,在其中比较模拟输出和预期输出。尽管如此,为了进一步验证,还进行了模型在环软件(SIL)版本的等价测试。

图3。用Simulink test生成的样本测试工具。金宝app

根据基于模拟的测试,我们生成MISRA®-兼容的C代码从我们的模型与嵌入式编码器®.生成的代码可以在我们的目标Renesas上使用®微控制器,不需要任何后处理。作为验证过程的一部分,我们收集代码度量,并使用Polyspace检查除零、溢出和其他运行时错误®静态代码分析工具。

更短的开发时间,更好的质量和其他优势

我们在AUTOSAR CDDs和sw - c的开发中使用基于模型的设计,在影响IDNEO业务机会的领域取得了显著的改善。其中一个领域就是客户协作。当我们的客户使用Simulink时,我们可以直金宝app接使用他们的模型,这消除了自然语言需求中固有的模糊性,并可以将开发时间缩短一半。此外,有了使用基于模型的设计而不是手工编码开发CDD的能力,我们就有了更大的灵活性来满足客户的需求,因为我们可以根据具体的用例,使用SW-C、CDD或两者实现特性。

有时,客户向我们提供他们开发的AUTOSAR组件,并要求我们将其集成到一个更大的系统中,潜在地与其他第三方组件集成。在这些情况下,我们使用组件接口的ARXML定义来简化集成过程,将开发时间减少多达70%。

与我们没有使用AUTOSAR和基于模型的设计的过去类似范围的项目相比,我们现在的上市时间要短得多,在某些情况下,从一年到六个月。此外,我们能够更早地检测错误,使我们能够在设计阶段而不是在硬件测试中发现和修复大约80%的错误。

我们正在寻求改进基于模型的设计工作流,并通过采用持续集成和持续交付实践变得更加敏捷。通过将Polyspace整合到Jenkins持续集成(CI)管道中,我们已经在这个方向上取得了进展。我们还计划在不久的将来将来自Simulink test的测试套件集成到Jenkins 金宝appCI管道中。

2018年出版的

查看相关行业的文章