CEC implementation best practices
Clearly, the CEC feature of HDMI holds great potential for making complex home theater systems easier to use. The standardization of HD device control protocols through the CEC feature enables consumers to reduce the number of remote controls they need to control their HD systems, since CEC allows a single remote pointed at a single device to send commands to any other CEC-enabled device connected to it by an HDMI cable. This means, for example, that a TV remote can be used to control not just the TV, but also the DVD player, set-top box, or any other device with an HDMI-CEC connection, without any need to program the remote with manufacturer-specific codes.
CEC can automatically power-on the appropriate products, route the DVD player's audio output through the A/V receiver to attached speakers, and route the player's motion picture to the Digital TV. Likewise, selecting a channel on the set-top box will cause television audio to replace movie audio on the speakers and a television picture to replace the movie picture on the Digital TV.
Further, pressing the RECORD button on the recording device will cause the television program on the "root" to be automatically routed to and recorded on that device. In short, CEC enables automatic equipment discovery and simple "one touch" operation in HDMI-interfaced systems.
Implementation of CEC functions are occasionally integrated within custom hardware as shown architecturally in Figure 2 below:
View full size
Figure 2: Example CEC implementation architecture
The HDMI receiver integrated circuits (ICs) can be equipped with CEC technology. A micro-controller can process the command protocol, and subsequently control programming registers contained within the HDMI-based ICs.
Strong component-level CEC interoperability performance requires that all devices behave according to clear conventions, including:
Next: HAL and APIs
- Mutually agreed upon buttons/functions on remote control units needed to perform specific network-level function;
- Device state behavior definitions made clear, with functional testing:
- Example: some devices send the "Power" command before initiating an action just to be sure that the device is powered on, but this functionality is not clearly defined. Some devices interpret it as a "Power Toggle" and will power-off if already on, causing follow-up command to be ignored;
- Example: some devices do not check the menu language of the root TV when the system is powered on, resulting in a false language setting;
- Example: some devices only interact with other devices if the TV sends their own 'DeviceVendorID' as broadcast -- otherwise they are visible to others;
- Up to 14 connected devices are actually supported and actual functions are interoperable, including:
- One Touch Play -- switches on all necessary devices with a single button press;
- One Touch recording -- easily starts a recording: what you see is what you record (WYSIWYR);
- System Standby -- switch ALL CEC devices to standby mode;
- Deck Control (+User Control Pressed) -- allows all playback devices (e.g., DVD or deck) to be fully controlled by another device (e.g., TV);
- Tuner Control (user Control Pressed) -- allows a device (e.g., TV) to control the tuner of another device (e.g., STB);
- Remote Control Pass Through " allows actual pass through of remote control commands received by one device (typically TV) through to another device in the network;
- "Standby" function operates correctly on every remote control of the CEC connected chain;
- "Volume up/down" function operates correctly on every remote control of the CEC connected chain;