Autosar CAN开发07(Autosar的Can报文接收超时---Deadline Monitor)

本文详细介绍了AUTOSAR架构下报文接收超时故障的配置步骤和机制,包括I-PDUGroups的配置、超时监测条件及时间设置,以及在Vector工具链中的实现。报文超时故障对于确保汽车节点在关键数据丢失时能正确报告问题至关重要。配置涉及BSWM模块的前置条件设定、COM模块的超时时间配置,并通过RTE层获取超时标志位。开发者需要熟悉这一流程,以便于排查故障。
摘要由CSDN通过智能技术生成

报文接收超时故障的含意

        顾名思义,就是超过了一定的时间没有接收到报文。举个栗子:GW节点按照100ms的周期发出0x137报文,OBC会接收这帧报文。OBC节点规定,当超过10个0x137报文周期(即1000ms)没有接收到这帧报文,OBC就要报0x137报文超时故障。

        至于汽车节点为什么要实现报文接收超时故障这个功能呢?很简单:当我要接收到的这帧报文数据包含的信息对我的工作极其重要,当没接收到这些数据的时候,我就无法下一步工作,因此当报文超时的时候,我就要记录这帧报文的超时故障,以告诉其他人,我没办法工作是因为没接收到这帧报文。

报文超时故障在Autosar架构中的实现

第一步、配置I-PDU Groups:

        当所监测的接收报文有不同的超时监测前置条件时,就需要对报文进行分组。

        比如总共需要对10帧不同ID的接收报文进行超时监测,其中5帧的超时监测前置条件为条件1、另外5帧的超时监测前置条件为条件2。则要对前5帧ID报文配置为一组,另外5帧配置为一组。

第二步、配置报文接收超时监测前置条件:

        报文超时监测是有条件的。比如:

        条件1: 电压处于9V-16V。

        条件2: 处于正常通信状态。

        只有当条件1和条件2都满足时才会进行超时监测(根据不同的需求,有不同的超时监测条件)。在Autosar架构中,报文超时监测的前置条件是在BSWM模块中配置的。

第三步、配置报文接收的超时时间:

         在Autosar架构中,报文接收的超时时间是在COM模块中配置的。当报文超时监测前置条件满足后就会进行超时监测。如,0x137报文配置的超时时间为1000ms,则每接收到1帧该报文就会重置超时计数器为1000ms,若1000ms达到仍未收到该报文,则会将该报文对应的超时故障标志位置1,应用层再RTE层获取该标志位。

        在Autosar标准中,关于报文接收超时时间有两个配置项:

        ComFirstTimeout:

        该配置项的作用为首次超时监测前置条件成立时开始计时的超时时间,若某报文的该配置项配置为ComFirstTimeout = 0ms,则对应报文会从超时监测前置条件成立后到接收到首帧该报文开始监测超时。官方解释如下图。

        ComTimeout: 

        该配置项为首次超时后使用,即触发首次超时后的超时时间为该时间。官方解释如下图。

        

简单流程描述:

        代码不断执行BSWM模块的Action list,判读报文的超时监测条件是否成立,当超时监测前置条件成立后各个被监测报文的超时计数器变量载入ComFirstTimeout时间参数,然后在COM模块进行超时计数器的递减,当接收到报文后再对应报文的超时计数器变量载入ComFirstTimeout时间参数,若超时计数器递减到0后仍然为接收到报文,则将对应报文的超时标志位置位。应用层可通过RTE层不断读取底层的超时标志位。

简单流程图如下:


使用Vector工具链的Configurator配置超时故障


 

 

超时故障的开发还是比较简单的。如果使用Vector工具开发的话,主要难点是在BSWM模块中进行超时故障前置条件的配置。

在开发过程中熟悉这个流程是非常有必要的。比如若出问题“为什么超时故障没有报出来?”。那就要去一步一步查,查是否超时监测前置条件有问题,是否其中哪个条件没有成立(其中有些条件又是通过应用层往地层传的,因此又要与应用层进行对接沟通)。再者查是否FirstTimeout没有配,因此如果没有配置会导致直到接收到第一帧报文才开始监测超时。等等。

没有公司的代码进行截图讲解,直接这样讲起来感觉特别抽象,有空我抽时间写下代码把Autosar架构的超时监测机制写一下就清晰了。


 返回目录:

Autosar BSW 开发笔记(目录)-CSDN博客

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值