This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CAN FD BUS LOAD



hello, 

to calculate the bus load in CAN i use this equation : 


=> per example for a baud rate of 500 kb/s :

i calculate the number of bits i have received (frames_size) and then to calculate the bus load for 1 second i use :

(frames_size * 100) / (500 * 10^3) = XX%

 

my question is how can i calculate the bus load in CAN FD since im using BRS(bit rate switch) : 500 kb/s for nominale phase and 2Mb/s for data phase ?


Thanks,  

  • Hey Faress,

    When calculating the bus load you can break down the equation into much more specific calculations. First it is important to figure out roughly how many bits each of your phases are controlling. This is a very useful document that shows every single possible bit in a CAN frame. So for the nominal phase, or the arbitration phase, you would count how many bits you're sending up until the Bit Rate Switch bit. This is going to change depending on the size of your identifier. Let's say you are using an 11 bit identifier and you send 30 bits including the Bit Rate Switch bit. Remember there are two arbitration phases; one at the beginning and one at the end of the CAN frame.

    Your bit time = 1 / bit rate. Since during this phase we are using 500 kb/s your bit time is 1/(500kb/s*1kb)=1/(500kb/s*1000bits)= 2E-6s or 2us. So every bit takes 2us to transfer on the bus. Since we need to transfer 30 bits this is going to take 30*2us=60us.

    Then you can repeat this calculation for the data phase and figure out how much time it would take to transfer your data bits using a 2Mb/s bit rate. Let's say just for an example that it takes another 60us to transfer your data.

    Once you have your total time to transfer the frame, you have to figure out how often you are sending a CAN frame. If you send a CAN frame every second, then 120us of your total second is spent transferring data or 120E-6 seconds/1 seconds=0.012%. That would be your bus load. 

    If you send a CAN frame every 500us then your bus load would be 120 us/500 us=24%.

    Let me know if you have any further questions.

    Best,

    Chris

  • Thank you Chris, this was really helpfull.