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. ==See also==