This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)
CAN FD (Controller Area Network Flexible Data-Rate) is a data-communication protocol typically used for broadcasting sensor data and control information on 2 wire interconnections between different parts of electronic instrumentation and control system. This protocol is used in modern high performance vehicles. CAN FD is an extension to the original CAN bus protocol that was specified in ISO 11898-1. The basic idea to overclock part of the frame and to oversize the payload dates back to 1999. Developed in 2011 and released in 2012 by Bosch, CAN FD was developed to meet the need to increase the data transfer rate up to 5 times faster and with larger frame/message sizes for use in modern automotive Electronic Control Units (ECU)s. As in the classic CAN, CAN FD protocol is designed to reliably transmit and receive sensor data, control commands and to detect data errors between electronic sensor devices, controllers and microcontrollers. Although CAN FD was primarily designed for use in high performance vehicle ECUs (Electronic Control Units), the pervasiveness of classic CAN in the different industries will lead into inclusion of this improved data-communication protocol in a variety of other applications as well, such as in electronic systems used in robotics, defense, industrial automation, underwater vehicles, medical equipment, avionics, down-hole drilling sensors, etc.
CAN FD versus classic CAN
The primary difference between the classical CAN (Controller Area Network) and CAN FD is the Flexible Data (FD). Using CAN FD, Electronic Control Unit (ECU)s can dynamically switch to different data-rate and with larger or smaller message sizes. Enhanced features in CAN FD includes the capability to dynamically select and switch to faster or slower data rate, as and when required, and to pack more data within the same CAN frame/message and transport it over the CAN bus/network in less time. Faster data speed and more data capacity enhancements results in several system operational advantages compared to the classic CAN. Using CAN FD, sensor and control data can be sent and received by the ECU (Electronic Control Unit) software much quicker. Commands issued by the executing ECU software reach the output controller much faster. CAN FD is typically used in high performance ECUs of modern vehicles. A modern vehicle can have more than 70 ECUs that use CAN FD to exchange information over the CAN bus when the engine is running or when the vehicle is moving.
In CAN FD, the frame/message ID uses the 29-bits format used in the Extended ID version of classic CAN (Standard ID is 11 bits long). The message payload size has been increased to 64 bytes of data in each CAN-frame / message, compared to only 8-bytes in the classic CAN frame. CAN FD can handle CAN frames/messages with 11-bit ID as well. A frame is a message transmitted as a sequence of binary bit-pattern. In CAN FD, the data rate (i.e. number of bits transmitted per second) is increased to be 5 times faster than the classic CAN (5Mbit/s for the data payload only, the arbitration bit rate is still limited to 1Mbit/s for compatibility). CAN FD protocol specification includes some other enhancements as well, such as better detection of errors in the received CAN message and the executing software flexibility to dynamically select (from a list) and switch to faster or slower data rate transfer, as and when required. On the CAN FD bus, some sensors may operate at slower data rate while others at faster data rate. CAN bus is a shared pair of wires onto which electronic sensors, controller units and ECUs are connected. CAN bus is used for exchanging information between operational units periodically or on demand. The electrical condition and configuration of the CAN bus, i.e. the total number of units connected, the length of the CAN buswires and other electro-magnetic factors determine the fastest data transfer rate possible on that CAN bus. The CAN protocol (and by extension CAN FD) has an excellent collision resolution mechanism that depends on the propagation time of the signal and the network configuration (ring, bus or star), and to, a lesser extent, the number of units on the bus. Therefore, a physically long network may limit the data rate below the theoretical maximum.
β = τ/ω (1) (β = Busload), (τ = time of slow bits plus faster bits), ω (time in seconds of measurement). τ = Ts + Tf (2)
CAN-FD protocol defines five different error detection mechanisms: Two of them work at the bit level, and the other three at the message level. They are:
- (1) Bit Monitoring, - (2) Bit Stuffing, - (3) Frame Check, - (4) Acknowledgement Check and - (5) Cyclic Redundancy Check. There are two options of CRC which should be denoted as for CRC length of 17 (Data Length 0-16 bytes) or CRC length of 21 bits (Data Length 17–64) bytes.
Ts = ([(SOF+ID+r1+IDE+EDL+r0+BRS/2+CRCdel/2)* 1,2]+ACK+DEL+EOF+IFS)/t_x (3)
Tf = ([(D〗_f+BRS/2+ESI+DLC+CRCdel/2)*1,2]+〖CRC〗_17+5)/t_y (4)
where SOF (Start of Frame) + ID (Identifier) + r1 (reserved bit 1) + IDE + EDL(Extended Data Length) + r0(reserved bit 0) + BRS/2 (Bit Rate Switch) + CRCdel/2 (CRC delimiter)= 17 bits; 1.2 is the factor of the worst case bit stuffing, which means the computation shall be increased by 20%. It is considered BRS and CRCdel divided by 2, because they are exactly in the shift of bit rate transition. The ACK (Acknowledge) + DEL (Delimiter) + EOF (End-of-Frame) + IFS (Interframe Spacing) = 12 bits without bit stuffing. The CAN-FD payload size may be 0, 8, 12, 16, 20, 24, 32, 48, 64 Bytes. t_X is the transmission bandwidth for the message header (up to 1 Mbit/s).
- For data < 16 Bytes
β = ( (SOF+ID+r1+IDE+EDL+r0+BRS/2+CRCdel/2 * 1,2)+ACK+DEL+EOF+IFS)/t_x + (〖[(D〗_f+BRS/2+ESI+DLC+CRCdel/2)*1,2]+〖CRC〗_17+5)/t_y)/ω (5)
- For data >= 16 Bytes
β = ( (SOF+ID+r1+IDE+EDL+r0+BRS/2+CRCdel/2 * 1,2)+ACK+DEL+EOF+IFS)/t_x + (〖[(D〗_f+BRS/2+ESI+DLC+CRCdel/2 )*1,2]+〖CRC〗_21+6)/t_y )/ω (6)
CAN FD also has decreased the number of undetected errors through increases in the performance of the CRC-algorithm. In addition, CAN FD is compatible with existing CAN 2.0 networks, allowing the new protocol to function on the same network as classic CAN. CAN FD has been estimated to transmit data up to 30 times faster than classic CAN.
Due to higher communication speed, CAN FD constraints are tougher in terms of line parasitic capacitance. Therefore, all components on the line have seen their "capacitance" budget reduced compared to regular CAN bus. That is the reason why semiconductor suppliers have released new components approved by car makers. This approval reflects the need for interoperability between all CAN FD systems. Indeed, selected ESD protection components are compatible with all transceivers (CAN or CAN FD) and withstand ISO7637-3.
Despite a higher stand-off voltage (37 V), devices for truck applications must also comply with the low capacitance requirement (3.5 pF).
CAN & CAN FD TP Headers
|7 .. 4 (byte 0)||3 .. 0 (byte 0)||15 .. 8 (byte 1)||23..16 (byte 2)||(byte 3)||(byte 4)||(byte 5)||(byte 6)||....|
|Single Frame (SF)||0||size (0..7)||Data|
|First Frame (FF)||1||size (8..4095)||Data|
|0||00||size (4bytes ~4GB)||Data|
|Consecutive Frame (CF)||2||index (0..15)||Data|
|Flow Control Frame (FC)||3||FC flag (0,1,2)||Block size||ST||Unused|
The above table explains the transfer protocol defined for CAN + CANFD, based on ISO 15765-2 (ISO-TP).
In specific to CANFD,
- if the first byte of SF=0, then second byte specifies the size of the data.
- if the first 2 bytes of FF=0x10 00, then following 4 bytes specifies the size of data in high byte first order. This virtually enables to send ~4GB (approx.) data in CAN FD.
CAN FD in action
In 2017, CAN FD was predicted to be used in most vehicles by 2019–2020.
CAN FD supporters
- "CAN in Automation (CiA): CAN FD - The basic idea". www.can-cia.org. Retrieved 2017-01-25.
- Cena, G.; Valenzano, A. (1999). "Overclocking of controller area networks". Electronics Letters. 35 (22): 1923. doi:10.1049/el:19991289.
- "Bosch CAN FD Specification Version 1.0 (released April 17th, 2012)" (PDF). Archived from the original (PDF) on 2015-12-11. Retrieved 2019-01-02.
- de Andrade, R.; Hodel, K. N.; Justo, J. F.; Laganá, A. M.; Santos, M. M.; Gu, Z. (2018). "Analytical and Experimental Performance Evaluations of CAN-FD Bus". IEEE Access. 6: 21287–21295. doi:10.1109/ACCESS.2018.2826522..
- "High speed CAN FD bus is coming to cars, says Microchip". Electronics Weekly. 2015-10-26. Retrieved 2017-01-26.
- "CAN bus ESD protection for 12V systems". STMicroelectronics-ESDCAN03-2BWY.
- "CAN bus ESD protection for 24V systems". STMicroelectronics-ESDCAN05-2BWY.
- "CAN 2020: The future of CAN technology". www.can-cia.org. Retrieved 2017-01-26.
- Kelling, Ursula (April 2014). "Infineon Microcontrollers" (PDF). CAN Newsletter Online. Retrieved June 2, 2019.
- Comparing CAN FD with Classical CAN
- CAN FD: From Theory to Practice
- CAN Bus Protection : Protect What Protects You
- Linux and ISO 15765-2 with CAN FD - Details of how (payload) data length differs between CAN and CANFD
- Linux and ISO 15765-2 with CAN FD 15th international CAN Conference 2015
- CAN FD Explained