Electrical – Self-clocking driver / transceiver

clockcommunicationdifferentiallvdsmanchester-coding

I'm looking for a way to transmit a clock signal and data over a single line,
perhaps using a self-clocking signal such as Manchester coding.

The design I'm working on has a number of chained units, with data fed into the first unit in the chain and passed along to subsequent devices. In order to make connection easy I'm using USB connectors, so I have four lines (VCC, GND, D+, D-) for communications. Ordinarily I'd just use one for clock and the other for data, but I'm concerned about data corruption and cross-talk over the distances involved (1ft or so). As such I'm planning on combining both signal and clock onto one line, then using LVDS for improved noise resistance – after all, USB is differential in the first place!

This would likely be trivial with a microcontroller, but I'm trying to avoid that for both complexity and cost reasons. Is there such a thing as a transceiver IC which translates between discrete clock and data pins and a combined self-clocking signal? What sort of keywords should I look for?

Best Answer

Self clocking serial protocols exist in a thousand variations everywhere magnetic recording to primitive ethernet communication, telephony to industrial and SCADA communication. These protocols and their designs have existed for over 40 yrs in my use as well as others.

There are many implementations depending on the bit rate, and expected BER, SNR.

The simplest encoders use 1T,2T transition intervals where 2T = is the 1/f, baud rate and have been defined as Bi-Phase or Manchester codes for Mark, Space and Invert define the toggle on centre bit transitions or Bi-Φ{M,S,I}. Early Hard Disk drives and present day Floppies conserved bandwidth using MFM which used 2T,3T. This expanded to Run-Length Limited (RLL) codes used in ethernet and many other serial comm. links which stretch the interval between clock transitions.

Once you choose a bit protocol, for clock and data sync, you must choose a frame sync, byte sync and bit orientation and message protocol , of which there are thousands , so why reinvent the wheel?

enter image description here

Encoding uses the Clock and Data into an XOR gate for Mark (1) or Space (0) ( from early telegraph terms) to use a normal or inverted clock. Depending on the frame length and number of 0's, 1's or transitions, one chooses the best approach.

Simple Decoding uses a clock recover with a pulse edge created from every edge with XOR gate delay of <5%T and then a 1shot of 3/4T to sample the data value. Sophisticated Rx discriminators will integrate the entire bit energy over 1T interval.

Filtering is essential to avoid group delay in the signal band which causes bit shift and Intersymbol Interference. Critical Rx use Raised Cosine filter, while non-critical Rx use LPF 5xf approx. Differential signalling is better for CM noise immunity when signal are low compared to EMI.

There are many implementations freely available in HDL, AVR and programmable logic as well as discrete "old technology" one shots and XOR gates. Filters may be analog but some use more sophisticated digital filtering to minimize ISI and maximize SNR to get highest Bit Error Rate (BER), which as we know from Shannon's Law is directly related to SNR.

Volumes have been written on this subject decades ago , so it you seek, ye shall find.

Remote Controllers at low f use a pulse stretch or delay or duration modulation for 1's & 0's which compromises SNR/BER ratio but can work in a low noise environment.

Don't forget to include error detection, (Parity, or Hamming Code or CRC, or ECC ) and Clock loss of sync detect. Then you need frame sync detect, byte sync clock Error Detect logic etc.

Although not cheap or well stocked, this uses a 16x or 32x clock up to 1Mbps https://www.digikey.com/products/en/integrated-circuits-ics/specialized-ics/686?k=manchester&k=&pkeyword=manchester&v=20&FV=ffe002ae&mnonly=0&ColumnSort=0&page=1&quantity=0&ptm=0&fid=0&pageSize=25

> Is this to decode CANBUS ISO 11898 signals?

If so then look at SCAN921226H Receiver chip $10 with 8bit parallel out and timing signals.