emotas CANopen Manager stack
Software package for the development of CiA302 / CiA 303 CANopen devices
The CANopen Master Stack is written in ANSI-C and it is MISRA conform. Using the CANopen Manager Stack by emotas leads to fast and easy development or extension of CANopen conform master applications.
Highlights
- ANSI-C compatible CANopen Manager source code stack
- MISRA-C-conform
- Supports all CANopen services of CiA 301, CiA 302-2 en CiA 302-3
- Layer Setting Service (LSS) included
- Extensions for further standards available
- Available for many CAN-controllers and CPU types
- Comfortable user interface
- Widely configurable and scalable
BootUp Manager (CiA 302-2)
The bootup manager implements the boot up behavior of a CANopen network as defined in CiA 302. The manager can be configured to check for mandatory and optional devices according there device types (0x1000) and identity data (0x1018) and inform the application about all devices.
Configuration Manager (CiA 302-3)
The configuration manager is able to check if the devices are configures as expected and if not, it can start a configuration process automatically. Configurations may be read from DCF files or Concise-DCF files.
Of course all CANopen master services as defined in CiA 301 are included. Generally, the CANopen manager stack should be used if the CANopen network is very dynamic with a varying number and types of CANopen slaves.
Additional extensions
There are optional extension modules for Flying Master, SDO Requesting Device (CiA 302-5), Redundant Networks (CiA 302-6) and Multi-Level-Networking (302-7) available.
Interfacing
A flexible user interface provides functions to evaluate the received data and to use the CANopen Manager services in the network.
A flexible user interface provides functions to evaluate the received data and to use the CANopen FD services in the network. To connect the CANopen Manager Stack to multiple CAN controllers and CPU types, a well-defined driver interface is used. Using this driver interface the CANopen FD stack can also easily be adapted to new CAN controllers or CPU types. Also it is possible to substitute hardware platforms with only little effort.
The CANopen Slave Stack can be used with various Realtime Operating Systems such as ThreadX, FreeRTOS, Keil RTX oder TI-RTOS ,and as well with Linux (SocketCAN, can4linux) or QNX and also with Real time extensions for Windows.
API
Besides the function API there is also an Mailbox API available for an easy use with multiple tasks resp. threads. Messages between application modules and CANopen Manager stack are send via mailboxes instead of function calls. This secures a non-blocking communication. An application may consist of several tasks that use the CANopen Stack in parallel.
CANopen fearures
Overview of the CANopen functions of the Manager stack in comparison with the other emas stacks
Services | Basic Slave | Master/Slave | Manager |
SDO Server | 2 | 128 | 128 |
SDO Client | 128 | 128 | |
SDO expedited/ segmented/block | ●/●/- | ●/●/○ | ●/●/○ |
PDO Producer | 32 | 512 | 512 |
PDO Consumer | 32 | 512 | 512 |
PDO Mapping | static | static/dynamic | static/dynamic |
MPDO Dest Mode | ○ | ○ | |
MPDO Src. Mode | ○ | ○ | |
SYNC Producer | ● | ● | |
SYNC Consumer | ● | ● | ● |
Time Producer | ● | ● | |
Time Consumer | ● | ● | |
Emergency Producer | ● | ● | ● |
Emergency Consumer | 127 | 127 | |
Guarding Master | ● | ||
Guarding Slave | ● | ● | ● |
Bootup Handling | ● | ● | |
Heartbeat Producer | ● | ● | ● |
Heartbeat Consumer | 127 | 127 | |
NMT Master function | ● | ● | |
NMT Slave | ● | ● | ● |
LED CiA-303 | ● | ● | ● |
LSS CiA-305 | ● | ● | ● |
SDO Requester (SRD) CiA-302-5 | ○ | ○ | |
CANopen Router CiA-302-7 | ○ | ○ | |
Master Bootup CiA 302 | ● | ||
Configuration Manager | ● | ||
Flying Master | ○ | ○ | |
Redundancy | ○ | ○ | |
Safety | ○ | ○ | ○ |
Multiline | ○ | ○ | |
C#-API-Wrapper for Windows | ○ | ○ | ○ |
Delphi-API-Wrapper for Windows | ○ | ○ | ○ |
● - Inclusief ○ - Optioneel |
CANopen DeviceDesigner
To save resources the CANopen Manager Stack is widely configurable and scalable. The settings for these features are supported by the graphical configuration tool, CANopen DeviceDesigner, which also allows the creation of the object directory and EDS file using a built-in database. As a consequence, changes can be realized fast and easy.
Using the unique CANopen DeviceDesigner valuable development time is saved.
Easy start up
Many ready-to-run examples are provided to make the start with the CANopen Manager stack as easy as possible. Additionally a user manual, which describes principles and use cases and a reference manual, which describes each API function in detail belongs to the scope of delivery. The stack is constantly tested with the CANopen Conformance Test for compliance with the specification.
Supported processors and IDEs
The following chip manufacturers and their families are supported by the emotasCANopen Manager Stack: ATMEL, BOSCH, Freescale (NXP), Cypress (Spansion/Fujitsu), Infineon, Microchip, NXP, NuvoTon, Renesas, ST Microelectronics, Texas Instruments. Furthermore, the x86- and LINUX-architecture are generically supported.
CANopen Manager Stack code can be generated by compilers or IDE’s by GCC / GNU, Keil, IAR, Crossworks, Atollic True Studio, Tasking and the specific development environments of the various chip manufacturers.
Ask for the specific possibilities of a specific controller / IDE combination.
Licensing model
The CANopen Manager Stack is delivered as source code in the form of a one-time Project or Site License. The distinction between them is as follows:
- Project license
The software (source code) may be used at one defined development location for one defined project. The default support period is 6 months. - Site license
The software (source code) may be used on one development site / location, by various developers at this location, for an unlimited number of products. The standard support period is 24 months.
There are no run-time fees or royalties on the generated object code.
Contents of delivery |
- Source code in C |
- Example code in C |
- Software user license |
- Programming manual |
- CANopen DeviceDesigner (named-user license) |
- Technical support (time limited) |