CAN FD (Controller Area Network Flexible Data-Rate) is a data-communication protocol 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. CAN FD is the second generation of CAN protocol developed by Bosch.[1] The basic idea to overclock part of the frame and to oversize the payload dates back to 1999.[2] Developed in 2011 and released in 2012 by Bosch, CAN FD[3] 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.
As in the classical 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, the pervasiveness of classical 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 classical CAN
The primary difference between the classical CAN (Controller Area Network) and CAN FD is the Flexible Data (FD). Using CAN FD, Electronic Control Units (ECUs) are enabled to dynamically switch between different data rates and longer or shorter messages. Faster data speed and more data capacity enhancements results in several system operational advantages compared to classical CAN. 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.
On a CAN bus, a frame is the basic unit of messaging. For a classic CAN bus, a frame consists of an 11-bit identifier along with an 8-byte message payload. For CAN FD, a frame is labeled with a 29-bit identifier and carries a 64-byte message payload. Frames with 11-bit identifiers are said to be in FD Base Frame Format (FDBF) and frames with 29-bit identifiers are referred to as FD Extended Frame Format (FEFF). While payload data rates of 5-8 Mbit/s are possible in CAN FD, overall data transfer rates depend on the total length of the bus network and the transceivers used to generate and detect bus signals. Additionally, arbitration data rates are limited to 1 Mbit/s to maintain compatibility with classical CAN devices. The CAN FD protocol specification provides improved error detection[4] in received CAN messages and enhanced flexibility of data transfer speeds to account for differences in sensor polling rates. The CAN bus consists of a shared pair of wires onto which electronic sensors, controller units, and ECUs are connected and is used to exchange information between units operating periodically or on demand. The total number of units connected, the length of the CAN bus wires, and additional electromagnetic factors determine the fastest data transfer rate possible for a given CAN bus.
Data frame
The data frame used for actual data transmission have two message formats:
The frame format is as follows: The bit values are described for CAN-LO signal.
- Base frame format: with 11 identifier bits
- Extended frame format: with 29 identifier bits
CAN & CAN FD TP Headers
The above table explains the transfer protocol defined for CAN + CANFD, based on ISO 15765-2 (ISO-TP), used for sending packets of data longer than what fits in a CAN frame.
- if the first byte is 0x00, then it's a CAN-FD SF, and the second byte specifies the size of the data.
- if the first byte is 0x01-0x07, then it's a normal CAN SF with this byte indicating the size of 1-7 bytes data.
- if the first 2 bytes are 0x1000, then it's a CAN-FD FF, and the following 4 bytes specifies the size of data in high byte first order. This virtually enables to send ~4 GB (approx.) data in CAN FD.
- if the first 2 bytes are 0x1008-0x1FFF, then it's a normal CAN FF with a size of 0x008-0xFFF.
CAN Transceiver
CAN FD can use Transceiver for classical CAN and CAN FD. Additionally there are new CAN SiC (Signal improvement Capability) Transceiver with 5 to 8 Mbit/s data rate.[12]
CAN FD in action
In 2017, CAN FD was predicted to be used in most vehicles by 2019–2020.
CAN FD supporters
Some of the companies behind the new standard include STMicroelectronics, Infineon,[13] NXP, Texas Instruments, Kvaser, Daimler and GM.
CAN FD forms a basic data link layer in some higher Layer protocols like CANopen as CANopen FD and J1939 and supported by different companies with protocol stacks.
CAN XL
CAN XL is the 3rd version of the CAN data link layer after classical CAN and CAN FD. CAN FD is compatible to CAN XL.
External links
References
- CAN in Automation (CiA): CAN FD - The basic idea www.can-cia.org, retrieved 2017-01-25^
- G. Cena, A. Valenzano. Overclocking of controller area networks Electronics Letters, 1999^
- Bosch CAN FD Specification Version 1.0 (released April 17th, 2012)