Open search

CAN software framework and CANopen stack

Embedded Office established in 2003 offers a CAN software framework as well as a CANopen protocol stack. In addition, the company provides a CANopen configuration tool, which manages the object directory in an XML database and can generate any number of output files through a generator.

THE NUMBER AND THE CONTENT of the files are controlled by the user with the help of templates. In this way, the consistency of the CANopen stack's source code, the respective documentation and the EDS file are guaranteed. The company managed by Thomas Amann and Michael Hillman is specialized in designing mission-critical systems, which are used in aerospace, medical technology and aviation.

The µC/CAN source code library is a framework that enables the creation of CAN protocols independent of the CAN controller. It unburdens the user to have in-depth knowledge about the programming of the CAN chip. The software-related environment is fulfilled with signals, messages and bus configurations. The different abstraction levels can be used independently of each other. The software can be used with any operating system.
The CAN Signal layer allows access to logical signals in one or more CAN messages. Changes in signals can be queried and predefined actions triggered.
The CAN Message layer manages all information necessary for sending a CAN frame. The framework facilitates communication through multiple CAN networks simultaneously. The bus management layer manages the respective buses and distributes the messages to the linked driver layer. The driver layer buffers the outgoing and incoming CAN messages. The hardware dependencies are capsulated in this layer. This layer also enables different CAN controllers to be used at the same time. The drivers are already available for various prevalent CAN controllers.
The provided µC/CANopen protocol stack is based on the above-mentioned framework. Thereby the stack is independent from the micro-controller and can be used with 8-bit, 16-bit or 32-bit processors. The structure of the stack is scalable on multiple levels. On the module level (e.g. Emergency, SDO, Heartbeat, etc.), the number of objects to be managed can be set. If a module is not needed it can also be completely removed from the application. With the individual application signals, it is possible to indicate for each individual signal whether it should be treated as a constant in ROM, as a variable in RAM or as a parameter in ROM and RAM. The stack supports the CANopen protocols CiA 301 and CiA 302 as well as CiA 305 (Layer setting services).