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[ citation needed ] 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.
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. All versions of the CAN protocol are designed with robust collision resolution that depends on signal propagation time, network topology, and the number of units on the bus. To minimize message collision and reduce costly error correction, many CAN bus configurations may limit their data transfer rate well below the bus's theoretical maximum speed.
CAN-FD bus load that was developed by "De Andrade's" equation based on Tindel's equation. [1] [5] [6]
β = τ/ω (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.25 is the factor of the worst case bit stuffing, [7] which means the computation shall be increased by 25%. 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 to 8, 12, 16, 20, 24, 32, 48, 64 Bytes. t_X is the transmission bandwidth for the message header (up to 1 Mbit/s).
β = ( (SOF+ID+r1+IDE+EDL+r0+BRS/2+CRCdel/2 * 1,25)+ACK+DEL+EOF+IFS)/t_x + (〖[(D〗_f+BRS/2+ESI+DLC+CRCdel/2)*1,25]+〖CRC〗_17+5)/t_y)/ω (5)
β = ( (SOF+ID+r1+IDE+EDL+r0+BRS/2+CRCdel/2 * 1,25)+ACK+DEL+EOF+IFS)/t_x + (〖[(D〗_f+BRS/2+ESI+DLC+CRCdel/2 )*1,25]+〖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. [8] In addition, CAN FD is compatible with existing CAN 2.0 networks, allowing the new protocol to function on the same network as classical CAN. [9] CAN FD bit rate can be up to 8 Mbit/s with the right CAN SIC (Signal Improvement Capability) Transceiver and so up to 8 times faster than classical CAN with 1 Mbit/s data phase.
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. [10]
Despite a higher stand-off voltage (37 V), devices for truck applications must also comply with the low capacitance requirement (3.5 pF). [11]
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.
Field name | Length (bits) | Purpose |
---|---|---|
Start-of-frame | 1 | Denotes the start of frame transmission |
Identifier | 11 | A (unique) identifier which also represents the message priority |
Stuff bit | 1 | A bit of the opposite polarity to maintain synchronisation; see CAN Bus#Bit stuffing |
Remote Request Substitution (RRS) | 1 | |
Identifier extension bit (IDE) | 1 | |
FD Format Indicator (FDF) | 1 | Must be recessive(1) for CAN FD frames and dominant (0) for classic CAN. |
Reserved bit in FD frames (res) | 1 | |
Bit Rate Switch (BRS) | 1 | |
Error State Indicator (ESI) | 1 | |
Data length code (DLC) | 4 | Number of bytes of data (0–64 bytes) [lower-alpha 1] |
Data field | 0–512 (0-64 bytes) | Data to be transmitted (length in bytes dictated by DLC field) |
CRC | 15 | Cyclic redundancy check |
CRC delimiter | 1 | Must be recessive (1) |
ACK slot | 1 | Transmitter sends recessive (1) and any receiver can assert a dominant (0) |
ACK delimiter | 1 | Must be recessive (1) |
End-of-frame (EOF) | 7 | Must be recessive (1) |
Inter-frame spacing (IFS) | 3 | Must be recessive (1) |
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) | according to CAN | 0 | size (1..7) | Data | ||||||
CAN-FD specific | 0 | size (0..62) | Data | |||||||
First Frame (FF) | according to CAN | 1 | size (8..4095) | Data | ||||||
CAN-FD specific | 0 | 0 | size (4bytes ~4 GB) | Data | ||||||
Consecutive Frame (CF) | according to CAN | 2 | index (0..15) | Data | ||||||
Flow Control Frame (FC) | according to CAN | 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), used for sending packets of data longer than what fits in a CAN frame.
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]
In 2017, CAN FD was predicted to be used in most vehicles by 2019–2020. [13]
Some of the companies behind the new standard include STMicroelectronics, Infineon, [14] 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 is the 3rd version of the CAN data link layer after classical CAN and CAN FD. CAN FD is compatible to CAN XL.
Asynchronous Transfer Mode (ATM) is a telecommunications standard defined by the American National Standards Institute and International Telecommunication Union Telecommunication Standardization Sector for digital transmission of multiple types of traffic. ATM was developed to meet the needs of the Broadband Integrated Services Digital Network as defined in the late 1980s, and designed to integrate telecommunication networks. It can handle both traditional high-throughput data traffic and real-time, low-latency content such as telephony (voice) and video. ATM provides functionality that uses features of circuit switching and packet switching networks by using asynchronous time-division multiplexing. ATM was seen in the 1990s as a competitor to Ethernet and networks carrying IP traffic as, unlike Ethernet, it was faster and designed with quality-of-service in mind, but it fell out of favor once Ethernet reached speeds of 1 gigabits per second.
Network throughput refers to the rate of message delivery over a communication channel, such as Ethernet or packet radio, in a communication network. The data that these messages contain may be delivered over physical or logical links, or through network nodes. Throughput is usually measured in bits per second, and sometimes in data packets per second or data packets per time slot.
Synchronous Optical Networking (SONET) and Synchronous Digital Hierarchy (SDH) are standardized protocols that transfer multiple digital bit streams synchronously over optical fiber using lasers or highly coherent light from light-emitting diodes (LEDs). At low transmission rates data can also be transferred via an electrical interface. The method was developed to replace the plesiochronous digital hierarchy (PDH) system for transporting large amounts of telephone calls and data traffic over the same fiber without the problems of synchronization.
A controller area network (CAN) is a vehicle bus standard designed to enable efficient communication primarily between electronic control units (ECUs). Originally developed to reduce the complexity and cost of electrical wiring in automobiles through multiplexing, the CAN bus protocol has since been adopted in various other contexts. This broadcast-based, message-oriented protocol ensures data integrity and prioritization through a process called arbitration, allowing the highest priority device to continue transmitting if multiple devices attempt to send data simultaneously, while others back off. Its reliability is enhanced by differential signaling, which mitigates electrical noise. Common versions of the CAN protocol include CAN 2.0, CAN FD, and CAN XL which vary in their data rate capabilities and maximum data payload sizes.
Serial Peripheral Interface (SPI) is a de facto standard for synchronous serial communication, used primarily in embedded systems for short-distance wired communication between integrated circuits.
Modbus or MODBUS is a client/server data communications protocol in the application layer. It was originally designed for use with its programmable logic controllers (PLCs), but has become a de facto standard communication protocol for communication between industrial electronic devices in a wide range of buses and networks.
LIN is a network protocol used for communication between components in modern vehicles. It is a low-cost single-wire serial protocol that supports communications up to 19.2 Kbit/s with a maximum bus length of 40 metres (131.2 ft).
CRC-based framing is a kind of frame synchronization used in Asynchronous Transfer Mode (ATM) and other similar protocols.
In computer networking, jumbo frames are Ethernet frames with more than 1500 bytes of payload, the limit set by the IEEE 802.3 standard. The payload limit for jumbo frames is variable: while 9000 bytes is the most commonly used limit, smaller and larger limits exist. Many Gigabit Ethernet switches and Gigabit Ethernet network interface controllers and some Fast Ethernet switches and Fast Ethernet network interface cards can support jumbo frames.
OBD-II PIDs are codes used to request data from a vehicle, used as a diagnostic tool.
The Simple Sensor Interface (SSI) protocol is a simple communications protocol designed for data transfer between computers or user terminals and smart sensors.
DeviceNet is a network protocol used in the automation industry to interconnect control devices for data exchange. It utilizes the Common Industrial Protocol over a Controller Area Network media layer and defines an application layer to cover a range of device profiles. Typical applications include information exchange, safety devices, and large I/O control networks.
In computer networking, an Ethernet frame is a data link layer protocol data unit and uses the underlying Ethernet physical layer transport mechanisms. In other words, a data unit on an Ethernet link transports an Ethernet frame as its payload.
Society of Automotive Engineers standard SAE J1708 is a standard used for serial communications between ECUs on a heavy duty vehicle and also between a computer and the vehicle. With respect to Open System Interconnection model (OSI), J1708 defines the physical layer. Common higher layer protocols that operate on top of J1708 are SAE J1587 and SAE J1922. The protocol is maintained by SAE International.
In mobile-telephone technology, the UniPro protocol stack follows the architecture of the classical OSI Reference Model. In UniPro, the OSI Physical Layer is split into two sublayers: Layer 1 and Layer 1.5 which abstracts from differences between alternative Layer 1 technologies. The actual physical layer is a separate specification as the various PHY options are reused in other MIPI Alliance specifications.
ARINC 818: Avionics Digital Video Bus (ADVB) is a video interface and protocol standard developed for high bandwidth, low-latency, uncompressed digital video transmission in avionics systems. The standard, which was released in January 2007, has been advanced by ARINC and the aerospace community to meet the stringent needs of high performance digital video. The specification was updated and ARINC 818-2 was released in December 2013, adding a number of new features, including link rates up to 32X fibre channel rates, channel-bonding, switching, field sequential color, bi-directional control and data-only links.
ISO 15765-2, or ISO-TP (Transport Layer), is an international standard for sending data packets over a CAN-Bus. The protocol allows for the transport of messages that exceed the eight byte maximum payload of CAN frames. ISO-TP segments longer messages into multiple frames, adding metadata (CAN-TP Header) that allows the interpretation of individual frames and reassembly into a complete message packet by the recipient. It can carry up to 232-1 (4294967295) bytes of payload per message packet starting from the 2016 version. Prior version were limited to a maximum payload size of 4095 bytes.
can4linux is an open-source CAN Linux-Kernel device driver. Development started in the mid-1990s for the Philips 82C200 CAN controller stand alone chip on an ISA Board AT-CAN-MINI. In 1995 the first version was created to use the CAN bus with Linux for laboratory automation as a project of the Linux Lab Project at FU Berlin.
I3C, also known as SenseWire, is a specification to enable communication between computer chips by defining the electrical connection between the chips and signaling patterns to be used. Short for "Improved Inter Integrated Circuit", the standard defines the electrical connection between the chips to be a two wire, shared (multidrop), serial data bus, one wire (SCL
) being used as a clock to define the sampling times, the other wire (SDA
) being used as a data line whose voltage can be sampled. The standard defines a signalling protocol in which multiple chips can control communication and thereby act as the bus controller.
This article provides information about the communications aspects of Universal Serial Bus (USB): Signaling, Protocols, Transactions. USB is an industry-standard used to specify cables, connectors, and protocols that are used for communication between electronic devices. USB ports and cables are used to connect hardware such as printers, scanners, keyboards, mice, flash drives, external hard drives, joysticks, cameras, monitors, and more to computers of all kinds. USB also supports signaling rates from 1.5 Mbit/s to 80 Gbit/s depending on the version of the standard. The article explains how USB devices transmit and receive data using electrical signals over the physical layer, how they identify themselves and negotiate parameters such as speed and power with the host or other devices using standard protocols such as USB Device Framework and USB Power Delivery, and how they exchange data using packets of different types and formats such as token, data, handshake, and special packets.
{{cite web}}
: CS1 maint: archived copy as title (link)