Code RC5

Le code RC5, mis au point chez Philips, est une norme pour les transmissions de données en infrarouge et utilisé principalement dans les télécommandes d'appareils multimédia.

L'étude du protocole RC5 nous permettra de réaliser un récepteur de code RC5 pour équiper un modèle réduit, un robot ou un périphérique de notre propre fabrication.
Pour l'émetteur nous pouvons choisir de construire sa propre télécommande RC5 ou en récupérer une toute faite (d'un ancien magnétoscope ou téléviseur) et remplacer la LED ir par une autre de puissance et de portée plus élevée.

Limites du code RC5

Le code RC5, peut générer 2048 ordres différents organisés en 32 groupes de 64 commandes chacun.
Nous pouvons par conséquent attribuer une adresse RC5 individuelle à chaque équipement, sans se soucier des influences de réglage d'un appareil sur l'autre.

Constitution d'un message en code RC5

Il se compose d'une suite de 14 bits et sa construction est la suivante :

  • 2 bits de départ,
  • 1 bit de basculement,
  • 5 bits d'adressage du système,
  • 6 bits d'instruction.

Les 2 bits de départ sont utiles pour ajuster le niveau de la commande automatique du gain AGC dans le circuit intégré de réception.
Le bit de basculement indique une nouvelle transmission de données.
Sa valeur change à chaque nouvelle activation d'une touche afin de distinguer une nouvelle pression d'une pression continue sur la même touche.
Les 5 bits suivants déterminent l'adresse du dispositif devant réagir à la commande.
Nous avons donc 25 = 32 groupes d'adressage.
L'instruction destinée à l'appareil est codée dans les 6 derniers bits.
Ce qui donne 26 = 64 instructions.

Détail d'un bit

Les bits du code RC5 sont codées en biphasé (codage Manchester), c'est à-dire qu'un bit est composé de 2 demi-bits alternés. La combinaison bas haut caractérise un bit positionné à 1 et la combinaison haut bas un bit remis à 0.

Détail du bit 0 et du bit 1 codé Manchester

Détail du bit 0 et du bit 1 codés Manchester.

La durée d'un bit est de 1778 µs (chaque « demi-bit » durant 889 µs).

Durée et détail d'un message RC5

Nous avons dit qu'un message RC5 est constituée de 14 bits, chaque bit ayant une longueur de 1,778 ms (1778 µs). Mais la valeur 1,778 est une valeur commode et qui est l'arrondie de 1,777777.

La durée d'un message RC5 est donc de 24,889 ms (14×1,777777).

Constitution d'un message RC5

Constitution d'un message RC5 avec ses 14 bits codés Manchester.

Constitution et enchaînement des trames

La durée d'une trame à été définie comme étant un multiple de la durée d'un bit et pour le code RC5, le multiple utilisé est 64.
Un message étant constitué de 14 bits (t=24,889 ms), pour atteindre cette période de 64 temps élémentaires il faut donc faire sucèder au message utile une période de 50 temps élémentaires (50 bits silencieux). En terme de temps cela nous donne 24,889+(50×1.777777)= 24,889+88,889= 113,778 ms.

La durée d'une trame complète est donc de 113,778 ms et l'enchaînement de plusieurs trames successives se fera à ce rythme.

Chronogramme illustrant la période des trames RC5

Chronogramme illustrant la période des trames RC5.

Explication des temps élémentaires du code RC5

En choisissant une fréquence de modulation infrarouge de 36 kHz nous pouvons retrouver toutes les durées de bit, trame et période du code RC5.
Mettons nous à la place d'un concepteur d'ASIC ou d'un développeur VHDL pour CPLD ou FPGA ; il travaillera avec des puissances de 2 pour simplifier la gestion des horloges. En partant du principe que l'on utilise que des diviseurs par 2, 4, 8, 16, 32, 64… 4096 nous disposerons de fréquences sous-multiples de 36 kHz.

En divisant 36 kHz par 64 nous obtenons une fréquence de 562,5 Hz d'ou une période de 1÷562,5=0,001777777 seconde soit 1,778 ms arrondi par excès : c'est exactement la durée d'un bit.

Par extention, la durée d'une trame (113,7777778 ms) correspond la division de 4096 par 36000 (1÷(36000÷4096)=0,1137777778 s).

Emetteur RC5 expérimental

Pour émettre un signal infrarouge nous devons moduler à 36 kHz une LED infrarouge au rythme d'arrivée de bits de données.

Construction des bits biphasés

Le codage biphasé, appelé également codage de Manchester, consiste à introduire des transitions systématiques pour chaque bit transmis. Il consiste à faire une opération logique OU EXCLUSIF (XOR) entre le signal d'horloge et le signal de données.
Lorsque le bit représente un 1, un front montant est généré ; lorsque le bit vaut 0, il est représenté par un front descendant.

Le schéma électronique du générateur de code biphasé et son chronogramme sont représentés ci-dessous.

Schéma du codeur code biphasé avec une fonction OU Exclusif

Le schéma d'un codeur biphasé simple avec une porte OU Exclusif 74LS86. Le chronogramme illustre les états d'entrée et la sortie biphasée.

Modulation infrarouge

Le principe est simple : il suffit d'émettre un rayonnement infrarouge (avec une led émettrice type LD 271 ou LD 274) modulé au rythme des données. Cette diode led sera pilotée par un transistor adapté (ex : BC517, IRL510) présentant un grand gain en courant et une tenue élevée aux impulsions de courant de collecteur.

Schéma modulateur infrarouge par transistor

Schéma d'un modulateur infrarouge par transistor.

Un oscillateur dont la fréquence est de 36 kHz aura un signal périodique de 1÷36000=27,78 µs. Le rapport cyclique est de 0,5 (½) et nous avons des impulsions de 13,89 µs.

Chronogramme d'une fréquence porteuse à 36 kHz avec un rapport cyclique de 0,5

Fréquence de porteuse à 36 kHz à rapport cyclique de 0,5.

Pour un bilan énergétique favorable à l'utilisation de piles, le rapport cyclique des impulsions de la modulation est rabaissé à 0,25 (¼).

Chronogramme montrant la modulation avec un rapport cyclique de 1 quart

Chronogramme montrant la modulation des données avec un rapport cyclique de ¼

Nous observons sur le chronogramme ci-dessus un rapport cyclique de ¼.
En faisant le rapport 27,78 par 4 nous obtenons une durée d'impulsion de 6,94 µs.

Récepteur infrarouge RC5

Il n'est pas difficile de câbler un récepteur, même expérimental, pour visualiser en détail une trame RC5 sur un oscilloscope. Un circuit récepteur infrarouge SFH 5110 alimenté en 5 volts conviendra pour de nombreuses applications.

Schéma récepteur infrarouge code RC5 avec un sfh5110

Le schéma de câblage du récepteur infrarouge sfh5110.
Le condensateur de 4,7 µF et la résistance de 100 ohm sont utiles si l’alimentation n’est pas régulée efficacement. La résistance de 10 kohm est une résistance de pull-up.

Pour les appareils de construction personnelle ou les prototypes, les adresses réservées 27 à 31 du code RC5 sont intéressantes puisqu'elles ont été conçues dans des buts expérimentaux.

Un récepteur infrarouge sfh5110 câblé sur une plaquette à trous

Le sfh5110 câblé expérimentalement sur une plaquette à trou. Ce petit montage suffit pour visualiser les trames sur un oscilloscope. Ce même composant est utilisé comme récepteur pour un décodeur de télécommande RC5.

Décodage d'une trame

Il existe sur le marché des composants électroniques pour traiter le code issu d'un démodulateur. Le SAA3049 Philips a été conçu pour le traitement du code RC5 ou RECS80. Après réception du code en provenance du récepteur IR, le décodeur restitue en binaire l'adresse (sur 5 fils) et la donnée (sur 6 fils) contenue dans la trame.
Ce genre de fonction peut aussi être réalisée par un micro-contrôleur capable de surcroît de générer des actions (commande de moteurs, variateur, gradateur…) en fonction du code reçu.