Doc: Features, installation. stable-1.4
authorFlorian Pose <fp@igh-essen.com>
Wed, 04 Feb 2009 10:13:25 +0000
branchstable-1.4
changeset 1698 4284b630855c
parent 1697 5958adc4300a
child 1699 89ba41136b21
Doc: Features, installation.
FEATURES
documentation/ethercat_doc.tex
--- a/FEATURES	Mon Jan 26 14:18:06 2009 +0000
+++ b/FEATURES	Wed Feb 04 10:13:25 2009 +0000
@@ -23,10 +23,10 @@
     including PCMCIA devices.
 
 * Supports any realtime environment through independent architecture.
-  - RTAI, Xenomai, RT-Preempt, etc.
+  - RTAI, Xenomai, etc.
   - Operation possible without any realtime extension at all.
 
-* Common API for Realtime-Applications in kernel- and userspace.
+* Common API for Realtime-Applications in kernelspace.
   - Requesting and releasing masters.
   - Dynamic slave configuration, even for slaves that are offline.
   - Detailed configuration of the slaves' PDOs and SDOs.
--- a/documentation/ethercat_doc.tex	Mon Jan 26 14:18:06 2009 +0000
+++ b/documentation/ethercat_doc.tex	Wed Feb 04 10:13:25 2009 +0000
@@ -167,11 +167,19 @@
 
 \begin{itemize}
 
-\item Designed as a kernel module for Linux 2.6.
-
-\item Implemented according to IEC 61158-12 \cite{dlspec} \cite{alspec}.
-
-\item Comes with EtherCAT-capable drivers for several common Ethernet devices.
+\item EtherCAT master implementation conforming to IEC/PAS 62407 \cite{dlspec}
+\cite{alspec}.
+
+  \begin{itemize}
+
+  \item Runs as kernel module for Linux 2.6.
+
+  \item Multiple masters possible on one machine.
+
+  \end{itemize}
+
+\item EtherCAT-capable versions of standard Linux drivers for wide-spread
+Ethernet devices.
 
   \begin{itemize}
 
@@ -181,104 +189,124 @@
   using the common device interface (see sec.~\ref{sec:ecdev}) provided by the
   master module.
 
+  \item Operation possible with any device supported by the standard drivers,
+  including PCMCIA devices.
+
   \end{itemize}
 
-\item The master module supports multiple EtherCAT masters running in
-parallel.
-
 \item The master code supports any Linux realtime extension through its
 independent architecture.
 
   \begin{itemize}
 
-  \item RTAI\nomenclature{RTAI}{Realtime Application Interface},
-  ADEOS\nomenclature{ADEOS}{Adaptive Domain Environment for Operating
-  Systems}, etc.
-
-  \item It runs well even without realtime extensions.
+  \item RTAI\nomenclature{RTAI}{Realtime Application Interface}, Xenomai, etc.
+
+  \item Operation possible without any realtime extension at all.
 
   \end{itemize}
 
-\item Common ``Application Interface'' for applications, that want to use
-EtherCAT functionality (see chap.~\ref{chap:api}).
+\item Common ``Application Interface'' for kernel-space realtime applications
+(see chap.~\ref{chap:api}).
+
+  \begin{itemize}
+
+  \item Requesting and releasing masters.
+
+  \item Dynamic slave configuration, even for slaves that are offline.
+
+  \item Detailed configuration of the slaves' PDOs and SDOs.
+
+  \item Creation of process data domains (see below). Registration of PDO
+  entries for exchange within a domain.
+
+  \item Monitoring the states of masters, slave configurations and domains.
+
+  \item SDO handlers for application-triggered CoE transfers (see below).
+
+  \item Avoidance of unnecessary copy operations for process data.
+
+  \end{itemize}
 
 \item \textit{Domains} are introduced, to allow grouping of process
   data transfers with different slave groups and task periods.
 
   \begin{itemize}
 
-  \item Handling of multiple domains with different task periods.
+  \item Management of PDO groups with different sample rates.
 
   \item Automatic calculation of process data mapping, FMMU and sync manager
-  configuration within each domain.
+  configuration within the domains.
+
+  \item Process data exchange can be monitored via a per-domain mechanism.
 
   \end{itemize}
 
-\item Communication through several finite state machines.
+\item Master finite state machine (FSM).
 
   \begin{itemize}
 
-  \item Automatic bus scanning after topology changes.
-
-  \item Bus monitoring during operation.
-
-  \item Automatic reconfiguration of slaves (for example after power failure)
-  during operation.
+  \item The same state machine runs both in idle mode and in realtime
+  operation.
+
+  \item Bus monitoring: Slave states are read cyclically. Automatic scanning
+  of the bus after a topology change.
+
+  \item Automatic configuration of slaves, if a application-layer state change
+  is requested.
 
   \end{itemize}
 
-\item CANopen over EtherCAT (CoE)
+\item Implementation of the CANopen over EtherCAT (CoE) mailbox protocol.
 
   \begin{itemize}
 
-  \item SDO upload, download and information service.
-
-  \item Slave configuration via SDOs.
-
-  \item SDO access from userspace and from the application.
+  \item Configuration of CoE-capable slaves.
+
+  \item SDO information service (dictionary listing).
+
+  \item SDO transfers both via the application interface and the command-line tool.
 
   \end{itemize}
 
-\item Ethernet over EtherCAT (EoE)
+\item Implementation of the Ethernet over EtherCAT (EoE) mailbox protocol.
 
   \begin{itemize}
 
-  \item Transparent use of EoE slaves via virtual network interfaces.
-
-  \item Natively supports either a switched or a routed EoE network
-  architecture.
+  \item Virtual network interface for any EoE-capable slave.
+
+  \item Both a switched and a routed EoE network architecture is natively
+  supported and configurable with standard tools.
 
   \end{itemize}
 
-\item Userspace command-line-tool ``ethercat`` (see sec.~\ref{sec:tool})
+\item Userspace command-line-tool ``ethercat'' (see sec.~\ref{sec:tool})
 
   \begin{itemize}
 
-  \item Showing the current bus with slaves, PDOs and SDOs.
-  \item Showing the bus configuration.
-  \item Showing domains and process data.
-  \item Setting the master's debug level.
-  \item Writing alias addresses.
-  \item SDO uploading/downloading.
-  \item Reading/writing a slave's SII.
-  \item Setting slave states.
-  \item Generate slave description XML.
+  \item Detailed information about master, slaves, domains and bus
+  configuration.
+  \item Reading/Writing alias addresses.
+  \item Listing slave configurations.
+  \item Viewing process data.
+  \item SDO download/upload; listing SDO dictionaries.
+  \item Slave SII (EEPROM) access.
+  \item Controlling application-layer states.
+  \item Generation of slave description XML from existing slaves.
 
   \end{itemize}
 
-\item Seamless system integration though LSB\nomenclature{LSB}{Linux
-    Standard Base} compliance.
+\item Seamless integration in any GNU/Linux distribution.
 
   \begin{itemize}
 
-  \item Master and network device configuration via sysconfig files.
-
-  \item Init script for master control.
+  \item ``Linux Standard Base''-compatible init script for master control.
+  \item Master and Ethernet device configuration via sysconfig file.
 
   \end{itemize}
 
-\item Virtual read-only network interface for monitoring and debugging
-  purposes.
+\item Virtual read-only network interface for debugging and traffic monitoring
+purposes (using Wireshark \cite{wireshark}, etc.). No additional hardware
+necessary.
 
 \end{itemize}
 
@@ -2406,8 +2434,7 @@
 
 \begin{lstlisting}[gobble=2]
   $ `\textbf{./configure}`
-  $ `\textbf{make}`
-  $ `\textbf{make modules}`
+  $ `\textbf{make all modules}`
 \end{lstlisting}
 
 Table~\ref{tab:config} lists important configuration switches and options.
@@ -2477,16 +2504,17 @@
 
 \section{Installing the Software}
 
-The below commands have to be entered as \textit{root}: The first one will
-install the EtherCAT header, init script, sysconfig file and the userspace
-tool to the prefix path. The second one will install the kernel modules to the
+The below commands have to be entered as \textit{root}: The
+\lstinline+install+ target will install the EtherCAT header, init script,
+sysconfig file and the userspace tool to the prefix path. The
+\lstinline+modules_install+ target will install the kernel modules to the
 kernel's modules directory. The final \lstinline+depmod+ call is necessary to
 include the kernel modules into the \textit{modules.dep} file to make it
-available to the \lstinline+modprobe+ command, used in the init script. 
+available to the \lstinline+modprobe+ command, that is used in the init
+script. 
 
 \begin{lstlisting}
-# `\textbf{make install}`
-# `\textbf{make modules\_install}`
+# `\textbf{make install modules\_install}`
 # `\textbf{depmod}`
 \end{lstlisting}