Skip to main content CAN FD | IoT Worker

CAN FD

CAN FD

Once you already accept the core judgment of classic CAN, the easiest mistake when reading CAN FD is to think “the payload just grew from 8 bytes to 64 bytes, so it is faster.” That is not wrong, but it is far from enough. What really pushed CAN FD into existence was not only payload size. It was the fact that classic CAN ties arbitration and whole-frame transmission to the same bit rate, so systems increasingly wanted to keep deterministic shared-bus contention while being constrained by payload size and bus time.

The more important judgment about CAN FD is this: it does not overturn the classic CAN bus-competition model. It keeps the original arbitration method, speeds up the part that actually drags the bus down, and allows a frame to carry more useful payload. It solves classic CAN’s hard boundaries rather than reinventing the whole bus rulebook.

Where Classic CAN Hits Its Limits

Classic CAN is already enough for many control scenarios, but once a system starts wanting higher update rates, richer state information, and larger diagnostic payloads at the same time, several limits appear together.

First, the maximum payload per frame is 8 bytes. Many applications can still survive by splitting data into multiple frames, but once you do that, the application layer has to handle segmentation, reassembly, timeouts, and consistency on its own. Second, the whole frame runs at the same bit rate. Even if arbitration only takes a small early portion, the data field, CRC, and tail still have to be sent at the same speed. Third, as load rises, teams often get trapped between “send more often” and “send more data each time,” because both paths end up consuming bus time.

The practical feeling is usually not “CAN is unreliable.” It is “CAN is stable, but it is no longer enough to hold everything and it is no longer fast enough.” And the root cause is not the arbitration model itself.

What CAN FD Keeps

The most important tradeoff in CAN FD is that it keeps the most valuable part of classic CAN: non-destructive arbitration on a shared multi-master bus.

That means several things stay the same:

  • nodes still compete for transmission on the same bus
  • arbitration is still based on the identifier
  • lower IDs still have higher priority
  • once arbitration is lost, the node still stops sending immediately
  • the whole network still depends on common frame boundaries and error detection to keep a consistent view

That is very important because it explains why CAN FD is not “just another faster protocol.” It is an evolution of classic CAN. The priority and contention model that actually determines real-time behavior is still there.

What It Actually Changes

The two core changes in CAN FD are: the payload grows from 8 bytes to as much as 64 bytes, and the frame can use one bit rate during arbitration and another during the data phase.

The first solves the “does not fit” problem. Many messages that previously had to be split can now be carried in one frame. That saves not only frame count, but also the arbitration, control, CRC, ACK, and inter-frame overhead each frame would have paid.

The second solves the “the whole frame is dragged down by the slow speed” problem. CAN FD still uses a conservative rate during arbitration, because that is the part where all nodes must be able to compare the bus result reliably. Once arbitration ends and the sender is known, the data phase can switch to a higher bit rate. That switch is usually indicated by the BRS bit, the bit rate switch bit.

Together, those two changes matter: each frame can carry more, and large data transfers are no longer fully tied to arbitration speed. What is saved is bus time.

Why Not Just Speed Up Everything From Start to Finish

If the goal of CAN FD were only “faster,” the intuitive answer would be to raise the whole bus to a higher rate. But engineering-wise that is not stable, because arbitration is the part with the strictest demands on synchronization, propagation delay, and consistent observation of the bus.

One of the most valuable properties of classic CAN is that multiple nodes can compare the bus bit-by-bit during arbitration and agree on what the line means. The higher the rate, the more pressure you put on harness length, transceiver behavior, topology quality, sample-point configuration, and clock error. If you force the whole frame into a higher rate, the first thing most likely to lose determinism is not the data field; it is arbitration itself.

So CAN FD does not brute-force the whole bus faster. It splits the “everyone must stay synchronized while competing” phase from the “the winner already has the bus, now we can move data efficiently” phase. That is the design core.

What New Costs It Brings

CAN FD does not give you bandwidth for free. It pushes classic CAN boundaries outward and also amplifies several problems that used to be less visible.

First, the physical-layer margin is tighter. Once the data phase runs faster, harness quality, branching topology, termination, EMI, and transceiver capability become more likely bottlenecks. A layout that barely worked on classic CAN may immediately show error frames, retransmissions, and throughput loss on CAN FD.

Second, the compatibility boundary must be stated clearly. Classic CAN controllers cannot correctly interpret CAN FD frame format, especially once the FDF-related bits come into play. Mixed networks have to consider whether every node supports FD, whether the network allows FD frames, and whether the gateway must isolate protocols. You cannot just think “old devices only do not understand the extra bytes.”

Third, CRC and frame format also need stronger handling. Once the frame gets longer and faster, error detection cannot stay at the classic CAN assumption level. CAN FD extends that part appropriately, but it also means controllers, analysis tools, and test setups must truly support FD rather than only “something that looks like CAN.”

Fourth, a bigger payload does not mean the system design can relax. The 64-byte space gives the upper layer more room, but if the team starts stuffing more coupled state into one frame, version evolution, compatibility, and worst-case latency analysis still get more complex. It solves bandwidth constraints; it does not rescue weak system design.

Where Engineering Misjudgment Most Often Happens

When teams move from classic CAN to CAN FD, the most common misjudgments all come from assuming “it is just a few config changes.”

First, they look only at controller parameters and ignore the whole physical link. CAN FD problems are often not solved by flipping BRS in software. The harness, connectors, branch length, and transceiver choice all inherit new constraints the moment you do that.

Second, they look only at peak rate and ignore actual bus time. CAN FD’s real gain comes from the combination of “more useful payload + faster data phase,” not from raising a nominal bitrate number by itself. In evaluation, you should first check how many frames typical business traffic can eliminate and how much bus time it saves, not how many Mbps the data phase can boast.

Third, they treat compatibility as “it is all CAN wire, so it should all mix.” That is dangerous in the field. Whether mixed operation is allowed depends on the controllers, transceivers, network planning, and gateway policy, not on whether the connector looks similar.

Fourth, they treat CAN FD as an excuse to be sloppy at the application layer. Once the frame gets larger, people often shove all the old split-up state back into one frame. That may make debugging easier, but it makes interface boundaries worse. A steadier approach is still to design messages first by signal freshness, consumption relationship, and evolution needs, then decide whether to use the larger payload.

When CAN FD Is Worth It

To decide whether CAN FD is worth it, first ask whether you are already blocked by classic CAN’s hard boundaries, not whether CAN FD is “new.”

If the system is already showing these symptoms, CAN FD usually has real value:

  • diagnostics, calibration, or log traffic are constantly slowed down by 8-byte fragmentation
  • the same class of state must be reported at high frequency, but fragmentation pushes bus occupancy too high
  • the bandwidth pressure comes from many medium-sized messages rather than a few extremely high-priority tiny frames
  • the team is willing to upgrade controllers, analysis tools, and physical-layer constraints together

On the other hand, if the system mostly uses a small number of short control frames, the load is low, and the link already sits stably around classic CAN, CAN FD may not buy you proportional value. It is an extension for boundary problems, not the default better replacement.

Three Final Judgments

To understand CAN FD, the most important thing is not to memorize a few new bit names. It is to remember three points.

First, CAN FD keeps the classic arbitration model; the main changes are payload capacity and data-phase speed. Second, it really solves the hard boundary of frame length and whole-frame same-speed transmission in classic CAN, not just a bigger number in a config table. Third, the gain and the cost come in pairs: bus time is saved, but physical-layer margin, compatibility, and system-design discipline become more important.

If you use those three judgments when reading a migration plan, captures, and field issues, you will get more engineering value than by memorizing FDF, BRS, or ESI as isolated bit names. You will eventually remember the names. If you do not understand the boundary and tradeoff from the start, the design can drift the wrong way.

Further Reading

  • CAN: go back to classic CAN and restore the first model of bit-level non-destructive arbitration on a shared bus
  • CAN TP: when the message is still too long for one frame, how the transport layer continues with segmentation and flow control