Contents Page
Foreword........................................................................................................................................ iv
Introduction..................................................................................................................................... v
- Scope.................................................................................................................................. 1
- Normative references.......................................................................................................... 1
- Terms, definitions and abbreviated terms........................................................................... 1
- Network layer overview....................................................................................................... 3
- General................................................................................................................................ 3
- Services provided by network layer to higher layers........................................................... 3
- Internal operation of network layer...................................................................................... 4
- Network layer services........................................................................................................ 5
- General................................................................................................................................ 5
- Specification of network layer service primitives................................................................ 6
- Service data unit specification............................................................................................ 8
- Network layer protocol....................................................................................................... 12
- Protocol functions............................................................................................................. 12
- Single frame transmission................................................................................................. 12
- Multiple frame transmission.............................................................................................. 12
- Network layer protocol data units...................................................................................... 15
- Protocol control information specification........................................................................ 16
- Maximum number of FC.Wait frame transmissions (N_WFTmax)...................................... 23
- Network layer timing.......................................................................................................... 23
- Interleaving of messages................................................................................................... 27
- Data link layer usage......................................................................................................... 27
- Data link layer interface services....................................................................................... 27
- Data link layer service parameters..................................................................................... 28
- Mapping of the N_PDU fields............................................................................................. 28
- CAN frame Data Length Code (DLC).................................................................................. 30
Annex A (informative) Use of normal fixed and mixed addressing with data link layer according to
SAE J1939.......................................................................................................................... 32
Bibliography ............... 35Foreword
ISO (the International Organization for Standardization) is a worldwide federation of national standards bodies (ISO member bodies). The work of preparing International Standards is normally carried out through ISO technical committees. Each member body interested in a subject for which a technical committee has been established has the right to be represented on that committee. International organizations, governmental and non-governmental, in liaison with ISO, also take part in the work. ISO collaborates closely with the International Electrotechnical Commission (IEC) on all matters of electrotechnical standardization.
International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2.
The main task of technical committees is to prepare International Standards. Draft International Standards adopted by the technical committees are circulated to the member bodies for voting. Publication as an International Standard requires approval by at least 75 % of the member bodies casting a vote.
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. ISO shall not be held responsible for identifying any or all such patent rights.
ISO 15765-2 was prepared by Technical Committee ISO/TC 22, Road vehicles, Subcommittee SC 3,
Electrical and electronic equipment.
ISO 15765 consists of the following parts, under the general title Road vehicles — Diagnostics on Controller Area Networks (CAN):
- Part 1: General information
- Part 2: Network layer services
- Part 3: Implementation of unified diagnostic services (UDS on CAN)
- Part 4: Requirements for emissions-related systems
Introduction
This part of ISO 15765 has been established in order to define common requirements for vehicle diagnostic systems implemented on a Controller Area Network (CAN) communication link, as specified in ISO 11898. Although primarily intended for diagnostic systems, it also meets requirements from other CAN-based systems needing a network layer protocol.
To achieve this, it is based on the Open Systems Interconnection (OSI) Basic Reference Model specified in ISO/IEC 7498 and ISO/IEC 10731, which structures communication systems into seven layers. When mapped on this model, the services specified by ISO 15765 are divided into
- unified diagnostic services (layer 7), specified in ISO 15765-3,
- network layer services (layer 3), specified in this part of ISO 15765,
- CAN services (layers 1 and 2), specified in ISO 11898, in accordance with Table
The application layer services covered by ISO 15765-3 have been defined in compliance with diagnostic services established in ISO 14229-1 and ISO 15031-5, but are not limited to use only with them. ISO 15765-3 is also compatible with most diagnostic services defined in national standards or vehicle manufacturer's specifications.
The network layer services covered by this part of ISO 15765 have been defined to be independent of the physical layer implemented, and a physical layer is only specified for legislated OBD.
For other application areas, ISO 15765 can be used with any CAN physical layer.
Table 1 — Enhanced and legislated OBD diagnostic specifications applicable to the OSI layers
Open Systems Interconnection (OSI) layers |
Vehicle manufacturer enhanced diagnostics |
Legislated on-board diagnostics (OBD) |
Diagnostic application |
User defined |
ISO 15031-5 |
Application layer |
ISO 15765-3 |
ISO 15031-5 |
Presentation layer |
N/A |
N/A |
Session layer |
ISO 15765-3 |
N/A |
Transport layer |
N/A |
N/A |
Network layer |
ISO 15765-2 |
ISO 15765-4 |
Data link layer |
ISO 11898-1 |
ISO 15765-4 |
Physical layer |
User defined |
ISO 15765-4 |
Road vehicles — Diagnostics on Controller Area Networks (CAN) —
Part 2: Network layer services
1 Scope
This part of ISO 15765 specifies a network protocol tailored to meet the requirements of CAN-based vehicle network systems on controller area networks as specified in ISO 11898. It has been defined in accordance with the diagnostic services established in ISO 14229-1 and ISO 15031-5, but is not limited to use with them, and is also compatible with most other communication needs for in-vehicle networks. The protocol specifies an unconfirmed communication.
2 Normative references
The following referenced documents are indispensable for the application of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.
ISO 11898-1, Road vehicles — Controller area network (CAN) — Part 1: Data link layer and physical signalling
ISO/IEC 7498 (all parts), Information technology — Open Systems Interconnection — Basic Reference Model
3 Terms, definitions and abbreviated terms
For the purposes of this document, the terms and definitions given in ISO 7498, and the following abbreviated terms, apply.
BS block size
CF consecutive frame
confirm confirmation service primitive
ECU electronic control unit
FC flow control
FF first frame
FF_DL first frame data length
FS flow status
indication indication service primitive
Mtype message type
N_AE network address extension
N_AI address information
N_Ar network layer timing parameter Ar
N_As network layer timing parameter As
N_Br network layer timing parameter Br
N_Bs network layer timing parameter Bs N_ChangeParameter network layer service name
N_Cr network layer timing parameter Cr
N_Cs network layer timing parameter Cs
N_Data network data
N_PCI network protocol control information
N_PCItype network protocol control information type
N_PDU network protocol data unit
N_SA network source address
N_SDU network service data unit
N_TA network target address
N_TAtype network target address type
N_USData network layer unacknowledged segmented data transfer service name NWL network layer
request request service primitive
- receiver
- sender
SF single frame
SF_DL single frame data length
SN sequence number
STmin separation time min.
4 Network layer overview
4.1 General
This clause describes the overall functionality of the network layer. This part of ISO 15765 specifies an unconfirmed network layer communication protocol for the exchange of data between network nodes, e.g. from ECU to ECU, or between external test equipment and an ECU. If the data to be transferred do not fit into a single CAN frame, a segmentation method is provided.
In order to describe the function of the network layer, services provided to higher layers and the internal operation of the network layer have to be considered.
4.2 Services provided by network layer to higher layers
The service interface defines a set of services that are needed to access the functions offered by the network layer, i.e. transmission/reception of data and setting of protocol parameters.
Two types of services are defined.
a) Communication services
These services, of which the following are defined, enable the transfer of up to 4 095 bytes of data.
1) N_USData.request
This service is used to request the transfer of data. If necessary, the network layer segments the data.
2) N_USData_FF.indication
This service is used to signal the beginning of a segmented message reception to the upper layer.
3) N_USData.indication
This service is used to provide received data to the higher layers.
4) N_USData.confirm
This service confirms to the higher layers that the requested service has been carried out (successfully or not).
b) Protocol parameter setting services
These services, of which the following are defined, enable the dynamic setting of protocol parameters.
1) N_ChangeParameter.request
This service is used to request the dynamic setting of specific internal parameters.
2) N_ChangeParameter.confirm
This service confirms to the upper layer that the request to change a specific protocol has been carried out (successfully or not).
The internal operation of the network layer provides methods for segmentation, transmission with flow control, and reassembly. The main purpose of the network layer is to transfer messages that might or might not fit in a single CAN frame. Messages that do not fit into a single CAN frame are segmented into multiple parts, where each can be transmitted in a CAN frame.
Figure 1 shows an example of an unsegmented message transmission.
sender Receiver
Figure 1 — Example of unsegmented message
Figure 2 shows an example of a segmented message transmission.
sender Receiver
Figure 2 — Example of segmented message
Flow control is used to adjust the sender to the network layer capabilities of the receiver. This flow control scheme allows the use of diagnostic gateways and sub-networks.
ISO 15765 specifies three different addressing formats: normal, extended and mixed.
5 Network layer services
5.1 General
All network layer services have the same general structure. To define the services, three types of service primitives are specified:
- a service request primitive, used by higher communication layers or the application to pass control information and data required to be transmitted to the network layer;
- a service indication primitive, used by the network layer to pass status information and received data to upper communication layers or the application;
- a service confirmation primitive used by the network layer to pass status information to higher communication layers or the
This service specification does not specify an application programming interface, but only a set of service primitives that are independent of any implementation.
All network layer services have the same general format. Service primitives are written in the form:
service_name.type (
parameter A,
parameter B,
parameter C,
...
)
where “service_name” is the name of the service, e.g. N_USData, “type” indicates the type of the service primitive, and “parameter A, parameter B, parameter C, ...” are the N_SDU as a list of values passed by the service primitive.
The service primitives define how a service user (e.g. diagnostic application) cooperates with a service provider (e.g. network layer). The following service primitives are specified in this International Standard: request, indication and confirm.
- Using the service primitive request (service_name.request) a service user requests a service from the service
- Using the service primitive indication (service_name.indication), the service provider informs a service user about an internal event of the network layer or the service request of a peer protocol layer entity service
- With the service primitive confirm (service_name.confirm) the service provider informs the service user about the result of a preceding service request of the service
5.2 Specification of network layer service primitives
5.2.1 N_USData.request
The service primitive requests transmission of <MessageData> with <Length> bytes from the sender to the receiver peer entities identified by the address information in N_SA, N_TA, N_TAtype, and N_AE 1) (see 5.3 for parameter definition).
Each time the N_USData.request service is called, the network layer shall signal the completion (or failure) of the message transmission to the service user by means of the issuing of an N_USData.confirm service call:
N_USData.request (
Mtype N_SA N_TA
N_TAtype N_AE 1)
<MessageData>
<Length>
)
5.2.2 N_USData.confirm
The N_USData.confirm service is issued by the network layer. The service primitive confirms the completion of an N_USData.request service identified by the address information in N_SA, N_TA, N_TAtype, and N_AE 1). The parameter <N_Result> provides the status of the service request (see 5.3 for parameter definition).
N_USData.confirm (
Mtype N_SA N_TA
N_TAtype N_AE1)
<N_Result>
)
5.2.3 N_USData.indication
The N_USData_FF.indication service is issued by the network layer. The service primitive indicates to the adjacent upper layer the arrival of a first frame (FF) of a segmented message received from a peer protocol entity, identified by the address information in N_SA, N_TA, N_TAtype, and N_AE 1) (see 5.3 for parameter definition). This indication shall take place upon reception of the first frame (FF) of a segmented message.
N_USData_FF.indication (
Mtype N_SA N_TA
N_TAtype N_AE1)
<Length>
)
The N_USData_FF.indication service shall always be followed by an N_USData.indication service call from the network layer, indicating the completion (or failure) of the message reception.
1) Optional
An N_USData_FF.indication service call shall only be issued by the network layer if a correct first frame (FF) message segment has been received.
If the network layer detects any type of error in a first frame (FF), then the message shall be ignored by the network layer and no N_USData_FF.indication shall be issued to the adjacent upper layer.
If the network layer receives a first frame (FF) with a data length value (FF_DL) that is greater than the available receiver buffer size, then this shall be considered as an error condition and no N_USData_FF.indication shall be issued to the adjacent upper layer.
5.2.4 N_USData.indication
The N_USData.indication service is issued by the network layer. The service primitive indicates <N_Result> events and delivers <MessageData> with <Length> bytes received from a peer protocol entity identified by the address information in N_SA, N_TA, N_TAtype, and N_AE 2) to the adjacent upper layer (see 5.3 for parameter definition).
The parameters <MessageData> and <Length> are only valid if <N_Result> equals N_OK.
N_USData.indication (
Mtype N_SA N_TA
N_TAtype N_AE2)
<MessageData>
<Length>
<N_Result>
)
The N_USData.indication service call is issued after the reception of a single frame (SF) message or as an indication of the completion (or failure) of a segmented message reception.
If the network layer detects any type of error in a single frame (SF), then the message shall be ignored by the network layer and no N_USData.indication shall be issued to the adjacent upper layer.
5.2.5 N_ChangeParameters.request
The service primitive is used to request the change of an internal parameter’s value on the local protocol entity. The <Parameter_Value> is assigned to the <Parameter> (see 5.3 for parameter definition).
A parameter change is always possible, except after reception of the first frame (N_USData_FF.indication) and until the end of the reception of the corresponding message (N_USData.indication).
N_ChangeParameter.request (
Mtype N_SA N_TA
N_TAtype N_AE2)
<Parameter>
<Parameter_Value>
)
This is an optional service that can be replaced by implementation of fixed parameter values.
5.2.6 N_ChangeParameter.confirm
The service primitive confirms the completion of an N_ChangeParameter.Confirmation service applying to a message identified by the address information in N_SA, N_TA, N_TAtype, and N_AE 3) (see 5.3 for parameter definition).
N_ChangeParameter.confirm (
Mtype N_SA N_TA
N_TAtype N_AE3)
<Parameter>
<Result_ChangeParameter>
)
5.3 Service data unit specification
5.3.1 Mtype, Message type
Type: enumeration
Range: diagnostics, remote diagnostics
Description: The parameter Mtype shall be used to identify the type and range of address information parameters included in a service call. This part of ISO 15765 specifies a range of two values for this parameter. The intention is that users of the document can extend the range of values by specifying other types and combinations of address information parameters to be used with the network layer protocol specified in this document. For each such new range of address information, a new value for the Mtype parameter shall be specified to identify the new address information.
- If Mtype = diagnostics, then the address information N_AI shall consist of the parameters N_SA, N_TA, and
- If Mtype = remote diagnostics, then the address information N_AI shall consist of the parameters N_SA, N_TA, N_TAtype, and
5.3.2 N_AI, Address Information
5.3.2.1 N_AI descriptionThese parameters refer to addressing information. As a whole, the N_AI parameters are used to identify the source address (N_SA), target address (N_TA) of message senders and recipients as well as the communication model for the message (N_TAtype) and the optional address extension (N_AE).
5.3.2.2 N_SA, Network Source Address Type: 1 byte unsigned integer value Range: 00-FF hexDescription: The N_SA parameter shall be used to encode the sending network layer protocol entity.
5.3.2.3 N_TA, Network Target Address Type: 1 byte unsigned integer value Range: 00-FF hex
Description: The N_TA parameter shall be used to encode the receiving network layer protocol entity.
5.3.2.4 N_TAtype, Network Target Address type
Type: enumeration
Range: physical, functional
Description: The parameter N_TAtype is an extension to the N_TA parameter. It shall be used to encode the communication model used by the communicating peer entities of the network layer. Two communication models are specified: 1 to 1 communication, called physical addressing, and 1 to n communication, called functional addressing.
- Physical addressing (1-to-1 communication) shall be supported for all types of network layer
- Functional addressing (1-to-n communication) shall only be supported for Single Frame
- N_AE, Network Address Extension Type: 1 byte unsigned integer value Range: 00-FF hex
Description: The N_AE parameter is used to extend the available address range for large networks, and to encode both sending and receiving network layer entities of subnets other than the local network where the communication takes place. N_AE is only part of the addressing information if Mtype is set to remote diagnostics.
5.3.3 <Length>
Type: 12 bits
Range: 1-4095
Description: This parameter includes the length of data to be transmitted/received.
5.3.4 <MessageData>
Type: string of bytes
Range: not applicable
Description: This parameter includes all data the higher layer entities exchange.
5.3.5 <Parameter>
Type: enumeration
Range: STmin, BS
Description: This parameter identifies a parameter of the network layer.
5.3.6 <Parameter_Value>
Type: 1 byte unsigned integer value Range: 0-255
Description: This parameter is assigned to a protocol parameter <Parameter> as indicated in the service section of this document.
5.3.7 <N_Result>
Type: enumeration
Range: N_OK, N_TIMEOUT_A, N_TIMEOUT_Bs, N_TIMEOUT_Cr, N_WRONG_SN, N_INVALID_FS, N_UNEXP_PDU, N_WFT_OVRN, N_BUFFER_OVFLW, N_ERROR
Description: This parameter contains the status relating to the outcome of a service execution. If two or more errors are discovered at the same time, then the network layer entity shall use the parameter value first found in this list in the error indication to the higher layers.
- N_OK
This value means that the service execution has completed successfully; it can be issued to a service user on both the sender and receiver side.
- N_TIMEOUT_A
This value is issued to the protocol user when the timer N_Ar/N_As has passed its time-out value N_Asmax/N_Armax; it can be issued to service user on both the sender and receiver side.
- N_TIMEOUT_Bs
This value is issued to the service user when the timer N_Bs has passed its time-out value N_Bsmax; it can be issued to the service user on the sender side only.
- N_TIMEOUT_Cr
This value is issued to the service user when the timer N_Cr has passed its time-out value N_Crmax; it can be issued to the service user on the receiver side only.
- N_WRONG_SN
This value is issued to the service user upon reception of an unexpected sequence number (PCI.SN) value; it can be issued to the service user on the receiver side only.
- N_INVALID_FS
This value is issued to the service user when an invalid or unknown FlowStatus value has been received in a flow control (FC) N_PDU; it can be issued to the service user on the sender side only.
- N_UNEXP_PDU
This value is issued to the service user upon reception of an unexpected protocol data unit; it can be issued to the service user on the receiver side only.
- N_WFT_OVRN
This value is issued to the service user upon reception of flow control WAIT frame that exceeds the maximum counter N_WFTmax.
- N_BUFFER_OVFLW
This value is issued to the service user upon reception of a flow control (FC) N_PDU with FlowStatus = OVFLW. It indicates that the buffer on the receiver side of a segmented message transmission cannot store the number of bytes specified by the FirstFrame DataLength (FF_DL) parameter in the FirstFrame and therefore the transmission of the segmented message was aborted. It can be issued to the service user on the sender side only.
- N_ERROR
This is the general error value. It shall be issued to the service user when an error has been detected by the network layer and no other parameter value can be used to better describe the error. It can be issued to the service user on both the sender and receiver side.
5.3.8 <Result_ChangeParameter>
Type: enumeration.
Range: N_OK, N_RX_ON, N_WRONG_PARAMETER, N_WRONG_VALUE
Description: This parameter contains the status relating to the outcome of a service execution.
- N_OK
This value means that the service execution has completed successfully; it can be issued to a service user on both the sender and receiver side.
- N_RX_ON
This value is issued to the service user to indicate that the service did not execute since a reception of the message identified by <AI> was taking place. It can be issued to the service user on the receiver side only.
- N_WRONG_PARAMETER
This value is issued to the service user to indicate that the service did not execute due to an undefined <Parameter>; it can be issued to the service user on both the receiver and sender side.
- N_WRONG_VALUE
This value is issued to the service user to indicate that the service did not execute due to an out of range <Parameter_Value>; it can be issued to the service user on both the receiver and sender side.
6 Network layer protocol
6.1 Protocol functions
The network layer protocol performs the following functions:
transmission/reception of messages up to 4 095 data bytes;
a) reporting of transmission/reception completion (or failure).6.2 Single frame transmission
Transmission of messages up to six (6) (in case of extended or mixed addressing) or seven (7) (in case of normal addressing) data bytes is performed via transmission of a unique N_PDU (see 6.4), called SF (see Figure 3).
Reception of messages up to six (6) or seven (7) data bytes is performed via reception of a unique N_PDU.
Figure 3 — Example of unsegmented message
6.3 Multiple frame transmission
Transmission of longer messages is performed via segmentation of the message and transmission of multiple N_PDUs. Reception of longer messages is performed via reception of multiple N_PDUs and reassembly of the received data bytes (concatenation). The multiple N_PDUs are called FirstFrame (for the first N_PDU of the message) and ConsecutiveFrame (for all the following N_PDUs).
The receiver of a multiple N_PDU message has the possibility of adapting the transmission throughput to its capability by means of the flow control mechanism using the FlowControl protocol data units (FC N_PDU).
Messages longer than six (6) or seven (7) data bytes are segmented into
- a FirstFrame protocol data unit (FF N_PDU), containing the first five (5) — in the case of extended or mixed addressing — or six (6) — in the case of normal addressing — data bytes, and
- one or more ConsecutiveFrame protocol data units (CF N_PDU), containing each six (6) or seven (7) data The CF N_PDU contains only the remaining data bytes, and may therefore be less than six
(6) or seven (7) data bytes long.
Figure 4 shows segmentation at the sender side and reassembly at the receiver side.
NOTE The FC N_PDU issued by the receiver in response to the reception of the FF N_PDU is not shown.
Figure 4 — Segmentation and reassembly
The message length is transmitted in the FF N_PDU. All CF N_PDUs are numbered by the sender to help the receiver re-assemble them in the same order.
The flow control mechanism (see Figure 5) allows the receiver to inform the sender about the receiver’s capabilities. Since different nodes may have different capabilities, the flow control sent by the receiver informs the sender about its capabilities. The sender shall conform to the receiver’s capabilities.
These capabilities are defined as follows.
- BlockSize (BS): the maximum number of N_PDUs the receiver allows the sender to send, before waiting for an authorization to continue transmission of the following
- SeparationTimeMin (STmin): the minimum time the sender is to wait between the transmissions of two CF
Figure 5 — Flow Control (FC) mechanism
All blocks, except the last one, will consist of BS N_PDUs. The last one will contain the remaining N_PDUs (1 up to BS).
Each time the sender/receiver waits for an N_PDU from the receiver/sender, a timeout mechanism allows detection of a transmission failure (see 6.7.2).
By means of FC N_PDUs, the receiver has the possibility of authorizing transmission of the following CF N_PDUs, to delay transmission of that authorization or to deny the reception of a segmented message in case the number of bytes to be transferred exceeds the number of bytes that can be stored in the receiver buffer.
- CTS: continue to send, the authorization to continue,
- WAIT: the request to continue to wait,
- OVFLW: buffer overflow, the indication that the number of bytes specified in the FirstFrame of the segmented message exceeds the number of bytes that can be stored in the buffer of the receiver entity.
There is a maximum limit to the number of FC.WAIT a receiver is allowed to send in a row: N_WFTmax. This parameter is a system design constant and is not transmitted in the first FC N_PDU.
6.4 Network layer protocol data units
6.4.1 Protocol data unit types
The communication between the peer protocol entities of the network layer in different nodes is done by means of exchanging N_PDUs.
This part of ISO 15765 specifies four different types of network layer protocol data units — single-frame (SF N_PDU), first-frame (FF N_PDU), consecutive-frame (CF N_PDU) and flow-control (FC N_PDU) — which are used to establish a communication path between the peer network layer entities, to exchange communication parameters, to transmit user data and to release communication resources.
6.4.2 SF N_PDU
The SF N_PDU is identified by the single-frame protocol control information (SF N_PCI). The SF N_PDU shall be sent out by the sending network entity and can be received by one or multiple receiving network entities. It shall be sent out to transfer a service data unit that can be transferred via a single service request to the data link layer, and to transfer unsegmented messages.
6.4.3 FF N_PDU
The FF N_PDU is identified by the first-frame protocol control information (FF N_PCI). The FF N_PDU shall be sent out by the sending network entity and received by a unique receiving network entity for the duration of the segmented message transmission. It identifies the first N_PDU of a segmented message transmitted by a network sending entity and received by a receiving network entity. The receiving network layer entity shall start assembling the segmented message on receipt of an FF N_PDU.
6.4.4 CF N_PDU
The CF N_PDU is identified by the consecutive-frame protocol control information (CF N_PCI). The CF N_PDU transfers segments (N_Data) of the service data unit message data (<MessageData>). All N_PDUs transmitted by the sending entity after the FF N_PDU shall be encoded as CF N_PDUs. The receiving entity shall pass the assembled message to the service user of the network receiving entity after the last CF N_PDU has been received. The CF N_PDU shall be sent out by the sending network entity and received by a unique receiving network entity for the duration of the segmented message transmission.
6.4.5 FC N_PDU
The FC N_PDU is identified by the flow-control protocol control information (FC N_PCI). The FC N_PDU instructs a sending network entity to start, stop or resume transmission of CF N_PDUs. It shall be sent by the receiving network layer entity to the sending network layer entity, when ready to receive more data, after correct reception of
a) an FF N_PDU, orb) the last CF N_PDU of a block of consecutive frames, if further consecutive frames need to be
The FC N_PDU can also inform a sending network entity to pause transmission of CF N_PDUs during a segmented message transmission or to abort the transmission of a segmented message if the length information (FF_DL) in the FF N_PDU transmitted by the sending entity exceeds the buffer size of the receiving entity.
6.4.6.1 Protocol data unit field description
- N_PDU format
The protocol data unit (N_PDU) enables the transfer of data between the network layer in one node and the network layer in one or more other nodes (peer protocol entities). All N_PDUs consist of three (3) fields, as given in Table 2.
Table 2 — N_PDU format
Address information |
Protocol control information |
Data field |
N_AI |
N_PCI |
N_Data |
6.4.6.2 Address information (N_AI)
The N_AI is used to identify the communicating peer entities of the network layer. The N_AI information received in the N_SDU — N_SA, N_TA, N_TAtype, N_AE 4) — shall be copied and included in the N_PDU. If the message data (<MessageData> and <Length>) received in the N_SDU is so long that segmentation is needed for the network layer to transmit the complete message, the N_AI shall be copied and included (repeated) in every N_PDU that is transmitted.
This field contains address information that identifies the type of message exchanged, and the recipient(s) and sender between whom data exchange takes place. The address information consists of message addresses.
NOTE For a detailed description of address information, see 5.3.2.
6.4.6.3 Protocol control information (N_PCI)
This field identifies the type of N_PDUs exchanged. It is also used to exchange other control parameters between the communicating network layer entities.
NOTE For a detailed specification of all N_PCI parameters, see 6.5.
6.4.6.4 Data Field (N_Data)
The N_Data in the N_PDU is used to transmit the service user data received in the <MessageData> parameter in the N_USData.request service call. The <MessageData>, if needed, is segmented into smaller parts that each fit into the N_PDU data field before they are transmitted over the network.
The size of N_Data depends on the N_PDU type and the address format chosen.
6.5 Protocol control information specification
6.5.1 N_PCI
Each N_PDU is identified by means of an N_PCI. See Tables 3 and 4.
Table 3 — Summary of N_PCI bytes
N_PDU name |
N_PCI bytes |
|||
Byte #1 |
Byte #2 |
Byte #3 |
||
Bits 7 – 4 |
Bits 3 – 0 |
|||
SingleFrame (SF) |
N_PCItype = 0 |
SF_DL |
N/A |
N/A |
FirstFrame (FF) |
N_PCItype = 1 |
FF_DL |
N/A |
|
ConsecutiveFrame (CF) |
N_PCItype = 2 |
SN |
N/A |
N/A |
FlowControl (FC) |
N_PCItype = 3 |
FS |
BS |
STmin |
Table 4 — Definition of N_PCItype values
Hex value |
Description |
0 |
SingleFrame For unsegmented messages, the network layer protocol provides an optimized implementation of the network protocol with the message length embedded in the PCI byte only. SingleFrame (SF) shall be used to support the transmission of messages that can fit in a single CAN frame. |
1 |
FirstFrame A FirstFrame (FF) shall only be used to support the transmission of messages that cannot fit in a single CAN frame, i.e. segmented messages. The first frame of a segmented message is encoded as an FF. On receipt of an FF, the receiving network layer entity shall start assembling the segmented message. |
2 |
ConsecutiveFrame When sending segmented data, all consecutive frames following the FF are encoded as ConsecutiveFrame (CF). On receipt of a CF, the receiving network layer entity shall assemble the received data bytes until the whole message is received. The receiving entity shall pass the assembled message to the adjacent upper protocol layer after the last frame of the message has been received without error. |
3 |
FlowControl The purpose of FlowControl (FC) is to regulate the rate at which CF N_PDUs are sent to the receiver. Three distinct types of FC protocol control information are specified to support this function. The type is indicated by a field of the protocol control information called FlowStatus (FS), as defined hereafter. |
4 – F |
Reserved This range of values is reserved by this part of ISO 15765. |
6.5.2 SingleFrame N_PCI parameter definition
6.5.2.1 SF N_PCI byte
Table 5 provides an overview of the SF N_PCI byte.
Table 5 — Overview of SF N_PCI byte
N_PDU name |
SF N_PCI byte |
|||||||
Byte #1 |
||||||||
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
SingleFrame |
0 |
0 |
0 |
0 |
SF_DL |
The parameter SingleFrame DataLength (SF_DL) is used in the SF N_PDU to specify the number of service user data bytes. See Table 6.
Table 6 — Definition of SF_DL values
Hex value |
Description |
0 |
Reserved This value is reserved by part of ISO 15765. |
1 – 6 |
SingleFrame DataLength (SF_DL) The SF_DL is encoded in the low nibble of N_PCI byte #1 value. It shall be assigned the value of the service parameter <Length>. |
7 |
SingleFrame DataLength (SF_DL) with normal addressing SF_DL = 7 is only allowed with normal addressing. |
8 – F |
Invalid This range of values is invalid. |
6.5.2.2 SF_DL error handling
If the network layer receives an SF with an SF_DL equal to zero (0), then the network layer shall ignore the received SF N_PDU.
If the network layer receives an SF with an SF_DL greater than 7 when using normal addressing, or greater than 6 for extended or mixed addressing, then the network layer shall ignore the received SF N_PDU.
6.5.3 FirstFrame N_PCI parameter definition
6.5.3.1 FF N_PCI bytesTable 7 provides an overview of the FF N_PCI bytes.
Table 7 — Overview of FF N_PCI bytes
N_PDU name |
FF N_PCI bytes |
||||||||
Byte #1 |
Byte #2 7 – 0 |
||||||||
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
||
FirstFrame |
0 |
0 |
0 |
1 |
FF_DL |
||||
6.5.3.2 FirstFrame DataLength (FF_DL) parameter definition
The parameter FF_DL is used in the FF N_PDU to specify the number of service user data bytes. See Table 8.
Table 8 — Definition of FF_DL values
Hex value |
Description |
0 – 6 |
Invalid This range of values is invalid. |
7 |
FirstFrame DataLength (FF_DL) with extended addressing or mixed addressing FF_DL = 7 is only allowed with extended or mixed addressing. |
8 – FFF |
FirstFrame DataLength (FF_DL) The encoding of the segmented message length results in a twelve (12) bit length value (FF_DL) where the least significant bit (LSB) is specified to be bit “0” of the N_PCI byte #2 and the most significant bit (MSB) is bit three (3) of the N_PCI byte #1. The maximum segmented message length supported is equal to 4 095 bytes of user data. It shall be assigned the value of the service parameter <Length>. |
6.5.3.3 FF_DL error handling
If the network layer receives an FF with an FF_DL that is greater than the available receiver buffer size, then this shall be considered as an error condition. The network layer shall abort the message reception and send an FC N_PDU with the parameter FlowStatus = Overflow.
If the network layer receives an FF with an FF_DL that is less than (eight) 8 when using normal addressing or less than 7 when using extended or mixed addressing, then the network layer shall ignore the received FF N_PDU and not transmit an FC N_PDU.
6.5.4 ConsecutiveFrame N_PCI parameter definition
6.5.4.1 CF N_PCI byteTable 9 provides an overview of the CF N_PCI byte.
Table 9 — Overview of CF N_PCI byte
N_PDU name |
CF N_PCI byte |
|||||||
Byte #1 |
||||||||
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
ConsecutiveFrame |
0 |
0 |
1 |
0 |
SN |
6.5.4.2 SequenceNumber (SN) parameter definition
The parameter SN is used in the CF N_PDU to specify the order of the consecutive frames.
- The SN shall start with zero (0) for all segmented messages. The FF shall be assigned the value zero (0). It does not include an explicit SequenceNumber in the N_PCI field but shall be treated as the segment number zero (0).
- The SN of the first CF that immediately follows the FF shall be set to one (1).
- The SN shall be incremented by one (1) for each new CF that is transmitted during a segmented message
- The SN value shall not be affected by any FC
- When the SN reaches the value of fifteen (15), it shall wraparound and be set to zero (0) for the next
This shall lead to the sequence given in Table 10. See Table 11 for SN values.
Table 10 — Summary of SN definition
N_PDU |
FF |
CF |
CF |
CF |
CF |
CF |
CF |
CF |
SN (hex) |
0 |
1 |
… |
E |
F |
0 |
1 |
… |
Table 11 — Definition of SN values
Hex value |
Description |
0 – F |
SequenceNumber (SN) The SequenceNumber (SN) shall be encoded in the lower nibble bits of N_PCI byte #1. The SN shall be set to a value within the range of zero (0) to fifteen (15). |
6.5.4.3 SN error handling
If a CF N_PDU message is received with an incorrect sequence number, then proper error handling shall take place in the network layer. The message reception shall be aborted, and the network layer shall make an N_USData.indication service call with the parameter <N_Result> = N_WRONG_SN to the adjacent upper layer.
6.5.5 FlowControl N_PCI parameter definition
6.5.5.1 FlowControl N_PCI bytesTable 12 provides an overview of the FC N_PCI bytes.
Table 12 — Overview of FC N_PCI bytes
N_PDU name |
FC N_PCI bytes |
|||||||||
Byte #1 |
Byte #2 |
Byte #3 |
||||||||
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|||
FlowControl |
0 |
0 |
1 |
1 |
FS |
BS |
STmin |
|||
6.5.5.2 FlowStatus (FS) parameter definition
The parameter FlowStatus (FS) indicates whether the sending network entity can proceed with the message transmission.
A sending network entity shall support all specified (not reserved) values of the FS parameter.
Table 13 — Definition of FS values
Hex value |
Description |
0 |
ContinueToSend (CTS) The FlowControl ContinueToSend parameter shall be encoded by setting the lower nibble of the N_PCI byte #1 to “0”. It shall cause the sender to resume the sending of Consecutive frames. The meaning of this value is that the receiver is ready to receive a maximum of BS number of Consecutive frames. |
1 |
Wait (WT) The FlowControl Wait parameter shall be encoded by setting the lower nibble of the N_PCI byte #1 to “1”. It shall cause the sender to continue to wait for a new FlowControl N_PDU and to restart its N_BS timer. |
2 |
Overflow (OVFLW) The FlowControl Overflow parameter shall be encoded by setting the lower nibble of the N_PCI byte #1 to “2”. It shall cause the sender to abort the transmission of a segmented message and make an N_USData.confirm service call with the parameter <N_Result>=N_BUFFER_OVFLW. This N_PCI FlowStatus parameter value is only allowed to be transmitted in the FlowControl N_PDU that follows the FirstFrame N_PDU and shall only be used in case the message length FF_DL of the received FirstFrame N_PDU exceeds the buffer size of the receiving entity. |
3 – F |
Reserved This range of values is reserved by this part of ISO 15765. |
6.5.5.3 FS error handling
If an FC N_PDU message is received with an invalid (reserved) FS parameter value, then proper error handling shall take place in the network layer. The message transmission shall be aborted, and the network layer shall make an N_USData.confirm service call with the parameter <N_Result> = N_INVALID_FS to the adjacent upper layer.
6.5.5.4 BlockSize (BS) parameter definition
The BS parameter shall be encoded in byte #2 of the FC N_PCI. The units of BS are the absolute number of CF N_PDUs per block.
EXAMPLE If BS is equal to twenty (20) (decimal), then the block will consist of twenty (20) (decimal) CF N_PDUs.
Only the last block of consecutive frames in a segmented data transmission may have less than the BS number of frames.
Table 14 provides an overview of the FC N_PCI byte.
Table 14 — Definition of BS values
Hex value |
Description |
00 |
BlockSize (BS) The BS parameter value zero (0) shall be used to indicate to the sender that no more FC frames shall be sent during the transmission of the segmented message. The sending network layer entity shall send all remaining consecutive frames without any stop for further FC frames from the receiving network layer entity. |
01 – FF |
BlockSize (BS) This range of BS parameter values shall be used to indicate to the sender the maximum number of consecutive frames that can be received without an intermediate FC frame from the receiving network entity. |
6.5.5.5 Definition of SeparationTime (STmin) parameter
The STmin parameter shall be encoded in byte #3 of the FC N_PCI.
This time is specified by the receiving entity and shall be kept by the sending network entity for the duration of a segmented message transmission.
The STmin parameter value specifies the minimum time gap allowed between the transmission of consecutive frame network protocol data units. See Table 15.
Table 15 — Definition of STmin values
Hex value |
Description |
00 – 7F |
SeparationTime (STmin) range: 0 ms – 127 ms The units of STmin in the range 00 hex – 7F hex are absolute milliseconds (ms). |
80 – F0 |
Reserved This range of values is reserved by this part of ISO 15765. |
F1 – F9 |
SeparationTime (STmin) range: 100 µs – 900 µs The units of STmin in the range F1 hex – F9 hex are even 100 microseconds (µs), where parameter value F1 hex represents 100 µs and parameter value F9 hex represents 900 µs. |
FA – FF |
Reserved This range of values is reserved by this part of ISO 15765. |
The measurement of the STmin starts after completion of transmission of a ConsecutiveFrame (CF) and ends at the request for the transmission of the next CF.
EXAMPLE If STmin is equal to ten (10) (decimal), then the minimum ST authorized between consecutive frame network protocol data units is equal to 10 ms.
6.5.5.6 ST error handling
If an FC N_PDU message is received with a reserved ST parameter value, then the sending network entity shall use the longest ST value specified by this part of ISO 15765 (7F hex – 127 ms) instead of the value received from the receiving network entity for the duration of the ongoing segmented message transmission.
6.6 Maximum number of FC.Wait frame transmissions (N_WFTmax)
The purpose of this variable is to avoid communication sender nodes being potentially hooked-up in case of a fault condition whereby the latter could be waiting continuously. This parameter is local to communication peers and is not transmitted, and is hence not part of the FC protocol data unit.
- The N_WFTmax parameter shall indicate how many FC N_PDU WTs can be transmitted by the receiver in a
- The N_WFTmax parameter upper limit shall be user defined at system generation
- The N_WFTmax parameter shall only be used on the receiving network entity during message
- If N_WFTmax parameter value is set to zero (0), then flow control shall rely upon flow control continue to send FC N_PDU CTS Flow control wait (FC N_PDU WT) shall not be used by that network entity.
6.7 Network layer timing
6.7.1 Timing parameters
Figure 7 shows the network layer timing parameters, while Table 16 defines the network layer timing parameter values and their corresponding start and end positions based on the data link layer services.
Performance requirement values are the binding communication requirements to be met by each communication peer in order to be compliant with the specification. A certain application may define specific performance requirements within the ranges defined in Table 16.
Timeout values are defined to be higher than the values for the performance requirements in order to ensure a working system and to overcome communication conditions where the performance requirement can absolutely not be met (e.g. high bus load). Specified timeout values shall be treated as the lower limit for any given implementation. The real timeout shall occur no later than at the specified timeout value + 50 %.
The network layer shall issue an appropriate service primitive to the network layer service user upon detection of an error condition.
Key
s sender
r receiver
Figure 6 — Placement of network layer timing parameters
Table 16 — Network layer timing parameter values
Timing
Parameter |
Description |
Data Link Layer service |
Timeout
(ms) |
Performance requirement (ms) |
|
Start |
End |
||||
N_As |
Time for transmission of the CAN frame (any N_PDU) on the sender side |
L_Data.request |
L_Data.confirm |
1 000 |
N/A |
N_Ar |
Time for transmission of the CAN frame (any N_PDU) on the receiver side |
L_Data.request |
L_Data.confirm |
1 000 |
N/A |
N_Bs |
Time until reception of the next FlowControl N_PDU. |
L_Data.confirm (FF), L_Data.confirm (CF), L_Data.indication (FC) |
L_Data.indication (FC) |
1 000 |
N/A |
N_Br |
Time until transmission of the next FlowControl N_PDU |
L_Data.indication (FF), L_Data.confirm (FC) |
L_Data.request (FC) |
N/A |
(N_Br + N_Ar) < (0.9 * N_Bs timeout) |
N_Cs |
Time until transmission of the next ConsecutiveFrame N_PDU |
L_Data.indication (FC), L_Data.confirm (CF) |
L_Data.request (CF) |
N/A |
(N_Cs + N_As) < (0.9 * N_Cr timeout) |
N_Cr |
Time until reception of the next ConsecutiveFrame N_PDU |
L_Data.confirm (FC), L_Data.indication (CF) |
L_Data.indication (CF) |
1 000 |
— |
s is the sender of the message. r is the receiver of the message. |
6.7.2 Network layer timeouts
Table 17 defines the cause and action in a network layer timeout.
Table 17 — Network layer timeout error handling
Timeout |
Cause |
Action |
N_As |
Any N_PDU not transmitted in time on the sender side. |
Abort message transmission and issue N_USData.confirm with <N_Result> = N_TIMEOUT_A. |
N_Ar |
Any N_PDU not transmitted in time on the receiver side. |
Abort message reception and issue N_USData.indication with <N_Result> = N_TIMEOUT_A. |
N_Bs |
FlowControl N_PDU not received (lost, overwritten) on the sender side or preceding FirstFrame N_PDU or ConsecutiveFrame N_PDU not received (lost, overwritten) on the receiver side. |
Abort message transmission and issue N_USData.confirm with <N_Result> = N_TIMEOUT_Bs. |
N_Cr |
ConsecutiveFrame N_PDU not received (lost, overwritten) on the receiver side or preceding FC N_PDU not received (lost, overwritten) on the sender side. |
Abort message reception and issue N_USData.indication with <N_Result> = N_TIMEOUT_Cr. |
6.7.3 Unexpected arrival of N_PDU
An unexpected N_PDU is defined as one that has been received by a node outside the expected order of N_PDUs. It could be an N_PDU defined by this part of ISO 15765 (SF N_PDU, FF N_PDU, CF N_PDU or FC N_PDU) that is received out of the normal expected order, or else it could be an unknown N_PDU that cannot be interpreted by the definitions given in this document.
Depending on the network layer design decision to support full- or half-duplex communication, the interpretation of “unexpected” differs:
a) with half-duplex, point-to-point communication between two nodes is only possible in one direction at a time;b) with full-duplex, point-to-point communication between two nodes is possible in both directions at one
In addition to the network layer design decision, the possibility has to be considered that a reception or transmission from/to a node with the same address information (N_AI), as contained in the received unexpected N_PDU, is in progress.
As a general rule, arrival of an unexpected N_PDU from any node shall be ignored, with the exception of SF N_PDUs and physically addressed FF N_PDUs; functionally addressed first frames shall be ignored. When the specified action is to ignore an unexpected N_PDU, this means that the network layer shall not notify the upper layers of its arrival.
Table 18 defines the network layer behaviour in the case of the reception of an unexpected N_PDU, in consideration of the actual network layer internal status (NWL status) and the design decision to support half- or full-duplex communication. It has to be understood that the received N_PDU will contain the same N_AI as the reception or transmission that could be in progress at the time the N_PDU is received.
Table 18 — Handling of unexpected arrival of N_PDU
NWL status |
Reception of |
||||
SF N_PDU |
FF N_PDU |
CF N_PDU |
FC N_PDU |
Unknown N_PDU |
|
Segmented Transmit in progress |
Full-duplex: If a reception is in progress, see corresponding cell below in this table, otherwise process the SF N_PDU as the start of a new reception. |
Full-duplex: If a reception is in progress, see corresponding cell below in this table, otherwise process the FF N_PDU as the start of a new reception. |
Full-duplex: If a reception is in progress, see corresponding cell below in this table. |
If awaited, process the FC N_PDU, otherwise ignore it. |
Ignore |
Half-duplex: ignore |
Half-duplex: ignore |
Half-duplex: ignore |
|||
Segmented Receive in progress |
Terminate the current reception, report an N_USData.indication, with <N_Result> set to N_UNEXP_PDU, to the upper layer, and process the SF N_PDU as the start of a new reception. |
Terminate the current reception, report an N_USData.indication, with <N_Result> set to N_UNEXP_PDU, to the upper layer, and process the FF N_PDU as the start of a new reception. |
If awaited, process the CF N_PDU in the on-going reception and perform the required checks (e.g. SN in right order), otherwise ignore it. |
Full-duplex: If a transmission is in progress, see corresponding cell above in this table. |
Ignore |
Half-duplex: Ignore |
|||||
Idle a |
Process the SF N_PDU as the start of a new reception. |
Process the FF N_PDU as the start of a new reception. |
Ignore |
Ignore |
Ignore |
a Neither a segmented transmission nor segmented reception is in progress. |
6.7.4 Wait frame error handling
When the receiver has transmitted N_WFTmax flow control wait network protocol data units (FC N_PDU WT) in a row and following this it cannot meet the performance requirement for the transmission of a flow control clear to send network protocol data unit (FC NPDU CTS), then the receiver side shall abort the message reception and issue an N_USData.indication with <N_Result> set to N_WFT_OVRN to the higher layer.
The sender of the message is informed about the aborted message reception via an N_USData.confirm with
<N_Result> set to N_TIMEOUT_Bs (because of the missing FlowControl N_PDU from the receiver an N_Bs timeout occurs in the sender).
6.8 Interleaving of messages
The network layer protocol shall be capable of carrying out parallel transmission of different messages that are not mapped onto the same N_AI. This is necessary to ensure that the receiving peer is able to reassemble in a consistent manner the received network protocol data units. This scheme for example enables gateway operation that needs to handle different message transmissions concurrently across distinct sub-networks.
7 Data link layer usage
7.1 Data link layer interface services
7.1.1 L_Data.request
The service primitive requests transmission of <Data> that shall be mapped within specific attributes of the data link protocol data unit selected by means of <Identifier>.
The <Identifier> shall provide reference to the specific addressing format used to transmit <Data>:
L_Data.request (
<Identifier>
<DLC>
<Data>
)
7.1.2 L_Data.confirm
The service primitive confirms the completion of an L_Data.request service for a specific <Identifier>. The parameter <TransferStatus> provides the status of the service request:
L_Data.confirm (
<Identifier>
<TransferStatus>
)
7.1.3 L_Data.indication
The service primitive indicates data link layer event to the adjacent upper layer and delivers <Data> identified by <Identifier>:
L_Data.indication (
<Identifier>
<DLC>
<Data>
)
7.2 Data link layer service parameters
The following data link layer service parameters are defined in ISO 11898-1:
<Identifier>: CAN identifier
<DLC>: Data Length Code
<Data>: CAN frame data
<TransferStatus>: Status of a transmission
7.3 Mapping of the N_PDU fields
7.3.1 Addressing formats
The exchange of network layer data is supported by three addressing formats: normal, extended and mixed addressing. Each addressing format requires a different number of CAN frame data bytes to encapsulate the addressing information associated with the data to be exchanged. Consequently, the number of data bytes transported within a single CAN frame depends on the type of addressing format chosen.
The following (7.3.2 to 7.3.5) specifies the mapping mechanisms for each addressing format, based on the data link layer services and service parameters defined in ISO 11898-1.
7.3.2 Normal addressing
For each combination of N_SA, N_TA, N_TAtype and Mtype, a unique CAN identifier is assigned. N_PCI and N_Data is placed in the CAN frame data field. See Table 19.
Table 19 — Mapping of N_PDU parameters into CAN frame — Normal addressing
N_PDU type |
CAN Identifier |
CAN frame data field |
|||||||
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
Byte 6 |
Byte 7 |
Byte 8 |
||
SingleFrame (SF) |
N_AI |
N_PCI |
N_Data |
||||||
FirstFrame (FF) |
N_AI |
N_PCI |
N_Data |
||||||
ConsecutiveFrame (CF) |
N_AI |
N_PCI |
N_Data |
||||||
FlowControl (FC) |
N_AI |
N_PCI |
N/A |
7.3.3 Normal fixed addressing
Normal fixed addressing is a subformat of normal addressing where the mapping of the address information into the CAN identifier is further defined. In the general case of normal addressing, described above, the correspondence between N_AI and the CAN identifier is left open.
For normal fixed addressing, only 29 bit CAN identifiers are allowed. Tables 20 and 21 define the mapping of the address information (N_AI) into the CAN identifier, depending on the target address type (N_TAtype). N_PCI and N_Data is placed in the CAN frame data field.
Table 20 — Normal fixed addressing, N_TAtype = physical
N_PDU type |
29 bit CAN Identifier bit position |
CAN frame data field byte position |
|||||||||||||
28 ... 26 |
25 |
24 |
23 ... 16 |
15 |
8 |
7 ... 0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
SingleFrame (SF) |
110 (bin) |
0 |
0 |
218 (dec) |
N_TA |
N_SA |
N_PCI |
N_Data |
|||||||
FirstFrame (FF) |
110 (bin) |
0 |
0 |
218 (dec) |
N_TA |
N_SA |
N_PCI |
N_Data |
|||||||
ConsecutiveFrame (CF) |
110 (bin) |
0 |
0 |
218 (dec) |
N_TA |
N_SA |
N_PCI |
N_Data |
|||||||
FlowControl (FC) |
110 (bin) |
0 |
0 |
218 (dec) |
N_TA |
N_SA |
N_PCI |
N/A |
Table 21 — Normal fixed addressing, N_TAtype = functional
N_PDU type |
29 bit CAN Identifier bit position |
CAN frame data field byte position |
|||||||||||||
28 ... 26 |
25 |
24 |
23 ... 16 |
15 |
8 |
7 ... 0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
SingleFrame (SF) |
110 (bin) |
0 |
0 |
219 (dec) |
N_TA |
N_SA |
N_PCI |
N_Data |
|||||||
FirstFrame (FF) |
110 (bin) |
0 |
0 |
219 (dec) |
N_TA |
N_SA |
N_PCI |
N_Data |
|||||||
ConsecutiveFrame (CF) |
110 (bin) |
0 |
0 |
219 (dec) |
N_TA |
N_SA |
N_PCI |
N_Data |
|||||||
FlowControl (FC) |
110 (bin) |
0 |
0 |
219 (dec) |
N_TA |
N_SA |
N_PCI |
N/A |
7.3.4 Extended addressing
For each combination of N_SA, N_TAtype and Mtype, a unique CAN identifier is assigned. N_TA is placed in the first data byte of the CAN frame data field. N_PCI and N_Data is placed in the remaining bytes of the CAN frame data field.
Table 22 — Mapping of N_PDU parameters into CAN frame — Extended addressing
N_PDU type |
CAN Identifier |
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
Byte 6 |
Byte 7 |
Byte 8 |
SingleFrame (SF) |
N_AI, except N_TA |
N_TA |
N_PCI |
N_Data |
|||||
FirstFrame( FF) |
N_AI, except N_TA |
N_TA |
N_PCI |
N_Data |
|||||
ConsecutiveFrame (CF) |
N_AI, except N_TA |
N_TA |
N_PCI |
N_Data |
|||||
FlowControl (FC) |
N_AI, except N_TA |
N_TA |
N_PCI |
N/A |
7.3.5 Mixed addressing
7.3.5.1 29 bit CAN identifier
Mixed addressing is the addressing format to be used if Mtype is set to remote diagnostics.
Tables 23 and 24 define the mapping of the address information (N_AI) into the 29 bit CAN identifier scheme and the first CAN frame data byte, depending on the target address type (N_TAtype). N_PCI and N_Data are placed in the remaining bytes of the CAN frame data field.
Table 23 — Mixed addressing with 29 bit CAN Identifier, N_TAtype = physical
N_PDU type |
29 bit CAN Identifier bit position |
CAN frame data field byte position |
|||||||||||||
28 ... 26 |
25 |
24 |
23 ... 16 |
15 |
8 |
7 ... 0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
SingleFrame (SF) |
110 (bin) |
0 |
0 |
206 (dec) |
N_TA |
N_SA |
N_AE |
N_PCI |
N_Data |
||||||
FirstFrame (FF) |
110 (bin) |
0 |
0 |
206 (dec) |
N_TA |
N_SA |
N_AE |
N_PCI |
N_Data |
||||||
ConsecutiveFrame (CF) |
110 (bin) |
0 |
0 |
206 (dec) |
N_TA |
N_SA |
N_AE |
N_PCI |
N_Data |
||||||
FlowControl (FC) |
110 (bin) |
0 |
0 |
206 (dec) |
N_TA |
N_SA |
N_AE |
N_PCI |
N/A |
Table 24 — Mixed addressing with 29 bit CAN Identifier, N_TAtype = functional
N_PDU type |
29 bit CAN Identifier bit position |
CAN frame data field byte position |
|||||||||||||
28 ... 26 |
25 |
24 |
23 ... 16 |
15 |
8 |
7 ... 0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
SingleFrame (SF) |
110 (bin) |
0 |
0 |
205 (dec) |
N_TA |
N_SA |
N_AE |
N_PCI |
N_Data |
||||||
FirstFrame (FF) |
110 (bin) |
0 |
0 |
205 (dec) |
N_TA |
N_SA |
N_AE |
N_PCI |
N_Data |
||||||
ConsecutiveFrame (CF) |
110 (bin) |
0 |
0 |
205 (dec) |
N_TA |
N_SA |
N_AE |
N_PCI |
N_Data |
||||||
FlowControl (FC) |
110 (bin) |
0 |
0 |
205 (dec) |
N_TA |
N_SA |
N_AE |
N_PCI |
N/A |
7.3.5.2 11 bit CAN identifier
Mixed addressing is the addressing format to be used if Mtype is set to remote diagnostics.
Table 25 defines the mapping of the address information (N_AI) into the 11 bit CAN identifier scheme. For each combination of N_SA, N_TA and N_TAtype a unique CAN identifier is assigned. N_AE is placed in the first data byte of the CAN frame data field. N_PCI and N_Data is placed in the remaining bytes of the CAN frame data field.
Table 25 — Mixed addressing (11 bit CAN Id)
N_PDU type |
CAN Identifier |
||||||||
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
Byte 6 |
Byte 7 |
Byte 8 |
||
SingleFrame (SF) |
N_AI |
N_AE |
N_PCI |
N_Data |
|||||
FirstFrame( FF) |
N_AI |
N_AE |
N_PCI |
N_Data |
|||||
ConsecutiveFrame (CF) |
N_AI |
N_AE |
N_PCI |
N_Data |
|||||
FlowControl (FC) |
N_AI |
N_AE |
N_PCI |
N/A |
7.4 CAN frame Data Length Code (DLC)
7.4.1 DLC parameterThe DLC parameter specifies the number of data bytes transmitted in a CAN frame. This part of ISO 15765 does not specify any requirements concerning the length of the data field in a CAN frame other than those implied by the size of the network layer protocol data units.
An application that implements the network layer as defined in this document might either pad all CAN frames to their full length (see 7.4.2) or optimize the DLC to the applicable length of the network layer protocol data unit (see 7.4.3).
7.4.2 CAN frame data padding
The DLC is always set to 8. If the N_PDU to be transmitted is shorter than 8 bytes, then the sender has to set the DLC to the maximum value 8 (padding of unused data bytes). In particular this can be the case for an SF, FC frame or last CF of a segmented message.
The DLC parameter of the CAN frame is set by the sender and read by the receiver to determine the number of data bytes per CAN frame to be processed by the network layer. The DLC parameter cannot be used to determine the message length; this information shall be extracted from the N_PCI information in the beginning of a message.
7.4.3 CAN frame data optimization
The DLC does not always need to be 8. If the N_PDU to be transmitted is shorter than 8 bytes, then the sender may optimize the CAN bus load by shortening the CAN frame data to only contain the number of bytes occupied by the N_PDU (no padding of unused data bytes). CAN frame data optimization can only be used for a SF, FC frame or last CF of a segmented message.
The DLC parameter of the CAN frame is set by the sender and read by the receiver to determine the number of data bytes per CAN frame to be processed by the network layer. The DLC parameter cannot be used to determine the message length; this information shall be extracted from the N_PCI information in the beginning of a message.
7.4.4 Data Length Code error handling
Depending on the N_PCI value, the network layer can calculate the smallest expected value for the CAN DLC parameter in a received CAN frame.
The reception of a CAN frame with a DLC value smaller than expected (less than 8 for applications which pad the CAN frames or smaller than implied by the size of the network protocol data unit for optimized implementations) shall be ignored by the network layer without any further action.
Annex A
(informative)
Use of normal fixed and mixed addressing with data link layer according to SAE J1939
A.1 Overview
This annex describes how to map address information parameters, N_AI, into the CAN frame when a data link layer according to SAE J1939 is used.
A.2 Rules
A.2.1 Normal fixed addressing
Table A.1 shows the mapping of address information parameters, N_AI, into the CAN frame when Network Target Address type, N_TAtype, physical addressing is used.
Table A.1 — Normal addressing, physical addressed messages
J1939 name |
P |
R |
DP |
PF |
PS |
SA |
Data field |
Bits |
3 |
1 |
1 |
8 |
8 |
8 |
64 |
Content |
default 110 (bin) |
0 |
0 |
218 (dec) |
N_TA |
N_SA |
N_PCI, N_Data |
CAN Id Bits |
28 – 26 |
25 |
24 |
23 – 16 |
15 – 8 |
7 – 0 |
|
CAN data byte |
1 – 8 |
||||||
CAN Field |
Identifier |
Data |
Table A.2 shows the mapping of address information parameters, N_AI, into the CAN frame when Network Target Address type, N_TAtype, functional addressing is used.
Table A.2 — Normal addressing, functional addressed messages
J1939 name |
P |
R |
DP |
PF |
PS |
SA |
Data field |
Bits |
3 |
1 |
1 |
8 |
8 |
8 |
64 |
Content |
default 110 (bin) |
0 |
0 |
219 (dec) |
N_TA |
N_SA |
N_PCI, N_Data |
CAN Id Bits |
28 – 26 |
25 |
24 |
23 – 16 |
15 – 8 |
7 – 0 |
|
CAN data byte |
1 – 8 |
||||||
CAN Field |
Identifier |
Data |
A.2.2 Mixed addressing
Table A.3 shows the mapping of address information parameters, N_AI, into the CAN frame when the Network Target Address type, N_TAtype, physical addressing is used.
Table A.3 — Mixed addressing, physical addressed messages
J1939 name |
P |
R |
DP |
PF |
PS |
SA |
Data field |
|
Bits |
3 |
1 |
1 |
8 |
8 |
8 |
8 |
56 |
Content |
default 110 (bin) |
0 |
0 |
206 (dec) |
N_TA |
N_SA |
N_AE |
N_PCI, N_Data |
CAN Id Bits |
28 – 26 |
25 |
24 |
23 – 16 |
15 – 8 |
7 – 0 |
||
CAN data byte |
1 |
2 – 8 |
||||||
CAN Field |
Identifier |
Data |
Table A.4 shows the mapping of address information parameters, N_AI, into the CAN frame when Network Target Address type, N_TAtype, functional addressing is used.
Table A.4 — Mixed addressing, functional addressed messages
J1939 name |
P |
R |
DP |
PF |
PS |
SA |
Data field |
|
Bits |
3 |
1 |
1 |
8 |
8 |
8 |
8 |
56 |
Content |
default 110 (bin) |
0 |
0 |
205 (dec) |
N_TA |
N_SA |
N_AE |
N_PCI, N_Data |
CAN Id Bits |
28 – 26 |
25 |
24 |
23 – 16 |
15 – 8 |
7 – 0 |
||
CAN data byte |
1 |
2 – 8 |
||||||
CAN Field |
Identifier |
Data |
A.2.3 Priority (P)
The priority is user defined with a default value of six (6).
The three bits priority field is used to optimize message latency for transmission onto the CAN bus only. The priority field should be masked off by the receiver (ignored). The priority of any CAN message can be set from highest, 0 (000 bin), to lowest, 7 (111 bin).
A.2.4 Reserved bit (R)
The reserved bit shall be set to “0”.
A.2.5 Data Page (DP)
The data page bit shall be set to “0”.
A.2.6 Protocol data unit format (PF)
The format is of the type PDU1, “destination specific”.
Diagnostic messages shall use the following parameter group numbers (PGN).
- Mixed addressing: 52480 (dec) for N_TAtype = functional, which gives PF = 205 (dec).
- Mixed addressing: 52736 (dec) for N_Tatype = physical, which gives PF = 206 (dec).
- Normal fixed addressing: 55808 (dec) for N_TAtype = physical, which gives PF = 218 (dec),
- Normal fixed addressing: 56064 (dec) for N_TAtype = functional, which gives PF = 219 (dec).
A.2.7 PDU-specific (PS)
The PDU-specific field shall contain the target address (destination address), N_TA.
A.2.8 Source Address (SA)
The SA field shall contain the source address, N_SA
A.2.9 Update rate
Update rate is according to user requirements.
A.2.10 Data length
Data length shall be eight (8) bytes.
Bibliography
[1] ISO/IEC 7498 (all parts), Information technology — Open Systems Interconnection — Basic Reference Model
[2] ISO/IEC 10731, Information technology — Open Systems Interconnection — Basic Reference Model — Conventions for the definition of OSI services
[3] ISO 11898 (all parts), Road vehicles — Controller area network (CAN)
[4] ISO 14229-1, Road vehicles — Unified diagnostic services (UDS) — Part 1: Specification and requirements 5)
[5] ISO 15031-5, Road vehicles — Communication between vehicle and external equipment for emissions-related diagnostics — Part 5: Emissions-related diagnostic services 5)
[6] SAE J1939, Recommended Practice for a Serial Control and Communications Vehicle Network