Autosar COM模块 信号传输模式(ComTxModeTrue和ComTxModeFalse)
信号的发送属性:
Triggered属性:
调用Com_SendSignal( )服务请求具备Triggered属性的信号发送,可以触发相关I-PDU的发送,但是如果该I-PDU的发送模式被配置为Peiodic时,只更新信号的值,不会触发相关I-PDU的立即发送,而是在下一周期到来时触发发送。
Pending属性:
Com_SendSignal( )服务请求调用具备Pending属性的信号发送,不会触发相关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的发送
两种不同的传输模式(ComTxModeTrue和ComTxModeFalse)
在AUTOSAR COM规范中允许为每个I-PDU静态配置两种不同的传输模式,ComTxModeTrue和ComTxModeFalse。在AUTOSAR COM规范中通过传输模式切换,来选择I-PDU中的其中一种传输模式进行传输。
先使用过滤机制判断I-PDU中各信号的发送模式条件,同时更新I-PDU中的信号。
通过各信号的判断结果来计算该I-PDU的TMS(transmission mode selector)。若至少有一个C( 与IPDUk中的信号Si相关)为True,则TMS为True,对应I-PDU以用户配置的ComTxModeTrue的发送模式发送;若所有C(Si,IPDUk)都为False,则TMS为False,对应I-PDU以用户配置的ComTxModeFalse的发送模式发送.
模式切换接口如下:
Com_SwitchIpduTxMode(ComConf_ComIPdu_***_CANNODE_0, FALSE);
Com_SwitchIpduTxMode(ComConf_ComIPdu_***_CANNODE_0, TURE);
- 1
- 2
发送模式条件TMC+发送模式选择TMS
发送模式条件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。
具体配置:
总结:
每个I-PDU配置两种发送模式,在程序运行过程中,某I-PDU的发送模式是由TMS来决定,若一个I-PDU的TMS根据上述的算法计算为True,那么该I-PDU将以配置的True状态下的发送模式进行发送。当一个I-PDU下属的某个信号的过滤算法配置为ALWAYS,那么这个I-PDU将一直以用户配置的TM为True状态下发送模式进行发送。
评论记录:
回复评论: