AUTOSAR COM学习(二)

接上一篇内容,本篇继续讨论COM模块相关功能和机制。

  • 更新位(Update-Bits)

当多个信号/信号组位于同一个I-PDU内,并且该I-PDU的发送周期比信号/信号组的更新周期更快时,Update bit提供了一种机制,让接收方可以识别到数据是否被主动更新过。基于此目的,当配置了ComTxModeNumberOfRepetitions参数(不为0),则不允许启用Update-bits功能。

更新位主要用来标识发送方有没有更新过信号/信号组,每个信号/信号组最多可以设置一个Update-bit,通过配置参数ComUpdateBitPosition来指定在I-PDU中的位置。Update-bit对上层不可见,所有操作由COM模块内部处理。

如果启用了Update-Bits功能,对于发送方来说,当调用Com_SendSignal或Com_SendSignalGroup时,COM模块会设置相应信号/信号组的update-bit,而清除的时机则可以通过参数ComTxIPduClearUpdateBit来配置,有如下几种可供选择:

Transmit——当调用接口PduR_ComTransmit发送数据并且返回E_OK时;

Confirmation——当调用接口PduR_ComTransmit发送数据并且返回E_OK,而且最终收到发送确认(confirmed)时;

TriggerTransmit——当I-PDU数据被Com_TriggerTransmit请求发送时;

   对于接收方来说,若收到的信号/信号组的update-bit没有置起,则忽略该信号/信号组,不再做任何处理。

  • 无效信号处理

COM模块提供信号无效的功能,用来表明发送方还未准备好相关信号,例如采集传感器的信号还未处理完成或返回失败的情况下,信号要发送无效值。无效值由配置参数ComSignalDataInvalidValue决定。

  1. 无效信号的发送

通过调用Com_InvalidateSignal接口,Com模块内部会自动调用Com_SendSignal接口并传入参数ComSignalDataInvalidValue。

信号的ComTransferProperty和报文的传输模式决定ComSignalDataInvalidValue在总线上的发送行为模式,ComSignalDataInvalidValue用作滤波和TMS判断的当前值。

对于组信号,通过调用Com_InvalidateSignalGroup接口,可以将组内所有信号分别设置为它们对应的ComSignalDataInvalidValue值,而后会触发Com_SendSignalGroup。

b. 无效信号的接收

对于信号/信号组来说,如果ComDataInvalidAction配置为NOTIFY,ComInvalidNotification配置了相应的Callback接口,那么当接收到ComSignalDataInvalidValue值时会调用Callback接口通知上层,这种情况下信号/信号组的后续处理(如滤波处理、正常的信号通知)不会进行。

而如果ComDataInvalidAction配置为REPLACE,那么当接收到ComSignalDataInvalidValue值时COM模块会用ComSignalInitValue值赋给信号,信号/信号组的后续处理照常进行。

以ISOLAR-AB为例,可以看到相关的一些配置参数&#x

  • 4
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值