The RTnet development is still advancing much faster than its documentation. So far, we can provide the articles, presentation slides, and specifications listed below, some README files about selected topics (see Documentation directory in the source package), and several application examples (see examples directory).
Currently ongoing is an effort to establish a documentation wiki for RTnet. Anyone interested in contributing is warmly welcomed!
Articles and Papers
- RTnet – A Flexible Hard Real-Time Networking Framework - 10th IEEE International Conference on Emerging Technologies and Factory Automation, 19-22 September 2005, Catania, Italy.
©2005 IEEE. Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other works must be obtained from the IEEE.
- Alternative: RTnet - technical paper (in German, English translation available) published in the A&D-Newsletter, a German industrial automation magazine, October 2004.
- RTnet, Hard Real-Time Ethernet on Top of RTAI - RTAI Meeting, Milan, Italy, July 2004.
- Partially outdated: Application Programming Interface - Developer Meeting '04.
- Partially outdated: TDMA Version 2, Towards a Revised Media Access Control - Developer Meeting '04.
Typical Network Setup
The figure above shows a typical configuration of an RTnet real-time network. To achieve deterministic behaviour, a dedicated network segment is required. Non-real-time traffic will be tunneled through this segment. One of the three real-time stations is configured as a gateway to arbitrary non-real-time networks.
- Linux kernel 2.6.x or 2.4.x
- Xenomai (2.0 or better) or RTAI (3.3-cv or better)
- x86[_64], PowerPC, or ARM platform
- Standard Ethernet components
- Supported network adapters (see below)
- 10/100 MBit/s hubs (recommended for non-gigabit due to lower latencies)
- 10/100/1000 MBit/s switches
- For Ethernet-over-FireWire see RT-FireWire project
Supported Network Adapters
- Intel 8255x EtherExpress Pro100
- Intel PRO/1000 (Gigabit Ethernet)
- DEC 21x4x Tulip
- RealTek RTL8139
- RealTek RTL8169 (Gigabit Ethernet)
- AMD PCnet32/PCnetPCI
- VIA Rhine
- NatSemi DP8381x
- MPC8xx (SCC and FEC Ethernet)
- MPC8260 (FCC Ethernet)
- SMSC LAN91C111
- Install and test a suitable real-time Linux version
- cd to a preferred directory (e.g. /usr/src)
- tar xvjf <PATH-TO-RTNET-ARCHIVE>/rtnet-X.X.X.tar.bz2
- cd rtnet
- make menuconfig (run "make help" for further information)
Set at least the real-time extension installation path and the path RTnet is to be installed to (called <PREFIX> from now on). You could also check other options if they fit your requirements. Help is available for each feature.
- make install
This will create the directories <PREFIX>/sbin with all configuration tools, <PREFIX>/modules containing all core modules, <PREFIX>/include with the required API header files, and <PREFIX>/etc with configuration files to be used with the rtnet startup script.
- run mknod /dev/rtnet c 10 240 on your target system to create the configuration interface device node.
- Shutdown the network device which shall become part of the RT-network and remove its driver module (this also means that it must not be compiled into the kernel!)
- Load required real-time modules (modular Xenomai: xeno_hal, xeno_nucleus, xeno_rtdm, RTAI: rtai_hal, rtai_ksched/rtai_lxrt, rtai_sem, rtai_rtdm)
- Check <PREFIX>/etc/rtnet.conf and adapt at least the following parameters: RT_DRIVER, IPADDR, TDMA_MODE, TDMA_SLAVES.
- Run <PREFIX>/sbin/rtnet start
- Run rtping <remote-host> or load an application module (like addons/examples/round_trip_time/run)
Wireshark Plugin for RTnet
Erwin Rol has written a dissector plugin to examine the RTmac, TDMA, and RTcfg protocols with Wireshark. The RTnet plugin is included in the official Ethereal (Wireshark predecessor) releases since version 0.9.13 (but at least Ethereal 0.10.8 was required to work seamlessly with lastest RTnet, any Wireshark release is fine, though). Further information is also available at Erwin's homepage.
Online Code Browsing
You can browse the RTnet source code interactively using the RTnet Cross Reference. The git branch gets updated every night.