AUTOSAR图解==>AUTOSAR_SWS_V2XBasicTransport

发布于:2025-05-09 ⋅ 阅读:(9) ⋅ 点赞:(0)

AUTOSAR V2X 基础传输协议 (V2XBasicTransport) 详解

AUTOSAR经典平台中V2X通信基础传输层的规范解析

目录


1. 引言与功能概述

AUTOSAR V2X基础传输协议模块(V2XBtp)是Vehicle-to-X通信系统中的一个关键组件,提供了基础的传输协议服务。本文档基于AUTOSAR规范对该模块进行详细解析。

1.1 架构概述

V2XBtp模块与Vehicle-2-X Facilities (V2xFac)、Vehicle-2-X GeoNetworking (V2xGn)、Vehicle-2-X Management (V2xM)以及AUTOSAR BSW模块Ethernet Interface (EthIf)共同组成AUTOSAR架构中的V2X通信栈。

本文基于BTP规范[ETSI EN 302 636-5-1]。V2XBtp模块在上层V2xFac模块和下层V2xGn模块之间提供服务,实现了规范中定义的功能。

1.2 功能概述

V2XBtp模块实现了BTP协议,这是一个轻量级传输协议,要求最小化处理。它在ITS ad hoc网络中提供类似UDP的无连接、不可靠的端到端数据包传输服务。

主要职责包括:

  • 从V2xFac模块的不同进程中多路复用消息(如CAM和DENM消息)
  • 接受来自上层的消息传输请求和协议控制信息
  • 使用V2xGn模块的服务发送数据
  • 在收到BTP数据包时,向上层提供消息接收通知、有效载荷和事务ID
  • 通知上层关于已发送数据包的传输状态

BTP协议采用了IP套件中的端口概念,为特定的ITS设施层协议分配了公知端口。


2. V2XBtp模块架构

2.1 AUTOSAR架构中的V2XBtp位置

下图展示了V2XBtp模块在AUTOSAR软件架构中的位置及其与其他模块的关系:

在这里插入图片描述

图2.1.1 - AUTOSAR V2XBasicTransport 模块架构

这张架构图说明了V2XBtp模块在AUTOSAR软件栈中的位置:

  1. 层次结构

    • V2XBtp位于通信服务层,介于V2X设施层(上层)和V2X地理网络层(下层)之间
    • 它属于基础软件(BSW)的一部分,位于运行时环境(RTE)之下
  2. 关键依赖关系

    • 上层依赖:V2XBtp为V2XFac(V2X设施)模块提供服务
    • 下层依赖:V2XBtp使用V2XGn(V2X地理网络)模块的服务
    • 服务依赖:V2XBtp与ECU状态管理(EcuM)和默认错误追踪(DET)模块交互
  3. 主要职责:如图右侧注释所示,V2XBtp负责:

    • 提供端到端的包传输服务
    • 消息多路复用/解复用
    • 端口管理
    • 上层协议数据传输

2.2 主要组件与职责

V2XBtp模块的主要职责包括:

  • 消息多路复用:处理来自V2xFac模块不同进程的消息(如协同感知基本服务的CAM和分布式环境通知基本服务的DENM)
  • 传输服务:提供轻量级、无连接的传输服务,类似于UDP但在ITS ad hoc网络环境中
  • BTP头处理:添加BTP-B头部,遵循ETSI规范中的格式标准
  • 消息通知:向上层和下层提供消息接收通知和传输状态信息

3. V2XBtp模块接口

3.1 接口结构

V2XBtp模块提供了与其他模块交互所需的各种接口。下图展示了这些接口及其关系:

在这里插入图片描述

图3.1.1 - AUTOSAR V2XBasicTransport 模块接口

V2XBtp模块提供多个关键API接口,用于与其他模块交互:

  1. 核心API接口

    • V2xBtp_Init:由EcuM调用,初始化BTP模块
    • V2xBtp_GetVersionInfo:可选接口,提供模块版本信息
    • V2xBtp_Transmit:被V2xFac模块调用,用于发送BTP数据包
    • V2xBtp_RxIndication:接收来自V2xGn的数据回调函数
    • V2xBtp_TxConfirmation:接收来自V2xGn的传输确认回调函数
  2. 外部模块的主要接口

    • V2xFac:提供V2xFac_RxIndicationV2xFac_TxConfirmation回调
    • V2xGn:提供V2xGn_Transmit函数
    • EcuM:提供EcuM_Init初始化接口
    • Det:提供Det_ReportError错误报告接口

3.2 数据类型和依赖关系

图3.1.1还展示了V2XBtp模块使用的主要数据类型:

  • 内部类型:如V2xBtp_Types,包含特定的数据结构(如目标端口和证书ID)
  • 标准类型:如Std_ReturnType,用于标准化返回值
  • 通用V2X类型:如V2x_GeneralTypes,提供地址类型、目标区域和传输类型等数据结构
  • 特定模块类型:如V2xFac_RxParamsTypeV2xGn_TxParamsType,用于接收和传输参数

接口设计遵循AUTOSAR标准,确保了模块间的兼容性和标准化交互模式。


4. 消息传输流程

4.1 数据发送序列

以下序列图详细说明了V2XBtp如何处理消息传输流程:

在这里插入图片描述

图4.1.1 - AUTOSAR V2XBasicTransport 消息传输序列图

消息传输序列包含以下关键步骤:

  1. 初始请求

    • 应用程序向V2X设施层(V2xFac)发起消息传输请求
    • V2xFac调用V2xBtp_Transmit函数,传递数据、目标端口和传输参数
  2. BTP处理

    • V2xBtp模块验证传入参数
    • 添加BTP-B头部(包含目标端口信息)
    • 设置GeoNetworking参数
  3. 发送到网络层

    • V2xBtp调用V2xGn_Transmit,将BTP数据包和GN传输参数发送到V2xGn模块
    • V2xGn模块将GN数据包发送到网络
  4. 传输状态反馈

    • 网络向V2xGn返回传输状态
    • V2xGn通过V2xBtp_TxConfirmation回调通知V2xBtp
    • V2xBtp通过V2xFac_TxConfirmation回调通知V2xFac
    • 最终传输状态反馈返回到应用程序

4.2 错误处理机制

图4.1.1的下半部分展示了错误处理流程:

  1. 无效参数检测

    • 当传递无效参数时,V2xBtp内部验证失败
    • V2xBtp调用Det_ReportError报告错误(错误代码:V2XBTP_E_PARAM
    • 返回E_NOT_OK状态码给V2xFac
    • V2xFac向应用程序报告传输失败
  2. 错误类型:规范定义了以下开发错误类型:

    • V2XBTP_E_PARAM (0x01):API调用使用无效参数
    • V2XBTP_E_PARAM_POINTER (0x02):API调用使用无效指针
    • V2XBTP_E_UNINIT (0x03):模块未初始化时使用API服务
    • V2XBTP_E_INIT_FAILED (0x04):V2xBtp初始化失败

5. 消息接收流程

5.1 数据接收序列

下图说明了V2XBtp如何处理从网络接收的消息:

在这里插入图片描述

图5.1.1 - AUTOSAR V2XBasicTransport 消息接收序列图

消息接收过程包含以下关键步骤:

  1. 网络数据接收

    • V2xGn模块从网络接收GN数据包
    • V2xGn解析GN头部,处理地理网络信息,提取上层协议数据
  2. BTP处理接收数据

    • V2xGn通过V2xBtp_RxIndication回调向V2xBtp传递BTP数据包、接收参数和事务ID
    • V2xBtp处理包括:解析BTP-B头部、提取目标端口号和有效载荷数据
  3. 传递给上层

    • V2xBtp调用V2xFac_RxIndication,将有效载荷数据、接收参数和事务ID传递给V2xFac
    • V2xFac将应用数据传递给相应的应用程序
  4. 应用处理

    • 应用程序处理接收到的数据并向V2xFac确认
    • 处理完成后控制流返回到各个层

5.2 无效数据处理

图5.1.1的下半部分展示了如何处理无效数据:

  1. 数据验证

    • 当V2xBtp从V2xGn接收无效BTP数据时
    • V2xBtp检测到无效BTP头部
    • V2xBtp调用Det_ReportError报告错误(错误代码:V2XBTP_E_PARAM
  2. 错误处理流程

    • 无效数据不会传递给上层模块
    • 错误信息记录在DET中供开发调试使用
    • 处理流程终止,控制权返回到V2xGn

这种错误处理机制确保了只有有效数据才会传递给应用层,增强了系统的鲁棒性。


6. 配置规范

6.1 配置参数结构

V2XBtp模块的配置结构如下图所示:

在这里插入图片描述

图6.1.1 - AUTOSAR V2XBasicTransport 模块配置

V2XBtp模块的配置结构由以下主要组件组成:

  1. 顶级配置容器

    • V2xBtp:主配置容器,包含一般设置和接收指示功能配置
  2. 通用配置(V2xBtpGeneral)

    • V2xBtpDevErrorDetect:布尔值,控制是否启用开发错误检测功能
    • V2xBtpVersionInfoApi:布尔值,控制是否启用版本信息API
    • V2xBtpMainFunctionPeriod:浮点值,定义主函数周期时间(秒)
  3. 接收功能配置(V2xBtpRxIndicationFunction)

    • V2xBtpRxPduRef:接收PDU参考,引用PDU配置
    • V2xBtpUpperLayerRxPduId:整数,上层接收PDU标识符
    • V2xBtpDestPort:整数,BTP目标端口号

6.2 关键配置参数

V2XBtp模块的配置参数根据AUTOSAR规范,需要特别注意以下几点:

  1. BTP头部配置

    • V2XBtp模块仅使用BTP-B头部(非交互式数据包传输)
    • 目标端口信息字段设置为0
    • GeoNetworking公共头部中的NH字段值设置为2
  2. 开发错误检测

    • V2xBtpDevErrorDetect启用时,模块会报告各种开发错误
    • 这些错误通过Det模块记录,便于开发过程中的调试
  3. 接收指示配置

    • 可以配置多个V2xBtpRxIndicationFunction实例
    • 每个实例指定特定端口和PDU的处理方式

配置结构遵循AUTOSAR标准,确保了与其他模块的集成兼容性。


7. 总结

AUTOSAR V2X基础传输协议(V2XBtp)模块是车辆通信系统中的关键组件,提供了ITS网络中的轻量级传输服务。本文档详细分析了该模块的架构、接口、工作流程和配置规范。

主要特点包括:

  • 架构设计:V2XBtp位于通信服务层,连接V2X设施层和地理网络层
  • 接口丰富:提供完整的API集,支持初始化、数据传输和状态通知
  • 标准化传输:实现了ETSI规范的BTP协议,使用BTP-B头格式
  • 多路复用能力:支持从不同应用源多路复用和解复用消息
  • 错误处理:提供全面的错误检测和报告机制
  • 灵活配置:支持各种配置选项,包括开发错误检测和接收功能设置

V2XBtp模块是构建Vehicle-to-X通信系统的基础,它确保了不同车辆和道路基础设施之间可靠的数据交换,为支持高级驾驶辅助系统和自动驾驶功能提供了关键通信机制。


网站公告

今日签到

点亮在社区的每一天
去签到