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