Autosar COM层发送模式选择

 

信号的发送属性


Triggered属性:调用Com_SendSignal( )服务请求具备Triggered属性的信号发送,可以触发相关I-PDU的发送,但是如果该I-PDU的发送模式被配置为Peiodic时,只更新信号的值,不会触发相关I-PDU的立即发送,而是在下一周期到来时触发发送
Pending属性:Com_SendSignal( )服务请求调用具备Pending属性的信号发送,不会触发相关I-PDU的发送

I-PDU发送模式
I-PDU的发送模式:
Direct/n-times模式:包含于该I-PDU的任何具备Triggered属性的信号及信号组的更新都会触发I-PDU的立即发送,当上层面模块调用Com_SendSignal( )/Com_SendSignalGroup( )更新信号或者信号组时,Com层根据配置需求发送n次该I-PDU

Periodic模式:用户配置发送周期,只有该I-PDU的周期到来时才会触发该I-PDU的发送,上层模块调用Com_SendSignal( )/Com_SendSignalGroup( )只更新信号及信号组的内容

Mixed模式:Direct/n-times和Periodic的混合模式,当上层模块调用Com_SendSignal( )/Com_SendSignalGroup( )请求该I-PDU包含的信号/信号组的发送时,将会触发该I-PDU的直接n次发送,同时,用户配置的周期到来也会触发该I-PDU的发送

NONE模式:无论何时COM层不能够触发拥有该发送模式的I-PDU的发送,只有PduR模块调用Com_TriggerTransmit( )服务才能够触发该I-PDU的发送

 

TMC &TMS
在COM层用户可以为每一个I-PDU配置两种发送模式,ComTxModeTrue和ComTxModeFalse,当TMS为True时,对应I-PDU以用户配置的ComTxModeTrue的发送模式发送,当TMS为False时,对应I-PDU以用户配置的ComTxModeFalse的发送模式发送。

TMC
发送端的信号的TMC(发送模式条件)的计算与接收端的信号过滤机制相同,但是,在发送端信号过滤并不会丢弃任何的信号,而只是用于计算信号TMC的值。

信号过滤(信号的TMC)
Com提供了如下八种信号过滤机制:

ALWAYS
总是通过,若一个信号的过滤算法配置为ALWAYS,那么这个信号的TMC永远为True;

NEVER
总是不通过,若一个信号的过滤算法配置为NEVER,那么这个信号的TMC永远为False;

MASKED_NEW_EQUALS_X
若一个信号的过滤算法配置为MASKED_NEW_EQUALS_X时,只有当新值与掩码按位与之后等于设定的某一值时,这个信号的TMC才等于True;

MASKED_NEW_DIFFERS_X
若一个信号的过滤算法配置为MASKED_NEW_DIFFERS_X时,只有当新值与掩码按位与之后不等于设定的某一值时,这个信号的TMC才为True;

MASKED_NEW_DIFFERS_MASKED_OLD
若一个信号的过滤算法配置为MASKED_NEW_DIFFERS_MASKED_OLD时,只有当新值与掩码按位与之后的值不等于旧值与掩码按位与之后的值时,这个信号的TMC才为True;

NEW_IS_WITHIN
若一个信号的过滤算法配置为NEW_IS_WITHIN时,只有当新值在某一设定的范围内时,这个信号的TMC才为True;

NEW_IS_OUTSIDE
若一个信号过滤算法配置为NEW_IS_OUTSIDE时,只有当新值不在某一设定的范围内时,这个信号的TMC才为True;

ONE_EVERY_N
若一个信号的过滤算法配置为ONE_EVERY_N时,该信号值每更新N次,这个信号的TMC值为True;

TMS
  发送端的TMS(发送模式选择),一个I-PDU的TMS的值是根据其所有下属的信号的TMC结果决定的,若一个I-PDU下属的信号中至少有一个信号的TMC计算为True那么这个I-PDU的TMS(发送模式选择)为True,只有该I-PD下属的所有的信号的TMC都计算为False时,该I-PDU的TMS(发送模式选择)才为False。

基于以上:
  1、用户可以为每个I-PDU配置两种发送模式,在程序运行过程中,某一I-PDU的发送模式是由TMS来决定的,若一个I-PDU的TMS根据上述的算法计算的出True,那么该I-PDU将以用户配置的True状态下的发送模式进行发送。
  2、当一个I-PDU下属的某一个信号的过滤算法配置为ALWAYS,那么这个I-PDU将一直以用户配置的TMS为True状态下发送模式进行发送

上一篇:AUTOSAR Multi-Core


下一篇:前缀树的应用