Si vous développez des logiciels qui touchent à Link 16, tôt ou tard vous cessez de parler de formes d'onde pour commencer à parler de messages. La forme d'onde vous obtient un créneau temporel ; la J-series est ce que vous y mettez. Le catalogue de messages J est la partie de Link 16 qu'une équipe d'ingénierie implémente, teste et débogue réellement à trois heures du matin lorsqu'une piste n'apparaît pas sur la situation tactique. Voici un guide de terrain de ce catalogue : la structure d'un mot J, les séries qui comptent, et les schémas de codec qui empêchent le protocole d'empoisonner votre modèle de domaine.

1. ce qu'est la J-series

La J-series est le catalogue de messages binaires à format fixe de Link 16, défini dans MIL-STD-6016 et reflété au sein de l'OTAN par le STANAG 5516. « TADIL-J » est l'ancienne désignation américaine de la même chose — Tactical Digital Information Link, J-series — et vous la verrez encore dans d'anciennes spécifications d'interface et documentations de programme. Quand on dit qu'une plateforme est « J-capable », cela signifie qu'elle peut encoder et décoder ce catalogue.

Le catalogue est organisé en séries numérotées de J2 à J31, chacune regroupant les messages par fonction : localisation, surveillance, gestion de l'information, armement, contrôle, statut et texte libre. Chaque message est une disposition de bits fixe — aucun préfixe de longueur, aucune étiquette de champ, aucune auto-description. L'encodeur et le décodeur détiennent tous deux la carte des champs MIL-STD-6016 dans le code, et les bits sur le fil ne signifient rien sans elle. Cette rigidité est le but recherché : elle supprime la surcharge par message, ce qui importe lorsque votre budget de transport est une fraction d'un créneau TDMA. Si vous découvrez la couche porteuse sous le catalogue, notre explication sur les liaisons de données tactiques Link 16 couvre la forme d'onde, la temporisation TDMA et l'architecture réseau sur laquelle s'appuie la J-series.

2. structure de mot

L'unité atomique de la J-series est le mot de 70 bits. Chaque mot porte 70 bits de contenu de message plus la parité et les bits que le terminal ajoute pour le créneau — mais à la couche message, vous raisonnez en mots de 70 bits. Un message J est une séquence de ces mots dans un ordre défini : un mot initial, zéro ou plusieurs mots d'extension, et zéro ou plusieurs mots de continuation.

Le mot initial porte l'étiquette du message — la paire de champs qui identifie le message comme étant, par exemple, J3.2 — plus le premier bloc de charge utile. Les cinq premiers bits du mot initial constituent le format du mot et la structure de l'étiquette ; l'étiquette (un Label de 5 bits et un Sub-Label de 3 bits) indique au décodeur quelle série et quel message il lit, et donc comment interpréter chaque bit qui suit. Les mots d'extension portent des champs supplémentaires obligatoires qui ne tenaient pas dans le mot initial. Les mots de continuation portent des champs optionnels, chacun étiqueté avec un Continuation Word Format Number afin que le décodeur sache quel bloc optionnel il analyse.

Les mots sont empaquetés dans les créneaux TDMA selon la structure d'empaquetage en usage — Standard Double Pulse, Packed-2 ou Packed-4 — qui échangent la résistance au brouillage contre la capacité en faisant tenir respectivement 3, 6 ou 12 mots par créneau. Les bits de réserve sont courants : là où MIL-STD-6016 réserve un champ pour un usage futur, il doit être transmis à zéro et ignoré à la réception. La mauvaise gestion des valeurs de réserve et « no statement » est l'une des sources les plus fréquentes de faux décodages.

3. série J2

La série J2 est le PPLI — Precise Participant Location and Identification — et constitue le battement de cœur d'un réseau Link 16. Chaque participant actif diffuse son propre PPLI de façon récurrente afin que tous les autres sachent où il se trouve, qui il est et ce qu'il peut faire. Le PPLI est la façon dont le réseau s'auto-organise : navigation relative, identification et gestion du réseau s'appuient tous sur lui.

Les messages J2 sont répartis par domaine de plateforme. J2.0 est le PPLI à interface indirecte utilisé par les unités relayées sur le réseau ; J2.2 est le PPLI air ; J2.3 est le PPLI de surface (maritime) ; J2.5 est le PPLI terrestre. Chacun porte la position, la vitesse, l'identité et les champs de capacité du participant appropriés à son domaine. La raison pour laquelle chaque unité diffuse son propre PPLI plutôt que d'être pistée par les autres est l'intégrité : un participant est la source faisant autorité pour sa propre position et son identité, ce qui élimine toute une classe d'ambiguïté de corrélation. Lorsqu'une unité disparaît de la situation tactique, la première chose qu'un opérateur vérifie est de savoir si son PPLI arrive toujours.

4. série J3

La série J3 porte la surveillance — les pistes qui composent la situation tactique des objets qui ne signalent pas leur propre PPLI. Là où J2 dit « me voici », J3 dit « voici quelque chose que je vois ». La série est répartie par domaine de piste : J3.2 sont les pistes air, J3.3 les pistes de surface (maritimes), J3.5 le point terrestre et la piste terrestre. Il y a aussi J3.0 (point de référence), J3.1 (point d'urgence), J3.4 (sous-surface), J3.6 (piste spatiale) et J3.7 (produit de guerre électronique).

Chaque message de surveillance porte un numéro de piste, une position, un cap et une vitesse, ainsi que les champs d'identité et de qualité de piste qui guident les décisions de l'opérateur. La Track Quality est un petit entier qui résume la confiance de positionnement ; les champs d'identité encodent la taxonomie standard — Pending, Unknown, Assumed Friend, Friend, Neutral, Suspect, Hostile — aux côtés des codes de plateforme et d'activité. La subtilité de décodage ici est la responsabilité de signalement : deux unités peuvent signaler le même objet physique avec des numéros de piste différents, et c'est la logique de corrélation et de déconfliction du réseau, et non le message J3 lui-même, qui décide quel signalement l'emporte.

Aperçu clé : La J-series n'a aucun concept de « pas de valeur » au-delà des codes explicites « no statement » intégrés dans chaque champ. Un champ de latitude n'est pas nullable — c'est toujours 25 bits de quelque chose. Si votre codec mappe un cap « no statement » ou un champ de réserve tout à zéro vers un véritable 0.0 dans votre modèle de domaine, vous afficherez une piste posée à l'équateur faisant zéro nœud. Traitez l'encodage « no statement » de chaque champ comme un cas de première classe, et non comme une réflexion après coup.

5. séries J7/J9

Une fois que vous avez la position (J2) et la surveillance (J3), le réseau doit gérer cette information : c'est la série J7. J7.0 est le message de pointeur / corrélation — il permet à une unité de désigner à une autre unité une piste spécifique, ou d'affirmer que deux numéros de piste désignent le même objet. J7.1 est la gestion IFF/SIF, J7.2 est un transfert de gestion de piste, et J7.3 est une directive de corrélation/dé-corrélation. La série J7 est ce qui transforme un amas de signalements indépendants en une situation partagée cohérente et déconflictée.

La série J9 est la coordination de commandement et d'armement. J9.0 est le message de commandement — le mécanisme formel par lequel une unité de contrôle émet une directive à une unité contrôlée. C'est là que Link 16 cesse d'être un bus de diffusion passif pour devenir un canal de commandement : l'attribution, la direction d'engagement et la coordination de soutien transitent par J9 de concert avec la série de contrôle J12. Les équipes d'ingénierie qui traitent Link 16 comme une télémétrie en lecture seule sont toujours surprises la première fois qu'elles doivent émettre un J9.0.

6. J10/J12/J13

La série J10 est la coordination et la gestion de l'armement. Elle porte le statut d'engagement, l'appariement des armes aux cibles, le transfert d'un engagement entre unités, et le signalement en vol dont un réseau de défense aérienne a besoin pour déconflicter les tireurs. J10.2 (statut d'engagement) et J10.5 (directive d'arme) sont les bêtes de somme ; s'y tromper ne signifie pas une icône manquante, cela signifie deux unités engageant la même menace ou aucune ne l'engageant.

La série J12 est le contrôle : guidage, attribution de mission et tri de cibles. J12.0 est le message d'attribution de mission qui confie à un aéronef contrôlé sa tâche ; J12.6 est le message de tri de cibles. J12 est la série qui fait de Link 16 un moyen de contrôle de chasse plutôt qu'un flux de connaissance de la situation. La série J13 est le statut de plateforme et de système — J13.2 plateforme air, J13.3 plateforme de surface, J13.4 sous-surface, J13.5 plateforme terrestre — signalant le carburant, l'inventaire d'armes et la disponibilité système afin qu'un contrôleur sache non seulement où se trouve une unité mais ce qu'elle peut encore faire.

7. texte libre et le maillon critique

La série J28 est le texte libre et les messages associés — J28.0 est le message texte qui porte des chaînes lisibles par l'humain lorsqu'aucun message structuré ne convient. C'est l'échappatoire, et comme toute échappatoire elle est surutilisée ; un réseau qui s'appuie sur le texte libre J28 pour des choses qui devraient être des messages J structurés est un réseau dont l'automatisation a abandonné. J31 est la série de gestion — J31.0 couvre le rechiffrement par voie hertzienne et la réallocation de créneaux temporels qui maintient le réseau cryptographique en bonne santé.

Le maillon critique de toute implémentation J-series n'est pas les messages courants — J2 et J3 sont bien balisés. Ce sont les pièges. L'endianness des bits à l'intérieur d'un mot fait trébucher presque toute première implémentation : MIL-STD-6016 numérote les bits dans un ordre spécifique, et lire un champ bit-de-poids-fort-d'abord alors que la norme l'empaquette bit-de-poids-faible-d'abord produit un charabia d'apparence plausible. Les champs désaffectés et réservés sont le second piège : les normes évoluent, des champs sont dépréciés, et un ancien émetteur peut positionner des bits qu'un nouveau décodeur strict rejette. Construisez de la tolérance pour les bits réservés et de la rigueur pour les bits de réserve.

8. construire un codec J-series

L'architecture qui survit au contact est le schéma d'adaptateur à double pile. Votre système de combat ou application C2 maintient sa situation tactique dans un modèle de domaine interne — pistes, participants, engagements — qui ne sait rien de Link 16. Une couche d'adaptateur de protocole se place entre ce modèle et le terminal, traduisant le modèle de domaine vers et depuis les mots J-series sur le fil. La règle cardinale : ne laissez jamais le protocole fuir dans le modèle de domaine. Une piste dans votre cœur ne devrait pas porter un champ « J3.2 mot 2 bit 14 » ; elle devrait porter une position et une identité, et l'adaptateur détient le mappage. La même discipline s'applique à chaque protocole que vous pontez, ce qui est au cœur de l'interopérabilité OTAN pratique — VMF, Link 22, J-series tunnelée par JREAP deviennent tous des adaptateurs face à un seul modèle canonique.

Testez le codec contre des vecteurs, pas contre un réseau en service. MIL-STD-6016 et ses suites de tests fournissent des motifs de bits de référence pour chaque message ; encodez un objet de domaine connu, comparez les octets au vecteur, puis décodez le vecteur en retour et comparez l'objet. Faites l'aller-retour pour chaque message que vous prenez en charge, et assurez-vous que les champs « no statement » survivent au trajet en tant que « no statement » plutôt que de s'effondrer à zéro. Lorsque vous ajoutez la prise en charge d'un nouveau message J, vous ajoutez un adaptateur et ses vecteurs — vous ne touchez ni au modèle de domaine ni au reste de la pile. Cette isolation est ce qui vous permet d'absorber une mise à niveau de bloc Link 16 en échangeant un seul adaptateur au lieu de réaliser des tests de régression sur tout un système de combat.