AUTOSAR图解==>AUTOSAR_SWS_V2XGeoNetworking

AUTOSAR V2X GeoNetworking 模块分析

车联网地理网络协议解析与实现

目录

1. 概述

AUTOSAR (AUTomotive Open System ARchitecture) 是汽车电子软件的开放式标准化架构,用于开发复杂的电子控制单元 (ECU) 软件。本文分析了AUTOSAR标准中的Vehicle-2-X GeoNetworking (V2xGn) 模块,该模块是实现车辆通信技术的关键组件。

V2X(Vehicle-to-Everything)通信是指车辆与周围环境中的实体(其他车辆、基础设施、行人等)之间的信息交换。地理网络(GeoNetworking)是V2X通信的一个关键部分,它使用地理位置信息进行数据路由,支持基于位置的消息传递。


2. 模块架构分析

2.1 AUTOSAR V2X GeoNetworking 在BSW架构中的位置

V2xGn模块是AUTOSAR基础软件(BSW)的一部分,它与其他V2X相关模块共同构成了完整的V2X通信栈。下图展示了V2xGn模块在AUTOSAR软件架构中的位置。

在这里插入图片描述

2.1.1 架构层次说明
  1. 应用层:包含具体的应用程序,如安全警告、交通效率应用等。
  2. 通信服务层
    • V2xFac (Vehicle-2-X Facilities):提供应用层支持和消息生成功能。
    • V2xBtp (Vehicle-2-X Basic Transport):基本传输协议,提供端口管理。
    • V2xGn (Vehicle-2-X GeoNetworking):提供基于地理位置的寻址和路由。
    • V2xM (Vehicle-2-X Management):管理V2X通信的各个方面,包括安全和配置。
  3. BSW基础层
    • EthIf (Ethernet Interface):提供以太网通信接口。
    • WEth (Wireless Ethernet Driver):无线以太网驱动。
    • WEthTrcv (Wireless Ethernet Transceiver Driver):无线以太网收发器驱动。
    • DET (Default Error Tracer):错误追踪器。
    • EcuM (ECU State Manager):管理ECU状态。
  4. 硬件层:物理通信接口。
2.1.2 模块间关系
  • V2xGn模块接收来自V2xBtp的数据并通过EthIf将其传输出去。
  • V2xGn与V2xM交换数据,如位置信息和安全参数。
  • 当发生错误时,V2xGn向DET报告。
  • EcuM负责V2xGn模块的初始化。

V2xGn模块实现了GeoNetworking协议,该协议支持基于位置的寻址和消息转发,使得车辆能够与特定地理区域内的其他车辆进行通信。

2.2 V2X GeoNetworking 模块内部组件结构

下图展示了V2xGn模块的内部组件结构和与外部模块的接口关系。

在这里插入图片描述

2.2.1 核心组件
  1. V2xGn主模块

    • 提供初始化和周期性处理功能(V2xGn_Init, V2xGn_MainFunction
    • 处理消息传输和接收(V2xGn_Transmit, V2xGn_RxIndication
    • 管理伪名更改(V2xGn_V2xM_PreparePseudonymChange等)
  2. 位置表管理

    • 维护邻近ITS站点的位置信息
    • 定期更新位置表
    • 为接收到的数据包生成唯一的TransactionId
  3. 消息转发

    • 实现区域转发算法
    • 执行距离检查,确保只转发来自6km以内发送方的消息
    • 管理DCC配置文件
    • 处理不同协议版本的兼容性
  4. 消息发送

    • 生成GeoNetworking包头
    • 设置传输参数
    • 配置流量类别
    • 支持GBC(GeoBroadcast)数据包的缓存功能
  5. 消息接收

    • 解码GeoNetworking数据包
    • 检测伪名ID碰撞
    • 实现重复数据包检测
    • 确保与不同协议版本的兼容性
  6. 地理计算

    • 计算地理距离
    • 处理位置精度
    • 执行区域检查
2.2.2 接口说明
  1. V2xBtp接口

    • 提供V2xBtp_RxIndication回调,通知BTP层接收到的消息
    • 提供V2xBtp_TxConfirmation回调,确认消息传输状态
  2. EthIf接口

    • 使用EthIf_ProvideTxBuffer获取传输缓冲区
    • 通过EthIf_SetBufWTxParams设置传输参数
    • 调用EthIf_Transmit发送数据包
    • 使用EthIf_GetBufWRxParams获取接收参数
  3. V2xM接口

    • 调用V2xM_GetPositionAndTime获取位置和时间信息
    • 使用V2xM_GetGlobalTxParamsV2xM_SetGlobalRxParams交换CBR信息
    • 通过V2xM_CalcDistance计算地理距离
  4. DET接口

    • 在开发模式下报告错误

通过这些组件和接口,V2xGn模块能够实现基于地理位置的消息路由和转发功能,支持V2X通信中的地理定位服务。


3. 消息处理流程

3.1 消息传输和接收序列

下图详细展示了V2xGn模块中消息传输和接收的序列流程,以及伪名变更处理过程。

在这里插入图片描述

3.1.1 消息发送流程
  1. 应用层请求发送V2X消息
  2. V2xFac构建应用层消息并传递给V2xBtp
  3. V2xBtp构建BTP包并调用V2xGn_Transmit
  4. V2xGn从V2xM获取位置和时间信息
  5. V2xGn构建GeoNetworking头部,包括:
    • 设置源地址(MID, ST)
    • 设置目标地址
    • 设置流量类别字段(TC)
    • 设置最大跳数限制(MHL=10)
    • 设置EtherType值(0x8947)
  6. V2xGn获取CBR信息
  7. V2xGn通过EthIf获取传输缓冲区
  8. V2xGn设置传输参数
  9. V2xGn调用EthIf_Transmit发送数据包
  10. 传输确认后,如果V2xGnTxConfirmation已启用,V2xGn通知上层传输状态
3.1.2 消息接收流程
  1. WEth接收到数据包并通知EthIf
  2. EthIf调用V2xGn_RxIndication通知V2xGn
  3. V2xGn获取接收参数
  4. V2xGn处理接收到的数据包:
    • 解码GN头部
    • 检查协议版本兼容性
    • 检查伪名ID碰撞
    • 执行重复数据包检测
    • 生成唯一TransactionId
  5. V2xGn将CBR信息传递给V2xM
  6. V2xGn计算发送方距离
  7. 根据需要,V2xGn可能转发数据包:
    • 仅转发6km以内的消息
    • 使用DCC配置文件DP3
    • 执行区域转发算法
  8. V2xGn通知V2xBtp接收到消息
  9. 消息向上传递至应用层
3.1.3 伪名变更处理
  1. V2xM发起伪名变更请求(V2xGn_V2xM_PreparePseudonymChange
  2. V2xGn暂停消息传输并清空缓冲区
  3. V2xM确认变更(V2xGn_V2xM_CommitPseudonymChange
  4. V2xGn更新GN源地址并恢复消息传输
  5. 如需中止变更,V2xM调用V2xGn_V2xM_AbortPseudonymChange

这种精确的消息处理机制确保了V2X通信的可靠性和安全性,同时支持基于地理位置的高效数据路由。

3.2 消息处理状态图

下图展示了V2xGn模块的消息处理状态转换图,描述了模块在不同场景下的状态变化。

3.2.1 主要状态说明
  1. 初始化状态

    • 模块由EcuM初始化
    • 通过V2xGn_Init()完成初始化并进入运行状态
  2. 运行状态

    • 空闲:等待消息发送或接收请求

    • 处理发送请求:响应V2xGn_Transmit()调用

    • 请求传输缓冲区:通过EthIf_ProvideTxBuffer()获取缓冲区

    • 设置传输参数:通过EthIf_SetBufWTxParams()设置参数

    • 传输数据包:调用EthIf_Transmit()发送数据包

    • 处理接收指示:响应V2xGn_RxIndication()

    • 获取接收参数:通过EthIf_GetBufWRxParams()获取参数

    • 解析GN包头:解析GeoNetworking包头

    • 验证包有效性:按照一系列规则检查数据包有效性

    • 处理本地接收:处理以本地为目标的数据包

    • 判断转发:决定是否需要转发数据包

    • 准备转发数据包:准备转发符合条件的数据包

  3. 伪名变更状态

    • 伪名变更准备:暂停消息传输,清空缓冲区
    • 伪名变更提交:更新GN源地址,恢复传输
  4. 错误处理状态

    • 处理各种错误类型:参数错误(V2XGN_E_PARAM)、指针错误(V2XGN_E_PARAM_POINTER)、未初始化错误(V2XGN_E_UNINIT)、初始化失败(V2XGN_E_INIT_FAILED)
3.2.2 关键处理规则
  1. V2xGn_MainFunction周期性处理

    • 定期更新和维护位置表
    • 通过V2xM_GetPositionAndTime获取最新信息
  2. 数据包有效性验证规则

    • 仅接收6km距离内的消息
    • 支持协议版本0和1
    • 检测伪名ID碰撞
    • 执行重复数据包检测
  3. 数据包转发条件

    • 使用区域转发算法(Annex E.3)
    • 应用DCC配置文件DP3
    • 仅转发6km距离内的消息
    • 对GeoBroadcast数据包支持存储-携带-转发机制

这个状态机清晰地展示了V2xGn模块在不同操作阶段的状态转换,有助于理解模块的工作流程和内部逻辑。


4. 总结

AUTOSAR V2X GeoNetworking模块是实现车联网通信的关键组件,它通过地理位置信息实现车辆间的高效通信。本文从多个角度分析了V2xGn模块:

  1. 架构视角:阐明了V2xGn在AUTOSAR BSW架构中的位置,及其与其他模块的交互关系。
  2. 组件视角:详细描述了V2xGn内部的组件结构和功能分工。
  3. 流程视角:展示了消息发送、接收和处理的完整序列。
  4. 状态视角:说明了模块在不同条件下的状态变化及转换规则。

V2xGn模块实现了ETSI标准定义的GeoNetworking协议,支持以下关键功能:

  • 基于地理位置的寻址和路由
  • 单跳和多跳通信
  • 区域消息转发
  • 伪名管理(用于隐私保护)
  • 与旧协议版本的兼容性

这些功能共同支持了V2X通信中的安全警告、交通效率提升等关键应用,为智能交通系统提供了坚实的通信基础。

V2xGn模块的设计充分考虑了汽车环境的特殊需求,如:

  • 移动性支持(车辆位置变化)
  • 隐私保护(伪名机制)
  • 有限通信范围(距离限制和转发机制)
  • 高可靠性要求(消息确认机制)

通过这些设计,V2xGn模块能够在复杂多变的道路环境中提供稳定可靠的通信服务,促进智能交通系统的广泛应用和发展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KaiGer666

慧眼~施主!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值