Open search

Embedded World 2016

Developing CAN FD applications

At the fair, Cast showcased its CAN-CTRL CAN/CAN FD controller core. It offers TTCAN, ISO and non-ISO CAN FD, and J1939 support. Also presented was CANFD-RD, a reference design for a CAN node subsystem based on CAN-CTRL.

Block Diagram of the CAN-CTRL (Photo: Cast)

The CAN-CTRL CAN/CAN FD controller core implements a CAN controller that performs serial communication according to CAN and CAN FD specifications. It supports the original Bosch protocol and ISO specifications as defined in ISO 1989 — including time-triggered operation (TTCAN) as specified in ISO 19898-4 — and is also optimized to support the Autosar and J1939 specifications.

The CAN protocol uses a multi-master bus configuration for the transfer of frames between nodes of the network and manages error handling with no burden on the host processor. The core enables the user to set up economic and reliable links between various components. It appears as a memory-mapped I/O device to the host processor, which accesses the CAN core to control the transmission or reception of frames.

The CAN core features programmable interrupts, data and bit rates, a configurable number of independently programmable acceptance filters, and a generic processor interface or optionally an AMBA APB or AHB-Lite interface. It implements a flexible buffering scheme, allowing fine-tuning of the core size to satisfy the requirements of each specific application.

The number of receive buffers is synthesis-time configurable. Two types of transmit buffers are implemented: a high-priority primary transmit buffer (PTB) and a lower-priority secondary transmit buffer (STB). The PTB can store one message, while the number of included buffer slots for the STB is synthesis-time configurable from 0 slots to 16 slots. An optional wrapper instantiating multiple CAN controller cores easies integration in cases where multiple bus-nodes need to be controlled by the same host processor.

The core implements functionality similar to the Philips SJA1000 by NXP which works with PeliCAN mode extensions, providing error analysis, diagnosis, and system maintenance. This CAN core was the first soft core to undergo rigorous testing at the CANopen Plug Fest (in March 2015) by CAN in Automation, and is scheduled for a second round at Detroit and Nuremberg Plug Fests in April and June respectively. Subsystem boards with the CAN-CTRL core and transceivers from ON Semiconductor and Microchip will be used in these strenuous evaluations.

Block Diagram of the CANFD-RD (Photo: Cast)

Design verification for CAN-CTRL Core customers is facilitated through a partnership with verification IP provider Avery Design Systems. A ready-to-run reference design board and other development aids are also available from Cast to further shorten the time to market for CAN FD based systems.


The CAN-CTRL core can be integrated in devices that use CAN or higher-layer CAN-based communication protocols. In addition to traditional automotive applications, such devices are used in industrial (e.g. the CANopen and Devicenet protocols), aviation (e,g. the Arinc-825 and CANaerospace protocols), marine (e.g. the NMEA 2000 protocol) and other applications.

The CANFD-RD is a complete reference design for a CAN node subsystem based on the CAN-CTRL. It can be used for evaluating the CAN-CTRL core, and it enables the rapid development of CAN FD applications or device prototypes. Within the design, either a 32-bit BA22-DE or an 8-bit R8051XC2 micro-controller core controls the CAN-CTRL core. The MCU, CΑΝ controller, and peripherals are hosted on the Talos FPGA evaluation kit. A daughter card connects the design to a physical CAN network using an NCV7340-4 or NCV7351 CAN transceiver from On Semiconductor. The subsystem receives commands from and reports status to a host PC via a UART.

The reference design is delivered with low-level drivers and a sample application in source code for the embedded CPU. Users can extend the provided sample application or develop their own using just the low-level drivers. User application development requires a debug-pod (optionally delivered with the reference design) and a software IDE for the processor (available from Cast for the BA22-DE, and from Keil, or IAR Systems for the R8051XC2). User applications can exploit the available SPI, I2C, UART, and GPIO interfaces to communicate with other devices, such as sensors or actuators.


Publish date

Embedded World