What you are asking is if a USB bus would make a good network for real-time
data.   The problem is latency.  the bandwidth is OK but USB is
packetized.  Ethernet has this same problem very good bandwidth but for
latency.

Eithercat tries to address latency placing multiple payloads in ovary
packets.  This reduces latency to whatever rate you can send packets.
Notice to d this they completely ignore the Ethernet protocol and are
repurposing the hardware.   This is a good idea because Ethercat can
leverage exiting hardware and cables.

I see no reason why you could not do the same thing with USB3.  That is to
repurpose existing hardware and "simply" re-write new drivers.

But WHY?  Why bother to repurpose USB and write all that software when
Ethercat is available for free.  Free and Open source Ethercat masters
already run on Linux.

OK you might argue that USB3 can be faster then Ethernet.   Faster bit
rates but who cares, for this use case latency matters more then any other
spec. and Ethercat runs at  1 gigabit now and it you have more money at 10
gigabits.

One HUGE argument against inventing a "USB3cat" is cable length.  USB is
just not going to work in a large shop let alone a factory.  Ethernet on
the other hand can go at least 100 meters using cheap coper wire and a few
kilometers over fiber.

I think the FPGA message switch only solves one problem. That is you want
to use a non-bus point to point transport protocol for communication
between many end points.  These can work but not so well for real time.
Every possible design has serious performance issues either nondetermistic
latency or it's just slow.   These are used but that is the trade off.
These switches either act like a N-way mux or a store and forward switch

My opinion:  You are more productive if you spend your limited time
creating stuff that you can't get for free.  For example I'd never write C
compiler.

On Thu, Oct 19, 2017 at 2:28 PM, Nicklas Karlsson <
nicklas.karlsso...@gmail.com> wrote:

> > On Monday 16 October 2017 11:28:40 Nicklas Karlsson wrote:
> >
> > > > > I have been thinking about FPGA for a communication switch, it
> > > > > would be possible to get perfect timings. Then ordinary micro
> > > > > controllers could be used for implementing the hardware, the
> > > > > approach is similar to the new devices with so called Cortex-M-*
> > > > > PRUs but by using SPI, UART or maybe CAN it is possible to build
> > > > > more modular and add an insulation barrier.
> > > > >
> > > > > The new devices with PRU may be a cheaaper solution for machines
> > > > > built in very large series. A modular architecture there different
> > > > > special hardware drivers could be combined is a better solution
> > > > > then building a lot of different mashines.
> > > >
> > > > The Cortex M Costs about $1 or some of them even less.  You can buy
> > > > a complete system on a PCB with connectors.  For under $3 shipping
> > > > included. If you need to make something like a switch or control a
> > > > few motors these work well.  I have several of them.  I am using
> > > > them for motion controller.
> > >
> > > Yes I know it very well and also have a few of them.
> > >
> > > > In terms of "compute power"  They are an order of magnitude above an
> > > > Arduino.  But not even close to a Pi 3 or BBB.
> > >
> > > This is good enough for one motor probably with plenty margin.
> > >
> > > > ...
> > > > I'm using one of the boards liked to below to control two motors
> > > > using PID.  I have two PIP loops running and the optical encoder is
> > > > sending about 11,000 interrupts per second for each motor.   I run
> > > > the PIP loops and get commands over a serial ...
> > >
> > > Similar as I do.
> > >
> > > > I would not go with an FPGA unless you need very high speed where
> > > > signals are in the teen's of megahertz at least, up to GHz.   The
> > > > FPGA is much harder to program them an ARM Cortex-M.
> > > >
> > > > If I were building a machine tool controller from scratch I'd run
> > > > much of it on a small computer under Linux then I'd get as many of
> > > > these Cortex-M chips as required.  Each could handle between 2 and 6
> > > > axis.
> > >
> > > There I am heading. The FPGA could give me as many serial
> > > communication ports as needed with perfect communication period.
> > > Second option is to add a Ethercat slave device on each device.
> > >
> > >
> > This sounds appetizing.  Lets say you've installed LCNC on a rock64. Now
> > the rock64 has a 5 Gigabaud usb3 port, and hubs for usb3 stuff are
> > showing up, which would allow to have something besides the currently
> > mounted 1Tb seagate usb3 backup disk. With a hub, and I found them as
> > wide as 13 ports just last week, how hard would it be to make one of
> > these things with a usb3 interface, just plugging in enough for the
> > number of axises the machine has?
>
> I am planning something similar, FPGA was my first thought.
>
> ------------------------------------------------------------
> ------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Emc-users mailing list
> Emc-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/emc-users
>



-- 

Chris Albertson
Redondo Beach, California
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to