Skip to content

This is a fork from https://git.code.sf.net/p/ecslave/code.git a.k.a. "light ethercat slave" brought to me by "raziebe" (Checkout https://sourceforge.net/p/ecslave/code/ci/master/tree/ for more information)

Notifications You must be signed in to change notification settings

jaessy77/ecslave

Repository files navigation

This is a fork from https://sourceforge.net/p/ecslave, restructured for my personal usage.

Goal is to native compile the Virtual Slave in a Raspberry RT-Linux with EtherLab installed.
The Arduino Slave is to be compiled with Sloeber IDE on either Win10 vor Linux itself.

Knowing that there are powerful EtherCat ASICs around which all could do the stuff very fast,
the intention is to have a quick and dirty solution for my personal needs and for my students
to learn something around EtherCat itself.  KMany thanks to the very clever guy founded this project.

ToDo-List

* move original code in a sub folder
* create new folder structure
* create Sloeber project and check in
* fiddle out necessary files for each subproject
* create header files
* create commons.h vor similar to hold special values in one space
* fix autoconf files (seems to be broken)
* ...

Lot of stuff to be done next time .. but hey .. the starter-kits and shields are ordered .. need to Start very soon ;-)


Original Readme:
	Light Ethercat Slave

ecslave comes in three flavors:
1.  linux user space 
2.  linux kernel drive.
3.  stack for arduino.

The user space is meant to be used as a tool for debugging 
the ethercat stack. The kernel module is aimed to provide a 
low latency respnosiveness. Arduino is part of a larget suite 
aimed to create cheap robot kits ( ~100$, controller with a single drive).

	User space design

in short, two threads, each thread is in charge of capturing packets
from its assigned network device and passing them to the ethercat protocol
if needed.

	Kernel space Design

This module is composed from several software components.
1. the ethercat stack. 
2. ethercat sockets
3. user space task executing in preempt rt kernel. 

Ethercat packet flow is ring toplogy. when a ring can is implemented
on a full duplex ehtercat cards so it actually a line. 


	TX path
master.. --> rx interface -->  slave --> tx interface .... ___
							      |
	RX path						      |
				 		    	      |
master.. <--  rx interface <-- slave <---tx interface <-... __|
 
	Arduino

only ethercat stack is implemeted. User has to add his own code.