J1939Tp

文档信息

版本历史

日期(Date)

作者(Author)

版本(Version)

状态(Status)

说明(Explain)

2025/03/28

haibin.shao

V0.1

发布(Release)

首次发布(First Release)

2025/04/04

haibin.shao

V1.0

发布(Release)

正式发布(Official Release)

参考文档

编号(Serial Number)

分类(Classification)

标题(Title)

版本(Version)

[1]

SAE

J1939_21_201810.pdf

CAN Data Link Layer

[2]

SAE

J1939_73_201705.pdf

Diagnostics Message Services Layer

[3]

Autosar

AUTOSAR_RS_Diagnostics.pdf

R19-11

[4]

Autosar

AUTOSAR_SRS_SAEJ1939.pdf

R19-11

[5]

Autosar

AUTOSAR_SWS_SAEJ1939TransportLayer.pdf

R19-11

[6]

Autosar

AUTOSAR_SWS_SAEJ1939RequestManager.pdf

R19-11

[7]

Autosar

AUTOSAR_SWS_SAEJ1939DiagnosticCommunicationManager.pdf

R19-11

[8]

ISO

SAE-J1939Dcm diagnostic services - Application Layer

Release 2017-05

术语与缩略语(Terms and Acronyms)

术语(Terms)

术语(Terms)

解释(Explanation)

英译(English translation)

Parameter

SAE J1939中针对信号的术语,包含已定义的量程、限值、偏移量和物理单位。

The terminology for signals in SAE J1939 includes defined ranges, limits, offsets, and physical units.

Parameter Group

参数组是SAE J1939应用层消息;每个参数组包含多个参数,且通过参数组编号进行唯一标识。

The parameter group is an application layer message of SAE J1939; each parameter group contains multiple parameters and is uniquely identified by the parameter group number.

SAE J1939

由SAE制定的商用车网络串行控制与通信标准。

The serial control and communication standard for commercial vehicle networks formulated by SAE.

SAE J1939 Diagnostics

SAE J1939诊断层在标准文档[SAE J1939-73]中定义。J1939诊断在功能上与UDS诊断类似,且近期已扩展至支持与排放相关值的OBD检测。

The SAE J1939 diagnostic layer is defined in the standard document [SAE J1939-73]. The J1939 diagnostic function is similar to the UDS diagnostic, and it has recently been extended to support OBD testing for emission-related values.

Lamp Status

指示灯状态包含关于当前激活故障严重程度的信息,并作为诊断消息的一部分进行传输。

The status of the indicator lights contains information about the severity of the current activation failure and is transmitted as part of the diagnostic message.

MetaData

与PDU(协议数据单元)一同传输的元数据,由一组元数据项构成。

The metadata transmitted together with the PDU (Protocol Data Unit) is composed of a set of metadata items.

MetaDataItem

SAE J1939协议栈数据传输层中,具有已定义类型、大小的单个元数据项。

In the data transmission layer of the SAE J1939 protocol stack, there are individual metadata items with defined types and sizes.

SAE J1939-21

由SAE制定的CAN 2.0数据链路层,以及SAE J1939协议栈的数据传输层。

The CAN 2.0 data link layer formulated by SAE, as well as the data transmission layer of the SAE J1939 protocol stack.

SAE J1939-73

由SAE制定的诊断管理层。

The diagnostic management layer as formulated by SAE.

SAE J1939-81

由SAE制定的网络管理层。

The network management layer established by SAE.

缩略语(Acronyms)

缩略语(Acronyms)

全称(Full Name)

解释(Explanation)

SAE

Society of Automotive Engineers

美国汽车工程师学会

API

Application Programming Interface

应用编程接口

CAN

Controller Area Network

控制域网络协议

CanIf

CAN Interface

CAN通信接口层

TP

Transport Protocol

分段传输协议

Det

Default Error Tracer

开发/运行时错误报错追踪模块

PduR

Pdu Router

Pdu路由模块

ComM

Communication Manager

通信管理层

EcuM

ECU State Manager

ECU状态管理器

BswM

Basic Software Module

基础软件模块

CanTp

CAN Transport Layer

CAN传输层

J1939Tp

SAE-J1939 Transport Layer

基于J1939协议栈的实现消息传输层的模块

J1939Nm

SAE-J1939 Networks Manager

基于J1939协议栈的实现网络管理的模块

J1939Rm

SAE-J1939 Request Manager

基于J1939协议栈的实现请求管理的模块

J1939Dcm

SAE-J1939 Diagnostic Communication Manager

基于J1939协议栈的实现诊断通信管理的模块

SchM

Basic Software Schedule Manager

基础软件调度管理

ID

Identifier

识别编号

DP

Data Page

数据页

EDP

Data Extend Page

扩展数据页

PRI

Priority

优先级

PDUF

PDU Format

PDU格式

PDUS

PDU Specific

PDU特定

Pdu

Protocol Data Unit

协议数据单元

ACK

acknowledgement

应答确认的回复

PACK

Positive response

积极响应的确认

NACK

Negative response

否定响应的确认

DLC

Data Length Code

数据长度代码

BAM

Broadcast Announce Message

广播公告消息

CMDT

Connection Mode Data Transfer

连接模式或点对点的数据传输

BswM

Basic Software Mode Manager

基础软件模块管理

DA

Destination Address

目的地址

SA

Source Address

源地址

PG

Parameter Group

参数组

PGN

Parameter Group Number

参数组编号

PDU1

J1939 PDU Type 1, this kind of PG can be sent to a specific destination address

J1939-PDU类型1

PDU2

J1939 PDU Type 2, this kind of PG can only be sent as broadcast

J1939-PDU类型2

TP.CM

Connection Management message (PGN = 0x0EC00) used by SAE J1939 transport protocol,corresponds to an N-PDU of J1939Tp

SAE-J1939传输协议使用的连接管理消息,对应于J1939Tp的N-PDU

TP.CM_BAM

Broadcast Announce Message, variant of TP.CM that initiates a BAM transmission

广播公告讯息, TP.CM的变体,用于启动BAM传输

TP.CM_RTS

Connection  Mode Request To Send, variant of TP.CM that initiates a CMDT transmission

连接模式发送请求,启动CMDT传输的TP.CM的变体

TP.CM_CTS

Connection  Mode Clear To Send, variant of TP.CM that is used for handshake during CMDT transmission

连接模式清除发送,在CMDT传输过程中用于握手的TP.CM的变体

TP.CM_EndOfMsgAck

End Of Message Acknowledge, variant of TP.CM that acknowledges correct reception of a CMDT transmission

消息结束确认,TP.CM的变体,用于确认正确接收了CMDT传输

TP.CM_ConnAbort

Connection Abort, variant of TP.CM that terminates a CMDT transmission

连接中止,TP.CM的变体,终止CMDT传输

TP.DT

The Data Transfer message used by SAE J1939 transport protocol, corresponds to an N-PDU of J1939Tp

SAE-J1939传输协议使用的数据传输报文,对应于J1939Tp的N-PDU

J1939传输层的简介(Introduction to the J1939 Transport Layer)

SAE-J1939传输层用于响应网络中的BAM和CMDT请求,建立会话连接,对接收的多包数据进行重组或者对要发送的大数据进行拆包;同时也可以对请求长度进行鉴别,实际运行时不到8字节的短帧按照Direct的传输方式进行发送。

The SAE-J1939 transport layer is used to respond to BAM and CMDT requests in the network, establish session connections, reassemble received multi-packet data or unpack large data to be sent; at the same time, it can also verify the length of the request. During actual operation, short frames less than 8 bytes are sent in the direct transmission mode.

SAE-J1939传输层组件需要实现功能:基本原理&功能、模块初始化&关机、与底层交互的通信、会话处理、N-SDU接收,N-SDU发送、CAN总线的数据流、N-SDU的缓冲区管理、N-SDU与N-PDU的关系、N-PDU填充、意外到达N-PDU的处理以及错误检测:

The SAE-J1939 transport layer component needs to implement the following functions: basic principles & functions, module initialization & shutdown, communication with the underlying layer, session handling, N-SDU reception, N-SDU transmission, data flow on the CAN bus, N-SDU buffer management, relationship between N-SDU and N-PDU, N-PDU padding, handling of unexpected arrival of N-PDU, and error detection:

../../_images/J1939TpInAutosarLayer.png

J1939Tp模块的软件架构图(Software architecture diagram of the J1939Tp module)

如图 J1939Tp模块的软件架构图(Software architecture diagram of the J1939Tp module) 所示,J1939Tp模块处于AUTOSAR软件架构中的通信栈服务层,J1939Tp模块与通信栈抽象层的CanIf组件进行交互,与通信栈服务层的PduR组件进行交互。

As shown in the figure, the J1939Tp module is located in the communication stack service layer of the AUTOSAR software architecture. The J1939Tp module interacts with the CanIf component of the communication stack abstraction layer and with the PduR component of the communication stack service layer.

../../_images/J1939TpAssociationWithPdu.png

J1939Tp模块与PDU的流向关联图(The flow association diagram of PDUs in the J1939Tp module)

如图 J1939Tp模块与PDU的流向关联图(The flow association diagram of PDUs in the J1939Tp module) 所示,在AUTOSAR架构下大数据收发除了J1939Tp还有一个CanTp模块,两者实现的功能近似。

As shown in the figure, under the AUTOSAR architecture, for the transmission and reception of big data, in addition to the J1939Tp module, there is also a CanTp module. The functions implemented by these two modules are similar.

J1939Tp传输层的数据流提供如下功能点(The data stream of the J1939Tp transport layer provides the following functional points):

序号(Serial Number)

功能描述(Function Description)

长度可变数据的分段发送和固定长度数据的直接传输(Segmented transmission of variable-length data and direct transmission of fixed-length data)

长度可变数据接收的重组和固定长度数据的直接接收(Reorganization of variable-length data reception and direct reception of fixed-length data)

数据传输过程中的流控与超时检测机制(The flow control and timeout detection mechanism during data transmission process)

分段和重组过程中的错误检测机制(Error detection mechanism during the segmentation and reorganization processes)

J1939传输层的功能描述(Function description of the J1939 transport layer)

J1939Tp传输层的常规处理(The routine processing of the J1939Tp transport layer)

J1939Tp传输层的基本原理(The basic principle of the J1939Tp transport layer):

SAE J1939标准定义了一组参数组,每个参数组包含具有定义的内容和语义的信号。

The SAE J1939 standard defines a set of parameter groups, each of which contains signals with defined content and semantics.

每个PG的具体描述如下(The detailed descriptions of each PG are as follows):

ParameterGroups

Name

symbol

Detailed description

Payload length type

N/A

maximal number of bytes, fixed or variable size

Parameter Group Number

PGN

18 bit value containing the following fields

2 bit

data page information

EDP-DP

8 bit

PDU Format

PDUF

8 bit

PDU Specific

PDUS

PDU1格式:PDU格式< 240的PGN被用于标识点到点消息(PDU1 format: The PDU format with a PGN value less than 240 is used to identify point-to-point messages) PDU2格式:PDU格式>= 240的PGN被用于标识广播消息(PDU2 format: PGN with a PDU format of 240 or above is used to identify broadcast messages) PDU特定:PDU Specific字段仅与广播消息相关;对于点到点消息,它始终为零(PDU Specific: The PDU Specific field is only relevant to broadcast messages; for point-to-point messages, it is always zero) CAN标识符:J1939使用29位扩展CAN标识符来标识每条消息;CAN标识符包含3位优先级、PGN、源地址(SA)和目的地址(DA),仅适用于点对点消息(CAN Identifier: The J1939 protocol uses 29-bit extended CAN identifiers to identify each message; the CAN identifier consists of 3 bits for priority, PGN, source address (SA), and destination address (DA), and is only applicable to point-to-point messages)

通常,ECU只有一个节点地址,在接收消息中用作DA,在发送消息中用作SA。但是,单个ECU也可以同时实现几个不同的J1939节点,每个节点都有自己的节点地址。在这种情况下,ECU接受这些节点地址中的任何一个作为DA,并将定义的节点地址中的任何一个作为SA发送。 Typically, an ECU has only one node address. It is used as DA when receiving messages and as SA when sending messages. However, a single ECU can also simultaneously implement several different J1939 nodes, each with its own node address. In this case, the ECU accepts any of these node addresses as DA and sends any of the defined node addresses as SA.

SAE J1939传输层使用两个特殊的点对点消息(由PDU1格式的PGN标识)来传输分段消息,两个消息的长度都是固定的8字节;这些消息在本文档的上下文中称为传输帧。 The SAE J1939 transport layer uses two special point-to-point messages (identified by the PDU1 format of the PGN) to transmit segmented messages. Both messages have a fixed length of 8 bytes; these messages are referred to as transmission frames in the context of this document.

TP.CM用于连接管理;有效载荷的第一个字节被用于确定消息的类型: TP.CM is used for connection management; the first byte of the payload is used to determine the type of the message:

TransmissionFrameType

Transmission frame type

Detailed description

Connection Management Frame

TP.CM_BAM

used to initiate a BAM transfer.

TP.CM_RTS

transmitted to initiate a CMDT transfer.

TP.CM_CTS

used for flow control during a CMDT transfer.

TP.CM_EndOfMsgAck

indicates the end of a CMDT transfer.

TP.Conn_Abort

indicates an error and terminates the CMDT transfer.

Data Frame

TP.DT

contains a sequence number in the first byte and 7 bytes of data.

used for both BAM and CMDT transfers.

单个TP.CM或TP.DT帧由特定的CAN标识符标识,用于不同的PG,所传输PG的PGN包含在[SAE J1939-21]中规定的TP.CM帧的有效载荷中。 A single TP.CM or TP.DT frame is identified by a specific CAN identifier and is used for different PGs. The PGN of the transmitted PG is included in the payload of the TP.CM frame as specified in [SAE J1939-21].

CMDT相关传输帧的目的地址(DA)包含有效的节点地址,因此允许点对点连接,而BAM相关传输帧的DA总是设置为0xFF以创建广播连接。 The destination address (DA) of the CMDT-related transmission frame contains a valid node address, thus allowing point-to-point connections. In contrast, the DA of the BAM-related transmission frame is always set to 0xFF to create a broadcast connection.

传输层的基本功能(The basic functions of the transport layer):

确保一个独特的PDU路由器处理所有J1939 PG,与有效载荷长度类型(可变或固定)无关,J1939Tp用于传输所有长度超过8字节的参数组,与它们的长度是固定的还是可变的无关。 Ensure that a unique PDU router processes all J1939 PGs, regardless of the payload length type (variable or fixed), and that J1939Tp is used to transmit all parameter groups with a length exceeding 8 bytes, regardless of whether their length is fixed or variable.

SAE-J1939传输层实现[SAE J1939-21]中定义的两个J1939传输协议变体(The SAE-J1939 transport layer implementation [SAE J1939-21] implements the two J1939 transport protocol variants defined in the specification:):

TransportProtocolVariant

Transport Protocol Variant

Detailed description

BAM

broadcast transmission

CMDT

point-to-point transmission

J1939传输层的变体支持可配置,可以同时使用BAM和CMDT传输协议变体,或者只使用BAM,或者只使用CMDT。 The variant of the J1939 transport layer supports configuration, allowing the simultaneous use of BAM and CMDT transport protocol variants, or the use of BAM alone, or the use of CMDT alone. J1939传输层对所有N-SDU都使用SOURCE_ADDRESS_16、TARGET_ADDRESS_16、PRIORITY_8类型的MetaData,对所有N-PDU使用CAN_ID_32类型的MetaData。 The J1939 transport layer uses the MetaData of type SOURCE_ADDRESS_16, TARGET_ADDRESS_16, and PRIORITY_8 for all N-SDUs, and uses the MetaData of type CAN_ID_32 for all N-PDUs.

初始化和关机(Initialization and Shutdown):

../../_images/J1939TransportLayerLifeCycle.png

J1939Tp模块的初始化和关机控制图(Initialization and shutdown control diagram of the J1939Tp module)

如图 J1939Tp模块的初始化和关机控制图(Initialization and shutdown control diagram of the J1939Tp module) 所示,总结SAE-J1939传输层关于初始化和关机的控制流程。 As shown in the figure, summarize the control process of the SAE-J1939 transport layer regarding initialization and shutdown.

序号(Serial Number)

功能描述(Function Description)

英译(English translation)

J1939Tp模块支持两个全局状态:J1939TP_ON和J1939TP_OFF

The J1939Tp module supports two global states: J1939TP_ON and J1939TP_OFF

J1939Tp模块上电后处于J1939TP_OFF状态;在J1939TP_OFF状态下,J1939Tp允许更新构建后配置

After powering on the J1939Tp module, it is in the J1939TP_OFF state; in this state, the J1939Tp module allows for the update of the post-configuration.

只有当J1939Tp处于J1939TP_ON状态时,J1939Tp模块才会执行拆分和重组任务

Only when J1939Tp is in the J1939TP_ON state, will the J1939Tp module perform the splitting and recombination tasks.

全局状态被用于在调用API之前检查模块是否已初始化

The global state is used to check whether the module has been initialized before calling the API.

与下层的通信(Communication with the Lower Layer):

提供给底层的所有服务接口应独立于J1939Tp的内部通信配置和实现。 All service interfaces provided to the lower layer should be independent of the internal communication configuration and implementation of J1939Tp. J1939Tp组件发送传输帧TP.CM和TP.DT消息时,使用服务函数CanIf_Transmit直接发送CAN帧。 When the J1939 transport layer transmission frame TP.CM and TP.DT messages, it directly transmits the CAN frame using the service function CanIf_Transmit.

发送确认(Transmission Confirmation): CanIf调用传输确认J1939Tp_TxConfirmation函数,通知J1939Tp给定的N-PDU传输成功或失败。 The CanIf module call the J1939Tp_TxConfirmation function for transmission confirmation, informing J1939Tp whether the given N-PDU transmission was successful or failed. 当调用J1939Tp_TxConfirmation并产生E_NOT_OK结果时,J1939Tp模块将中止相应的会话。 When the J1939Tp_TxConfirmation function is called and an E_NOT_OK result is generated, the J1939Tp module will terminate the corresponding session.

接收指示(Reception Indication): J1939Tp模块提供J1939Tp_RxIndication回调接口函数,允许CanIf通知新的N-PDU已经被收到 The J1939Tp module provides the J1939Tp_RxIndication callback interface function, allowing the CanIf to notify that a new N-PDU has been received.

J1939Tp模块的内部行为动作(The internal operational actions of the J1939Tp module)

会话处理(Session Handling):

关闭传输(Close Transmission): 当传输层的传输会话成功完成后,J1939Tp模块调用上层的通知服务PduR_J1939TpTxConfirmation,如果检测到返回结果为E_OK,则通知N-SDU传输成功。

终止传输(Abort Transmission): 中止传输的特征被用于指示上层某一给定N-SDU的传输已经中止,并使用带有E_NOT_OK反馈结果的回调函数PduR_J1939TpTxConfirmation。 When the transmission session at the transport layer is successfully completed, the J1939Tp module call the upper-layer notification service PduR_J1939TpTxConfirmation. If the returned result is E_OK, it notifies that the N-SDU transmission is successful.

关闭接收(Close Reception): 关闭连接的特征被用于向上层指示传输接收会话已经完成,并使用带有E_OK反馈结果的PduR_J1939TpRxIndication来指示N-SDU接收已成功处理。 The feature of closing the connection is used to inform the upper layer that the transmission-reception session has been completed, and to indicate that the N-SDU reception has been successfully processed by using the PduR_J1939TpRxIndication with an E_OK feedback result.

终止接收(Abort Reception): 终止接收的特征被用于指示上层对给定N-SDU的接收已经中止,并使用带有E_NOT_OK反馈结果的PduR_J1939TpRxIndication来指示N-SDU接收发生异常处理。 The feature of termination of reception is used to indicate that the upper layer has stopped the reception of the given N-SDU, and the PduR_J1939TpRxIndication with the E_NOT_OK feedback result is used to indicate that abnormal processing has occurred during the N-SDU reception.

终止CMDT连接(Abort CMDT Connection): 终止CMDT连接的特征被用于指示参与相关连接的另一个ECU,当前CMDT会话(发送或接收)不能成功完成,根据[SAE J1939-21]的规定,TP.Conn_Abort中止消息应通过CAN发送到另一个ECU。 The characteristic of terminating the CMDT connection is used to indicate that another ECU involved in the relevant connection cannot successfully complete the current CMDT session (either sending or receiving). According to [SAE J1939-21], the TP.Conn_Abort termination message should be sent to the other ECU via CAN. 每次在成功发送或接收TP.CM_CTS之后发生错误时,都需要发送TP.Conn_Abort,并且在连续发送或接收TP.CM_RTS之后,建议发送TP.Conn_Abort;TP.Conn_Abort的连接中止原因按[SAE J1939-21]设置。 Whenever an error occurs after successfully sending or receiving TP.CM_CTS, TP.Conn_Abort must be sent. Additionally, it is recommended to send TP.Conn_Abort after consecutive sending or receiving TP.CM_RTS. The reason for connection termination in TP.Conn_Abort is set according to [SAE J1939-21].

给定N-SDU的接收(N-SDU Reception):

接收N-SDU总是由接收TP.CM消息开始传输;对于CMDT,由TP.CM_RTS启动传输,对于BAM,由TP.CM_BAM启动传输。 The reception of N-SDU always begins the transmission with the reception of TP.CM message; for CMDT, the transmission is initiated by TP.CM_RTS, and for BAM, it is initiated by TP.CM_BAM. 根据初始化TP.CM帧的控制字节(TP.CM_BAM或TP.CM_RTS),J1939Tp模块将使用J1939传输协议的变体BAM或CMDT来处理数据接收。 Based on the control bytes of the initialized TP.CM frame (TP.CM_BAM or TP.CM_RTS), the J1939Tp module will use the variant BAM or CMDT of the J1939 transmission protocol to handle data reception. 当收到包含TP.CM_BAM或TP.CM_RTS的N-PDU时,J1939Tp模块首先使用PduR_J1939TpStartOfReception函数来通知上层组件PduR,然后再处理帧重组: When a N-PDU containing TP.CM_BAM or TP.CM_RTS is received, the J1939Tp module first uses the PduR_J1939TpStartOfReception function to notify the upper-level component PduR, and then processes the frame reassembly:

序号(Serial Number)

参数列表描述(Description of the parameter list)

对应N-SDU的标识符(The identifier corresponding to NSDU)

取决于MetaDataItem配置项的SA、DA和Priority(It depends on the parameters such as SA, DA and Priority of the MetaDataItem configuration item.)

重组后的总数据长度(The total length of the reorganized data)

指向上层存储其当前可用缓冲区大小的位置的指针(A pointer pointing to the location in the upper layer where its current available buffer size is stored)

接收到包含TP.DT帧的N-PDU后,调用函数PduR_J1939TpCopyRxData将接收到的数据拷贝到上层: After receiving the N-PDU containing the TP.DT frame, the function PduR_J1939TpCopyRxData is called to copy the received data to the upper layer:

序号(Serial Number)

参数列表描述(Description of the parameter list)

对应N-SDU的标识符(The identifier corresponding to N-SDU)

PduInfoPtr,最大7字节数据(PduInfoPtr, maximum transmission of 7-byte data)

指向上层存储其当前可用缓冲区大小的位置的指针(A pointer pointing to the location in the upper layer where its current available buffer size is stored)

如果出现以下任何一种情况,J1939Tp模块将静默中止接收: If any of the following situations occurs, the J1939Tp module will silently stop receiving:

序号(Serial Number)

接收终止描述(Receiving termination description)

PduR_J1939TpStartOfReception函数返回BUFREQ_E_NOT_OK或BUFREQ_E_OVFL(The PduR_J1939TpStartOfReception function returns either BUFREQ_E_NOT_OK or BUFREQ_E_OVFL.)

启动选择的协议与为传输的PGN配置的传输协议不匹配(The selected protocol for startup does not match the transmission protocol configured for the PGN being transmitted.)

N-PDU中包含MetaData的SA/DA与配置的SA/DA不匹配(The SA/DA in the N-PDU that contains MetaData does not match the configured SA/DA)

通过bufferSizePtr返回的PduR_J1939TpStartOfReception的值小于通过直接N-PDU接收的N-SDU的总数据长度(The value of PduR_J1939TpStartOfReception returned through bufferSizePtr is less than the total data length of the N-SDU received directly through the N-PDU.)

PduR_J1939TpCopyRxData函数返回BUFREQ_E_NOT_OK(The PduR_J1939TpCopyRxData function returns BUFREQ_E_NOT_OK)

J1939Tp_CancelReceive函数被调用(The J1939Tp_CancelReceive function was called.)

CMDT传输方式下,需要视情况设置终止原因,以及发送TP.CM_ConnAbort异常终止消息(Under the CMDT transmission mode, it is necessary to set the termination reason according to the situation, as well as send the TP_CM_ConnAbort abnormal termination message)

给定N-SDU的发送(N-SDU Transmission):

上层PduR组件通过调用J1939Tp_Transmit请求发送N-SDU;J1939Tp_Transmit参数列表描述N-SDU的标识符和对PduInfoType的引用,PduInfoType表示要发送N-SDU的完整长度,以及指向有效载荷N-SDU的指针,根据N-SDU的元数据配置,可能包含SA、DA和Priority的Metadata。 The upper PduR component requests the transmission of an N-SDU by calling J1939Tp_Transmit; the parameter list of J1939Tp_Transmit describes the identifier of the N-SDU and the reference to PduInfoType, where PduInfoType represents the complete length of the N-SDU to be sent, as well as the pointer to the payload N-SDU. Depending on the metadata configuration of the N-SDU, it may contain Metadata such as SA, DA and Priority. 配置时,传输协议变体(BAM/CMDT)和SA/DA被用于使用发送;对于带有Metadata的N-SDU,参数是可选的;如果没有配置SA或DA,则通过Metadata使用提供的值;如果没有配置传输协议,则根据实际的DA选择:当DA为0xFF时选择BAM,否则选择CMDT。 During configuration, the transmission protocol variant (BAM/CMDT) and SA/DA are used for sending; for N-SDU with Metadata, the parameters are optional; if SA or DA is not configured, the provided values in the Metadata are used; if the transmission protocol is not configured, it is selected based on the actual DA: when DA is 0xFF, BAM is selected; otherwise, CMDT is selected. J1939Tp_Transmit函数需要使用PduInfoType结构中提供的NSduId和sdullength;它不能使用N-SDU的有效载荷,只能使用包含的Metadata。 The J1939Tp_Transmit function requires the use of the NSduId and sdullength provided in the PduInfoType structure; it cannot use the payload of the N-SDU, but can only use the included Metadata.

收到上层的传输请求后,J1939Tp模块发送(After receiving the transmission request from the upper layer, the J1939Tp module transmit):

transmissionRequest

Transport Protocol Variant

Detailed description

BAM

TP.CM_RTS frame

CMDT

TP.CM_BAM frame

对于要发送的每一个TP.DT帧,J1939Tp模块先调用PduR_J1939TpCopyTxData将待发送的数据拷贝到下层: For each TP.DT frame to be sent, the J1939Tp module first calls PduR_J1939TpCopyTxData to copy the data to be sent to the lower layer:

序号(Serial Number)

参数列表描述(Description of the parameter list)

对应N-SDU的标识符(The identifier corresponding to NSDU)

PduInfoType结构,sdullength长度不超过7字节(PduInfoPtr, maximum transmission of 7-byte data)

重传参数(Re-transmission parameter)

指向上层存储其当前可用数据的位置的指针(A pointer pointing to the location in the upper layer where its current available buffer size is stored)

当PduR_J1939TpCopyTxData返回BUFREQ_E_BUSY时,J1939Tp将重试对PduR_J1939TpCopyTxData的调用,直到数据可用或发生超时。 When PduR_J1939TpCopyTxData returns BUFREQ_E_BUSY, J1939Tp will retry the call to PduR_J1939TpCopyTxData until the data becomes available or a timeout occurs. 如果不启用J1939TpTxRetrySupport,则PduR_J1939TpCopyTxData的retry参数始终设置为NULL_PTR。 If J1939TpTxRetrySupport is not enabled, the retry parameter of PduR_J1939TpCopyTxData will always be set to NULL_PTR. 对于BAM传输方式,PduR_J1939TpCopyTxData的参数retry应该始终设置为NULL_PTR。 For the BAM transmission method, the parameter "retry" of the PduR_J1939TpCopyTxData should always be set to NULL_PTR. 如果启用了J1939TpTxRetrySupport,则在CMDT传输过程中,需要通过PduR_J1939TpCopyTxData参数retry提供一个有效的RetryInfoType结构体。 If J1939TpTxRetrySupport is enabled, during the CMDT transmission process, a valid RetryInfoType structure needs to be provided through the PduR_J1939TpCopyTxData parameter.

如果出现以下任何一种情况,J1939Tp模块将中止发送会话(If any of the following situations occurs, the J1939Tp module will terminate the transmission of the session.):

序号(Serial Number)

接收终止描述(Receiving termination description)

上层返回带有BUFREQ_E_NOT_OK的PduR_J1939TpCopyTxData函数调用(The upper layer returns the result of the PduR_J1939TpCopyTxData function call with BUFREQ_E_NOT_OK.)

J1939Tp_CancelTransmit函数被调用(The J1939Tp_CancelTransmit function was called.)

CMDT传输方式下,需要视情况设置终止原因,以及发送TP.CM_ConnAbort异常终止消息(Under the CMDT transmission mode, it is necessary to set the termination reason according to the situation, as well as send the TP.CM_ConnAbort abnormal termination message.)

基于CAN总线的数据流(Data Flow on the CAN Bus):

../../_images/DataFlowBaseOnCanBus.png

J1939Tp模块的基于CAN总线的数据流(The data stream of the J1939Tp module based on the CAN bus)

如图 J1939Tp模块的基于CAN总线的数据流(The data stream of the J1939Tp module based on the CAN bus) 所示。

使用直接传输的数据流(Data Flow using Direct Transmission):

../../_images/DataFlowUsingDirectTransmission.png

J1939Tp模块的使用直接传输的数据流(The data stream directly transmitted by the J1939Tp module)

如图 J1939Tp模块的使用直接传输的数据流(The data stream directly transmitted by the J1939Tp module) 所示,使用J1939Tp在两个ECU之间进行直接消息传输的场景,N-SDU在不使用TP.CM或TP.DT帧的情况下传输的唯一情况;SA总是包含在CAN标识符中;根据PGN的PDU格式不同,CAN标识符可能包含DA。 As shown in the figure, this is the scenario where direct message transmission is carried out between two ECU using J1939Tp. This is the only situation where N-SDU transmits without using TP.CM or TP.DT frames; SA is always included in the CAN identifier; depending on the PDU format of the PGN, the CAN identifier may include DA.

../../_images/DataFlowUsingCMDT.png

J1939Tp模块的使用CMDT传输的数据流(The data stream transmitted by the CMDT in the J1939Tp module)

如图 J1939Tp模块的使用CMDT传输的数据流(The data stream transmitted by the CMDT in the J1939Tp module) 所示,使用CMDT作为传输协议变体在两个ECU之间进行分段消息传输的场景,CMDT传输协议变体用于点对点通信。 As shown in the figure, in the scenario where CMDT is used as a transmission protocol variant for segmenting message transmission between two ECU units, the CMDT transmission protocol variant is employed for point-to-point communication.

序号(Serial Number)

功能描述(Function Description)

英译(English Translation)

J1939传输协议使用TP.CM_RTS和TP.CM_CTS的初始序列来确定每个块的数据包数量

The J1939 transmission protocol uses the initial sequences of TP.CM_RTS and TP.CM_CTS to determine the number of data packets for each block.

如果启用J1939TpTxDynamicBlockCalculation,调用J1939Tp_Transmit后,J1939Tp调用PduR_J1939TpCopyTxData一次,info->sdullength设置为0,重试设置为NULL_PTR,通过availableDataPtr获取可用的数据量。

If J1939TpTxDynamicBlockCalculation is enabled, after calling J1939Tp_Transmit, J1939Tp will call PduR_J1939TpCopyTxData once, set info->sdullength to 0, set retry to NULL_PTR, and obtain the available data volume through availableDataPtr.

如果J1939TpTxDynamicBlockCalculation和J1939TpTxMaxPacketsPerBlock使能,J1939Tp将PduR_J1939TpCopyTxData返回的可用数据量与J1939TpTxMaxPacketsPerBlock进行比较,并使用这两个值中较小的值来计算TP.CM_RTS消息的最大数据包数字段。

If J1939TpTxDynamicBlockCalculation and J1939TpTxMaxPacketsPerBlock are enabled, J1939Tp will compare the available data volume returned by PduR_J1939TpCopyTxData with J1939TpTxMaxPacketsPerBlock, and use the smaller of the two values to calculate the maximum data packet number field of the TP.CM_RTS message.

如果J1939TpTxDynamicBlockCalculation使能,而J1939TpTxMaxPacketsPerBlock未使能,则J1939Tp将使用PduR_J1939TpCopyTxData返回的可用数据量来计算TP.CM_RTS消息的最大包数字段。

If J1939TpTxDynamicBlockCalculation is enabled while J1939TpTxMaxPacketsPerBlock is not enabled, then J1939Tp will use the available data volume returned by PduR_J1939TpCopyTxData to calculate the maximum packet number field of the TP.CM_RTS message.

如果不使能J1939TpTxDynamicBlockCalculation,则J1939Tp将使用J1939TpTxMaxPacketsPerBlock作为TP.CM_RTS消息的最大包数字段。

If J1939TpTxDynamicBlockCalculation is not enabled, J1939Tp will use J1939TpTxMaxPacketsPerBlock as the maximum packet count field for the TP.CM_RTS message.

如果J1939TpRxDynamicBlockCalculation和J1939TpRxPacketsPerBlock使能,则J1939Tp将PduR_J1939TpStartOfReception返回的可用缓冲区大小的值与J1939TpRxPacketsPerBlock进行比较,并使用较低的值计算TP.CM_CTS消息的包数字段。

If J1939TpRxDynamicBlockCalculation and J1939TpRxPacketsPerBlock are enabled, J1939Tp will compare the value of the available buffer size returned by PduR_J1939TpStartOfReception with J1939TpRxPacketsPerBlock, and use the lower value to calculate the packet count field of the TP.CM_CTS message.

如果J1939TpRxDynamicBlockCalculation使能,而J1939TpRxPacketsPerBlock未使能,则J1939Tp将使用PduR_J1939TpStartOfReception返回的可用缓冲区大小的值来计算TP.CM_CTS消息的包数字段。

If J1939TpRxDynamicBlockCalculation is enabled, but J1939TpRxPacketsPerBlock is not enabled, then J1939Tp will use the value of the available buffer size returned by PduR_J1939TpStartOfReception to calculate the packet count field of the TP.CM_CTS message.

J1939Tp接收到TP.CM_RTS报文后,在接收到一个块的最后一个N-PDU报文后,如果报告的缓冲区大小足以容纳下一个块,则J1939Tp发送TP.CM_CTS报文请求下一个块。在完成一个N-SDU的接收过程中,TP.CM_CTS请求的包数应该是恒定的,只有在最后一个TP.CM_CTS中,这个数字应该减少到剩余的包数。

After receiving the TP.CM_RTS message, J1939TP will send the TP.CM_CTS message to request the next block if the reported buffer size is sufficient to accommodate the next block. During the process of receiving an N-SDU, the number of TP.CM_CTS requests should be constant, and only in the last TP.CM_CTS, this number should be reduced to the remaining number of packets.

当PduR_J1939TpStartOfReception或PduR_J1939TpCopyRxData没有足够的缓冲区来接收一个完整的块时,J1939Tp将调用PduR_J1939TpCopyRxData,并将info->sdullength设置为0,直到缓冲区大到足以容纳一个块,或者发生超时。

When there is not enough buffer space for PduR_J1939TpStartOfReception or PduR_J1939TpCopyRxData to receive a complete block, J1939Tp will call PduR_J1939TpCopyRxData and set info->sdullength to 0 until the buffer becomes large enough to accommodate a block, or a timeout occurs.

J1939Tp在监控缓冲状态时,根据[SAE J1939-21]定义的定时要求,发送TP.CM_CTS等待帧(包数设为0)。

When J1939Tp is monitoring the buffer status, it sends the TP.CM_CTS waiting frame (with the packet number set to 0) in accordance with the timing requirements defined in [SAE J1939-21].

如果J1939TpRxRetrySupport使能,J1939Tp将根据J1939TpRxDynamicBufferRatio将PduR_J1939TpStartOfReception返回的值调整为可用缓冲区大小,然后使用该值计算指定TP.CM_CTS消息的包数字段。

If J1939TpRxRetrySupport is enabled, J1939Tp will adjust the value returned by PduR_J1939TpStartOfReception based on J1939TpRxDynamicBufferRatio to the available buffer size, and then use this value to calculate the packet count field of the specified TP.CM_CTS message.

如果不使能J1939TpRxDynamicBlockCalculation,则J1939Tp将使用J1939TpRxPacketsPerBlock计算TP.CM_CTS消息的包数字段。

If J1939TpRxDynamicBlockCalculation is not enabled, J1939Tp will use J1939TpRxPacketsPerBlock to calculate the packet count field of the TP.CM_CTS message.

如果启用了J1939TpTxRetrySupport, J1939Tp将在接收到TP.CM_CTS后的第一次调用时调用PduR_J1939TpCopyTxData,并将TpDataState设置为TP_DATACONF,或者将TpDataState设置为TP_CONFPENDING.

If J1939TpTxRetrySupport is enabled, J1939Tp will call PduR_J1939TpCopyTxData for the first time after receiving TP.CM_CTS, and set TpDataState to TP_DATACONF, or set it to TP_CONFPENDING.

如果收到一个TP.CM_CTS等待帧(报文数设置为0),则J1939Tp将等待另一个TP.CM_CTS帧。

If a TP.CM_CTS waiting frame (with the message count set to 0) is received, then J1939Tp will wait for another TP.CM_CTS frame.

当J1939Tp接收到TP.CM_CTS帧请求的数据超出当前位置或在最后一次接收到TP.CM_CTS的位置之前时,它将终止传输,原因为255(SNA)。

When J1939Tp receives the TP.CM_CTS frame requesting data that is beyond the current position or before the last position where TP.CM_CTS was received, it will terminate the transmission, with the reason being 255 (SNA).

如果启用J1939TpTxRetrySupport,当J1939Tp接收到请求已经发送数据的TP.CM_CTS帧时,它将调用PduR_J1939TpCopyTxData,TpDataState设置为TP_DATARETRY,TxTpDataCnt设置为要重传的字节数;需要重传的字节数是从请求包相对于当前包的位置计算出来的。

If J1939TpTxRetrySupport is enabled, when J1939Tp receives a TP.CM_CTS frame that indicates the data has been sent, it will call PduR_J1939TpCopyTxData. The TpDataState will be set to TP_DATARETRY and the TxTpDataCnt will be set to the number of bytes to be retransmitted; the number of bytes to be retransmitted is calculated based on the position of the request packet relative to the current packet.

如果禁用J1939TpTxRetrySupport,当J1939Tp接收到请求已经发送数据的TP.CM_CTS帧时,它将终止传输,原因为255(未分配)。

If J1939TpTxRetrySupport is disabled, when J1939Tp receives a TP.CM_CTS frame requesting the transmission of data, it will terminate the transmission due to the reason of 255 (unallocated).

启用J1939TpRxRetrySupport功能后,当接收过程中出现序列错误时,J1939Tp模块将在接收到块的最后一个TP.DT消息后,发送一个TP.CM_CTS帧,请求当前块的最后一个正确接收的包之后的包。

After enabling the J1939TpRxRetrySupport function, when a sequence error occurs during the reception process, the J1939Tp module will send a TP.CM_CTS frame after receiving the last TP.DT message of the block, requesting the next block of packets after the last correctly received packet of the current block.

具有序列错误的TP.DT报文的内容和同一块中序列错误之后的TP.DT报文的内容将被丢弃。

Messages with sequence errors in the TP.DT format and the corresponding TP.DT messages after sequence errors in the same block will be discarded.

如果不使能J1939TpRxRetrySupport,则当接收过程中出现序列错误时,J1939Tp模块将中止接收会话,连接中止原因为255(SNA)。

If J1939TpRxRetrySupport is not enabled, when a sequence error occurs during the reception process, the J1939Tp module will terminate the reception session, and the connection termination reason will be 255 (SNA).

J1939Tp实现[SAE J1939-21]中所述的所有与CMDT相关的时序约束(Tr、Th、T1、T2、T3、T4),被用于监督CMDT数据流。

The J1939Tp protocol fulfills all the timing constraints (Tr, Th, T1, T2, T3, T4) related to CMDT as described in [SAE J1939-21], and is used to monitor the CMDT data stream.

如果在CMDT传输过程中发生超时,则J1939Tp模块将在成功传输TP.CM_RTS帧后,根据指定的超时终止传输会话,连接中断原因为3。

If a timeout occurs during the CMDT transmission process, the J1939Tp module will terminate the transmission session after successfully transmitting the TP.CM_RTS frame, based on the specified timeout. The reason for the connection interruption will be 3.

如果在接收过程中发生超时,则J1939Tp模块将按照指定的方式中止接收会话,连接中止原因为3。

If a timeout occurs during the receiving process, the J1939Tp module will terminate the receiving session in the specified manner, and the reason for the connection termination will be 3.

如果在ECU成功发送TP.CM_RTS帧后又收到TP.Conn_Abort帧,则终止传输,不需要传输TP.Conn_Abort。

If after the ECU successfully sends the TP.CM_RTS frame, it subsequently receives the TP.Conn_Abort frame, then the transmission should be terminated and there is no need to send the TP.Abort frame.

如果在收到TP.CM_RTS帧之后又收到了一个TP.Conn_Abort帧,则终止接收,不需要传输TP.Conn_Abort。

If a TP.Conn_Abort frame is received after receiving a TP.CM_RTS frame, then stop receiving and there is no need to transmit the TP.Conn_Abort frame.

../../_images/DataFlowUsingBAM.png

J1939Tp模块的使用BAM传输的数据流(The use of the J1939Tp module for transmitting data streams via BAM)

如图 J1939Tp模块的使用BAM传输的数据流(The use of the J1939Tp module for transmitting data streams via BAM) 所示,使用BAM作为传输协议变体在两个ECU之间进行分段消息传输的场景,BAM传输协议变体用于广播通信。 As shown in the figure, in the scenario where BAM is used as a transmission protocol variant for segmenting message transmission between two ECU units, the BAM transmission protocol variant is employed for broadcast communication.

序号(Serial Number)

功能描述(Function Description)

英译(English Translation)

J1939Tp实现[SAE J1939-21]中描述的与BAM相关的时序约束(50ms, Tr, T1)被用于监督BAM数据流。

The timing constraints related to BAM as described in [SAE J1939-21] (50ms, Tr, T1) implemented by J1939Tp are used to monitor the BAM data stream.

如果BAM接收期间发生超时,J1939Tp模块将按照指定的方式中止接收会话。

If a timeout occurs during the BAM reception process, the J1939Tp module will terminate the receiving session in the specified manner.

发生序列错误后,J1939Tp将中止BAM连接。

After a sequence error occurs, J1939Tp will terminate the BAM connection.

给定N-SDU的缓冲区管理(N-SDU Buffer Management):

J1939Tp不具备内部PDU缓冲器,而是通过PduR_J1939TpCopyTxData直接从上层请求发送数据,并通过PduR_J1939TpCopyRxData直接向上层提供接收到的数据。 J1939Tp does not have an internal PDU buffer. Instead, it requests to send data from the upper layer directly through PduR_J1939TpCopyTxData, and provides the received data to the upper layer directly through PduR_J1939TpCopyRxData. 备注:保证数据的一致性,在整个数据传输或接收过程中,必须锁定上层的整个缓冲区。 Note: To ensure data consistency, the entire upper-level buffer must be locked throughout the entire data transmission or reception process.

../../_images/TxBufferLocking.PNG

J1939Tp模块的发送缓冲区锁定(Locking of the transmission buffer of the J1939Tp module)

如图 J1939Tp模块的发送缓冲区锁定(Locking of the transmission buffer of the J1939Tp module) 所示,数据发送通过PduR调用J1939Tp_Transmit函数来进行启动,在J1939Tp成功执行此调用后进入激活状态,直到J1939Tp调用PduR_J1939TpTxConfirmation。 As shown in the figure, the data transmission is initiated by calling the J1939Tp_Transmit function through PduR. After J1939Tp successfully executes this call, it enters the activated state until J1939Tp calls PduR_J1939TpTxConfirmation.

../../_images/RxBufferLocking.PNG

J1939Tp模块的接收缓冲区锁定(Locking of the receiving buffer of the J1939Tp module)

如图 J1939Tp模块的接收缓冲区锁定(Locking of the receiving buffer of the J1939Tp module) 所示,数据接收通过J1939Tp调用PduR_J1939TpStartOfReception来进行启动,在PduR成功执行此调用后处于激活状态,直到J1939Tp调用PduR_J1939TpRxIndication。 As shown in the figure, data reception is initiated by calling PduR_J1939TpStartOfReception through J1939Tp. After PduR successfully executes this call, it enters an active state until J1939Tp calls PduR_J1939TpRxIndication.

N-SDU和N-PDU的关系(Relationship between N-SDU and N-PDU in J1939Tp):

../../_images/RelationBetweenNSDUandNPDU.PNG

J1939Tp模块中N-SDU和N-PDU的关系(The relationship between N-SDU and N-PDU in the J1939Tp module)

如图 J1939Tp模块中N-SDU和N-PDU的关系(The relationship between N-SDU and N-PDU in the J1939Tp module) 所示,N-SDU与传输N-SDU数据所需的N-PDU集之间的关系,N-PDU和N-SDU都可能使用Metadata;此时,无论源地址和目的地址如何,N-SDU代表某个PGN, N-PDU代表TP.CM、TP.DT和direct PG。 As shown in the figure, the relationship between N-SDU and the set of N-PDU required for transmitting N-SDU data. Both N-PDU and N-SDU may use Metadata; at this time, regardless of the source address and destination address, N-SDU represents a certain PGN, and N-PDU represents TP.CM, TP.DT and direct PG.

序号(Serial Number)

功能描述(Function Description)

英译(English Translation)

在接收期间,N-SDU由TP.CM有效载荷中包含的PGN和当N-SDU没有元数据时,从NPduId中隐式编码的寻址信息或通过N-PDU的元数据显式提供的寻址信息组合来识别。

During the reception process, the N-SDU is identified by combining the PGN contained in the TP.CM payload and the addressing information implicitly encoded in the NPduId when the N-SDU has no metadata, or the addressing information explicitly provided through the N-PDU metadata.

在传输过程中,相应的N-PDU集由N-SDU上配置的没有元数据的SA/DA来识别,或者由上层元数据中明确提供的SA/DA来识别。

During the transmission process, the corresponding N-PDU set is identified by the SA/DA configured on the N-SDU without metadata, or by the SA/DA explicitly provided in the upper-layer metadata.

给定N-PDU的填充(N-PDU Padding):

序号(Serial Number)

功能描述(Function Description)

根据[SAE J1939-21],J1939传输层模块发送的TP.DT帧总是8字节(According to [SAE J1939-21], the TP.DT frame sent by the J1939 transport layer module is always 8 bytes in size)。

根据[SAE J1939-21],最后一个TP.DT帧或直接帧内所有未使用的数据字节都应设置为0xFF(According to [SAE J1939-21], the last TP.DT frame or all unused data bytes within the direct frame should be set to 0xFF)。

意外N-PDU到达的处理(Handling of Unexpected N-PDU Arrivals):

序号(Serial Number)

功能描述(Function Description)

英译(English Translation)

J1939Tp将忽略不符合当前激活连接的意外N-PDU。

J1939Tp will ignore unexpected NPDU that do not conform to the currently active connection.

如果禁用J1939TpTxRetrySupport,则在发送TP.DT消息时收到TP.CM_CTS,J1939Tp将中止连接,连接中止原因为4(数据正在传输时收到TP.CM_CTS消息)。

If J1939TpTxRetrySupport is disabled, when sending the TP_DT message, if the TP.CM_CTS message is received, J1939Tp will terminate the connection. The reason for the connection termination is 4 (TP.CM_CTS message received while data is being transmitted).

当收到当前活动连接的TP.CM_RTS时,J1939Tp将停止连接,并开始一个新连接。

When it receives the TP.CM_RTS of the current active connection, J1939Tp will terminate the connection and start a new one.

消息帧格式(Message frame format):

基于多帧传输方式的管理帧消息格式(Management frame message format based on multi-frame transmission method):

ManagementFrameFormat

Connection Management

A detailed description of the message format of the connection management frame

Transmission rate

Per the PG to be transferred

Data length

8 bytes

Extended Date Page

0

Data Page

0

PDU Format

236

PDU Specific

Destination Address

Default priority

7

Parameter Group Number

0x00EC00(60416)

Parameter Group Number

0x00EC00(60416)

TP.CM

Description

Used for the transfer of PGs that have 9 or more bytes of data.

Control Byte

0 to 15,18,20 to 31, and 33 to 254 are Reserved for SAE Assignment

Total Message Size, number of bytes

9 to 1785 (2 bytes), zero to 8 and 1786 to 65535 not allowed

Total Number of Packets

2 to 255 (1 byte), zero not allowed

Maximum Number of Packets

2 to 255 (1 byte), zero and one are not allowed

Number of Packets that can be sent

0 to 255 (1 byte)

Next Packet Number to be Sent

1 to 255 (1 byte), zero not allowed

Sequence Number

1 to 255 (1 byte), zero not allowed

TP.CM_RTS

Description

Connection Mode Request to Send: Destination Specific

Byte1

Control Byte

0x10

Description

Destination Specific Request_To_Send

Byte2 - Byte3

Total message size, number of bytes

Byte4

Total number of packets

Byte5

Maximum number of packets that can be sent in response to one CTS

0xFF: indicates that no limit exists for the originator

Byte6 - Byte8

PGN of the packeted message

Byte6

LSB of PGN

Byte7

2nd byte of PGN

Byte8

MSB of PGN

TP.CM_CTS

Description

Connection Mode Clear to Send: Destination Specific

Byte1

Control Byte

0x11

Description

Destination Specific Clear_To_Send

Byte2

Number of packets that can be sent.

This value shall be no larger than the value in byte 5 of the RTS message.

Byte3

Next packet number to be sent

Byte4 - Byte5

Reserved for assignment by SAE, these bytes should be filled with 0xFF

Byte6 - Byte8

PGN of the packeted message

Byte6

LSB of PGN

Byte7

2nd byte of PGN

Byte8

MSB of PGN

TP.CM_EndOfMsgACK

Description

End of Message Acknowledgment: Destination Specific

Byte1

Control Byte

0x13

Description

End_of_Message Acknowledge

Byte2 - Byte3

Total message size, number of bytes

Byte4

Total number of packets

Byte5

Reserved for assignment by SAE, this byte should be filled with 0xFF

Byte6 - Byte8

PGN of the packeted message

Byte6

LSB of PGN

Byte7

2nd byte of PGN

Byte8

MSB of PGN

TP.Conn_Abort

Description

Connection Abort: Destination Specific

Byte1

Control Byte

0xFF

Description

Connection Abort

Byte2

Connection Abort reason

Byte3 - Byte5

Reserved for assignment by SAE, these bytes should be filled with 0xFF

Byte6 - Byte8

PGN of the packeted message

Byte6

LSB of PGN

Byte7

2nd byte of PGN

Byte8

MSB of PGN

TP.CM_BAM

Description

Broadcast Announce Message: Global Destination

Byte1

Control Byte

0x20

Description

Broadcast Announce Message

Byte2 - Byte3

Total message size, number of bytes

Byte4

Total number of packets

Byte5

Reserved for assignment by SAE, this byte should be filled with 0xFF

Byte6 - Byte8

PGN of the packeted message

Byte6

LSB of PGN

Byte7

2nd byte of PGN

Byte8

MSB of PGN

基于多帧传输方式的数据帧消息格式(Data frame message format based on multi-frame transmission method):

DataFrameFormat

Data Transmit

A detailed description of the message format of the data frame

Transmission rate

Per the PG to be transferred

Data length

8 bytes

Extended Date Page

0

Data Page

0

PDU Format

235

PDU Specific

Destination Address

Global DA = 255 is required for TP.CM_BAM data transfers

Global DA is not allowed for RTS/CTS data transfers

Default priority

7

Parameter Group Number

0x00EB00(60160)

TP.DT

Description

Used for the transfer of data associated with PG that have more than 8 bytes of data

Byte1

Sequence Number

Byte2 - Byte7

Packetized Data

The last packet of a multipacket PG may require less than 7 data bytes

The extra bytes should be filled with 0xFF

偏差(Deviation)

需求类型(requirement type)

详细描述(Detailed description)

需求编号(Demand Number)

N/A

N/A

N/A

集成(Integration)

文件列表(File List)

../../_images/J1939TpFileListMap.png

J1939Tp模块中的文件列表映射拓扑图(The file list mapping topology diagram in the J1939Tp module)

静态文件(Static File)

文件名称(File Name)

详细描述(Detailed Description)

J1939Tp.h

SAE-J1939传输层外部接口声明头文件(SAE-J1939 Transmission Layer External Interface Declaration Header File)

J1939Tp.c

SAE-J1939传输层总体框架实现源文件(The overall framework implementation of the SAE-J1939 transmission layer in the source file)

J1939Tp_Rx.c

SAE-J1939传输层消息接收与解析的实现源文件文件(The implementation source file for receiving and parsing SAE-J1939 transport layer messages)

J1939Tp_Tx.c

SAE-J1939传输层消息发送与解析的实现源文件文件(The implementation source file for sending and parsing of SAE-J1939 transport layer messages)

J1939Tp_Internal.h

SAE-J1939传输层内部公用接口声明,全局变量声明,宏定义和数据类型定义头文件(Header file for internal common interface declaration of SAE-J1939 transport layer, global variable declaration, macro definition and data type definition)

J1939Tp_Cbk.h

SAE-J1939传输层可为通信栈提供的回调函数声明头文件(Header file for declaring callback functions provided by the SAE-J1939 transport layer for the communication stack)

J1939Tp_MemMap.h

SAE-J1939Tp传输层的内存分布头文件(Memory Distribution Header File for SAE-J1939Tp Transport Layer)

动态文件(Dynamic File)

文件名称(File Name)

详细描述(Detailed Description)

J1939Tp_Cfg.h

SAE-J1939传输层中PC配置的宏定义文件(The macro definition file for PC configuration in the SAE-J1939 transport layer)

J1939Tp_PCcfg.c

SAE-J1939传输层中非PB配置的数据变量定义源文件(Source file for defining non-PB-configured data variables in the SAE-J1939 transport layer)

J1939Tp_PBcfg.c

SAE-J1939传输层中PB配置的数据变量定义文件(The data variable definition file for PB configuration in the SAE-J1939 transport layer)

错误处理(Error handling)

开发错误(Development Error)

Error code

Value[hex]

Description

J1939TP_E_UNINIT

0x01

API service used in state J1939TP_OFF.

J1939TP_E_REINIT

0x02

J1939Tp_Init() called in state J1939TP_ON.

J1939TP_E_INIT_FAILED

0x03

J1939Tp_Init() was called with an invalid configuration pointer.

J1939TP_E_PARAM_POINTER

0x10

API service called with null pointer.

J1939TP_E_INVALID_PDU_SDU_ID

0x11

API service called with wrong ID.

运行时错误(Runtime error)

Error code

Value[hex]

Description

J1939TP_E_TIMEOUT_T1

0x30

Timeout occurred on receiver side after reception of an intermediate TP.DT frame of a block.

J1939TP_E_TIMEOUT_T2

0x31

Timeout occurred on receiver side after transmission of a TP.CM/CTS frame.

J1939TP_E_TIMEOUT_T3

0x32

Timeout occurred on transmitter side after transmission of the last TP.DT frame of a block.

J1939TP_E_TIMEOUT_T4

0x33

Timeout occurred on transmitter side after reception of a TP.CM/CTS(0) frame.

J1939TP_E_TIMEOUT_TR

0x34

Timeout occurred on transmitter or receiver side while trying to send the next TP.DT or TP.CM frame.

J1939TP_E_TIMEOUT_TH

0x35

Timeout occurred on receiver side while trying to send the next TP.CM/CTS frame after a TP.CM/CTS(0) frame.

J1939TP_E_INVALID_TMS

0x40

Invalid value for "total message size" in received TP.CM/RTS frame.

J1939TP_E_INVALID_TNOP

0x41

Value for "total number of packets" in received TP.CM/RTS frame does not match the "total message size".

J1939TP_E_INVALID_MNOP

0x42

Invalid value for "maximum number of packets" in received TP.CM/RTS frame.

J1939TP_E_INVALID_PGN

0x43

Unexpected PGN in received TP.CM frame.

J1939TP_E_INVALID_NOP

0x44

Invalid value for "number of packets" in received TP.CM/CTS frame.

J1939TP_E_INVALID_NPN

0x45

Invalid value for "next packet number" in received TP.CM/CTS frame.

J1939TP_E_INVALID_CAR

0x46

Invalid value for "connection abort reason" in received TP.Conn_Abort frame.

J1939TP_E_INVALID_SN

0x47

Unexpected serial number in received TP.DT frame.

产品错误(Product error)

None

API接口描述 (API Interface Description)

数据类型定义 (Data Type definition)

Std_VersionInfoType类型定义 (Std_VersionInfoType type definition)

名称 (Name)

Std_VersionInfoType

类型 (Type)

Structure

定义 (Define)

typedef struct

{

uint16 vendorID;

uint16 moduleID;

uint8 instanceID;

uint8 sw_major_version;

uint8 sw_minor_version;

uint8 sw_patch_version;

} Std_VersionInfoType;

范围 (Range)

描述 (Description)

用于描述软件版本信息的结构体类型 (Struct type for describing software version information)

Std_ReturnType类型定义 (Std_ReturnType Type Definition)

名称 (Name)

Std_ReturnType

类型 (Type)

uint8

定义 (Define)

typedef uint8 Std_ReturnType;

范围 (Range)

0 … 255

描述 (Description)

用于定义J1939Tp模块的函数返回值的派生数据类型 (Data types derived for describing API return value in J1939Tp)

PduIdType类型定义 (PduIdType Type Definition)

名称 (Name)

PduIdType

类型 (Type)

uint16

定义 (Define)

typedef uint16 PduIdType;

范围 (Range)

0 … 65535

描述 (Description)

用于定义J1939Tp模块的PDU标识符的派生数据类型 (Data types derived for describing PDU identifier in J1939Tp)

PduLengthType类型定义 (PduLengthType Type Definition)

名称 (Name)

PduLengthType

类型 (Type)

uint16

定义 (Define)

typedef uint16 PduLengthType;

范围 (Range)

0 … 65535

描述 (Description)

用于定义J1939Tp模块的PDU长度的派生数据类型 (Data types derived for describing PDU length in J1939Tp)

TpDataStateType类型定义 (TpDataStateType Type Definition)

名称 (Name)

TpDataStateType

类型 (Type)

Enumeration

范围 (Range)

TP_DATACONF = 0U

TP_DATARETRY = 1U

TP_CONFPENDING = 2U

描述 (Description)

用于定义J1939Tp模块的传输数据状态的枚举类型 (Enumerated type for store the state of transmission data)

TPParameterType类型定义 (TPParameterType Type Definition)

名称 (Name)

TPParameterType

类型 (Type)

Enumeration

范围 (Range)

TP_STMIN = 0U

TP_BS = 1U

TP_BC = 2U

描述 (Description)

用于定义J1939Tp模块的传输参数的枚举类型 (Enumerated type for store the transmission parameter)

PduInfoType类型定义 (PduInfoType Type Definition)

名称 (Name)

PduInfoType

类型 (Type)

Structure

定义 (Define)

typedef struct

{

uint8* SduDataPtr;

uint8* MetaDataPtr;

PduLengthType SduLength;

} PduInfoType;

范围 (Range)

描述 (Description)

用于描述J1939传输层存储PDU信息的结构体类型 (Struct type for describing store PDU information in J1939Tp)

RetryInfoType类型定义 (RetryInfoType Type Definition)

名称 (Name)

RetryInfoType

类型 (Type)

Structure

定义 (Define)

typedef struct

{

TpDataStateType TpDataState;

PduLengthType TxTpDataCnt;

} RetryInfoType;

范围 (Range)

描述 (Description)

用于描述J1939模块存储重传信息的结构体类型 (Struct type for describing J1939Tp store retry information)

BufReq_ReturnType类型定义 (BufReq_ReturnType Type Definition)

名称 (Name)

BufReq_ReturnType

类型 (Type)

Enumeration

范围 (Range)

BUFREQ_OK = 0U

BUFREQ_E_NOT_OK = 1U

BUFREQ_E_BUSY = 2U

BUFREQ_E_OVFL = 3U

描述 (Description)

用于定义J1939Tp模块的缓冲区请求返回的枚举类型 (Enumerated type for store the result of a buffer request)

输入函数描述 (Describe the input function:)

输入模块 (Input Module)

API

CanIf

CanIf_Transmit

Det

Det_ReportError

Det

Det_ReportRuntimeError

PduR

PduR_J1939TpCopyRxData

PduR

PduR_J1939TpCopyTxData

PduR

PduR_J1939TpRxIndication

PduR

PduR_J1939TpStartOfReception

PduR

PduR_J1939TpTxConfirmation

静态接口函数定义 (Static interface function definition)

J1939Tp_Init

void J1939Tp_Init(const J1939Tp_ConfigType *ConfigPtr)

This function initializes the J1939Tp module.

Sync/Async

Synchronous

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

ConfigPtr

Pointer to configuration data structure.

Return type

void

J1939Tp_Shutdown

void J1939Tp_Shutdown(void)

This function is used to shutdown the J1939Tp module.

Sync/Async

Synchronous

Reentrancy

Reentrant

Return type

void

J1939Tp_GetVersionInfo

void J1939Tp_GetVersionInfo(Std_VersionInfoType *VersionInfo)

Returns the version information of J1939Tp.

Sync/Async

Reentrant

Reentrancy

Synchronous

Parameters

Dir

Name

Description

[out]

VersionInfo

Pointer to the location where the version information of J1939Tp shall be stored.

Return type

void

J1939Tp_Transmit

Std_ReturnType J1939Tp_Transmit(PduIdType TxPduId, const PduInfoType *PduInfoPtr)

Requests transmission of a PDU.

Sync/Async

Synchronous

Reentrancy

Reentrant for different PduIds. Non reentrant for the same PduId

Parameters

Dir

Name

Description

[in]

TxPduId

Identifier of the PDU to be transmitted

[in]

PduInfoPtr

Length of and pointer to the PDU data and pointer to MetaData.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Transmit request has been accepted.

E_NOT_OK

Transmit request has not been accepted.

J1939Tp_CancelTransmit

Std_ReturnType J1939Tp_CancelTransmit(PduIdType TxPduId)

Requests cancellation of an ongoing transmission of a PDU in a lower layer communication module.

Sync/Async

Synchronous

Reentrancy

reentrant for different PduIds, Non reentrant for the same PduId.

Parameters

Dir

Name

Description

[in]

TxPduId

identification of the PDU to be cancelled.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Cancellation was executed successfully by the destination module.

E_NOT_OK

Cancellation was rejected by the destination module.

J1939Tp_CancelReceive

Std_ReturnType J1939Tp_CancelReceive(PduIdType RxPduId)

Requests cancellation of an ongoing reception of a PDU in a lower layer transport protocol module.

Sync/Async

Synchronous

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

RxPduId

Identification of the PDU to be cancelled.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Cancellation was executed successfully by the destination module.

E_NOT_OK

Cancellation was rejected by the destination module.

J1939Tp_ChangeParameter

Std_ReturnType J1939Tp_ChangeParameter(PduIdType id, TPParameterType parameter, uint16 value)

Request to change a specific transport protocol parameter (e.g. block size).

Sync/Async

Synchronous

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

id

Identification of the PDU which the parameter change shall affect.

[in]

parameter

ID of the parameter that shall be changed.

[in]

value

The new value of the parameter.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

The parameter was changed successfully.

E_NOT_OK

The parameter change was rejected.

J1939Tp_RxIndication

void J1939Tp_RxIndication(PduIdType RxPduId, const PduInfoType *PduInfoPtr)

Indication of a received PDU from a lower layer communication interface module.

Sync/Async

Synchronous

Reentrancy

Reentrant for different PduIds. Non reentrant for the same PduId.

Parameters

Dir

Name

Description

[in]

RxPduId

ID of the received PDU.

[in]

PduInfoPtr

Contains the length (SduLength) of the received PDU, a pointer to a buffer (SduDataPtr) containing the PDU, and the MetaData related to this PDU.

Return type

void

J1939Tp_TxConfirmation

void J1939Tp_TxConfirmation(PduIdType TxPduId, Std_ReturnType result)

The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.

Sync/Async

Synchronous

Reentrancy

Reentrant for different PduIds. Non reentrant for the same PduId.

Parameters

Dir

Name

Description

[in]

TxPduId

ID of the PDU that has been transmitted.

[in]

result

E_OK: The PDU was transmitted. E_NOT_OK: Transmission of the PDU failed.

Return type

void

J1939Tp_MainFunction

void J1939Tp_MainFunction(void)

Main function of the J1939Tp. Used for scheduling purposes and timeout supervision.

Sync/Async

Synchronous

Reentrancy

Non Reentrant

Return type

void

可配置回调函数(Configurable callback function)

J1939Tp_MainFunction

void J1939Tp_MainFunction_<ComMChannel.ShortName>(void)

This function shall perform the processing of the AUTOSAR J1939Tp activities that are not directly initiated by the calls e.g. from the RTE. There shall be one dedicated Main Function for each channel of J1939Tp.

Sync/Async

Synchronous

Reentrancy

Non Reentrant

Return type

void

配置描述(Configuration Description)

J1939传输层的常规配置(The conventional configuration of the J1939 transport layer)

../../_images/J1939TpGeneral.PNG

J1939Tp模块中的常规配置项参数描述(Description of the conventional configuration item parameters in the J1939Tp module)

SAE-J1939传输层的常规配置的参数列表(The parameter list for the conventional configuration of the SAE-J1939 transport layer):

J1939TpGeneral

J1939TpGeneral

Contains the general configuration parameters of the module.

J1939TpVersionInfoApi

Description

Pre-processor switch for enabling version info API support.

PB Supported

false

Multiplicity

1

Type

boolean

Value Range

false..true

Default Value

false

J1939TpDevErrorDetect

Description

Switches the development error detection and notification on or off.

PB Supported

false

Multiplicity

1

Type

boolean

Value Range

true

detection and notification is enabled.

false

detection and notification is disabled.

Default Value

false

Dependency

Depends on the configuration of Det

J1939TpCancellationSupport

Description

Enable transmit and receive cancellation. The APIs J1939Tp_CancelTransmit() and J1939Tp_CancelReceive() will only be available when this parameter is enabled.

PB Supported

false

Multiplicity

0..1

Type

boolean

Value Range

false..true

Default Value

false

J1939TpMainFunctionPeriod

Description

Allow to configure the time for the MainFunction (in seconds). Please note: This configuration value shall be equal to the value in the ScheduleManager module.

PB Supported

false

Multiplicity

1

Type

Float

Value Range

0..INF

Default Value

N/A

Dependency

N/A

J1939TpTxConfTimeout

Description

Timeout in seconds for the CanIf Tx confirmation. After this time the J1939Tp assumes that an N-PDU could not be transmitted.

PB Supported

false

Multiplicity

1

Type

Float

Value Range

0..INF

Default Value

N/A

Dependency

N/A

J1939Tp传输层的特定配置(Specific configuration of the J1939Tp transport layer)

../../_images/J1939TpConfiguration.PNG

J1939Tp模块中的特定配置项参数描述(Specific configuration item parameters in the J1939 transport layer description)

SAE-J1939传输层的特定配置的参数列表(The specific configuration parameter list of the SAE-J1939 transport layer):

J1939TpConfiguration

J1939TpConfiguration

This container contains the configuration parameters and sub containers of the AUTOSAR J1939Tp module

J1939TpRxChannels

Description

This container describes a reception channel of the J1939Tp module.

PB Supported

false

Multiplicity

0..*

Type

N/A

Value Range

N/A

Default Value

N/A

Dependency

N/A

J1939TpTxChannels

Description

This container describes a transmission channel of the J1939Tp module.

PB Supported

false

Multiplicity

0..*

Type

N/A

Value Range

N/A

Default Value

N/A

Dependency

N/A

J1939TpRxChannel

../../_images/J1939TpRxChannel.PNG

J1939Tp模块中的接收通道配置项参数描述(The parameter description of the receiving channel configuration item in the J1939Tp module)

SAE-J1939传输层的给定接收通道的特定配置参数列表(The specific configuration parameter list for a given receiving channel of the SAE-J1939 transport layer):

J1939TpRxChannel

J1939TpRxChannel

This container describes a reception channel of the J1939Tp module.

J1939TpRxCancellationSupport

Description

Enable receive cancellation using the API J1939Tp_CancelReceive() for this channel.

PB Supported

false

Multiplicity

0..1

Type

Boolean

Value Range

false..true

Default Value

false

Dependency

N/A

J1939TpRxDa

Description

Destination address (DA) of this channel. This parameter is only required for channels with fixed DA which use N-PDUs with MetaData containing the DA.

PB Supported

true

Multiplicity

0..1

Type

Integer

Value Range

0..253

Default Value

N/A

Dependency

N/A

J1939TpRxDynamicBlockCalculation

Description

Enable dynamic calculation of "number of packets that can be sent" value in TP.CM_CTS, based on the size of buffers in upper layers reported via StartOfReception and PduR_J1939TpCopyRxData.

PB Supported

false

Multiplicity

0..1

Type

Boolean

Value Range

false..true

Default Value

false

Dependency

N/A

J1939TpRxDynamicBufferRatio

Description

Percentage of available buffer that shall be used for retry. This parameter is only applicable when "J1939TpRxRetrySupport" and "J1939TpRxDynamicBlockCalculation" are enabled.

PB Supported

false

Multiplicity

0..1

Type

Integer

Value Range

0..100

Default Value

80

Dependency

Only applicable when "J1939TpRxRetrySupport" and "J1939TpRxDynamicBlockCalculation" are enabled

J1939TpRxPacketsPerBlock

Description

Number of TP.DT frames the receiving J1939Tp module allows the sender to send before waiting for another TP.CM_CTS. This parameter is transmitted in the TP.CM_CTS frame, and is thus only relevant for reception of messages via CMDT. When J1939TpRxDynamicBlockCalculation is enabled, this parameter specifies a maximum for the calculated value. For further details on this parameter value see SAE J1939/21.

PB Supported

false

Multiplicity

0..1

Type

Integer

Value Range

0..255

Default Value

16

Dependency

N/A

J1939TpRxProtocolType

Description

Protocol type used by this channel. This parameter is only required for channels with fixed destination address.

PB Supported

false

Multiplicity

0..1

Type

Enumeration

Value Range

J1939TP_PROTOCOL_NONE,J1939TP_PROTOCOL_BAM,J1939TP_PROTOCOL_CMDT

Default Value

J1939TP_PROTOCOL_NONE

Dependency

N/A

J1939TpRxRetrySupport

Description

Enable support for triggering repetition of failed transmission using TP.CM_CTS with a packet number that has already been sent. Retransmission is triggered when a sequence number is missing or a timeout occurs during reception.

PB Supported

false

Multiplicity

0..1

Type

Boolean

Value Range

false..true

Default Value

false

Dependency

N/A

J1939TpRxSa

Description

Source address (SA) of this channel. This parameter is only required for channels with fixed SA which use N-PDUs with MetaData containing the SA.

PB Supported

true

Multiplicity

0..1

Type

Integer

Value Range

0..253

Default Value

N/A

Dependency

N/A

J1939TpRxChannelComMNetworkHandleRef

Description

Reference to the channel defined by the ComMChannel providing access to the unique channel index ComMChannelId.

PB Supported

false

Multiplicity

1

Type

Symbolic name reference to ComMChannel

Value Range

N/A

Default Value

N/A

Dependency

Depends on the configuration of ComM

J1939TpRxCmNPdu

Description

This N-PDU represents the TP.CM frame of a J1939 transport protocol session. TP.CM is used both by BAM and CMDT to initialize the connection. For CMDT, it is also used to abort the connection. This N-PDU consumes a meta data item of type CAN_ID_32.

PB Supported

false

Multiplicity

1

Type

N/A

Value Range

N/A

Default Value

N/A

Dependency

N/A

J1939TpRxDtNPdu

Description

This N-PDU represents the TP.DT frame of a J1939 transport protocol session. TP.DT is used both by BAM and CMDT to transfer the contents of an N-SDU. This N-PDU consumes a meta data item of type CAN_ID_32.

PB Supported

false

Multiplicity

1

Type

N/A

Value Range

N/A

Default Value

N/A

Dependency

N/A

J1939TpRxPg

Description

Parameter group received by the J1939 transport layer.

PB Supported

false

Multiplicity

1..*

Type

N/A

Value Range

N/A

Default Value

N/A

Dependency

N/A

J1939TpTxFcNPdu

Description

This N-PDU represents the TP.CM frame that is used in reverse direction for a J1939 transport protocol session using the CMDT protocol type. TP.CM in reverse direction is used for intermediate and final acknowledgement of received data and to abort the connection. This N-PDU produces a meta data item of type CAN_ID_32. Please note: This sub container is only required when J1939Tp RxProtocolType is J1939TP_PROTOCOL_CMDT or when it is not configured at all.

PB Supported

false

Multiplicity

0..1

Type

N/A

Value Range

N/A

Default Value

N/A

Dependency

N/A

../../_images/J1939TpRxCmNPdu.PNG

J1939Tp模块中的接收通道CM-NPDU配置项参数描述(The configuration item parameters description of the receiving channel CM->NPDU in the J1939Tp module)

SAE-J1939传输层的给定接收通道的CM-NPDU配置参数列表(The list of CM->NPDU configuration parameters for the given receiving channel of the SAE-J1939 transport layer):

J1939TpRxCmNPdu

J1939TpRxCmNPdu

This N-PDU represents the TP.CM frame of a J1939 transport protocol session. TP.CM is used both by BAM and CMDT to initialize the connection. For CMDT, it is also used to abort the connection. This N-PDU consumes a meta data item of type CAN_ID_32.

J1939TpRxCmNPduId

Description

The N-PDU identifier used for communication with CanIf.

PB Supported

false

Multiplicity

1

Type

EcucIntegerParamDef (Symbolic Name generated for this parameter)

Value Range

0..65535

Default Value

N/A

Dependency

withAuto = true

J1939TpRxCmNPduRef

Description

Reference to the Pdu object representing the N-PDU.

PB Supported

true

Multiplicity

1

Type

Reference to Pdu

Value Range

N/A

Default Value

N/A

Dependency

N/A

../../_images/J1939TpRxDtNPdu.PNG

J1939Tp模块中的接收通道DT-NPDU配置项参数描述(The configuration item parameters of the receiving channel DT->NPDU in the J1939Tp module description)

SAE-J1939传输层的给定接收通道的DT-NPDU配置参数列表(The list of DT->NPDU configuration parameters for the given receiving channel of the SAE-J1939 transport layer):

J1939TpRxDtNPdu

J1939TpRxDtNPdu

This N-PDU represents the TP.DT frame of a J1939 transport protocol session. TP.DT is used both by BAM and CMDT to transfer the contents of an N-SDU. This N-PDU consumes a meta data item of type CAN_ID_32.

J1939TpRxDtNPduId

Description

The N-PDU identifier used for communication with CanIf.

PB Supported

false

Multiplicity

1

Type

EcucIntegerParamDef (Symbolic Name generated for this parameter)

Value Range

0..65535

Default Value

N/A

Dependency

withAuto = true

J1939TpRxDtNPduRef

Description

Reference to the Pdu object representing the N-PDU.

PB Supported

true

Multiplicity

1

Type

Reference to Pdu

Value Range

N/A

Default Value

N/A

Dependency

N/A

../../_images/J1939TpRxPg.PNG

J1939Tp模块中的接收通道PG配置项参数描述(The parameter description of the receiving channel PG configuration item in the J1939Tp module)

SAE-J1939传输层的给定接收通道的PG配置参数列表(The list of PG configuration parameters for the given receiving channel of the SAE-J1939 transport layer):

J1939TpRxPg

J1939TpRxPg

Parameter group received by the J1939 transport layer.

J1939TpRxPgDynLength

Description

This flag is set to TRUE when the N-SDU refers to a PGN with variable length. Please note: When this attribute is TRUE, the sub container J1939TpRxDirectNPdu is required.

PB Supported

false

Multiplicity

1

Type

Boolean

Value Range

false..true

Default Value

false

Dependency

N/A

J1939TpRxPgPGN

Description

PGN of the referenced N-SDUs.

PB Supported

false

Multiplicity

1

Type

Integer

Value Range

0..262143

Default Value

N/A

Dependency

N/A

J1939TpRxDirectNPdu

Description

This N-PDU represents the short frame that is used for a dynamic length PGN when it has a length of less that 8 bytes. This N-PDU consumes a meta data item of type CAN_ID_32.

PB Supported

false

Multiplicity

0..1

Type

N/A

Value Range

N/A

Default Value

N/A

Dependency

This sub container is only necessary when J1939TpRxPgDynLength is TRUE.

J1939TpRxNSdu

Description

This container describes the parameters that are relevant for the reception of a specific N-SDU. This N-SDU produces meta data items of type SOURCE_ADDRESS_16, TARGET_ADDRESS_16, and PRIORITY_8.

PB Supported

false

Multiplicity

1..*

Type

N/A

Value Range

N/A

Default Value

N/A

Dependency

N/A

../../_images/J1939TpRxDirectNPdu.PNG

J1939Tp模块中的接收通道Direct-NPDU配置项参数描述(The parameter description of the Direct->NPDU configuration item for the receiving channel in the J1939Tp module)

SAE-J1939传输层的给定接收通道的PG-Direct-NPDU配置参数列表(The list of PG->Direct->NPDU configuration parameters for the given receiving channel of the SAE J1939 transport layer):

J1939TpRxDirectNPdu

J1939TpRxDirectNPdu

This N-PDU represents the short frame that is used for a dynamic length PGN when it has a length of less that 8 bytes. This N-PDU consumes a meta data item of type CAN_ID_32. Please note: This sub container is only necessary when J1939TpRxPgDynLength is TRUE.

J1939TpRxDirectNPduId

Description

The N-PDU identifier used for communication with CanIf.

PB Supported

false

Multiplicity

1

Type

EcucIntegerParamDef (Symbolic Name generated for this parameter)

Value Range

0..65535

Default Value

N/A

Dependency

withAuto = true

J1939TpRxDirectNPduRef

Description

Reference to the Pdu object representing the N-PDU.

PB Supported

true

Multiplicity

1

Type

Reference to Pdu

Value Range

N/A

Default Value

N/A

Dependency

N/A

../../_images/J1939TpRxNSdu.PNG

J1939Tp模块中的接收通道PG-NSDU配置项参数描述(The configuration item parameters description of the receiving channel PG->NSDU in the J1939Tp module)

SAE-J1939传输层的给定接收通道的PG-NSDU配置参数列表(The list of PG->NSDU configuration parameters for the given receiving channel of the SAE-J1939 transport layer):

J1939TpRxNSdu

J1939TpRxNSdu

This container describes the parameters that are relevant for the reception of a specific N-SDU. This N-SDU produces meta data items of type SOURCE_ADDRESS_16,TARGET_ADDRESS_16, and PRIORITY_8.

J1939TpRxNSduId

Description

This is a unique identifier for a received N-SDU. This Id is used in the CancelReceive and ChangeParameter API call.

PB Supported

false

Multiplicity

1

Type

EcucIntegerParamDef (Symbolic Name generated for this parameter)

Value Range

0..65535

Default Value

N/A

Dependency

withAuto = true

J1939TpRxNSduRef

Description

Reference to the Pdu object representing the N-SDU.

PB Supported

true

Multiplicity

1

Type

Reference to Pdu

Value Range

N/A

Default Value

N/A

Dependency

N/A

../../_images/J1939TpTxFcNPdu.PNG

J1939Tp模块中的接收通道FC-NSPDU配置项参数描述(The configuration item parameters description of the receiving channel FC->NSPDU in the J1939Tp module)

SAE-J1939传输层的给定接收通道的FC-NSDU配置参数列表(The list of FC->NSDU configuration parameters for the given receiving channel of the SAE J1939 transport layer):

J1939TpTxFcNPdu

J1939TpTxFcNPdu

This N-PDU represents the TP.CM frame that is used in reverse direction for a J1939 transport protocol session using the CMDT protocol type. TP.CM in reverse direction is used for intermediate and final acknowledgement of received data and to abort the connection. This N-PDU produces a meta data item of type CAN_ID_32. Please note: This sub container is only required when J1939TpRxProtocolType is J1939TP_PROTOCOL_CMDT or when it is not configured at all.

J1939TpTxFcNPduTxConfId

Description

The N-PDU identifier used for Tx confirmation from CanIf.

PB Supported

false

Multiplicity

1

Type

EcucIntegerParamDef (Symbolic Name generated for this parameter)

Value Range

0..65535

Default Value

N/A

Dependency

withAuto = true

J1939TpTxFcNPduRef

Description

Reference to the Pdu object representing the N-PDU.

PB Supported

true

Multiplicity

1

Type

Reference to Pdu

Value Range

N/A

Default Value

N/A

Dependency Dependency

Please note: When two channels have identical but exchanged source and destination addresses, the Pdu referenced by this parameter is shared with J1939TpTxCmNPduRef of the corresponding J1939TpTxChannel.

J1939TpTxChannel

../../_images/J1939TpTxChannel.PNG

J1939Tp模块中的发送通道配置项参数描述(The parameter description of the transmission channel configuration item in the J1939Tp module)

SAE-J1939传输层给发送定通道的配置参数列表(The SAE-J1939 transport layer provides a list of configuration parameters for the designated channels for transmission):

J1939TpTxChannel

J1939TpTxChannel

This container describes a transmission channel of the J1939Tp module.

J1939TpTxCancellationSupport

Description

Enable transmit cancellation using the API J1939Tp_CancelTransmit() for this channel.

PB Supported

false

Multiplicity

0..1

Type

Boolean

Value Range

false..true

Default Value

false

Dependency

N/A

J1939TpTxDa

Description

Destination address (DA) of this channel. This parameter is only required for channels with fixed DA which use N-PDUs with MetaData containing the DA.

PB Supported

true

Multiplicity

0..1

Type

Integer

Value Range

0..253

Default Value

N/A

Dependency

N/A

J1939TpTxDynamicBlockCalculation

Description

Enable dynamic calculation of "maximum number of packets that can be sent" value in TP.CM_RTS, based on the available amount of data in upper layers reported via PduR_J1939TpCopyTxData.

PB Supported

false

Multiplicity

0..1

Type

Boolean

Value Range

false..true

Default Value

false

Dependency

N/A

J1939TpTxMaxPacketsPerBlock

Description

Maximum number of TP.DT frames the transmitting J1939Tp module is ready to send before waiting for another TP.CM_CTS. This parameter is transmitted in the TP.CM_RTS frame, and is thus only relevant for transmission of messages via CMDT. When J1939TpTxDynamicBlockCalculation is enabled, this parameter specifies a maximum for the calculated value. For further details on this parameter value see SAE J1939/21.

PB Supported

false

Multiplicity

0..1

Type

Integer

Value Range

1..255

Default Value

255

Dependency

N/A

J1939TpTxProtocolType

Description

Protocol type used by this channel. This parameter is only required for channels with fixed destination address.

PB Supported

false

Multiplicity

0..1

Type

Enumeration

Value Range

J1939TP_PROTOCOL_NONE,J1939TP_PROTOCOL_BAM,J1939TP_PROTOCOL_CMDT

Default Value

J1939TP_PROTOCOL_NONE

Dependency

N/A

J1939TpTxRetrySupport

Description

Enable support for repetition of failed transmission using TP.CM_CTS with a packet number that has already been sent. Retransmission is handled via the retry feature of PduR_J1939TpCopyTxData.

PB Supported

false

Multiplicity

0..1

Type

Boolean

Value Range

false..true

Default Value

false

Dependency

N/A

J1939TpTxSa

Description

Source address (SA) of this channel. This parameter is only required for channels with fixed SA which use N-PDUs with MetaData containing the SA.

PB Supported

true

Multiplicity

0..1

Type

Integer

Value Range

0..253

Default Value

N/A

Dependency

N/A

J1939TpTxChannelComMNetworkHandleRef

Description

Reference to the channel defined by the ComMChannel providing access to the unique channel index ComMChannelId.

PB Supported

false

Multiplicity

1

Type

Symbolic name reference to ComMChannel

Value Range

N/A

Default Value

N/A

Dependency

Depends on the configuration of ComM

J1939TpRxFcNPdu

Description

This N-PDU represents the TP.CM frame that is used in reverse direction for a J1939 transport protocol session using the CMDT protocol type. TP.CM in reverse direction is used for intermediate and final acknowledgement of received data and to abort the connection. This N-PDU consumes a meta data item of type CAN_ID_32.

PB Supported

false

Multiplicity

0..1

Type

N/A

Value Range

N/A

Default Value

N/A

Dependency

Please note: This sub container is only required when J1939Tp RxProtocolType is J1939TP_PROTOCOL_CMDT

or when it is not configured at all.

J1939TpTxCmNPdu

Description

This N-PDU represents the TP.CM frame of a J1939 transport protocol session. TP.CM is used both by BAM and CMDT to initialize the connection. For CMDT, it is also used to abort the connection. This N-PDU produces a meta data item of type CAN_ID_32.

PB Supported

false

Multiplicity

1

Type

N/A

Value Range

N/A

Default Value

N/A

Dependency

N/A

J1939TpTxDtNPdu

Description

This N-PDU represents the TP.DT frame of a J1939 transport protocol session. TP.DT is used both by BAM and CMDT to transfer the contents of an N-SDU. This N-PDU produces a meta data item of type CAN_ID_32.

PB Supported

false

Multiplicity

1

Type

N/A

Value Range

N/A

Default Value

N/A

Dependency

N/A

J1939TpTxPg

Description

Parameter group transmitted by the J1939 transport layer.

PB Supported

false

Multiplicity

1..*

Type

N/A

Value Range

N/A

Default Value

N/A

Dependency

N/A

../../_images/J1939TpRxFcNPdu.PNG

J1939Tp模块中的发送通道FC-NSPDU配置项参数描述(The configuration item parameters of the sending channel FC->NSPDU in the J1939Tp module description)

SAE-J1939传输层给发送定通道的FC-NPDU配置参数列表(The SAE-J1939 transport layer configures the parameter list for the FC->NPDU of the designated channel for transmission):

J1939TpRxFcNPdu

J1939TpRxFcNPdu

This N-PDU represents the TP.CM frame that is used in reverse direction for a J1939 transport protocol session using the CMDT protocol type. TP.CM in reverse direction is used for intermediate and final acknowledgement of received data and to abort the connection. This N-PDU produces a meta data item of type CAN_ID_32. Please note: This sub container is only required when J1939TpTxProtocolType is J1939TP_PROTOCOL_CMDT or when it is not configured at all.

J1939TpRxFcNPduId

Description

The N-PDU identifier used for communication with CanIf.

PB Supported

false

Multiplicity

1

Type

EcucIntegerParamDef (Symbolic Name generated for this parameter)

Value Range

0..65535

Default Value

N/A

Dependency

withAuto = true

J1939TpRxFcNPduRef

Description

Reference to the Pdu object representing the N-PDU.

PB Supported

true

Multiplicity

1

Type

Reference to Pdu

Value Range

N/A

Default Value

N/A

Dependency Dependency

Please note: When two channels have identical but exchanged source and destination addresses, the Pdu referenced by this parameter is shared with J1939TpRxCmNPduRef of the corresponding J1939TpRxChannel.

../../_images/J1939TpTxCmNPdu.PNG

J1939Tp模块中的发送通道CM-NPDU配置项参数描述(The parameter description of the sending channel CMNPDU configuration item in the J1939Tp module)

SAE-J1939传输层给发送定通道的CM-NPDU配置参数列表(The SAE J1939 transport layer configures the parameter list for the sending channel of the CM->NPDU for the CMN):

J1939TpTxCmNPdu

J1939TpTxCmNPdu

This N-PDU represents the TP.CM frame of a J1939 transport protocol session. TP.CM is used both by BAM and CMDT to initialize the connection. For CMDT, it is also used to abort the connection. This N-PDU produces a meta data item of type CAN_ID_32.

J1939TpTxCmNPduTxConfId

Description

The N-PDU identifier used for Tx confirmation from CanIf.

PB Supported

false

Multiplicity

1

Type

EcucIntegerParamDef (Symbolic Name generated for this parameter)

Value Range

0..65535

Default Value

N/A

Dependency

withAuto = true

J1939TpTxCmNPduRef

Description

Reference to the Pdu object representing the N-PDU.

PB Supported

true

Multiplicity

1

Type

Reference to Pdu

Value Range

N/A

Default Value

N/A

Dependency

N/A

../../_images/J1939TpTxDtNPdu.PNG

J1939Tp模块中的发送通道DT-NPDU配置项参数描述(The configuration item parameters of the sending channel DT->NPDU in the J1939Tp module description)

SAE-J1939传输层给发送定通道的DT-NPDU配置参数列表(The SAE-J1939 transport layer configures the parameter list for the sending of DT->NPDU on the designated channel):

J1939TpTxDtNPdu

J1939TpTxDtNPdu

This N-PDU represents the TP.DT frame of a J1939 transport protocol session. TP.DT is used both by BAM and CMDT to transfer the contents of an N-SDU. This N-PDU produces a meta data item of type CAN_ID_32.

J1939TpTxDtNPduTxConfId

Description

The N-PDU identifier used for Tx confirmation from CanIf.

PB Supported

false

Multiplicity

1

Type

EcucIntegerParamDef (Symbolic Name generated for this parameter)

Value Range

0..65535

Default Value

N/A

Dependency

withAuto = true

J1939TpTxDtNPduRef

Description

Reference to the Pdu object representing the N-PDU.

PB Supported

true

Multiplicity

1

Type

Reference to Pdu

Value Range

N/A

Default Value

N/A

Dependency

N/A

../../_images/J1939TpTxPg.PNG

J1939Tp模块中的发送通道PG配置项参数描述(The parameter description of the sending channel PG configuration item in the J1939Tp module)

SAE-J1939传输层给发送定通道的PG配置参数列表(The SAE J1939 transport layer provides a configuration parameter list for the sending channel's PG.):

J1939TpTxPg

J1939TpTxPg

Parameter group transmitted by the J1939 transport layer.

J1939TpTxPgDynLength

Description

This flag is set to TRUE when the N-SDU refers to a PGN with variable length.

PB Supported

false

Multiplicity

1

Type

Boolean

Value Range

false..true

Default Value

false

Dependency

Please note: When this attribute is TRUE, the sub container J1939TpRxDirectNPdu is required.

J1939TpTxPgPGN

Description

PGN of the referenced N-SDUs.

PB Supported

false

Multiplicity

1

Type

Integer

Value Range

0..262143

Default Value

N/A

Dependency

N/A

J1939TpTxDirectNPdu

Description

This N-PDU represents the short frame that is used for a dynamic length PGN when it has a length of less that 8 bytes. This N-PDU consumes a meta data item of type CAN_ID_32.

PB Supported

false

Multiplicity

0..1

Type

N/A

Value Range

N/A

Default Value

N/A

Dependency

This sub container is only necessary when J1939TpTxPgDynLength is TRUE.

J1939TpTxNSdu

Description

This container describes the parameters that are relevant for the transmission of a specific N-SDU. This N-SDU consumes meta data items of type SOURCE_ADDRESS_16, TARGET_ADDRESS_16, and PRIORITY_8.

PB Supported

false

Multiplicity

1..*

Type

N/A

Value Range

N/A

Default Value

N/A

Dependency

N/A

../../_images/J1939TpTxDirectNPdu.PNG

J1939Tp模块中的发送通道Direct-NPDU配置项参数描述(The parameter description of the sending channel Direct->NPDU configuration item in the J1939Tp module)

SAE-J1939传输层给发送定通道的PG-Direct-NPDU配置参数列表(SAEJ1939 Transport Layer Configures Parameter List for Sent Dedicated Channel PG->Direct->NPDU):

J1939TpTxDirectNPdu

J1939TpTxDirectNPdu

This N-PDU represents the short frame that is used for a dynamic length PGN when it has a length of less that 8 bytes. This N-PDU produces a meta data item of type CAN_ID_32. Please note: This sub container is only necessary when J1939TpTxPgDynLength is TRUE.

J1939TpTxDirectNPduTxConfId

Description

The N-PDU identifier used for Tx confirmation from CanIf.

PB Supported

false

Multiplicity

1

Type

EcucIntegerParamDef (Symbolic Name generated for this parameter)

Value Range

0..65535

Default Value

N/A

Dependency

withAuto = true

J1939TpTxDirectNPduRef

Description

Reference to the Pdu object representing the N-PDU.

PB Supported

true

Multiplicity

1

Type

Reference to Pdu

Value Range

N/A

Default Value

N/A

Dependency

N/A

../../_images/J1939TpTxNSdu.PNG

J1939Tp模块中的发送通道PG-NSDU配置项参数描述(The parameter description of the sending channel PG->NSDU configuration item in the J1939Tp module)

SAE-J1939传输层给发送定通道的PG-NSDU配置参数列表(SAEJ1939 Transport Layer Configures Parameter List for Sent Fixed Channel PG->NSDU):

J1939TpTxNSdu

J1939TpTxNSdu

This container describes the parameters that are relevant for the reception of a specific N-SDU. This N-SDU consumes meta data items of type SOURCE_ADDRESS_16,TARGET_ADDRESS_16, and PRIORITY_8.

J1939TpRxNSduId

Description

The N-SDU identifier used for communication with PduR.

PB Supported

false

Multiplicity

1

Type

EcucIntegerParamDef (Symbolic Name generated for this parameter)

Value Range

0..65535

Default Value

N/A

Dependency

withAuto = true

J1939TpRxNSduRef

Description

Reference to the Pdu object representing the N-SDU.

PB Supported

true

Multiplicity

1

Type

Reference to Pdu

Value Range

N/A

Default Value

N/A

Dependency

N/A