System Software
Network Protocols
The EUROS networking component implements the TCP/IP protocol family. This enables an embedded system running under EUROS to connect to the Internet or to an Intranet. Thus, the embedded system can communicate in a standardized way with PCs, maintenance laptops and other TCP/IP enabled embedded systems, either when connected directly or when connected over a local network or wide area network. Functions such as remote maintenance, remote control and remote diagnostics can be implemented using widely available components.
Based on our proprietary TCP / IP stack, you can implement a variety of Internet applications up to web server applications in few steps.
TCP/IP Stack
The TCP/IP stack is fully integrated into EUROS. For example, debugging features and memory management functions of the Microkernel are used instead of re-implementing them within the TCP/IP stack. The functions of the networking component are made available through the standard Socket interface. There's no need to learn a proprietary API.
While many software packages for so-called "embedded internet servers" implement only the very basic functions needed to handle a single HTTP/TCP/IP connection over a single network interface, the EUROS TCP/IP stack is designed for universal use and therefore contains full functionality.
The EUROS TCP/IP stack supports multiple simultaneous connections as well as multiple network interfaces. Packet forwarding between interfaces is possible. Fragmentation and reusability of IP datagrams is supported and allows for maximum independence of physical network interfaces and maximum interoperability with other systems. TCP features, such as "slow start and congestion avoidance," "fast retransmit," "window scaling," "keep-alive," "delayed ACK," and "nagle algorithm" result in high data throughput and reduced network load.
For physical data transfer, the TCP/IP stack uses EUROS device drivers. Currently port drivers for several Ethernet interfaces and a PPP resource manager are available. The latter can be connected to port drivers for serial interfaces. A PPP resource manager for use with the ISDN-CAPI interface is also available. On the application layer the networking component also contains the BOOTP protocol (for remote self-configuration) and a DNS resolver for name server queries.
In addition to the networking component we offer application protocols such as HTTP server,
FTP server, SMTP client, SNMP agent and DHCP client. These utilize both the EUROS RTOS and the networking component and are optimally integrated into the system.
Transportprotocols
TCP with:
- Slow start and congestion avoidance
- Fast retransmit
- Window scaling
- Keep-alive
- Delayed ACK
- Nagle-Algorithm
UDP with:
- UDP Data checksum (optional)
Netzwerkprotocols:
IPv4 with:
- Datagram forwarding (optional)
- Subnetting
- Multicasting
- Configurable TTL
- Configurable TOS
- Fragmentation and reassembly
IPv6 with:
- Jumbo-Charts
- "Stateless" address auto-configuration
- Ability to dual-stack implementation
ICMP
IGMP
ARP
Link-Layer-Protocols:
Point-to-point (PPP)
Broadcast (Ethernet, IEEE 802.2)
Application protocols:
BOOTP-Client (only to obtain an IP address)
DNS-Resolver
Programming Interface: Interface
BSD-Sockets
Hardware Requirements:
From 80 KB ROM, from 20 KB RAM (it depends on the CPU-Architecture)
Software Requirements:
- EUROS Microkernel with the I/O-System
- Port-Driver with Resource-Manager as Network interface
Web Server
The EUROS Embedded Web Server implements a HTTP server. The web pages can be stored in the memory or in a file system, or they can be generated dynamically when you query the page. When querying a page by the client (browser) a new task is generated, which processes the transaction. Multiple pages can be queried in parallel. Authentication is possible on a page by page basis.
Technical Properties :
The server supports the following properties:
• HTTP 0.9, 1.0 and 1.1
• Basic Authentication
• Persistent Connections with HTTP 1.0 and 1.1
• commands GET, HEAD, and POST
• URL parameters in GET and POST
Page Properties :
The following properties of a memory-based side are configurable:
- The name / path
- MIME type
- Location of the content in memory (as well as in several sections)
- User functions for dynamic pages
- References to authentication information
The features of system-based pages can be abstracted from file system information. Authentication of those pages is not possible.
Configuration parameters:
The following parameters can be configured:
- Port number of the server
- The maximal number of server tasks that can be generated
- Maximum size for sending TCP segments
- Size of the send buffer
- Stack size of server tasks
- Receive buffer of the server tasks
- Search function for non-memory-based pages
- The root directory for file system-based pages
- Page definitions
- Timeouts
Software requirements:
• EUROS
• TCP/IP
Available Tools:
The following tools are provided:
• bin2c: converting binary files into C source code
• TEXT2C: converting text files into C source code
• MKAUTH: Generation of authentication information in C source code
DHCP Client
This software component implements a client for the DHCP protocol according to RFC-2131 and RFC-2132.
The DHCP client runs in the background as an application task. After start it requests a configuration from a DHCP server. It monitors the time for which an offered configuration is valid and applies for an extension of the cycle time. The application can communicate with the client by using an Eventflag object. This object can retrieve the status of the client. Likewise, the client can be shut down by using an Eventflag.
The DHCP client supports the following DHCP options:
- IP address
- Subnet Mask
- Broadcast address
- Default router (optional)
- Static Routes (optional)
- DNS server (optional)
- Host Name (optional)
Hardware requirements:
- Ethernet Interface
Software requirements:
- EUROS Microkernel with the I/O system
- Process Manager EUROS
- Network component (TCP/IP)
- Ethernet driver
This EUROS component implements Modbus protocol over a TCP/IP connection. There are two use cases of Modbus protocol and TCP/IP communications.
1. Modbus/TCP — used for communications over TCP/IP networks, connecting over port 502. It does not require a checksum calculation.
2. Modbus over TCP or Modbus RTU/IP is a variant that differs from Modbus TCP in that a checksum is included in the payload as with Modbus RTU.
MODBUS is an application layer messaging protocol. It provides client/server communication between devices connected on various types of buses or networks.
The industry's serial de facto standard since 1979, Modbus continues to enable millions of automation devices to communicate. Today, support for the simple and elegant structure of Modbus continues to grow. The Internet community can access Modbus at port 502, the reserved system port on the TCP/IP stack. This Modbus client/server implementation uses TCP/IP over Ethernet.
Supported functions
Bit access:
• Physical discrete inputs:
- ReadDiscreteInputs()
• Coils or Internal Bits:
- ReadCoils()
- WriteSingleCoil()
- WriteMultipleCoils()
16 bits access:
• Physical input registers:
- ReadInputRegisters()
• Physical output or Internal registers:
- ReadHoldingRegisters()
- WriteSingleRegister()
- WriteMultipleRegisters()
- ReadWriteMultipleRegisters()
- MaskWriteRegister()
- ReadFIFOqueue()
File record access:
• ReadFileRecord()
• WriteFileRecord()
Others or Encapsulated Interface Transport:
• ReadDeviceID()
Requirements:
The following EUROS components are required when using the Modbus/TCP component:
• Microkernel
• Process Manager
• Network component (TCP/IP)
• Ethernet port driver
Restrictions:
• This version of the Modbus/TCP component has the following restrictions:
• Only one request at a time can be made by the Modbus client and one request at a time can be processed by the Modbus server implementation.
• The CANopen General Reference Request and Response is not supported
• The diagnostic functions are used only for Modbus over serial line and thus are not supported by this implementation.
FTP Server
The EUROS FTP server implements an FTP server for embedded systems.
It supports the following commands from RFC 959: USER, PASS, CWD, CDUP, QUIT, PORT, TYPE, STRU, MODE, RETR, STOR, APPE, DELE, RMD, MKD, PWD, LIST, NLST, SYST, HELP, NOOP, REIN, PASV
In addition, the following non-standard commands are supported: XPWD, XMKD, XRMD, SIZE, MDTM.
The server can only handle one connection at a time. Only one client can be operated simultaneously. Both, an authentication with password and anonymous FTP connection without a password are supported. However, there a rights managing when accessing files does not take place???.
The server only supports the transmission mode "stream" and the file structure 'File'. It supports display types "ASCII" and "image" (binary). Both types are not distinguished.
Software requirements:
The FTP server requires the operating system EUROS, the EUROS - TCP / IP stack and the EUROS - file system.
SNMP
The SNMP agent implements Simple Network Management Protocol version 1 as described in RFC 1157. It loads MIB-II (RFC 1213) and provides necessary support for MIB-II functionality.
The SNMP agent is implemented in EUROS as a separate task. It requires TCP/IP functionality and system services of the Microkernel, I/O System and Process Manager. Your hardware should be equipped with Ethernet or at least with a serial port. The examples in the respective document are configured for the Ethernet usage.
The user is responsible for creating a separate SNMP task, assigning its priority and reserving stack space for it. The values in the provided examples can be used for initial settings. The memory usage can be computed from the linker map.
PPP
The PPP is implemented as a Resource Manager under EUROS and represents a hardware-independent high-level driver. The PPP Resource Manager can be used to transfer data frames over a serial interface. The Resource Manager does not depend on specific interface hardware. It must be attached to a Serial Port Driver that performs the actual transmission and reception using specific hardware. The resource manager can operate either as a server (passive connection) or as a client (active link). The resource manager works with all port drivers of type “serial”. A full duplex connection with 8 data bits is required. It can communicate either via a modem or directly using a null modem cable. The IP addresses can be specified using the system service netctl or it can be automatically determined during the connection time. An embedded unit operates either as a client (active link) or as a server (waiting for connection establishment to the remote party). The PPP Resource Manager can be used only on top of the network component.
Supported protocols: LCP, IPCP, IP, PAP, CHAP-MD5
Bit rate: depends on the serial port driver
Number of equipment units: unlimited
Supported I/O System services:
- IoCreate Create a PPP Resource Manager
- IoDelete Delete a PPP Resource Manager
- IoOpen Open a PPP Resource Manager
- IoClose Close a PPP Resource Manager
- IoReserve Reserve a PPP Resource Manager
- IoRelease Release a reserved PPP Resource Manager
- IoRead Read a data frame from a PPP Resource Manager
- IoWrite Write a data frame to a PPP Resource Manager
- IoControl Set I/O parameters of a PPP Resource Manager
- IoAttach Attach to a port driver
- IoDetach Detach from a port driver
Supported software characteristics:
- Number of queued input frames
- ACCM (mask of escaped characters
Implemented RFCs:
PPP und LCP: RFC-1661;
PPP-HDLC: RFC-1662;
IPCP: RFC-1332;
PAP: RFC-1334;
CHAP: RFC-1994
Software requirements:
- EUROS Microkernel including the I/O system
- EUROS network component
- Serial Port Driver
Ethernet/IP
The Ethernet/IP implements the Ethernet Industrial Protocol as described by the respective ODVA technical specification. By using this component one can quickly define and implement application-specific CIP services as well as support multiple sessions and connections. Ethernet/IP is highly configurable; one can fine-tune various aspects of the protocol communications depending on the application requirements.
The Ethernet/IP component implements a minimal CIP server with Ethernet/IP encapsulation. It is intended to be a toolset for the implementation of a product using Ethernet/IP. This software component does not comprise a "product" as described in the Ethernet/IP specification.
A "product" is a complete EUROS application using this software component. Therefore, the user of this component is the licensee of Ethernet/IP, not EUROS Embedded Systems GmbH.
It is the responsibility of the user to acquire a license and to integrate Ethernet/IP with the other software components that comprise a product. A number of object classes are pre-implemented (see below). The user has the option to implement additional standard classes or vendor-specific classes and to add them to the Ethernet/IP protocol stack.
Requirements:
The following EUROS components are required when using the Ethernet/IP:
- Microkernel
- Process Manager
- Network component (TCP/IP)
- C library
- Ethernet port driver
- DHCP client (optional)
POP3
The POP3 library provides implementation of the Post Office Protocol and allows EUROS applications to retrieve electronic messages from remote servers over TCP/IP connections. If bundled with the secure sockets layer library, the combined libraries also support the STLS command and POP3 connections over TLS/SSL.
POP3 Client library is platform independent, written in ANSI C and can be used on any of the platforms build on EUROS. Since it relies on a standard BSD socket interface it can be integrated with EUROS TCP/IP stack (or any other third party stack supported by EUROS RTOS).
It supports all pop3 commands and states of a POP3 session. EUROS POP3 API offers functions for execution of both standard user defined commands. POP3 Client library detects not allowed cases of command execution, fails, timeouts, etc.
SSL
The Secure Sockets Layer library (SSL) is needed in order to set up and employ encrypted and secure connections over a TCP/IP network. Using asymmetric cryptography one can use this library in conjunction with other protocols like HTTP or FTP to add security-on-demand to the respective user applications. The SSL library uses the BSD socket API and it can be bundled with any of the available EUROS TCP/IP stack libraries.
TLS
The primary goals of the TLS protocol is to provide cryptographic security when establishing connection between two parties and to ensure the interoperability during the development process.
By providing a framework incorporating new public key generation and bulk encryption methods it prevents the need to create new protocols and avoids the need to implement an entire new security library.
The TLS library uses the BSD socket API and it can be bundled with any of the available EUROS TCP/IP stack libraries.
FTPS/SFTP
EUROS supports several protocols for secure file transfer, including SFTP (file transfer over SSH) and FTPS (file transfer over SSL/TLS).
SFTP is implemented over an optimized encryption and communication engine aimed to be employed even on slower 16-bit systems. Depending on the configurable handshake and key exchange algorithm, the log-in time can be tuned to match the overall system performance.
FTPS is implemented using the EUROS TCP/IP stack together with and Secure Sockets Library, which supports fast transfer speed and short log-in latency times.
UDT
The UDT library supports the implementation of reliable UDP-based data transfers. This library is based on UDT and Sector/Sphere projects and provides a convenient data flow abstraction for distributed applications. It is possible to use various congestion algorithms to increase the data transfer speed significantly.
SMTP Client
The EUROS SMTP client implements e-mail sending for embedded systems. It uses the DNS resolver component of the network in order to determine the domain responsible for the target mail server. It supports up to 5 servers. The configured mail servers are processed in order of preference.
LOGIN, PLAIN and CRAM-MD5 authentication methods are supported. Authentication is optional.
Software requirements:
- EUROS
- TCP/IP-Stack
Telnet Server
The EUROS Telnet server is intended for embedded systems. It supports the Telnet protocol according to the general RFC-854/855.
Furthermore it supports options ECHO (RFC 857) and Window Size (RFC 1073). It allows multiple Telnet connections in parallel.
Software requirements:
- EUROS
- TCP/IP
- C-Library