autosar 设置DEM故障例子
时间: 2023-08-24 13:06:09 浏览: 53
以下是一个简单的 DEM故障设置例子:
假设我们有一个名为“EngineOilPressure”的传感器,它测量发动机油压力。如果发动机油压力低于一定阈值,我们希望设置一个DEM故障。
首先,我们需要在我们的ECU软件中定义一个“EngineOilPressure”信号。这可以通过AUTOSAR的System Description Language(ASD)来完成。例如,我们可以定义如下:
```
<AR-PACKAGE>
<SHORT-NAME>MyECU</SHORT-NAME>
<ELEMENTS>
<DATA-TYPE>
<SHORT-NAME>EngineOilPressure</SHORT-NAME>
<BASE-TYPE>INTEGER</BASE-TYPE>
<MINIMUM>-100</MINIMUM>
<MAXIMUM>100</MAXIMUM>
<UNIT>s</UNIT>
</DATA-TYPE>
</ELEMENTS>
</AR-PACKAGE>
```
然后,我们需要在我们的ECU软件中定义一个DEM故障。这可以通过AUTOSAR的Diagnostic Event Manager(DEM)模块来完成。我们需要定义一个名为“EngineOilPressureLow”的DEM事件,它与我们的“EngineOilPressure”信号相关联。例如,我们可以定义如下:
```
<AR-PACKAGE>
<SHORT-NAME>MyECU</SHORT-NAME>
<ELEMENTS>
<ECUC-MODULE-CONFIGURATION>
<SHORT-NAME>Dem</SHORT-NAME>
<PARAMETER-VALUES>
<PARAMETER-VALUE>
<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/Dem/DemEventParameter/DemEventParameter_0</DEFINITION-REF>
<VALUE>EngineOilPressureLow</VALUE>
</PARAMETER-VALUE>
</PARAMETER-VALUES>
</ECUC-MODULE-CONFIGURATION>
</ELEMENTS>
</AR-PACKAGE>
```
最后,我们需要在我们的ECU软件中定义一个监视“EngineOilPressure”信号的任务。这可以通过AUTOSAR的Operating System(OS)模块来完成。我们需要定义一个名为“EngineOilPressureMonitor”的任务,它会定期读取“EngineOilPressure”信号并检查其值是否低于阈值。如果是,则设置“EngineOilPressureLow”DEM事件。例如,我们可以定义如下:
```
<AR-PACKAGE>
<SHORT-NAME>MyECU</SHORT-NAME>
<ELEMENTS>
<ECUC-MODULE-CONFIGURATION>
<SHORT-NAME>Os</SHORT-NAME>
<PARAMETER-VALUES>
<PARAMETER-VALUE>
<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/Os/OsTask/OsTask_0/OsTaskActivation/OsTaskActivation_0/OsTaskSchedule/OsTaskSchedule_0</DEFINITION-REF>
<VALUE>EngineOilPressureMonitor</VALUE>
</PARAMETER-VALUE>
</PARAMETER-VALUES>
</ECUC-MODULE-CONFIGURATION>
</ELEMENTS>
</AR-PACKAGE>
```
通过以上步骤,我们就完成了一个简单的DEM故障设置。当发动机油压力低于阈值时,系统会自动设置一个“EngineOilPressureLow”DEM事件,以便通知系统管理员或其他相关人员进行必要的修复工作。