Files
autosar_standard_spec_v4.4/Communication/AUTOSAR_SWS_COM.md
T

17 KiB

通信模块规范 (Specification of Communication)

AUTOSAR CP Release 4.4.0 文档 ID 015: AUTOSAR_SWS_COM

元信息

项目 内容
文档标题 通信(COM)模块规范
文档所有者 AUTOSAR
文档责任方 AUTOSAR
文档标识号 015
文档状态 Final
所属 AUTOSAR 标准 Classic Platform
所属标准版本 4.4.0

文档变更历史

日期 版本 变更方 变更说明
2018-10-31 4.4.0 AUTOSAR Release Management 大型 COM 集成,部分参数清理,细微更正
2017-12-08 4.3.1 AUTOSAR Release Management 修正/澄清
2016-11-30 4.3.0 AUTOSAR Release Management 增强动态长度信号
2015-07-31 4.2.2 AUTOSAR Release Management 编辑修正
2014-10-31 4.2.1 AUTOSAR Release Management 信号触发增强
2014-03-31 4.1.3 AUTOSAR Release Management 网关增强
2013-10-31 4.1.2 AUTOSAR Release Management 滤波器增强
2013-03-15 4.1.1 AUTOSAR Administration I-PDU 计数器添加
2011-12-22 4.0.3 AUTOSAR Administration 复制添加
2010-09-30 3.1.5 AUTOSAR Administration 大量重构
2007-12-21 3.0.1 AUTOSAR Administration 重要架构调整
2007-01-24 2.1.15 AUTOSAR Administration 重大功能扩展
2006-05-16 2.0 AUTOSAR Administration 初始发布

目录


1. 介绍与功能概述

本规范是 AUTOSAR COM 模块软件规范。基于 AUTOSAR COM SRS [7]。规定 AUTOSAR COM SRS 需求如何实现。

在 AUTOSAR 分层架构中,AUTOSAR COM 模块位于 RTE 和 PDU 路由器之间 [1]。

1.1 主要功能

  • 为 RTE 提供面向信号的数据接口
  • 将 AUTOSAR 信号打包到 I-PDU 中以便发送
  • 解包接收到的 I-PDU 并将接收信号提供给 RTE
  • 从接收 I-PDU 路由信号到要发送的 I-PDU(信号网关)
  • 从接收 I-PDU 路由信号组到要发送的 I-PDU
  • 通信发送控制(I-PDU 组的启动/停止)
  • 发送请求的复制
  • 保证发送 I-PDU 之间的最小间距
  • 接收信号监视(信号超时)
  • 接收信号过滤机制
  • 多种通知机制
  • 提供初始值和更新指示
  • 字节序转换
  • 符号扩展
  • 每 I-PDU 支持两种不同发送模式
  • 基于信号的网关
  • 支持大型和动态长度数据类型
  • 支持 I-PDU 计数器和 I-PDU 复制

2. 缩略语与定义

2.1 缩略语与缩写

缩略语 描述
API Application Programming Interface
AUTOSAR Automotive Open System Architecture
BSW Basic Software
CDD Complex Device Driver
COM Communication
DET Default Error Tracer
DEM Diagnostic Event Manager
DLC Data Length Code
ECU Electronic Control Unit
FIFO First In First Out
HW Hardware
I-PDU Interaction Layer PDU
I-PDU Counter I-PDU 计数器
ISR Interrupt Service Routine
L-PDU Data Link Layer PDU
MDT Minimum Delay Time
MIB Maximum Information Bus
MSB / LSB Most/Least Significant Bit
N-PDU Network Layer PDU
OS Operating System
OSI Open System Interconnection
PDU Protocol Data Unit
PduR PDU Router
RTE Runtime Environment
RX Reception
SDU Service Data Unit
SRS Software Requirement Specification
SW-C Software Component
SWS Software Specification
TMS Transmission Mode Selection
TX Transmission

2.2 定义

术语 定义
Signal 信号:由配置定义的数据元素
Signal Group 信号组:多个信号的集合
Group Signal 组信号:信号组的成员
I-PDU 包含信号的协议数据单元
Filter 过滤器:控制接收信号通知
Notification 通知:RTE 接收信号到达的方式

3. 相关文档

3.1 输入文档

  • [1] Layered Software Architecture
  • [2] General Requirements on Basic Software Modules
  • [3] Specification of Communication Stack Types
  • [4] Specification of PDU Router
  • [5] Specification of Default Error Tracer
  • [6] Specification of ECU Configuration
  • [7] Requirements on Communication
  • [8] Basic Software Module Description Template
  • [9] Specification of RTE
  • [10] List of Basic Software Modules
  • [11] Specification of Memory Mapping
  • [12] Specification of Standard Types
  • [13] Specification of Platform Types
  • [14] Specification of Diagnostic Event Manager
  • [15] Specification of LDCom
  • [16] General Specification of Basic Software Modules
  • [17] Volcano Network Architect 文档

4. 约束与假设

4.1 限制

  • 一个 I-PDU 中所有信号必须有相同的字节序属性
  • 多播 I-PDU 不可在 COM 中处理

4.2 适用车域

适用于所有车域。


5. 与其他模块的依赖

  • RTE:COM 上层主要客户端
  • PDU Router:下层路由
  • DET:错误上报
  • DEM:生产错误上报

6. 需求可追溯性

需求 ID 描述 满足者
SRS_BSW_00101 初始化 SWS_Com_00128
SRS_BSW_00407 版本信息 SWS_Com_00407
SRS_Com_02000 信号编/解码 SWS_Com_00301
SRS_Com_02006 信号网关 SWS_Com_00310
SRS_Com_02007 TMS SWS_Com_00466
SRS_Com_02060 死期监视 SWS_Com_00290

[摘要] 完整需求追溯表见原文 PDF 第 18-26 页。


7. 功能规范

7.1 概述

AUTOSAR COM 模块是 AUTOSAR 通信栈的核心,处理信号到 I-PDU 的打包/解包和路由。

7.2 静态信号定义

7.2.1 信号属性

每个 COM 信号有:

  • ID
  • 起始位 (start position)
  • 长度
  • 字节序 (BE/LE)
  • 符号扩展
  • 初始值
  • 过滤器(可选)
  • 网关属性(可选)
  • 死期监视(可选)

7.2.2 信号值

信号可为基础类型(BOOLEAN、UINT8 ~ UINT64、SINT8 ~ SINT64、FLOAT32、FLOAT64)或动态/静态数组、字符串等。

7.2.3 字节序转换与符号扩展

  • 主机字节序(MSB/LSB) ↔ 总线字节序
  • 符号扩展:小宽度有符号到大宽度

7.2.4 过滤

COM 提供 9 种过滤算法:

  • ALWAYS, NEVER, MASKED_NEW_EQUALS_X, MASKED_NEW_DIFFERS_X
  • MASKED_NEW_DIFFERS_MASKED_OLD, NEW_IS_OUTSIDE/INSIDE, ONE_EVERY_N

7.2.5 信号网关

COM 信号网关:从一个 I-PDU 接收信号 → 路由到另一个 I-PDU 发送。

7.3 正常操作

7.3.1 启动行为

  • [SWS_Com_00128] ⌈Com_Init 应初始化所有 COM 内部变量。⌋

7.3.2 反初始化

  • Com_DeInit 关闭所有 I-PDU 组。

7.3.3 通信模式

  • DIRECT:信号 update 立即触发发送
  • CYCLIC:周期发送
  • DIRECT+CYCLIC (MIXED):立即 + 周期
  • NONE:被触发时才发送
  • TX_MODE_TRUE / TX_MODE_FALSE:基于 TMS(发送模式选择)
TMS (Transmission Mode Selection)

基于一个或多个信号条件选择 TRUE 或 FALSE 模式。

7.3.4 信号无效化

通过 invalid value 标识信号无效,RTE 接收时收到无效通知。

7.3.5 I-PDU 处理

  • [SWS_Com_00466] ⌈COM 应根据 TMS 选择 TX_MODE_TRUE 或 TX_MODE_FALSE。⌋

7.3.6 死期监视(Deadline Monitoring)

  • [SWS_Com_00290] ⌈COM 应监视接收信号超时。⌋
  • 超时通知 RTE。

7.3.7 通知处理

  • Tx 确认通知 (TxConfirmation)
  • Rx 指示通知 (RxIndication)
  • TimeOut 通知

7.4 信号组 — 复杂数据类型

7.4.1 初始化

信号组通过 ComSignalGroup 配置。

7.4.2 发送

  • Com_SendSignalGroup → Com_SendSignal(对每个 group signal)
  • Com_SendSignalGroupArray 提供 uint8 数组

7.4.3 接收

  • Com_ReceiveSignalGroup
  • Com_ReceiveSignalGroupArray

7.4.4 通知

信号组级别的 Tx/Rx 通知。

7.4.5 信号组属性

  • ID
  • 长度
  • 字节序
  • 通知

7.4.6 基于 UINT8 数组的信号组访问

直接 byte array 访问,用于 transformer 链。

7.5 大型数据类型 (LdCom)

7.5.1 发送大型信号/I-PDU

通过 LdCom 模块直接到 PduR(绕过 COM 处理)。

7.5.2 接收大型信号/I-PDU

反向。

7.6 动态长度信号

7.6.1 发送动态长度信号/I-PDU

信号长度在运行时可变。

7.6.2 接收动态长度信号/I-PDU

7.7 与 PDU Router 接口

COM 通过 PduR 收发 I-PDU。

7.8 Update-Bits

每个信号可有一个 update bit,表示该信号在 I-PDU 中是否更新。

7.8.1 发送端

update bit 在 send 时设置。

7.8.2 接收端

update bit 用于决定是否通知 RTE 信号到达。

7.9 数据序列控制 (DSC)

7.9.1 发送端

I-PDU 含计数器字段。

7.9.2 接收端

检查计数器序列。

7.10 通信保护

通过 E2E Library 实现。

7.11 信号网关

COM 处理信号级网关(信号路由)。

7.11.1 处理信号

直接路由。

7.11.2 处理组信号

路由整个信号组。

7.11.3 路由过时信号和信号组

基于配置决定。

7.11.4 处理 Update-Bits

网关时保留 update bits。

7.11.5 解耦信号网关

通过 Com_MainFunctionRouteSignals。

7.12 错误分类

7.12.1 开发错误

错误名 错误码 含义
COM_E_PARAM 0x01 参数错误
COM_E_UNINIT 0x02 未初始化
COM_E_PARAM_POINTER 0x03 NULL 指针
COM_E_INIT_FAILED 0x04 初始化失败

7.12.2 运行时错误

错误名 含义
COM_E_TIMEOUT 接收超时

7.12.3 瞬态故障 / 7.12.4 生产错误 / 7.12.5 扩展生产错误

无。

7.13 错误通知

7.14 错误处理

7.15 AUTOSAR COM 模块交互模型


8. API 规范

8.1 导入类型

模块 头文件 导入类型
ComStack_Types ComStack_Types.h PduIdType, PduInfoType, PduLengthType
Std_Types Std_Types.h Std_ReturnType, Std_VersionInfoType

8.2 类型定义

8.2.1 Com_StatusType

typedef enum {
    COM_INIT,
    COM_UNINIT
} Com_StatusType;

8.2.2 Com_SignalIdType

typedef uint16 Com_SignalIdType;

8.2.3 Com_SignalGroupIdType

typedef uint16 Com_SignalGroupIdType;

8.2.4 Com_IpduGroupIdType

typedef uint16 Com_IpduGroupIdType;

8.2.5 Com_ConfigType

typedef struct Com_ConfigType Com_ConfigType;

8.3 函数定义

8.3.1 返回码

返回码 含义
E_OK 成功
E_NOT_OK 失败
COM_SERVICE_NOT_AVAILABLE 服务不可用(信号未配置等)
COM_BUSY 模块繁忙

8.3.2 启动与控制服务

Com_Init
void Com_Init(const Com_ConfigType* config)
Service ID 0x01
Com_DeInit
void Com_DeInit(void)
Service ID 0x02
Com_IpduGroupControl
void Com_IpduGroupControl(
    Com_IpduGroupVector ipduGroupVector,
    boolean Initialize
)
Com_ReceptionDMControl
void Com_ReceptionDMControl(Com_IpduGroupVector ipduGroupVector)
Com_GetStatus
Com_StatusType Com_GetStatus(void)
Com_GetVersionInfo
void Com_GetVersionInfo(Std_VersionInfoType* versioninfo)

8.3.3 通信服务

Com_SendSignal
uint8 Com_SendSignal(
    Com_SignalIdType SignalId,
    const void* SignalDataPtr
)
Com_ReceiveSignal
uint8 Com_ReceiveSignal(
    Com_SignalIdType SignalId,
    void* SignalDataPtr
)
Com_SendSignalGroup
uint8 Com_SendSignalGroup(Com_SignalGroupIdType SignalGroupId)
Com_ReceiveSignalGroup
uint8 Com_ReceiveSignalGroup(Com_SignalGroupIdType SignalGroupId)
Com_InvalidateSignal
uint8 Com_InvalidateSignal(Com_SignalIdType SignalId)
Com_TriggerIPDUSend
void Com_TriggerIPDUSend(PduIdType PduId)
Com_SwitchIpduTxMode
void Com_SwitchIpduTxMode(PduIdType PduId, boolean Mode)
Com_SendSignalGroupArray
uint8 Com_SendSignalGroupArray(
    Com_SignalGroupIdType SignalGroupId,
    const uint8* SignalGroupArrayPtr
)
Com_ReceiveSignalGroupArray
uint8 Com_ReceiveSignalGroupArray(
    Com_SignalGroupIdType SignalGroupId,
    uint8* SignalGroupArrayPtr
)

8.4 回调函数与通知

8.4.1 Com_TriggerTransmit

Std_ReturnType Com_TriggerTransmit(
    PduIdType PduId,
    PduInfoType* PduInfoPtr
)

8.4.2 Com_RxIndication / 8.4.3 Com_TpRxIndication / 8.4.4 Com_TxConfirmation / 8.4.5 Com_TpTxConfirmation

PduR 调用的回调。

8.4.6 Com_StartOfReception / 8.4.7 Com_CopyRxData / 8.4.8 Com_CopyTxData

TP 接收/发送的回调。

8.5 调度函数

8.5.1 Com_MainFunctionRx

处理接收的 I-PDU。

8.5.2 Com_MainFunctionTx

处理发送队列。

8.5.3 Com_MainFunctionRouteSignals

处理信号网关路由。

8.6 期望接口

8.6.1 强制接口

  • PduR_ComTransmit
  • Det_ReportError

8.6.2 可选接口

  • Det_ReportRuntimeError

8.6.3 可配置接口

  • 各种 RX 指示/TX 确认回调
  • 网关回调

9. 时序图

9.1 AUTOSAR COM 模块和 PDU 路由器接口

9.2 PDU 路由器、COM 模块和 RTE 之间确认处理

9.3 PDU 路由器、COM 模块和 RTE 之间指示处理

[摘要] 详细时序图见原文 PDF 第 111-114 页。


10. 配置规范

10.1 容器与配置参数

10.1.1 AUTOSAR COM 模块配置

全部参数树。

10.1.2 Com

根容器。

10.1.3 ComGeneral

参数 类型 说明
ComConfigurationUseDet bool DET 启用
ComEnableMDTForCyclicTransmission bool 周期发送启用 MDT
ComEnableSignalGroupArrayApi bool 启用信号组 array API
ComMainFunctionRxPeriod float Rx main 周期
ComMainFunctionTxPeriod float Tx main 周期
ComSupportedIPduGroups int 支持的 I-PDU 组数
ComVersionInfoApi bool 版本信息 API

10.1.4 ComConfig

配置集容器。

10.1.5 ComTimeBase

时基配置(秒)。

10.1.6 ComFilter

过滤器配置:

  • ComFilterAlgorithm
  • ComFilterMin, ComFilterMax
  • ComFilterMask
  • ComFilterX, ComFilterPeriodFactor
  • ComFilterOffset

10.1.7 ComIPdu

I-PDU 配置(方向、PDU 处理、信号引用等)。

10.1.8 ComIPduCounter

计数器配置。

10.1.9 ComIPduReplication

I-PDU 复制配置。

10.1.10 ComTxIPdu

TX I-PDU 特定配置(callout、MDT 等)。

10.1.11 ComIPduGroup

I-PDU 组配置(可启用/禁用一组 I-PDU)。

10.1.12 ComSignal

信号配置:

参数 说明
ComBitPosition 位起始位置
ComBitSize 位大小
ComSignalEndianness LITTLE_ENDIAN / BIG_ENDIAN / OPAQUE
ComSignalInitValue 初始值
ComSignalLength 字节长度
ComSignalType 数据类型
ComFilter 过滤器引用
ComTransferProperty TRIGGERED / PENDING / 等
ComUpdateBitPosition update bit 位置
ComTimeoutFactor 超时因子
ComInvalidNotification 无效通知
ComTimeoutNotification 超时通知
ComErrorNotification 错误通知
ComNotification 接收通知

10.1.13 ComSignalGroup

信号组配置。

10.1.14 ComGroupSignal

组信号配置(同信号但属于信号组)。

10.1.15 ComTxMode

TX 模式容器(TRUE/FALSE 各一)。

10.1.16 / 10.1.17 ComTxModeTrue / ComTxModeFalse

参数 说明
ComTxModeMode DIRECT / CYCLIC / MIXED / NONE / PERIODIC
ComTxModeNumberOfRepetitions 重复次数
ComTxModeRepetitionPeriod 重复周期
ComTxModeTimeOffset 时间偏移
ComTxModeTimePeriod 周期

10.1.18-10.1.23 信号网关配置 (ComGw*)

  • ComGwMapping:映射条目
  • ComGwSource / ComGwSourceDescription:源
  • ComGwDestination / ComGwDestinationDescription:目的
  • ComGwSignal:网关信号

[摘要] 完整配置参数详见原文 PDF 第 115-170 页。

10.2 配置规则

10.2.1 通用规则

10.2.2 信号配置

10.2.3 信号组配置

10.2.4 发送模式配置

10.2.5 信号网关配置

10.2.6 过滤器配置

10.2.7 Post Build 配置

10.2.8 动态长度 I-PDU

10.2.9 复制 I-PDU

10.2.10 I-PDU 组

[摘要] 配置规则详见原文 PDF 第 171-175 页。


11. 不适用需求

详见原文 PDF 第 176 页。


12. 附录 A

附录 A 包含信号编码示例、TMS 选择示例等。详见原文 PDF 第 177-184 页。


翻译说明

  • 本译本基于 AUTOSAR CP 4.4.0 的 COM 规范 (Document ID 015,共 185 页)
  • 摘要标记位置:
    • 第 6 章需求追溯表
    • 第 9 章时序图
    • 第 10 章配置参数(详细)
    • 第 11 章不适用需求
    • 第 12 章附录 A