MIL-STD-1553 est une norme décrivant un bus de communication largement utilisé en avionique militaire et spatiale[1]. Elle a également été adoptée par l'OTAN sous l'appellation STANAG 3838.

Historique modifier

Elle a été développée sous l'égide du DoD américain à partir de 1968. La première version MIL-STD-1553A a été publiée le . La version actuelle est la MIL-STD-1553B datant du .

Couche physique modifier

Topologie modifier

Le MIL-STD-1553 décrit un bus de données série multiplexé (half-duplex). La connexion est réalisée par l'intermédiaire d'une paire torsadée blindée par bus.

Le standard définit la présence de deux bus (A et B) afin d'assurer la redondance, mais seulement un bus est actif à chaque instant.

Il y a trois types d'équipements connectés au bus :

  • Le gérant de bus ou « Bus Controller » (BC) qui orchestre les différents échanges sur le bus,
  • Les abonnés ou « Remote Terminal » (RT) qui utilisent le bus pour communiquer. Il peut y en avoir jusqu'à 31 (limitation liée à l'adressage),
  • Les moniteurs de bus ou « Bus Monitor » (BM) qui écoutent le bus. Il peut y en avoir plusieurs ou aucun.
 
Topologie d'un bus MIL-STD-1553

Support modifier

Chaque paire blindée doit répondre à plusieurs caractéristiques[2] :

  • La capacité entre les 2 fils ne doit pas excéder 30 pF/ft (soit 98,4 pF/m),
  • Le nombre de torsions (rotation de 360° des 2 fils) ne doit pas être inférieur à 4/ft (soit 13/m),
  • L'impédance caractéristique (Z0) doit être comprise entre 70 Ω et 85 Ω pour une fréquence sinusoïdale de 1 MHz,
  • L'atténuation ne doit pas excéder 1,5 dB/100ft (soit 4,92 dB/100m),
  • Le blindage du câble doit couvrir plus de 75 % de ce dernier.
  • Les 2 extrémités du câble doivent être « bouchées » par des résistances égales à l'impédance caractéristique du câble Z0 ±2 %.
 
Bouchon en extrémité d'une paire blindée d'un bus MIL-STD-1553

Encodage des bits modifier

L'encodage utilisé est de type Manchester II biphasé :

 
Encodage d'un bit MIL-STD-1553

Niveaux électriques modifier

Les niveaux électriques dépendent du couplage utilisé, avec un transformateur ou en direct, et sont différents en émission ou en réception.

Voir ces paramètres spécifiques dans les paragraphes liés au couplage.

Temps et vitesse modifier

La vitesse de transmission est de 1 Mbit/s[3] :

  • La stabilité à court terme (< 1 s) doit être inférieure à 0,01 %,
  • La stabilité à long terme doit être inférieure à 0,1 %,
  • Les temps de montée, de descente ainsi que la durée du demi-bit dépendent si le terminal est en réception (lecture) ou s'il est en émission (écriture) sur le bus.
 
Temps caractéristiques d'un bit MIL-STD-1553
Mode Bit rate 1bit time 1/2bit time Fall/Rise time
Réception MHz ± 0,01 % µs ± 150 ns 0,5 µs ± 150 ns Le signal peut être sinusoïdal
Émission µs ± 25 ns 0,5 µs ± 25 ns de 100 à 300 ns

Couplages modifier

Couplage en direct modifier

 
Couplage en direct d'un équipempent sur un bus MIL-STD-1553

Ce couplage impose diverses contraintes :

  • Le blindage du coupleur doit être connecté aux blindages du bus,
  • Toutes les jonctions de bus doivent être recouvertes par le blindage de manière continue à plus de 75 %,
  • Des résistances d'isolement doivent être placés entre le bus et le terminal, au plus proche ou à l'intérieur du terminal, leur valeur doit être de R = 55Ω ± 2 %,
  • La longueur de la dérivation ne doit pas excéder Lmax = 1ft (soit 0,304 8 m),
  • L'impédance en entrée du terminal soumis à un signal carré de fréquence comprise entre 75 kHz et 1 MHz doit être supérieure à 2kΩ,
  • Le rapport du transformateur d'isolation doit être de Ni = 1:1,
  • Les niveaux électriques entre les 2 lignes (A et B) de la paire blindée doivent être les suivants :
Niveau Ligne A <> Ligne B
En réception
Ligne A <> Ligne B
En émission
HIGH de +1,2 V à +20 V de +6 V à +9 V
LOW de -20 V à -1,2 V de -9 V à -6 V

Couplage par transformateur modifier

 
Couplage via un transformateur d'un équipempent sur un bus MIL-STD-1553

Ce couplage impose diverses contraintes :

  • Le blindage du coupleur doit être connecté aux blindages du bus,
  • Toutes les jonctions de bus doivent être recouvertes par le blindage de manière continue à plus de 75 %,
  • Des résistances d'isolement doivent être placés entre le bus et le transformateur de couplage, leur valeur doit être de R = 0,75 x (Z0) ± 2 %,
  • Le rapport du transformateur de couplage doit être de Nc = 1:1,41 ±3 %, le plus grand nombre de spires est du côté des résistances d'isolement (autrement dit, transformateur abaisseur du point de vue du terminal),
  • L'impédance de sortie en circuit ouvert du transformateur de couplage soumis à une sinusoïde de tension 1 V (RMS) et de fréquence comprise entre 75 kHz et 1 MHz doit être supérieure à 3kΩ,
  • Le taux de réjection de mode commun du transformateur de couplage doit être supérieur à 45dB à 1 MHz,
  • La longueur de la dérivation ne doit pas excéder Lmax = 20ft (6,09 m),
  • L'impédance en entrée du terminal soumis à un signal carré de fréquence comprise entre 75 kHz et 1 MHz doit être supérieure à 1kΩ,
  • Le rapport du transformateur d'isolation doit être de Ni = 1:1.
  • Les niveaux électriques entre les 2 lignes (A et B) de la paire blindée doivent être les suivants :
Niveau Ligne A <> Ligne B
En réception
Ligne A <> Ligne B
En émission
HIGH de +0,86 V à +14 V de +18 V à +27 V
LOW de -14 V à -0,86 V de -27 V à -18 V

Couche liaison de données modifier

Mots modifier

 
Structure d'un mot MIL-STD-1553

Les mots de 16 bits sont encapsulés dans 20 bits décomposables en trois parties[4] :

  • Les bits 1 à 3 premiers servent de synchronisation,
  • Les bits 4 à 19 (16 bits) composent le mot proprement dit,
  • Le bit 20 est un bit de parité.

Ordre de transmission des bits modifier

Dans un mot, les bits sont transmis en commençant par le bit nommé "bit time n°1" de poids fort, les autres suivent par ordre de force décroissante (bit time no 2, bit time no 3, etc.) jusqu'au bit time no 20[5].

De la même manière, si une donnée est codée sur plus de 16 bits, et qu'on doit utiliser plusieurs mots pour la transmettre, c'est le mot contenant les bits de poids fort qui doit être émis en premier.

Synchronisation modifier

La synchronisation est réalisée par une violation du code Manchester sur les premiers 3 bits de la trame.

Elle consiste à placer le bus au niveau HIGH pendant le temps équivalent à 1,5 bit puis au niveau LOW durant le 1,5 bit restant (« front descendant »), ou inversement (« front montant ») en fonction du type de mot (voir ci-dessous).

Parité modifier

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

La parité est définie comme étant impaire (odd). Si le nombre de bits d'Information à "1" est paire, le bit de parité sera à "1". À l'inverse si ce nombre est impaire il sera mis à "0".

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é impaire.

Mot de commande modifier

 
Mot de commande MIL-STD-1553
Sync modifier

La synchronisation forme un « front descendant ».

RT address modifier

Ce champ permet d'adresser le mot à un terminal en particulier, chaque terminal ayant une adresse unique. Les 5 bits permettent 32 adresses, cependant l'adresse « 11111 » est réservée pour contacter l'ensemble des terminaux (« broadcast »), c'est pourquoi il ne peut il y avoir que 31 terminaux connectés au bus.

T/R (Transmit/Receive) modifier

Si le bit vaut :

  • 0 → on prévient le terminal qu'il doit recevoir des données.
  • 1 → on demande au terminal d'envoyer des données.
Sub-address or mode modifier

Les 5 bits permettent 32 combinaisons :

  • les combinaisons « 00000 » et « 11111 » sont réservées comme « mode » et permettent de dire au terminal que le champ « Data word count or mode code » doit être interprété comme un « mode code »,
  • les 30 autres sont interprétées comme « Subaddress » et permettent de s'adresser à un des 30 sous-ensembles que peut compter un terminal.
Data word count or mode code modifier
Data word count modifier

Il s'agit :

  • du nombre de mots que va recevoir le terminal si « T/R » vaut 0,
  • du nombre de mots que doit envoyer le terminal si « T/R » vaut 1.

Les 5 bits permettent d'envoyer de 1 à 32 données, la valeur 0 correspond à 32 mots de données envoyées. Il ne peut pas y avoir plus de 32 mots de données envoyées à la suite dans un seul échange.

Mode code modifier

Pour les combinaisons :

  • de « 00000 » à « 01111 » ne nécessitent pas de réponse du terminal, mais le bit « T/R » doit être placé à 1,
  • de « 10000 » à « 11111 » nécessitent une réponse composée d'un seul mot de données de la part du terminal.
Mode code Fonction Bit T/R Broadcast
autorisé?
Détail
00000 Dynamic bus control 1 Non Le terminal doit répondre par un mot de statut en plaçant le bit 18 (« Dynamic bus acceptance flag ») :
« 1 » pour accepter le test,
« 0 » pour refuser (ou si la fonction n'est pas implémentée).
00001 Synchronise (without data word) 1 Oui Le terminal doit se synchroniser (reset de l'horloge interne et/ou lancement d'une séquence de synchronisation) et répondre par un mot de statut.
00010 Transmit status word 1 Non Le terminal doit renvoyer le dernier mot de statut qu'il a précédemment transmis.
00011 Initiate self test 1 Oui Le terminal doit initier une séquence de test et répondre par un mot de statut.
00100 Transmitter shutdown 1 Oui Le contrôleur ne doit envoyer cette commande au terminal que sur un des 2 bus redondés.
Le terminal doit inhiber son transmetteur sur l'autre bus et répondre par un mot de statut sur le bus resté actif.
00101 Override transmitter shutdown 1 Oui Annule la commande « transmitter shutdown ».
Le terminal doit répondre par un mot de statut.
00110 Inhibit terminal flag bit 1 Oui Le terminal doit placer le bit 19 (« Terminal flag ») à « 0 » dans les mots de statut qu'il renvoie (afin d'inhiber le fait qu'il soit en défaut) et doit répondre par un mot de statut.
00111 Override inhibit terminal flag bit 1 Oui Annule la commande « inhibit terminal flag bit ».
Le terminal doit répondre par un mot de statut.
01000 Reset remote terminal 1 Oui Après avoir transmis un mot de statut, le terminal doit se réinitialiser.
10000 Transmit vector word 1 Non Le terminal doit répondre par un mot de statut, puis transmettre un mot de données contenant l'information « service request information » lorsque le bit du mot de statut éponyme n'est pas suffisant.
10001 Synchronise (with data word) 0 Oui En plus du mot de commande, le terminal reçoit un mot de données qui contient des informations liées à la synchronisation.
Le terminal doit se synchroniser (reset de l'horloge interne et/ou lancement d'une séquence de synchronisation) et répondre par un mot de statut.
10010 Transmit last command 1 Non Le terminal doit répondre par un mot de statut, puis transmettre un mot de données contenant l'information les bits 4 à 19 du dernier mot de commande reçu.
10011 Transmit BIT word 1 Non Le terminal doit répondre par un mot de statut, puis transmettre un mot de données contenant le résultat du BIT (Built In Test) si le terminal contient un telle fonction.
10100 Selected transmitter shutdown 0 Oui Idem que la commande « transmitter shutdown », mais lorsque le nombre de bus redondés est supérieur à 2. Le numéro du bus sur lequel il faut inhiber le transmetteur est contenu dans le mot de données qui suit la commande.
Le terminal doit répondre par un mot de statut.
10101 Override selected transmitter shutdown 0 Oui Annule la commande « selected transmitter shutdown ». Le numéro du bus sur lequel il faut désinhiber le transmetteur est contenu dans le mot de données qui suit la commande.
Le terminal doit répondre par un mot de statut.

Mot de données modifier

 
Mot de données MIL-STD-1553
Sync modifier

La synchronisation forme un « front montant ».

Data modifier

Ce champ correspond à la donnée codée sur 16 bits.

Mot d'état (ou mot de statut) modifier

 
Mot d'état MIL-STD-1553
Sync modifier

Idem que pour le mot de commande, la synchronisation forme un « front descendant ».

RT address modifier

Idem que pour le mot de commande.

Message error modifier

Doit être placé à 1 pour signaler qu'un mot de données de la trame reçue n'était pas conforme (parité, nombre de bits, etc.) ou que la commande reçue n'est pas conforme.

Instrumentation modifier

Doit être placé à 0 dans la majorité des cas. Il peut être utilisé pour différencier les mots de statut des mots de commande.

Service request modifier

Permet au terminal de spécifier qu'il attend une action spécifique définie à l'avance de la part du contrôleur en plaçant le bit à 1.

Broadcast command received modifier

Doit être placé à 1 pour signaler que la commande précédente était de type « broadcast ».

Busy modifier

Doit être placé à 1 par le terminal pour dire qu'il est incapable de traiter les données reçues.

Subsystem flag modifier

Doit être placé à 1 si le terminal souhaite déclarer qu'un de ses sous-systèmes est en panne et que les données ne pourront « peut-être » pas être traitées correctement.

Dynamic bus acceptance flag modifier

Permet de répondre à la commande « Dynamic bus control » en plaçant le bit à 1.

Terminal flag modifier

Doit être placé à 1 si le terminal souhaite se déclarer en défaut. Doit être inhibé (placé à 0) si le terminal reçoit commande « Inhibit terminal flag bit ».

Trames modifier

Les trames sont composées d'échanges de mots entre le BC et les RTs.

Lorsqu'un même BC ou RT transmet plusieurs mots qui se suivent, il n'y a pas d'espacement ou de gap entre eux.

Le temps de réponse à un mot d'un RT doit être compris entre 4 μs et 12 μs.

Le gap entre les trames doit être d'au moins 4 μs.

Pour les 2 temps cités ci-dessus, la durée est mesurée entre la transition HIGH/LOW du milieu du 20e bit du mot précédent et la transition HIGH/LOW du champ Sync du mot suivant (au milieu du 2e bit).

Le timeout de non-réponse est de 14 μs, en partant de la transition HIGH/LOW du milieu du 20e bit du dernier mot.

Si une nouvelle commande est reçue avant que le RT n'ait répondu à la ou aux précédentes, la dernière reçue prévaut sur toutes les autres.

Transfert BC → RT modifier

Déroulement :

 
Transfert BC → RT sur un bus MIL-STD-1553

Transfert RT → BC modifier

Déroulement :

 
Transfert RT → BC sur un bus MIL-STD-1553

Transfert RT → RT modifier

Déroulement :

 
Transfert RT → RT sur un bus MIL-STD-1553

Échanges « mode code » modifier

Les échanges se font sur le même principe que les transferts, avec ou sans données.

Échanges « broadcast » modifier

Les échanges se font sur le même principe que les transferts, sauf qu'il n'y a pas de mot d'état à la fin envoyé par un RT, ceci afin d'éviter que tous les RTs tentent de le faire simultanément.

Exemple d'un transfert RT → BC modifier

L'image ci-dessous donne un exemple des concepts expliqués dans les sections précédentes.

Ainsi on peut voir une demande de transmission (puisque le bit 6 ou T en violet est à 1 dans le mot de commande) faite au RT adressé avec le numéro 0x03.

Les derniers 5 bits (verts) du mot de commande contiennent le nombre de mots à transmettre par le RT, ici 0x01, ce qui correspond effectivement au mot de données (en turquoise, valeur 0x02) unique suivant le mot d'état.

On remarque la différence d'amplitude du signal entre la demande du BC et la réponse du RT. Cette différence est à mettre sur le compte de la position de l'observation électrique sur le bus. Nous sommes ici plus loin du BC que du RT. Le BC est donc reçu avec une amplitude moindre que le RT.

 
Exemple pour un Transfer RT à BC, avec un mot de données

Avantages/Inconvénients modifier

Avantages modifier

  • Il est déterministe puisqu'il possède un gérant de bus,
  • Il est robuste aux perturbations,
  • Le mécanisme du mot d'état permet à l'équipement destinataire de vérifier que le transfert a bien été réalisé,
  • Il existe un manuel définissant les modalités d'implantation, de qualification et de test : MIL-HDBK-1553.

Inconvénients modifier

  • Dans l'avionique moderne, il commence à montrer ses limites de par son relatif faible débit et ses possibilités d'adressage,
  • Il n'y a pas de somme de contrôle (hormis la parité) permettant de vérifier l'intégrité de données,
  • Complexité du couplage sur le bus,
  • Les transitions liées à l'encodage Manchester II biphasé entraîne un spectre fréquentiel élevé pouvant perturber d'autres équipements si le blindage n'est pas suffisant.

Anecdotes modifier

  • L'adresse des RT est lue une seule fois lors de leur mise sous tension. Cette règle est la conséquence de pertes d'adresse survenues dans les premières versions du bus. Ces pertes d'adresse étaient dues aux vibrations engendrées par l'usage des armes de bord sur des hélicoptères de combat.
  • Ce bus est utilisé dans le métro londonien[7].
  • Ce bus est utilisé dans certains satellites de télécommunication et d'observation[8].

Systèmes similaires modifier

DIGIBUS (ou Digibus) est l'équivalent français de la norme MIL-STD-1553[9]

Il est similaire à la norme MIL-STD-1553,  il possède la même notion de contrôleur de bus, de terminal distant, de moniteur et la même vitesse de transmission.

La différence principale est que DIGIBUS sépare physiquement les données et les commandes. [1]

'GJV289A est l'équivalent chinois de la norme MIL-STD-1553 et GOST R 52070-2003 est l'équivalent russe / soviétique de MIL-STD-1553. [2]

Références modifier

  1. ESA MilBus Mil-STD-1553
  2. corot p33/34
  3. corot p5
  4. corot p5/6
  5. corot p3
  6. corot p8
  7. corot p1
  8. OBCDH
  9. « DIGIBUS », sur www.nexeya.com (consulté le )

Liens externes modifier