
CAN Bus
A protocol framework that enables easy and clean implementation of CAN communication paths. Optimized for speed, flexibility and size,
and built with high portability in mind.
Return to the µC/OS Overview
Features
Key Features
The μC/OS CAN module reduces development efforts to embed CAN. Developers need only an understanding of signals, messages and bus configurations. Different abstraction layers can be used independently.
The μC/OS CAN module can communicate via one or more CAN buses simultaneously. The bus management layer organizes the CAN buses and distributes messages to different device drivers. The device driver layer buffers the CAN messages to be sent and received. All hardware dependencies are capsulated in this layer. An embedded target can also have multiple, different CAN controllers.
A validation suite provides all documentation necessary to support the use of the μC/OS CAN module in safety-critical systems.
The features of the µC/OS CAN module include:
- Hardware independent
- Signal Scalability – Between 1 bit to 8 bytes
- Sufficiently robust to meet rigorous safety-critical system requirements
Integration with your Application

Application Signal Layer
This layer gives access to logical signals, located in one or more CAN messages. Changes in signals can be checked, and predefined actions executed.
Message Layer
The message layer organizes all information necessary for sending and receiving CAN messages. Identifier, data length code (DLC) and data (and linked signals) are bundled and dedicated to one or more buses.
Protocols
CANopen
The CANopen stack is a scalable solution for limited-resource embedded systems. The stack is delivered in ANSI-C source code and can be compiled with any ANSI-C compliant compiler. The stack is available as CANopen Slave along with a windows application for the automatic source code generation of the object directory and EDS files.
CANopen Slave
CANopen Slave is full featured product designed for CANopen protocol handling. It supports the following features:
- SDO Server support
- SDO Expedited Transfers
- PDO Producer and Consumer with static mapping and communication parameters
- NMT Slave
- NMT Heartbeat Producer
- EMCY Producer
- LSS Slave
- Object Stings with up to 4 characters
- SDO Normal and block transfers
- Dynamic PDO mapping- and communications parameters
- EMCY History
- Dynamic Object Directory
CANopen Config
CANopen Config is a windows application for configuration of the object directory and the EDS-file of all CANopen stack variants. The tool allows the template-based generation of ANSI-C code and EDS files.
Specifications
Memory Footprint
The µC/OS CAN module requires the following amount of RAM on the embedded product.
Maximum ROM Footprint (Unscaled) |
7.5 kB (on MPC565) to 11.7 kB (on MPC5200B) |
RAM usage |
Configuration dependent:
Per Signal |
• 29 bytes (unscaled without padding) |
|
• 11 bytes (scaled without padding) |
Per Message |
• 10 bytes (unscaled without padding) |
|
• 3 bytes (scaled without padding) |
|
Object Directory
The following is a list of objects available for use with Micrium's CANopen Slave.
Component |
Sensor Slave |
Slave |
Master |
SDO Server |
Up to 127 |
Up to 127 |
Up to 127 |
SDO Client |
No |
No |
Up to 127 |
SDO Exp. Transfer |
Yes |
Yes |
Yes |
SDO Normal Transfer |
No |
Yes |
Yes |
SDO Block Transfer |
No |
Yes |
Yes |
PDO Producer |
Up to 512 |
Up to 512 |
Up to 512 |
PDO Consumer |
Up to 512 |
Up to 512 |
Up to 512 |
PDO Mapping |
Static |
Dynamic |
Dynamic |
PDO Com. Parameter |
Static |
Dynamic |
Dynamic |
PDO Remote Transfer |
No |
No |
No |
NMT Slave |
Yes |
Yes |
Yes |
NMT Master |
No |
No |
Yes |
NMT Heartbeat Producer |
Yes |
Yes |
Yes |
NMT Heartbeat Consumer |
No |
No |
Yes |
NMT Node Guarding |
No |
No |
No |
EMCY Producer |
Yes |
Yes |
Yes |
EMCY Consumer |
No |
No |
Yes |
EMCY History Size |
1 |
Up to 250 |
Up to 250 |
LSS Slave |
Yes |
Yes |
Yes |
LSS Master |
No |
No |
Yes |
OD Size |
Unlimited |
|
Unlimited |
OD Entries |
Static |
Static |
Dynamic |
OD String Length |
Up to 4 |
Up to 4 |
Unlimited |
OD Domains |
No |
Yes |
Yes |
Hardware Support
The µC/OS CAN module is supported on a wide range of MCUs.
This table shows the current architectures of our silicon partners that we have CAN device controller support for.
If you don’t see the driver you are looking for please contact our sales department. We can give you the latest information on new driver development.
Manufacturer |
MCU |
Analog Devices |
ADSP BF537 |
Fujitsu |
MB96F340 |
Freescale |
iMX6
Kinetis_Kxx
MCF5485C
MPC5200B
MPC5554 |
Infineon |
XC167CI |
NXP |
LPC21XX
LPC22XX
LPC24XX |
Renesas |
RL78
RX200
RX600
V850E2FX4 |
STMicroelectronics |
STM32F10X
STM32F20X
STM32F4XX
STR91X |
Texas Instruments |
RM48L950
TMS28XX
LM3S9B96 |
Transceiver |
SJA1000 |
Zynq |
ZC7xxx |
Licensing
Licensing Packages That Meet Your Needs
Micrium embedded components are priced as individual modules or as bundled solutions. Check out our licensing page for more information.
Documentation
Micrium's user documentation is available online on the Micrium documentation site.
Contact us today and start working with µC/OS
View the complete site map
© 2019 Silicon Labs. All rights reserved.