AV.link

AV.link, also known under the trade names nexTViewLink, SmartLink, Q-Link, EasyLink, etc., is a protocol to carry control information between audio-visual devices connected via the SCART (EIA Multiport) connector.

It is standardised as CENELEC EN 50157-1.

The Consumer Electronics Control (CEC) communication channel in HDMI and PDMI is based on AV.link.

Electrical characteristics
AV.Link uses a single wire in an open collector configuration. It is passively pulled up to 3 or 3.3 V, and may be pulled down by any device on the bus. Total bus capacitance is a maximum of 7300 pF (ten devices at 100 pF each, plus nine cables at 700 pF), and signal transitions are correspondingly slow: 333 bit/s, with 50 μs fall time and 250 μs rise time.

Each bit transferred begins with a falling edge. The duration of the low period determines the value.

Data bits are 2.4±0.35 ms long, with 1 bits having a low period of 0.6±0.2 ms, and 0 bits having a low period of 1.5±0.2 ms. Receivers observe the data line at 1.05±0.2 ms after the falling edge to determine the bit's value.

Every message begins with a special start bit, 4.5±0.2 ms long, with a low period of 3.7±0.2 ms.

A transmitter must listen to the bus as it transmits; the receiver may hold it low, turning a transmitted 1 bit into a 0 bit. This is done, for example, to acknowledge a transmission.

If a receiver detects an error in the received data, it holds the bus low for 3.6±0.24 ms; this causes the transmitter to abort the message and retry from the beginning.

A message consists of a start bit, followed by a series of data bytes. Each byte is actually transmitted as 10 bits:
 * 8 data bits, most significant bit first,
 * An end-of-message bit is 0 to indicate that more bytes are being transmitted, or 1 to indicate not, and
 * An acknowledge bit is transmitted as 1, but overwritten to a 0 bit by the receiver to acknowledge receipt.
 * For broadcast messages, the acknowledge bit is inverted: it is overwritten to 0 if any receiver rejects the message.

Each message begins with an address byte specifying the 4-bit initiator and recipient addresses. If two initiators begin transmitting at the same time, one of them will transmit a 0 bit while the other transmits a 1 bit, and the latter will observe the conflict and cease transmitting until the bus is idle again. (Note that it must be prepared for the case that the incoming message is addressed to it.)

An address byte sent with EOM=1 is a simple "ping" to check if the addressed device exists and is powered on. Otherwise, it is followed by an opcode byte, and parameters as required by the opcode.

When a device is powered on, it chooses an address and sends a ping to see if that address is claimed by another device. If no acknowledge is received, the address is free and may be kept. Otherwise, the device tries another address.