openPOWERLINK Protocol Stack Source
|
Overview The SYS TEC openPOWERLINK protocol stack is available as
a generic source code version, that allows for an easy porting to various target
and operating systems. The software provides all mandatory functions of the
Ethernet POWERLINK specification version 2.0 as well as various optional
functionalities.
With the source code also come insert-ready kernel
modules and application code to run the stack directly under Linux on our
reference system. This provides a good entry point for a quick and easy start of
your own development.
Our openPOWERLINK implementation has gone through
extensive testing procedures with other POWERLINK devices of various suppliers,
to ensure a stable platform and a high degree of interoperability.
The
protocol stack software is organized and implemented in functional modules,
providing a best flexibility and scalability, yet keeping the focus on serving
the timing requirements.
All hardware specific and time critical
functionality of the openPOWERLINK software were especially designed and
optimized to guarantee a fast response time of real-time events on the
POWERLINK-bus. Therefore, the access and the handling of the Ethernet controller
are encapsulated within a separate driver module.
openPOWERLINK stack
features:
- Communication profile Ethernet POWERLINK 2.0 DS 1.0.0
- Data link layer and NMT state machine for Controlled and Managing Nodes
- SDO via UDP and POWERLINK ASnd frames
- Dynamic PDO mapping
- User-configurable object dictionary
- Supports the POWERLINK cycle features async-only CN and multiplexed CN
- Implemented in plain ANSI C
- Modular software structure for simple portability to different target
platforms (with and without operating system)
- Event driven Communication Abstraction Layer
- Simplified API to the user application
- Comprehensive configuration and scaling options
Functional
Survey
Ethernet POWERLINK API layer The Ethernet POWERLINK
API layer provides a simple interface to the application. The application uses
functions to initialize the POWERLINK stack and perform different tasks. The
POWERLINK stack informs the application via a callback function about occurred
events. For example these events include NMT state changes, node state changes,
object dictionary accesses, finishing of SDO transfers, POWERLINK stack errors
etc.
Communication Abstraction layer The POWERLINK stack is
divided into a hard-realtime task which processes the cyclic events and a
low-priority task which is responsible for asynchronous events like SDO
processing. The communication between these tasks is encapsulated in the
Communication Abstraction Layer which is designed after the event model. This
allows easy porting and optimization to new target platforms. For example it is
possible to use the highly optimized means for interprocess communication of the
underlying operating system.
Object Dictionary and Service Data Object
(SDO) The configuration of the POWERLINK stack takes place via the Object
Dictionary. This can be performed at compile time via appropriate default
entries and at run time by the application or remotely via SDO transfers. The
POWERLINK stack supports SDO via UDP and POWERLINK ASnd frames. It uses an
existing UDP/IP stack for SDO via UDP, e.g. the one which may be supplied by the
operating system or a stand-alone UDP/IP stack. The virtual Ethernet driver
provides means to the UDP/IP stack for communication over the Ethernet POWERLINK
network. Besides SDO via UDP this enables also the application or other tasks
like a Web server to perform UDP or TCP communication over the Ethernet
POWERLINK network. The application can map any variable to an object dictionary
entry (see PDO). Depending on the concerning object entry the application is
informed about every read or write access. The application may reject the access
before it is actually performed or trigger any action.
Process Data
Object (PDO) The process variables are exchanged via PDOs between the
nodes in the POWERLINK network. Therefore the application must map these
variables to object dictionary entries. The PDO mapping assigns object
dictionary entries to specified PDOs. The PDO mapping can be changed dynamically
by the application or via SDO transfers. Ethernet POWERLINK exchanges the PDO
cyclically.
Managing Node openPOWERLINK Source Code for MN/CN
includes support for Managing Node. The Managing Node is enabled at runtime by
setting the node ID to 240. It performs the bootup process according to the
Ethernet POWERLINK specification version 2.0 including the support of mandatory
and optional controlled nodes. Additionally it contains a Configuration Manager,
which configures each controlled node according to a supplied device
configuration file.
|
|
|