I wonder why the command Commanded Address from SAE J1939-21 protocol, requries a delay between 50-200ms for every multiple package message for the transmitter.
Why? Does the microcontroller unit not have a RX buffer for CAN-bus?
Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. It only takes a minute to sign up.
Sign up to join this communityI wonder why the command Commanded Address from SAE J1939-21 protocol, requries a delay between 50-200ms for every multiple package message for the transmitter.
Why? Does the microcontroller unit not have a RX buffer for CAN-bus?
Thanks for bringing it up. I was able to refresh some part of my experiences.
Sending 8 bytes every 200 ms is a very long time
Yes, it would be terrible to have 500kbit/s while delaying 200 ms.
It seems, from the image you posted, that is for a Broadcast packet, which does not use ACK/response. Thus the delay spec gives the design margin to receive-end for processing and timeout. For normal master-slave & peer-peer RTX, it can use timeout, though once ACK-ed, any delay wouldn't be necessary.
Meantime, this discusses packet/frame speed as well, which is much faster than 200 ms per packet.
SAE J1939 Message Frame Frequency
The SAE J1939 message frequency depends on its length (the majority of J1939 message frames contain 8 data bytes) and the busload.
An SAE J1939 message frame time (135 bits with 8 data bytes and average bit stuffing applied) is 0.54 msec @ 250kbps and 0.27 msec @ 500 kbps.
Assuming a busload of 70%, which is generally considered the "real-world" maximum, an SAE J1939 data frame may occur every 0.77 msec @ 250 kbps or 0.39 msec @ 500 kbps.