Multi-packet transmission is used for data traffic on the CAN bus that occupies more than eight bytes. For example, transmitting the driver card code or the vehicle's VIN number.
Before sending the data, the node notifies the network that it is going to transmit a multi-packet message. A TP.CM
BAM (Broadcast Announce Message) is sent, which contains information about the number of packets, the total size of the data, and the PGN (data to be transmitted).
TP.CM
Broadcast Announce Message:
PGN Hex | 0x00ECFF | |||||||
---|---|---|---|---|---|---|---|---|
PGN | 60671 | |||||||
Byte Number | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 | Byte 6 | Byte 7 | Byte 8 |
Byte Purpose | 0x20 | Data size (Little-endian) |
Number of packets |
0xFF | PGN (Little-endian) |
The data is split into TP.DT
packets, each containing part of the message.
If the data size is not a multiple of the packet size, the remaining bytes in the last packet are filled with 0xFF
(in some cases, another value like 0x2A
may be used instead).
TP.DT
Data Packet Transmission:
PGN Hex | 0x00EBFF | |||||||
---|---|---|---|---|---|---|---|---|
PGN | 60415 | |||||||
Description | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 | Byte 6 | Byte 7 | Byte 8 |
Packaged Data | Packet sequence number |
Data | Data | Data | Data | Data | Data | Data |
Time (ms) | ID (hex) | DLC | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 | Byte 6 | Byte 7 | Byte 8 |
---|---|---|---|---|---|---|---|---|---|---|
0 | PR EC FF SA | 8 | 20 |
11 |
00 |
03 |
FF |
EC |
FE |
00 |
50 | PR EB FF SA | 8 | 01 |
1-7 bytes of VIN number | ||||||
100 | PR EB FF SA | 8 | 02 |
8-14 bytes of VIN number | ||||||
150 | PR EB FF SA | 8 | 03 |
15-17 bytes of VIN number | FF |
FF |
FF |
FF |
PR — message priority (3 bits).
SA — source address (8 bits).