Ethercat API

Ciao Mattia,

il protocollo EtherCAT e' molto diffuso nel mondo dell'automazione industriale.
Il sito di riferimento ufficiale e' quello dell' EtherCAT Technology Group,

Sito EtherCAT

da dove si puo' scaricare ampia documentazione sia sul software che sull'hardware.
Per accedere alla maggior parte della documentazione e' necessario registrarsi (gratuitamente)
ma comunque puoi trovare della doc anche cercando su internet, ad esempio guarda i link
che vengono forniti su questa pagina

Info EtherCAT su StackOverflow

Un sistema Ethercat si compone di un master e di uno o piu' slave, connessi tra di loro tramite lo
strato fisico ethernet a 100Mb, che comunica tramite un protocollo proprietario (non si usa il TCP/IP)

Due parole sul master:

Il master EtherCAT non necessita di un hardware dedicato, ma di un'interfaccia ethernet 100Mb
standard controllata da un microprocessore di adeguata potenza.
La realizzazione di un master EtherCAT e' quindi "solo" (nota le virgolette) una questione
di software.
Un esempio di software per il master lo puoi scaricare dal sito EtherCAT (sempre previa registrazione)
ma ne esistono versioni open source, ad esempio queste:

SOEM EtherCAT master

IgH EtherCAT master per Linux

Ed anche una versione sperimentale per Arduino DUE, a meta' di questa pagina:

Libreria EasyMASTER

Due parole sullo slave:

Lo slave necessita di un hardware dedicato perche' i pacchetti non vengono ricevuti da un
microprocessore, da questo analizzati ed eventualmente ritrasmessi, ma vengono processati
in hardware "al volo" mentre transitano attraverso lo slave.

E' come se un treno invece di fermarsi alle stazioni per consentire ai passeggeri di salire
o di scendere, procedesse la sua corsa senza rallentare ed i passeggeri fossero in grado di
salire o di scendere al volo, senza farsi male.
(Questa similitudine, che trovo colorita ed efficace, e' tratta dalla doc ufficiale)

Un microprocessore e' aggiunto all'hardware dedicato se lo slave deve gestire qualcosa di piu'
di dei semplici I/O: in questo caso sul micro deve girare un apposito stack software un esempio
del quale puo' essere scaricato dal sito EtherCAT (sempre previa registrazione)
oppur si trovano anche altri esempi, tipo questi:

Microchip SDK package

SOES

L'hardware dedicato per la realizzazione di uno slave puo' essere un chip specializzato come questi:

Beckhoff EtherCAT asics

Microchip EtherCAT slave controller

oppure implementato in FPGA tramite degli appositi IP core come questo:

Beckhoff IP core per Altera

oppure integrato come periferica dedicata in un microcontrollore, ad esempio:

AM3357 Sitara

Come vedi il tema EtherCAT e' piuttosto complesso, anche per un progettista esperto,
ma non voglio scoraggiarti.
Se fai una ricerca su Internet vedrai che c'e' qualcuno che sta cercando di rendere
il mondo EtherCAT piu' accessibile e di unirlo al mondo Arduino.
Per adesso si trova uno shield per Arduino che ti consente di realizzare facilmente
uno slave EtherCAT

EasyCAT shield

Prova a cercare EtherCAT Arduino con Google, si presume che tra un po' spunteranno anche altri prodotti.