This article was updated on June 6, 2019.
Most discussions about Controller Area Network with Flexible Data Rate (CAN FD) invariably revolve around its most distinctive feature – increased speed. Naturally, this leads to the assumption that if you don’t need the speed, then you don’t need FD. But that is not always true! Join me as I take a look at a couple of the lesser-known features of CAN FD that some applications, such as Flash programming, motor drives, position sensors can still benefit from.
Bigger payload size
CAN FD enables you to increase data payloads 8x, from 8 bytes in classic CAN to 64 bytes. This increase requires only a small overhead in the rest of the frame while still resulting in much better data efficiency overall, as shown in Figure 1. You can split large data packets into fewer frames compared to classic CAN, thereby reducing protocol overhead at the higher layers. In addition, implementing a transport layer protocol reduces the effective size of the data payload as well. While this degrades the efficiency of classic CAN due to its small data size, FD remains largely unaffected.
Figure 1: Comparison of peak data utilization between classic CAN and CAN FD
These combined efficiency improvements in FD are independent of speed and purely a function of data payload size. The advantages build up progressively as the payload size increases and peaks at the maximum payload. So if you have to stick to bit rates <1Mbps but need to transmit payloads more than 8 bytes apiece, give FD a second look.
Improved error handling and CRC checking
Commensurate with the increase in speed and payload lengths, the development organizations (Bosch, International Organization for Standardization) looked at improving robustness as well. To do this, CAN FD deploys higher-order cyclic redundancy check (CRC) polynomial expressions. The data-length field in a CAN frame contains the payload size information, and helps to choose the appropriate CRC algorithm so that the Hamming distance remains unchanged. CRC17 (28 bits) and CRC21 (33 bits) are used for payloads up to 16 bytes or more than 16 bytes, respectively. Payloads up to 8 bytes use the classic CAN algorithm (16 bits).
The difference in the number of CRC bits is significant. The analogy of a longer password being harder to crack is very relevant here; it is significantly harder for a random bit pattern to just happen to coincide with a much longer string of CRC bits, thereby improving the robustness and validity of the calculated CRC value.
The underlying algorithms have also improved significantly. The bit-stuffing implementation is more robust and now incorporates dynamic stuffing, a stuff count parameter and fixed stuff bits in the CRC field of the CAN frame. All of these additions now provide the receiving node with extra information to cross-check and confirm the validity of an incoming frame. Thanks to these enhancements, a few corner cases of two-bit errors (bit flips) that were undetectable in the old standard are now detectable in FD.
What does all of this mean? The probability of an undetected bit error goes down significantly across the board. Applications operating in harsh electrical environments with very high noise (coming from big motor drives in the vicinity, for example) or with very large common-mode shifts stand to benefit from these improvements at the protocol level. Even better, the benefits of the new CRC algorithms are realized at all data rates.
Far from being a one-dimensional speed upgrade, the new CAN FD standard is well-rounded and offers advantages in a wide variety of applications. Check out our entire CAN transceiver portfolio and consider how you can leverage all the benefits of CAN FD in your next system design.
- Learn more about the TCAN1042-Q1 CAN FD transceiver.
- Start designing quickly with the TCAN1042D Controller Area Network (CAN) Evaluation Module.
- For questions, contact us on the TI E2E™ Community Interface forum.