快速原型设计和基于模型设计的传感器开发

由Martin Hein,Hella Fahrzeugkomponenten GmbH


在汽车制造商购买新的传感器系统之前,他们希望看到传感器在汽车环境中工作的实时原型,以便评估其性能,并可能修改其规格。例如,我们经常需要演示传感器的早期版本,该版本通常包含在FPGA或微处理器上实现的算法和逻辑。为了满足这一需求,我们使用定制的快速控制原型平台和基于模型的设计来在开发过程的早期构建新设计的实时原型。实时原型(在Hella称为a -sample)在整个开发过程中既是概念的证明,也是一个活生生的规范。

无需等待ASIC实现,而不是等待两年,我们可以生产一个用于几个月内包含最终产品功能的80%的样本。A-Sample使我们能够在开发的早期与客户合作,以​​优化传感器的功能,并评估模块大小,分区模块和硬件要求。测试组使用A-Sample设置测试环境和测试套件,以便在生产样本中实现的测试可以启动,以便为ASIC或微处理器。

创建灵活的原型环境

我们建造了Hella Fahrzeugkomponenten GmbH快速控制原型(HFK RCP)单元,因为商业上可用的替代方案缺乏我们所需的灵活性。大多数现成的原型设计系统仅支持ECU软件开发,但传感器设计也可能包括VHDL金宝app®代码和离散电子元件。商业系统的第二个限制是它提供的固定接口组。在Hella,我们必须支持各种通信金宝app协议和接口硬件,包括SPI,我2C,Lin,XCP,可以和发送。

通过基于模型的设计和我们的自定义原型设计,我们可以根据需要添加新的接口,协议和功能。我们可以在我们开发规格时针对微处理器和FPGA来瞄准并使用原型化环境扩展或增强我们已经在生产处理器上实现的算法。

从需求到设计

我们的开发过程,遵循V模型,包括五个主要步骤:要求分析,算法设计,生产代码生成,代码验证和测试。在需求分析阶段,我们与客户合作,在IBM中定义系统要求®合理的®®。然后,我们在Simulink中创建了一个设计的初始模型金宝app®(图1)。

图1所示。金宝app仿真软件系统模型。

我们使用Sim金宝appulink验证和验证™(在R2017b转换)将门的要求映射到模型的元素,从而实现了要求的双向可追溯性。

在创建模型时,我们使用model Advisor来确保遵守MathWorks Automotive Advisory Board (MAAB)算法建模指南。我们还包括基于Hella内部制定的指导方针的模型顾问检查。

对于初始浮点设计的早期功能验证,我们在Simulink中运行模拟,刺激从类似传感器收集的测试数据或用Simulink块生成的测试数据。金宝app在这些型号循环测试之后,我们检查使用Simulink验证和验证创建的模型覆盖报告,以识别模型中未测试的元素,根据需要更新测试以增加覆盖范围。金宝app

为了准备在快速原型平台上进行测试,我们对通信接口进行了建模,使传感器算法能够在车辆中运行。我们与MathWorks顾问合作,为Simulink开发了一个本地互连网络(LIN)模块集,这使我们能够扩展原型系统的功能,以支持LIN。金宝app金宝app

从模型到原型

在模型的内部设计审查后,我们将设计移动到HFK RCP单元中(图2)。HFK RCP支金宝app持广泛的设计配置,具有标准化的组件,包括TI的C2000微处理器,Xilinx®以及用于汽车总线和传感器的连接器,以及用于分立电子元件的区域。

图2。海拉工作流使用HFK RCP单元和基于模型的设计。

针对微处理器的设计,我们使用嵌入式编码器从我们的Simulink模型生成代码,并将其部署到H金宝appFK RCP单元上的TI C2000处理器上。如果全部或部分设计需要FPGA,我们使用HDL编码器从模型生成VHDL代码,以便部署在Xilinx FPGA上。

从原型到生产

一旦我们使用HFK RCP单元验证了概念验证a样例,我们就准备在系列处理器上实现设计。我们在定点设计器中使用定点顾问将我们的浮点模型转换为初始定点设计。Fixed-point Advisor使我们能够优化代码大小,内存占用和固定点缩放。然后,我们使用Simulink验证和验证来重新协商符合建模指南并重新运行我们的模拟,以生成模型覆盖范围和循环复杂度指标信息。金宝app我们将浮点和定点模型的结果进行比较,以确保在转换期间没有引入错误。

我们使用软件循环(SIL)测试来验证C和处理器内(PIL)测试中的算法的实现,以验证实时硬件上的算法。通过这种方式,我们确保在不引入错误的情况下实现我们已经验证的模型。

对于SIL测试,我们使用Simulink编码器金宝app从Simulink模型中的传感器算法组件生成C代码。金宝app然后,我们用包含生成的C代码的S函数替换模型中的这些组件,并重新运行模拟。再次使用早期的测试结果进行比较结果,这次验证软件实现。

我们最近与Mathworks顾问合作,为78K家族的微控制器开发了一个嵌入式编码器目标,以便在我们的renesas上启用PIL测试®78 k单片机。我们现在可以使用Embedded Coder生成代码,我们部署到设备上进行PIL和车内测试。

原型到生产的路径根据原型的实施方式而异。如果我们使用HDL编码器为FPGA生成VHDL,我们将我们的设计和生成的VHDL交给外部合作伙伴,该伙伴基于原型生成ASIC。由于我们彻底验证了该模型及其HDL实现,因此我们的ASIC需要较少的迭代,除降低成本之外,实际上还消除了项目延迟。

但是,如果我们针对原型的微控制器,我们继续在Hella内生产。我们使用嵌入式编码器从固定点Simulink模型生成ANSI C代码,并针对生产微控制器。金宝app生成的代码在Hella中经历了严格的测试过程,包括使用PolySpace客户端的集成测试和静态分析用于C/ c++和Polyspace ServerC / c++。然后使用IBM Rational Rhapsody将ANSI C代码最终集成到目标中®(C / C ++)。

通过调优代码生成设置并遵循已建立的建模准则,我们可以生成比等效的手写代码更紧凑的产品代码。通过重用我们的原型模型来生成产品代码,我们已经减少了大约60%的开发时间。此外,通过基于模型的设计和HFK RCP单元,我们可以在开发早期运行测试,这使我们能够比以前提前几个月验证需求和验证设计决策。

发布于2013 - 92092v00