P1 batch translation: 94 PDFs (Communication + Diagnostics + SystemServices + MCAL)
This commit is contained in:
@@ -0,0 +1,460 @@
|
||||
# SAE J1939 传输层规范 (Specification of a Transport Layer for SAE J1939)
|
||||
|
||||
> **AUTOSAR CP Release 4.4.0**
|
||||
> **文档 ID 425: AUTOSAR_SWS_SAEJ1939TransportLayer**
|
||||
|
||||
## 元信息
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 文档标题 | SAE J1939 传输层规范 |
|
||||
| 文档所有者 | AUTOSAR |
|
||||
| 文档责任方 | AUTOSAR |
|
||||
| 文档标识号 | 425 |
|
||||
| 文档状态 | Final |
|
||||
| 所属 AUTOSAR 标准 | Classic Platform |
|
||||
| 所属标准版本 | 4.4.0 |
|
||||
|
||||
## 文档变更历史
|
||||
|
||||
| 日期 | 版本 | 变更方 | 变更说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| 2018-10-31 | 4.4.0 | AUTOSAR Release Management | MetaData 处理改进;细微更正 |
|
||||
| 2017-12-08 | 4.3.1 | AUTOSAR Release Management | 修正/澄清 |
|
||||
| 2016-11-30 | 4.3.0 | AUTOSAR Release Management | 关于直接 N-PDU 处理 |
|
||||
| 2015-07-31 | 4.2.2 | AUTOSAR Release Management | 编辑变更 |
|
||||
| 2014-10-31 | 4.2.1 | AUTOSAR Release Management | 初始正式版本 |
|
||||
|
||||
---
|
||||
|
||||
## 目录
|
||||
|
||||
- [1. 介绍与功能概述](#1-介绍与功能概述)
|
||||
- [2. 术语表与缩略语](#2-术语表与缩略语)
|
||||
- [3. 相关文档](#3-相关文档)
|
||||
- [4. 约束与假设](#4-约束与假设)
|
||||
- [5. 与其他模块的依赖](#5-与其他模块的依赖)
|
||||
- [6. 需求可追溯性](#6-需求可追溯性)
|
||||
- [7. 功能规范](#7-功能规范)
|
||||
- [8. API 规范](#8-api-规范)
|
||||
- [9. 时序图](#9-时序图)
|
||||
- [10. 配置规范](#10-配置规范)
|
||||
- [11. 不适用需求](#11-不适用需求)
|
||||
|
||||
---
|
||||
|
||||
## 1. 介绍与功能概述
|
||||
|
||||
本规范描述了 AUTOSAR 基础软件模块 **J1939Tp** 的功能、API 和配置,该模块为 AUTOSAR 实现兼容 SAE J1939 的传输层。术语 J1939Tp 和 J1939 传输层模块在本文档中同义。
|
||||
|
||||
SAE J1939 在卡车领域被广泛接受,包含描述通信协议各层(从物理层到诊断和应用层)的多个文档。SAE J1939-21 描述数据链路和传输层,包含两种传输协议变体:
|
||||
- **BAM (Broadcast Announce Message)**:用于广播消息
|
||||
- **CMDT (Connection Mode Data Transfer)**:用于点对点连接
|
||||
|
||||
本规范定义如何在 AUTOSAR 架构中实现 SAE J1939-21 的传输协议。仅描述与 AUTOSAR 架构相关的实现部分。具体定时等协议细节不在本规范中。要实现 J1939 传输层模块,读者必须能访问原始 SAE J1939-21 规范文档。
|
||||
|
||||
J1939Tp 模块接口至 PDU 路由器和 CAN 接口。
|
||||
|
||||
J1939Tp 的目的是分段和重组超过 8 字节的 J1939 PGN (N-SDU)。分段后的消息通过 CAN 接口发送和接收。
|
||||
|
||||
J1939Tp 支持超过 8 字节的固定大小和可变大小 N-SDU (I-PDU)。不超过 8 字节的 I-PDU 直接在 PduR 和 CanIf 之间交换。
|
||||
|
||||
固定大小 N-SDU 总是被 J1939Tp 分段,而可变大小 N-SDU 仅在超过 8 字节时才被分段。
|
||||
|
||||
J1939Tp 提供以下功能:
|
||||
- 发送方向的分段和直接传输
|
||||
- 接收方向的重组和直接接收
|
||||
- 数据流控制
|
||||
- 超时监视
|
||||
- 分段或重组期间的错误检测
|
||||
|
||||
---
|
||||
|
||||
## 2. 术语表与缩略语
|
||||
|
||||
### J1939 术语
|
||||
|
||||
| 术语 | 解释 |
|
||||
| --- | --- |
|
||||
| Address Claiming | SAE J1939 的网络管理。给每个 ECU 分配临时 8 位标识符 |
|
||||
| J1939 Diagnostics | SAE J1939 诊断层,见 SAE J1939/73 |
|
||||
| Parameter | SAE J1939 应用层信号,由 SPN 唯一标识 |
|
||||
| Parameter Group | SAE J1939 应用层消息,由 PGN 唯一标识 |
|
||||
| Transport Protocol | 用于分段传输超过 8 字节消息的协议(SAE J1939/21) |
|
||||
|
||||
### 缩略语
|
||||
|
||||
| 缩略语 | 描述 |
|
||||
| --- | --- |
|
||||
| BAM | Broadcast Announce Message,广播变体 |
|
||||
| CMDT | Connection Mode Data Transfer,点对点变体 |
|
||||
| DA | Destination Address |
|
||||
| DET | Default Error Tracer |
|
||||
| DMx | SAE J1939 诊断层诊断消息 |
|
||||
| NAME | 每个 ECU 的唯一 64 位标识符 |
|
||||
| PDUF | PDU Format,29 位标识符的一部分 |
|
||||
| PDUS | PDU Specific,29 位标识符的一部分 |
|
||||
| PG | Parameter Group |
|
||||
| PGN | Parameter Group Number |
|
||||
| SA | Source Address |
|
||||
| SPN | Suspect Parameter Number |
|
||||
| TP.CM | Connection Management 消息 (PGN 00EC00) |
|
||||
| TP.CM_BAM | BAM 启动 TP.CM 变体 |
|
||||
| TP.CM_CTS | Clear To Send CMDT 握手 |
|
||||
| TP.CM_EndOfMsgAck | End Of Message Acknowledge |
|
||||
| TP.CM_RTS | Request To Send CMDT 启动 |
|
||||
| TP.Conn_Abort | Connection Abort |
|
||||
| TP.DT | Data Transfer 消息 (PGN 00EB00) |
|
||||
|
||||
---
|
||||
|
||||
## 3. 相关文档
|
||||
|
||||
### 3.1 输入文档
|
||||
|
||||
- [1] List of Basic Software Modules
|
||||
- [2] Layered Software Architecture
|
||||
- [3] General Requirements on Basic Software Modules
|
||||
- [4] Specification of COM
|
||||
- [5] Requirements on CAN
|
||||
- [6] Specification of CAN Interface
|
||||
- [7] Requirements on a Transport Layer for SAE J1939
|
||||
- [8] Specification of PDU Router
|
||||
- [9] Specification of BSW Scheduler
|
||||
- [10] Specification of Default Error Tracer
|
||||
- [11] Basic Software Module Description Template
|
||||
- [12] Specification of ECU Configuration
|
||||
- [13] Specification of System Template
|
||||
- [14] Specification of Memory Mapping
|
||||
- [15] General Specification of Basic Software Modules
|
||||
|
||||
### 3.2 相关标准
|
||||
|
||||
- [16] SAE J1939-21(2006-12), Data Link Layer
|
||||
- [17] SAE J1939-7x(2006-xx), Application Layer
|
||||
|
||||
### 3.3 相关规范
|
||||
|
||||
AUTOSAR SWS BSW General [15] 同样适用。
|
||||
|
||||
---
|
||||
|
||||
## 4. 约束与假设
|
||||
|
||||
### 4.1 限制
|
||||
|
||||
AUTOSAR 架构包含多个通信系统特定传输层(J1939Tp、CanTp、FrTp 等)。所有这些模块必须有相同 API。
|
||||
|
||||
J1939Tp 模块不实现 TriggerTransmit API,因其仅时间触发总线架构需要。
|
||||
|
||||
### 4.2 适用车域
|
||||
|
||||
支持运行在 J1939 网络中的 ECU 实现。
|
||||
|
||||
---
|
||||
|
||||
## 5. 与其他模块的依赖
|
||||
|
||||
| 模块 | 依赖关系 |
|
||||
| --- | --- |
|
||||
| CanIf | J1939Tp 通过 CanIf 发送和接收 N-PDU |
|
||||
| PduR | J1939Tp 通过 PduR 接收上层 N-SDU |
|
||||
| DET | 错误上报 |
|
||||
| BSW Scheduler | main 函数调度 |
|
||||
|
||||
### 5.1 文件结构
|
||||
|
||||
J1939Tp 提供 J1939Tp.h、J1939Tp_Cfg.h 等头文件。
|
||||
|
||||
---
|
||||
|
||||
## 6. 需求可追溯性
|
||||
|
||||
| 需求 ID | 描述 | 满足者 |
|
||||
| --- | --- | --- |
|
||||
| SRS_J1939_00006 | 支持发送 J1939 PGN | SWS_J1939Tp_00021 |
|
||||
| SRS_J1939_00009 | 支持 BAM 传输 | SWS_J1939Tp_00045 |
|
||||
| SRS_J1939_00010 | 支持 CMDT 传输 | SWS_J1939Tp_00046 |
|
||||
| SRS_J1939_00013 | 支持超时监视 | SWS_J1939Tp_00086 |
|
||||
| SRS_BSW_00101 | 初始化 API | SWS_J1939Tp_00018 |
|
||||
| SRS_BSW_00407 | 版本信息 | SWS_J1939Tp_00031 |
|
||||
|
||||
> **[摘要]** 完整需求追溯表见原文 PDF 第 18-30 页。
|
||||
|
||||
---
|
||||
|
||||
## 7. 功能规范
|
||||
|
||||
### 7.1 J1939 传输协议变体
|
||||
|
||||
#### 7.1.1 BAM (Broadcast Announce Message)
|
||||
- 用于广播 PG(目标地址为 0xFF)
|
||||
- TP.CM_BAM (1 帧) + N 个 TP.DT
|
||||
- 无流控
|
||||
- 帧间隔 50ms ~ 200ms
|
||||
|
||||
#### 7.1.2 CMDT (Connection Mode Data Transfer)
|
||||
- 用于点对点 PG
|
||||
- TP.CM_RTS → TP.CM_CTS (握手)
|
||||
- TP.DT 系列 → TP.CM_EndOfMsgAck
|
||||
- 出错可使用 TP.Conn_Abort 中止
|
||||
|
||||
### 7.2 N-SDU 处理
|
||||
|
||||
#### 7.2.1 发送
|
||||
|
||||
- **[SWS_J1939Tp_00021]** ⌈J1939Tp_Transmit 启动 N-SDU 的传输。⌋
|
||||
- 根据 N-SDU 大小和目标地址选择 BAM 或 CMDT。
|
||||
- 完成时调用 PduR_J1939TpTxConfirmation。
|
||||
|
||||
#### 7.2.2 接收
|
||||
|
||||
- 收到 TP.CM_BAM 或 TP.CM_RTS 启动接收
|
||||
- 收到所有 TP.DT 重组消息
|
||||
- 完成时调用 PduR_J1939TpRxIndication。
|
||||
|
||||
### 7.3 超时监视
|
||||
|
||||
| 定时器 | 含义 |
|
||||
| --- | --- |
|
||||
| T1 | 最后 TP.DT 到下一 TP.DT (Rx 端) 750ms |
|
||||
| T2 | TP.CM_CTS 到 TP.DT 1250ms |
|
||||
| T3 | 最后 TP.DT 到 TP.CM_EndOfMsgAck 1250ms |
|
||||
| T4 | TP.CM_CTS WAIT 状态超时 1050ms |
|
||||
| Tr | 发送端 TP.DT 之间 200ms |
|
||||
| Th | 发送端 TP.CM_RTS 到 TP.CM_CTS 1250ms |
|
||||
|
||||
### 7.4 MetaData 处理
|
||||
|
||||
J1939Tp 支持 N-PDU 和 N-SDU 含可变 SA、DA、Priority,信息在 MetaData 中提供。
|
||||
|
||||
### 7.5 错误分类
|
||||
|
||||
#### 7.5.1 开发错误
|
||||
|
||||
| 错误名 | 错误码 | 含义 |
|
||||
| --- | --- | --- |
|
||||
| J1939TP_E_PARAM_CONFIG | 0x01 | 配置参数错误 |
|
||||
| J1939TP_E_PARAM_ID | 0x02 | 参数 ID 错误 |
|
||||
| J1939TP_E_PARAM_POINTER | 0x03 | NULL 指针 |
|
||||
| J1939TP_E_UNINIT | 0x04 | 未初始化 |
|
||||
| J1939TP_E_INVALID_TX_ID | 0x05 | 无效 TX ID |
|
||||
| J1939TP_E_INVALID_RX_ID | 0x06 | 无效 RX ID |
|
||||
|
||||
#### 7.5.2 运行时错误
|
||||
|
||||
| 错误名 | 含义 |
|
||||
| --- | --- |
|
||||
| J1939TP_E_COMMUNICATION | 通信错误 |
|
||||
| J1939TP_E_TIMEOUT | 超时 |
|
||||
|
||||
---
|
||||
|
||||
## 8. API 规范
|
||||
|
||||
### 8.1 导入类型
|
||||
|
||||
| 模块 | 头文件 | 导入类型 |
|
||||
| --- | --- | --- |
|
||||
| ComStack_Types | ComStack_Types.h | PduIdType, PduInfoType, PduLengthType, BufReq_ReturnType |
|
||||
| Std_Types | Std_Types.h | Std_ReturnType, Std_VersionInfoType |
|
||||
|
||||
### 8.2 类型定义
|
||||
|
||||
#### 8.2.1 J1939Tp_ConfigType
|
||||
```c
|
||||
typedef struct J1939Tp_ConfigType J1939Tp_ConfigType;
|
||||
```
|
||||
|
||||
### 8.3 函数定义
|
||||
|
||||
#### 8.3.1 J1939Tp_Init
|
||||
|
||||
```c
|
||||
void J1939Tp_Init(const J1939Tp_ConfigType* ConfigPtr)
|
||||
```
|
||||
|
||||
| Service ID | 0x01 |
|
||||
| --- | --- |
|
||||
| 描述 | 初始化 J1939Tp 模块 |
|
||||
|
||||
#### 8.3.2 J1939Tp_GetVersionInfo
|
||||
|
||||
```c
|
||||
void J1939Tp_GetVersionInfo(Std_VersionInfoType* versioninfo)
|
||||
```
|
||||
|
||||
| Service ID | 0x02 |
|
||||
| --- | --- |
|
||||
|
||||
#### 8.3.3 J1939Tp_Shutdown
|
||||
|
||||
```c
|
||||
void J1939Tp_Shutdown(void)
|
||||
```
|
||||
|
||||
| Service ID | 0x03 |
|
||||
| --- | --- |
|
||||
|
||||
#### 8.3.4 J1939Tp_Transmit
|
||||
|
||||
```c
|
||||
Std_ReturnType J1939Tp_Transmit(
|
||||
PduIdType TxPduId,
|
||||
const PduInfoType* PduInfoPtr
|
||||
)
|
||||
```
|
||||
|
||||
| Service ID | 0x05 |
|
||||
| --- | --- |
|
||||
| Sync/Async | Asynchronous |
|
||||
| 描述 | 请求传输 N-SDU |
|
||||
|
||||
#### 8.3.5 J1939Tp_CancelTransmit
|
||||
|
||||
```c
|
||||
Std_ReturnType J1939Tp_CancelTransmit(PduIdType TxPduId)
|
||||
```
|
||||
|
||||
| Service ID | 0x06 |
|
||||
| --- | --- |
|
||||
| 描述 | 取消发送 |
|
||||
|
||||
#### 8.3.6 J1939Tp_CancelReceive
|
||||
|
||||
```c
|
||||
Std_ReturnType J1939Tp_CancelReceive(PduIdType RxPduId)
|
||||
```
|
||||
|
||||
| Service ID | 0x08 |
|
||||
| --- | --- |
|
||||
|
||||
#### 8.3.7 J1939Tp_ChangeParameter
|
||||
|
||||
```c
|
||||
Std_ReturnType J1939Tp_ChangeParameter(
|
||||
PduIdType id,
|
||||
TPParameterType parameter,
|
||||
uint16 value
|
||||
)
|
||||
```
|
||||
|
||||
| Service ID | 0x09 |
|
||||
| --- | --- |
|
||||
|
||||
### 8.4 回调通知
|
||||
|
||||
#### 8.4.1 J1939Tp_RxIndication
|
||||
CanIf 通知 J1939Tp 收到 N-PDU。
|
||||
|
||||
#### 8.4.2 J1939Tp_TxConfirmation
|
||||
CanIf 通知 N-PDU 已发送。
|
||||
|
||||
### 8.5 调度函数
|
||||
|
||||
#### 8.5.1 J1939Tp_MainFunction
|
||||
```c
|
||||
void J1939Tp_MainFunction(void)
|
||||
```
|
||||
| Service ID | 0x0F |
|
||||
| --- | --- |
|
||||
|
||||
### 8.6 期望接口
|
||||
|
||||
#### 8.6.1 强制接口
|
||||
- CanIf_Transmit
|
||||
- PduR_J1939TpStartOfReception
|
||||
- PduR_J1939TpCopyRxData
|
||||
- PduR_J1939TpRxIndication
|
||||
- PduR_J1939TpCopyTxData
|
||||
- PduR_J1939TpTxConfirmation
|
||||
|
||||
#### 8.6.2 可选接口
|
||||
- Det_ReportError
|
||||
- Det_ReportRuntimeError
|
||||
|
||||
---
|
||||
|
||||
## 9. 时序图
|
||||
|
||||
### 9.1 初始化
|
||||
启动序列。
|
||||
|
||||
### 9.2 接收 PG <= 8 字节
|
||||
直接转发。
|
||||
|
||||
### 9.3 BAM 接收
|
||||
1. CanIf_RxIndication (TP.CM_BAM)
|
||||
2. PduR_StartOfReception
|
||||
3. CanIf_RxIndication (TP.DT) × n
|
||||
4. PduR_CopyRxData × n
|
||||
5. PduR_RxIndication
|
||||
|
||||
### 9.4 CMDT 接收
|
||||
TP.CM_RTS → CTS → DT 序列 → EndOfMsgAck
|
||||
|
||||
### 9.5 BAM 发送
|
||||
J1939Tp_Transmit → 发送 BAM → DT 序列 → TxConfirmation
|
||||
|
||||
### 9.6 CMDT 发送
|
||||
J1939Tp_Transmit → RTS → 收到 CTS → DT → EndOfMsgAck → TxConfirmation
|
||||
|
||||
### 9.7 CMDT 发送的重试处理
|
||||
TP.CM_CTS 中指示部分包重试。
|
||||
|
||||
> **[摘要]** 详细时序图见原文 PDF 第 45-54 页。
|
||||
|
||||
---
|
||||
|
||||
## 10. 配置规范
|
||||
|
||||
### 10.1 容器与配置参数
|
||||
|
||||
#### 10.1.1 J1939Tp
|
||||
根容器。
|
||||
|
||||
#### 10.1.2 J1939TpGeneral
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| J1939TpDevErrorDetect | bool | 启用 DET |
|
||||
| J1939TpVersionInfoApi | bool | 版本信息 API |
|
||||
| J1939TpMainFunctionPeriod | float | main 周期 |
|
||||
|
||||
#### 10.1.3 J1939TpConfiguration
|
||||
J1939Tp 配置集。
|
||||
|
||||
#### 10.1.4 J1939TpRxChannel
|
||||
接收通道配置(N_As、N_Bs、N_Cs 等超时)。
|
||||
|
||||
#### 10.1.5 J1939TpRxCmNPdu, J1939TpRxDtNPdu
|
||||
RX 控制和数据 N-PDU。
|
||||
|
||||
#### 10.1.6 J1939TpRxPg, J1939TpRxDirectNPdu, J1939TpRxNSdu
|
||||
RX 参数组、直接 N-PDU、N-SDU。
|
||||
|
||||
#### 10.1.7 J1939TpTxFcNPdu, J1939TpTxChannel
|
||||
TX 流控制 N-PDU 和发送通道。
|
||||
|
||||
#### 10.1.8 J1939TpTxCmNPdu, J1939TpTxDtNPdu
|
||||
TX 控制和数据 N-PDU。
|
||||
|
||||
#### 10.1.9 J1939TpTxPg, J1939TpTxDirectNPdu, J1939TpTxNSdu
|
||||
TX 参数组、直接 N-PDU、N-SDU。
|
||||
|
||||
> **[摘要]** 完整配置详见原文 PDF 第 55-78 页。
|
||||
|
||||
### 10.2 已发布信息
|
||||
按 BSW General 提供模块版本信息。
|
||||
|
||||
---
|
||||
|
||||
## 11. 不适用需求
|
||||
|
||||
详见原文 PDF 第 80 页。
|
||||
|
||||
---
|
||||
|
||||
## 翻译说明
|
||||
|
||||
- 本译本基于 AUTOSAR CP 4.4.0 的 J1939 传输层规范 (Document ID 425,共 80 页)
|
||||
- 摘要标记位置:第 6 章需求追溯、第 9 章时序图、第 10 章配置参数、第 11 章不适用需求
|
||||
Reference in New Issue
Block a user