P1 batch translation: 94 PDFs (Communication + Diagnostics + SystemServices + MCAL)
This commit is contained in:
@@ -0,0 +1,421 @@
|
||||
# SAE J1939 请求管理规范 (Specification of a Request Manager for SAE J1939)
|
||||
|
||||
> **AUTOSAR CP Release 4.4.0**
|
||||
> **文档 ID 611: AUTOSAR_SWS_SAEJ1939RequestManager**
|
||||
|
||||
## 元信息
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 文档标题 | SAE J1939 请求管理规范 |
|
||||
| 文档所有者 | AUTOSAR |
|
||||
| 文档责任方 | AUTOSAR |
|
||||
| 文档标识号 | 611 |
|
||||
| 文档状态 | Final |
|
||||
| 所属 AUTOSAR 标准 | Classic Platform |
|
||||
| 所属标准版本 | 4.4.0 |
|
||||
|
||||
## 文档变更历史
|
||||
|
||||
| 日期 | 版本 | 变更方 | 变更说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| 2018-10-31 | 4.4.0 | AUTOSAR Release Management | 支持 J1939 Request2 PG;细微更正 |
|
||||
| 2017-12-08 | 4.3.1 | AUTOSAR Release Management | 修正/澄清 |
|
||||
| 2016-11-30 | 4.3.0 | AUTOSAR Release Management | 扩展配置参数支持 |
|
||||
| 2015-07-31 | 4.2.2 | 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-配置规范)
|
||||
|
||||
---
|
||||
|
||||
## 1. 介绍与功能概述
|
||||
|
||||
本规范规定了 AUTOSAR 基础软件模块 **J1939 请求管理** (J1939Rm) 的功能、API 和配置。
|
||||
|
||||
### 1.1 SAE J1939 中的请求管理
|
||||
|
||||
J1939 定义了一个特殊的参数组(PG)称为 Request (RQST,PGN = 0x0EA00),可用于请求传输任何其他参数组。Request 参数组仅包含被请求参数组的 PGN。
|
||||
|
||||
根据 Request PG 使用的目的地址,响应必须直接发送到请求 ECU 或所有 ECU。对于 PDU1 格式的短参数组,目的地址应相应设置;对于大参数组,使用合适的传输协议模式(BAM 或 CMDT,见 [9] 和 [18])。
|
||||
|
||||
根据请求的参数组和 Request PG 的目的地址,ECU 用所请求的参数组、特殊的 Acknowledgement 参数组(ACKM,PGN = 0x0E800)回应,或根本不回应。
|
||||
|
||||
J1939 定义了在请求发出后 **1.25 秒** 内应收到响应。响应节点须在 200ms 内响应。
|
||||
|
||||
除 Request PG 外,J1939 还定义了 Request2 PG (RQST2, PGN=0xC900),其行为与 Request PG 相同,但有以下扩展:
|
||||
- 可使用传输函数从多个 ECU 请求同一 PG。
|
||||
- 可指定扩展标识符字节以请求多路复用消息的特定布局。
|
||||
|
||||
### 1.2 J1939 请求管理 BSW 模块
|
||||
|
||||
J1939 请求管理(J1939Rm)处理已接收和发送的 Request、Request2 和 Acknowledgement PG。它原生支持地址声明的入站请求处理,并可配置以支持诊断和其他 J1939 PGN 的入站请求。未知的入站请求若指向特定目的地址,则用否定 Acknowledgement PG 回应。
|
||||
|
||||
J1939Rm 还支持请求传输和对结果 PG 或确认的超时监视。
|
||||
|
||||
### 1.3 J1939 术语
|
||||
|
||||
J1939 术语与一般 AUTOSAR 术语显著不同。为保持一致,介绍中使用 J1939 规范术语,但本规范其余部分将使用 AUTOSAR 更常见的术语:
|
||||
- 'I-PDU' 替代 'parameter group'
|
||||
|
||||
---
|
||||
|
||||
## 2. 缩略语
|
||||
|
||||
| 缩略语 | 描述 |
|
||||
| --- | --- |
|
||||
| AC | J1939 AddressClaimed PG (PGN = 0x0EE00) |
|
||||
| ACK | J1939 Acknowledgement PG (ACKM),control byte=0 |
|
||||
| ACKM | J1939 Acknowledgement PG (PGN = 0x0E800) |
|
||||
| BSW | Basic Software |
|
||||
| CA | Controller Application,绑定到一个地址的 ECU 角色 |
|
||||
| DET | Default Error Tracer |
|
||||
| DP | Data Page,18 位 PGN 的最高位 |
|
||||
| EDP | Extended Data Page,MSB 之后的第二位 |
|
||||
| NACK | ACKM with control byte=1 |
|
||||
| PDUF | PDU Format,18 位 PGN 的中间字节 |
|
||||
| PDUS | PDU Specific,18 位 PGN 的低字节 |
|
||||
| PG | Parameter Group |
|
||||
| PGN | Parameter Group Number (18 位) |
|
||||
| RQST | J1939 Request PG (PGN = 0x0EA00) |
|
||||
| RQST2 | J1939 Request2 PG (PGN = 0x0C900) |
|
||||
| RTE | AUTOSAR Runtime Environment |
|
||||
| SW-C | AUTOSAR Software Component |
|
||||
| XFER | J1939 Transfer PG (PGN = 0x0CA00) |
|
||||
|
||||
---
|
||||
|
||||
## 3. 相关文档
|
||||
|
||||
### 3.1 输入文档
|
||||
|
||||
- [1] List of Basic Software Modules
|
||||
- [2] Layered Software Architecture
|
||||
- [3] General Requirements on Basic Software Modules
|
||||
- [4] General Specification of Basic Software Modules
|
||||
- [5] Requirements on BSW Modules for SAE J1939
|
||||
- [6] Specification of Communication Stack Types
|
||||
- [7] System Template
|
||||
- [8] Specification of CAN Interface
|
||||
- [9] Specification of a Transport Layer for SAE J1939
|
||||
- [10] Specification of PDU Router
|
||||
- [11] Specification of Communication
|
||||
- [12] Specification of Network Management for SAE J1939
|
||||
- [13] Specification of a Diagnostic Communication Manager for SAE J1939
|
||||
- [14] Specification of Default Error Tracer
|
||||
- [15] Specification of BSW Scheduler
|
||||
- [16] Specification of ECU Configuration
|
||||
- [17] Specification of Memory Mapping
|
||||
|
||||
### 3.2 相关标准
|
||||
|
||||
- [18] J1939-21 MAR2016, Data Link Layer
|
||||
|
||||
### 3.3 相关规范
|
||||
|
||||
AUTOSAR SWS BSW General [4] 同样适用于本规范。
|
||||
|
||||
---
|
||||
|
||||
## 4. 约束与假设
|
||||
|
||||
### 4.1 限制
|
||||
|
||||
J1939 请求管理仅在使用 SAE J1939 的网络上有意义。
|
||||
|
||||
### 4.2 适用车域
|
||||
|
||||
适用于商用车域。
|
||||
|
||||
---
|
||||
|
||||
## 5. 与其他模块的依赖
|
||||
|
||||
J1939Rm 与下列模块交互:
|
||||
- **CAN 接口 (CanIf)**:用于 RQST、RQST2、ACKM 的短帧发送/接收
|
||||
- **J1939 传输层 (J1939Tp)**:用于大型响应 PG 的发送/接收
|
||||
- **PDU 路由器 (PduR)**:用于将 RQST、ACKM、响应 PG 转发到对应模块
|
||||
- **J1939Nm**:用于地址声明的请求处理
|
||||
- **J1939Dcm**:用于诊断 PG 请求处理
|
||||
- **DET**:错误上报
|
||||
- **BswM**:模式管理
|
||||
|
||||
### 5.1 文件结构
|
||||
J1939Rm 提供 J1939Rm.h、J1939Rm_Cfg.h 等头文件。
|
||||
|
||||
---
|
||||
|
||||
## 6. 需求可追溯性
|
||||
|
||||
| 需求 ID | 描述 | 满足者 |
|
||||
| --- | --- | --- |
|
||||
| SRS_J1939_00006 | 支持 RQST 请求处理 | SWS_J1939Rm_00050 |
|
||||
| SRS_J1939_00010 | 支持 Acknowledgement | SWS_J1939Rm_00055 |
|
||||
| SRS_J1939_00026 | 应支持 J1939 地址声明 | SWS_J1939Rm_00060 |
|
||||
| SRS_BSW_00101 | 初始化 API | SWS_J1939Rm_00021 |
|
||||
| SRS_BSW_00407 | 版本信息 | SWS_J1939Rm_00022 |
|
||||
|
||||
> **[摘要]** 完整需求追溯表见原文 PDF 第 17-30 页。
|
||||
|
||||
---
|
||||
|
||||
## 7. 功能规范
|
||||
|
||||
### 7.1 请求的发送和接收
|
||||
|
||||
J1939Rm 处理 RQST、RQST2、ACKM 三种 PG。
|
||||
|
||||
#### 7.1.1 入站请求处理
|
||||
|
||||
- 收到 RQST/RQST2 时,J1939Rm 解析 PGN 并将其映射到对应用户(地址声明、诊断、应用)
|
||||
- 对未知 PGN 的请求,如指向特定目标,响应 NACK ACKM PG
|
||||
|
||||
#### 7.1.2 出站请求
|
||||
|
||||
- J1939Rm_Request / J1939Rm_Request2 由用户调用以发送 Request PG
|
||||
- J1939Rm 启动 1.25s 超时定时器
|
||||
|
||||
#### 7.1.3 Acknowledgement
|
||||
|
||||
- J1939Rm 处理收到的 ACKM
|
||||
- 用户可调用 J1939Rm_SendAck 发送 ACK/NACK
|
||||
|
||||
### 7.2 用户类型
|
||||
|
||||
| 用户类型 | 说明 |
|
||||
| --- | --- |
|
||||
| DcmUser | 诊断通信管理器用户 |
|
||||
| CddUser | 复杂设备驱动用户 |
|
||||
| RteUser | RTE 用户(直接 SW-C 访问) |
|
||||
| ComUser | COM 用户(信号级) |
|
||||
|
||||
### 7.3 寻址方式
|
||||
|
||||
- **特定地址 (Specific addressing)**:目的地址 = SA
|
||||
- **全局地址 (Global addressing)**:目的地址 = 0xFF
|
||||
|
||||
### 7.4 错误分类
|
||||
|
||||
#### 7.4.1 开发错误
|
||||
|
||||
| 错误名 | 错误码 | 含义 |
|
||||
| --- | --- | --- |
|
||||
| J1939RM_E_UNINIT | 0x01 | 未初始化 |
|
||||
| J1939RM_E_PARAM_POINTER | 0x02 | NULL 指针 |
|
||||
| J1939RM_E_INVALID_USER | 0x03 | 无效用户 |
|
||||
| J1939RM_E_INVALID_NETWORK | 0x04 | 无效网络 |
|
||||
| J1939RM_E_INVALID_PGN | 0x05 | 无效 PGN |
|
||||
|
||||
#### 7.4.2 运行时错误
|
||||
|
||||
| 错误名 | 含义 |
|
||||
| --- | --- |
|
||||
| J1939RM_E_REQUEST_TIMEOUT | 请求响应超时 |
|
||||
|
||||
---
|
||||
|
||||
## 8. API 规范
|
||||
|
||||
### 8.1 导入类型
|
||||
|
||||
| 模块 | 头文件 | 导入类型 |
|
||||
| --- | --- | --- |
|
||||
| ComStack_Types | ComStack_Types.h | PduIdType, PduInfoType, PduLengthType |
|
||||
| Std_Types | Std_Types.h | Std_ReturnType, Std_VersionInfoType |
|
||||
|
||||
### 8.2 类型定义
|
||||
|
||||
#### 8.2.1 J1939Rm_ConfigType
|
||||
```c
|
||||
typedef struct J1939Rm_ConfigType J1939Rm_ConfigType;
|
||||
```
|
||||
|
||||
#### 8.2.2 J1939Rm_AckCodeType
|
||||
```c
|
||||
typedef enum {
|
||||
J1939RM_ACK_POS = 0, // Positive ACK
|
||||
J1939RM_ACK_NEG = 1, // Negative ACK
|
||||
J1939RM_ACK_ACCESS = 2, // Access denied
|
||||
J1939RM_ACK_BUSY = 3 // Cannot respond
|
||||
} J1939Rm_AckCodeType;
|
||||
```
|
||||
|
||||
### 8.3 函数定义
|
||||
|
||||
#### 8.3.1 J1939Rm_Init
|
||||
|
||||
```c
|
||||
void J1939Rm_Init(const J1939Rm_ConfigType* config)
|
||||
```
|
||||
|
||||
| Service ID | 0x01 |
|
||||
| --- | --- |
|
||||
| 描述 | 初始化 J1939Rm 模块 |
|
||||
|
||||
#### 8.3.2 J1939Rm_GetVersionInfo
|
||||
|
||||
```c
|
||||
void J1939Rm_GetVersionInfo(Std_VersionInfoType* versionInfo)
|
||||
```
|
||||
|
||||
| Service ID | 0x02 |
|
||||
| --- | --- |
|
||||
|
||||
#### 8.3.3 J1939Rm_Request
|
||||
|
||||
```c
|
||||
Std_ReturnType J1939Rm_Request(
|
||||
NetworkHandleType Channel,
|
||||
uint8 user,
|
||||
uint8 DestAddress,
|
||||
uint32 PGN
|
||||
)
|
||||
```
|
||||
|
||||
| Service ID | 0x03 |
|
||||
| --- | --- |
|
||||
| 描述 | 发送 Request PG |
|
||||
|
||||
#### 8.3.4 J1939Rm_Request2
|
||||
|
||||
```c
|
||||
Std_ReturnType J1939Rm_Request2(
|
||||
NetworkHandleType Channel,
|
||||
uint8 user,
|
||||
uint8 DestAddress,
|
||||
uint32 PGN,
|
||||
uint32 ExtIDByte1,
|
||||
uint32 ExtIDByte2,
|
||||
uint32 ExtIDByte3,
|
||||
uint32 ExtIDByte4
|
||||
)
|
||||
```
|
||||
|
||||
| Service ID | 0x04 |
|
||||
| --- | --- |
|
||||
| 描述 | 发送 Request2 PG |
|
||||
|
||||
#### 8.3.5 J1939Rm_SendAck
|
||||
|
||||
```c
|
||||
Std_ReturnType J1939Rm_SendAck(
|
||||
NetworkHandleType Channel,
|
||||
J1939Rm_AckCodeType AckCode,
|
||||
uint8 GroupFunctionValue,
|
||||
uint8 AddressACK,
|
||||
uint32 PGN
|
||||
)
|
||||
```
|
||||
|
||||
| Service ID | 0x05 |
|
||||
| --- | --- |
|
||||
| 描述 | 发送 ACKM PG |
|
||||
|
||||
#### 8.3.6 J1939Rm_DcmCancelTransmit / J1939Rm_CddCancelTransmit
|
||||
取消未完成的请求。
|
||||
|
||||
#### 8.3.7 J1939Rm_MainFunction
|
||||
|
||||
```c
|
||||
void J1939Rm_MainFunction(void)
|
||||
```
|
||||
|
||||
| Service ID | 0x09 |
|
||||
| --- | --- |
|
||||
| 描述 | 主处理函数,处理超时 |
|
||||
|
||||
### 8.4 回调通知
|
||||
|
||||
#### 8.4.1 J1939Rm_RxIndication
|
||||
PduR 通知 J1939Rm 收到 RQST/ACKM。
|
||||
|
||||
#### 8.4.2 J1939Rm_TxConfirmation
|
||||
PduR 通知 J1939Rm 已发送 RQST/ACKM。
|
||||
|
||||
### 8.5 用户回调(可配置接口)
|
||||
|
||||
#### 8.5.1 <User>_ProcessRequest
|
||||
入站请求通知到用户。
|
||||
|
||||
#### 8.5.2 <User>_RequestIndication
|
||||
入站请求指示。
|
||||
|
||||
#### 8.5.3 <User>_AckIndication
|
||||
ACKM 接收指示。
|
||||
|
||||
#### 8.5.4 <User>_TimeoutIndication
|
||||
请求超时指示。
|
||||
|
||||
### 8.6 期望接口
|
||||
|
||||
#### 8.6.1 强制接口
|
||||
- PduR_J1939RmTransmit
|
||||
- Det_ReportError
|
||||
|
||||
#### 8.6.2 可选接口
|
||||
- Dcm_J1939DcmRequestIndication
|
||||
- Nm_J1939Rm 接口
|
||||
|
||||
---
|
||||
|
||||
## 9. 时序图
|
||||
|
||||
> **[摘要]** 详细时序图见原文 PDF 第 50-65 页,包括 RQST 接收/发送、ACKM 处理、超时场景等。
|
||||
|
||||
主要场景:
|
||||
- 入站 RQST 处理 → DcmUser/CddUser/RteUser 通知 → 响应 PG 发送
|
||||
- 出站 RQST → 超时定时器 → 响应 PG 接收 / 超时
|
||||
- 入站 ACKM → 通知用户
|
||||
|
||||
---
|
||||
|
||||
## 10. 配置规范
|
||||
|
||||
### 10.1 容器与配置参数
|
||||
|
||||
#### 10.1.1 J1939Rm
|
||||
根容器。
|
||||
|
||||
#### 10.1.2 J1939RmGeneral
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| J1939RmDevErrorDetect | bool | DET 启用 |
|
||||
| J1939RmVersionInfoApi | bool | 启用版本信息 API |
|
||||
| J1939RmMainFunctionPeriod | float | main 函数周期 |
|
||||
|
||||
#### 10.1.3 J1939RmChannel
|
||||
每通道配置,包括请求超时(默认 1.25s)、节点地址等。
|
||||
|
||||
#### 10.1.4 J1939RmUser
|
||||
用户配置:
|
||||
- J1939RmDcmUser
|
||||
- J1939RmCddUser
|
||||
- J1939RmRteUser
|
||||
- J1939RmComUser
|
||||
|
||||
#### 10.1.5 J1939RmRxPg / J1939RmTxPg
|
||||
接收/发送 PG 配置(PGN、目的地址、用户引用)。
|
||||
|
||||
> **[摘要]** 完整配置参数详见原文 PDF 第 45-80 页。
|
||||
|
||||
### 10.2 已发布信息
|
||||
按 BSW General 提供模块版本信息。
|
||||
|
||||
---
|
||||
|
||||
## 翻译说明
|
||||
|
||||
- 本译本基于 AUTOSAR CP 4.4.0 的 J1939 请求管理规范 (Document ID 611,共 81 页)
|
||||
- 摘要标记位置:第 6 章需求追溯、第 9 章时序图、第 10 章配置参数
|
||||
Reference in New Issue
Block a user