https://taste.tuxfamily.org/wiki/index.php?title=Ethercat_Protocol&feed=atom&action=history
Ethercat Protocol - Revision history
2024-03-29T07:42:54Z
Revision history for this page on the wiki
MediaWiki 1.29.0
https://taste.tuxfamily.org/wiki/index.php?title=Ethercat_Protocol&diff=49&oldid=prev
Ttsiodras: 1 revision imported
2017-08-04T21:01:52Z
<p>1 revision imported</p>
<table class="diff diff-contentalign-left" data-mw="interface">
<tr style='vertical-align: top;' lang='en'>
<td colspan='1' style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan='1' style="background-color: white; color:black; text-align: center;">Revision as of 21:01, 4 August 2017</td>
</tr><tr><td colspan='2' style='text-align: center;' lang='en'><div class="mw-diff-empty">(No difference)</div>
</td></tr></table>
Ttsiodras
https://taste.tuxfamily.org/wiki/index.php?title=Ethercat_Protocol&diff=48&oldid=prev
Julien: /* Ethercat datagram header */
2012-03-29T13:14:49Z
<p><span dir="auto"><span class="autocomment">Ethercat datagram header</span></span></p>
<p><b>New page</b></p><div>= Ethernet frames format =<br />
The protocol itself is fully compliant with the Ethernet standard. In fact, ethercat frames are sent on top of ethernet frames. So, you have the traditional ethernet frame with the following characteristics:<br />
* '''MAC source''': MAC address of the Network Interface (XX:XX:XX:XX:XX:XX)<br />
* '''MAC destination''': broadcast address (FF:FF:FF:FF:FF:FF) <br />
* '''Ethernet type''': 0x88A4 (value for ethercat frames)<br />
<br />
<br />
= Ethercat frames content =<br />
The remainder of the frame contains two things:<br />
# One header<br />
# One or several datagrams<br />
<br />
<br />
== Ethercat frame header ==<br />
The header of an Ethercat frame contains:<br />
* Length (11 last bits)<br />
* A valid indicator (bit 12)<br />
* A type (bits 13 .. 16)<br />
** Ethercat command= 0x001<br />
<br />
<br />
<br />
== Ethercat datagram ==<br />
A datagram contains:<br />
# A header<br />
# Some data<br />
# Working count<br />
<br />
== Ethercat datagram header ==<br />
The header contains the following fields<br />
* '''Command''' (first 8bits)<br />
** Auto-increment physical Read = 1<br />
** Auto-increment physical Write = 2<br />
** Configured address Physical Read = 4<br />
** Configured address Physical Write = 5<br />
** Broadcast read = 7<br />
** Broadcast write = 8<br />
* '''Index''' (8bits)<br />
* '''Slave Address''' (16bits)<br />
* '''Offset Address''' (16bits)<br />
* '''Length''' (16bits), with:<br />
** Length (Last 11 bits)<br />
** Valid indicator (from bit 3 to 5)<br />
** Round trip (bit 2)<br />
** Last indicator - indicate if this is the last ethercat datagram (bit 1)<br />
* '''Interrupt''' (16bits)<br />
* Padding to complete the ethernet frame<br />
<br />
= Useful links =<br />
* Ethercat protocol definition for Wireshark: http://wiki.wireshark.org/Protocols/ethercat</div>
Julien