CANopen Master & Slave Stack (CiA 301)
CANopen Master & Slave Stack (SO-877) is a CANopen protocol stack providing the full functionality of the CiA 301 specification as ANSI-C source code. It lets you implement full-featured CANopen master/slave devices — including NMT master (network manager), LSS master (Layer Settings Service), and SDO client — quickly while staying standards-compliant. Its conformance has been proven in many industrial applications, and its developer, SYS TEC electronic, is a CiA member that has been developing CANopen continuously for more than 25 years.
MIDDLEWARE · Middleware / protocol stacksOverview
CANopen Master & Slave Stack (SO-877) is a CANopen protocol stack providing the full functionality of the CiA 301 specification as ANSI-C source code. It lets you implement full-featured CANopen master/slave devices — including NMT master (network manager), LSS master (Layer Settings Service), and SDO client — quickly while staying standards-compliant. Its conformance has been proven in many industrial applications, and its developer, SYS TEC electronic, is a CiA member that has been developing CANopen continuously for more than 25 years.
For performance, an event-driven design that notifies events directly up to application level and a “zero-copy” strategy make it ideal for real-time applications and RTOSes. The source is modular and scalable, and many configuration options let you optimize speed and memory consumption. A structured API, sample programs, target-specific demo projects, and thorough documentation support step-by-step adoption.
Platform support is broad, from bare metal to FreeRTOS, SafeRTOS, ThreadX, Keil-RTX, SEGGER embOS, Linux, and Windows. Demo projects are provided for major 8/16/32-bit MCUs (all STM32 series, NXP S32K1xx (CAN FD), TI, Renesas Synergy/RX, Infineon XMC/TriCore/T2G, Microchip PIC32/dsPIC33, etc.) (V5.71 support table). SYS TEC can adapt it to unsupported processors and port CAN drivers within a few days.
Licensing is buy-out: no product royalties or runtime licenses. One year of free support and updates, plus a toolchain for testing and network configuration, is included (the Value Pack “SO-877-VP” also includes the full version of CANopen DeviceExplorer, the Process Data Linker, a USB-CANmodul1, and ODBuilderII). Add-ons such as CiA 402 and CiA 304 SRDO address industry-specific requirements.
Key specifications
| Standard | CiA 301 (NMT master/slave, LSS master, SDO client) |
|---|---|
| Delivery | ANSI-C source code (buy-out / per site) |
| Supported OS | Bare metal / Linux (SocketCAN) / Windows / Windows Embedded Compact 2013 / FreeRTOS / SafeRTOS / ThreadX / SEGGER embOS / Keil RTX5 / PxROS |
| Supported functions | NMT Master、LSS Master、SDO Client |
| License | No runtime fees for product development |
| Design | Zero-copy implementation, modular structure (CCM central layer) |
ANSI C source code for implementing CiA 301-compliant CANopen master/slave functions in embedded devices. Develop sensors, I/O, power supplies, controllers, HMIs, drives, and more on your own MCU/SoC. Hardware-dependent parts are separated for high portability; a site-specific company license means no runtime royalties, and 12 months of updates and support are included.
Positive ONE Group supports you in Japanese, from product selection and quotes through to technical support during deployment, and proposes the optimal configuration for your target MCU, OS, quantity, and application.
Standards
| Profile | CiA 301 v4.2 (CANopen application layer) |
|---|---|
| Physical layer | CAN 2.0A/B (Classical CAN) |
| Bit rate | 10 kbit/s – 1 Mbit/s (CiA 301 standard bit rates) |
Stack functions (full CiA 301 implementation)
| PDO | 512 receive / 512 transmit. Static, dynamic, and bit-wise mapping, MPDO (add-on) |
|---|---|
| SDO | 127 servers / 127 clients. Segmented and block transfer, SRD client |
| NMT / monitoring | NMT slave state machine, boot-up, node/error control, heartbeat (producer + 127 consumers), life/node guarding |
| Sync / emergency | SYNC and EMCY producers/consumers, time stamp (high-resolution supported) |
| Other | LSS master/slave, parameter store/restore, CiA 303-3, multi-instance, CAN driver source included, event-driven API |
Supported platforms (from the V5.71 support table)
| 8/16bit | Infineon, Philips, 80x51, Atmel AVR, Silabs / Renesas, Fujitsu, Microchip, TI |
|---|---|
| 32bit | STM32 F0–H7/G4/H5 (bxCAN/FDCAN), NXP S32K1xx (CAN FD), LPC, Kinetis, MPC56xx, TI TMS570/Hercules/TMS320/AM335x, Renesas Synergy (ThreadX), RX72, Infineon XMC4000, TriCore, T2G, Microchip PIC32/dsPIC33, GigaDevice GD32, x86/x64, Raspberry Pi (SocketCAN) |
| RTOS / OS | Bare metal, Linux (SocketCAN), Windows, Windows Embedded Compact 2013, FreeRTOS, SafeRTOS, ThreadX, SEGGER embOS, Keil RTX5, PxROS (Supported Targets V5.71) |
| External CAN controllers | SJA1000, TouCAN, TwinCAN, 82527, MCP2515, TDRV011 |
| Unsupported targets | SYS TEC adaptation service (driver porting and demo creation within a few days) |
| Support table (PDF) | PDFDownload the list of supported targetsSupport table for the demo projects supplied as standard with the SO-877 source code (CANopen Stack V5.71)↓ |
Add-on packages
| CiA 402 (SO-1081) | Drive and motion control profile for servo controllers, frequency converters, etc. |
|---|---|
| MPDO (SO-1066) | CiA 301 multiplex PDO |
| SRDO / CiA 304 (SO-1059) | Development of safety-relevant CANopen devices (SRDO) |
| Dynamic OD (SO-1074) | Runtime changes to the object dictionary (CiA 302) |
| SDO Gateway (SO-1078) | SDO transfer between networks |
| Flying Master (SO-1114) | Dynamic master determination in multi-master systems (CiA 302; for the SO-1063 CANopen Manager) |
| Bootloader (SO-1089) | Binary transfer and execution over CANopen (CiA 302) |
Basics of CANopen Safety (CiA 304 / SRDO)
| Standard | CiA 301 (NMT master/slave, LSS master, SDO client) |
|---|---|
| SRDO structure | 1 SRDO = 2 CAN messages. The data is sent redundantly, bit-inverted in the second message; the IDs are an odd/even pair |
| Receive monitoring | Monitors SCT (Safeguard Cycle Time) and SRVT (interval between the two messages). An invalid SRDO leads to the safe state |
| Principle | Black channel + safety communication layer (SCL) to control corruption, loss, delay, masquerade, and more |
| Implementation | Supported by the SRDO add-on (SO-1059). Design guidance for IEC 61508 1oo1 (lockstep) / 1oo2 (dual-channel) architectures |
Supported services
| PDO | TPDO/RPDO (event, synchronous, inhibit / event timer) |
|---|---|
| SDO | Expedited / segmented / block transfer |
| NMT | Slave (state machine) / heartbeat, node guarding |
| Special functions | EMCY (emergency), SYNC, TIME, LSS (CiA 305) |
| Object dictionary | EDS/XDD/DCF support, static and dynamic configuration |
Implementation and supported OS
| Implementation language | ANSI-C source code (HAL separated, zero-copy design) |
|---|---|
| Bare metal | Supported (central CCM layer + driver layer) |
| RTOS | FreeRTOS / SafeRTOS / ThreadX / Keil-RTX / SEGGER embOS |
| OS | Linux / Windows |
| CAN channels | Multi-channel configurations supported |
Delivery and licensing
| Delivery | Source code (buy-out / site license) |
|---|---|
| Runtime fees | None (independent of the number of products shipped) |
| Tools | Diagnose and test with CANopen DeviceExplorer |
Communication stack structure and supported specifications
A communication stack consists of three layers: driver layer → stack layer → related-functions layer. Below are this product's position in the stack and the specifications it supports.
Device (slave) stack. Implements OD / PDO / SDO / NMT / EMCY.
Functions by CiA specification number — what it can and cannot do
CANopen is based on CiA 301 (the communication profile). Numbered additional functions and device profiles build on top of it. Which numbers a product supports determines what it can do.
| CiA no. | Features | With support | Constraints / what it cannot do |
|---|---|---|---|
| CiA 301 ✓ supported | Application layer and communication profile (basic) | OD (object dictionary), PDO, SDO, NMT, SYNC, EMCY, TIME, heartbeat. SDO block transfer, MPDO (v4.x). This is the foundation for everything else. | On its own, it does not define device functions such as I/O or motion (a separate profile is required). |
| CiA 1301 | CANopen FD application layer | CANopen on CAN FD. PDOs up to 64 bytes, FD-capable SDO. Large, fast payloads. | Not directly interoperable with Classic CAN nodes (FD-capable devices only). |
| CiA 302 | Additional functions: manager, configuration, boot | NMT master / flying master, configuration manager, SDO manager (dynamic SDO), program download, multi-level networking. | Does not include device-side I/O definitions (those belong to device profiles). |
| CiA 305 | LSS (Layer Setting Services) | Assigns node IDs to unconfigured devices and changes bit rates in two frames. Fastscan identifies unconfigured devices. Essential for plug-and-play configuration. | LSS configuration assumes a master-side implementation. A slave alone cannot set its own ID. |
| CiA 306 / 311 | EDS / DCF / XDD (electronic data sheets) | OD descriptions of devices (CiA 306 = INI-format EDS, CiA 311 = XML-format XDD / ISO 15745). Required for conformance testing; enables automatic configuration by tools. | A description file, not executable code. |
| CiA 401 | Device profile: generic I/O | Standardizes digital/analog I/O (up to 64 digital and 12 analog points; 512 in the FD version). Devices with the same profile are interoperable and interchangeable. | Motion control and sensor-specific functions are out of scope (402/404). |
| CiA 402 | Device profile: motion / drives | Control of servos, inverters, and steppers (FSA state machine, operating modes, PDO/SDO). Compliant with IEC 61800-7-201/301. 64-byte PDOs in the FD version. | Many optional functions; full compatibility between vendors is not guaranteed (check the EDS). |
| CiA 404 / 417 / 447… | Other device / application profiles | Industry-specific standard functions such as 404 = measuring / closed-loop control, 417 = elevators, 447 = special-purpose vehicles, and 422 = refuse collection vehicles. | Not suitable outside the target industry. Implementation requires a product that supports the relevant profile. |
Main uses
- Sensors, actuators, and I/O for industrial automation
- Volume production of CANopen master/slave devices
- Network diagnostics, configuration, and service
Benefits
- No runtime license fees
- Highly efficient with zero-copy implementation and modular structure
- Easy to port to new targets (hardware layer separated)
Environment
- Supported OS: bare metal / Linux (SocketCAN) / Windows / Windows Embedded Compact 2013 / FreeRTOS / SafeRTOS / ThreadX / SEGGER embOS / Keil RTX5 / PxROS
- Standards: CiA 301 (device) / CiA 302 (manager)
- Delivery: ANSI-C source (buy-out, per site)
Frequently asked questions
What is CANopen Master & Slave Stack (SO-877)?
How are license fees charged?
What if the MCU we want to use is not in the support table?
Solutions that include this product
This product is part of the following configuration combining several products. See each solution page for its place in the overall configuration.
- Industrial network (CANopen) device development— Role of this product: coreCiA 301 / 302 — device implementation × master implementation × analysis × production programming
Environment and specifications
| Supported MCUs | Examples from Supported Targets V5.71: STM32 (F0/F1/F2/F3/F4/F7/G4/H5/H7), NXP S32K1xx, LPC17xx/18xx/2xxx, Kinetis, MPC56xx, Infineon XMC4xxx, TriCore TC17xx, XC22xx, Traveo T2G, Microchip PIC32MX/MK/MZ, dsPIC33, TI TMS570, Hercules RM4x, C2000 (TMS320F28x), Stellaris, Renesas RX72, Synergy, GigaDevice GD32F4, Linux (x86/x64, Raspberry Pi 3, AM335x), Windows (x86/x64) |
|---|---|
| Development environments | Environments with demos: Keil MDK-ARM, IAR Embedded Workbench, STM32CubeIDE, S32 Design Studio, MCUXpresso, Code Composer Studio, e² studio, MPLAB X, Tasking, GCC (Eclipse), Microsoft Visual Studio |
| CAN I/F | On-chip CAN controllers of each MCU (bxCAN, FDCAN, FlexCAN, MultiCAN, DCAN, ECAN, etc.), Linux SocketCAN; on Windows, SYS TEC USB-CANmodul, PEAK, Vector, Kvaser, IXXAT, etc. |
| Included | Stack source code, ODBuilderII, documentation, site-specific company license (no runtime fees), 12 months of updates/support |
| Options | CiA 304 safety protocol extension, CiA 402 drive profile (add-ons) |
SYS TEC electronic middleware and protocol stack products
- CANopen Bootloader Add-on
- CANopen CiA 304 SRDO Add-on (safety-relevant communication)
- CANopen CiA 402 Add-on (motion control)
- CANopen Manager Source Code Value Pack
- CANopen Source Code Value Pack
- Dynamic Object Dictionary Add-on
- Flying Master Add-on
- MPDO Add-on (multiplex PDO)
- SDO Gateway Add-on
- sysWORXX CANopen Chip CoC-100
Contact
Tell us your target MCU, quantity, and safety requirements, and we will propose the best configuration with a rough estimate.
Manufacturer of CANopen stacks, CAN interfaces, and I/O modules
See all SYS TEC electronic products →
