CAN bus: Baud Rate and its calculation
Updated: Sep 11
The rate at which the information is transferred in a communication channel is known as the baud rate. But in the context of the CAN (Controller Area Network) bus, baud rate and bit rate are related but distinct concepts:
Baud Rate: In CAN, bus refers to the rate at which electrical signal transitions occur on the communication channel. It indicates how many transitions happen between high and low voltage levels per second. The baud rate is often expressed in baud or bits per second (bps). In the context of CAN, the baud rate setting is typically called the "baud rate" setting, even though it's related to the bit rate.
Bit Rate: The bit rate, on the other hand, refers to the actual rate at which data bits are transmitted on the CAN bus. It is the number of actual information bits transmitted per unit of time. In the CAN protocol, each bit of time is divided into multiple segments, including synchronisation and propagation segments. Combining these segments and the chosen baud rate determines the bit rate.
In the CAN protocol, the bit rate is directly related to the baud rate, but they can differ due to the overhead introduced by the various segments within each bit time. The bit rate directly affects how fast data is transferred on the bus and how quickly messages are transmitted between CAN nodes.
Note: It's important to note that the terms are sometimes used interchangeably or loosely, but understanding the distinction between them is crucial for accurately configuring and troubleshooting CAN bus systems.
Or, more generally, for a CAN bus, the baud rate is the speed/rate at which the data is transmitted on the network. This is expressed in bits per second. Hence, the baud rate is the number of bits that travel on a communication network in a second.
For a CAN bus, which is a serial, multi-master bus, if the baud rate is mentioned as "500000 baud", that port on the CAN bus can transfer a maximum of 500000 bits per second.
Different Baud rates supported on CAN bus:
∙ 125 kbps
∙ 250 kbps
∙ 500 kbps (Standard for most automotive applications)
∙ 1000 kbps (1mbps)
Various software allows the user to set the bus speed depending on the needs of the CANbus. The below imageis from Influx's DiaLog software, enabling the user to select the bus speed (from various available options).
How many messages does every baud rate support?
CAN bus support the transmission of data that can be 8 Bytes long. But, the transmission of such long messages results in larger latency. At a bit rate of about 1 Mbit/s, with an average data length of 4 bytes, up to 10,000 messages per second can be transmitted using a standard format, i.e., with 8 bytes data length, up to 7,200 messages can be sent per second.
Using simple formulas, one can calculate the approx.—time to transfer one frame on the CAN bus.
Now, for example, 1 CAN frame contains approximately 125 bits.
Assuming bit rate = 250kBits/psec.
bit time = 1 / bit rate = 1 / (250 * 1000) s = 4 * s = 4 µs.
Therefore, 1 bit will take 4 µs to transfer on the bus when using 250 Kbit/s.
So, the approximate time to transfer 1 frame is (4 µs/bit * 125 bit) = 500 µs.
Assuming bit rate = 500 Kbit/s.
bit time = 1 / bit rate = 1 / (500 * 1000) s = 2 * s = 2 µs
Therefore, 1 bit will take 2µs to transfer on a bus when using 500 Kbit/s.
So, the approximate time to transfer 1 frame is (2 µs/bit * 125 bit) = 250 µs.
The formula for calculating Bus load for CAN bus:
Bus load is calculated as a percentage.
Bus load % = #bytes send / speed
Bus load % = bytes (to be send in a second) * (8bits) / (baud rate bps) * 100%
Assuming the bytes to be sent in a second as 1000
So, at 250kbps, the bus load % will become: -
1000*8/250000*100% = 3.2%
Similarly, at 500kbps, the bus load % will become: -
1000*8/500000*100% = 1.6%
However, 70 to 80% of bus use is typically achieved at higher message priority.
To transmit a given number of frames on the bus in a given number of seconds. The average bits per message (32-bit data) is assumed to be 76 unless defined (it may vary).
∙ 5ms -5 frames
1/ 0.005 * 5 * 76 = 760,00
∙ 10ms -5 frames.
1 / 0.010 * 5 * 76 = 38,000
∙ 100ms -5 frames
1 / 0.100 * 5 * 76 = 3800
Total number of frames = 76,000 + 38,000 + 3,800 = 1,17,800
Bus Load at baud rate 250 kbps = 117,800/250000*100% = 47.12%
Bus Load at baud rate 500 kbps = 117,800/500000*100% = 23.56%
The image below shows the active logging and trace viewer for Influx's Rebel CT/LT Channel (HS). Parameters such as Bitrate and Busload (total, per second and load) can be viewed here. Also, Rx/Tx messages and the error frames (total, per second and load) can be easily viewed.
How does it affect the length of the CAN bus?
For a CAN bus, the cable's baud rate and length are inversely proportional—the higher the baud rate, the lesser the cable length.
30 m- 40m
240m - 250m
The confusion regarding the terms "bitrate" and "baud rate" in the context of the CAN bus primarily arises from a change from the traditional usage of these terms in other communication systems. It's essential to recognize this unique usage when discussing CAN networks.
Many communication systems have historically used "baud rate" to describe the number of signal changes (modulation transitions) per second, and it was synonymous with the term "symbols per second." This made sense in systems that used simple modulation techniques like amplitude modulation (AM) or frequency modulation (FM), where each symbol change represented a certain amount of information.
The CAN bus, a protocol designed for robust and reliable communication in automotive and industrial environments, uses a different modulation approach. It transmits data in a non-return-to-zero (NRZ) format, where each bit is represented by a transition (either from high to low or from low to high). This approach doesn't fit neatly into the traditional "baud rate" definition, but the historical use of "baud rate" in this context has been established. This legacy usage has led to widespread acceptance within the CAN community.
The CAN protocol standardization process aimed to simplify discussions about communication speeds. By using the term "baud rate" interchangeably with "bitrate" to describe the speed at which bits are transmitted, the CAN community aimed to make it easier for engineers and developers to understand and configure CAN networks.
While this specialized usage of terminology has advantages within the CAN context, it can confuse when individuals familiar with the traditional meaning of "baud rate" encounter its different use in the CAN bus context.