CAN Bus Tutorial - What is CAN?
The following is an excerpt from A Comprehensible Controller Area Network by Wilfried Voss.
Controller Area Network (CAN) is a serial network technology that was originally designed for the automotive industry, especially for European cars, but has also become a popular bus in industrial automation and other applications. The CAN bus is primarily used in embedded systems, and as its name implies, is a network technology that provides fast communication among microcontrollers up to real-time requirements, eliminating the need for the much more expensive and complex technology of Dual-Ported RAM.
CAN is a two-wire, half-duplex, high-speed network system that is far superior to conventional serial technologies such as RS232 in regards to functionality and reliability, and yet CAN implementations are more cost-effective. While, for instance, TCP/IP is designed for the transport of large data amounts, CAN is designed for real-time requirements and, with its 1 MBit/sec baud rate, can easily beat a 100 MBit/sec TCP/IP connection when it comes to short reaction times, timely error detection, quick error recovery, and error repair.
Many major semiconductor manufacturers, such as Motorola, Philips, Intel, Infineon, and many more, sell CAN chip, and the fact that millions of them are used in automobiles guarantees low chip prices and long-term availability. Most semiconductor manufacturers who usually integrated a UART with their microprocessor design to support serial communication for RS 232/485, nowadays tend to integrate CAN instead.
The use of CAN in most European passenger cars and the decision by truck and off-road vehicle manufacturers to use CAN led to the availability of CAN chips since 1987. Other high volume markets, such as domestic appliances and industrial control, also increase the CAN sales figures and guarantee future availability.
CAN networks can be used as an embedded communication system for microcontrollers and an open communication system for intelligent devices. Some users, for example, in the field of medical engineering, opted for CAN because they have to meet particularly stringent safety requirements.
Similar requirements had to be considered by manufacturers of other equipment with very high safety or reliability requirements (e.g., robots, lifts, and transportation systems).
Controller Area Network
- Is a high-integrity serial data communications bus for real-time applications
- Is more cost-effective than any other serial bus system, including RS232 and TCP/IP
- Provides better ease of use than any other serial bus system
- Operates at data rates of up to 1 Megabit per second
- Has excellent error detection and fault confinement capabilities
- Has the ability to function in challenging electrical environments
- Is now being used in many other industrial automation and control applications
- Is an international standard: ISO 11898
PiCAN 2 - CAN Bus Interface for Raspberry Pi
This PiCAN2 board provides Controller Area Network (CAN) Bus capabilities for the Raspberry Pi. It uses the Microchip MCP2515 CAN controller with MCP2551 CAN transceiver. Connection are made via DB9 or 3-way screw terminal.
There is an easy-to-install SocketCAN driver, and programming can be accomplished in C or Python.
The PiCAN board is fully compatible with the new Raspberry Pi 4 Model B.