0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AUTOSAR通信服务-Com模块报文的发送机制

832065824 来源:汽车电子嵌入式 2023-01-04 14:27 次阅读

前言

最近在研究AUTOSAR通信协议栈的时候发现对Com模块的报文发送时机很是疑惑,产生了以下几个问题:

(1)Com模块如何实现事件帧发送?

(2)Com模块如何实现报文周期的快慢切换发送?

本文先梳理一遍Com模块的一些关键概念及重要机制,然后回答这些问题。

正文

1.几个关键概念

1.1ComTransferProperty

ComTransferProperty:信号(Signal)最重要的一个配置属性,定义一个信号的写访问是否可以触发相应的I-PDU的传输。如果I-PDU被触发,这也取决于相应的I-PDU的传输模式。有以下可选属性:

PENDING:对该信号的写访问永远不会触发相应的I-PDU的传输。

TRIGGERED:根据传输模式,对该信号的写访问可以触发相应的I-PDU的传输。

TRIGGERED_ON_CHANGE:根据传输模式的不同,对该信号的写访问可以触发相应的I-PDU的传输,但只有在写入值与本地存储的(最后发送或初始值)不同的情况下。

TRIGGERED_ON_CHANGE_WITHOUT_REPETITION:根据传输模式的不同,对该信号的写访问可以触发相应的I-PDU的传输一次而不重复,但只有在写入值与本地存储的(最后发送或初始值)不同的情况下。

TRIGGERED_WITHOUT_REPETITION:根据传输模式,对该信号的写访问可以触发相应的I-PDU的传输一次,而无需重复。

1.2ComFilter

ComFilter是信号Signal的一个配置容器,发送端和接收端信号都可以配置ComFilter。

对于接收信号(Signal)配置了ComFilter的话,如果过滤条件判断为True,就将信号更新到RTE,如果过滤条件判断为False,则就会丢弃这个信号值。

对于发送信号(Signal)配置了ComFilter的话,COM模块应使用发送端的过滤机制进行传输模式条件(TMC),但不得过滤发送端的信号。也就是通过一个发送IPDU上所有配置了ComFilter的Signal来进行ComTxMode的选择,如果有一个配置了ComFilter的Signal的过滤机制判断为True就选择ComTxModeTrue的发送TMS配置参数,如果所有配置了ComFilter的Signal的过滤机制判断为False的话,则选择ComTxModeFalse的发送TMS配置参数(后面详解TMS机制)。

AUTOSAR COM提供了以下Signal滤波机制:

· ALWAYS

· NEVER

· MASKED_NEW_EQUALS_X

· MASKED_NEW_DIFFERS_X

· MASKED_NEW_DIFFERS_MASKED_OLD

· NEW_IS_WITHIN

· NEW_IS_OUTSIDE

· ONE_EVERY_N

AUTOSAR文档没有详解每一个滤波机制,从字面意思猜测:

ALWAYS:过滤条件永远判断为TRUE

NEVER:过滤条件永远判断为FALSE

MASKED_NEW_EQUALS_X:Signal值为X时过滤条件判断为TRUE

MASKED_NEW_DIFFERS_X:Signal值不为X时过滤条件判断为TRUE

MASKED_NEW_DIFFERS_MASKED_OLD:Signal值和COM模块保存的上一次(老的)值不同时过滤条件判断为TRUE

NEW_IS_WITHIN:Signal值在范围内时过滤条件判断为TRUE

NEW_IS_OUTSIDE:Signal值在范围外时过滤条件判断为TRUE

ONE_EVERY_N:周期性的过滤条件判断为TRUE。

. set OCCURRENCE to zero when OCCURRENCE == PERIOD

. set FILTER to true, when OCCURRENCE == OFFSET

. increment OCCURRENCE after filter processing

1.3ComTxMode

ComTxModeMode定了IPDU的传输模式。

NONE:不会发送

DIRECT:事件触发发送

MIXED:周期触发或者事件触发发送

PERIODIC:周期发送

ComTxModeNumberOfRepetitions:定义传输模式DIRECT和传输模式MIXED的事件驱动部分的重复次数。

ComTxModeRepetitionPeriod:当ComTxModeNumberOfRepetitions配置大于等于1且ComTxModeMode配置为DIRECT或MIXED时,定义多次传输的重复周期(以秒为单位)。在混合传输模式下,只有事件驱动部分受到影响

ComTxModeTimeOffset:定义ComTxModeMode配置为PERIODIC或MIXED时,从Com_IpduGroupStart开始I-PDU到第一个传输请求之间的时间间隔(以秒为单位)。在混合传输模式下,只有周期部分受到影响。如果ComTxModeTimeOffset被省略或配置为0,第一次周期性传输将在下一次调用Com_MainFunctionTx时传输。

ComTxModeTimePeriod:在ComTxModeMode配置为periodic或MIXED的情况下,定义周期传输请求的重复周期(以秒为单位)。在混合传输模式下,只有周期部分受到影响。

2.传输模式选择(TMC & TMCS)

TMC: Transmission Mode Condition。传输模式条件

TMS: Transmission Mode Selector。传输模式选择器

每一个IPDU的配置容易ComIPdu下可以配置两个不同发送模式的配置容器ComTxModeFalse和ComTxModeTrue,ComTxModeFalse和ComTxModeTrue下可以配置不同的IPDU发送时间参数。所谓的传输模式的选择,也就是根据模式选择结果选择使用ComTxModeFalse和ComTxModeTrue下的哪一个时间参数。

c42da654-8bf2-11ed-bfe3-dac502259ad0.png

一个发送(SEND)IPDU中包含有多个Signal,Signal如果配置了ComFilter,那么配置了ComFilter的Signal就会参与到IPDU的发送模式的选择当中,作为仲裁的输入条件。

发送模式的选择规则:假如有1...N个Signal配置了ComFilter,在仲裁的时候这N个Signal里面只要有一个Signal的滤波结果为TRUE,则Signal所在的IPDU的发送模式选择为TRUE,就会选用ComTxModeTrue里面的时间参数,如果N个Signal的的滤波结果为False,则Signal所在的IPDU的发送模式选择为False,就会选用ComTxModeFalase里面的时间参数。默认选择ComTxModeTrue里面的时间参数,如果一个发送IPDU里面所有的Signal都没有配置ComFilter则使用默认的发送时间参数。

c4427bf6-8bf2-11ed-bfe3-dac502259ad0.png

问题:什么情况下会发生发送模块的仲裁选择?

答:在上层(RTE)调用Com_SendSignal的时候。

3.不同传输模式的用例和必要的配置

c45be316-8bf2-11ed-bfe3-dac502259ad0.png

3.1Use case 1

用例1显示了一个周期时间为tc的循环发送的I-PDU。这个I-PDU由所有具有ComTransferProperty PENDING的信号组成。它被配置为当TMS计算为true时发生传输。

c49385d2-8bf2-11ed-bfe3-dac502259ad0.png

c4a22ace-8bf2-11ed-bfe3-dac502259ad0.png

c4b0889e-8bf2-11ed-bfe3-dac502259ad0.png

由于配置了ComFilter的参数ComFilterAlgorithm ALWAYS,当TMS计算为false时,不需要配置传输模式。

对于I-PDU内的所有信号,ComFilter的ComFilterAlgorithm参数是否设置为ALWAYS或是否未定义ComFilter(对TMS的评估没有贡献),对行为没有任何影响。

3.2Use case 2

用例2显示了一个I-PDU,每当上层(Com_SendSignal或Com_SendSignalGroup)给出一个值时,这个I-PDU就会被发送三次。两次传输之间的时间是td。这个I-PDU由信号组成,这些信号都具有ComTransfer属性触发。它被配置为当TMS计算为true时发生传输。

c4cfd06e-8bf2-11ed-bfe3-dac502259ad0.png

c4e0cd56-8bf2-11ed-bfe3-dac502259ad0.png

如果RTE在正在进行的重复周期完成之前有一个新的发送请求,则开始新的重复周期,并丢弃上一个重复周期的其余部分。

3.3Use case 3

用例3显示了一个I-PDU,如果值v = a (TMS计算为真),则循环时间tc1发送,如果值v = b (TMS计算为假),则循环时间tc2发送。I-PDU由信号组成,这些信号都具有ComTransferProperty PENDING。

c4edc8c6-8bf2-11ed-bfe3-dac502259ad0.png

c5050d06-8bf2-11ed-bfe3-dac502259ad0.png

由新值v = b引起的TMS切换,在下一个主函数中开始一个新的循环,并将新值发送出去。然而,必须考虑最小延迟时间dt,因为ComEnableMDTForCyclicTransmission被设置为true.

3.4User case 4

用例4显示了一个I-PDU,如果值v = a (TMS计算为true),如果值v = b (TMS计算为false),则该I-PDU以循环时间tc循环发送,当RTE给出该值时,该I-PDU将发送三次。两次传输之间的时间为td。I-PDU由所有具有ComTransferProperty triggers的信号组成。

c51426ce-8bf2-11ed-bfe3-dac502259ad0.png

c528c9c6-8bf2-11ed-bfe3-dac502259ad0.png

从ComTxModeMode DIRECT切换到PERIODIC之后,在下一个主函数中开始循环,并根据ComMin imumDelayTime dt发送新值a。

3.5Use case 5

用例5显示了一个I-PDU,它以周期时间tc循环发送,如果RTE给出的值(相同或新的值)也会直接发送三次。这三次传输之间的时间总是td。I-PDU由所有具有ComTransferProperty triggers的信号组成。

c54970c2-8bf2-11ed-bfe3-dac502259ad0.png

c5608064-8bf2-11ed-bfe3-dac502259ad0.png

c57dd560-8bf2-11ed-bfe3-dac502259ad0.png

如果由ComTxModeMode MIXED的周期部分引起的下一次传输应该发生在DIRECT (N-Times)部分传输后的超时dt (ComMinimumDelayTime)内,则该发送将被延迟,直到最小延迟时间过去。然而,在此之后,周期部分的下一个周期被缩短,因此只有周期部分的中间相移,而没有连续相移。

3.6Use case 6

用例6显示了一个I-PDU,如果值v = b (TMS计算为false),则该I-PDU以周期时间tc2循环发送。如果值v = a (TMS计算为真),它将以周期时间tc1循环发送,当值v = a由RTE给出时,它也将直接发送三次。这三次传输之间的时间总是td。I-PDU由所有具有ComTransferProperty triggers的信号组成。

c58fa100-8bf2-11ed-bfe3-dac502259ad0.png

c5a779e2-8bf2-11ed-bfe3-dac502259ad0.png

这在实践中的一个用法是,例如,控制窗户升降电机的按钮的信号。如果没有按下按钮,则会有一个很长的循环时间tc1。如果按下,此信息以短周期时间tc2分布。如果按钮再次释放,则从下一个主要功能开始,此信息将使用td分发三次,之后再次使用较长的循环时间。

3.7Use case 7

用例7类似于用例5,但是禁用了ComEnableMDTForCyclicTransmission,并将ComTxModeNumberOfRepetitions设置为1。

c5cc240e-8bf2-11ed-bfe3-dac502259ad0.png

c5dd10de-8bf2-11ed-bfe3-dac502259ad0.png

c5f82202-8bf2-11ed-bfe3-dac502259ad0.png

与用例5相反,这里的最小延迟计时器既没有为循环部分的周期性传输启动,也没有为混合模式的直接部分的重复传输启动。这可能导致在时间跨度dt内连续两次传输,如场景b和c所示。

4.问题回答

问题1:Com模块如何实现事件帧发送?

答:我们需要把需要事件帧发送的IPDU的ComTxModeMode配置为DIRECT,同事IPDU中的Signal的ComTransferProperty配置为TRIGGERED(或者TRIGGERED_xxx)。这样当我们在SWC通过RTE写这个信号的(调用Com_SendSignal)的时候就会触发事件帧的发送。

问题2:Com模块如何实现报文周期的快慢切换发送?

答:我们需要把需要切换报文周期时间的IPDU的ComTxModeTrue和ComTxModeFalse两个配置容器里面的时间参数配置为快慢周期两种不同配置,然后把IPDU中用来触发发送模式切换的Signal的ComFilter配置为符合我们需求(例如配置为Value == X滤波值为True,否则为False),这样在SWC中通过写Signal(调用Com_SendSignal)的不同值就能触发IPDU以不同的周期发送。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2693

    浏览量

    47426
  • 通信协议
    +关注

    关注

    28

    文章

    878

    浏览量

    40294
  • AUTOSAR
    +关注

    关注

    10

    文章

    359

    浏览量

    21534

原文标题:AUTOSAR 通信服务-Com模块报文的发送机制

文章出处:【微信号:汽车电子嵌入式,微信公众号:汽车电子嵌入式】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    AUTOSAR通信实现中的常见问题

    配置与使用问题 通信协议栈模块理解不足 问题 :开发者可能对AUTOSAR通信协议栈的组成模块(如Com
    的头像 发表于 12-17 15:03 156次阅读

    AUTOSAR通信堆栈的配置 AUTOSAR通信模块测试方法

    )的开发和生产。通信堆栈是AUTOSAR架构中的关键组成部分,负责处理ECU之间的通信AUTOSAR通信堆栈的配置
    的头像 发表于 12-17 15:01 150次阅读

    AUTOSAR通信框架的优势 AUTOSAR通信实例与应用场景

    ,以简化汽车电子控制单元(ECU)的开发和生产。AUTOSAR通信框架是该架构的核心组成部分之一,它提供了一套标准化的通信机制,使得不同ECU之间的
    的头像 发表于 12-17 14:58 160次阅读

    AUTOSAR通信与CAN协议的关系

    的概念,允许应用层组件(如软件组件和ECU抽象层)通过定义良好的接口进行通信。 1. 通信服务AUTOSAR提供了一系列通信服务,包括复杂驱动
    的头像 发表于 12-17 14:57 90次阅读

    AUTOSAR通信组件介绍 AUTOSAR通信层功能分析

    AUTOSAR通信组件介绍 AUTOSAR(AUTomotive Open System ARchitecture)是一个全球性的汽车软件架构合作伙伴计划,旨在创建和建立一个开放的标准化软件架构,以
    的头像 发表于 12-17 14:55 101次阅读

    AUTOSAR通信协议解析 如何实现AUTOSAR通信

    通信服务组成部分 AUTOSAR通信协议栈主要由以下几个模块组成: Com模块 :为应用程序提
    的头像 发表于 12-17 14:54 230次阅读

    单北斗短报文以及北斗设备的出现会影响到什么?

    北斗短报文通信服务是北斗卫星导航系统独有的一项功能,它允许用户在没有移动通信网络覆盖的地区,通过北斗卫星发送和接收短消息。这项服务对于应急
    的头像 发表于 09-21 11:53 441次阅读
    单北斗短<b class='flag-5'>报文</b>以及北斗设备的出现会影响到什么?

    北斗短报文终端支持民用吗?

    北斗短报文终端支持民用,北斗短报文终端作为北斗卫星导航系统的重要组成部分,不仅具有高精度定位功能,还实现了短报文通信服务,这一独特优势使其在民用领域具有广泛的应用前景。北斗短
    的头像 发表于 08-09 13:41 268次阅读
    北斗短<b class='flag-5'>报文</b>终端支持民用吗?

    什么是北斗短报文功能?如何实现北斗短报文通信

    北斗短报文功能是指通过北斗卫星进行短报文通信的功能。这种功能允许用户在没有移动通信信号覆盖的偏远山区、海洋、沙漠等地带,通过北斗短报文终端
    的头像 发表于 05-25 10:16 4446次阅读
    什么是北斗短<b class='flag-5'>报文</b>功能?如何实现北斗短<b class='flag-5'>报文</b><b class='flag-5'>通信</b>?

    北斗三短报文通信一次能发多少文字?又有什么优势呢?

    北斗短报文通信一次能发送的文字数量取决于通信服务的类型。对于区域短报文通信服务(RSMC),北斗
    的头像 发表于 05-18 12:02 1410次阅读
    北斗三短<b class='flag-5'>报文</b><b class='flag-5'>通信</b>一次能发多少文字?又有什么优势呢?

    CAN报文为什么会发送失败?

    CAN总线调试过程中出现报文发送失败。很多工程师都对此只知其一不知其二,今天我们就以CAN报文发送失败的问题来做一次探讨。在了解CAN报文
    的头像 发表于 04-12 08:25 2032次阅读
    CAN<b class='flag-5'>报文</b>为什么会<b class='flag-5'>发送</b>失败?

    北斗三号短报文通信原理跟作用

    北斗三号短报文通信原理主要基于其独特的卫星导航系统和短报文通信服务体制。 北斗三号卫星导航系统由5颗静止轨道卫星和30颗非静止轨道卫星组成,采用混合星座模式,包括MEO卫星(地球中圆轨
    的头像 发表于 03-23 10:28 978次阅读

    北斗三短报文终端是什么?看完你就懂了

    北斗三短报文终端是基于中国北斗卫星导航系统(BDS)的一种通信终端设备。它利用北斗卫星的特殊功能,实现了短报文通信服务,即使用户所处的环境没有传统的
    的头像 发表于 03-19 11:05 1118次阅读

    北斗短报文是什么?看完你就懂了

    北斗短报文通信服务是北斗卫星导航系统提供的一种独特的通信功能,它利用卫星信号实现用户与用户、用户与中心控制系统之间的双向简短文字通信。在没有地面通信
    的头像 发表于 03-14 12:03 1237次阅读

    CP AUTOSAR信息安全机制全面解析

    这个模块一定是我们工程师最先接触到的AUTOSAR信息安全机制,主要用于ECU板级的安全通信。 大家应该有印象,在以往没有该机制,CAN
    的头像 发表于 02-22 11:44 3030次阅读
    CP <b class='flag-5'>AUTOSAR</b>信息安全<b class='flag-5'>机制</b>全面解析