On Fri, Oct 26, 2007 at 08:37:47PM -0500, Javid Butler wrote:
> The real problem is the endpoint device. There will have to be some way to 
> decode the signals from the ethernet into the actual drives. It will 
> probably be a while before cost effective drives are available with ethernet 
> inputs. Until then we will have to use decoders that provide translation of 
> the ethernet commands to individual bits such as are on the parallel port.

Is it essential that it be ethernet? If Jon's custom host controller had
one or more RS485 ports (preferably 4-wire full-duplex), then any fast
microcontroller with one or more serial ports could potentially serve as
the endpoint controller.

With on-board multiple-channel PWM generators (e.g. with 64 MHz clock) &
counter/timers to offload the CPU, and interrupt service routines being
the natural order, a reasonably fast uC can handle velocity feedback,
and calculating PID without too much fuss. (But high speed machine
control may be more demanding.)

Something like the AT90PWM3B, while only clocking 16 MIPS, needs only
H-bridges and drivers added, to control a BLDC from its on-chip
synchronised power stage controllers (specialised PWM). I haven't tried
the ready made card at
http://www.atmel.com/dyn/products/tools_card.asp?family_id=607&family_name=AVR+8%2DBit+RISC+&tool_id=3764
Estop can be fed directly into the output power stage controllers, if
desired.

The 100 MHz 8051 core also sounds interesting (as an axis controller)
from a hardware point of view,  but it's famously mismatched for 'C'
coding, due to its stack limitations, and accumulator-centric
architecture. The (possibly consequential) lack of gcc support, is
probably the biggest hindrance to my eye, followed by the greater wealth
of on-board peripherals on competing products. (Having used it
professionally for nearly 2 decades, I have a soft spot for it, though.)

A distributed architecture appeals because it is easier to
upgrade/rebuild if the host controller only reads gcode and says "go to
x, at speed s". There are no precison dc control voltages dodging EMI
from power electrics either. Incidentally, with eeprom as well as flash
in these microcontrollers, PID and other parameters can be stored in the
drive, and updated via the host. (No panicked search for old data files
when bringing a mothballed drive back into service.)

Trying to make the serial communications super-hard real-time could be
the hard way to do things. Where several axes need to be synchronised,
one axis controller can put its encoder pulsetrain directly onto an
RS485 synchronisation bus, and slaved axes feed that into on-chip
hardware counters, either interrupting when the count is big enough to
act on, or being read at the sample interval to check if the axis feed
ratio is being maintained. Especially at high speeds, with high encoder
line counts, a micro will still have to sample. (1 mS & 16 MIPS = 16,000
instructions per interval) 

The synchronising source can be chosen by selecting which axis
controllers send, and which receive on a bus. The synchronisation busses
would necessitate running a second cable between controllers, I figure.
(I have some cat5 cable and some oil-resistant metallic flexible
conduit, which I figured might do.)

Would a 64 byte packet be required to issue a motion command
to an axis controller, addressing included? (Since commands and status
reports need not be nanosecond realtime, now that sync is on separate
busses, does it hurt that an AT90PWM3B's 2Mb/s maximum baudrate extends
transfer time to 320 uS for 64 bytes?) Let's send 32 bytes. ;-)
Like the 8051, the AVRs have hardware address frame recognition, but
must compare addresses in software, so an RS422-style point-point
connection would be kinder.

If ethernet is used, it'd surely be necessary to be able to DMA the data
into the micro, or the benefit of 100 Mb/s would be lost. Now we'd need
an ARM chip as axis controller? Incidentally, if linux is to run on the
host, then ARM would be a better choice than the NXP beast? (Though
eCos is well endowed in the ISR area, and more suited to real-time.)

Erik

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to