Open search


Real-time CAN/CANopen framework

The OrtCAN (Open RT CAN Framework) is a set of CAN- and CANopen-related software components. It includes the LinCAN driver program for Linux.

The shown TS-CAN1 is a PC/104 daughter card, which runs LinCAN and the Ocera CANopen stack (Photo: Technologic Systems)

OrtCAN is a collection of software modules developed at the Czech Technical University (CTU) of Prague. The development started within the IST-2001 35102 Ocera European research project. The modules have been used all over the world in different academic and production environments.

The project provides a CAN device driver for Linux and other embedded environments to gain access to the CAN/CANopen network. The driver is known as LinCAN. The common interface to access different CAN hardware and the library to build higher layer protocols such as CANopen is implemented in the Virtual/Versatile CAN API library (libVCA). The library can be used with LinCAN and SocketCAN. The CANopen part is suitable as base for implementation of CANopen devices as well as CANopen NMT master nodes. The whole tree of sources includes generic CANopen slave device implementation. The CANopen object dictionary is generated at program startup by specifying which EDS file should be parsed to build index and subindex structures of the object dictionary.

Two GUI/front-end tools for CAN monitoring and interaction are part of the project. One is the Java-based CANmonitor with CAN/CANopen monitoring and device access capabilities. The other is the Qt-based CAN analyzer (qCANanlyzer). The CANmonitor is focused primarily on access and manipulation of CANopen devices objects dictionaries. It uses VCA-based CANblaster daemon for physical CAN access. TCP connection (CPickle protocol) is used for communication between CANmonitor and CANblaster. This allows using the tool even from remote locations. The SDO access state machine is implemented in CANblaster, which allows object dictionary access from multiple tools and control tasks in parallel. The CANmonitor allows even basic listing of raw CAN data frames and simple test frame sending.

The qCANalyzer is a tool developed for monitoring of CAN-based networks. It supports monitoring and sending of test frames. It also supports the CANopen application layer. Tools for browsing and editing EDS files are included. The software tool has been realized by Milos Gajdos (diploma thesis work). The thesis document provides description of the analyzer implementation and basic user manual for the program. In 2012, Ivan Fridrich implemented the CANopen functionality. The program is written in C++ with use of a Qt software development toolkit. The analyzer can be connected to CAN over the TCP/IP CPickle protocol with use of the VCA-based CANblaster daemon or can directly open LinCAN or SocketCAN driver on local system.

All the above-mentioned libraries and tools are updated and improved regularly. Members of the Real-Time Systems group at the DCE department of FEE faculty are the main supporters of these the open-source projects. Syslogic supports LinCAN on its CAN-connectable PCs used for mobile applications, for example.


Publish date

Czech TU Prague