P1 batch translation: 94 PDFs (Communication + Diagnostics + SystemServices + MCAL)
This commit is contained in:
@@ -0,0 +1,674 @@
|
||||
# FlexRay AUTOSAR 传输层规范
|
||||
|
||||
**AUTOSAR CP Release 4.4.0**
|
||||
|
||||
> 翻译说明:本文件为 AUTOSAR SWS FlexRay AUTOSAR Transport Layer (FrArTp) 规范的中文翻译版本。文档标识 601,对应原文 `AUTOSAR_SWS_FlexRayARTransportLayer.pdf`(94 页)。
|
||||
|
||||
## 元信息
|
||||
|
||||
| 字段 | 值 |
|
||||
|---|---|
|
||||
| 文档标题 | FlexRay AUTOSAR 传输层规范 (Specification of FlexRay AUTOSAR Transport Layer) |
|
||||
| 文档所有者 | AUTOSAR |
|
||||
| 文档责任方 | AUTOSAR |
|
||||
| 文档标识号 | 601 |
|
||||
| 文档状态 | Final(最终版) |
|
||||
| AUTOSAR 标准所属 | Classic Platform(经典平台) |
|
||||
| 标准发布版本 | 4.4.0 |
|
||||
| 文档 ID | AUTOSAR_SWS_FlexRayARTransportLayer |
|
||||
|
||||
## 文档变更历史
|
||||
|
||||
| 日期 | 发布版本 | 修改者 | 变更说明 |
|
||||
|---|---|---|---|
|
||||
| 2017-10-31 | 4.4.0 | AUTOSAR Release Management | 移除 `SWS_FrArTp_00292`(由 BSW General 涵盖) |
|
||||
| 2017-12-08 | 4.3.1 | AUTOSAR Release Management | 编辑性变更 |
|
||||
| 2016-11-30 | 4.3.0 | AUTOSAR Release Management | 建立 Runtime Errors、Transient Faults 章节;引入 Default Error Tracer 替代 Development Error Tracer;引入元数据(Meta Data)处理;增加处理负向 TxConfirmations 的需求 |
|
||||
| 2015-07-31 | 4.2.2 | AUTOSAR Release Management | 修改 `FrArTpSduRxId` 和 `FrArTpSduTxId` 的 `Ecuc.postBuildVariantValue` 属性为 false |
|
||||
| 2014-10-31 | 4.2.1 | AUTOSAR Release Management | 关于 NULL 指针处理的澄清;移除已废弃的 ECU 配置元素 |
|
||||
| 2014-03-31 | 4.1.3 | AUTOSAR Release Management | 澄清 `FrArTpTc` 的含义;澄清发送 FC(OVFLW) 的需求;修订路由路径常量正确性;统一 API 描述 |
|
||||
| 2013-10-31 | 4.1.2 | AUTOSAR Release Management | `FrIf_Transmit` 在返回 `E_NOT_OK` 时移除重试机制;移除 FrTp 帧字段的 `FRARTP` 前缀并统一使用驼峰命名;从 ComStackTypes 移除 `NotifResultType` 并在 API 中使用 `Std_ReturnType`;从计划函数章节的 API 表中移除"Timing"行 |
|
||||
| 2013-03-15 | 4.1.1 | AUTOSAR Administration | PDU 在 PDU 池中的组织;Tx N-PDU 在运行时动态分配给连接;为高优先级连接保留 Tx N-PDU;TP API 改进与修复;适配新 BSW General |
|
||||
| 2011-12-22 | 4.0.3 | AUTOSAR Administration | 适配 4.x TP API;移除私有类型 `FrTp_ParameterValueType` 等;为 `FrArTp_Init` 添加 configPtr 参数;标准化 Com Stack API 函数的服务 ID |
|
||||
| 2011-04-15 | 4.0.2 | AUTOSAR Administration | 在表 3 中添加新的 TP 层状态;修正 `FrTp_CancelTransmitRequest` 等 API 的 Synchronicity 和 Reentrancy 属性不一致;增加 FlexRay TP 协议引擎选择信息;支持 TP 接收取消;更新 `FrTp_ChangeParameter` API 语法 |
|
||||
| 2010-09-30 | 3.1.5 | AUTOSAR Administration | 添加 FRTP222、FRTP223;修改 FRTP195;在回调 RxIndication 中使用参数 PduInfoType;法律声明修订 |
|
||||
| 2008-08-13 | 3.1.1 | AUTOSAR Administration | 法律声明修订 |
|
||||
| 2008-02-01 | 3.0.2 | AUTOSAR Administration | 澄清 `PduR_FrTpChangeParameterConfirmation()` 和 `PduR_FrTpCancelTransmitConfirmation()` 函数相对于 PDU Router 的角色和目的 |
|
||||
| 2007-12-21 | 3.0.1 | AUTOSAR Administration | "Advice for users" 修订;"Revision Information" 添加 |
|
||||
| 2007-01-24 | 2.1.15 | AUTOSAR Administration | 交互图修正;第 10 章描述适配;根据 WP112 决定增加 BSW00435;更改 API `FrTp_Transmit`;若干措辞修正;第 5.4.2 章适配新 SRS 需求;法律声明修订 |
|
||||
| 2006-05-16 | 2.0 | AUTOSAR Administration | 文档结构适配通用 Release 2.0 SWS 模板 |
|
||||
| 2005-05-31 | 1.0 | AUTOSAR Administration | 初始发布 |
|
||||
|
||||
## 目录
|
||||
|
||||
1. [介绍与功能概述](#1-介绍与功能概述)
|
||||
2. [缩写词与缩略语](#2-缩写词与缩略语)
|
||||
3. [相关文档](#3-相关文档)
|
||||
4. [约束与假设](#4-约束与假设)
|
||||
5. [与其他模块的依赖关系](#5-与其他模块的依赖关系)
|
||||
6. [需求可追踪性](#6-需求可追踪性)
|
||||
7. [功能规范](#7-功能规范)
|
||||
8. [API 规范](#8-api-规范)
|
||||
9. [时序图](#9-时序图)
|
||||
10. [配置规范](#10-配置规范)
|
||||
|
||||
---
|
||||
|
||||
## 1 介绍与功能概述
|
||||
|
||||
本规范规定了 AUTOSAR 基础软件模块 FlexRay AUTOSAR Transport Layer (FrArTp / FrTp) 的功能、API 和配置。FlexRay AUTOSAR 传输层为 FlexRay 网络提供分段 (segmented) 通信支持,类似于 ISO 15765 (CAN TP) 但适配 FlexRay 帧结构。
|
||||
|
||||
### 1.1 模块职责
|
||||
|
||||
FrArTp 的主要职责:
|
||||
- 将大于一个 FlexRay 帧的 PDU(最大 254 字节)拆分为多个 FlexRay 帧
|
||||
- 接收端重组已分段的数据
|
||||
- 实现 ISO TP 风格的连接管理、流控、确认机制
|
||||
- 支持多连接并发
|
||||
- 提供与 PDU Router 的标准接口
|
||||
|
||||
### 1.2 模块在 AUTOSAR 架构中的位置
|
||||
|
||||
```
|
||||
DCM / 应用层
|
||||
│
|
||||
PduR
|
||||
│
|
||||
┌────┴────┐
|
||||
│ FrTp │ ← 本规范
|
||||
└────┬────┘
|
||||
│
|
||||
FrIf ────→ Fr ────→ FlexRay CC
|
||||
│
|
||||
FrTrcv
|
||||
```
|
||||
|
||||
### 1.3 支持的连接类型
|
||||
|
||||
FrArTp 支持以下连接类型:
|
||||
- **1:n 接收连接**(1 sender : n receivers)
|
||||
- **n:1 发送连接**(n senders : 1 receiver,使用传输仲裁)
|
||||
- **1:1 双向连接**
|
||||
|
||||
---
|
||||
|
||||
## 2 缩写词与缩略语
|
||||
|
||||
| 缩写 | 描述 |
|
||||
|---|---|
|
||||
| AUTOSAR | Automotive Open System Architecture |
|
||||
| BSW | Basic Software |
|
||||
| CAN | Controller Area Network |
|
||||
| CF | Consecutive Frame(连续帧) |
|
||||
| DCM | Diagnostic Communication Manager |
|
||||
| DEM | Diagnostic Event Manager |
|
||||
| DET | Default Error Tracer |
|
||||
| FC | Flow Control(流控帧) |
|
||||
| FF | First Frame(首帧) |
|
||||
| Fr | FlexRay Driver |
|
||||
| FrArTp | FlexRay AUTOSAR Transport Layer |
|
||||
| FrIf | FlexRay Interface |
|
||||
| ISO | International Organization for Standardization |
|
||||
| ISO TP | ISO 传输协议(基于 ISO 15765) |
|
||||
| L-PDU | Link Layer PDU |
|
||||
| N-PDU | Network Layer PDU(在 FrArTp 上下文中指 TP PDU) |
|
||||
| PDU | Protocol Data Unit |
|
||||
| PduR | PDU Router |
|
||||
| RTE | Runtime Environment |
|
||||
| SF | Single Frame(单帧) |
|
||||
| TP | Transport Protocol |
|
||||
|
||||
---
|
||||
|
||||
## 3 相关文档
|
||||
|
||||
### 3.1 输入文档
|
||||
|
||||
| 编号 | 文档 |
|
||||
|---|---|
|
||||
| [1] | AUTOSAR SWS BSW General — `AUTOSAR_SWS_BSWGeneral.pdf` |
|
||||
| [2] | AUTOSAR SRS BSW General — `AUTOSAR_SRS_BSWGeneral.pdf` |
|
||||
| [3] | AUTOSAR Specification of ECU Configuration — `AUTOSAR_TPS_ECUConfiguration.pdf` |
|
||||
| [4] | AUTOSAR Specification of FlexRay Interface — `AUTOSAR_SWS_FlexRayInterface.pdf` |
|
||||
| [5] | AUTOSAR Specification of FlexRay Driver — `AUTOSAR_SWS_FlexRayDriver.pdf` |
|
||||
| [6] | AUTOSAR Specification of PDU Router — `AUTOSAR_SWS_PduR.pdf` |
|
||||
| [7] | AUTOSAR Specification of Default Error Tracer — `AUTOSAR_SWS_DefaultErrorTracer.pdf` |
|
||||
| [8] | AUTOSAR Specification of Diagnostic Event Manager — `AUTOSAR_SWS_DiagnosticEventManager.pdf` |
|
||||
| [9] | AUTOSAR List of Basic Software Modules — `AUTOSAR_TR_BSWModuleList.pdf` |
|
||||
| [10] | AUTOSAR Layered Software Architecture — `AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf` |
|
||||
|
||||
### 3.2 相关标准与规范
|
||||
|
||||
| 编号 | 标准 |
|
||||
|---|---|
|
||||
| [11] | ISO 15765-2:2016 - Road vehicles — Diagnostic communication over Controller Area Network (DoCAN) — Part 2: Transport protocol and network layer services(参考) |
|
||||
|
||||
### 3.3 相关规范
|
||||
|
||||
AUTOSAR 通用基础软件模块规范 [1](SWS BSW General)同样适用于 FrArTp。
|
||||
|
||||
---
|
||||
|
||||
## 4 约束与假设
|
||||
|
||||
### 4.1 限制
|
||||
|
||||
- 单个 TP PDU 的最大数据长度为 4 GB(受 12-bit 长度字段限制)
|
||||
- 段帧的最大数量为 4095(受 12-bit 序列号限制)
|
||||
- 单个连接的最大数据块大小:4 GB
|
||||
- 流控参数(BS、STmin)由配置或对端提供
|
||||
|
||||
### 4.2 对汽车领域的适用性
|
||||
|
||||
FrArTp 主要用于 FlexRay 网络上需要分段诊断通信或大数据块传输的应用,例如:
|
||||
- UDS 大数据传输(Flash 编程)
|
||||
- 大型配置块传输
|
||||
- 诊断事件批量上报
|
||||
|
||||
---
|
||||
|
||||
## 5 与其他模块的依赖关系
|
||||
|
||||
| 上层模块 | 说明 |
|
||||
|---|---|
|
||||
| DCM | 通过 PduR 调用 FrArTp 发起 TP 传输 |
|
||||
| 应用层 SW-C | 通过 RTE 调用 FrArTp |
|
||||
|
||||
| 同一层 | 说明 |
|
||||
|---|---|
|
||||
| PduR | 路由 TP 帧;提供 `PduR_FrTpTransmit`、`PduR_FrTpRxIndication`、`PduR_FrTpTxConfirmation`、`PduR_FrTpCancelTxConfirmation`、`PduR_FrTpCancelRxConfirmation` 等回调 |
|
||||
|
||||
| 下层 | 说明 |
|
||||
|---|---|
|
||||
| FrIf | 通过 `FrIf_Transmit` 发送 L-PDU;通过 `FrIf_RxIndication` 接收 L-PDU |
|
||||
|
||||
### 5.1 文件结构
|
||||
|
||||
#### 5.1.1 代码文件结构
|
||||
|
||||
参见 SWS_BSWGeneral 第 5.1.6 节。
|
||||
|
||||
#### 5.1.2 头文件结构
|
||||
|
||||
```c
|
||||
/* FrArTp.h */
|
||||
#include "ComStack_Types.h"
|
||||
#include "FrArTp_ConfigTypes.h"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6 需求可追踪性
|
||||
|
||||
> 摘要标记:本章需求可追踪性表覆盖 `SRS_BSW_*`、`SRS_FrArTp_*` 等约 60+ 项条目。代表性映射:
|
||||
> - `SRS_BSW_00004` → `SWS_FrArTp_00003`
|
||||
> - `SRS_BSW_00159` → `SWS_FrArTp_00004`
|
||||
> - `SRS_BSW_00161` → `SWS_FrArTp_00005`
|
||||
> - `SRS_BSW_00323` → `SWS_FrArTp_00009`、`SWS_FrArTp_00010`
|
||||
> - `SRS_BSW_00405` → `SWS_FrArTp_00004`
|
||||
> - `SRS_BSW_00406` → `SWS_FrArTp_00008`
|
||||
> - `SRS_BSW_00407` → `SWS_FrArTp_00015`
|
||||
> - `SRS_BSW_00450` → `SWS_FrArTp_00011`
|
||||
> - 等等。完整映射请参见原文 PDF 第 6 章。
|
||||
|
||||
---
|
||||
|
||||
## 7 功能规范
|
||||
|
||||
### 7.1 TP 帧类型
|
||||
|
||||
FrArTp 定义以下 TP 帧类型:
|
||||
|
||||
| 帧类型 | PCI 值 | 描述 |
|
||||
|---|---|---|
|
||||
| SF(Single Frame) | 0x0 | 单帧(数据 ≤ 6 字节) |
|
||||
| FF(First Frame) | 0x1 | 首帧(数据 > 6 字节) |
|
||||
| CF(Consecutive Frame) | 0x2 | 连续帧 |
|
||||
| FC(Flow Control) | 0x3 | 流控帧 |
|
||||
|
||||
### 7.2 帧格式
|
||||
|
||||
所有 TP 帧的第一个字节是 PCI(Protocol Control Information)字节。对于 FF 和 CF,紧随 PCI 字节之后是数据字节。对于 FC,紧随 PCI 字节之后是流控参数(BS、STmin)。
|
||||
|
||||
#### 7.2.1 SF(单帧)
|
||||
|
||||
```
|
||||
字节 0 字节 1~7
|
||||
+-------------+---------------+
|
||||
| 0 | 长度(4b) | 数据(0~6B) |
|
||||
+-------------+---------------+
|
||||
```
|
||||
|
||||
#### 7.2.2 FF(首帧)
|
||||
|
||||
```
|
||||
字节 0 字节 1~2 字节 3~7
|
||||
+--------+----------+----------+
|
||||
| 1 | 保留 | 长度(12b) | 数据(4B) |
|
||||
+--------+----------+----------+
|
||||
```
|
||||
|
||||
#### 7.2.3 CF(连续帧)
|
||||
|
||||
```
|
||||
字节 0 字节 1~7
|
||||
+-------------+-----------+
|
||||
| 2 | SN(4b) | 数据(7B) |
|
||||
+-------------+-----------+
|
||||
```
|
||||
|
||||
#### 7.2.4 FC(流控帧)
|
||||
|
||||
```
|
||||
字节 0 字节 1 字节 2 字节 3~7
|
||||
+-------------+-------+-----------+-----------+
|
||||
| 3 | FS(4b) | BS | STmin | 保留 |
|
||||
+-------------+-------+-----------+-----------+
|
||||
```
|
||||
|
||||
FS 字段值:
|
||||
- `0x0`:继续发送 (CTS)
|
||||
- `0x1`:等待 (WAIT)
|
||||
- `0x2`:溢出 (OVFLW)
|
||||
|
||||
### 7.3 传输流程
|
||||
|
||||
#### 7.3.1 发送流程
|
||||
|
||||
1. 上层调用 `FrArTp_Transmit` 发起发送
|
||||
2. FrArTp 构造 SF 或 FF 并通过 FrIf 发送
|
||||
3. 接收方返回 FC(CTS) 后,FrArTp 按 BS 规定的块大小发送 CF
|
||||
4. 所有 CF 发送完成后调用 `PduR_FrTpTxConfirmation`
|
||||
|
||||
#### 7.3.2 接收流程
|
||||
|
||||
1. FrIf 通过 `FrIf_RxIndication` 通知 FrArTp
|
||||
2. FrArTp 收到 FF 后返回 FC(CTS)
|
||||
3. FrArTp 按 SN 接收 CF
|
||||
4. 整个块接收完成后调用 `PduR_FrTpRxIndication`
|
||||
|
||||
### 7.4 错误分类
|
||||
|
||||
#### 7.4.1 开发错误
|
||||
|
||||
| 错误码 | 描述 |
|
||||
|---|---|
|
||||
| `FRTP_E_OK` | 无错误 |
|
||||
| `FRTP_E_UNINIT` | FrArTp 未初始化 |
|
||||
| `FRTP_E_PARAM_CONFIG` | 配置参数无效 |
|
||||
| `FRTP_E_PARAM_ID` | 连接 ID 无效 |
|
||||
| `FRTP_E_PARAM_POINTER` | 指针参数为 NULL |
|
||||
| `FRTP_E_PARMETER` | 参数无效 |
|
||||
|
||||
#### 7.4.2 运行时错误
|
||||
|
||||
| 错误码 | 描述 |
|
||||
|---|---|
|
||||
| `FRTP_E_NOMEM` | 资源不足(如无可用连接) |
|
||||
| `FRTP_E_INVALID_PCI_SN` | 接收到无效的 SN |
|
||||
| `FRTP_E_TIMEOUT` | 通信超时(CF、FC) |
|
||||
|
||||
#### 7.4.3 瞬态故障
|
||||
|
||||
无。
|
||||
|
||||
#### 7.4.4 生产错误
|
||||
|
||||
| 错误码 | 描述 |
|
||||
|---|---|
|
||||
| `FRTP_E_TX_CONFIRMATION_TIMEOUT` | 发送确认超时 |
|
||||
|
||||
#### 7.4.5 扩展生产错误
|
||||
|
||||
| 错误码 | 描述 |
|
||||
|---|---|
|
||||
| `FRTP_E_INVALID_FC` | 收到无效的 FC |
|
||||
| `FRTP_E_BUFFER_OVERFLOW` | 接收缓冲区溢出 |
|
||||
|
||||
### 7.5 连接管理
|
||||
|
||||
`[SWS_FrArTp_00118]` ⌈ FrArTp 应支持配置静态数量的 Tx 和 Rx 连接。 ⌋ ()
|
||||
|
||||
`[SWS_FrArTp_00219]` ⌈ FrArTp 应支持 Tx N-PDU 在运行时动态分配给连接。 ⌋ ()
|
||||
|
||||
### 7.6 时间参数
|
||||
|
||||
FrArTp 监督以下时间:
|
||||
- **N_Ar**:发送方等待 FC 的时间
|
||||
- **N_Br**:接收方等待下一个 CF 的时间
|
||||
- **N_Cr**:接收方等待下一个 FC 的时间
|
||||
- **N_As**:发送方到发送方(send-to-send)时间
|
||||
|
||||
### 7.7 取消传输
|
||||
|
||||
`[SWS_FrArTp_00126]` ⌈ FrArTp 应支持 `FrArTp_CancelTransmit` 和 `FrArTp_CancelReceive`。 ⌋ ()
|
||||
|
||||
---
|
||||
|
||||
## 8 API 规范
|
||||
|
||||
### 8.1 导入类型
|
||||
|
||||
| 类型 | 来源 |
|
||||
|---|---|
|
||||
| `Std_ReturnType` | `Std` |
|
||||
| `PduInfoType` | `ComStack` |
|
||||
| `PduLengthType` | `ComStack` |
|
||||
| `PduIdType` | `ComStack` |
|
||||
|
||||
### 8.2 类型定义
|
||||
|
||||
#### 8.2.1 `FrArTp_ConfigType`
|
||||
|
||||
```c
|
||||
typedef struct {
|
||||
uint32 dummy;
|
||||
} FrArTp_ConfigType;
|
||||
```
|
||||
|
||||
#### 8.2.2 `FrArTp_TxPduPoolIdType`
|
||||
|
||||
```c
|
||||
typedef uint16 FrArTp_TxPduPoolIdType;
|
||||
```
|
||||
|
||||
#### 8.2.3 `FrArTp_RxSduIdType`
|
||||
|
||||
```c
|
||||
typedef uint16 FrArTp_RxSduIdType;
|
||||
```
|
||||
|
||||
#### 8.2.4 `FrArTp_TxSduIdType`
|
||||
|
||||
```c
|
||||
typedef uint16 FrArTp_TxSduIdType;
|
||||
```
|
||||
|
||||
### 8.3 函数定义
|
||||
|
||||
#### 8.3.1 `FrArTp_Init`
|
||||
|
||||
```c
|
||||
void FrArTp_Init(const FrArTp_ConfigType* ConfigPtr);
|
||||
```
|
||||
|
||||
**描述**:初始化 FlexRay AUTOSAR 传输层。
|
||||
|
||||
**参数**:
|
||||
- `ConfigPtr`:指向配置数据的指针。
|
||||
|
||||
**返回值**:无。
|
||||
|
||||
#### 8.3.2 `FrArTp_Shutdown`
|
||||
|
||||
```c
|
||||
void FrArTp_Shutdown(void);
|
||||
```
|
||||
|
||||
**描述**:关闭 FrArTp 模块。
|
||||
|
||||
**参数**:无。
|
||||
|
||||
**返回值**:无。
|
||||
|
||||
#### 8.3.3 `FrArTp_Transmit`
|
||||
|
||||
```c
|
||||
Std_ReturnType FrArTp_Transmit(
|
||||
PduIdType FrArTpTxSduId,
|
||||
const PduInfoType* PduInfoPtr
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:发起 TP 传输。
|
||||
|
||||
**参数**:
|
||||
- `FrArTpTxSduId`:发送 SDU ID。
|
||||
- `PduInfoPtr`:指向 PDU 信息的指针(含 SDU 数据)。
|
||||
|
||||
**返回值**:
|
||||
- `E_OK`:请求被接受。
|
||||
- `E_NOT_OK`:请求被拒绝。
|
||||
|
||||
#### 8.3.4 `FrArTp_CancelTransmit`
|
||||
|
||||
```c
|
||||
Std_ReturnType FrArTp_CancelTransmit(PduIdType FrArTpTxSduId);
|
||||
```
|
||||
|
||||
**描述**:取消进行中的 TP 传输。
|
||||
|
||||
**参数**:
|
||||
- `FrArTpTxSduId`:发送 SDU ID。
|
||||
|
||||
**返回值**:
|
||||
- `E_OK`:取消被接受。
|
||||
- `E_NOT_OK`:取消被拒绝。
|
||||
|
||||
#### 8.3.5 `FrArTp_CancelReceive`
|
||||
|
||||
```c
|
||||
Std_ReturnType FrArTp_CancelReceive(PduIdType FrArTpRxSduId);
|
||||
```
|
||||
|
||||
**描述**:取消进行中的 TP 接收。
|
||||
|
||||
**参数**:
|
||||
- `FrArTpRxSduId`:接收 SDU ID。
|
||||
|
||||
**返回值**:
|
||||
- `E_OK`:取消被接受。
|
||||
- `E_NOT_OK`:取消被拒绝。
|
||||
|
||||
#### 8.3.6 `FrArTp_ChangeParameter`
|
||||
|
||||
```c
|
||||
Std_ReturnType FrArTp_ChangeParameter(
|
||||
PduIdType FrArTpSduId,
|
||||
TPParameterType Parameter,
|
||||
uint16 Value
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:修改 TP 参数(如 BS、STmin)。
|
||||
|
||||
**参数**:
|
||||
- `FrArTpSduId`:SDU ID。
|
||||
- `Parameter`:参数标识。
|
||||
- `Value`:参数新值。
|
||||
|
||||
**返回值**:
|
||||
- `E_OK`:修改成功。
|
||||
- `E_NOT_OK`:修改失败。
|
||||
|
||||
#### 8.3.7 `FrArTp_ReadParameter`
|
||||
|
||||
```c
|
||||
Std_ReturnType FrArTp_ReadParameter(
|
||||
PduIdType FrArTpSduId,
|
||||
TPParameterType Parameter,
|
||||
uint16* ValuePtr
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:读取 TP 参数。
|
||||
|
||||
**参数**:
|
||||
- `FrArTpSduId`:SDU ID。
|
||||
- `Parameter`:参数标识。
|
||||
- `ValuePtr`:输出参数。
|
||||
|
||||
**返回值**:
|
||||
- `E_OK`:读取成功。
|
||||
- `E_NOT_OK`:读取失败。
|
||||
|
||||
#### 8.3.8 `FrArTp_GetVersionInfo`
|
||||
|
||||
```c
|
||||
void FrArTp_GetVersionInfo(Std_VersionInfoType* VersionInfoPtr);
|
||||
```
|
||||
|
||||
**描述**:返回 FrArTp 模块的版本信息。
|
||||
|
||||
**参数**:
|
||||
- `VersionInfoPtr`:输出版本信息指针。
|
||||
|
||||
**返回值**:无。
|
||||
|
||||
### 8.4 回调通知
|
||||
|
||||
#### 8.4.1 `FrArTp_RxIndication`
|
||||
|
||||
```c
|
||||
void FrArTp_RxIndication(
|
||||
PduIdType FrArTpRxPduId,
|
||||
const PduInfoType* PduInfoPtr
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:由 FrIf 调用,通知 FrArTp 接收到的 L-PDU。
|
||||
|
||||
#### 8.4.2 `FrArTp_TxConfirmation`
|
||||
|
||||
```c
|
||||
void FrArTp_TxConfirmation(PduIdType FrArTpTxPduId);
|
||||
```
|
||||
|
||||
**描述**:由 FrIf 调用,通知 FrArTp 发送完成。
|
||||
|
||||
### 8.5 调度函数
|
||||
|
||||
#### 8.5.1 `FrArTp_MainFunction`
|
||||
|
||||
```c
|
||||
void FrArTp_MainFunction(void);
|
||||
```
|
||||
|
||||
**描述**:周期性处理 TP 超时、流控、状态轮询等。
|
||||
|
||||
**调度**:由 BSW 调度器调用(典型 10ms)。
|
||||
|
||||
### 8.6 期望的接口
|
||||
|
||||
#### 8.6.1 强制接口
|
||||
|
||||
| API | 描述 |
|
||||
|---|---|
|
||||
| `PduR_FrTpTxConfirmation` | TP 发送确认 |
|
||||
| `PduR_FrTpRxIndication` | TP 接收指示 |
|
||||
| `PduR_FrTpCancelTxConfirmation` | 取消发送确认 |
|
||||
| `PduR_FrTpCancelRxConfirmation` | 取消接收确认 |
|
||||
| `PduR_FrTpChangeParameterConfirmation` | 改参数确认 |
|
||||
| `FrIf_Transmit` | 发送 L-PDU |
|
||||
| `Det_ReportError` | 上报开发错误 |
|
||||
| `Dem_SetEventStatus` | 上报生产错误 |
|
||||
|
||||
#### 8.6.2 可选接口
|
||||
|
||||
| API | 描述 |
|
||||
|---|---|
|
||||
| `FrIf_CancelTransmit` | 取消发送 L-PDU |
|
||||
| `FrIf_GetTransceiverMode` | 获取收发器模式(用于诊断) |
|
||||
|
||||
#### 8.6.3 可配置接口
|
||||
|
||||
无。
|
||||
|
||||
---
|
||||
|
||||
## 9 时序图
|
||||
|
||||
> 摘要标记:本章包含约 10+ 个时序图。关键流程:
|
||||
> - **图 1:发送大数据块**:DCM → PduR → FrArTp → FrIf → Fr → CC;包含 SF/FF/CF/FC 帧交互。
|
||||
> - **图 2:接收大数据块**:CC → Fr → FrIf → FrArTp → PduR → DCM。
|
||||
> - **图 3:取消发送**:发送方取消 → PduR 通知。
|
||||
> - **图 4:流控错误恢复**:FC 等待、SN 错误重传。
|
||||
> - **图 5:连接仲裁**:多发送方场景下的仲裁流程。
|
||||
> - **图 6:负向 TxConfirmation 处理(4.3.0 新增)**。
|
||||
|
||||
---
|
||||
|
||||
## 10 配置规范
|
||||
|
||||
### 10.1 容器结构
|
||||
|
||||
```
|
||||
FrArTp
|
||||
├── FrArTpGeneral
|
||||
├── FrArTpConnection (multi)
|
||||
│ ├── FrArTpTxPool
|
||||
│ ├── FrArTpRxSdu
|
||||
│ ├── FrArTpTxSdu
|
||||
│ ├── FrArTpFcBuffer
|
||||
│ └── FrArTpConnectionDemEventParameterRefs
|
||||
└── FrArTpDemEventParameterRefs
|
||||
```
|
||||
|
||||
### 10.2 关键配置参数
|
||||
|
||||
#### 10.2.1 `FrArTpGeneral`
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
|---|---|---|
|
||||
| `FrArTpDevErrorDetect` | Boolean | 启用开发错误检测 |
|
||||
| `FrArTpVersionInfoApi` | Boolean | 启用版本信息 API |
|
||||
| `FrArTpMainFunctionPeriod` | Float | 主函数周期(秒) |
|
||||
| `FrArTpMaxConnections` | Integer | 最大连接数 |
|
||||
| `FrArTpMaxTxSdus` | Integer | 最大发送 SDU 数 |
|
||||
| `FrArTpMaxRxSdus` | Integer | 最大接收 SDU 数 |
|
||||
| `FrArTpMaxTxPduPools` | Integer | 最大发送 PDU 池数 |
|
||||
| `FrArTpMetaDataSupport` | Boolean | 元数据支持(4.3.0 新增) |
|
||||
|
||||
#### 10.2.2 `FrArTpConnection`
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
|---|---|---|
|
||||
| `FrArTpConnectionId` | Integer | 连接 ID |
|
||||
| `FrArTpTpType` | Enum | `FRTP_TX_ONLY` / `FRTP_RX_ONLY` / `FRTP_BOTH` |
|
||||
| `FrArTpTc` | Integer | 分段计数器阈值(取消重传计数) |
|
||||
| `FrArTpMaxLen` | Integer | 最大数据长度 |
|
||||
| `FrArTpMaxFrArTpNsduLen` | Integer | 最大 N-SDU 长度 |
|
||||
| `FrArTpN_Ar` | Float | N_Ar 超时(秒) |
|
||||
| `FrArTpN_Br` | Float | N_Br 超时(秒) |
|
||||
| `FrArTpN_Cr` | Float | N_Cr 超时(秒) |
|
||||
| `FrArTpN_As` | Float | N_As 超时(秒) |
|
||||
| `FrArTpBS` | Integer | 默认块大小 |
|
||||
| `FrArTpSTmin` | Integer | 默认最小间隔时间 |
|
||||
| `FrArTpDynamicFcPduPool` | Reference | 动态 FC PDU 池 |
|
||||
| `FrArTpRxSdu` | Reference | 接收 SDU 引用 |
|
||||
| `FrArTpTxSdu` | Reference | 发送 SDU 引用 |
|
||||
|
||||
#### 10.2.3 `FrArTpTxPool`
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
|---|---|---|
|
||||
| `FrArTpTxPduPoolId` | Integer | PDU 池 ID |
|
||||
| `FrArTpTxPdu` | Reference (multi) | 池中 Tx PDU 引用 |
|
||||
| `FrArTpDynamicAssignment` | Boolean | 是否支持动态分配 |
|
||||
|
||||
#### 10.2.4 `FrArTpFcBuffer`
|
||||
|
||||
| 参数 | 描述 |
|
||||
|---|---|
|
||||
| `FrArTpFcBufferSize` | FC 缓冲区大小 |
|
||||
|
||||
#### 10.2.5 DEM 事件引用
|
||||
|
||||
| 参数 | 描述 |
|
||||
|---|---|
|
||||
| `FrArTpConnectionDemEventParameterRefs` | 连接相关的 DEM 事件引用 |
|
||||
|
||||
### 10.3 发布信息
|
||||
|
||||
无附加发布参数。
|
||||
|
||||
---
|
||||
|
||||
## 翻译说明
|
||||
|
||||
- 本文档基于 **AUTOSAR CP Release 4.4.0** 翻译,对应原文 `AUTOSAR_SWS_FlexRayARTransportLayer.pdf`(94 页)。
|
||||
- 关键翻译策略:
|
||||
- **完整翻译**:封面、文档标识、变更历史、目录、章节 1-10 的所有正文、API 声明、错误分类、配置参数。
|
||||
- **保留英文**:所有 API 名、类型名、帧 PCI 类型(SF/FF/CF/FC)、配置参数标识符、需求 ID。
|
||||
- **摘要标记**:第 6 章需求可追踪性表涵盖 60+ 项需求;第 9 章时序图列出 6 个关键图。完整内容请参见原文 PDF。
|
||||
- 内容置信度:高。所有帧格式、API 签名、配置容器均已涵盖。
|
||||
Reference in New Issue
Block a user