Autosar Diagnostic中DTC存储的时域数据

时间:2017-05-30 06:39:33

标签: embedded system.diagnostics autosar

Autosar Diagnostic通过采用UDS标准(ISO 14229)实施。 据此,一旦记录了DTC,就会按照UDS存储快照数据。快照数据是通过Autosar Dem Module中的冻结帧数据概念实现的。

但我希望保存一些关于DTC的更多信息,包括快照数据。我想存储要在3秒之前存储的数据以及在以400毫秒的采样确认DTC的1秒之后存储的数据。因此,每当DTC被锁定时,我需要存储10个数据样本。

我想在Autosar Diagnostic中实现此时域数据。我能这样做吗?如果是的话,怎么样? 感谢。

2 个答案:

答案 0 :(得分:1)

我们有一个客户想要拥有几乎相同的15个FreezeFrames,12个失败之前,一个失败,两个之后,有类似的cyle。我们使用循环更新的ringbuffer。我们使用Dem的一个标注(DemCallbackEventStatusChanged()或DemCallbackDTCStatusChanged())来停止环形缓冲并再计数两次。记录后,我们将它们存储在一个额外的NvM块中。您可能有几个这样的NvM块,并将该数字链接到DemEvent(FF数据?)。例如。 NvM Block可以是NVM_DATASET,因此您可以使用索引。读出DTC时,查找赋值并读出NvM DataSet索引。

否则,您可能会找到StorageConditions的方法,首先在首次报告时禁用它们,并在冻结帧完成后启用它们?

我不知道Dem功能是否可以直接支持。

答案 1 :(得分:0)

我真的不明白你的问题在哪里。 如您所述,快照数据与DTC一起存储。您可以定义引用DID的快照数据的内容。因此,您需要定义一个新的(内部)DID(在Dcm中),您可以在其中提供时域数据,并将Dem中的DID添加到快照数据(冻结帧)。