Code RC5 : protocole et chronogrammes

Le code RC5, mis au point chez Philips, est devenu une norme pour les transmissions de commandes en infrarouge.
On peu 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. La réalisation d'un récepteur de code rc5 nous permettra quand à lui, d'équiper un modèle réduit, un robot ou un "périphérique" de sa propre fabrication.

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'une trame en code RC5

Elle 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 de bit rc5

Détail d'une trame

Chaque bit ayant une longueur de 1,778 ms, une trame rc5 dure alors 14 x 1,778 = 24,892 ms (24,889 ms en réalité sur les documentations voir les explications un peu plus loin sur cette page).
Constitution d'une trame rc5

Enchaînement des trames

La périodicité des messages (ou trame) à été choisie comme telle :
c'est un multiple de la durée d'un bit soit, 64 x 1,778 = 113,792 ms (113,78 ms exactement)
période des salves 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,…64…4096… nous disposerons de fréquences multiples ou 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 = 1,777777… soit 1,778 ms arrondi par excès : c'est exactement la durée d'un bit.
En divisant 14 / 562,5 = 24,888888… soit 24,889 ms arrondi par excès : cela correspond à la durée d'une trame de 14 bits.
En divisant 36 Khz par 4096 nous obtenons une fréquence de 87,890625 Hz d'ou une période de 1 / 87,890625 = 113,777777… soit 113,78 ms arrondi par excès : c'est la durée de la périodicité des trames.

Récepteur infrarouge

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.
recepteur infrarouge rc5schéma récepteur 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.

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 être réalisée par un micro-contrôleur ou un CPLD capables de surcroît de générer des actions (commande de moteurs, variateur, gradateur…) en fonction du code reçu.

Emetteur expérimental

Pour émettre en code rc5 nous devons moduler à 36 Khz une LED infrarouge au rythme d'arrivée de bits codés en biphasé.
Un bit dure 1778 µs et nous voyons donc tous les 1778 µs un nouveau bit qui se présente.
La trame à émettre contient 14 bits (soit une durée de 14 x 1,777…= 24,889 ms).
La périodicité des trames est équivalente à la durée de 64 bits (soit 64 x 1,778 = 113,778 ms) et nous disposons alors de l'équivalent temporel de 50 bits entre la fin d'une trame et le début d'une autre.

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 0, un front montant est généré ; lorsque le bit vaut 1, il est représenté par un front descendant.

Le schéma électronique du générateur de code biphasé est représenté ci-dessous :
Schéma codeur code biphasé
et le chronogramme du codage biphase est disponible sur l'image suivante :
Chronogramme du code biphasé

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.
En partant d'une fréquence de 36 KHz nous obtenons une période de : 1 / 36000 = 27,76 µs.
modulation infrarouge par transistor

Pour un bilan énergétique favorable à l'utilisation de piles, le rapport cyclique des impulsions de la modulation est relativement bas.
modulation infrarouge
Nous observons sur le chronogramme ci dessus un rapport cyclique de 1/4.
En faisant le rapport 27,76 par 4 nous obtenons une impulsion de 6,94 µs.
Cela signifie que si l'on veut fabriquer un émetteur infrarouge modulé à 36 KHz, une fréquence minimum de 144 KHz (1/6,94 µs ou 4 x 36 KHz) est nécessaire à l'horloge de notre système séquentiel.