技术文章和新闻稿

通过快速成型和基于模型的设计加速传感器开发

作者:Martin Hein, Hella Fahrzeugkomponenten GmbH


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

我们可以在几个月内生产一个包含最终产品80%功能的a样件,而不是等待长达两年的ASIC实现。A-sample使我们能够在开发的早期与客户合作,完善传感器的功能,评估代码大小、模块划分和硬件需求。测试组使用a -sample来设置测试环境和测试套件,以便一旦生产样品(实现为ASIC或微处理器)准备好,测试就可以开始。

创建灵活的原型环境

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

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

从需求到设计

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

图1. Simuli万博1manbetxnk系统模型。

我们使用Sim万博1manbetxulink验证和验证™(在R2017B转换)将DOORS中的需求映射到模型的元素,从而实现需求的双向跟踪。

创建我们的模型时,我们使用Model Advisor来确保我们遵守MathWorks汽车咨询板(MAAB)算法建模指南。我们还包括基于地狱内部开发的指南的模型顾问检查。

为了对初始浮点设计进行早期功能验证,我们在Simulink中运行仿真,使用从类似传感器收集的或用Simulink块生成的测试数据来刺激模型。万博1manbetx在这些环中模型测试之后,我们检查用Simulink Verification和Validation创建的模型覆盖率报告,以识别模型中未测试的元素,并根据需要更新测试以增加覆盖率万博1manbetx。

在准备用于在快速原型平台上进行测试时,我们模拟通信接口,使传感器算法能够在车辆中运行。使用MathWorks顾问,我们开发了一个用于Simulink的本地互连网络(LIN)块集,它使我们能够扩展原型化系统的功能以支持LIN。万博1manbetx万博1manbetx

从模型到原型

在对模型进行内部设计审查后,我们将设计转移到HFK RCP单元(图2)。HFK RCP支持广泛的设计配置,包括TI的C2000标准组件集万博1manbetx微处理器,Xilinx®FPGA,以及汽车总线和传感器的连接器,以及用于离散电子元件的区域。

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

对于针对微处理器的设计,我们使用嵌入式编码器要从Simulink模型生成代码,并将其部署到HFK万博1manbetx RCP单元上的TI C2000处理器。如果所有或部分设计都需要FPGA,我们使用HDL编码器从模型生成VHDL代码以在Xilinx FPGA上部署。

从原型到生产

一旦我们使用HFK RCP单元验证了概念验证A样本,我们就准备了串联处理器的设计。我们使用固定点设计师的固定点顾问将浮点模型转换为初始的定点设计。Fixed-Point Advisor使我们能够优化代码大小、内存占用和定点扩展。然后,我们重新检查是否符合建模指导方针,并重新运行我们的模拟,使用Simulink Verification和Validation来生成模型覆盖率和圈复杂度度量信息。万博1manbetx我们比较浮点和定点模型的结果,以确保在转换期间没有引入错误。

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

对于SIL测试,我们使用Simulink Cod万博1manbetxer从我们的Simulink模型中的传感器算法组件生成C代码。万博1manbetx然后,我们用包含生成的C代码的s -函数替换模型中的这些组件,并重新运行模拟。我们再次将结果与早期的测试结果进行比较,这次是为了验证软件实现。

我们最近与MathWorks顾问合作,他们为78K系列微控制器开发了一个嵌入式编码器目标,使PIL测试在我们的瑞萨®78K微控制器。我们现在可以使用嵌入式编码器来生成代码,我们部署到设备以进行PIL和车载测试。

从原型到生产的路径取决于原型是如何实现的。如果我们使用HDL Coder为FPGA生成VHDL,则我们将设计和生成的VHDL交给外部合作伙伴,后者将基于原型生成ASIC。因为我们已经彻底验证了模型及其HDL实现,我们的asic需要更少的迭代,这除了降低成本之外,实际上消除了项目延迟。

然而,如果我们为原型设计一个微控制器,我们将继续在海拉内部生产。我们使用嵌入式编码器从定点Simulink模型生成ANSI C代码,并针对生产微控制器。万博1manbetx生成的代码在Hella中经过严格的测试过程,包括集成测试和使用Polyspace Client进行静态分析对于C / C ++和PolySpace服务器对于C / C ++。然后使用IBM Rational Rhapsody完成ANSI C代码进入目标的最终集成®(C / c++)。

通过调整代码生成设置以及既定建立的建模指南,我们可以生成比等效手写代码更紧凑的生产代码。通过重新使用我们的原型模型来生产代码生成,我们将开发时间减少约60%。此外,通过基于模型的设计和HFK RCP单元,我们可以在开发的早期运行测试,这使我们能够验证需求并验证比以前可能的设计决策。

发布2013年 - 92092V00