CAN FD
CAN FD 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. 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 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 however, 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 and CAN FD is the Flexible Data. Using CAN FD, Electronic Control Unit 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 software much quicker. Commands issued by the executing ECU software reaches the output controller must 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 has been increased to 29-bits compared to only 11-bits in the classic CAN. 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 is increased to be 5 times faster than the classic CAN. 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 and switch to faster or slower data rate transfer, as and when required. Some sensors on the CAN BUS operates at slower data rate and 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 Bus wires and other electro-magnetic factors determines the fastest data transfer rate possible on that CAN Bus. This because when units are connected to a CAN Bus, it changes the electrical condition of the CAN Bus somewhat. The change may result in limiting the CAN FD protocol from achieving the maximum theoretical data transfer rate.
CAN-FD Busload that was developed by "De Andrade's" equation based on Tindel's equation.
β = τ/ω , , ω.
τ = Ts + Tf
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: Bit Monitoring, Bit Stuffing, Frame Check, Acknowledgement Check and Cyclic Redundancy Check. There are two options of CRC which should be denoted as for CRC length of 17 bits or for CRC length of 21 bits.
Ts = /t_x
Tf = /t_y
where SOF + ID + r1 + IDE + EDL + r0 + BRS/2 + CRCdel/2 = 17 bits, 1.2 is the factor of the worst case bit stuffing, which means it is necessary to divide by 5. It is considered BRS and CRCdel divided by 2, because they are exactly in the shift of bit rate transition. The ACK + DEL + EOF + IFS = 12 bits without bit stuffing. The CAN-FD payload size may be 0, 8, 12, 16, 20, 24, 32, 36, 48, 64 Bytes. t_X is the transmission bandwidth for the message header.
For data < 16 Bytes
β = /t_x + /t_y)/ω
For data >= 16 Bytes
β= /t_x + /t_y )/ω
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 and withstand ISO7637-3.
Despite a higher stand-off voltage, devices for truck applications must also comply with the low capacitance requirement.
CAN & CAN FD TP Headers
The above table explains the transfer protocol defined for CAN + CANFD.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 data in CAN FD.
CAN FD in action