Here is a simple yet useful post from fpga4fun.com, it visually breaks down into sections, the way a stepper controller connects your CNC mill to a PC.
Here’s a typical hobbyist CNC setup.
A PC uses its parallel (printer) interface to connect to the stepper controller, which in turn drives the stepper motors (sometimes simply called “steppers”) of the CNC mill.
Assuming our mill has three stepper motors, let’s zoom in to see more details.
The PC sends two signals per stepper motor (Step & Dir).
Then the stepper controller generates the stepper outputs (4 to 8 wires per stepper, depending on their types).
The PC must be dedicated to the CNC task because the timing of the Step/Dir signals must be as precise as possible. The PC must either run in DOS mode, or in Windows/Linux but with all other tasks shut down.
The Step and Dir signals are easy to understand. Each Step pulse equals one step of a stepper motor, and Dir controls the direction. For example, let’s move 4 steps clockwise, and then 4 steps counter-clockwise.
Now the timing of these signals needs to be controlled.
The stepper controller requires a minimum step pulse width (typically 1µs).