Micrium

µC/CAN Overview

Introduction

µC/CAN is a CAN protocol framework, which enables easy and clean implementation of CAN communication paths. µC/CAN is a source code library optimized for speed, flexibility and size. High portability and clean documentation was focused during development.

Architecture

The goal of µC/CAN is to reduce the development effort of a developer wanting to embed CAN. The developer just needs to understand signals, messages and bus configurations.
The different abstraction layers can be used independently.

Application Signal

This layer gives access to logical signals, which are located in one or more CAN messages. Changes of signals can be checked and predefined actions can be executed.

Message

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.

Bus Management

µC/CAN can communicate via one or more CAN buses at the same time. The bus management layer organizes the CAN buses and distributes the messages to the different device drivers.

Device Driver Layer

The device driver layer buffers CAN messages to be sent and received. All hardware dependencies are capsulated in this layer. Your embedded target can also have multiple, different CAN controllers.

Protocols

µC/CAN enables the easy and quick implementation of custom CAN protocols such as CANopen.

CANopen I (Small Sensor Slave)

A CANopen stack with the listed protocol components is available according to the CiA standard DS-301 V4.02.

Component

Description

SDO Server

Up to 127

SDO Client

No

ID configuration per SDO

Yes

PDO Producer

Up to 127

PDO Consumer

Up to 127

PDO Mapping

Dynamic

NMT Slave

Yes

NMT Master

No

NMT Heartbeat Producer

Yes

NMT Node Guarding

No

EMCY Producer

Yes

EMCY Consumer

No

LSS Slave

Yes

LSS Master

No

Driver

Device drivers are available to support different CAN controllers. Drivers added on a regular basis. Please consult our web site.

Driver

Description

Atmega

AT90CAN128

Fujistu

MB90F3xx

Freescale

M68376,
MPC565,
MPC5554,        (Q4/2007)
MPC5200B,       (Q3/2007)
S12XD,             (Q2/2007)
S12XE              (Q2/2007)

Infineon

XC167,
TriCore 1796     (Q4/2007)

NXP

LPC2xxx,
SJA1000

ST

STR73x (Q2/2007)

Texas DSP

TMS240x,
TMS28xx

Windows

KVaser CAN Devices