Loading AI tools
De Wikipédia, l'encyclopédie libre
ARINC 429 est une norme pour l'aéronautique qui décrit à la fois une architecture, une interface électrique et un protocole pour véhiculer des données numériques. Au début du XXIe siècle, ARINC 429 est le bus informatique le plus répandu sur les systèmes avioniques complexes.
La norme ARINC 429 a été développée et est maintenue par l'Airlines Electronic Engineering Committee (AEEC), comité de la société ARINC.
ARINC 429 est issue de la norme ARINC 419 qui fut la première à décrire quatre topologies de bus numériques pour l'aviation commerciale, dont la première version a été publiée en 1966, et la dernière mise à jour faite en 1983[1],[2].
La première norme ARINC 429 (429-1) a été publiée en , et la version actuelle est la version 429-19 adoptée par l'AEEC en 2019[3].
Elle est composée de trois parties :
L'article traite principalement de la 1re partie de la norme.
ARINC 429 décrit un bus de données série unidirectionnel standard (simplex).
La norme impose également qu'il n'y ait qu'un seul émetteur par bus. Le nombre de récepteurs peut lui aller jusqu'à 20[6].
La connexion est réalisée par l'intermédiaire d'une paire torsadée blindée composée de deux brins (ou lignes) « A » et « B »[6].
Le transfert des données est réalisé en différentiel entre les deux lignes de la paire.
L'impédance de l'émetteur doit être maintenue en permanence à 75 ± 5 Ω quel que soit le niveau HIGH, LOW ou NULL, divisée de manière égale entre les deux lignes de la paire. Cette valeur a été choisie pour être approximativement égale à l'impédance caractéristique de la paire blindée.
La résistance de chaque récepteur, entre les deux lignes (« A » et « B ») mais aussi entre chacune des lignes et la masse, doit être maintenue supérieure à 12 kΩ. Idem pour la capacitance, qui doit être inférieure à 50 pF entre les deux lignes, mais aussi entre chacune des lignes et la masse.
La résistance totale des récepteurs (jusqu'à 20) mis en parallèle doit rester supérieure à 8 kΩ.
L'encodage utilisé est de type bipolaire avec retour à 0 répondant à la forme suivante :
Les trois niveaux utilisés pour l'encodage entre les deux brins (A et B) de la paire blindée sont[7],[8] :
Niveau | Ligne A <> Ligne B Côté émetteur |
Ligne A <> Ligne B Côté récepteur |
---|---|---|
HIGH | +10.0 V ± 1.0 V | de +6.5 à +13 V |
NULL | 0 V ± 0.5V | de +2.5 à -2.5 V |
LOW | -10.0 V ± 1.0 V | de -6.5 à -13 V |
Côté émetteur, les niveaux entre chaque brin et la masse doivent aussi être maintenus :
Niveau | Ligne A <> Masse Côté émetteur |
Ligne B <> Masse Côté émetteur |
---|---|---|
HIGH | +5.0 V ± 0.5 V | -5.0 V ± 0.5 V |
NULL | 0 V ± 0.25V | 0 V ± 0.25V |
LOW | -5.0 V ± 0.5 V | +5.0 V ± 0.5 V |
Lorsque l'émetteur ne transmet rien, il place le bus à l'état NULL.
Il existe deux vitesses de transmission 12,5 kbit/s et 100 kbit/s. Pour chacune de ces vitesses, la norme impose des temps caractéristiques[9],[8] :
Bit rate | 1bit time | 1/2bit time | Rise time | Fall time |
---|---|---|---|---|
100kbits/s ± 1 % | 10µs ± 0,25µs | 5µs ± 0,25µs | 1,5µs ± 0,5µs | 1,5µs ± 0,5µs |
12,5kbits/s ± 1 % | 80µs ± 2µs | 40µs ± 2µs | 10µs ± 5µs | 10µs ± 5µs |
Les données sont codées sous forme de mots de 32 bits qui peuvent être découpés en cinq champs distincts[10] :
L'ordre de transmission des bits s'effectue de 1 à 32, en commençant par le LSB (Least Significant Bit first).
L'octet correspondant au label est le premier à être transmis. L'un des avantages de cet ordre est qu'il permet de lire facilement le label (les huit premiers bits) avec un oscilloscope. Le recepteur peut également lire le label et ignorer le reste du message si celui-ci ne le concerne pas.
Il peut y avoir une confusion entre l'ordre de transmission et le poids des bits : le bit 1 du label (le premier transmis) doit être interprété comme le bit de poids fort du label, tandis que le bit 8 représente le bit de poids faible, ce qui peut sembler contre-intuitif.
Le bit de parité est utilisé pour vérifier que le mot n'a pas été altéré pendant la transmission[10],[11],[12].
La parité peut être définie comme paire (even) ou impaire (odd).
Dans la plupart des cas, elle est impaire, ce qui signifie que le bit est positionné, lors de l'émission, de telle manière que le nombre des bits à « 1 » dans le mot est impair. Dans ce cas précis, si le nombre de bits à « 1 » est pair, à la réception, c'est qu'un des bits du mot a été altéré pendant la transmission.
Ce mécanisme simple ne permet pas de se prémunir contre l'altération de deux bits puisque dans ce cas on retombe sur la parité d'origine.
Il existe plusieurs formats d'encodage de la donnée[13],[14] :
L'encodage utilisé dans un même mot peut mélanger les trois types d'encodage.
Dans le cas particulier du BNR, le bit 29 est utilisé pour exprimer le « signe » car le SSM est utilisé pour la validité[15],[16] :
Bit 29 | Signification |
---|---|
1 | Moins (Minus), Sud (South), Ouest (West), Gauche (Left), Depuis (From), Au-dessous (Below) |
0 | Plus, Nord (North), Est (East), Droite (Right), Vers (To), Au-dessus (Above) |
Les autres bits codent la donnée :
Par exemple, si la donnée est encodée sur 16 bits, le bit de poids faible est le bit 14, et les bits 13, 12 et 11 sont inutilisés.
La donnée binaire est encodée en complément à deux, il ne faut pas oublier le bit de signe (bit 29) lors du décodage.
Si n est le nombre de bits utilisés (sans compter le bit de signe), une fois décodée, on obtient une valeur comprise entre -2n et 2n-1 avec une résolution de 1.
Une résolution différente de 1 (parfois égale à une puissance de 2) est souvent fournie dans la documentation.
Si k = 2m est la résolution utilisée, on peut coder une valeur comprise entre k × -2n = -2n+m et k × (2n-1) = 2n+m-2m.
Dit autrement, il faut multiplier la valeur binaire pure décodée comprise entre (-2n et 2n-1) par k = 2m pour obtenir la valeur codée.
Les bits sont regroupés par quatre (bits 11/14, 15/18, 19/22, 23/26) ou par trois pour les derniers (27/29)[15].
Chaque groupe représente alors un chiffre décimal compris entre 0 et 9 (et 0 à 7 pour le dernier groupe qui est sur trois bits).
Chaque chiffre possède un poids croissant différent selon une numération de position en base 10 pour former un nombre, les bits 11/14 représentant le poids faible.
Bits | Poids |
---|---|
11/14 | 10n-4 |
15/18 | 10n-3 |
19/22 | 10n-2 |
23/26 | 10n-1 |
27/29 | 10n |
On peut ainsi représenter des nombres dans les plages suivantes :
Certains groupes de bits (les plus faibles ou les plus forts) peuvent aussi ne pas être utilisés, s'ils ne sont pas nécessaires. Il faut se référer à la documentation de l'équipement.
Dans le cas des discrets, chaque bit du champ de données représente une information de type tout ou rien[15].
Il arrive que les bits soient regroupés par petits groupes afin de former une information plus détaillée.
Ce champ indique la plupart du temps la validité de la donnée, mais il peut avoir des significations différentes, comme le signe ou l'orientation, en fonction du type de la donnée[17],[18],[19],[20].
Il peut aussi avoir une signification particulière choisie par l'équipementier, c'est pourquoi il faut toujours se référer à la documentation technique de l'équipement émetteur.
Bit 31 | Bit 30 | Signification |
---|---|---|
0 | 0 | Failure warning |
0 | 1 | No computed data |
1 | 0 | Functional test |
1 | 1 | Normal operation |
Bit 31 | Bit 30 | Signification |
---|---|---|
0 | 0 | Plus, Nord (North), Est (East), Droite (Right), Vers (To), Au-dessus (Above) |
0 | 1 | No computed data |
1 | 0 | Functional test |
1 | 1 | Moins (Minus), Sud (South), Ouest (West), Gauche (Left), Depuis (From), Au-dessous (Below) |
Bit 31 | Bit 30 | Signification |
---|---|---|
0 | 0 | Verified data / Normal operation |
0 | 1 | No computed data |
1 | 0 | Functional test |
1 | 1 | Failure warning |
Ce champ peut être utilisé de deux manières[21],[11],[22],[23] :
Il est souvent inutilisé et placé à « 00 ».
Le label est l'identifiant de la donnée codé sur huit bits. Il peut prendre 256 valeurs différentes. Le bit 1 représente le bit de poids fort, le bit 8 le bit de poids faible[24],[25],[22].
Dans la documentation, il est exprimé en octal.
La spécification ARINC A429 comprend un certain nombre de directives sur les labels pour les rendre plus ou moins standards.
La General Aviation Manufacturers Association (GAMA) a également publié un ajout à la norme pour fixer ou modifier un certain nombre de ces directives.
En effet, chaque avion contient de nombreux systèmes différents, tels que les calculateurs de vol, les centrales inertielles, le GPS… Pour chaque type d'équipement, un ensemble de paramètres standard est défini, largement partagé par tous les fournisseurs d'équipements.
Par exemple, tout « Air Data Computer » donnera l'altitude barométrique de l'avion sur le label 204. Cela permet un certain degré d'interchangeabilité des équipements. Il y a seulement un nombre limité de labels, et donc, le label 204 peut avoir une signification totalement différente s'il est émis par un GPS, par exemple.
C'est pourquoi il faut toujours se référer à la documentation technique de l'équipement.
L'image ci-dessous montre un mot ARINC 429, produit par exemple par un générateur NAV429 [26], et capturé à l'aide d'un oscilloscope.
Dans ce cas particulier, les bits 11 à 29 (données) contiennent des jours, des mois et des millisecondes.
Un oscilloscope restitue un signal dans l'ordre chronologique d'apparition de l'information. Ceci explique pourquoi le label est au début de la transmission. (Voir Ordre de transmission des bits).
Les trames sont composées de plusieurs mots de 32 bits espacés par au moins quatre bits à l'état NULL (utiles pour la synchronisation sur le mot suivant)[27],[8].
L'ordre des mots n'est pas imposé.
Quelques firmes proposent des circuits intégrés dédiés, ou ASIC, permettant d'interfacer des bus ARINC 429 à un microprocesseur. Certains de ces ASICs intègrent y compris les récepteurs et les émetteurs de ligne, et ne requièrent qu'une alimentation de 3,3 volts. Leur interface avec le microprocesseur peut être de type parallèle, mais elle prend de plus en plus la forme d'un bus série, par exemple de type SPI, ce qui réduit le nombre de fils d'interconnexion et simplifie le circuit imprimé.
Dans les calculateurs embarqués complexes, il est souvent nécessaire de mettre en œuvre plusieurs microprocesseurs et FPGAs. Il est alors fréquent de réaliser la gestion du protocole des lignes ARINC 429 sous forme de logique câblée à l'intérieur de l'un des FPGA. Il existe pour cela des blocs d'IP (Semiconductor intellectual property core (en)) disponibles sur le marché. Avec cette approche, les circuits intégrés dédiés se limitent aux récepteurs et émetteurs de ligne.
Dans les phases de mise au point, il peut être utile d'observer directement la forme des signaux sur les lignes ARINC. C'est notamment nécessaire pour s'assurer que les temps de montée et de descente, ainsi que les niveaux de tension imposés par la norme sont respectés. Un oscilloscope capable de réaliser l'acquisition et l'analyse des signaux est alors privilégié. Un tel instrument est capable de se synchroniser sur un mot ARINC 429 particulier et de présenter une coloration spécifique de chacun des champs du mot. La photo illustrant le chapitre "Exemple d'un mot" ci-dessus est un oscillogramme affiché par ce type d'instrument.
Quand il s'agit de faire des essais sur le terrain (par exemple les essais sol d'un avion), un oscilloscope est trop encombrant. On privilégie alors les analyseurs de bus portatifs. Certaines réalisations modernes sont extrêmement compactes et mettent en œuvre une liaison Bluetooth et l'écran d'un smartphone pour leur interface utilisateur.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.