DiSEqC is the standard protocol / language used for serial communication between the sat receiver and other devices on the end of the coax (similar to i2c). If you have some sort of switch or motor in series with the LNB on the dish, this is the current modern method used to talk to the devices in-between. This works by using a 22kHz tone up the wire in the direction of the LNB, by pulsing / modulating it with data on top.
Switching of the LNB polarization was always traditionally done through the switching of a voltage on the line, but this can also be done through DiSEqC for some of the new LNB's. It would appear that for most sat receivers they seem to do both (DiSEqC and voltage switching) just to be sure / backwards compatible.
With a standalone receiver there are several standards in place for the protocol, each version increases the capabilities of the last
taken straight from wikipedia
In some cases DiSEqC 1.3 has been used to refer to DiSEqC 1.2 + USALS
most modern cheap FTA (Free to Air) standalone Sat receivers appear to support DiSEqC 1.2 / USALS no problem (but it's always best to check the spec online)
I've taken an interest in this myself because I've got a USALS Motor attached on the line and I need the ability to rotate the dish to different sats
With DiSEqC 1.2 you always needed to tell the motor specifically which angle it needs to go to for which satellites. This could make the initial setup of a dish more difficult as it was always a question of getting the angles right
With USALS this added a form of automatic calculation into the mix for the receiver to work out for itself which angle the motor should be pointing to, for a given sat.
For a PC / Linux, the calculation would need to be made client side within software
This is a thread I've located mentioning the algorithm used
It looks as if this is currently supported within vdr / MythTv
From what I've seen, from a hardware point of view a USB / PC Sat receiver such as the Pinnacle 452e can probably send or receive any form of DiSEqC command down the coax to the device on the other end. It could probably even support the bi-directional 2.0 protocol, assuming it's written into the client software that's issuing the DiSEqC commands through the DVBS API.
The main limitation appears to be the software driver / application supplied with the device, with the standard Windows driver it would appear that a multi-switch is supported (DiSEqC 1.1) to select more than one LNB or dish, but not a Motor (DiSEqC 1.2 / USALS)
Since we have a much greater freedom with the Linux Driver I hope to be able to send / receive commands down the line using this method. It would appear MythTv / vdr have support for motor / USALS, but the current command line tools within V4L (Video 4 Linux) only support DiSEqC switches
**TODO look into command line program for DiSEqC 1.2 / USALS**