A reasonable line code is to try injecting frequency division
multiplexed signals over 2 MHz to 10 MHz - transmitting at a quiet
part of the spectrum. At base level: 1 is a sinewave on, 0 is a
sinewave off. A reasonable self-clocking constant rate line code is to
use 1011 as 0 and 1010 as 1. Error correction would be performed by
repeating packets larger and larger number of times in succession
until a successful acknowledgement came back. The baud rate would
depend again on the channel capacity - i.e. the SNR and could vary
from 1 Mb/s down to 100 b/s. Just scan through the frequencies with a
mixer suppressing image response by the phasing method and a suitable
IF strip, followed by the final mixer and ADC. Just scan through the
frequencies for activity. A packet would be bit reversed and be
preceded by a framing preamble and would have a MD5 (or SHA1)
checksum. There would be a 64 bit packet sequence number and a 64 bit
packet type. Acknowledgement packets would give a list of packet
sequence numbers. Acknowledgement packets would be acknowledged. There
would be sliding windows.
That's all you need for a reliable point-to-point link over power -
DEC or AC connections.
"Buses are bosons."