Direct Memory Access.
> In the case of the FPGA cards what it basically means is that the card itself 
> transfers its data (encoder counts, current step, I/O pin status, PWM 
> outputs, 
> step rates) to or from the host CPUs memory on its own rather than the host 
> CPU doing a series of programmed access cycles (this is called Programmed I/O)
>
> The advantage of DMA over Programmed I/O is that with PCI, theres quite a bit 
> of overhead in single accesses, while burst accesses are much faster (burst 
> accesses being a block of transfers grouped together) DMA uses burst accesses 
> so it can be about 20 times faster.
>
> Practically this is not of much use at 1 KHz servo rates with normal 3-5 axis 
> CNC machines, however there are places where a 1 KHz servo rate is no where 
> fast enough. This has to do with the mechanical bandwidth of the system 
> controlled by the servo. A rule of thumb is that the sample rate should be 
> 10 to 30 times the system bandwidth. A large CNC machine with ball screws 
> may have a bandwidth of 50 - 100 Hz, so 1 KHz sample rate is fine.
> A small system with a linear motor may have a 350 Hz bandwidth. Here you may 
> want a 4 - 8 KHz sample rate. At these high sample rates, without DMA, the 
> CPU 
> will be spending a significant portion of its time doing card access cycles.
>
> The access time problem also comes up where many axis are used (we had a 
> customer set up a system with 40 Axis recently)
>   
Does that mean for most servo based machines, EMC sampling the encoders 
at 1khz is good?  I think I remember reading the parallel port can get 
accessed at 10khz, so does that imply the PCI 5i20 is overkill if I just 
want to read 3 encoders for 3 axis and the parallel port based mesa card 
is more then enough?

Just an off the cuff idea, but would it be possible with a proper hal 
driver to have a microcontroller count encoder pulses and then have emc 
query the microcontroller across a serial port in realtime using a 
custom hal driver?  with a baud rate of 115200 maybe it's possible to do 
1000 samples a second?

So with a hypothetical setup of a mesa card, a brushless dc servo drive, 
and a 1000 CPR encoder, the mesa card's only job would be to read the 
encoder and report back to EMC and EMC would send the pwm signals out 
parallel port pins to the servo drive?





------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to