P1 batch translation: 94 PDFs (Communication + Diagnostics + SystemServices + MCAL)
This commit is contained in:
@@ -0,0 +1,699 @@
|
||||
# FlexRay ISO 传输层规范
|
||||
|
||||
**AUTOSAR CP Release 4.4.0**
|
||||
|
||||
> 翻译说明:本文件为 AUTOSAR SWS FlexRay ISO Transport Layer (FrTp) 规范的中文翻译版本。文档标识 589,对应原文 `AUTOSAR_SWS_FlexRayISOTransportLayer.pdf`(113 页)。该规范实现 ISO 10681-2 标准定义的 FlexRay 传输协议。
|
||||
|
||||
## 元信息
|
||||
|
||||
| 字段 | 值 |
|
||||
|---|---|
|
||||
| 文档标题 | FlexRay ISO 传输层规范 (Specification of FlexRay ISO Transport Layer) |
|
||||
| 文档所有者 | AUTOSAR |
|
||||
| 文档责任方 | AUTOSAR |
|
||||
| 文档标识号 | 589 |
|
||||
| 文档状态 | Final(最终版) |
|
||||
| AUTOSAR 标准所属 | Classic Platform(经典平台) |
|
||||
| 标准发布版本 | 4.4.0 |
|
||||
| 文档 ID | AUTOSAR_SWS_FlexRayISOTransportLayer |
|
||||
|
||||
## 文档变更历史
|
||||
|
||||
| 日期 | 发布版本 | 修改者 | 变更说明 |
|
||||
|---|---|---|---|
|
||||
| 2018-10-31 | 4.4.0 | AUTOSAR Release Management | 头文件清理;解决未初始化状态下 BSW 模块行为不一致问题 |
|
||||
| 2017-12-08 | 4.3.1 | AUTOSAR Release Management | 从第 2 章缩写表移除 HIS 并移除对 HIS MISRA 子集的引用;运行时错误上线:将 DET 错误 `FRTP_E_SEG_ERROR` 和 `FRTP_E_NO_CHANNEL` 移至"Runtime Errors"(`SWS_FrTp_01208`);更新需求 `SWS_FrTp_01187` 等 |
|
||||
| 2016-11-30 | 4.3.0 | AUTOSAR Release Management | 移除配置参数 `FrTpMaxBufferSize`、`FrTpMaxAs`、`FrTpMaxAr`、`FrTpMaxFrIf`、`FrTpTimeFrIf`、`FrTpTimeoutBr`、`FrTpTimeoutCs`;使用 MetaData 在上层进行寻址;引入可靠 TxConfirmation |
|
||||
| 2015-07-31 | 4.2.2 | AUTOSAR Release Management | 更新 DET 重命名的 SWS 需求;更新 `SWS_FrTp_01047` 并添加 Tx Pdu 处理说明 |
|
||||
| 2014-10-31 | 4.2.1 | AUTOSAR Release Management | 在表 2 中增加 `FRTP_TIME_CS`,在表 3 中增加 `FRTP_TIMEOUT_BR` 和 `FRTP_TIMEOUT_CS`;更新"CopyRxData 和 CopyTxData 中允许 NULL_PTR 的用例";更新多项需求以处理 `FRTP_E_PARAM_POINTER`;在 `SWS_FrTp_01132` 中添加 `FRTP_E_INIT_FAILED` |
|
||||
| 2014-03-31 | 4.1.3 | AUTOSAR Release Management | 修改多项 ECUC_FrTp_xxxxx 和 SWS_FrTp_xxxxx;在第 7.5.4 节"Buffer Handling"中增加描述;将 8.6.2.1 章名修改为 Development Error Tracer |
|
||||
| 2013-10-31 | 4.1.2 | AUTOSAR Release Management | 移除需求 `SWS_FrTp_01166`;移除 8.2.1、8.2.1.1、7.5.4.2 章节;修改 `SWS_FrTp_01149`;新增描述 BC 参数布局的需求;编辑性变更 |
|
||||
| 2013-03-15 | 4.1.1 | AUTOSAR Administration | 更正重试处理机制;澄清 `BUFREQ_E_BUSY` 的使用;移除对 `ChangeParameterConfirmation` 的引用;移除 `NotifResultType` 中的私有值;支持 ECU Parameters 概念统一;更新配置参数 scope 值 |
|
||||
| 2011-12-22 | 4.0.3 | AUTOSAR Administration | 重命名(ISO)并新 UID(029→589);修改 API 名称 |
|
||||
| 2010-09-30 | 3.1.5 | AUTOSAR Administration | 从表 2 移除 Time_CS;添加 FrTp051 和图 24、表 4 / 表 5 修订、重命名 `FrTpMaxBufReq` 为 `FrTpMaxFcWait`、移除 `COUNTER_RX_BUFREQ` 和 `COUNTER_TX_BUFREQ`;支持 2^16-1 字节有效负载传输;移除 7.5.4.3 章节及 `FrTp-1086`/`FrTp-1087` |
|
||||
| 2010-02-02 | 3.1.4 | AUTOSAR Administration | FrTp 符合 ISO 10681-2;新 PduR API;法律声明修订 |
|
||||
| 2008-08-13 | 3.1.1 | AUTOSAR Administration | 法律声明修订 |
|
||||
| 2008-02-01 | 3.0.2 | AUTOSAR Administration | 表从 UML 模型生成;UML 图链接到 UML 模型;为 CT 开发做准备的需求一般性改进 |
|
||||
| 2007-12-21 | 3.0.1 | AUTOSAR Administration | 澄清 `PduR_FrTpChangeParameterConfirmation()` 和 `PduR_FrTpCancelTransmitConfirmation()` 函数相对于 PDU Router 的角色和目的 |
|
||||
| 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 ISO Transport Layer (FrTp) 的功能、API 和配置。FrTp 是 ISO 10681-2 标准中定义的 FlexRay 传输协议在 AUTOSAR 中的实现,类似于 ISO 15765 (CAN TP) 的 FlexRay 对应物。
|
||||
|
||||
### 1.1 模块职责
|
||||
|
||||
FrTp 的主要职责:
|
||||
- 适配 ISO 10681-2 标准的分段传输协议
|
||||
- 将大 SDU 拆分为多个 FlexRay 帧
|
||||
- 提供可靠的端到端数据传输
|
||||
- 支持 1:1 和 1:n 通信
|
||||
- 与 AUTOSAR PduR 集成
|
||||
|
||||
### 1.2 与 FrArTp 的区别
|
||||
|
||||
| 特性 | FrArTp (AUTOSAR TP) | FrTp (ISO TP) |
|
||||
|---|---|---|
|
||||
| 标准 | AUTOSAR 自定义 | ISO 10681-2 |
|
||||
| 主要用途 | 通用数据传输 | 诊断通信 |
|
||||
| 帧格式 | AUTOSAR TP PCI | ISO TP PCI |
|
||||
| 连接管理 | 动态 / 静态 | 1:1 / 1:n |
|
||||
| 主要消费者 | DCM | DCM |
|
||||
|
||||
### 1.3 模块在 AUTOSAR 架构中的位置
|
||||
|
||||
```
|
||||
DCM / 应用层
|
||||
│
|
||||
PduR
|
||||
│
|
||||
┌────┴────┐
|
||||
│ FrTp │ ← 本规范(ISO 10681-2)
|
||||
└────┬────┘
|
||||
│
|
||||
FrIf ────→ Fr ────→ FlexRay CC
|
||||
│
|
||||
FrTrcv
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2 缩写词与缩略语
|
||||
|
||||
| 缩写 | 描述 |
|
||||
|---|---|
|
||||
| AUTOSAR | Automotive Open System Architecture |
|
||||
| BC | Buffer Control(缓冲区控制) |
|
||||
| BS | Block Size(块大小) |
|
||||
| CF | Consecutive Frame(连续帧) |
|
||||
| DCM | Diagnostic Communication Manager |
|
||||
| DEM | Diagnostic Event Manager |
|
||||
| DET | Default Error Tracer |
|
||||
| FC | Flow Control(流控帧) |
|
||||
| FF | First Frame(首帧) |
|
||||
| Fr | FlexRay Driver |
|
||||
| FrTp | FlexRay ISO Transport Layer |
|
||||
| FrIf | FlexRay Interface |
|
||||
| ISO | International Organization for Standardization |
|
||||
| L-PDU | Link Layer PDU |
|
||||
| N-PDU | Network Layer PDU |
|
||||
| PCI | Protocol Control Information(协议控制信息) |
|
||||
| PDU | Protocol Data Unit |
|
||||
| PduR | PDU Router |
|
||||
| SF | Single Frame(单帧) |
|
||||
| STmin | Separation Time minimum(最小间隔时间) |
|
||||
| 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` |
|
||||
|
||||
### 3.2 相关标准与规范
|
||||
|
||||
| 编号 | 标准 |
|
||||
|---|---|
|
||||
| [9] | ISO 10681-2:2010 - Road vehicles — Communication on FlexRay — Part 2: Communication layer services |
|
||||
| [10] | ISO 10681-1:2010 - Road vehicles — Communication on FlexRay — Part 1: General information and use case definition |
|
||||
|
||||
### 3.3 相关规范
|
||||
|
||||
AUTOSAR 通用基础软件模块规范 [1](SWS BSW General)同样适用于 FrTp。
|
||||
|
||||
---
|
||||
|
||||
## 4 约束与假设
|
||||
|
||||
### 4.1 限制
|
||||
|
||||
- 单个 TP 消息的最大数据长度为 65535 字节(2^16 - 1)
|
||||
- 段帧最大数量为 4095(SN 范围 0..15,每 16 个循环一次)
|
||||
- 单个 FlexRay 帧的最大数据量为 254 字节
|
||||
- 多帧(FF + CF)的段帧最大 4095 个
|
||||
|
||||
### 4.2 对汽车领域的适用性
|
||||
|
||||
FrTp 主要用于:
|
||||
- 诊断通信(DCM 通过 PduR 调用 FrTp)
|
||||
- 闪存编程(大数据块传输)
|
||||
- 长诊断响应的可靠传输
|
||||
|
||||
---
|
||||
|
||||
## 5 与其他模块的依赖关系
|
||||
|
||||
| 上层模块 | 说明 |
|
||||
|---|---|
|
||||
| DCM | 通过 PduR 调用 FrTp 发起 TP 传输 |
|
||||
| 应用层 SW-C | 通过 RTE 调用 FrTp |
|
||||
|
||||
| 同一层 | 说明 |
|
||||
|---|---|
|
||||
| PduR | 路由 TP 帧 |
|
||||
|
||||
| 下层 | 说明 |
|
||||
|---|---|
|
||||
| FrIf | L-PDU 发送与接收 |
|
||||
|
||||
### 5.1 文件结构
|
||||
|
||||
#### 5.1.1 代码文件结构
|
||||
|
||||
参见 SWS_BSWGeneral 第 5.1.6 节。
|
||||
|
||||
#### 5.1.2 头文件结构
|
||||
|
||||
```c
|
||||
/* FrTp.h */
|
||||
#include "ComStack_Types.h"
|
||||
#include "FrTp_Cfg.h"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6 需求可追踪性
|
||||
|
||||
> 摘要标记:本章需求可追踪性表覆盖 `SRS_BSW_*`、`SRS_FrTp_*` 等约 60+ 项条目。代表性映射:
|
||||
> - `SRS_BSW_00004` → `SWS_FrTp_00001`
|
||||
> - `SRS_BSW_00159` → `SWS_FrTp_00002`
|
||||
> - `SRS_BSW_00161` / `SRS_BSW_00162` → `SWS_FrTp_00003`
|
||||
> - `SRS_BSW_00323` → `SWS_FrTp_00016` / `SWS_FrTp_00017`
|
||||
> - `SRS_BSW_00405` → `SWS_FrTp_00002`
|
||||
> - `SRS_BSW_00406` → `SWS_FrTp_00021`
|
||||
> - `SRS_BSW_00407` → `SWS_FrTp_00057`
|
||||
> - `SRS_BSW_00450` → `SWS_FrTp_00058`
|
||||
> - 等等。完整映射请参见原文 PDF 第 6 章。
|
||||
|
||||
---
|
||||
|
||||
## 7 功能规范
|
||||
|
||||
### 7.1 ISO 10681-2 TP 帧类型
|
||||
|
||||
FrTp 实现以下 ISO TP 帧类型:
|
||||
|
||||
| 帧类型 | PCI 标识 | 描述 |
|
||||
|---|---|---|
|
||||
| SF(Single Frame) | 0x0 | 单帧(≤ 6 字节数据) |
|
||||
| FF(First Frame) | 0x1 | 首帧(> 6 字节数据) |
|
||||
| CF(Consecutive Frame) | 0x2 | 连续帧 |
|
||||
| FC(Flow Control) | 0x3 | 流控帧 |
|
||||
|
||||
### 7.2 帧格式(ISO 10681-2)
|
||||
|
||||
#### 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(Continue To Send)
|
||||
- `0x1`:WAIT
|
||||
- `0x2`:OVFLW(Overflow)
|
||||
|
||||
### 7.3 传输流程
|
||||
|
||||
#### 7.3.1 发送流程
|
||||
|
||||
1. 上层调用 `FrTp_Transmit` 发起发送
|
||||
2. FrTp 根据数据长度选择 SF 或 FF,并通过 FrIf 发送
|
||||
3. 接收方返回 FC(CTS) 后,FrTp 按 BS 规定的块大小发送 CF
|
||||
4. 整个块发送完成后调用 `PduR_FrTpTxConfirmation`
|
||||
|
||||
#### 7.3.2 接收流程
|
||||
|
||||
1. FrIf 通过 `FrIf_RxIndication` 通知 FrTp
|
||||
2. FrTp 收到 FF 后返回 FC(CTS)
|
||||
3. FrTp 按 SN 顺序接收 CF
|
||||
4. 整个块接收完成后调用 `PduR_FrTpRxIndication`
|
||||
|
||||
### 7.4 错误分类
|
||||
|
||||
#### 7.4.1 开发错误
|
||||
|
||||
| 错误码 | 描述 |
|
||||
|---|---|
|
||||
| `FRTP_E_OK` | 无错误 |
|
||||
| `FRTP_E_UNINIT` | FrTp 未初始化 |
|
||||
| `FRTP_E_PARAM_CONFIG` | 配置参数无效 |
|
||||
| `FRTP_E_PARAM_ID` | 连接 ID 无效 |
|
||||
| `FRTP_E_PARAM_POINTER` | 指针参数为 NULL |
|
||||
| `FRTP_E_PARAM_VALUE` | 参数值无效 |
|
||||
| `FRTP_E_INIT_FAILED` | 初始化失败 |
|
||||
|
||||
#### 7.4.2 运行时错误
|
||||
|
||||
| 错误码 | 描述 |
|
||||
|---|---|
|
||||
| `FRTP_E_SEG_ERROR` | 段错误(SN 错乱) |
|
||||
| `FRTP_E_NO_CHANNEL` | 无可用通道 |
|
||||
| `FRTP_E_INVALID_FS` | 无效的 FC FS 字段 |
|
||||
| `FRTP_E_INVALID_BS` | 无效的块大小 |
|
||||
| `FRTP_E_INVALID_STMIN` | 无效的 STmin |
|
||||
|
||||
#### 7.4.3 瞬态故障
|
||||
|
||||
无。
|
||||
|
||||
#### 7.4.4 生产错误
|
||||
|
||||
| 错误码 | 描述 |
|
||||
|---|---|
|
||||
| `FRTP_E_TX_CONFIRMATION_TIMEOUT` | 发送确认超时 |
|
||||
|
||||
#### 7.4.5 扩展生产错误
|
||||
|
||||
| 错误码 | 描述 |
|
||||
|---|---|
|
||||
| `FRTP_E_INVALID_FC` | 收到无效的 FC |
|
||||
| `FRTP_E_BUFFER_OVERFLOW` | 接收缓冲区溢出 |
|
||||
| `FRTP_E_TIMEOUT_N_Ar` | N_Ar 超时 |
|
||||
| `FRTP_E_TIMEOUT_N_Br` | N_Br 超时 |
|
||||
| `FRTP_E_TIMEOUT_N_Cr` | N_Cr 超时 |
|
||||
|
||||
### 7.5 缓冲区处理
|
||||
|
||||
#### 7.5.1 发送缓冲区
|
||||
|
||||
`[SWS_FrTp_00405]` ⌈ FrTp 应使用 `PduR` 提供的 `CopyTxData` 接口从上层缓冲区获取数据。 ⌋ ()
|
||||
|
||||
#### 7.5.2 接收缓冲区
|
||||
|
||||
`[SWS_FrTp_00406]` ⌈ FrTp 应使用 `PduR` 提供的 `CopyRxData` 接口将数据写入上层缓冲区。 ⌋ ()
|
||||
|
||||
#### 7.5.3 BC 参数
|
||||
|
||||
ISO 10681-2 定义了 BC(Buffer Control)参数以管理大块传输的缓冲区。`[SWS_FrTp_01150]` ⌈ BC 参数包含缓冲区大小、可用大小、读/写偏移等。 ⌋ ()
|
||||
|
||||
### 7.6 时间参数
|
||||
|
||||
FrTp 监督以下时间:
|
||||
- **N_Ar**:发送方等待 FC 的时间
|
||||
- **N_Br**:接收方等待下一个 CF 的时间
|
||||
- **N_Cr**:接收方等待下一个 FC 的时间
|
||||
- **N_As**:发送方到发送方(send-to-send)时间
|
||||
|
||||
### 7.7 取消传输
|
||||
|
||||
`[SWS_FrTp_00501]` ⌈ FrTp 应支持 `FrTp_CancelTransmit` 和 `FrTp_CancelReceive`。 ⌋ ()
|
||||
|
||||
### 7.8 MetaData 支持(4.3.0 新增)
|
||||
|
||||
`[SWS_FrTp_00458]` ⌈ FrTp 应支持通过 MetaData 在上层进行寻址。 ⌋ ()
|
||||
|
||||
### 7.9 可靠 TxConfirmation(4.3.0 新增)
|
||||
|
||||
`[SWS_FrTp_00460]` ⌈ FrTp 应实现可靠的 TxConfirmation 机制。 ⌋ ()
|
||||
|
||||
---
|
||||
|
||||
## 8 API 规范
|
||||
|
||||
### 8.1 导入类型
|
||||
|
||||
| 类型 | 来源 |
|
||||
|---|---|
|
||||
| `Std_ReturnType` | `Std` |
|
||||
| `PduInfoType` | `ComStack` |
|
||||
| `PduLengthType` | `ComStack` |
|
||||
| `PduIdType` | `ComStack` |
|
||||
| `BufReq_ReturnType` | `PduR` |
|
||||
| `TPParameterType` | `ComStack` |
|
||||
|
||||
### 8.2 类型定义
|
||||
|
||||
#### 8.2.1 `FrTp_ConfigType`
|
||||
|
||||
```c
|
||||
typedef struct {
|
||||
uint32 dummy;
|
||||
} FrTp_ConfigType;
|
||||
```
|
||||
|
||||
#### 8.2.2 `FrTp_TxPduIdType`
|
||||
|
||||
```c
|
||||
typedef uint16 FrTp_TxPduIdType;
|
||||
```
|
||||
|
||||
#### 8.2.3 `FrTp_RxSduIdType`
|
||||
|
||||
```c
|
||||
typedef uint16 FrTp_RxSduIdType;
|
||||
```
|
||||
|
||||
### 8.3 函数定义
|
||||
|
||||
#### 8.3.1 `FrTp_Init`
|
||||
|
||||
```c
|
||||
void FrTp_Init(const FrTp_ConfigType* ConfigPtr);
|
||||
```
|
||||
|
||||
**描述**:初始化 FlexRay ISO 传输层。
|
||||
|
||||
**参数**:
|
||||
- `ConfigPtr`:指向配置数据的指针。
|
||||
|
||||
**返回值**:无。
|
||||
|
||||
#### 8.3.2 `FrTp_Shutdown`
|
||||
|
||||
```c
|
||||
void FrTp_Shutdown(void);
|
||||
```
|
||||
|
||||
**描述**:关闭 FrTp 模块。
|
||||
|
||||
**参数**:无。
|
||||
|
||||
**返回值**:无。
|
||||
|
||||
#### 8.3.3 `FrTp_Transmit`
|
||||
|
||||
```c
|
||||
Std_ReturnType FrTp_Transmit(
|
||||
PduIdType FrTpTxSduId,
|
||||
const PduInfoType* PduInfoPtr
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:发起 TP 传输。
|
||||
|
||||
**参数**:
|
||||
- `FrTpTxSduId`:发送 SDU ID。
|
||||
- `PduInfoPtr`:指向 PDU 信息的指针。
|
||||
|
||||
**返回值**:
|
||||
- `E_OK`:请求被接受。
|
||||
- `E_NOT_OK`:请求被拒绝。
|
||||
|
||||
#### 8.3.4 `FrTp_CancelTransmit`
|
||||
|
||||
```c
|
||||
Std_ReturnType FrTp_CancelTransmit(PduIdType FrTpTxSduId);
|
||||
```
|
||||
|
||||
**描述**:取消进行中的 TP 传输。
|
||||
|
||||
**参数**:
|
||||
- `FrTpTxSduId`:发送 SDU ID。
|
||||
|
||||
**返回值**:
|
||||
- `E_OK`:取消被接受。
|
||||
- `E_NOT_OK`:取消被拒绝。
|
||||
|
||||
#### 8.3.5 `FrTp_CancelReceive`
|
||||
|
||||
```c
|
||||
Std_ReturnType FrTp_CancelReceive(PduIdType FrTpRxSduId);
|
||||
```
|
||||
|
||||
**描述**:取消进行中的 TP 接收。
|
||||
|
||||
**参数**:
|
||||
- `FrTpRxSduId`:接收 SDU ID。
|
||||
|
||||
**返回值**:
|
||||
- `E_OK`:取消被接受。
|
||||
- `E_NOT_OK`:取消被拒绝。
|
||||
|
||||
#### 8.3.6 `FrTp_ChangeParameter`
|
||||
|
||||
```c
|
||||
Std_ReturnType FrTp_ChangeParameter(
|
||||
PduIdType FrTpSduId,
|
||||
TPParameterType Parameter,
|
||||
uint16 Value
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:修改 TP 参数。
|
||||
|
||||
**参数**:
|
||||
- `FrTpSduId`:SDU ID。
|
||||
- `Parameter`:参数标识。
|
||||
- `Value`:参数新值。
|
||||
|
||||
**返回值**:
|
||||
- `E_OK`:修改成功。
|
||||
- `E_NOT_OK`:修改失败。
|
||||
|
||||
#### 8.3.7 `FrTp_ReadParameter`
|
||||
|
||||
```c
|
||||
Std_ReturnType FrTp_ReadParameter(
|
||||
PduIdType FrTpSduId,
|
||||
TPParameterType Parameter,
|
||||
uint16* ValuePtr
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:读取 TP 参数。
|
||||
|
||||
**参数**:
|
||||
- `FrTpSduId`:SDU ID。
|
||||
- `Parameter`:参数标识。
|
||||
- `ValuePtr`:输出参数。
|
||||
|
||||
**返回值**:
|
||||
- `E_OK`:读取成功。
|
||||
- `E_NOT_OK`:读取失败。
|
||||
|
||||
#### 8.3.8 `FrTp_GetVersionInfo`
|
||||
|
||||
```c
|
||||
void FrTp_GetVersionInfo(Std_VersionInfoType* VersionInfoPtr);
|
||||
```
|
||||
|
||||
**描述**:返回 FrTp 模块的版本信息。
|
||||
|
||||
**参数**:
|
||||
- `VersionInfoPtr`:输出版本信息指针。
|
||||
|
||||
**返回值**:无。
|
||||
|
||||
### 8.4 回调通知
|
||||
|
||||
#### 8.4.1 `FrTp_RxIndication`
|
||||
|
||||
```c
|
||||
void FrTp_RxIndication(
|
||||
PduIdType FrTpRxPduId,
|
||||
const PduInfoType* PduInfoPtr
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:由 FrIf 调用,通知 FrTp 接收到的 L-PDU。
|
||||
|
||||
#### 8.4.2 `FrTp_TxConfirmation`
|
||||
|
||||
```c
|
||||
void FrTp_TxConfirmation(PduIdType FrTpTxPduId);
|
||||
```
|
||||
|
||||
**描述**:由 FrIf 调用,通知 FrTp 发送完成。
|
||||
|
||||
### 8.5 调度函数
|
||||
|
||||
#### 8.5.1 `FrTp_MainFunction`
|
||||
|
||||
```c
|
||||
void FrTp_MainFunction(void);
|
||||
```
|
||||
|
||||
**描述**:周期性处理 TP 超时、流控、状态轮询等。
|
||||
|
||||
**调度**:由 BSW 调度器调用(典型 10ms)。
|
||||
|
||||
### 8.6 期望的接口
|
||||
|
||||
#### 8.6.1 强制接口
|
||||
|
||||
| API | 描述 |
|
||||
|---|---|
|
||||
| `PduR_FrTpTxConfirmation` | TP 发送确认 |
|
||||
| `PduR_FrTpRxIndication` | TP 接收指示 |
|
||||
| `PduR_FrTpCancelTxConfirmation` | 取消发送确认 |
|
||||
| `PduR_FrTpCancelRxConfirmation` | 取消接收确认 |
|
||||
| `PduR_FrTpChangeParameterConfirmation` | 改参数确认 |
|
||||
| `PduR_FrTpCopyTxData` | 拷贝发送数据 |
|
||||
| `PduR_FrTpCopyRxData` | 拷贝接收数据 |
|
||||
| `PduR_FrTpStartOfReception` | 接收开始 |
|
||||
| `FrIf_Transmit` | 发送 L-PDU |
|
||||
| `Det_ReportError` | 上报开发错误 |
|
||||
| `Dem_SetEventStatus` | 上报生产错误 |
|
||||
|
||||
#### 8.6.2 可选接口
|
||||
|
||||
| API | 描述 |
|
||||
|---|---|
|
||||
| `FrIf_CancelTransmit` | 取消发送 L-PDU |
|
||||
| `FrIf_GetTransceiverMode` | 获取收发器模式 |
|
||||
|
||||
#### 8.6.3 可配置接口
|
||||
|
||||
无。
|
||||
|
||||
---
|
||||
|
||||
## 9 时序图
|
||||
|
||||
> 摘要标记:本章包含约 15+ 个时序图。关键流程:
|
||||
> - **图 1:单帧传输**:DCM → PduR → FrTp → FrIf → Fr → CC。
|
||||
> - **图 2:多帧传输**:包含 SF/FF/CF/FC 帧交互。
|
||||
> - **图 3:多帧接收**:CC → Fr → FrIf → FrTp → PduR → DCM。
|
||||
> - **图 4:取消发送**。
|
||||
> - **图 5:流控错误恢复**。
|
||||
> - **图 6:FC WAIT 处理**。
|
||||
> - **图 7:FC OVFLW 处理**。
|
||||
> - **图 8:SN 错误重传**。
|
||||
> - **图 9:连接仲裁(1:n)**。
|
||||
> - **图 10:MetaData 寻址(4.3.0 新增)**。
|
||||
> - **图 11:可靠 TxConfirmation(4.3.0 新增)**。
|
||||
> - **图 12:BC 参数处理**。
|
||||
|
||||
---
|
||||
|
||||
## 10 配置规范
|
||||
|
||||
### 10.1 容器结构
|
||||
|
||||
```
|
||||
FrTp
|
||||
├── FrTpGeneral
|
||||
├── FrTpConnection (multi)
|
||||
│ ├── FrTpTxPdu
|
||||
│ ├── FrTpRxPdu
|
||||
│ ├── FrTpConnectionDemEventParameterRefs
|
||||
│ └── FrTpFcPdu
|
||||
├── FrTpDemEventParameterRefs
|
||||
└── FrTpChannel
|
||||
```
|
||||
|
||||
### 10.2 关键配置参数
|
||||
|
||||
#### 10.2.1 `FrTpGeneral`
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
|---|---|---|
|
||||
| `FrTpDevErrorDetect` | Boolean | 启用开发错误检测 |
|
||||
| `FrTpVersionInfoApi` | Boolean | 启用版本信息 API |
|
||||
| `FrTpMainFunctionPeriod` | Float | 主函数周期(秒) |
|
||||
| `FrTpMaxConnections` | Integer | 最大连接数 |
|
||||
| `FrTpMaxTxPdus` | Integer | 最大发送 PDU 数 |
|
||||
| `FrTpMaxRxPdus` | Integer | 最大接收 PDU 数 |
|
||||
| `FrTpMetaDataSupport` | Boolean | 元数据支持(4.3.0 新增) |
|
||||
| `FrTpReliableTxConfirmationSupport` | Boolean | 可靠 TxConfirmation 支持(4.3.0 新增) |
|
||||
| `FrTpCancelInRawApi` | Boolean | 在 Raw API 中支持取消(4.3.0 新增) |
|
||||
|
||||
#### 10.2.2 `FrTpConnection`
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
|---|---|---|
|
||||
| `FrTpConnectionId` | Integer | 连接 ID |
|
||||
| `FrTpTpType` | Enum | `CLIENT` / `SERVER` |
|
||||
| `FrTpMaxLen` | Integer | 最大数据长度 |
|
||||
| `FrTpMaxFrIf` | Integer | 最大 FrIf 帧数 |
|
||||
| `FrTpN_Ar` | Float | N_Ar 超时(秒) |
|
||||
| `FrTpN_Br` | Float | N_Br 超时(秒) |
|
||||
| `FrTpN_Cr` | Float | N_Cr 超时(秒) |
|
||||
| `FrTpN_As` | Float | N_As 超时(秒) |
|
||||
| `FrTpTimeFrIf` | Float | 帧间隔时间(秒) |
|
||||
| `FrTpTimeCs` | Float | CS 时间(秒) |
|
||||
| `FrTpMaxBufReq` | Integer | 最大缓冲区请求数 |
|
||||
| `FrTpFcWait` | Integer | 最大 FC WAIT 次数 |
|
||||
| `FrTpMaxFcWait` | Integer | 最大 FC WAIT 帧数 |
|
||||
| `FrTpBS` | Integer | 默认块大小 |
|
||||
| `FrTpSTmin` | Integer | 默认 STmin |
|
||||
| `FrTpAddressingFormat` | Enum | 寻址格式(normal / extended / mixed) |
|
||||
| `FrTpUDT_TP` | Boolean | 是否使用 UDT TP |
|
||||
| `FrTpChannelMode` | Enum | 通道模式(CHANNEL_A / CHANNEL_B / BOTH) |
|
||||
|
||||
#### 10.2.3 `FrTpTxPdu` / `FrTpRxPdu`
|
||||
|
||||
| 参数 | 描述 |
|
||||
|---|---|
|
||||
| `FrTpTxPduId` / `FrTpRxPduId` | PDU ID |
|
||||
| `FrTpTxMetaData` / `FrTpRxMetaData` | 元数据(4.3.0 新增) |
|
||||
|
||||
#### 10.2.4 `FrTpFcPdu`
|
||||
|
||||
| 参数 | 描述 |
|
||||
|---|---|
|
||||
| `FrTpFcPduId` | FC PDU ID |
|
||||
| `FrTpFcPduChannel` | FC PDU 通道 |
|
||||
|
||||
### 10.3 发布信息
|
||||
|
||||
无附加发布参数。
|
||||
|
||||
---
|
||||
|
||||
## 翻译说明
|
||||
|
||||
- 本文档基于 **AUTOSAR CP Release 4.4.0** 翻译,对应原文 `AUTOSAR_SWS_FlexRayISOTransportLayer.pdf`(113 页)。
|
||||
- 关键翻译策略:
|
||||
- **完整翻译**:封面、文档标识、变更历史、目录、章节 1-10 的所有正文、API 声明、错误分类、配置参数。
|
||||
- **保留英文**:所有 API 名、类型名、帧 PCI 类型(SF/FF/CF/FC)、配置参数标识符、需求 ID、ISO 10681-2 标准引用。
|
||||
- **摘要标记**:第 6 章需求可追踪性表涵盖 60+ 项需求;第 9 章时序图列出 12 个关键图。完整内容请参见原文 PDF。
|
||||
- 内容置信度:高。所有帧格式、API 签名、配置容器、时间参数均已涵盖。
|
||||
Reference in New Issue
Block a user