ARINC 429

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

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.

Historique[modifier | modifier le code]

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 4 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 avril 1978, et la version actuelle est la version 429-18 adoptée par l'AEEC en 2012[1].

Elle est composée de 3 parties :

  • Partie 1 : Description fonctionnelle, interface électrique, étiquettes, formats des mots (Mise à jour n°18 du 29/11/2012),
  • Partie 2 : Standard pour les mots discrets (Mise à jour n°16 du 01/12/2004),
  • Partie 3 : Techniques de transfert de fichiers (Mise à jour n°19 du 01/06/2009).

L'article traite principalement de la 1re partie de la norme.

Couche physique[modifier | modifier le code]

Topologie[modifier | modifier le code]

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[3].

Architecture ARINC429 avec un émetteur et plusieurs récepteurs

Support[modifier | modifier le code]

La connexion est réalisée par l'intermédiaire d'une paire torsadée blindée composée de 2 brins (ou lignes) « A » et « B »[3].

Le transfert des données est réalisé en différentiel entre les 2 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 2 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 2 lignes (« A » et « B ») et mais aussi entre chacune des lignes et la masse, doit être maintenue supérieure à 12kΩ. Idem pour la capacitance, qui doit être inférieure à 50pF entre les 2 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 à 8kΩ.

Encodage des bits[modifier | modifier le code]

L'encodage utilisé est de type bipolaire avec retour à 0 répondant à la forme suivante :

Encodage d'un bit ARINC 429

Niveaux[modifier | modifier le code]

Les trois niveaux utilisés pour l'encodage entre les 2 brins (A et B) de la paire blindée sont[4],[5] :

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.

Temps et vitesse[modifier | modifier le code]

Il existe 2 vitesses de transmission 12,5 kbit/s et 100 kbit/s. Pour chacune de ces vitesses, la norme impose des temps caractéristiques[6],[5] :

  • le taux de transfert (Bit rate),
  • la durée d'un bit (1bit time),
  • la durée d'un demi-bit (1/2bit time),
  • le temps de montée (Rise time),
  • le temps de descente (Fall time).
Temps d'un bit ARINC 429
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

Couche liaison de données[modifier | modifier le code]

Mots[modifier | modifier le code]

Structure d'un mot ARINC 429

Les données sont codées sous forme de mots de 32 bits qui peuvent être découpés en 5 champs distincts[7] :

  • Le bit 32 est un bit de parité,
  • Les bits 30 et 31 constituent le Sign/Status Matrix (SSM) et peut avoir plusieurs significations en fonction du type de la donnée,
  • Les bits 11 à 29 contiennent la donnée,
  • Les bits 9 à 10 constituent le Source Destination Identifier (SDI) et peut avoir plusieurs utilisations,
  • Les bits 1 à 8 contiennent le label.

Ordre de transmission des bits[modifier | modifier le code]

L'ordre de transmission des bits est « particulier ».

En effet, l'octet correspondant au label est le premier à être transmis, en commençant par le bit de poids fort. Les autres bits sont ensuite envoyés tels quels, en commençant par le bit de poids faible.

Ce qui donne concrètement : 8, 7, 6, 5, 4, 3, 2, 1, 9, 10, 11, 12, 13, ..., 29, 30, 31, 32

Un des intérêts de cet ordre est que l'on peut lire facilement le label (8 premiers bits) grâce à un oscilloscope.

Parité[modifier | modifier le code]

Le bit de parité est utilisé pour vérifier que le mot n'a pas été altéré pendant la transmission[7],[8],[9].

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 simpliste ne permet pas de se prémunir contre l'altération de 2 bits puisque dans ce cas on retombe sur la parité d'origine.

Donnée[modifier | modifier le code]

Il existe plusieurs formats d'encodage de la donnée[10],[11] :

L'encodage utilisé dans un même mot peut mélanger les 3 types d'encodage.

BNR[modifier | modifier le code]

Dans le cas particulier du BNR, le bit 29 est utilisé pour exprimer le « signe » car le SSM est utilisé pour la validité[12],[10] :

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 :

  • Le bit 28 est le bit poids fort,
  • Le bit de poids faible est lui déterminé par le nombre de bits utilisés. 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 à 11 sont inutilisés.

La donnée binaire étant encodée en complément à deux, il ne faut pas oublier le bit 29 (signe) lors du décodage, ce qui dans le cas contraire pourrait s'avérer « problématique » si la donnée est négative.

Si « n » est le nombre bits utilisés (cette fois-ci 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 x -2n = -2n+m » et « k × (2n-1) = 2n+m-2m ».

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

BCD[modifier | modifier le code]

Les bits sont regroupées par 4 (bits 11/14, 15/18, 19/22, 23/26) ou par 3 pour les derniers (27/29)[12].

Chaque groupe représente alors un chiffre décimal compris entre 0 et 9 (sauf pour le dernier groupe 0 à 7).

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 :

  • entre 0,0000 et 7,9999 → pour n = 0
  • entre 00,000 et 79,999 → pour n = 1
  • entre 000,00 et 799,99 → pour n = 2
  • entre 0000,0 et 7999,9 → pour n = 3
  • entre 00000 et 79999 → pour n = 4

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.

DSC[modifier | modifier le code]

Dans le cas des discrets, chaque bit du champ de donnée représente une information de type tout ou rien[12].

Il peut également arriver que les bits soient regroupés par petits groupes afin de former une information un peu plus détaillée.

SSM[modifier | modifier le code]

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[13],[14],[15],[16].

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.

BNR[modifier | modifier le code]
Bit 31 Bit 30 Signification
0 0 Failure warning
0 1 No computed data
1 0 Functionnal test
1 1 Normal operation
BCD[modifier | modifier le code]
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 Functionnal test
1 1 Moins (Minus), Sud (South), Ouest (West), Gauche (Left), Depuis (From), Au-dessous (Below)
DSC[modifier | modifier le code]
Bit 31 Bit 30 Signification
0 0 Verified data / Normal operation
0 1 No computed data
1 0 Functionnal test
1 1 Failure warning

SDI[modifier | modifier le code]

Ce champ peut être utilisé de 2 manières[17],[8],[18],[19] :

  • pour définir le récepteur de la donnée sur un bus ayant plusieurs récepteurs,
Exemple : Si sur un même bus, on connecte 2 équipements identiques mais sur lesquels on veut envoyer des informations différentes, il suffit de configurer le 1eréquipement pour qu'il ne lise que les données avec le champ SDI placé à « 01 » et de la même manière le 2e équipement avec le champ SDI « 02 ». L'émetteur n'a plus qu'à modifier le champ SDI en fonction de l'équipement auquel il désire envoyer la donnée.
  • pour définir quel sous-système de l'émetteur a émis la donnée.
Exemple : Si on dispose d'un équipement émetteur hybride « centrale inertielle / GPS », lorsque l'on veut envoyer la position (label 010), on place le champ SDI à « 01 » lorsqu'il s'agit de la position inertielle, et à « 02 » lorsqu'il s'agit de la position GPS. Les récepteurs peuvent ainsi choisir parmi les 2 positions en fonction du champ SDI.

Il est souvent inutilisé et placé à « 00 ».

Label[modifier | modifier le code]

Le label est l'identifiant de la donnée codé sur 8 bits, il peut donc prendre 256 valeurs différentes[20],[21],[18].

Dans la documentation, il est exprimé, la plupart du temps, 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 vols, 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.

Exemple d'un mot[modifier | modifier le code]

L'image ci-dessous montre un mot ARINC 429, capturé grâce à 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)

Un mot ARINC 429, sous forme de signal

Trames[modifier | modifier le code]

Les trames sont composées de plusieurs mots de 32 bits espacés par au moins 4 bits à l'état NULL (utiles pour la synchronisation sur le mot suivant)[22],[5].

L'ordre des mots n'est pas imposé.

Avantages/Inconvénients[modifier | modifier le code]

Avantages[modifier | modifier le code]

  • La topologie est simple (facile d'approche, fiable,…),
  • Il est déterministe puisque n'ayant qu'un seul émetteur par bus, il n'y a aucun risque de collision.

Inconvénients[modifier | modifier le code]

  • Le nombre et donc le poids des nombreuses paires de fils à installer est important,
  • Dans l'avionique moderne, il est plus que limité par son faible débit et ses possibilités d'adressage (labels),
  • Il n'y a pas de somme de contrôle (hormis la parité) permettant de vérifier l'intégrité de données,
  • Le récepteur ne peut pas acquitter la bonne réception des données, hormis si on met en place un second bus en retour.

Références[modifier | modifier le code]

  1. a et b aim-online p8
  2. aero.polimi p5
  3. a et b aim-online p9
  4. aim-online p11
  5. a, b et c aero.polimi p10
  6. aim-online p11/12
  7. a et b aim-online p13
  8. a et b aea p2
  9. techaidproducts p4
  10. a et b aea p1
  11. techaidproducts p2/3
  12. a, b et c aim-online p16
  13. aim-online p13/14
  14. aea p2/3
  15. techaidproducts p3/4
  16. aero.polimi p16/18
  17. aim-online p17
  18. a et b techaidproducts p2
  19. aero.polimi p15/16
  20. aim-online p18
  21. aea p1/2
  22. aim-online p10

Liens internes[modifier | modifier le code]

Liens externes[modifier | modifier le code]