Consumer Electronics Control ( CEC ) est une fonctionnalité de HDMI conçue pour contrôler les appareils connectés HDMI en utilisant une seule télécommande ; ainsi, les appareils individuels compatibles CEC peuvent se commander et se contrôler les uns les autres sans intervention de l'utilisateur, jusqu'à 15 appareils. Par exemple, une télécommande de téléviseur peut également contrôler un enregistreur vidéo numérique et un lecteur Blu-ray .
Il s'agit d'un bus série bidirectionnel à un seul fil basé sur le protocole AV.link standard CENELEC pour exécuter des fonctions de contrôle à distance . Le câblage CEC est obligatoire, bien que la mise en œuvre de CEC dans un produit soit facultative. Il a été défini dans la spécification HDMI 1.0 et mis à jour dans HDMI 1.2, HDMI 1.2a et HDMI 1.3a (qui a ajouté des commandes de minuterie et audio au bus). Il existe des adaptateurs USB vers CEC qui permettent à un ordinateur de contrôler des appareils compatibles CEC.
Noms commerciaux pour la technologie CEC
Les noms commerciaux de CEC incluent :
- Lecture en une seule touche ( Roku )
- Anynet+ ( Samsung )
- Lien Aquos ( Sharp )
- BRAVIA Link, BRAVIA Sync, Contrôle pour HDMI ( Sony )
- CEC ( Hisense , Vizio )
- Lien CE, lien Regza ( Toshiba )
- Lien électronique ( AOC )
- EasyLink ( Philips )
- Fun-Link ( Funai , Sylvania , Emerson , Magnavox , Philips )
- HDMI-CEC ( Hitachi )
- INlink ( Insignia , Westinghouse )
- Lien Kuro ( Pionnier )
- NetCommand pour HDMI, Realink pour HDMI ( Mitsubishi )
- RIHD (Interaction à distance via HDMI) ( Onkyo )
- RuncoLink ( Runco International )
- SimpLink ( LG )
- T-Link ( ITT , Thomson )
- Lien VIERA, contrôle HDAVI, EZ-Sync ( Panasonic )
Commandes CEC
Voici une liste des commandes HDMI-CEC les plus couramment utilisées :
- One Touch Play permet aux appareils de commuter le téléviseur pour l'utiliser comme source active au démarrage de la lecture
- La fonction de veille du système permet aux utilisateurs de mettre plusieurs appareils en mode veille en appuyant sur un seul bouton
- Le transfert de préréglage transfère la configuration des chaînes du tuner vers un autre téléviseur
- One Touch Record permet aux utilisateurs d'enregistrer tout ce qui est actuellement affiché sur l'écran HDTV sur un périphérique d'enregistrement sélectionné
- La programmation par minuterie permet aux utilisateurs d'utiliser les guides de programmes électroniques (EPG) intégrés à de nombreux téléviseurs HD et décodeurs pour programmer la minuterie dans les appareils d'enregistrement tels que les PVR et les DVR.
- Les informations système vérifient tous les composants pour les adresses de bus et la configuration
- Deck Control permet à un composant d'interroger et de contrôler le fonctionnement (lecture, pause, rembobinage, etc.) d'un composant de lecture (lecteur Blu-ray ou HD DVD ou caméscope, etc.)
- Tuner Control permet à un composant de contrôler le tuner d'un autre composant
- L'affichage OSD utilise l' affichage à l'écran (OSD) du téléviseur pour afficher du texte
- Le contrôle du menu de l'appareil permet à un composant de contrôler le système de menu d'un autre composant en passant par les commandes de l'interface utilisateur (UI)
- Le contrôle de routage contrôle la commutation des sources de signal
- Le relais de contrôle à distance permet de transmettre les commandes de contrôle à distance à d'autres appareils du système
- Le transfert de nom OSD de l'appareil transfère les noms d'appareils préférés vers le téléviseur
- Le contrôle audio du système permet de contrôler le volume d'un récepteur AV, d'un amplificateur intégré ou d'un préamplificateur à l'aide de n'importe quelle télécommande à partir d'un ou plusieurs appareils correctement équipés du système
Protocole
Le CEC est un signal électrique distinct des autres signaux HDMI. Il permet à un appareil de désactiver son circuit HDMI haute vitesse en mode veille , mais d'être réveillé par le CEC. Il s'agit d'un bus partagé unique, qui est directement connecté entre tous les ports HDMI d'un appareil, de sorte qu'il peut circuler à travers un appareil complètement éteint (et pas seulement en veille).
Le bus est électriquement identique au protocole AV.link , mais CEC ajoute un protocole de message détaillé de niveau supérieur.
Le bus est une ligne à collecteur ouvert , un peu comme I²C , tirée passivement jusqu'à +3,3 V et entraînée vers le bas pour transmettre un bit.
Les similitudes avec I²C incluent :
- Bus série à faible vitesse
- Collecteur ouvert avec pull-up passif
- Vitesse limitée par la capacité distribuée
- Le récepteur peut convertir un bit 1 transmis en 0
- Plusieurs maîtres autorisés via l'arbitrage : l'envoi d'un bit 1 et l'observation d'un 0 indiquent une perte
- Protocole orienté octet
- Chaque octet a un bit d'accusé de réception ajouté
- Signal de départ spécial
Différences avec I²C :
- Un seul fil plutôt que deux fils
- Bits envoyés avec un timing fixe plutôt qu'une horloge séparée
- Vitesse 1000× inférieure (417 bit/s au lieu de 400 kbit/s)
- Quatre bits d'adresse au lieu de sept
- Protocole défini pour l'allocation d'adresses dynamique
- L'en-tête inclut à la fois l'adresse de l'initiateur et celle du destinataire
- Aucun signal d'arrêt spécial ; à la place, chaque octet est accompagné d'un indicateur de fin de message
- Aucune opération de « lecture » ; tous les octets de données d'une trame sont envoyés depuis l'émetteur
- Au lieu de cela, les requêtes « get » sollicitent des trames de réponse
- Chaque appareil doit être capable de transmettre
- Spécification détaillée de la signification des octets après l'adresse
Chaque bit commence par la ligne tirée vers le bas (front descendant), un délai indiquant la valeur du bit, un front montant et un délai supplémentaire jusqu'au début du bit suivant.
Les bits de données normaux sont2,4 ± 0,35 ms de long. Un 1 logique est maintenu bas pendant0,6 ± 0,2 ms , tandis qu'un 0 logique est maintenu bas pendant1,5 ± 0,2 ms . Le récepteur échantillonne la ligne à1,05 ± 0,2 ms après le front descendant, puis commence à surveiller le bit suivant1,9 ± 0,15 ms après le front descendant.
Un récepteur peut convertir un bit 1 transmis en bit 0 en tirant la ligne vers le bas dans les 0,35 ms suivant le front descendant et en la maintenant jusqu'au moment du bit 0. L'émetteur observe le bus pendant ses propres transmissions pour détecter cette condition. Ceci est utilisé pour accuser réception d'une transmission.
Chaque image commence par un bit de démarrage spécial , maintenu bas pendant3,7 ± 0,2 ms puis on le laisse monter, pour une durée totale de4,5 ± 0,2 ms . Tout périphérique peut envoyer un bit de démarrage après avoir observé le bus inactif pendant un nombre approprié de temps de bit. (Normalement, 5 temps de bit, mais 7 temps de bit immédiatement après une transmission réussie pour faciliter un partage équitable du bus, et 3 temps de bit entre une transmission échouée et sa retransmission.)
Ceci est suivi par un maximum de 16 octets. Chaque octet est composé de dix bits : huit bits de données (transmis en premier, dans l'ordre big-endian ), un bit de « fin de message » (mis à 1 après le dernier octet d'une trame) et un bit d'« accusé de réception ».
Pour les messages à destinataire unique, le bit d'accusé de réception fonctionne de manière similaire à I²C : il est transmis comme un bit 1 et le récepteur le ramène à un bit 0 pour accuser réception de l'octet.
Pour les messages de diffusion, le bit d'accusé de réception est inversé : il est toujours transmis comme un bit 1, mais est ramené à un bit 0 par tout récepteur qui rejette l'octet.
Le premier octet de chaque trame CEC est un en-tête contenant les adresses source et de destination sur 4 bits. Si la destination adressée existe, elle accuse réception de l'octet. Une trame composée uniquement de l'en-tête est un ping qui vérifie simplement la présence d'un autre périphérique.
L'adresse 15 (1111) est utilisée pour l'adresse de diffusion (comme destination) et les périphériques non enregistrés (comme source) qui n'ont pas encore choisi d'adresse différente. Certains périphériques n'ont pas besoin de recevoir de messages non diffusés et peuvent donc utiliser l'adresse 15 en permanence, notamment les récepteurs de télécommande et les commutateurs HDMI. Les périphériques qui doivent recevoir des messages adressés ont besoin de leur propre adresse. Un périphérique obtient une adresse en essayant de lui envoyer un ping. Si le ping n'est pas reconnu, le périphérique la réclame. Si le ping est reconnu, le périphérique essaie une autre adresse.
Le deuxième octet est un opcode qui spécifie l'opération à effectuer, ainsi que le nombre et la signification des octets de paramètres suivants. Par exemple, une pression de l'utilisateur sur une télécommande génère une trame de 3 octets : un octet d'en-tête, un <User Control Pressed>opcode (0x44) et un octet d'opérande identifiant le bouton. En incluant le temps d'inactivité initial et le bit de démarrage extra-long, cela prend 88,5 ms (37 temps binaires). Un <User Control Released>opcode ultérieur (0x45) n'a pas d'opérande.