Implementation of a PC-based motion controller/robot controller with USB interface [3]

Motion-control FPGA:  

  • Reads the  status of external sensors and servo drives and sends it  to the PC. 
  • Receives commands from  the PC and writes them to external devices and servo drives.

 

Internal structure of the motion-control FPGA:

motion-control-fpga-1

  1. command-pulse-generator module: generating command pulses for servo drives.
  2. quadrature-counter module: counting quadrature  pulses from servo drives.
  3. output-latch module: latching parallel output signals  to external devices and servo drives.
  4. input-latch module:  latching parallel  input signals from external sensors and servo drives.
  5. USB-interface module: reading/writing data from/to  USB bus. 
  6. Finite-state-machine module: controlling  the data flows among the above modules.

Structure of motion control boards

1.  Typical structure of motion control boards

motion-control-asic

 

2.  Structure of   “advanced” motion control boards 

motion-control-asic-1

 

3. Structure  of a “simple” FPGA-based motion control board

motion-control-board-usb

  • Function blocks of the  FPGA:
    (1) command pulse generator
    (2) encoder pulse counters
    (3) I/O latches