Top 5 ways to use CAN at higher bus loads

Using CAN at higher bus loads has become an industrial requirement in many application domains. This is the case especially in the automotive where the 30% load threshold is now easily exceeded. The question is – what are the levers at our disposal to achieve that? This is a question we tried to answer with Hervé Perrault from PSA in a paper that was presented at the last CAN conference (ICC’2012). And here are our top 5 ways to optimize a CAN network:

  1. Keep the amount of data transmitted to a minimum, specifically limit the transmission frequency of the frames. This sounds obvious but this is not necessarily easy because it requires a rigorous identification and traceability of the temporal constraints, and thus it has impacts on the whole design flow.
  2. Desynchronize the stream of frames by using frame offsets: a nice performance boost for free, so really something to consider,
  3. Optimize the communication stacks so as to remove all departure from the ideal CAN behavior: e.g. a single FIFO waiting queue might degrade the temporal behavior of the whole CAN cluster, so “clean” communication stacks is something to look for if one wants to go above 50%,
  4. Reassign the priorities of the frames, so that the priority order better reflects the timing constraints, and Deadline-Monotonic (“the smaller the deadline, the higher the priority”) is a good starting point here.
  5. Re-consider the frame-packing (i.e., allocation of the signals to the frames and choice of the frame periods, so as to minimize the bandwidth usage while meeting timing constraints): not a huge gain to expect, but anyway a few additional percents of load.

You may find more details and pointers to relevant literature in the full paper and the slides than can be downloaded from here.

Questions/feedback? Would you see something else? Thank you

By | 2016-12-31T18:07:04+00:00 April 29th, 2012|Uncategorized|0 Comments

Leave A Comment