Re: Homebrew STG card - Firewire or USB ?



> From: Jon Elson <jmelson-at-artsci.wustl.edu>
> Well, first, the USB is present on many PC motherboards, already.
> Linux support is supposed to be there, too.  12 Mbits/sec seems iffy,
> but if the protocol was efficient, then it is plenty.  Let's say you have 3
axes,
> and need to receive a 24-bit position and send a 12-bit DAC value
> for each axis, every cycle, which we will set to 2 KHZ.  Now, that's
> 3 axes x 5 bytes/axis x 8 bits/byte x 2000 cycles/sec = 240,000 bits/sec,
> or 2% of the available bandwidth.  (now, actually, there would need to
> be a block out and a block in every cycle, but it still looks like there
> has got to be enough to do this, and add more axes, crank up the cycle
> rate, and still be in the clear.

Thanks for this analysis! Hans W made a similar argument for high speed
serial connections, but I recall that Fred and I talked about this one day
and we came to the conclusion that for 8 axes plus 8 bytes of digital I/O,
plus some allowance for protocol overhead you're talking nearly 1Mbit/sec (we
figured it the way you did) and that figure has stuck in my head ever since.

As for Linux support there is supposed to be some stuff in the 2.3
development kernel.

> Clearly, data rate is not a problem.  I have no idea what the driver
> performance of the Linux end of the USB support is, but it could be
> subverted to become part of the RT package, if necessary.  That
> would be extra work, of course, but might be necessary to be sure
> the necessary I/O is performed on time.

I think you're right about this. I wonder where the USB interface is in
hardware space? I/O ports? IRQs? Could we just take it over and program it
ourselves at it's lowest level assuming we were the only device hooked to the
bus? I think I read that the USB is a host master arrangement, so the USB
software could be brought over to the real-time side of Linux which would
then assign top priority to CNC related data transfers and defer all others.

> Finally, there is the performance of the far-end unit, such as the
> Active-Wire boards, which are VERY interesting, but there isn't
> much performance info.  Finally, from the Active-Wire documents,
> I couldn't tell how much I/O you really get from their main board.
> Can you stack several of the DAC, opto-isolator, motor control,
> etc. add-on boards on one Active-Wire USB board, or do you
> need another $59 USB board for each add-on board?
> Has anyone taken a look at the Linux support for this thing?
> I couldn't find any reference to the Linux support other than
> where it says "drivers available now".

1. I think I read that it's 16 bits of I/O.
2. I couldn't find anymore Linux stuff than you did.
3. I'd be more comfortable if:

	A. We built the "far end" from scratch ourselves, rather than relying on a
company that could disappear at any time. It looks like they used an
Anchorchips (Cypress) USB microcontroller as the basis of their board. I
would hope that you would get at least a skeleton program for this device if
you bought the (hopefully low cost) development kit.

	B. I could find a simple, jargon free explanation of the USB!

Matt

P.S. I've started reading at the Cypress site and I may be getting item #3B
(or near enough). I'll do a little digging and see what comes of it...




Date Index | Thread Index | Back to archive index | Back to Mailing List Page

Problems or questions? Contact