Les codes de diffusion CHU

CHU est une station radiophonique canadienne qui diffuse en continu des signaux horaires. Elle est administrée par le Conseil national de recherches du Canada, en vue de disséminer l'heure officielle dans l'ensemble du Canada. CHU transmet sur 3 330 kHz, 7 850 kHz et 14 670 kHz, en utilisant une modulation de fréquence compatible avec la modulation d'amplitude AM (bande latérale unique supérieure avec porteuse réinsérée). Entre les secondes 31 et 39 (incluse) suivant la minute, CHU transmet un code horaire que l'on peut lire avec un ordinateur équipé d'un modem compatible avec la norme Bell 103. Ce code horaire inclut l'heure du jour UTC, le jour de l'année (1-366), l'année grégorienne (quatre chiffres), l'avertissement de la seconde intercalaire, le DTU1, les TAI-UTC et un indicateur de l'heure avancée du Canada.

Les données sont présentées sous forme d'un flux de données en transmission par déplacement de fréquence (FSK). Les fréquences sont compatibles avec la norme Bell 103 : repère à 2 225 Hz et espace à 2 025 Hz. La durée de la porteuse est de 10 ms à 510 ms, après la seconde. Chaque octet de données est encodé comme un seul bit de départ, 8 bits de données et deux bits d'arrêt. Il y a dix octets dans chaque paquet de données et le dernier bit d'arrêt se termine exactement 500 ms après la seconde (1 bit de départ + 8 bits de données + 2 bits d'arrêt) x 10 caractères = 110 bits. Chaque bit dure 1/300e de seconde (300 bits par seconde). Ainsi, le code complet dure 366,66... ms. 500 - 366,66... = 133,33... ms. Graphiquement, chaque seconde se présente ainsi :

Data is in the form of an FSK data stream
  1. Trait sonore (10 cycles de 1 000 Hz).
  2. Tonalité repère à 2 225 Hz pendant 123,333... ms pour permettre aux modems de se fixer.
  3. Flot de données pendant 366,66... ms.
  4. Tonalité repère à 2 225 Hz pendant 10 ms pour éviter un mauvais dépassement des bits d'arrêt.
  5. Un silence jusqu'à la fin de la seconde.
 

Le flot de données lui-même se compose de dix octets. Il y a deux formats : le format « B » pour la seconde 31 et le format « A » pour les secondes 32 à 39. Chaque format a 5 octets de données, puis 5 octets de redondance. Les octets de redondance du format « A » sont exactement les mêmes que les octets de données. Les octets de redondance du format « B » sont exactement l'inverse (le complément de l'un, NOT, XOR, 0xff, etc.) des octets de données. C'est la façon de distinguer le type de séquence qui a été reçue.

Une fois que les données ont été reçues et que les octets de redondance sont vérifiés, il faut ensuite, permuter le moins et le plus significatif quartet de chaque octet. Cela fait, les séquences ressemblent à ceci :

Séquence A : 6j jj hh mm ss

jjj est le jour de l'année; hh, mm, ss est l'heure UTC; 6 est une constante. Chaque quartet est un chiffre DCB.

Séquence B : xz yy yy tt aa

z est la valeur absolue de DUT1 en dixièmes de seconde, yyyy est l'année grégorienne, tt est la différence entre le TAI et l'UTC, aa est l'octet d'un code numérique pour le modèle d'heure avancée en cours à ce moment dans tous les fuseaux horaires du Canada. Le x est codé comme suit :

 

Un exemple de séquence A reçue par modem peut ressembler à ceci :

36 95 21 51 53 36 95 21 51 53

À remarquer que ces nombres sont en hexadecimaux. Ce qui se traduit par le 359e jour de l'année (25 décembre ou 24 décembre dans une année bissextile), 12:15:35 UTC.

Un exemple de séquence B reçue par modem peut ressembler à ceci :

19 91 39 72 00 E6 6E C6 8D FF

Ce qui se traduit en DUT1 de - 0,1, année 1993, TAI-UTC = 27, nombre séquentiel 00 pour le modèle d'heure avancée du Canada.