Research Robots Applications Industries Technology About Contact Sales
← Back to Knowledge Base
Robotics Core

Controller Area Network (CAN) Bus

The central nervous system of modern mobile robotics. CAN Bus provides a robust, fault-tolerant communication standard allowing microcontrollers and devices to communicate without a host computer—essential for the reliability of AGVs in noisy industrial environments.

Controller Area Network (CAN) Bus AGV

Core Concepts

Differential Signaling

Uses two wires (CAN High and CAN Low) to transmit data. This differential voltage approach makes the signal highly immune to electromagnetic interference found in factories.

Deterministic Timing

Vital for motion control. Messages have predictable latency, ensuring that motor controllers receive velocity commands exactly when needed for smooth AGV path following.

Priority Arbitration

Non-destructive bitwise arbitration. Lower ID numbers get priority, meaning critical safety messages (like E-Stops) always override standard telemetry data on the bus.

Multi-Master Architecture

Unlike Master-Slave systems, any node on the CAN bus can initiate communication. This reduces the processing load on the main computer and simplifies redundancy.

Built-in Error Handling

Every node checks for errors. If a node detects a transmission issue, it flags it immediately. Faulty nodes can automatically disconnect themselves (Bus Off) to prevent system crashes.

Wiring Simplicity

Drastically reduces cable harness weight and complexity. Instead of running wires from every sensor to a central controller, devices daisy-chain onto a single backbone.

How It Works: The Data Frame

At the physical layer, CAN utilizes a twisted pair of wires terminated with 120-ohm resistors to prevent signal reflection. When the bus is idle, both lines carry the same voltage (recessive). To send a "0" (dominant), the voltage difference is driven apart.

The standard CAN frame consists of an Identifier (11-bit or 29-bit) which determines message content and priority, followed by a control field, data field (up to 8 bytes in Classic CAN), and a CRC field for error checking.

For AGVs, high-level protocols like CANopen or J1939 sit on top of this raw data structure to standardize how motor drivers, battery management systems, and lift actuators talk to one another, making integration seamless.

Technical Diagram

Real-World Applications

Warehouse Logistics (AMRs)

Autonomous Mobile Robots use CAN to synchronize differential drive motors and manage power distribution from the Battery Management System (BMS) in real-time.

Heavy Industrial AGVs

In forklift AGVs handling multi-ton loads, CAN Bus reliably controls hydraulic pumps and reads safety laser scanners (LiDAR) signals without interference from high-voltage motors.

Agricultural Robotics

Using the ISOBUS standard (based on CAN), automated tractors and harvesters communicate with implements to control seeding rates and harvesting speed over long cable runs.

Medical Transport Robots

Hospital delivery robots utilize CANopen for precise elevator integration and controlling secure locking mechanisms for pharmaceutical transport compartments.

Frequently Asked Questions

Why use CAN Bus instead of Ethernet for AGVs?

While Ethernet offers higher bandwidth for cameras and LiDAR, CAN Bus is superior for "low-level" control tasks. It provides deterministic timing, higher noise immunity, and lower hardware costs for connecting motor drivers, encoders, and safety sensors where reliability is more critical than raw data throughput.

What is the maximum cable length for a CAN network?

Cable length is inversely proportional to the baud rate. At 1 Mbit/s (typical for robotics), the bus is limited to about 40 meters. If you drop the speed to 125 kbit/s, you can run cables up to 500 meters, though most AGVs operate comfortably within the high-speed limit.

Why do I need 120 Ohm termination resistors?

Termination resistors are required at the two physical ends of the bus to match the characteristic impedance of the cable. Without them, signals reflect off the wire ends, causing data corruption. A missing resistor is the #1 cause of CAN communication failures.

What is the difference between CAN and CANopen?

CAN is the physical and data link layer (the hardware and the frame structure). CANopen is a high-level application protocol used in automation that defines how the data is organized, including standard profiles for motion control (CiA 402), making it easier to swap motor drivers from different manufacturers.

How many nodes can I connect to a single bus?

Theoretically, the standard allows for a vast number of IDs, but physically, the limit is determined by the transceivers' electrical load. Most standard transceivers support up to 64 or 110 nodes. For a typical mobile robot, 10-20 nodes is common.

What is a "Bus Off" state and how do I fix it?

A node enters "Bus Off" if it detects too many transmission errors, effectively disconnecting itself to protect the rest of the network. To fix it, you must resolve the physical issue (loose wire, noise, bad termination) and then reset the controller's CAN interface.

Can I use a Star topology for wiring my robot?

Ideally, no. CAN is designed for a "Line" or "Daisy-chain" topology with short stubs (under 30cm) to nodes. Star topologies create multiple reflection points that degrade signal quality, leading to intermittent errors, especially at higher speeds.

What is CAN FD (Flexible Data-rate)?

CAN FD is an extension of the original protocol that allows for faster data rates (up to 5-8 Mbps) and larger data payloads (up to 64 bytes vs 8 bytes). It is increasingly used in modern robotics where more bandwidth is needed for complex sensor feedback.

How does ROS / ROS 2 interface with CAN Bus?

Robots usually use a USB-to-CAN adapter (like SocketCAN on Linux) to bridge the hardware. In ROS 2, packages like `ros2_canopen` or `ros2_socketcan` read the CAN frames and publish them as ROS topics, allowing high-level navigation stacks to control hardware transparently.

Is CAN Bus secure against hacking?

Classic CAN has no built-in encryption or authentication; if you have physical access to the wires, you can spoof messages. For critical AGVs, security is handled via upper-layer encryption or by physically isolating the CAN network from external wireless interfaces.

How do I troubleshoot a noisy CAN network?

Use an oscilloscope to view the differential signal. Ensure the voltage difference is correct (2.0V to 3.0V). Check that twisted pair cabling is used, the shield is grounded at only one end (to prevent ground loops), and verify the 60-ohm resistance across CAN_H and CAN_L (two 120-ohm resistors in parallel).

Does CAN Bus support hot-swapping?

Generally, yes. Because CAN is a differential bus without a centralized clock signal for synchronization, you can usually plug a node in while the system is running without crashing the bus, provided the connectors are designed to avoid shorting power lines during insertion.

Ready to implement Controller Area Network (CAN) Bus in your fleet?

Explore Our Robots