当前位置: 首页 > news >正文

Autosar之Com模块

Com模块主要实现了Signal在I-PDU中的封装及解析功能,为RTE层提供了基于Signal的发送与接收接口,实现了基于Signal的网关功能,实现了PDU的不同发送模式,以及Signal滤波,Update bit,Pdu Counter等功能
在这里插入图片描述
图 Com模块层次图

Com模块处于AUTOSAR架构中的通信服务层,其下层模块为PduR模块,上层模块为RTE。
I-PDU Group功能
I-PDU Group功能介绍
Com模块实现基于I-PDU Group的使能控制,接收超时检测使能控制。根据I-PDU与I-PDU Group的包含关系,间接实现对各个I-PDU的通信使能控制及Rx I-PDU的接收超时检测使能控制。

I-PDU Group使能控制功能实现
通过ComIPdu配置参数ComIPduGroupRef,以及ComIPduGroup的配置实现将ComIPdu进行不同的分组。对于不从属于任何ComIPduGroup的ComIPdu其通信使能状态初始化之后一直为Enable且不可动态更改,Rx ComIPdu接收超时使能状态初始化之后一直为Disable且不可动态更改。

IpduGroupVector中的每个bit位代表一个ComIPduGroup,通过调用Com_IpduGroupControl和Com_ReceptionDMControl实现ComIPduGroup通信使能控制和接收超时使能控制,间接实现每个ComIPdu的控制。

Com提供两个接口Com_ClearIpduGroupVector和Com_SetIpduGroup实现对每个ComIPduGroup所在IpduGroupVector中对应bit位置0或置1(0表示Disable,1表示Enable)。

Signal封装解析功能
Signal封装解析功能介绍
信号的封装和解析是Com模块的核心功能,根据各个信号的配置信息将发送Signal封装到关联的Tx IPdu数据中,从Rx IPdu数据中解析接收Signal。

Com模块为RTE/应用层提供了完整的基于Signal/SignalGroup的收发接口。

Signal封装解析功能实现
信号的封装和解析涉及的信号配置参数为ComBitPosition,ComBitSize,ComSignalEndianness,ComSignalType,ComSignalLength。Com模块根据这些配置信息,将发送信号值封装到对应IPdu报文数据中,从接收IPdu报文数据中解析出接收信号值。

上层通过调用Com_SendSignal来请求非动态长度类型Signal/GroupSignal的发送,调用Com_SendDynSignal来请求动态长度类型(UINT8_DYN)Signal/GroupSignal的发送,调用Com_SendSignalGroup来请求SignalGroup的发送,调用Com_InvalidateSignal来请求Signal发送无效值,调用Com_InvalidateSignalGroup来请求SignalGroup发送无效值,调用Com_SendSignalGroupArray请求上层字节对齐的SignalGroup(已完成各GroupSignal的封装)发送。

上层通过调用Com_ReceiveSignal获取非动态长度类型接收Signal/GroupSignal信号值,调用Com_ReceiveDynSignal获取动态长度类型接收Signal/GroupSignal信号值,调用Com_ReceiveSignalGroup请求SignalGroup的接收,调用Com_ReceiveSignalGroupArray获取字节对齐SignalGroup的数据值。

IPdu收发功能
IPdu收发功能介绍
Com模块实现IPdu的收发方式按数据流分两种类型,即IF方式和TP方式,IF方式通常用于“数据长度较小”的IPdu,而TP方式通常用于“数据长度较大”的IPdu,这里的“数据长度”是相对于传输总线来定义的,如CAN总线为8字节,CANFD为64字节,ETH可以达到1000+字节。其中IF IPdu的发送又分为Direct和TriggerTransmit两种类型,前者发送时机由Com决定,后者发送时机由下层模块决定。

Tx IPdu从发送时机角度又分为四种模式,即PERIODIC,DIRECT,MIXED,NONE。NONE模式通常与TriggerTransmit,或者调用Com_TriggerIPDUSend/ Com_TriggerIPDUSendWithMetaData来配置实现IPdu的发送。

IPdu收发功能实现
通过ComIPdu的配置参数ComIPduType决定该IPdu通过IF/TP方式进行收发:

1.IF发送:PduR_ComTransmit→ Com_TxConfirmation;

2.IF接收:Com_RxIndication;

3.TP发送:PduR_ComTransmit→N次Com_CopyTxData→ Com_TpTxConfirmation;

http://www.dtcms.com/a/345048.html

相关文章:

  • Redis面试精讲 Day 27:Redis 7.0/8.0新特性深度解析
  • 基于STM32+Python+MySQL实现在线温度计设计和制作
  • 【高等数学笔记-极限(4)】极限的运算法则
  • 大麦盒子DM4036-精简固件包及教程
  • Vue2+Vue3前端开发_Day7
  • [TG开发]部署机器人
  • Java多线程编程与锁机制全解析(覆盖Java到Spring)
  • 从0到1打造一台机器人走起来
  • 技术解读|MatrixOne高效 CDC:基于快照的分布式数据库优化方案
  • AI如何赋能财务分析:1份财务报表录入从数小时到5分钟
  • 声网SDK更新,多场景抗弱网稳定性大幅增强
  • 制造企业用档案宝,档案清晰可查
  • ArrayList线程不安全问题及解决方案详解
  • AI:业务驱动与技术赋能:企业智能化应用的双向进化深度指南
  • 红酒数据集预处理实战:缺失值处理的 5 种打开方式,从入门到进阶一步到位
  • vue-admin-template权限管理
  • 信创认证是什么?怎么报考?
  • 特级资质信息化迎检核心流程经验分享
  • Pod控制器详解
  • STM32之ADC详解
  • [系统架构设计师]大数据架构设计理论与实践(十九)
  • ​维基框架 (Wiki Framework) 1.1.0 版本发布​ 提供多模型AI辅助开发
  • TNS(ORACLE)协议分析
  • [硬件电路-162]:PID参数受哪些因素影响?
  • 【Redis】缓存和分布式锁
  • MySQL - 视图,事务和索引
  • AAA 服务器与 RADIUS 协议笔记
  • C语言初学笔记【联合与枚举】
  • Unreal Engine USceneComponent
  • 如何实现二维CAD与3D建模工程图关联一体化出图 | 中望3D 2026新亮点