Welcome to the CAN-bus Wiki project

This is an old revision of the document!


UAVCAN is a lightweight protocol designed for reliable communication in aerospace and robotic applications.

The core design goals listed below help explain the basic UAVCAN concepts and the motivation behind them.

  • Democratic network - There is no master node. All nodes in the network have the same communication rights so that there is no single point of failure.
  • Publish/subscribe or request/response (RPC) exchange semantics - High-level communication mechanisms simplify application design.
  • Nodes can exchange long payloads - Nodes are provided with a simple way to exchange large data structures that cannot fit into a single CAN frame (such as GNSS solutions, 3D vectors, etc.). UAVCAN performs automatic transfer decomposition and reassembly at the protocol level, hiding the related complexity from the application.
  • Support for redundant interfaces and redundant nodes - This is a common requirement for safety-concerned applications.
  • High throughput, low latency communication - Applications that are dependent on high-frequency, hard real-time control loops, require a low-latency, high-throughput communication method.
  • Simple logic, low computational requirements - UAVCAN targets a wide variety of embedded systems, from high-performance embedded on-board computers for intensive data processing (e.g., a high-performance Linux-powered machine) to extremely resource-constrained microcontrollers. The latter imposes severe restrictions on the amount of logic needed to implement the protocol.
  • Common high-level functions should be clearly defined - UAVCAN defines standard services and messages for common high-level functions, such as network discovery, node configuration, node firmware update, node status monitoring (which naturally grows into a vehicle-wide health monitoring), network-wide time synchronization, dynamic node ID allocation (a.k.a. plug-and-play), etc.
  • Open specification and reference implementations - The UAVCAN specification is open and freely available; the reference implementations in popular programming languages are distributed under the terms of the MIT License.

More information at uavcan.org.


QR Code
QR Code can_higher_layer_protocols_uavcan (generated for current page)