您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   模型库  
会员   
   
AI 智能化软件测试方法与实践
5月23-24日 上海+在线
人工智能.机器学习TensorFlow
5月22-23日 北京
图数据库与知识图谱
5月22-23日 北京
   
 
 订阅
CP AUTOSAR 下的COM模块
 
作者:不可说
  59  次浏览      4 次
 2025-5-16
 
编辑推荐:
本文详细介绍了COM的基本功能和在AUTOSAR中COM与其他模块的交互相关内容。 希望对您的学习有所帮助。
本文来自于微信公众号汽车电子与软件,由火龙果软件Linda编辑、推荐。

#01 CP与COM

CP AUTOSAR中的Com(Communication)模块在汽车控制单元的通信环境中具有至关重要的作用。它提供了统一的通信环境、数据封装与传输、信号发送与接收、通信状态监控与管理、支持大数据和动态长度数据类型以及与其他模块的交互等功能,为汽车控制单元的稳定运行和高效通信提供了有力保障。

COM模块具有以下的功能和特征:

为用户提供面向信号的数据接口(例如 RTE、SwCluC)

将 AUTOSAR 信号打包到 I-PDU 进行传输

解包接收的 I-PDU 并向用户提供接收的信号(例如 RTE、SwCluC)

将信号从接收的 I-PDU 路由到 I-PDU 进行传输

将信号组从接收的 I-PDU 路由到 I-PDU 进行传输

通信传输控制(I-PDU 组的开始/停止)

发送请求的复制

保证传输 I-PDU 之间的最小间隔

监控接收信号(信号超时)

输入信号的过滤机制

不同的通知机制

提供初始化值和更新指示

字节顺序转换

符号扩展

每个 I-PDU 支持两种不同的传输模式

基于信号的网关

支持大数据和动态长度数据类型

本文简单聊聊COM的基本功能和在AUTOSAR中COM与其他模块的交互。

#02 COM基本功能

AUTOSAR COM 模块的功能基础的设计开发是参考了ISO 17356-4:2005 Road vehicles – Open interface for embedded automotive applications和 OSEK / VDX Communication (COM)。

符号扩展与端序转换

AUTOSAR COM 模块应支持以下数据类型:

boolean

uint8

uint16

uint32

uint64

sint8

sint16

sint32

sint64

uint8[n]

float32

float64

首先,AUTOSAR COM模块应支持所有支持的有符号和无符号整数数据类型的端序转换。这意味着无论数据的原始顺序如何,模块都能够正确地进行转换,确保数据在不同系统或设备间传输时的一致性。此外,对于非整数数据类型,如uint8[n]或float32,AUTOSAR COM模块会将其视为匹配大小的整数数据类型进行处理。另外,对于模糊的数据,模块会将其解释为uint8[n],并始终映射到n字节大小的信号,从而确保数据的准确性和可读性。

其次,在数据处理过程中,AUTOSAR COM模块会执行符号扩展操作。具体来说,当接收到的数据需要扩展到接收信号的ComSignalType的大小时,模块会进行相应的符号扩展。例如,如果Com_ReceiveSignal接收一个10bit的带符号信号,并将其复制到16bit的带符号整数变量中,那么模块会根据信号的符号位将其扩展到16bit。例如,接收到的值为-3(十进制),对应的10位二进制表示为111111101b,在扩展到16bit时,将变为11111111111101b。值得注意的是,AUTOSAR COM模块在发送方不需要执行符号扩展,因为传输的值已保证是符号扩展的。然而,对于float32和float64数据类型,模块不支持符号扩展操作。

最后,在数据传输的发送和接收过程中,AUTOSAR COM模块会在特定时间点执行端序转换和符号扩展。在发送侧的I-PDU调用之前,模块会执行端序转换,确保数据的字节顺序符合传输要求。而在接收侧,模块会在执行过滤和通知检测之前,先执行符号扩展和端序转换,以确保接收到的数据能够正确被识别和处理。此外,除了字节序转换之外,AUTOSAR COM模块不支持对ComSignalType FLOAT32或FLOAT64的信号进行进一步转换,如分数、指数、符号或偏差值的复杂转换或归一化。这意味着对于FLOAT32和FLOAT64类型的信号,模块仅支持基本的字节序转换功能。

信号过滤

AUTOSAR COM 模块在处理信号时,具有特定的过滤机制。首先,在评估过滤条件时,AUTOSAR COM 模块应将每个过滤条件严格地评估为 true 或 false。

在接收侧,AUTOSAR COM 模块应遵循过滤原则,即仅在接收端过滤掉不符合条件的信号。这一设计旨在减少不必要的信号处理负担,提高系统的整体效率。通过接收端的过滤机制,系统能够更加精确地筛选出所需信号,确保后续处理的准确性和可靠性。

然而,在发送端,AUTOSAR COM 模块的处理方式有所不同。尽管它同样具备传输模式条件(TMC)的过滤机制,但在此处不应过滤掉发送端的信号。这意味着,所有信号在发送时都应被保留,并由接收端根据过滤条件进行筛选。这样的设计确保了信号的完整性,避免了在发送过程中因过滤而丢失重要信息。

AUTOSAR COM 模块仅提供以下ComFilterAlgorithm中定义的过滤器:

ALWAYS

NEVER

MASKED_NEW_EQUALS_X

MASKED_NEW_DIFFERS_X

MASKED_NEW_DIFFERS_MASKED_OLD

NEW_IS_WITHIN

NEW_IS_OUTSIDE

ONE_EVERY_N

对于ComSignal Type FLOAT32、FLOAT64、UINT8_N或UINT8_DYN的信号,AUTOSAR COM模块应仅支持配置为ALWAYS,NEVER或者ONE_EVERY_N的ComFilterAlgorithm;

对于ComSignalType 配置为 BOOLEAN 的信号,AUTOSAR COM 模块应仅支持配置为:

ALWAYS

NEVER

MASKED_NEW_EQUALS_X

MASKED_NEW_DIFFERS_X

MASKED_NEW_DIFFERS_MASKED_OLD

ONE_EVERY_N

AUTOSAR COM 模块在处理信号和信号组时,对于特定的配置和滤波规则有着明确的要求。首先,对于ComBitSize配置为0的信号和信号组,AUTOSAR COM模块不支持 MASKED_NEW_DIFFERS_MASKED_OLD滤波规则。

在滤波规则的选择上,如果配置的滤波规则为MASKED_NEW_DIFFERS_X、MASKED_NEW_EQUALS_X、NEW_IS_OUTSIDE 或 NEW_IS_WITHIN,则AUTOSAR COM 模块应仅使用滤波器参数的最小有效ComBitSize位来计算接收滤波器。这一设计优化了滤波器的计算效率,同时确保了滤波结果的准确性。

在信号过滤的执行上,如果AUTOSAR COM 模块在接收器侧过滤掉信号或信号组,即过滤条件评估为 false,则模块应丢弃该信号或信号组,不对其进行进一步处理。这一步骤确保了系统能够仅处理符合要求的信号,减少了不必要的资源消耗。

此外,AUTOSAR COM模块支持ComFilterAlgorithm中定义的过滤机制,这一机制同样适用于有符号的数据类型。在发送信号之前应用过滤器时,需要一种方法来确定该信号对应的过滤器状态。由于某些筛选器需要new_value来评估筛选器,但这一值仅在使用 send-API 更新信号后才可用,因此有必要定义过滤器在第一次发送之前用于new_value的值。为此,AUTOSAR COM 模块在启动期间将每个信号的过滤机制old_value设置为 ComSignalInitValue。

在信号过滤机制的初始化过程中,如果应用程序没有更新信号的new_value,则 AUTOSAR COM 模块应使用ComSignalInitValue作为该信号的new_value。当过滤器评估信号为 true(即值未被过滤掉)时,AUTOSAR COM 模块将信号的值置于old_value。相反,如果过滤器不允许该值通过(即过滤器的计算结果为 false),则模块不应将该值放入old_value。这一设计确保了信号过滤机制的一致性和正确性。

信号网关

AUTOSAR COM 模块提供了一个集成的信号网关Signal Gateway,用于以1:n 方式转发信号和分组信号。路由关系通过ComGwMapping配置容器进行静态配置。

图 1 AUTOSAR COM 模块的传输交互模型

图 2 AUTOSAR COM 模块的接收交互模型

图 3 AUTOSAR COM 模块的集成 Signal Gateway 交互模型

在信号处理的架构中,集成的Signal Gateway扮演着至关重要的角色。如图2和图3所示,Signal Gateway充当所有信号的接收器,或者将配置为网关信号源的信号进行分组。一旦Signal Gateway接收到用于路由的信号或组信号,它会立即转变为这些信号或组信号的发送者,确保信号能够在系统中正确传递。

关于Signal Gateway的信号转发和处理,存在一种情况需要注意。如图1和图3所示,当集成的Signal Gateway转发信号/组信号,或者由Software Component发送信号/组信号时,信号处理的方式没有差异。由于网关关系是静态配置的,因此优化的Signal Gateway可能会跳过某些具体配置的处理阶段。例如,在某些情况下,字节序转换可能不是必需的。但重要的是,此类优化不应改变目标总线上信号的逻辑行为或表示形式,其唯一目的是提高Signal Gateway的性能。

此外,Signal Gateway在系统中的位置和作用还体现在其他方面。如图2所示,本地ECU可能会接收到Signal Gateway传递的信号或组信号,并同时成为网关操作的源。这意味着Signal Gateway不仅负责信号的接收和发送,还参与信号的路由和转换。同时,图1和图2仅展示了RTE接收的组信号的缓冲区,这进一步说明了Signal Gateway在信号处理流程中的关键作用。

值得注意的是,虽然Signal Gateway必须确保一致地处理组信号,但并没有必须实现的预定方式。这意味着Signal Gateway的设计和实现具有一定的灵活性,可以根据具体需求进行调整。然而,如果系统中不需要信号路由功能,那么AUTOSAR COM模块的信号网关可以相应地缩小规模,以适应系统的实际需求。

#03COM与CP中其他模块的交互

COM模块与其他模块有一定的接口功能交互,如下图:

AUTOSAR COM 模块的交互视图

PDU Router

AUTOSAR COM 模块的功能实现依赖于两组PDU Router上层模块的API联合使用:一组是使用传输协议(TP)的上层模块API,另一组是不使用TP的上层模块API。这种设计之所以必要,是因为AUTOSAR COM模块传输的信息协议数据单元(I-PDU)有两种处理方式:一种是通过简单的逻辑协议数据单元(L-PDU)进行未分段传输,另一种则是通过TP进行分段传输。

为了满足AUTOSAR COM模块的工作需求,底层PDU Router需要具备以下功能:

首先,PDU Router需要能够接收来自AUTOSAR COM模块的输入I-PDU指示,这是数据传输的起始点。

其次,PDU Router器需要提供输出I-PDU的发送接口,并确保能够确认通信控制器是否已成功发送了I-PDU。这一功能对于确保数据的可靠传输至关重要。

此外,PDU Router还应具备触发接口,以便AUTOSAR COM模块能够触发PDU Router进行数据传输。这一接口的设计使得数据传输过程更加灵活和可控。

最后,对于使用TP进行分段传输的I-PDU,PDU Router还需要处理TP通信中的缓冲区问题,以确保数据的完整性和顺序性。

RTE

RTE使用AUTOSAR COM模块的功能来发送和接收信号。在AUTOSAR中,RTE是AUTOSAR COM模块之上的更高层。

SwCluC(Software Cluster Connection Layer)

SwCluC是一个专门用于建立软件集群间连接的系统,其核心功能在于促进信号和信号组的交换(包括providing and consuming)。

首先,SwCluC通过其独特的机制,实现了不同软件集群之间的互联互通。在应用软件集群中,Com能够利用SwCluC Com High Proxy这一重要组件,访问所需的信号和信号组。

其次,在软件集群中,SwCluC通过SwCluC Com Low Proxy与COM模块建立了接口。SwCluC Com Low Proxy不仅为信号组和信号的接收与传输提供了必要的回调机制,还具备调用COM API进行信号接收和传输的能力。这一设计确保了信号在软件集群间的稳定、高效传输。

最后,值得注意的是,SwCluC回调的存在并非固定不变,而是依赖于具体的配置。这意味着,用户可以根据实际需求,灵活配置SwCluC的回调机制,以满足不同场景下的数据交互需求。

#04小 结

综上分析,AUTOSAR COM模块在AUTOSAR软件架构中扮演着至关重要的角色,它通过与多个模块的交互,实现了复杂通信网络的管理和控制。

   
59 次浏览       4
 
相关文章

CMM之后对CMMI的思考
对软件研发项目管理的深入探讨
软件过程改进
软件过程改进的实现
 
相关文档

软件过程改进框架
软件过程改进的CMM-TSP-PSP模型
过程塑造(小型软件团队过程改进)
软件过程改进:经验和教训
 
相关课程

以"我"为中心的过程改进(iProcess )
iProcess过程改进实践
CMMI体系与实践
基于CMMI标准的软件质量保证

最新活动计划
人工智能.机器学习TensorFlow 5-22[北京]
AI智能化软件测试方法与实践 5-23[北京]
图数据库与知识图谱 5-22[北京]
DeepSeek大模型应用开发 6-12[厦门]
基于 UML 和EA进行分析设计 6-23[北京]
嵌入式软件架构-高级实践 7-9[北京]
 
 
最新文章
iPerson的过程观:要 过程 or 结果
基于模型的需求管理方法与工具
敏捷产品管理之 Story
敏捷开发需求管理(产品backlog)
Kanban看板管理实践精要
最新课程
基于iProcess的敏捷过程
软件开发过程中的项目管理
持续集成与敏捷开发
敏捷过程实践
敏捷测试-简单而可行
更多...   
成功案例
英特尔 SCRUM-敏捷开发实战
某著名汽车 敏捷开发过程与管理实践
北京 敏捷开发过程与项目管理
东方证券 基于看板的敏捷方法实践
亚信 工作量估算
更多...