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

作者:马丁·海因,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、I2.C、 LIN、XCP、CAN和SENT。

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

从需求到设计

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

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

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

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

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

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

从模型到原型

在对模型进行内部设计审查后,我们将设计移入HFK RCP装置(图2)。HFK RCP通过一组标准化组件(包括TI的C2000)支持广泛的设计配置金宝app微处理器,一个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 Cod金宝apper从Simulink模型中的传感器算法组件生成C代码。然后,我们用包含生成的C代码的S函数替换模型中的这些组件,然后重新运行模拟金宝app。我们再次将结果与之前的测试结果进行比较,这一次是为了验证软件实现。

我们最近与MathWorks咨询公司合作,他们为78K系列微控制器开发了嵌入式编码器目标,以便在我们的Renesas上进行PIL测试®78 k单片机。我们现在可以使用Embedded Coder生成代码,我们部署到设备上进行PIL和车内测试。

从原型到生产的路径因原型的实现方式而异。如果我们使用HDL编码器为FPGA生成VHDL,我们会将设计和生成的VHDL交给外部合作伙伴,后者会根据原型生成ASIC。因为我们已经彻底验证了模型及其HDL实现,所以我们的ASIC需要的迭代次数要少得多,这除了降低成本之外,实际上还消除了项目延迟。

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

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

发布于2013 - 92092v00