Search tips

apple banana
Find rows that contain at least one of the two words.

+apple +juice
Find rows that contain both words.

+apple macintosh
Find rows that contain the word 'apple', but rank rows higher if they also contain 'macintosh'.

+apple -macintosh
Find rows that contain the word 'apple' but not 'macintosh'.

+apple ~macintosh
Find rows that contain the word 'apple', but if the row also contains the word 'macintosh', rate it lower than if row does not. This is "softer" than a search for '+apple -macintosh', for which the presence of 'macintosh' causes the row not to be returned at all.

+apple +(>turnover >strudel)
Find rows that contain the words 'apple' and 'turnover', or 'apple' and 'strudel' (in any order), but rank 'apple turnover' higher than 'apple strudel'.

apple*
Find rows that contain words such as 'apple', 'apples', 'applesauce', or 'applet'.

"some words"
Find rows that contain the exact phrase 'some words' (for example, rows that contain 'some words of wisdom' but not "some noise words").

Search:

Last updated: 2019-11-22
Question:

How can I calculate the bus load of my CAN bus based on frame sending intervals?

There can (only) be an estimative calculation based on some assumptions.

Regarding CAN bus load calculation, assuming standard identifier, CAN frame consist of below field.

• 1 bit start bit
• 11 bit identifier
• 1 bit RTR
• 6 bit control field
• 0 to 64 bit data field
• 15 bit CRC
• Bit stuffing is possible in the above, for every sequence of 5 consecutive bits of same level. Somewhere around 18 bits in the worst case.
• 3 bit delimiter, ack etc.
• 7 bit end of frame
• 3 bit intermission field after frame

So 1 CAN frame contains approximately 125 bit.

Given we are using 500 kBit/s bit rate:

bit time = 1 / bit rate = 1 / (500 * 1000) s = 2 * 10-6 s = 2 µs

This means 1 bit will take 2 µs to transfer on bus when using 500 kBit/s.

So the approximate time to transfer 1 frame is  (2 µs/bit * 125 bit) = 250 µs.

The bus load for 1 message every 100 ms with 500 kBit/s can be calculated as below:

Given that every 100 ms one (1) message will be sent

In 100 ms the bus will be occupied for 250 µs.

So the bus load from these cyclic messages is
250 µs / 100 ms = (250 / (100*1000)) * 100 % = 25000 / 100000 % = 0.25 %

Let assume you have below multiple sending intervals on the bus as:

1 frame every 10 ms     =  100 frames every 1000 ms
1 frame every 100 ms    =   10 frames every 1000 ms
1 frame every 1000 ms   =    1 frame   every 1000 ms

This is in total                    111 frames every 1000 ms

Total time on bus is          111 * 250 µs

Total time is                      1000 ms = 1000 * 1000 µs

Bus load is                         ((111 * 250) / (1000 * 1000)) * 100 % = 2.775 %

Note:

This is just an estimative calculation based on some assumptions to get an overview. Please note that the CAN bus is not deterministic and bus load cannot be calculated exactly.

This calculation is not valid for CAN FD.

Article Options
2019-11-22
Views: 1329 