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.
Le livre guide pratique de l'infrarouge de Frank WOHLRABE
donne des solutions techniques et pratiques quand à la mise en oeuvre du code rc5.
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.
La liste des codes rc5 est ici.
Constitution d'une trame en code RC5
Elle se compose d'une suite de 14 bits et sa construction est la suivante :
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 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).

Enchaînement des trames
La périodicité des messages (ou trame) à été choisie comme tel :
c'est un multiple de la durée d'un bit soit, 64 x 1,778 = 113,792 ms (113,78 ms exactement)

Explication des temps élémentaire 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.

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.
Cahier des charges
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.
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.
Schéma électronique du générateur de code biphase

Chronogramme du codage biphase

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. La 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.

Pour un bilan énergétique favorable à l'utilisation de piles, le rapport cyclique des impulsions
de la modulation est relativement bas.

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/9,94 µs ou 4 x 36 KHz) est nécessaire à l'horloge de notre système séquentiel.
Voir aussi la liste des codes RC5 des télécommandes infrarouge
positron-libre