V2xBtp
1. 简介和功能概述¶
本规范规定 AUTOSAR 基础软件模块 Vehicle-2-X Basic Transport 的功能、API 和配置(在本文档中称为「V2xBtp module」)。
V2xBtp 模块与 Vehicle-2-X Facilities [1](V2xFac)、Vehicle-2-X GeoNetworking [2](V2xGn)、Vehicle-2-X Management [3](V2xM)、Vehicle-2-X Data Manager [4](V2xDM)以及 AUTOSAR BSW 模块 Ethernet Interface [5](EthIf)一起,在 AUTOSAR 架构中构成 V2X 协议栈。
本文档的基础是 BTP 规范 [6]。假定读者已熟悉该规范。本文档不会重新定义 BTP 功能,但会尽量遵循与 BTP 规范相同的顺序。
1.1. 架构总览¶
V2xBtp 模块向上层 V2xFac 模块提供服务并依赖于它,同时使用下层 V2xGn 模块的服务并从其获取服务,以实现本文第 1.2 节、第 6.1 节、第 6.2 节和第 6.3 节所述的功能。
V2xBtp 模块在 AUTOSAR BSW 和分层软件架构中的位置如下图所示。

1.2. 功能总览¶
V2xBtp 模块实现 [6] 规定的 BTP 协议,这是一种需要最少处理的轻量级协议。
V2xBtp 模块位于 V2xGn 模块 [2] 之上(V2xGn 实现 [7] 和 [8] 规定的 GeoNetworking 协议)、[1] 规定的 V2xFac 模块之下。它在 V2xFac 模块处对不同进程的消息进行多路复用/解多路复用,并在 ITS 自组织网络 [10] 中提供类似于 UDP [9] 的无连接、不可靠(即包可能乱序到达、重复出现或丢失)的端到端包传输服务。BTP 的设计假定使用该协议的实体要么能够容忍不可靠的包传输,要么自身提供适当的可靠通信机制。它采用 IP 协议族的端口概念,并将知名端口分配给特定的 ITS 设施层协议。端口的使用类似于 IP 协议族的两级包传输,但在 BTP 的情况下,GeoNetworking 协议在 ITS 站之间传输包,而 BTP 协议将包交付给 ITS 设施层的实体。
上层可以通过 API 原语 V2xBtp_Transmit() 提供必要的数据来访问 V2xBtp 模块提供的传输服务。为了提供其包传输服务,V2xBtp 模块依赖 V2xGn 模块的服务(即调用 V2XGn_Transmit())。V2xBtp 模块还通过调用 V2xFac_RxIndication()(如第 6.2 节所述)向 V2xFac 模块提供服务:提供消息接收通知以及从对端 BTP 实体接收到的 BTP 包的载荷。它还向 V2xGn 模块提供回调 V2xBtp_RxIndication(),以便其获取从对端 GeoNetworking 实体接收到的 GN 包的消息接收通知和载荷。
根据上述说明和 [6] 中的规范,V2xBtp 模块的职责可归纳如下:
- 对 V2xFac 模块处不同进程的消息进行多路复用,例如来自协作感知基本服务 [11] 的 CAM 和来自分布式环境通知基本服务 [12] 的 DENM,以便通过 V2xGn 模块发送包,以及在目的 BTP 协议实体处进行解多路复用。
- 接受来自上层(V2xFac 模块)的消息发送请求及协议控制信息,并使用 V2xGn 模块的服务发送数据。
- 在收到 BTP 包时,向上层(即 V2xFac 模块)提供消息接收通知和所收包的载荷。
2. 缩略语¶
以下术语表包含与 V2XBasicTransport 模块相关、但未包含在 Autosar 术语表 [13] 中的缩略语和缩写。
BTP
基本传输协议(Basic Transport Protocol)。
BTP-A
表示交互式包传输的 BTP 报头类型。
BTP-B
表示非交互式包传输的 BTP 报头类型。
CAM
协作感知消息(Cooperative Awareness Message)。
DENM
分布式环境通知消息(Decentralized Environmental Notification Message)。
DET
默认错误跟踪器(Default Error Tracer)。
GN
地理网络(GeoNetworking)。
ITS
智能交通系统(Intelligent Transport System)。
IP
互联网协议(Internet Protocol)。
PDU
协议数据单元(Protocol Data Unit)。
UDP
用户数据报协议(User Datagram Protocol)。
3. 相关文档¶
3.1. 输入文件和相关标准与规范¶
[1] Specification of Vehicle-2-X Facilities
AUTOSAR_CP_SWS_V2XFacilities
[2] Specification of Vehicle-2-X Geo Networking
AUTOSAR_CP_SWS_V2XGeoNetworking
[3] Specification of Vehicle-2-X Management
AUTOSAR_CP_SWS_V2XManagement
[4] Specification of Vehicle-2-X Data Manager
AUTOSAR_CP_SWS_V2XDataManager
[5] Specification of Ethernet Interface
AUTOSAR_CP_SWS_EthernetInterface
[6] EN 302 636-5-1 V2.1.1:Vehicular Communication; Geonetworking; Part 5:Transport Protocols; Sub-part 1:Basic Transport Protocols
[7] EN 302 636-4-1 V1.3.1:Vehicular Communication; Geonetworking; Part 4 Geographical addressing and forwarding for point-to-point and point-to-multipoint communications; Sub-part 1:Media-Independent Functionality
[8] TS 102 636-4-2 V1.1.1:Intelligent Transport Systems (ITS); GeoNetworking; Part 4:Geographical addressing and forwarding for point-to-point and point-to-multipoint communications; Sub-part 2:Media-dependent functionalities for ITSG5
[9] User Datagram Protocol https://rfc-editor.org/rfc/rfc768.txt
[10] EN 302 665 V1.1.1:Intelligent Transport Systems (ITS); Communications Architecture
[11] EN 302 637-2 V1.4.1:Intelligent Transport Systems (ITS); Vehicular Communications; Basic Set of Applications; Part 2:Specification of Cooperative Awareness Basic Service
[12] EN 302 637-3 V1.3.1:Intelligent Transport Systems (ITS); Vehicular Communications; Basic Set of Applications; Part 3:Specifications of Decentralized Environmental Notification Basic Service
AUTOSAR_FO_TR_Glossary
[14] General Specification of Basic Software Modules
AUTOSAR_CP_SWS_BSWGeneral
[15] Specification of Default Error Tracer
AUTOSAR_CP_SWS_DefaultErrorTracer
[16] Specification of ECU State Manager
AUTOSAR_CP_SWS_ECUStateManager
[17] General Requirements on Basic Software Modules
AUTOSAR_CP_SRS_BSWGeneral
[18] Requirements on Vehicle-2-X Communication
AUTOSAR_CP_SRS_V2XCommunication
[19] TS 302 636-1 V1.2.1:Intelligent Transport Systems (ITS); GeoNetworking; Part 1: Requirements
[20] TS 302 636-2 V1.2.1:Intelligent Transport Systems (ITS); GeoNetworking; Part 2: Scenarios
3.2. 相关规范¶
AUTOSAR 提供了基础软件模块的通用规范 [14],该规范同样适用于 V2xBtp。
因此,规范 SWS BSW General 应被视为 V2xBtp 的附加且必需的规范。
4. 约束和假设¶
4.1. 限制¶
- V2X 模块遵循 Car-2-Car-Consortium 基本系统标准配置(Basic System Standards Profile)定义的 Day-1 场景指南。
- AUTOSAR R19-11 仅聚焦于 ETSI 定义的车与车通信的欧洲版本。向其他地区的扩展计划在 AUTOSAR 标准的未来版本中进行。
4.2. 汽车域的适用性¶
本规范适用于所有汽车域。
5. 对其他模块的依赖¶
本节描述 V2xBtp 模块与 AUTOSAR 基础软件架构中其他模块的关系。它概述实现 V2xBtp 模块所需或可选的模块,以及这些模块使用的 V2xBtp 服务。
5.1. AUTOSAR DET(默认错误跟踪器)¶
在开发模式下,V2xBtp 模块通过 DET 模块 [15] 的 Det_ReportError 函数上报错误。
5.2. AUTOSAR EcuM(ECU 状态管理器)¶
EcuM [16] 通过调用第 7.3.1 节规定的 V2xBtp_Init() 来初始化 V2xBtp 模块。
5.3. AUTOSAR V2xFac(Vehicle-2-X Facilities)¶
V2xBtp 模块使用的 API 由一个通知服务组成,作为将 BTP 相关数据传递到目标上层(即 V2xFac 模块)的基本媒介。V2xBtp 模块调用的回调服务在 V2xFac 模块中声明并置于其中。该回调为 V2xFac 模块提供接收指示(V2xFac_RxIndication,参见第 6.2 节)服务。
5.4. AUTOSAR V2xGn(Vehicle-2-X GeoNetworking)¶
V2xBtp 模块假定 V2xGn 模块提供发送请求原语(V2xGn_Transmit [2],参见第 6.3 节)。
V2xBtp 模块提供一个供 V2xGn 模块使用的通知服务。V2xGn 模块调用的回调在 V2xBtp 模块中声明并置于其中。该回调为 V2xBtp 模块提供接收指示(V2xBtp_RxIndication,见第 7.4.1 节规定,参见第 6.2 节)服务。
6. 功能规格¶
6.1. 通用功能¶
除非本文档中另有规定,V2xBtp 模块应实现 [6] 规定的基本传输协议(BTP)。
BTP 协议应满足 [19] 规定的 BTP 相关要求,并支持 [20] 规定的场景。
V2xBtp 模块应仅使用 BTP B 报头封装来自 V2xFac 模块的载荷,如 [6] 第 6 章所规定,报头格式和结构如第 7 章所规定。
6.2. 消息接收¶
如果 V2xBTP 接收到的包的端口号与 V2xBtpDestinationPort 中配置的某个容器所含端口号匹配,V2xBtp 模块应调用在该容器 V2xBtpRxIndicationFunctionName 中配置的相应名称的函数,将载荷和 GeoNetworking 参数传递给 V2xFac 模块。
如果找不到 V2xBtpDestinationPort 的配置项,则应静默丢弃该包。
注意: 为调用 V2xFacilities,应每个 BTP 端口配置一个容器,并在 V2xBtpRxIndicationFunctionName 中添加函数名 V2xFac_RxIndication。
V2xBtp 模块应通过 V2xBtp_RxIndication() 回调获取接收到的 GeoNetworking 包的数据(BTP 包)和 GeoNetworking 参数。一旦从对端 GN 实体接收到 GN 包,V2xGn 模块应触发该回调。
6.3. 消息发送¶
V2xBtp 模块应提供 API V2xBtp_Transmit(),以服务来自 V2xFac 模块的发送请求。
触发 V2xBtp_Transmit() 时的源协议操作应按 [6] 第 8.2 章的规定执行。
V2xBtp 模块使用 V2xGn 模块提供的 V2xGn_Transmit() API 向对端 BTP 实体发送 BTP 包。V2xGn_Transmit() 的参数应按 [6] 第 8.2 章设置。这些参数由 V2xFac 模块通过调用 V2xBtp_Transmit() 提供给 V2xBtp 模块。
V2xBtp 模块应采用 BTP-B 报头。因此,GeoNetworking 通用报头的 NH 字段应使用值 2。
V2xBtp 模块应将目的端口信息字段设置为值 0。
6.4. 错误分类¶
文档 [14]「基础软件模块通用规范」的「Error Handling」一章详细描述了基础软件的错误处理。其中最重要的是,它构成了一个由 BSW 模块中可能发生的五种错误类型组成的分类方案。
在此基础上,以下各小节按相应的子节规定了具体错误。
6.4.1. 开发错误¶
如果为 BTP 模块启用了开发错误检测,BTP 模块应检查 API 参数的有效性,并将检测到的错误上报给 DET。
| 错误类型 | 相关错误代码 | 错误值 |
|---|---|---|
| 使用无效参数调用 API 服务 | V2XBTP_E_PARAM | 0x01 |
| 使用无效指针调用 API 服务 | V2XBTP_E_PARAM_POINTER | 0x02 |
| 在模块未初始化的情况下使用 API 服务 | V2XBTP_E_UNINIT | 0x03 |
| V2xBtp 初始化失败 | V2XBTP_E_INIT_FAILED | 0x04 |
6.4.2. 运行时错误¶
没有运行时错误。
6.4.3. 瞬态故障¶
没有瞬态故障。
6.4.4. 生产错误¶
没有生产错误。
6.4.5. 扩展生产错误¶
没有扩展生产错误。
7. API规范¶
7.1. 导入的类型¶
本章列出从以下文件包含的所有类型。
| 模块 | 头文件 | 导入的类型 |
|---|---|---|
| Std | Std_Types.h | Std_ReturnType |
| Std | Std_Types.h | Std_VersionInfoType |
| V2x_GeneralTypes | V2x_GeneralTypes.h | V2x_GnAddressType |
| V2x_GeneralTypes | V2x_GeneralTypes.h | V2x_GnAreaShapeType |
| V2x_GeneralTypes | V2x_GeneralTypes.h | V2x_GnDestinationAreaType |
| V2x_GeneralTypes | V2x_GeneralTypes.h | V2x_GnDestinationType |
| V2x_GeneralTypes | V2x_GeneralTypes.h | V2x_GnLongPositionVectorType |
| V2x_GeneralTypes | V2x_GeneralTypes.h | V2x_GnPacketTransportType |
| V2x_GeneralTypes | V2x_GeneralTypes.h | V2x_GnTxResultType |
| V2x_GeneralTypes | V2x_GeneralTypes.h | V2x_GnUpperProtocolType |
| V2x_GeneralTypes | V2x_GeneralTypes.h | V2x_SecProfileType |
| V2x_GeneralTypes | V2x_GeneralTypes.h | V2x_SecReportType |
| V2x_GeneralTypes | V2x_GeneralTypes.h | V2x_TrafficClassIdType |
| V2xFac | V2xFac.h | V2xFac_RxParamsType |
| V2xGn | V2xGn.h | V2xGn_TxParamsType |
7.2. 类型定义¶
7.2.1. V2xBtp_TxParamsType¶
| 名称 | V2xBtp_TxParamsType | ||
|---|---|---|---|
| 类别 | Structure | ||
| 元素 | upperProtocol | 类型 | V2x_GnUpperProtocolType |
| 元素 | 注释 | 指定 BTP 是交互式(BTP-A)还是非交互式(BTP-B)。 | |
| 元素 | destinationPort | 类型 | uint16 |
| 元素 | 注释 | 标识 BTP 包目的地处 ITS 设施层的协议实体。 | |
| 元素 | transportType | 类型 | V2x_GnPacketTransportType |
| 元素 | 注释 | 包传输类型(GeoUnicast、SingleHopBroadcast、TopologyScopedBroadcast、GeoBroadcast、GeoAnycast)。 | |
| 元素 | destinationAddress | 类型 | V2x_GnAddressType |
| 元素 | 注释 | GeoUnicast 的目的地址。 | |
| 元素 | destinationArea | 类型 | V2x_GnDestinationAreaType |
| 元素 | 注释 | GeoBroadcast/GeoAnycast 的目的区域 | |
| 元素 | destinationType | 类型 | V2x_GnDestinationType |
| 元素 | 注释 | 选择该包使用哪种目的类型(destinationAddress 或 destinationArea)。 | |
| 元素 | secProfile | 类型 | V2x_SecProfileType |
| 元素 | 注释 | 安全配置信息(决定要调用的安全服务)。 | |
| 元素 | maxPacketLifetime | 类型 | uint16 |
| 元素 | 注释 | GeoNetworking 包在被缓冲直到到达目的地之前可容忍的最大时间 [s]。 | |
| 元素 | trafficClassId | 类型 | V2x_TrafficClassIdType |
| 元素 | 注释 | 消息的流量类别 id。 | |
| 描述 | 包含应由 V2xFac 模块传递给发送请求函数(即第 7.3.3 节定义的 V2xBtp_Transmit)的 BTP 和 GeoNetworking 相关参数的结构。 | ||
| 可通过 | V2xBtp.h 获得 |
7.2.2. V2xBtp_RxParamsType¶
| 名称 | V2xBtp_RxParamsType | ||
|---|---|---|---|
| 类别 | Structure | ||
| 元素 | upperProtocol | 类型 | V2x_GnUpperProtocolType |
| 元素 | 注释 | 处理服务原语的协议实体(BTP-A、BTP-B)。 | |
| 元素 | packetTransportType | 类型 | V2x_GnPacketTransportType |
| 元素 | 注释 | 接收到的包的包传输类型。 | |
| 元素 | destinationAddress | 类型 | V2x_GnAddressType |
| 元素 | 注释 | GeoUnicast 包的目的地址 | |
| 元素 | destinationArea | 类型 | V2x_GnDestinationAreaType |
| 元素 | 注释 | GeoBroadcast/GeoAnycast 包的目的区域。 | |
| 元素 | destinationType | 类型 | V2x_GnDestinationType |
| 元素 | 注释 | 选择该包使用哪种目的类型(destinationAddress 或 destinationArea)。 | |
| 元素 | sourcePositionVector | 类型 | V2x_GnLongPositionVectorType |
| 元素 | 注释 | 接收到的 GeoNetworking 包源的地理位置。 | |
| 元素 | securityReport | 类型 | V2x_SecReportType |
| 元素 | 注释 | 解密和验证安全操作的结果信息。该参数由 V2xM 模块提供,并经 Geo Networking 和 BTP 层向上转发到 ITS 设施层。 | |
| 元素 | certificateId | 类型 | uint64 |
| 元素 | 注释 | 源证书的标识,例如证书哈希。该参数由 V2xM 模块提供,并经 GeoNetworking 和 BTP 层向上转发到 ITS 设施层。 | |
| 元素 | sspBits | 类型 | Array of uint8 |
| 元素 | 大小 | 4 | |
| 元素 | 注释 | 发送方权限。 | |
| 元素 | sspLength | 类型 | uint8 |
| 元素 | 注释 | 发送方权限长度 | |
| 元素 | trafficClass | 类型 | V2x_TrafficClassIdType |
| 元素 | 注释 | 源生成 GeoNetworking 包时使用的流量类别。 | |
| 元素 | remPacketLifetime | 类型 | uint16 |
| 元素 | 注释 | 包的剩余生存时间 [s]。 | |
| 元素 | remHopLimit | 类型 | uint8 |
| 元素 | 注释 | 包的剩余跳数限制。 | |
| 元素 | itsAid | 类型 | uint32 |
| 元素 | 注释 | ITS-AID(应用标识符)的数值 | |
| 描述 | 包含与接收到的 BTP 包相关的 BTP 和 GeoNetworking 参数的结构。当 V2xGn 模块从对端 GeoNetworking 实体接收到 GN 包时,该结构应由 V2xGn 模块传递给 V2xBtp 模块。 | ||
| 可通过 | V2xBtp.h 获得 |
7.3. 函数定义¶
7.3.1. V2xBtp_Init¶
说明: 初始化 V2xBtp 模块。可通过 V2xBtp.h 获得。服务 ID 0x01。本服务为同步调用,不可重入。参数 CfgPtr(in):指向配置集的指针。返回值:无。
如果启用了开发错误检测:该函数应检查参数 CfgPtr 是否包含有效配置。如果检查失败,该函数应引发开发错误 V2XBTP_E_INIT_FAILED。
7.3.2. V2xBtp_GetVersionInfo¶
说明: 返回本模块的版本信息。可通过 V2xBtp.h 获得。服务 ID 0x02。本服务为同步调用,可重入。参数 VersionInfoPtr(out):存储本模块版本信息的指针。返回值:无。
如果启用了开发错误检测:该函数应检查参数 VersionInfoPtr 是否有效。如果检查失败,该函数应引发开发错误 V2XBTP_E_PARAM_POINTER。
7.3.3. V2xBtp_Transmit¶
说明: V2xFac 模块调用本 API 以请求向对端 BTP 实体发送一个 BTP-PDU。可通过 V2xBtp.h 获得。服务 ID 0x03。本服务为异步调用,可重入。参数 TransmitParams(in):包含发送请求所用的所有 BTP 和 GeoNetworking 参数的结构。参数 Length(in):DataPtr 所指数据的长度。参数 DataPtr(in):待发送 BTP 包的载荷。返回值:Std_ReturnType,E_OK:发送请求已被接受;E_NOT_OK:发送请求未被接受。
Std_ReturnType V2xBtp_Transmit ( const V2xBtp_TxParamsType* TransmitParams, uint16 Length, const uint8* DataPtr )
如果启用了开发错误检测:该函数应检查先前是否已调用过服务 V2xBtp_Init()。如果检查失败,该函数应引发开发错误 V2XBTP_E_UNINIT。
如果启用了开发错误检测:该函数应检查参数 TransmitParams 是否有效。如果检查失败,该函数应引发开发错误 V2XBTP_E_PARAM_POINTER。
如果启用了开发错误检测:该函数应检查参数 DataPtr 是否有效。如果检查失败,该函数应引发开发错误 V2XBTP_E_PARAM_POINTER。
7.4. 回调通知¶
7.4.1. V2xBtp_RxIndication¶
说明: 通过本 API,V2xBtp 模块获取接收到的 GeoNetworking 包的数据(BTP-PDU)和 GeoNetworking 参数。可通过 V2xBtp.h 获得。服务 ID 0x04。本服务为同步调用,可重入。参数 ReceiveParams(in):包含接收到的 BTP 包的所有 BTP 和 GeoNetworking 参数的结构。参数 Length(in):dataPtr 所指数据的长度。参数 DataPtr(in):接收到的 GeoNetworking 包(BTP-PDU)的载荷。返回值:无。
void V2xBtp_RxIndication ( const V2xBtp_RxParamsType* ReceiveParams, uint16 Length, const uint8* DataPtr )
如果启用了开发错误检测:该函数应检查先前是否已调用过服务 V2xBtp_Init()。如果检查失败,该函数应引发开发错误 V2XBTP_E_UNINIT。
如果启用了开发错误检测:该函数应检查参数 ReceiveParams 是否有效。如果检查失败,该函数应引发开发错误 V2XBTP_E_PARAM_POINTER。
如果启用了开发错误检测:该函数应检查参数 DataPtr 是否有效。如果检查失败,该函数应引发开发错误 V2XBTP_E_PARAM_POINTER。
7.4.2. V2xBtp_CopyTxData¶
说明: V2xGn 模块调用本 API 以请求 V2xBtp 模块将发送数据复制到特定位置。可通过 V2xBtp.h 获得。服务 ID 0x06。本服务为同步调用,不可重入。参数 DestPtr(in):指向 BTP 模块应将数据复制到的缓冲区的指针。参数 Length(inout):in 方向:可供复制数据的最大长度;out 方向:已复制数据的实际长度。返回值:Std_ReturnType,E_OK:数据已复制;E_NOT_OK:长度不匹配。
如果启用了开发错误检测:该函数应检查先前是否已调用过服务 V2xBtp_Init()。如果检查失败,该函数应引发开发错误 V2XBTP_E_UNINIT。
如果启用了开发错误检测:该函数应检查参数 DestPtr 是否有效。如果检查失败,该函数应引发开发错误 V2XBTP_E_PARAM_POINTER。
如果启用了开发错误检测:该函数应检查参数 Length 是否有效(指针不为 NULL_PTR 且值与数据长度匹配)。如果检查失败,该函数应引发开发错误 V2XBTP_E_PARAM_POINTER。
7.5. 期望接口¶
7.5.1. 强制接口¶
本章定义实现模块核心功能所需的全部接口。
| API 函数 | 头文件 | 描述 |
|---|---|---|
| V2xFac_RxIndication | V2xFac.h | V2xBtp 模块调用本 API 原语,将接收到的 BTP 包的数据和 GeoNetworking 参数提供给 V2xFac 模块 |
| V2xGn_Transmit | V2xGn.h | 由 V2x_Btp 调用以发送消息 |
7.5.2. 可选接口¶
本章定义实现模块可选功能所需的全部接口。
| API 函数 | 头文件 | 描述 |
|---|---|---|
| Det_ReportError | Det.h | 上报开发错误的服务 |
7.5.3. 可配置接口¶
7.5.3.1. <User>_RxIndication¶
| 服务名称 | <User>_RxIndication | ||
|---|---|---|---|
| 语法 | void <User>_RxIndication ( const V2xBtp_RxParamsType* ReceiveParams, uint16 Length, const uint8* DataPtr ) | ||
| 同步/异步 | 同步 | ||
| 可重入性 | 不可重入 | ||
| 参数(in) | ReceiveParams | 包含接收到的 BTP 包的所有 BTP 和 GeoNetworking 参数的结构 | |
| 参数(in) | Length | dataPtr 所指数据的长度 | |
| 参数(in) | DataPtr | 接收到的 GeoNetworking 包(BTP 包)的载荷 | |
| 参数(inout) | 无 | ||
| 参数(out) | 无 | ||
| 返回值 | 无 | ||
| 描述 | 通过本 API,BTP 上层模块获取接收到的 BTP 包的数据(BTP-SDU)和 GeoNetworking 参数。 | ||
| 可通过 | 配置参数 V2xBtpCddHeaderFile 获得 |
回调函数应可通过配置容器 V2xBtpRxIndicationFunction 进行配置。
8. 时序图¶
以下时序图展示 V2xBtp 模块与其下层和上层模块(分别为 V2xGn 和 V2xFac)之间的交互。
请注意,这些时序图是为了便于理解本规范而对说明目的的扩展,用于支持第 6 章所述的功能规格和第 7 章所述的 API 规范。
注意,为使时序图更易于阅读和理解,所有参数和返回类型均已省略。
8.1. 发送请求¶
图 8.1 展示了使用 V2xBtp_Transmit() 将一个 ITS-FPDU 从 V2xFac 模块传输到 V2xGn 模块的过程。当 V2xBtp 收到来自上层 V2xFac 模块的发送请求时,它将验证输入参数,通过向从 V2xFac 模块收到的载荷(即 ITSFPDU)添加 BTP 报头来构造一个 BTP 包,然后调用 V2xGn_Transmit() 请求发送一个 GeoNetworking 包,并按 [6] 第 8.2 章为 V2xGn_Transmit() 设置参数。

8.2. 接收指示¶
如图 8.2 所示,V2xGn 模块通过调用 V2xBtp_RxIndication() 向 V2xBtp 模块指示 BTP 包的接收。V2xBtp 模块随后调用 V2xFac 模块的相应接收指示,以向上层通知接收。包载荷、与所收包相关的 GeoNetworking 参数以及用于按需验证的句柄,是通过 V2xBtp_RxIndication() 和 V2xFac_RxIndication() 原语传递给上层的信息。

9. 配置规范¶
一般而言,本章定义配置参数及其到容器中的聚类。为支持本规范,第 9.1 章描述基本知识。我们还规定用于参数规范的模板(表)。我们打算将第 9.1 章保留在规范中以保证理解。
第 9.2 章规定模块 V2xBtp 的结构(容器)和参数。
第 9.3 章规定模块 V2xBtp 的发布信息。
9.1. 如何阅读本章¶
详情参见 [14] 的第 10.1 章「配置规范简介」。
9.2. 容器与配置参数¶
以下各章汇总所有配置参数。参数的详细含义见第 6 章和第 7 章。
9.2.1. 变体¶
当前为 V2xBtp 模块定义了一种配置变体:
9.2.1.1. VARIANT-PRE-COMPILE¶
V2xBtp 模块仅支持 VARIANT-PRE-COMPILE。
9.2.2. V2xBtp¶
| SWS 条目 | [ECUC_V2xBtp_00001] |
|---|---|
| 模块名称 | V2xBtp |
| 描述 | V2xBtp(Vehicle-2-X Basic Transport)模块的配置。 |
| Post-Build 变体支持 | false |
| 支持的配置变体 | VARIANT-PRE-COMPILE |

| 容器名称 | 多重性 | 作用域/依赖 |
|---|---|---|
| V2xBtpGeneral | 1 | 该容器包含 Vehicle-2-X Basic Transport 的通用配置参数。 |
| V2xBtpRxIndicationFunction | 1..* | 该容器包含 V2xBtp 上层的 RxIndication 函数。 |
9.2.3. V2xBtpGeneral¶
| SWS 条目 | [ECUC_V2xBtp_00002] |
|---|---|
| 容器名称 | V2xBtpGeneral |
| 父容器 | V2xBtp |
| 描述 | 该容器包含 Vehicle-2-X Basic Transport 的通用配置参数。 |
| 配置参数 | 见下方参数表 |
| SWS 条目 | [ECUC_V2xBtp_00005] |
|---|---|
| 参数名称 | V2xBtpDevErrorDetect |
| 父容器 | V2xBtpGeneral |
| 描述 | 将默认错误跟踪器(Det)的检测和通知打开或关闭。* true:使能(ON)。* false:禁用(OFF)。 |
| 多重性 | 1 |
| 类型 | EcucBooleanParamDef |
| 默认值 | false |
| Post-Build 变体值 | false |
| 值配置类 | Pre-compile time:x(All Variants);Link time:-;Post-build time:- |
| 作用域/依赖 | scope: local |
| SWS 条目 | [ECUC_V2xBtp_00004] |
|---|---|
| 参数名称 | V2xBtpVersionInfoApi |
| 父容器 | V2xBtpGeneral |
| 描述 | 使能/禁用读取 V2xBtp 模块版本信息的 API。* true:使能(ON)。* false:禁用(OFF)。 |
| 多重性 | 1 |
| 类型 | EcucBooleanParamDef |
| 默认值 | false |
| Post-Build 变体值 | false |
| 值配置类 | Pre-compile time:x(All Variants);Link time:-;Post-build time:- |
| 作用域/依赖 | scope: local |
无包含的容器。

9.2.4. V2xBtpRxIndicationFunction¶
| SWS 条目 | [ECUC_V2xBtp_00009] |
|---|---|
| 容器名称 | V2xBtpRxIndicationFunction |
| 父容器 | V2xBtp |
| 描述 | 该容器包含 V2xBtp 上层的 RxIndication 函数。 |
| Post-Build 变体多重性 | false |
| 多重性配置类 | Pre-compile time:x(All Variants);Link time:-;Post-build time:- |
| 配置参数 | 见下方参数表 |
| SWS 条目 | [ECUC_V2xBtp_00008] |
|---|---|
| 参数名称 | V2xBtpCddHeaderFile |
| 父容器 | V2xBtpRxIndicationFunction |
| 描述 | 本参数指定包含 V2x BtpRxIndicationFunction 模块函数定义的头文件的名称。 |
| 多重性 | 1 |
| 类型 | EcucStringParamDef |
| 默认值 | - |
| 正则表达式 | - |
| Post-Build 变体值 | false |
| 值配置类 | Pre-compile time:x(All Variants);Link time:-;Post-build time:- |
| 作用域/依赖 | scope: local |
| SWS 条目 | [ECUC_V2xBtp_00006] |
|---|---|
| 参数名称 | V2xBtpDestinationPort |
| 父容器 | V2xBtpRxIndicationFunction |
| 描述 | <User>_RxIndication 函数的目的端口。 |
| 多重性 | 1 |
| 类型 | EcucIntegerParamDef |
| 范围 | 0 .. 65535 |
| 默认值 | 0 |
| Post-Build 变体值 | false |
| 值配置类 | Pre-compile time:x(All Variants);Link time:-;Post-build time:- |
| 作用域/依赖 | scope: local |
| SWS 条目 | [ECUC_V2xBtp_00007] |
|---|---|
| 参数名称 | V2xBtpRxIndicationFunctionName |
| 父容器 | V2xBtpRxIndicationFunction |
| 描述 | <User>_RxIndication 回调函数的名称。 |
| 多重性 | 1 |
| 类型 | EcucFunctionNameDef |
| 默认值 | - |
| 正则表达式 | - |
| Post-Build 变体值 | false |
| 值配置类 | Pre-compile time:x(All Variants);Link time:-;Post-build time:- |
| 作用域/依赖 | scope: local |
无包含的容器。

9.3. 发布信息¶
详情参见 [14] 的第 10.3 章「发布信息」。