The HDMI-CEC bus
Physical and logical addresses
All CEC devices have both a physical and logical address, whereas non-CEC devices only have a physical address. The physical address is allocated though an algorithm described in the HDMI specification. But contrary to DDC which is point to point, CEC is shared between all devices in the HDMI “tree” (so it’s a bus), and should be interconnected between all inputs and one output of all devices, even those not implementing CEC.
Whenever a new physical address is discovered, a CEC device shall allocate its logical address and report the association between its logical and physical addresses by broadcasting the information on the bus. This process allows any node to create a map of physical connections to logical addresses.
|1||Recording Device 1|
|2||Recording Device 2|
|4||Playback Device 1|
|8||Playback Device 2|
|9||Playback Device 3|
|11||Playback Device 2|
|15||Unregistered (as initiator address) or Broadcast (as destination address)|
Sink and sources
Within HDMI-CEC, devices are of two kinds, TVs and switches inputs (named sinks) and playback device, recording device, switch outputs ... (named sources). By definition of the HDMI specification, there is only one TV or display within a CEC bus. Most seems to be not that keen on being controlled. Players or recorders, however, definitely support quite well to be controlled.
Only one TV is supposed to be part of the bus (with the physical address 0.0.0.0). But a TV at a physical address other than 0.0.0.0 shall try to allocate the ‘Specific Use’ (14) address. If address 14 is already allocated it shall take the ‘Unregistered’ Logical Address (15).