Some more documentation...
--- a/documentation/ethercat_doc.tex Wed Aug 13 15:51:26 2008 +0000
+++ b/documentation/ethercat_doc.tex Thu Aug 14 15:49:00 2008 +0000
@@ -603,7 +603,7 @@
\begin{figure}[htbp]
\centering
\includegraphics[width=.8\textwidth]{images/app-config}
- \caption{Master configuration structures}
+ \caption{Master Configuration}
\label{fig:app-config}
\end{figure}
@@ -658,26 +658,12 @@
\chapter{Ethernet Devices}
\label{sec:devices}
-% Device Interface
-% Device Modules
-% Network Driver Basics
-% EtherCAT Network Drivers
-% Device Selection
-% The Device Interface
-% Patching Network Drivers
-
-The EtherCAT protocol is based on the Ethernet standard, so the master relies
-on standard Ethernet hardware to communicate with the bus.
+The EtherCAT protocol is based on the Ethernet standard, so a master relies on
+standard Ethernet hardware to communicate with the bus.
The term \textit{device} is used as a synonym for Ethernet network interface
hardware. There are device driver modules that handle Ethernet hardware, which
-the master can use to connect to an EtherCAT bus.
-
-Section~\ref{sec:networkdrivers} offers an overview of general Linux
-network driver modules, while section~\ref{sec:requirements} will show
-the requirements to an EtherCAT-enabled network driver. Finally,
-sections~\ref{sec:seldev} to~\ref{sec:patching} show how to fulfill
-these requirements and implement such a driver module.
+a master can use to connect to an EtherCAT bus.
%------------------------------------------------------------------------------
@@ -725,7 +711,7 @@
for received frames is set, frame data has to be copied from hardware
to kernel memory and passed to the network stack.
-\paragraph{The \lstinline+net_device+ structure}
+\paragraph{The \lstinline+net_device+ Structure}
\index{net\_device}
The driver registers a \lstinline+net_device+ structure for each device to
@@ -770,7 +756,7 @@
The actual registration is done with the \lstinline+register_netdev()+ call,
unregistering is done with \lstinline+unregister_netdev()+.
-\paragraph{The netif Interface}
+\paragraph{The \lstinline+netif+ Interface}
\index{netif}
All other communication in the direction interface $\to$ network stack is done
@@ -814,7 +800,7 @@
%------------------------------------------------------------------------------
\section{EtherCAT Device Drivers}
-\label{sec:requirements}
+\label{sec:ethercatdrivers}
There are a few requirements for Ethernet network devices to function as
EtherCAT devices, when connected to an EtherCAT bus.
@@ -915,7 +901,7 @@
%------------------------------------------------------------------------------
-\section{The Device Interface}
+\section{EtherCAT Device Interface}
\label{sec:ecdev}
\index{Device interface}
@@ -1370,8 +1356,8 @@
(re-)configured.
\item[Request handling] Requests (either originating from the application or
-from external sources) are handled. This can be SII accesses, Sdo accesses,
-etc.
+from external sources) are handled. A request is a job that the master shall
+process asynchronously, for example an SII access, Sdo access, or similar.
\end{description}
@@ -1415,23 +1401,14 @@
State change FSM (see section~\ref{sec:fsm-change}) to enable mailbox
communication and read the Pdo configuration via CoE.
-\item[Pdos] The Pdos are read via CoE (if supported) using the Pdo FSM (see
-section~\ref{sec:fsm-pdo}). If this is successful, the Pdo information from
-the SII (if any) is overwritten.
+\item[Pdos] The Pdos are read via CoE (if supported) using the Pdo Reading FSM
+(see section~\ref{sec:fsm-pdo}). If this is successful, the Pdo information
+from the SII (if any) is overwritten.
\end{description}
%------------------------------------------------------------------------------
-% SII
-% Pdo assign/mapping
-% Slave configuration
-% State change
-% Pdo assign/mapping
-% CoE upload/download/information
-
-%------------------------------------------------------------------------------
-
\section{The Slave Configuration State Machine}
\label{sec:fsm-conf}
\index{FSM!Slave Configuration}
@@ -1499,68 +1476,41 @@
\begin{figure}[htbp]
\centering
- \includegraphics[width=.9\textwidth]{images/fsm-change} % FIXME
+ \includegraphics[width=.6\textwidth]{graphs/fsm_change}
\caption{Transition Diagram of the State Change State Machine}
\label{fig:fsm-change}
\end{figure}
-% FIXME
-
\begin{description}
-\item[START] The beginning state, where a datagram with the state
- change command is written to the slave's ``AL Control Request''
- attribute. Nothing can fail. $\rightarrow$~CHECK
-
-\item[CHECK] After the state change datagram has been sent, the ``AL
- Control Response'' attribute is queried with a second datagram.
- $\rightarrow$~STATUS
-
-\item[STATUS] The read memory contents are evaluated: While the
- parameter \textit{State} still contains the old slave state, the
- slave is busy with reacting on the state change command. In this
- case, the attribute has to be queried again.
- $\rightarrow$~STATUS
-
- In case of success, the \textit{State} parameter contains the new
- state and the \textit{Change} bit is cleared. The slave is in the
- requested state. $\rightarrow$~END
-
- If the slave can not process the state change, the \textit{Change}
- bit is set: Now the master tries to get the reason for this by
- querying the \textit{AL Status Code} parameter.
- $\rightarrow$~CODE
-
-\item[END] If the state machine ends in this state, the slave's state
- change has been successful.
-
-\item[CODE] The status code query has been sent. Reading the
- \textit{AL Status Code} might fail, because not all slaves support
- this parameter. Anyway, the master has to acknowledge the state
- change error by writing the current slave state to the ``AL Control
- Request'' attribute with the \textit{Acknowledge} bit set.
- $\rightarrow$~ACK
-
-\item[ACK] After that, the ``AL Control Response'' attribute is
- queried for the state of the acknowledgement.
- $\rightarrow$~CHECK ACK
-
-\item[CHECK ACK] If the acknowledgement has been accepted by the
- slave, the old state is kept. Still, the state change was
- unsuccessful. $\rightarrow$~ERROR
-
- If the acknowledgement is ignored by the slave, a timeout happens.
- In any case, the overall state change was unsuccessful.
- $\rightarrow$~ERROR
-
- If there is still now response from the slave, but the timer did not
- run out yet, the slave's ``AL Control Response'' attribute is
- queried again. $\rightarrow$~CHECK ACK
-
-\item[ERROR] If the state machine ends in this state, the slave's
- state change was unsuccessful.
+
+\item[Start] The new application-layer state is requested via the ``AL Control
+Request'' register (see ~\cite[section 5.3.1]{alspec}).
+
+\item[Check for Response] Some slave need some time to respond to an AL state
+change command, and do not respond for some time. For this case, the command
+is issued again, until it is acknowledged.
+
+\item[Check AL Status] If the AL State change datagram was acknowledged, the
+``AL Control Response'' register (see~\cite[section 5.3.2]{alspec}) must be
+read out until the slave changes the AL state.
+
+\item[AL Status Code] If the slave refused the state change command, the
+reason can be read from the ``AL Status Code'' field in the ``AL State
+Changed'' registers (see~\cite[section 5.3.3]{alspec}).
+
+\item[Acknowledge State] If the state change was not successful, the master
+has to acknowledge the old state by writing to the ``AL Control request''
+register again.
+
+\item[Check Acknowledge] After sending the acknowledge command, it has to read
+out the ``AL Control Response'' register again.
\end{description}
+The ``start\_ack'' state is a shortcut in the state machine for the case, that
+the master wants to acknowledge a spontaneous AL state change, that was not
+requested.
+
%------------------------------------------------------------------------------
\section{The SII State Machine}
@@ -1573,65 +1523,106 @@
\begin{figure}[htbp]
\centering
- \includegraphics[width=.9\textwidth]{images/fsm-sii} % FIXME
+ \includegraphics[width=.5\textwidth]{graphs/fsm_sii}
\caption{Transition Diagram of the SII State Machine}
\label{fig:fsm-sii}
\end{figure}
-% FIXME
+This is how the reading part of the state machine works:
\begin{description}
-\item[READ\_START] The beginning state for reading access, where the
- read request and the requested address are written to the SII
- attribute. Nothing can fail up to now.
- $\rightarrow$~READ\_CHECK
-
-\item[READ\_CHECK] When the SII read request has been sent
- successfully, a timer is started. A check/fetch datagram is issued,
- that reads out the SII attribute for state and data.
- $\rightarrow$~READ\_FETCH
-
-\item[READ\_FETCH] Upon reception of the check/fetch datagram, the
- \textit{Read Operation} and \textit{Busy} parameters are checked:
- \begin{itemize}
- \item If the slave is still busy with fetching E$^2$PROM data into
- the interface, the timer is checked. If it timed out, the reading
- is aborted ($\rightarrow$~ERROR), if not, the check/fetch datagram
- is issued again. $\rightarrow$~READ\_FETCH
-
- \item If the slave is ready with reading data, these are copied from
- the datagram and the read cycle is completed.
- $\rightarrow$~END
- \end{itemize}
+
+\item[Start Reading] The read request and the requested word address are
+written to the SII attribute.
+
+\item[Check Read Command] If the SII read request command has been
+acknowledged, a timer is started. A datagram is issued, that reads out the SII
+attribute for state and data.
+
+\item[Fetch Data] If the read operation is still busy (the SII is usually
+implemented as an E$^2$PROM), the state is read again. Otherwise the data are
+copied from the datagram.
+
\end{description}
-The write access states behave nearly the same:
+The writing part works nearly similar:
\begin{description}
-\item[WRITE\_START] The beginning state for writing access,
- respectively. A write request, the target address and the data word
- are written to the SII attribute. Nothing can fail.
- $\rightarrow$~WRITE\_CHECK
-
-\item[WRITE\_CHECK] When the SII write request has been sent
- successfully, the timer is started. A check datagram is issued, that
- reads out the SII attribute for the state of the write operation.
- $\rightarrow$~WRITE\_CHECK2
-
-\item[WRITE\_CHECK2] Upon reception of the check datagram, the
- \textit{Write Operation} and \textit{Busy} parameters are checked:
- \begin{itemize}
- \item If the slave is still busy with writing E$^2$PROM data, the
- timer is checked. If it timed out, the operation is aborted
- ($\rightarrow$~ERROR), if not, the check datagram is issued again.
- $\rightarrow$~WRITE\_CHECK2
- \item If the slave is ready with writing data, the write cycle is
- completed. $\rightarrow$~END
- \end{itemize}
+
+\item[Start Writing] A write request, the target address and the data word are
+written to the SII attribute.
+
+\item[Check Write Command] If the SII write request command has been
+acknowledged, a timer is started. A datagram is issued, that reads out the SII
+attribute for the state of the write operation.
+
+\item[Wait while Busy] If the write operation is still busy (determined by a
+minimum wait time and the state of the busy flag), the state machine remains in
+this state to avoid that another write operation is issued too early.
+
\end{description}
%------------------------------------------------------------------------------
+\section{The Pdo State Machines}
+\label{sec:fsm-pdo}
+\index{FSM!Pdo}
+
+The Pdo state machines are a set of state machines that read or write the Pdo
+assignment and the Pdo mapping via the ``CoE Communication Area'' described in
+\cite[section 5.6.7.4]{alspec}. For the object access, the
+CANopen-over-EtherCAT access primitives are used (see
+section~\ref{sec:coeimp}), so the slave must support the CoE mailbox protocol.
+
+\paragraph{Pdo Reading FSM} This state machine (fig.~\ref{fig:fsm-pdo-read})
+has the purpose to read the complete Pdo configuration of a slave. It reads
+the Pdo assignment for each Sync Manager and uses the Pdo Entry Reading FSM
+(fig.~\ref{fig:fsm_pdo_entry_read}) to read the mapping for each assigned Pdo.
+
+\begin{figure}[htbp]
+ \centering
+ \includegraphics[width=.4\textwidth]{graphs/fsm_pdo_read}
+ \caption{Transition Diagram of the Pdo Reading State Machine}
+ \label{fig:fsm-pdo-read}
+\end{figure}
+
+Basically it reads the every Sync manager's Pdo assignment Sdo's
+(\lstinline+0x1C1x+) number of elements to determine the number of assigned
+Pdos for this sync manager and then reads out the subindices of the Sdo to get
+the assigned Pdo's indices. When a Pdo index is read, the Pdo Entry Reading
+FSM is executed to read the Pdo's mapped Pdo entries.
+
+\paragraph{Pdo Entry Reading FSM} This state machine
+(fig.~\ref{fig:fsm_pdo_entry_reading}) reads the Pdo mapping (the Pdo entries)
+of a Pdo. It reads the respective mapping Sdo (\lstinline+0x1600+ -
+\lstinline+0x17ff+, or \lstinline+0x1a00+ - \lstinline+0x1bff+) for the given
+Pdo by reading first the subindex zero (number of elements) to determine the
+number of mapped Pdo entries. After that, each subindex is read to get the
+mapped Pdo entry index, subindex and bit size.
+
+\begin{figure}[htbp]
+ \centering
+ \includegraphics[width=.4\textwidth]{graphs/fsm_pdo_entry_read}
+ \caption{Transition Diagram of the Pdo Entry Reading State Machine}
+ \label{fig:fsm-pdo-read}
+\end{figure}
+
+\begin{figure}[htbp]
+ \centering
+ \includegraphics[width=.9\textwidth]{graphs/fsm_pdo_conf}
+ \caption{Transition Diagram of the Pdo Configuration State Machine}
+ \label{fig:fsm-pdo-read}
+\end{figure}
+
+\begin{figure}[htbp]
+ \centering
+ \includegraphics[width=.4\textwidth]{graphs/fsm_pdo_entry_conf}
+ \caption{Transition Diagram of the Pdo Entry Configuration State Machine}
+ \label{fig:fsm-pdo-read}
+\end{figure}
+
+%------------------------------------------------------------------------------
+
\chapter{Mailbox Protocol Implementations}
\index{Mailbox}
@@ -1807,6 +1798,14 @@
configure slaves and exchange data objects on application level.
% FIXME
+%
+% Download / Upload
+% Expedited / Normal
+% Segmentung
+% Sdo Info Services
+%
+
+\ldots
\paragraph{Sdo Download State Machine}
@@ -1874,28 +1873,27 @@
% FIXME
-For the master runs as a kernel module, accessing it is natively
-limited to analyzing Syslog messages and controlling using modutils.
-
-It is necessary to implement further interfaces, that make it easier
-to access the master from user space and allow a finer influence. It
-should be possible to view and to change special parameters at runtime.
-
-Bus visualization is a second point: For development and debugging
-purposes it would be nice, if one could show the connected slaves with
-a single command.
-
-Another aspect is automatic startup and configuration. If the master
-is to be integrated into a running system, it must be able to
-automatically start with a persistent configuration.
-
-A last thing is monitoring EtherCAT communication. For debugging
-purposes, there had to be a way to analyze EtherCAT datagrams. The
-best way would be with a popular network analyzer, like Wireshark
-\cite{wireshark} (the former Ethereal) or others.
-
-This section covers all those points and introduces the interfaces and
-tools to make all that possible.
+For the master runs as a kernel module, accessing it is natively limited to
+analyzing Syslog messages and controlling using modutils.
+
+It is necessary to implement further interfaces, that make it easier to access
+the master from user space and allow a finer influence. It should be possible
+to view and to change special parameters at runtime.
+
+Bus visualization is a second point: For development and debugging purposes it
+would be nice, if one could show the connected slaves with a single command.
+
+Another aspect is automatic startup and configuration. If the master is to be
+integrated into a running system, it must be able to automatically start with
+a persistent configuration.
+
+A last thing is monitoring EtherCAT communication. For debugging purposes,
+there had to be a way to analyze EtherCAT datagrams. The best way would be
+with a popular network analyzer, like Wireshark \cite{wireshark} (the former
+Ethereal) or others.
+
+This section covers all those points and introduces the interfaces and tools
+to make all that possible.
%------------------------------------------------------------------------------
--- a/documentation/graphs/Makefile Wed Aug 13 15:51:26 2008 +0000
+++ b/documentation/graphs/Makefile Thu Aug 14 15:49:00 2008 +0000
@@ -5,11 +5,13 @@
#-----------------------------------------------------------------------------
GRAPHS := \
+ fsm_change \
fsm_master \
fsm_pdo_conf \
- fsm_pdo_read \
fsm_pdo_entry_conf \
fsm_pdo_entry_read \
+ fsm_pdo_read \
+ fsm_sii \
fsm_slave_conf \
fsm_slave_scan
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/documentation/graphs/fsm_change.dot Thu Aug 14 15:49:00 2008 +0000
@@ -0,0 +1,34 @@
+
+/* $Id$ */
+
+digraph change {
+
+ start [fontname="Helvetica"]
+ start -> check [weight=5]
+
+ check [fontname="Helvetica"]
+ check -> status [weight=5]
+ check -> error [fontname="Helvetica", label="Response\ntimeout"]
+
+ status [fontname="Helvetica"]
+ status -> end [fontname="Helvetica", label="Success", weight=5]
+ status -> code [fontname="Helvetica", label="Refuse", weight=5]
+ status -> error [fontname="Helvetica", label="Change\ntimeout"]
+
+ code [fontname="Helvetica"]
+ code -> ack [weight=2]
+
+ start_ack [fontname="Helvetica"]
+ start_ack -> ack [fontname="Helvetica", label="Ack only"]
+
+ ack [fontname="Helvetica"]
+ ack -> check_ack [weight=2]
+
+ check_ack [fontname="Helvetica"]
+ check_ack -> end [fontname="Helvetica", label="Ack only"]
+ check_ack -> error [weight=2]
+
+ end [fontname="Helvetica"]
+
+ error [fontname="Helvetica"]
+}
--- a/documentation/graphs/fsm_pdo_conf.dot Wed Aug 13 15:51:26 2008 +0000
+++ b/documentation/graphs/fsm_pdo_conf.dot Thu Aug 14 15:49:00 2008 +0000
@@ -2,9 +2,6 @@
/* $Id$ */
digraph pdo_conf {
- size="7,9"
- center=1
- ratio=fill
start [fontname="Helvetica"]
start -> action_next_sync [fontname="Helvetica",label="First SM",weight=10]
--- a/documentation/graphs/fsm_pdo_entry_conf.dot Wed Aug 13 15:51:26 2008 +0000
+++ b/documentation/graphs/fsm_pdo_entry_conf.dot Thu Aug 14 15:49:00 2008 +0000
@@ -2,9 +2,6 @@
/* $Id$ */
digraph pdo_entry_conf {
- size="7,9"
- center=1
- ratio=fill
start [fontname="Helvetica"]
start -> zero_entry_count [weight=10]
--- a/documentation/graphs/fsm_pdo_entry_read.dot Wed Aug 13 15:51:26 2008 +0000
+++ b/documentation/graphs/fsm_pdo_entry_read.dot Thu Aug 14 15:49:00 2008 +0000
@@ -2,9 +2,6 @@
/* $Id$ */
digraph pdo_entry_read {
- size="7,9"
- center=1
- ratio=fill
start [fontname="Helvetica"]
start -> count [weight=5]
--- a/documentation/graphs/fsm_pdo_read.dot Wed Aug 13 15:51:26 2008 +0000
+++ b/documentation/graphs/fsm_pdo_read.dot Thu Aug 14 15:49:00 2008 +0000
@@ -2,9 +2,6 @@
/* $Id$ */
digraph pdo_read {
- size="7,9"
- center=1
- ratio=fill
start [fontname="Helvetica"]
start -> action_next_sync [fontname="Helvetica", label="First SM", weight=5]
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/documentation/graphs/fsm_sii.dot Thu Aug 14 15:49:00 2008 +0000
@@ -0,0 +1,33 @@
+
+/* $Id$ */
+
+digraph sii {
+
+ start_reading [fontname="Helvetica"]
+ start_reading -> read_check [weight=5]
+
+ read_check [fontname="Helvetica"]
+ read_check -> error
+ read_check -> read_fetch [weight=5]
+
+ read_fetch [fontname="Helvetica"]
+ read_fetch -> error
+ read_fetch -> end [weight=5]
+ read_fetch -> read_fetch
+
+ start_writing [fontname="Helvetica"]
+ start_writing -> write_check [weight=5]
+
+ write_check [fontname="Helvetica"]
+ write_check -> error
+ write_check -> write_check2 [weight=5]
+
+ write_check2 [fontname="Helvetica"]
+ write_check2 -> error
+ write_check2 -> end [weight=5]
+ write_check2 -> write_check2
+
+ end [fontname="Helvetica"]
+
+ error [fontname="Helvetica"]
+}
--- a/documentation/images/Makefile Wed Aug 13 15:51:26 2008 +0000
+++ b/documentation/images/Makefile Thu Aug 14 15:49:00 2008 +0000
@@ -8,10 +8,8 @@
app-config.fig \
architecture.fig \
fmmus.fig \
- fsm-change.fig \
fsm-coedown.fig \
fsm-eoe.fig \
- fsm-sii.fig \
interrupt.fig \
master-locks.fig \
masters.fig \
--- a/documentation/images/fsm-change.fig Wed Aug 13 15:51:26 2008 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-#FIG 3.2
-Portrait
-Center
-Metric
-A4
-100.00
-Single
--2
-1200 2
-0 32 #8e8e8e
-6 398 2378 2122 3112
-1 2 0 1 0 7 50 -1 -1 0.000 1 0.0000 1260 2745 855 360 405 2385 2115 3105
-4 1 0 50 -1 16 12 0.0000 4 120 960 1260 2790 CODE\001
--6
-6 2513 2378 4237 3112
-1 2 0 1 0 7 50 -1 -1 0.000 1 0.0000 3375 2745 855 360 2520 2385 4230 3105
-4 1 0 50 -1 16 12 0.0000 4 120 690 3375 2790 ACK\001
--6
-6 4523 2378 6458 3112
-1 2 0 1 0 7 50 -1 -1 0.000 1 0.0000 5490 2745 855 360 4635 2385 6345 3105
-4 1 0 50 -1 16 12 0.0000 4 120 1935 5490 2790 CHECK ACK\001
--6
-6 6705 2340 8505 3150
-1 2 0 1 0 7 50 -1 -1 0.000 1 0.0000 7605 2745 855 360 6750 2385 8460 3105
-1 2 0 1 0 7 50 -1 -1 0.000 1 0.0000 7605 2738 765 322 6840 2416 8370 3060
-4 1 0 50 -1 16 12 0.0000 4 120 1200 7605 2790 ERROR\001
--6
-6 2513 893 4237 1627
-1 2 0 1 0 7 50 -1 -1 0.000 1 0.0000 3375 1260 855 360 2520 900 4230 1620
-4 1 0 50 -1 16 12 0.0000 4 120 1170 3375 1305 CHECK\001
--6
-6 4628 893 6352 1627
-1 2 0 1 0 7 50 -1 -1 0.000 1 0.0000 5490 1260 855 360 4635 900 6345 1620
-4 1 0 50 -1 16 12 0.0000 4 120 1305 5490 1305 STATUS\001
--6
-6 6705 855 8505 1665
-1 2 0 1 0 7 50 -1 -1 0.000 1 0.0000 7605 1260 855 360 6750 900 8460 1620
-1 2 0 1 0 7 50 -1 -1 0.000 1 0.0000 7605 1261 748 315 6857 946 8353 1576
-4 1 0 50 -1 16 12 0.0000 4 120 705 7605 1305 END\001
--6
-6 360 855 2160 1665
-1 2 0 1 0 7 50 -1 -1 0.000 1 0.0000 1260 1260 855 360 405 900 2115 1620
-4 1 0 50 -1 16 12 0.0000 4 120 1080 1260 1305 START\001
--6
-1 3 0 1 0 0 50 -1 20 0.000 1 0.0000 495 675 101 101 495 675 585 720
-3 2 0 1 0 7 50 -1 -1 0.000 0 1 0 2
- 1 1 1.00 60.00 120.00
- 2115 1260 2520 1260
- 0.000 0.000
-3 2 0 1 0 7 50 -1 -1 0.000 0 1 0 2
- 1 1 1.00 60.00 120.00
- 4230 1260 4635 1260
- 0.000 0.000
-3 2 0 1 0 7 50 -1 -1 0.000 0 1 0 2
- 1 1 1.00 60.00 120.00
- 6345 1260 6750 1260
- 0.000 0.000
-3 2 0 1 0 7 50 -1 -1 0.000 0 1 0 4
- 1 1 1.00 60.00 120.00
- 5670 900 5670 540 5400 540 5355 900
- 0.000 -1.000 -1.000 0.000
-3 2 0 1 0 7 50 -1 -1 0.000 0 1 0 2
- 1 1 1.00 60.00 120.00
- 2115 2745 2520 2745
- 0.000 0.000
-3 2 0 1 0 7 50 -1 -1 0.000 0 1 0 2
- 1 1 1.00 60.00 120.00
- 4230 2745 4635 2745
- 0.000 0.000
-3 2 0 1 0 7 50 -1 -1 0.000 0 1 0 2
- 1 1 1.00 60.00 120.00
- 6345 2745 6750 2745
- 0.000 0.000
-3 2 0 1 0 7 50 -1 -1 0.000 0 1 0 4
- 1 1 1.00 60.00 120.00
- 4905 1530 4365 1980 2610 2115 1755 2430
- 0.000 -1.000 -1.000 0.000
-3 2 0 1 0 0 50 -1 20 0.000 0 1 0 2
- 1 1 1.00 60.00 120.00
- 540 765 675 990
- 0.000 0.000
-3 2 1 1 0 7 50 -1 -1 4.000 0 1 0 4
- 1 1 1.00 60.00 120.00
- 4050 1485 4500 1620 6120 1980 6930 2520
- 0.000 -1.000 -1.000 0.000
-3 2 1 1 0 7 50 -1 -1 4.000 0 1 0 3
- 1 1 1.00 60.00 120.00
- 6165 1485 6750 1935 7110 2430
- 0.000 -1.000 0.000
-3 2 1 1 0 7 50 -1 -1 4.000 0 1 0 3
- 1 1 1.00 60.00 120.00
- 3915 3060 5490 3285 6795 2925
- 0.000 -1.000 0.000
-3 2 1 1 0 7 50 -1 -1 4.000 0 1 0 3
- 1 1 1.00 60.00 120.00
- 1890 3015 5355 3510 6975 3015
- 0.000 -1.000 0.000
-3 2 0 1 0 7 50 -1 -1 0.000 0 1 0 4
- 1 1 1.00 60.00 120.00
- 5670 2386 5670 2026 5400 2026 5355 2386
- 0.000 -1.000 -1.000 0.000
--- a/documentation/images/fsm-sii.fig Wed Aug 13 15:51:26 2008 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-#FIG 3.2
-Portrait
-Center
-Metric
-A4
-100.00
-Single
--2
-1200 2
-0 32 #8e8e8e
-6 2235 893 4515 1627
-1 2 0 1 0 7 50 -1 -1 0.000 1 0.0000 3375 1260 855 360 2520 900 4230 1620
-4 1 0 50 -1 16 12 0.0000 4 150 2280 3375 1305 READ_CHECK\001
--6
-6 4388 893 6593 1627
-1 2 0 1 0 7 50 -1 -1 0.000 1 0.0000 5490 1260 855 360 4635 900 6345 1620
-4 1 0 50 -1 16 12 0.0000 4 150 2205 5490 1305 READ_FETCH\001
--6
-6 165 893 2355 1627
-1 2 0 1 0 7 50 -1 -1 0.000 1 0.0000 1260 1260 855 360 405 900 2115 1620
-4 1 0 50 -1 16 12 0.0000 4 150 2190 1260 1305 READ_START\001
--6
-6 6705 1710 8505 2520
-1 2 0 1 0 7 50 -1 -1 0.000 1 0.0000 7605 2115 855 360 6750 1755 8460 2475
-1 2 0 1 0 7 50 -1 -1 0.000 1 0.0000 7605 2116 748 315 6857 1801 8353 2431
-4 1 0 50 -1 16 12 0.0000 4 120 705 7605 2160 END\001
--6
-6 113 2648 2408 3382
-1 2 0 1 0 7 50 -1 -1 0.000 1 0.0000 1260 3015 855 360 405 2655 2115 3375
-4 1 0 50 -1 16 12 0.0000 4 150 2295 1260 3060 WRITE_START\001
--6
-6 2183 2648 4568 3382
-1 2 0 1 0 7 50 -1 -1 0.000 1 0.0000 3375 3015 855 360 2520 2655 4230 3375
-4 1 0 50 -1 16 12 0.0000 4 150 2385 3375 3060 WRITE_CHECK\001
--6
-6 4208 2648 6773 3382
-1 2 0 1 0 7 50 -1 -1 0.000 1 0.0000 5490 3015 855 360 4635 2655 6345 3375
-4 1 0 50 -1 16 12 0.0000 4 150 2565 5490 3060 WRITE_CHECK2\001
--6
-6 3555 1710 5355 2520
-1 2 0 1 0 7 50 -1 -1 0.000 1 0.0000 4455 2115 855 360 3600 1755 5310 2475
-1 2 0 1 0 7 50 -1 -1 0.000 1 0.0000 4455 2108 765 322 3690 1786 5220 2430
-4 1 0 50 -1 16 12 0.0000 4 120 1200 4455 2160 ERROR\001
--6
-6 360 540 675 990
-1 3 0 1 0 0 50 -1 20 0.000 1 0.0000 495 675 101 101 495 675 585 720
-3 2 0 1 0 0 50 -1 20 0.000 0 1 0 2
- 1 1 1.00 60.00 120.00
- 540 765 675 990
- 0.000 0.000
--6
-6 360 2295 675 2745
-1 3 0 1 0 0 50 -1 20 0.000 1 0.0000 495 2430 101 101 495 2430 585 2475
-3 2 0 1 0 0 50 -1 20 0.000 0 1 0 2
- 1 1 1.00 60.00 120.00
- 540 2520 675 2745
- 0.000 0.000
--6
-3 2 0 1 0 7 50 -1 -1 0.000 0 1 0 2
- 1 1 1.00 60.00 120.00
- 2115 1260 2520 1260
- 0.000 0.000
-3 2 0 1 0 7 50 -1 -1 0.000 0 1 0 2
- 1 1 1.00 60.00 120.00
- 4230 1260 4635 1260
- 0.000 0.000
-3 2 0 1 0 7 50 -1 -1 0.000 0 1 0 2
- 1 1 1.00 60.00 120.00
- 2115 3015 2520 3015
- 0.000 0.000
-3 2 0 1 0 7 50 -1 -1 0.000 0 1 0 2
- 1 1 1.00 60.00 120.00
- 4230 3015 4635 3015
- 0.000 0.000
-3 2 1 1 0 7 50 -1 -1 4.000 0 1 0 3
- 1 1 1.00 60.00 120.00
- 3375 1620 3465 1845 3735 1935
- 0.000 -1.000 0.000
-3 2 0 1 0 7 50 -1 -1 0.000 0 1 0 3
- 1 1 1.00 60.00 120.00
- 5490 1620 5445 1845 5220 1935
- 0.000 -1.000 0.000
-3 2 1 1 0 7 50 -1 -1 4.000 0 1 0 3
- 1 1 1.00 60.00 120.00
- 3375 2610 3465 2385 3735 2295
- 0.000 -1.000 0.000
-3 2 0 1 0 7 50 -1 -1 0.000 0 1 0 3
- 1 1 1.00 60.00 120.00
- 5490 2610 5445 2385 5220 2295
- 0.000 -1.000 0.000
-3 2 0 1 0 7 50 -1 -1 4.000 0 1 0 3
- 1 1 1.00 60.00 120.00
- 6255 1440 6750 1620 7020 1845
- 0.000 -1.000 0.000
-3 2 0 1 0 7 50 -1 -1 4.000 0 1 0 3
- 1 1 1.00 60.00 120.00
- 6210 2835 6750 2700 7020 2385
- 0.000 -1.000 0.000
-3 2 0 1 0 7 50 -1 -1 0.000 0 1 0 4
- 1 1 1.00 60.00 120.00
- 5670 900 5670 630 5400 630 5400 900
- 0.000 -1.000 -1.000 0.000
-3 2 0 1 0 7 50 -1 -1 0.000 0 1 0 4
- 1 1 1.00 60.00 120.00
- 5670 3375 5670 3690 5310 3690 5310 3375
- 0.000 -1.000 -1.000 0.000