Chinese Version

CANopen Protocol Software

-Software Package for the Development of CANopen Slave and simple CANopen Master Devices

Highlights

  • Comprehensive range of functions based on the current CANopen specification DS301 version 4.02
  • Support of status displays according to DR303-3 CANopen indicator specification
  • Enables quick and easy development of CANopen devices (slave and master)
  • Modular software structure with comprehensive configuration and scaling possibilities
  • High efficiency with minimum resource requirements
  • "Zero copy" implementation
  • Clearly structured, simple programming interface for connection of the application program
  • Easy portability to alternative microcontrollers
  • Uniform interface between protocol stack and CAN driver, independent of the architecture of the CAN controller used

OVERVIEW OF FUNCTIONS

The CANopen protocol software contains all functions required for the implementation of CANopen slave or simple CANopen master devices according to the CANopen specification DS301, version 4.02.

Scalability & Hardare-Specific Adaptation

To ensure a high degree of scalability and adaptability, the software package is configured via central files. A configuration file makes it possible to adapt the CANopen functionality provided by the protocol optimally to the given application and thus to use the available resources effectively. This enables extremely resource-saving implementation. The core functionality of the CANopen software is implemented independent of the architecture of the individual CAN controller, the actual CAN driver is fully encapsulated in a separate module. Adaptation to the microcontroller or processor type used (e.g. interrupts, timer) also occurs centrally in a file.

Object Dictionary & Programming Interface

The object dictionary is the interface between the application and communication. Each object dictionary entry can be directly allocated a reference to a variable with application data. PDOs and SDOs access these application variables directly. Therefore no changes to an existing application are necessary in order to integrate a CANopen protocol stack. User-specific call-back functions can be connected to each application object and enable an event-controlled signaling to the application when these objects are accessed. This mechanism allows direct, application-specific reaction to changes in the application data triggered on the bus-side. In addition, the possibility of saving and restoring configured data is supported.

Process- (PDO) and Service-Data-Objects (SDO)

The CANopen protocol software supports the PDO transfer types asynchronous (with or without event timer), synchronous (cyclic and acyclic) and on request (RTR). Depending on the configuration used, PDO-mapping can be implemented statically or dynamically according to the reaction speed required or available resources. In addition, the protocol software supports multiplex PDOs including scanner and dispatcher lists. Byte granularity is provided as standard, bit-wise granularity is available as an option. Dummy mapping is possible as well as variable inhibit times. Objects can be entered in several PDOs simultaneously. With SDOs, the transfer types expedited and non-expedited (segmented) as well as block transfer are supported. The application can check the data written by SDO for consistency before the target variables are overwritten and abort the SDO transfer if necessary.

Network Management

The CANopen software supports the bootup defined in DS301 with all network services including node guarding with or without life guarding (master monitoring) and heartbeat mechanism with producer moniroting.

Identifier Allocation

Identifiers are allocated by default according to the predefined I/O connection set but can also be assigned altering the relevant object dictionary entries.

Master Functionality

Mainly in smaller CANopen systems, often only a simple master device to start the system is required instead of a full CANopen master/manager. Therefore this CANopen software package also enables the implementation of a simple CANopen master with its own object dictionary. A CANopen device implemented on this basis can work in a system either as a slave or as a master and be configured via the object dictionary with the aid of configuration tools. However, the software package only provides the basic functions for the NMT services. Functionality such as the control of the system bootup, checking whether the correct devices are available, automatic download of configuration data or also specific reaction to node failures are not included and must be programmed by the user.

The software package "CANopen Master/Manager software" is the approproate basis for the implementation of full or more complex CANopen master/manager devices or also for the development of programmable devices and controls (SPC).

Optional Additional Functions

To supplement the CANopen standard software, the following additional functions are availabe:

  • Flying master, startup-capable device or NMT-master-capable device according to DS302
  • SDO manager (SDM), SDO requesting device (SRD) according to DS302
  • LSS functions as master and slave according to DSP305
  • PDO mapping with bit-wise granularity

Implementation Work

The CANopen protocol software is delivered as a hardware-independent C-source code and is always tested with the latest CANopen conformance test software of CiA.

The documentation and sample programs supplied with the sofeware enables a quick start with the CANopen software. Project files are supplied with the sample programs that allow direct integration in the relevant development environments of the compiler manufacturers. All sample programs can be run directly on a reference platform (evaluation board of the CPU manufacturer or IXXAT interface board).

Adaptation to the target hardware can normally be carried out in a few days. The sample programs facilitate implementation of an own application.

Available Versions

The CANopen protocol software is available in three different packages with different ranges of functions: slave S, slave D and master/slave. The master/ slave package has the complete range of functions and can be used for the development of both pure slave devices and simple master devices. The range of fucntions of each package is describled in the following table:

Functionality CANopen Software Package

Function Slave S Slave D Master/Slave
Max. number of server SDOs 127 127 127
Max. number of client SDOs - - 127
Max.number of PDOs (Tx/Rx) 255 255 255
Dynamic PDO mapping - x x
SYNC Object C C P/C
EMERGENCY Object P P P/C
TIME STAMP Object C C P/C
NMT functions S S M/S
Node guarding/heartbeat x x x
ID configuration according to Predefined Connection Set x x x
ID configuration via SDOs x x x
NMT start-up object (1F80H) x x x
Slave assignment list (1F81H) - - x
Status displays according to DR303-3 x x x
Flying master according to DS302 S optional

S optional

M/S optional
LSS services according to DS305 S optional S optional M/S optional

C=Consumer (receiver); P=Producer (sender); S=Slave; M=Master

Supported Processors/CAN Controllers

The CANopen protocol software is independ-ent of hardware and can therefore be used on a large number of microcontollers and CAN controllers. For processors of the following manufacturers, IXXAT supplies reference implementations including project files for the development environments used, which can be run directly on the corres-ponding development platforms:

  • Infineon
  • Atmel
  • Renesas
  • Fujitsu
  • Microchip
  • Texas Instruments

Adaptation of the CANopen software to processors that are not directly supported can be carried out in a few days on the basis of a universal ANSI C version.


 

The 10th Floor, Quantum Plaza, No. 27, Zhichun Road, Haidian District, Beijing, 100083, P.R. China
Tel: +86-10-82357579, 82357580, 82357576

Fax: +86-10-82357574

sales@mcu-world.com