DC motor drivers are necessary like all motor drivers because of the inability of microcontrollers or other processors to provide high voltages and currents enough to drive electrically heavy loads such as motors. There are two types of DC motors: brushed and brushless. These motors need different driving mechanisms because of their commutators. In brushed DC motors commutation is done by the brush in the motor, so driving these motors are relatively easy. In brushless DC motors there is not a brush to commutate the current, so this job has to be done electrically. Therefore driving brushless DC motors are a bit complex compared to driving brushed DC motors.
Driving brushed DC motors is straightforward in principle but not quite so simple in practice. For the simplest small applications you can run the motor directly from a power source and use a potentiometer to control the speed and a switch to reverse its direction. If the motor is to be part of an embedded application you need a driver IC and some control logic. Brushed DC motor drivers consist of circuits called H-bridges. H-bridges are H-shaped circuits that are used to drive brushed DC motors bidirectional.
Brushless DC motors need sophisticated electronic control circuitry as well as some way to continuously determine the position of the rotor. The position of the rotor can be determined either by a Hall effect sensor or by measuring changes in the back EMF at each of the armature coils as the motor rotates. Whereas the speed of brushed DC motors is determined by the applied voltage, the speed of brushless DC motors is determined by the frequency at which it is switched. The motors are driven by PWM pulses.