In many industries, using CAN at higher bus loads has become a necessity. This is especially true in the automotive sector, where the traditional 30% load threshold is now frequently surpassed. So, what levers can we pull to achieve optimal performance under these conditions? This question was the focus of a paper we co-authored with Hervé Perrault from PSA, presented at the last CAN Conference (ICC 2012). Here are our top five strategies to optimize a CAN network:
- Minimize Data Transmission: educe the amount of data transmitted by limiting the transmission frequency of frames. While this may seem straightforward, it’s not always easy to implement. It requires rigorous identification and traceability of temporal constraints, possibly impacting the entire design flow.
- Desynchronize Frame Streams with Offsets: Introducing frame offsets can provide a significant performance boost at no additional cost. It’s a strategy worth considering for immediate improvements.
- Optimize the communication stacks: Ensure that communication stacks behave as close to ideal CAN behavior as possible. For instance, a single FIFO waiting queue can degrade the temporal behavior of the entire CAN cluster. Clean, efficient communication stacks are key, especially when aiming for bus loads over 50%.
- Reassign Frame Priorities: Adjust the priorities of frames to better reflect their timing constraints. Implementing a Deadline-Monotonic approach—where frames with shorter deadlines are given higher priority—is a good starting point.
-
Reconsider Frame Packing: Reevaluate how signals are allocated to frames and choose frame periods to minimize bandwidth usage while meeting timing constraints. While the gains here may be modest, they can still provide a few additional percentage points of load reduction.
For more in-depth details and further references, you can download the full paper and slides from here from here.
Have any questions or feedback? Or perhaps other suggestions? We’d love to hear from you!