What is J1939 software stack?
J1939 stack, for automotive ECU and tooling applications in commercial vehicles, is an embedded software code with layered architecture and is compliant with J1939 standard.
J1939 is a standard (set of embedded software specifications) defined by SAE (Society of Automotive Engineers).
The SAE J1939 protocol specifications are defined for CAN bus.
What is J1939/21 – Transport Protocol?
CAN bus, of the in-vehicle network, supports transfer of data of only up to 8 bytes. But SAE J1939 software standard allows messages of more than 8 bytes to be sent between the devices/ECU.
This is facilitated by the Transport Protocol (embedded software specification – J1939/21) of the J1939 software stack.
The CAN based J1939/21 Transport Layer sends messages of more than 8 bytes through multiple packets.
CAN based J1939/21 layer defines the format, sending and reassembling of the packets. It also defines the specifications related to handshake.
Learn more about the data transfer: How many bytes of data J1939/21 transport protocol support?
A maximum of 1785 bytes can be transferred using Transport Logic/ Transport Layer through CAN based J1939 software stack.
Explanation behind 1785 bytes of data:
- Data frame in CAN based J1939 stack contains 8 bytes. Transport Protocol (J1939/21) utilizes 1st byte of the message frame for number sequencing.
- Remaining 7 bytes/packet are utilized for data transfer.
- And maximum number of packets that can be sent before reset is 255.
- Hence, maximum number of bytes that can be sent before reset is 1785 bytes (255 packets*7 bytes of data/packet).
How Transport Protocol supports Connection Mode – point to point data transfer?
For point to point communication (connection mode), from Source to a specific Destination, transfer of data bytes is facilitated in the following way:
In such a connection mode, from source node to destination node transport of data happens with a handshake between the nodes as shown in above diagram.
Here in the last packet of transmission, there are only five bytes of data, and remaining two bytes are padded with FF (hex) data.
How Transport Protocol (J1939-21) supports transfer of Broadcast Announcement Message (BAM)?
For broadcasting of message, from Source to a several Destinations, transfer of data bytes is facilitated in the following way:
In broadcasting of the message, from source node to destination nodes, transport of data happens without any handshake between the nodes as shown in above diagram.
Here Source node doesn’t wait for confirmation or handshake from destination node(s).
In BAM transfer, in the last packet of transmission there are only five bytes of data, and  remaining two bytes are padded with FF(hex) data.