【AUTOSAR-COM】Transmission Mode 和 Transfer Property

1.COM模块的基本概念

首先在描述Transmission Mode 和 Transfer Property之前,有必要对COM模块的基本处理有一个直观的理解,我所描述的和对概念理解的也不一定完全正确。

Signal:指的是通信协议中的,一条报文中所保存的若干信号。

I-PDU:至少在COM模块中,可以理解为一条报文。

上图是在CANdb软件中编辑一个报文的Layout的界面,可以很形象的将I-PDU对等为这里的一条Message,而Signal就是需要在Message中需要摆放的Signal。

2.COM模块基本发送流程

这里只是简单描述一下COM模块的发送流程,为下文讲解传输模式和发送属性做铺垫。

最左侧是“Com_SendSignal”,当别的模块需要发送数据的时候,通过调用COM的函数“Com_SendSignal”向COM模块传递要发送的数据,COM模块接收到数据更新对应信号的内部Buffer。将该信号的I-PDU的所有信号按照配置好的Filter计算一遍TMC,再将所有TMC的结果进行或运算,得到一个TMS的结果,该结果会用来选择Transmission Mode。

在配置COM的阶段,可以为每个I-PDU配置两个Transmission Mode,一个是“ComTxModeTure”,另一个是“ComTxModeFalse”,这个Ture和False就指的是TMS的判断结果。

至于最后的发送,就要根据Transmission Mode 和 Transfer Property来判断是否可以发送,以及如何发送。

3. Transfer Property(发送属性)

Transfer Property 一般将它翻译成“发送属性”,是Signal的一个属性,主要分为两大类“Pending”和“Triggered”两种。“Pending”的Signal就意味着该Signal的数据更新不会自动的触发它所在的I-PDU被发送。那么“Triggered”的Signal的意思就是,这个信号的更新可以触发它所在的I-PDU被发送。但是,并不是意味着Signal是“Pending”就不会被发送,只是它并不会主动的触发它所在的I-PDU的发送,如果同一个I-PDU有一个Signal触发了这个I-PDU的发送,那么这个Pending的相当于也就发出去了。还有一种情况是,所在的I-PDU是周期发送的,那么只要周期到了,就会发送了。

Transfer Property
Pending不会主动发送。
Triggered当DIRECT或者MIXED的时候,发送ComTxModeNumberOfRepetitions次。
Triggered Without Repetition当DIRECT或者MIXED的时候,发送1次。
Triggered On Change当前信号值与上一次发送值或者初始值不同,且当DIRECT或者MIXED的时候,发送ComTxModeNumberOfRepetitions次。
Triggered On Change without repetition当前信号值与上一次发送值或者初始值不同,且当DIRECT或者MIXED的时候,发送1次。

4.Transmission Mode(传输模式)

Transmission Mode一般翻译成传输模式,是对于I-PDU的一个属性。需要和上面的发送属性相结合起来,如果一个I-PDU是Periodic的模式,那么这个I-PDU包含的Signal即便有Triggered属性的,也并不会主动的被触发,只能等待Periodic周期的到来。而如果I-PDU包含有“Triggered”的Signal,并且这个Signal更新了,那么当传输模式是Direct或者Mixed的情况下,就会发送n次,这个次数由“ComTxModeNumberOfRepetitions”来决定。

Transmission Mode
Direct/n-Times就是事件触发之后发送一“波”,这一波里可以发送n次相同报文。
Periodic就是周期发送。
MixedDirect/n-Times和Periodic的结合,一般情况下周期发送,事件到来就按照Direct/n-Times的方式发送,之后再切换回周期发送。
None不发送,这个模式存在的意义就在于如果选择使用TMS切换传输模式的话,可以为某一个传输模式配置成None,让这个传输模式下不发送。让TMS切换传输模式的使用方式更加灵活。

 

5.发送实例分析

以下基于AutoSar官方文档“AUTOSAR_SWS_COM ”(版本 4.0.3)的实例分析

Use Case 1 ,传输模式为Periodic,没有传输模式切换

很简单,传输模式Periodic,I-PDU按照设定好的周期tc进行发送,来自RTE的调用Com_SendSignal更新Signal值的操作并不会影响周期发送,也没有模式切换。

 Use Case 2 ,传输模式为Direct/N-times,重复3次,没有传输模式切换

  Use Case 3 ,TMS为Ture的传输模式为Periodic,TMS为False的传输模式也为Periodic,两者周期不同,有模式切换

Use Case 4a,一种传输模式为Periodic,另一种传输模式为Direct/n-times,之间的相互切换。 

下面的Case 4b,也差不多,没啥可说的。

 Use Case 5,传输模式为Mixed,没有模式切换

5a的情况比较简单,是最典型最纯粹的Mixed模式下,Periodic和Direct相互转换的情况,可以看做以Periodic为基调,如果有Signal被触发就临时地发送几个请求。

而5b的情况就是二者有干扰,因为正常的Periodic的发送请求在某个Direct的发送请求做造成的最小间隔时间内,导致这个Periodic的请求直接过掉,不会补发,直接跳过这个周期,也好理解,凡是这种情况的,一定是在这个周期上有Direct的请求在,就没有必要纠结周期的这一个请求了。

 Use Case 6,传输模式为Mixed,和传输模式Periodic,有模式切换

6.总结

与其说是总结,不如说是针对上面的case 6想说的。这篇文章的起因是我在一篇讲TMS模式切换的文章下,关于“mixed模式和“带有模式切换的Periodic和Direct””的提问的回答,问题大概是这种模式切换和传输模式mixed的Periodic和Direct的切换是一样的吗。

这个TxModeTrue和TxModeFalse的切换,也叫TMS Switch。在标准(R20-11版本)的最后几页有示例,有切换叫做with TMS switch,没有切换的叫做without TMS Switch。 你说的I-PDU的传输模式如果设定成MIXED,会因为某个signal的变化而导致报文的周期发生改变,时急时缓,但其实并不是一个维度的事情,比如举个例子,可以将TxModeTrue和TxModeFalse都配置成MIXED,但是他们的周期又不相同。 MIXED的周期切换是因为,一个被配置成了Triggered的signal,被通过Cpm_SendSignal送入Com模块,那么他所在的I-PDU就会因为这个triggered的signal的到来被触发进入Direct模式,连续发送N次报文。周期方面的话,数值上可以和Periodic的一致,但是参数是不同的参数。 确实,如果TxModeTrue和TxModeFalse分别被配置成了Periodic和Direct/N-times也可以从某种程度上达到一样的效果,但是他们被触发的条件不同,依旧是一个Triggered的signal,配置Filter的条件是和前回值不同,那么当Com_SendSignal发送来了一个和前回值相同的数值的时候,filter判断为假,假设这个I-PDU不存在其他的signal干扰,那么它会进入False的传输模式,也就是Direct/N-times,然后发送设定好的次数就结束了,不会有周期性的发送了。 而如果发来的是一个和前回值不同的数值,那么由于Com_SendSignal被调用了,TMS会被计算,并且是真,那么它的传输模式就是Periodic,即便它是一个triggered signal,他也只能等待每次周期的到来才能发送。

其实自己也还是有点疑问,就是 TxModeTrue和TxModeFalse是不是可以同时配置成mixed,这应该是最复杂的情况了。以及mixed模式和“带有模式切换的Periodic和Direct”是否有更进一步的区别,比如在对最小间隔时间的处理上等等。

本质上Mixed的周期请求和事件触发请求的切换是因为有Triggered属性的Signal的被更新了,而带有模式切换的Periodic和Direct之间的相互切换则是因为TMS的判断结果,而TMS的判断又取决于为每一个Signal配置的TMC Filter与Signal的数值之间的情况。虽然可能最后看上去效果差不多,到那时原理机制上应该算是两个维度的事情。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值