Moloch - USB link for motion control
The USB interface uses a Cypress Semiconductor EZ-USB circuit which allows high-speed data transfer based on the USB 2.0 standard. It includes an 8051 microprocessor that manages the USB communications. A firmware developed for this microprocessor enables the board containing the circuit to be recognised by the PC as a motor control system with particular features.
When a board is connected to the USB port of a PC, the operating system needs a driver to use the functionalities of the card. The required description files were written and a control software for the board was developed which allows the user to send commands to the card via a terminal or batch files.
A set of commands allows the user to control the board via its software: different trajectories can be designed and displayed in MatLab, they can be downloaded onto the motor control card, the motor can be controlled, and actual trajectories can be plotted and compared to intended trajectories.
On the motor control board, the Cypress Semiconductor EZ-USB circuit is connected to a programmable logic device (FPGA Spartan 3). The PLD communicates with the USB circuit through an interface block buffer that transfers the data to the control circuit of the motors. The interface block buffer copies the trajectories from the PC to a local memory (DDR), transfers the trajectory points of each sample from the DDR to the control circuit of the motors, copies the actual trajectories returned by the controller to the DDR and, upon demand, transmits the actual trajectory from the DDR to the PC.
Moloch is a complete, USB-based circuit control system. It includes:
- PC software
- firmware on the USB circuit
- interface block buffer for programmable logic circuit (hardware).
The USB bulk communication allows the transfer of large amounts of data at high speed on this type of medium.