The physical stuff is well described in the links above.
The single wire communication can be a bit annoying since transmit and receive ports are connected together.
Everything sent on the wire will also echo back to the one who sent it, so the software must be prepared to deal with these echoes.
The data sent from a controller is configured in data packets, the header information states what the data is for each data packet. Data packets are sent i serial order.