Today I was playing with a basic DCC setup. I'm not experienced with SMD so I used a commercial locomotive decoder from Tams. The signal booster I built myself and for command station I used an ARM Maple compatible board running my own software. It's a very simple setup just to have a feeling how DCC works. I only used the most basic "direction & speed" command to control the locomotive decoder.
The booster is using L298 H-bridge IC to drive the tracks. The power supply is 12V DC, but with the L298 and the locomotive decoder the final voltage to the LEGO motor is probably dropped to around 10V.
There are 2 signals going from the command station to the booster. "Enable" to turn on/off the track power and "data" which determines the AC signal phase. For short circuit protection the booster send back an analog "sensing" signal so the command station can measure the current used by the locomotives. The fourth cable is the ground.
To support DCC the 9V train motor needs to be modified. The AC signal from the track needs to be feed to a decoder which than controls the original DC motor. There are tutorials on the web how to put the decoder inside the train motor, but I decided on an external solution. It's more flexible and the decoder I'm using anyway wouldn't fit in the motor. It can handle 1A current and cheaper as smaller sized decoders. I'm planing to convert lots of trains so price matters. My solution uses Power Functions connectors. The outer pins are connected to the tracks and the inner pins are connected to the motor (just like a standard power functions motor). In theory one decoder could even drive two motors and later I can also connect the decoder's two auxiliary signals to lights.