主要内容

模拟AutoSAR基本软件服务和运行时环境

通过使用参考实现模拟AutoSAR组件对基本软件内存和诊断服务的调用。

配置对AUTOSAR基本软件服务的调用

AUTOSAR标准定义了在AUTOSAR运行时环境中运行的基本软件(BSW)服务。这些服务包括NVRAM管理器(NvM)诊断事件管理器(Dem)和功能抑制管理器(FiM)。在AUTOSAR运行时环境中,AUTOSAR软件组件通常使用客户端-服务器或发送方-接收方通信访问BSW服务。

在AutoSAR软件组件模型中,实现对NVM,DEM和FIM服务接口的客户端调用,拖放预配置的NVM,DEM和FIM来电显示。每个块都有预先填充参数,例如客户端端口名称操作.您可以配置块参数,例如,选择要调用的服务操作。要在AutoSAR软件组件中配置添加的呼叫者块,请同步模型。该软件创建AutoSAR客户端 - 服务接口,操作和端口,并将每个Simulink函数调用映射到AutoSAR客户端端口和操作。万博1manbetx有关更多信息,请参阅配置调用AutoSAR NVRAM Manager服务配置对AutoSar Diageostic Event Manager服务的调用,配置对AUTOSAR功能抑制管理器服务的调用

这是一个节气门位置集成模型,它集成了两个节气门位置传感器组件和一个节气门位置监视器组件。传感器组件采用原始节气门位置传感器(TPS)值,并将其转换为TPS百分比值。监测组件根据主、副传感器组件提供的TPS百分比值,决定通过哪个TPS信号。传感器组件调用BSW NvM和Dem服务,监控组件调用BSW Dem服务。

open_system (“autosar_bsw_presim”);

传感器组件autosar_bsw_sensor1autosar_bsw_sensor2每个都包含初始化功能块,调用NVM服务接口NvMService.调用使用Basic Software库块实现nvmserviceCaller..每个块都配置为调用NvMService运作ReadBlock.当ReadBlock呼叫使用客户端端口S1LowsetPoint.S2LowsetPoint..这是初始化功能块autosar_bsw_sensor1

的NvMServiceCaller块对话框ReadBlock呼叫初始化功能块。有关更多信息,请参阅nvmserviceCaller.

传感器组件autosar_bsw_sensor1autosar_bsw_sensor2每个都包含两个调用DEM服务接口诊断监测.两个调用都是使用基本软件库块实现的诊断MonitorCaller..每个块都配置为调用诊断监测运作SetEventStatus.当SetEventStatus呼叫使用客户端端口S1Stucklow.s1施高S2StuckLow,S2StuckHigh

的diagnostics monitorcaller块对话框StuckLow调用第一个传感器组件。有关更多信息,请参阅诊断MonitorCaller.

监控组件autosar_bsw_monitor包含对DEM服务接口的调用诊断监测以及对Dem服务接口的四个调用DiagnosticInfo.

  • 如在传感器组件中,a诊断MonitorCaller.块实施诊断监测,并配置为呼叫SetEventStatus操作。客户端端口名称为TPS

  • DiagnosticInfo.调用使用Basic Software库块实现DiagnosticInfoCaller.每个块都配置为调用DiagnosticInfo.运作GetEventFailed.当GetEventFailed呼叫使用客户端端口TPS1StuckLowTPS1StuckHighTPS2STUCKLOW.,tps2stuckhigh.

这是DiagnosticinfoCaller的块对话框TPS1StuckLow打电话。有关更多信息,请参阅DiagnosticInfoCaller

如果你有Simulink万博1manbetx Coder和Embedded Coder软件,你可以为NvM和Dem服务调用生成C代码并导出ARXML描述。打开并构建每个组件模型。例如,构建模型autosar_bsw_monitor,打开模型。pressCtrl + B或输入MATLAB命令slbuild(“autosar_bsw_monitor”)

要查看模型构建的结果,请检查代码生成报告。

配置AutoSAR基本软件服务的参考实现进行仿真

要模拟调用BSW服务的AUTOSAR组件模型,请创建包含组合、系统或利用模型。在该包含模型中,提供组件调用的NvM、Dem和FiM服务操作的参考实现。

AutoSAR基本软件块库包括一个NVRAM服务组件块和一个诊断服务组件块。这些块提供了NvM、Dem和FiM服务操作的参考实现。为了支万博1manbetx持对NvM、Dem和FiM服务的组件调用的模拟,需要在包含模型中包含块。你可以用以下两种方式插入代码块:

  • 通过创建Simulink测试线束模型自动插入块万博1manbetx

  • 手动将块插入包含的组合,系统或线束模型

要为调用BSW NvM、Dem和FiM服务的模型自动插入服务组件块,请打开模型(或包含模型)并创建Simulink Test测试工具(需要Simulink Test)。万博1manbetx在应用程序选项卡,单击万博1manbetxSimulink测试.然后,在测试选项卡,单击添加测试线束.在“创建测试工具”对话框中,单击好吧.该软件编译模型,添加NVRAM和诊断服务组件块,并创建模拟所需的端口和其他元素。例如,这是为节气门位置集成模型创建的测试线束。

要在本例中为NvM和Dem服务调用手动插入服务组件块,请打开集成模型。使用库浏览器或add_block.命令,或通过在模型窗口中键入块名称,将nvram和诊断服务组件块添加到模型。

open_system (“autosar_bsw_presim”);add_block('autosarlibnvm / nvram服务组件'“autosar_bsw_presim / NVRAM服务组件”);add_block(“autosarlibdem /诊断服务组件”'autosar_bsw_presim /诊断服务组件');set_param(“autosar_bsw_presim”'simulationcommand'“更新”);

NVRAM服务组件块具有预先填充的参数,包括运行时环境(RTE)参数和NVRAM属性参数。检查参数设置,并根据您使用NVM服务操作的方式进行修改,考虑是否有任何修改。有关更多信息,请参阅NVRAM服务组件

RTE选项卡表列出了组件客户端端口及其映射到NVM服务块ID。表中的每一行表示从基本软件调用者块进入NVM服务。在相同的NVM块上采用的调用通常使用相同的块ID。此示例映射NVMReadBlock客户端端口到不同的块ID。

诊断服务组件块具有预先填充的参数,包括RTE参数和DEM基于依据的脱髓参数。根据使用Dem服务操作的方式,检查参数设置并考虑是否需要修改。

基于依据的脱髓参数控制Dem服务参考实现提供的基于计数器的跳出算法。在多次模拟运行期间,您可以调优事件步长和阈值参数并观察效果。有关更多信息,请参阅诊断服务组件

RTE选项卡表列出了组件客户端端口及其映射到DEM或FIM服务ID(在此示例中,事件ID)。表中的每一行表示从基本软件调用者块中的DEM服务调用。采用同一事件的调用通常使用相同的事件ID。此示例映射DEMSetEventStatus客户端端口到不同的事件id,然后映射DemGetEventFailed客户端端口与共享的事件IDSetEventStatus港口。例如,SetEventStatus港口s1施高getfailedevent.港口TPS1StuckHigh分享事件ID 1;S1Stucklow.TPS1StuckLow分享事件ID 2;等等。

模拟呼叫AutoSAR NVM和DEM服务

在集成模型中配置NVRAM和诊断服务组件块后,模拟模型。仿真在节气门位置传感器和监视器组件模型中练习AutoSAR NVM和DEM服务呼叫。

open_system (“autosar_bsw_simulation”);SimoutIntegration = SIM(“autosar_bsw_simulation”);

相关链接