You are on page 1of 48

2008

Developers Conference
Taipei, Taiwan

An Introduction to Consumer Electronics Control (CEC)


Quantum Data, Inc.

What is CEC? Quick Facts

CEC stands for Consumer Electronics Control. Its a one-wire bus (pin 13) that snakes through an HDMI system - allowing products to pass messages to one another. CEC runs at approx. 400Hz, so including flow control bits and idle timing requirements on the line, it can send approximately 30 bytes each second. Commands need to be very efficient.

CEC: A Bit of History

In Europe, there was an analog predecessor to HDMI known as the SCART interface. Like HDMI, SCART carried audio and video signals through one cable. The SCART cable had a onewire bus for controlling a home theater system. This was branded as AV.link by Philips, among others. This bus supported one touch play, standby, etc.

How To Find CEC Devices

CEC is available in many HDMI products today! Limited multi-vendor interoperability.


Name

Manufacturer

Panasonic

EZSync / HDAVI Control (USA), Viera Link (Japan)


Bravia Theater Sync (USA), Bravia Link (Japan) AQUOS FamiLink CE-Link (USA), Regza Link (Japan) AnyNet+ SimpLink

Sony Sharp Toshiba Samsung LG

What is the benefit of CEC?

Todays HDMI systems are comprised of separate components (digital set top boxes, audio receivers/amps, a DVD player, etc.), which are not always easy to configure & operate. The general public has difficulty with the how/when/why to set up these devices in order to use them. The more devices, the more complex is the setup. CEC is a solution to this problem! CEC uses signal routing to allow devices to be configured across a system - rather than just point-topoint. Examples are one touch play and one touch record which greatly simplify the user experience.

CEC Messaging

CEC Messaging Quick Facts

CEC messages generally consist of two functional categories: Request asking another device(s) to take action or to give information (e.g. asking a device to play, go into standby, switch sources, or request a devices physical address). Informative status messages and messages describing where a devices is in a network (e.g. report physical address, report vendor ID). CEC messages can also be grouped in terms of the intended target device: Directed Message - sent to a single CEC device. Broadcast - sent to all devices in the CEC network. CEC messages can be up to 16 blocks total (including the header and opcode blocks). If they were longer, they would impede access to the CEC bus due to the speed of the bus. (Sending 16 blocks successfully takes about 0.4s). The shortest message that can be sent is the polling message, which is simply a start bit followed by a header block. Devices must respond to a message in 1 second or less, but the desired response time is 200 msec.

CEC Messaging Blocks and Frames


CEC Header Block
Logical Address of Initiator Logical Address of Destination End of Acknowledgment Message

A CEC message block includes the 8 data bits as well as two extra bits: End of message set to 0 for every block except the final block of the message where it is set to 1.

CEC Data Block


Information Bits End of Message Acknowledgment

Acknowledgement (ACK) set to 1 for every block.

CEC Frame

Example Messages: Image View On 40 04 Routing Change - 5F 80 13 00

Start Bit

Header Block

Optional Data Blocks

CEC at Work

CEC at Work One Touch Play


DVD Image View On (40 04) DTV

DVD Active Source (4F 82 11 00)

ALL

01 02 03 04 05 06

00:00:11.01 00:00:11.07 00:00:12.21 00:00:18.41 00:00:12.21 00:00:18.41

00:00:00.00 00:00:00.60 00:00:01.60 00:00:06.20 00:00:01.60 00:00:06.20

PLAYER1->TV

CEC

CEC CEC CEC CEC CEC CEC

IMAGE VIEW ON ACTIVE SOURCE REQUEST ACTIVE SRC ACTIVE SOURCE REQUEST ACTIVE SRC ACTIVE SOURCE

PLAYER1->ALL CEC AUDIO->ALL CEC

PLAYER1->ALL CEC TV->ALL CEC

PLAYER1->ALL CEC

DVD

AVR

DTV

Request Active Source (5F 85)

Request Active Source (5F 85) ALL

DTV

DVD Active Source (4F 82 11 00)

DTV Request Active Source (0F 85)

ALL

AVR
ALL

DVD
Active Source (4F 82 11 00)

DVD

Game System

STB-DVR

Device functions, actions, message simulation only, 3 ports AVR

CEC at Work One Touch Play


STB-DVR DTV

Image View On (30 04)


Set Stream Path (03 86 13 00)
01 02 03 00:00:11.01 00:00:11.07 00:00:12.21 00:00:00.00 00:00:00.60 00:00:01.60 TUNER->TV TV->TUNER TUNER->ALL CEC CEC CEC CEC CEC CEC IMAGE VIEW ON SET STREAM PATH ACTIVE SOURCE

STB-DVR Active Source (3F 82 13 00)

ALL

DTV
Ch. 2 Ch. 3 Ch. 4

DTV Remote

AVR DVD Game System STB-DVR

CEC at Work Device Menu Control


STB-DVR Image View On (40 04)
01 00:00:11.01 00:00:11.07 00:00:11.01 00:00:11.07 00:00:12.21 00:00:18.41 00:00:19.00 00:00:19.59 00:00:00.00 00:00:00.60 00:00:00.00 00:00:00.60 00:00:01.60 00:00:06.20 00:00:00.59 00:00:00.50 PLAYER1->TV CEC CEC CEC CEC CEC CEC CEC CEC CEC IMAGE VIEW ON ACTIVE SOURCE MENU REQUEST MENU STATUS USER CNTL PRESSED USER CNTL RELEASED MENU REQUEST MENU STATUS

DTV

STB-DVR Active Source (4F 82 11 00)

ALL

02 03 04 05 06 07 08

PLAYER1->ALL CEC TV->TUNER TUNER->TV TV->TUNER TV->TUNER TUNER->TV TV->TUNER CEC CEC CEC CEC CEC CEC

STB-DVR Menu Request (Activate) (03 8D 00)

DTV

DTV

Ch. 2 Ch. 3 Ch. 4

DTV Remote

Menu Status (Activate) (30 8E 00)

User Control Pressed (03 44 XX)

User Control Released (03 45 XX) Menu Request (Deactivate) (03 8D 01)

AVR DVD Game System STB-DVR

Menu Status (Deactivate) (30 8E 01)

CEC at Work: One Touch Record


DTV Record TV Screen (10 0F)
01 02 00:00:18.41 00:00:69.51 00:00:69.71 00:00:00.00 00:00:51.10 00:00:00.20 RECORDER->TV CEC TV->RECORDER CEC RECORDER->TV CEC CEC CEC CEC RECORD TV SCREEN RECORD ON RECORD STATUS

STB-DVR

Record ON [Digital Service ID] (01 09 02)

03

DTV
Record Status [Recording Digital Service] (10 0A 02)

AVR DVD Game System

STB-DVR

CEC at Work Deck Control


DTV Play [Forward] (04 41 24)
01 00:00:11.01 00:00:11.07 00:00:11.01 00:00:11.07 00:00:00.00 00:00:00.60 00:00:00.00 00:00:00.60 TV->PLAYER PLAYER->TV TV->PLAYER PLAYER->TV CEC CEC CEC CEC CEC CEC CEC CEC PLAY FORWARD PLAY STATUS SKIP FORWARD SKIP STATUS

DVD

Deck Status [Play] (40 1B 11)

02 03 04

Deck Control [Skip Forward] (04 42 01)

DTV
Deck Status [Skip Forward] (40 1B 17)

DTV Remote

AVR DVD Game System STB-DVR

CEC at Work - Shutdown


DTV Standby (0F 36)
01 00:00:11.01 00:00:00.00 TV->*ALL* CEC CEC STANDBY

ALL

DTV

AVR DVD Game System STB-DVR

CEC Addressing

CEC Addressing

CEC assumes that all AV source products in a system are directly or indirectly connected to a root display (DTV). HDMI connections form an upside-down tree, with a display as the root, switches as branches, and various source products as leaf nodes. There are two types of addressing:

Logical Physical

Logical Addressing

Logical addressing is what CEC uses to identify a specific instance of a specific device type. When messages are sent over CEC, the logical address identifies both the sender (Initiator) and intended receiver (Follower) of the message. Logical addressing is done with nybbles (4-bit numbers, allowing for addresses from 0-15). Because of this, the header blocks are simply in to, from format the first four bits sent are the address of the initiator (or sender), while the latter four bits are the followers (receivers) address. CEC Header Block
Logical Address of Logical Address of End of Acknowledgment Initiator Follower Message

Logical Addressing (continued)

Logical addresses are split among device types:


0 is a TV 1,2 & 9 are recorders (HDD, DVD, BD, etc.) 3,6,7 & 10 are tuner devices (i.e. set-top boxes) 4,8 & 11 are players (DVD, VCR, Blu-Ray, etc.) 5 is an audio system 12 & 13 are reserved 14 is a wild-card 15 means Unregistered if its the initiator address, Broadcast if its the follower address.

Physical Addressing

Physical addressing describes the topology, i.e. what devices are between the CEC device and the TV, and through what inputs it is connected. Physical addressing is a required feature for ALL HDMI devices (regardless of whether or not they support CEC), and is essential for routing control, among other things.

Physical Addressing Description

A TV (that does not have HDMI outputs) will use physical address [0.0.0.0]. Any device with an HDMI output will have an address that contains at least one non-zero number, which is grabbed from the HDMI vendor specific data block (VSDB) of the sink devices EDID. Devices with both a source and a sink must read the physical address from the EDID of the sink device that it is attached to, and configure its own EDIDs on its sink ports so that they contain the proper physical addresses.

CEC Addressing Physical Addressing


DTV
PA 0000

AVR 1100 1200 1300

PA 1000

DVD

Game System

STB-DVR

PA 1100

PA 1200

PA 1300

Physical Addressing VSDB of EDID

1100

CEC Addressing Logical Addressing


DTV Report Physical Address (0F 84 00 00) Unregistered Polling Message (F5) AVR ALL Report Physical Address (5F 84 10 00) DVD Polling Message (F4) DVD ALL Report Physical Address (4F 84 11 00) Unregistered Polling Message (F4) Acknowledged Game System AL L AVR
01 02 03 04 05 06 07 08 00:00:10:0174 00:00:11.0274 00:00:11:0639 00:00:11:1639 00:00:11:1739 00:00:11:1990 00:00:11:2018 00:00:11:2140 00:00:01:0100 00:00:00:0060 00:00:00:1000 00:00:00:0100 00:00:00:0251 00:00:00:0028 00:00:00:0122 00:00:00:0100 TV->*ALL* UNREG->AUDIO AUDIO->*ALL* CEC CEC CEC CEC CEC CEC CEC CEC CEC CEC CEC REPORT PHYSICAL ADDRESS CEC PING - NACK REPORT PHYSICAL ADDRESS CEC PING - NACK REPORT PHYSICAL ADDRESS CEC PING CEC PING - NACK REPORT PHYSICAL ADDRESS

UNREG->PLAYER1 CEC PLAYER1->*ALL* CEC UNREG->PLAYER1 CEC UNREG->PLAYER2 CEC PLAYER2->*ALL* CEC

Unregistered

DTV

LA 0 PA 0000 LA 05 PA 1000 AVR

Polling Message (F8)

LA 04 LA 1100

LA 04 08 PA 1200

Game System ALL Report Physical Address (8F 84 12 00)

DVD

Game System STB-DVR

CEC Addressing Logical Addressing


Unregistered Polling Message (F3) STB-DVR Report Physical Address (3F 84 13 00) Unregistered Polling Message (F1) STB-DVR ALL STB-DVR ALL
01 02 03 04 05 06 07 08 09 10 11 12 00:00:10:0174 00:00:11.0274 00:00:11:0639 00:00:11:1639 00:00:11:1739 00:00:11:1990 00:00:11:2018 00:00:11:2140 00:00:11:2230 00:00:11:2830 00:00:11:2994 00:00:11:3594 00:00:01:0100 00:00:00:0060 00:00:00:1000 00:00:00:0100 00:00:00:0251 00:00:00:0028 00:00:00:0112 00:00:00:0100 00:00:00:0600 00:00:00:0164 00:00:00:0600 00:00:00:0000 TV->ALL UNREG->AUDIO AUDIO->ALL CEC CEC CEC CEC CEC CEC CEC CEC CEC CEC CEC CEC CEC CEC CEC REPORT PHYSICAL ADDRESS CEC PING - NACK REPORT PHYSICAL ADDRESS CEC PING - NACK REPORT PHYSICAL ADDRESS CEC PING CEC PING - NACK REPORT PHYSICAL ADDRESS CEC PING - NACK REPORT PHYSICAL ADDRESS CEC PING - NACK REPORT PHYSICAL ADDRESS

STB-DVR

UNREG->PLAYER1 CEC PLAYER1->ALL CEC

UNREG->PLAYER1 CEC UNREG->PLAYER2 CEC PLAYER2->ALL UNREG->TUNER TUNER->ALL UNREG->RECORD RECORD->ALL CEC CEC CEC CEC CEC

Report Physical Address (1F 84 13 00)

DTV DTV
DTV: PA 000 LA 0 AVR: PA 1000 LA 05 DVD: PA 1100 LA 04 Game System: PA 12 00 LA 08 STB-DVR: PA 1300 LA 03/LA 01

LA 0 PA 0000 LA 05 PA 1000 AVR LA 01 LA 03 PA 1300

LA 08 PA 1200

LA 04 LA 1100

DVD

Game System STB-DVR

CEC Addressing Sample Network

CEC Physical Layer

Physical Information

CEC is pin 13 on the HDMI cable. It shares a common ground with DDC. CEC idles in a high-impedance state (the line shows a voltage between +2.5 and +3.63V). During a message, the line will be pulled down to between 0 and +0.6V (low-impedance).

Physical Information (continued)

CEC supports nine devices on the bus simultaneously (potentially more if good cabling is used). The limitation is due to a network limit on capacitance of 7200pF (allowing for 100pF per device and 700pF per cable). However, there are only 15 valid CEC logical addresses, so having a limitation of nine devices would rarely be a problem in real-world applications. The CEC line is in use when there is a device pulling the line low. All timing is derived from the high to low transitions.

Physical Information Bit Timing

Start Bits

Logical 0 and 1

CEC Message Waveform


Max

Rise Time = 250usecs Max Fall Time = 50usecs

CEC Bus Control

CEC Bus Control - Retransmission

Retransmission can occur for many reasons:


A device could be holding the CEC bus low when the initiator expects it high, causing a bus error. A device sends a message and does not receive the expected acknowledgement. A device loses arbitration (retry).

Retransmission should not occur if there is sufficient indication that the follower does not support the message being sent.

CEC Bus Control - Acknowledgement

Directed messages

Intended for a single device ACK is set as a logical 1 Set to logical 0 by the follower to acknowledge

Broadcast messages

Intended for all devices ACK is set as a logical 1 Must be kept as a logical 1 by all devices A logical 0 is a NACK

CEC Bus Control - Acknowledgement


STB-DVR

Directed Message
Image View On (30 04)

DTV

01

00:00:11.01 00:00:18.41

00:00:00.00 00:00:06.20

TUNER->TV AUDIO->ALL

CEC CEC

CEC CEC

IMAGE VIEW ON REQUEST ACTIVE SRC

STB-DVR

Pull down bus to Ack with 0 bit

02

DTV

high

low
0.6 ms Release bus to set Ack bit to 1 1.5 ms Release bus

DTV

STB-DVR

Broadcast Message
AVR

DTV

Request Active Source (5F 85)

Request Active Source (5F 85)

AVR

Do nothing to acknowledge

ALL

AVR DVD Game System STB-DVR

high low

Release bus to set Ack bit to 1

0.6 ms

CEC Bus Control No Acknowledgement


STB-DVR

Directed Message
Image View On (30 04)

DTV

01

00:00:11.01 00:00:18.41

00:00:00.00 00:00:06.20

TUNER->TV AUDIO->ALL

CEC CEC

CEC CEC

UNACKNOWLEDGED UNACKNOWLEDGED

AVR

02

DTV

high low Release bus to set Ack bit to 1 0.6 ms

Do nothing to Nack

DTV

STB-DVR

Broadcast Message
AVR

DTV

Request Active Source (5F 85)

Request Active Source (5F 85)

STB-DVR

Pull down to 0 to Nack

DTV

AVR DVD Game System STB-DVR

high low 0.6 ms Release bus to set Ack bit to 1 1.5 ms

Release bus

CEC Bus Control - Arbitration


Since CEC is a single wire for all devices, it is sometimes the case that two devices want to use the CEC line at the same time. Arbitration check begins with leading edge of start bit and continues to end of initiator address. Priority given to the device with the lowest logical address. The TV (logical address 0) has priority over all other devices. If a device is already using the CEC line, the devices that would like to use it must wait until signal free time has been met (the device has stopped using the line for a defined length of time).

At least 3 bit periods (7.2ms) in the case of a device trying to resend a message. At least 5 bit periods (12.0ms) for a new device wishing to send a message At least 7 bit periods (16.8ms) for the same device wishing to send a new message.

Signal free time is defined from the START of the final bit being sent (the high to low transition).

CEC Bus Control - Arbitration


DVD
Image View On Image View On (40 04)

DTV

DVD
01 02 03 04 00:00:11.01 00:00:11.07 00:00:12.01 00:00:12.21 00:00:18.41 00:00:18.49 00:00:69.51 00:00:69.71 00:00:00.00 00:00:00.60 00:00:00.20 00:00:01.60 00:00:06.20 00:00:06.11 00:00:51.10 00:00:00.20 PLAYER1->TV TV->PLAYER1 PLAYER1->TV CEC CEC CEC CEC CEC CEC CEC CEC CEC CEC CEC ERROR GET MENU LANGUAGE IMAGE VIEW ON ACTIVE SOURCE UNACKNOWLEDGED RECORD TV SCREEN RECORD ON RECORD STATUS

Get Menu Language (04 91)

PLAYER1->ALL CEC TV->RECORDER CEC TV->RECORDER CEC RECORDER->TV CEC TV->RECORDER CEC

Active Source (4F 82 11 00)

05 06 07 08

DTV

STB-DVR
Record TV Screen Record TV Screen (01 0F)

Signal Free Time

DTV

Signal Free Time

Record ON [Digital Service ID] (10 09 02)

>/= 5 bit times (~ 12.0ms) New Message

>/= 3 bit times (~ 7.2ms) Retransmit

AVR
Record Status [Recording Digital Service] (01 0A 02)

DVD

Game System

STB-DVR

Verifying CEC Implementation

Verifying the CEC Implementation

Compliance testing

In-house using compliance test tools Plugfests (CEA and ETSI) HDMI Authorized Test Centers In-house Plugfests

Interoperability testing (multi-vendor)


Verifying the CEC Implementation

Tools you will need


CEC debug tools used during development CEC bus monitor CEC compliance test application (Quantum Data Test Management Environment is the recommended test tool in the HDMI CTS) Test fixtures

CEC Debug Testing Error Simulator


Sample screen of CEC debug test application. Enables: Simulation of acknowledgement failures Simulation of arbitration failures Ability to corrupt bits Modify timing parameters (Quantum Data CEC Controller)

CEC Debug Testing Message Logger


Sample screen of CEC Transaction logger: Logs CEC transactions during compliance test Logs CEC transactions during debug testing Shows detailed timing Shows acknowledgement and other errors (Quantum Data Auxiliary Channel Analyzer)

CEC Compliance Testing CDF Entry


Sample of a CEC compliance test application showing CDF definition: Enables importing CDF from comma separated value file for fast CDF definition Enables definition of CDF parameters for new devices through GUI Supports saving CDFs for later use (Quantum Data CEC Compliance Application)

CEC Compliance Testing - Test Initiator


Sample of a CEC compliance test application showing test execution: Enables running of selective tests, or groups of tests Online help for test setup Tests run automatically without user interaction after test setup Results provided on display interface Comprehensive report for all tests that can printed or emailed. (Quantum Data CEC Compliance Application)

For more information

Quantum Data has prepared an educational whitepaper and a video on CEC that provides some further examples: http://www.quantumdata.com/

Thank You
Presenter: Neal Kendall Technical consultant: Jeff Stenhouse Animation & Graphics: Robert Watson

You might also like