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

    文章

    2852

    浏览量

    53521
  • 通信协议
    +关注

    关注

    28

    文章

    1099

    浏览量

    42452
  • AUTOSAR
    +关注

    关注

    11

    文章

    412

    浏览量

    23790

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    精简外围 单天线设计:UV双频对讲+数据通信方案(附下载资料)

    模块采用简洁高效的串口指令集进行数据通信,所有命令与数据均通过串行接口(UART)收发。其通信机制主要包含以下三个核心部分: 短信发送机制
    发表于 04-29 11:28

    RDMA设计30:RoCE v2 发送模块2

    当 RoCE v2 发送模块检测到发送队列非空时,则从发送队列中读取一个发送队列条目,并判断请求类型。根据不同的请求类型和请求长度进入不同的
    的头像 发表于 01-27 11:56 951次阅读
    RDMA设计30:RoCE v2 <b class='flag-5'>发送</b><b class='flag-5'>模块</b>2

    一个面向单片机、事件驱动的嵌入式开发平台介绍

    环境搭建。当然,也完全可以用MDK在单片机上直接开发,效率稍低而已。 4、消除耦合 无论是广播式的事件发送机制,还是发布-订阅式的事件发送机制,实际上,都是为了消除软件模块间的耦合。
    发表于 12-05 06:26

    智能核心网如何助力通信服务提供商发展业务

    2025年11月26日在泰国曼谷举办2025年度5G核心网峰会,主题为“智能核心网赋能移动AI时代”。峰会期间,运营商、行业组织和标准化机构的代表们将共同探讨分组核心网技术的最新演进,以及通信服务
    的头像 发表于 11-25 15:41 782次阅读

    西门子PLC通信中“心跳”报文的重要性

    1.什么是心跳检测 心跳检测是一种广泛应用于工业网络和通信领域的机制,用于持续监控两个通信设备(例如,一台西门子PLC和另一台PLC、上位机SCADA系统、远程IO站等)之间的连接状态。 其
    的头像 发表于 11-10 11:23 1127次阅读
    西门子PLC<b class='flag-5'>通信</b>中“心跳”<b class='flag-5'>报文</b>的重要性

    教程来啦!LuatOS中的消息通信机制详解及其应用场景

    在资源受限的嵌入式环境中,LuatOS采用消息机制实现模块间解耦与高效通信。通过预定义消息名称(如“new_msg”),开发者可轻松构建响应式程序结构。接下来我们将深入剖析其实现原理与典型使用方法
    的头像 发表于 09-26 18:59 610次阅读
    教程来啦!LuatOS中的消息<b class='flag-5'>通信</b><b class='flag-5'>机制</b>详解及其应用场景

    基于无线通信的水位监测系统概述

    WD300系列无线水位监测系统,是用来测量水电站大坝、水库、前池、调压井等蓄水现场的水位数据和降雨量信息等数据。本机由数据采集传感器及发送机、接收机三大部分组成。传感器和发送机装在测量点,接收机装在
    的头像 发表于 09-17 15:59 685次阅读
    基于无线<b class='flag-5'>通信</b>的水位监测系统概述

    如何实现安全的AUTOSAR通信

    。未经保护的通信链路可能面临数据篡改、重放攻击及冒充攻击等风险,危及车辆功能的正确性和用户安全。因此,在AUTOSAR架构中建立完备的通信安全机制,已成为行业共识与技术刚需。
    的头像 发表于 09-08 16:43 1514次阅读

    为啥无线模块一多就卡?都是报文“撞车”惹的祸!

    深入解析无线模块在多节点环境下卡顿的根源:从信道竞争、报文碰撞概率指数增长,到多径衰落和干涉现象,揭示Wi-Fi、蓝牙等无线通信中隐藏的冲突机制,并探讨载波侦听、随机退避、TDMA等解
    的头像 发表于 08-28 09:20 2585次阅读
    为啥无线<b class='flag-5'>模块</b>一多就卡?都是<b class='flag-5'>报文</b>“撞车”惹的祸!

    全球民用卫星通信服务发展现状与资费对比分析(2025年)

    ,卫星网络正快速填补传统蜂窝通信无法覆盖的空白。 当前主流卫星通信服务商与市场布局 截至2025年中,全球民用卫星互联网市场呈现出多样化的发展态势,不同的服务商根据其技术特点、市场策略和服务
    的头像 发表于 08-11 14:25 3684次阅读
    全球民用卫星<b class='flag-5'>通信服务</b>发展现状与资费对比分析(2025年)

    智芯公司4G+北斗短报文融合通信产品完成试点应用

    近日,智芯公司“4G+北斗短报文”双通道通信产品在甘肃、江西等多地无公网覆盖或覆盖薄弱地区完成试点应用,其智能融合的通信模式有效解决电力物联网“通信孤岛”难题,为能源互联网建设再添利器
    的头像 发表于 08-06 09:15 1496次阅读

    科普|北斗短报文和北斗短信的区别,专业干货文章

    近日,北方大部分地区短强降雨引起了局部地区的洪涝灾害,中国移动宣布提供免费一个月的北斗短信服务,中国移动的部分机型用户,可以开通北斗短信服务,没有任何手机信号的情况下,也可以发送20个汉字的短信
    的头像 发表于 08-05 11:30 3043次阅读
    科普|北斗短<b class='flag-5'>报文</b>和北斗短信的区别,专业干货文章

    从手写代码到AUTOSAR工具链:J1939Tp应用篇

    J1939Tp是我学习AUTOSAR CP诸多BSW模块的起点,其分层架构完美体现了AUTOSAR规范的精髓,掌握J1939Tp有助于深入理解通信
    的头像 发表于 07-10 16:37 5714次阅读
    从手写代码到<b class='flag-5'>AUTOSAR</b>工具链:J1939Tp应用篇

    ATS失效请求报文问题的故障排除步骤

    本篇文章提供了解决 ATS 失效请求报文问题的故障排除步骤,主要聚焦在 CQ 接口上未显示主机发送报文的情况。
    的头像 发表于 06-09 15:17 2028次阅读
    ATS失效请求<b class='flag-5'>报文</b>问题的故障排除步骤

    北斗短报文开发板

    北斗短报文N2G3型号开发板由核心板+底板组成,用排针排母对接。底板有MCU、DC-DC、LDO、EEPROM等。核心板有RD模块、定位模块等。主要功能有北斗短报文
    发表于 06-05 15:06