Normes & formats
Le format D.T.MUX, et son parallèle avec Chapter 10
Pourquoi un enregistreur possède encore un format maison, comment se construit un enregistrement D.T.MUX, et où il rejoint — ou quitte volontairement — IRIG 106 Chapter 10.
Pourquoi un format maison existe encore
D.T.MUX est plus ancien que l'adoption générale de Chapter 10. Il a été conçu pour un enregistreur qui devait écrire des voies hétérogènes — analogiques, bus, liaisons série, vidéo, discrets — d'abord sur bande magnétique, puis sur disque, puis sur mémoire solid-state, sans que la structure du fichier change sous les outils.
Ce n'est pas un concurrent de la norme. Les enregistreurs ETEP écrivent les deux, et la même acquisition peut produire l'un ou l'autre. La vraie question n'est pas de savoir quel format gagne, mais à quoi chacun sert.
Un format maison apporte deux choses. Il peut spécifier ce que la norme laisse volontairement ouvert — unités physiques, étalonnage, qualité de l'acquisition — et il peut suivre le matériel sans attendre un comité. Ce qu'il coûte est tout aussi clair : c'est à vous de fournir le lecteur. D'où le fait qu'un logiciel de relecture et un convertisseur font partie du produit, et non de ses accessoires.
Des blocs plutôt que des paquets
Tout, dans un enregistrement D.T.MUX, est un bloc : un en-tête de taille fixe suivi des données d'une seule voie. Les blocs sont émis à intervalles réguliers, et aucune contrainte ne pèse sur l'ordre d'apparition des voies — l'écriture sert chaque voie à mesure que son tampon se remplit, ce qui est exactement ce qu'un système d'acquisition veut faire.
L'en-tête commence par un motif de synchronisation de quatre mots de 32 bits. Chapter 10 consacre seize bits à la même fonction. Cette longueur est un héritage de la bande magnétique, et elle se révèle précieuse sur un flux en direct : la probabilité que le motif apparaisse par hasard dans les données est négligeable, si bien qu'un lecteur qui prend le flux en cours de vol se verrouille immédiatement sur la frontière de bloc suivante, sans ambiguïté.
Le format raisonne en mots de 32 bits plutôt qu'en octets. Les échantillons sont rangés poids fort en premier, et le dernier mot d'un bloc peut n'être que partiellement rempli — d'où les deux longueurs portées par l'en-tête : la taille totale du bloc et le nombre de mots qui portent réellement des données. Des mots de bourrage sont admis entre les blocs, ce qui permet à l'écriture de s'aligner sur ce que le support préfère, le lecteur les retirant grâce au compte de mots utiles.
Les blocs qui ne contiennent qu'un en-tête sont légitimes, et ce n'est pas du gaspillage. Ils font avancer le compteur de blocs de la voie et la base de temps pendant qu'une voie n'a rien à dire, si bien qu'un trou dans une voie se voit comme un trou au lieu d'être déduit d'une absence.
Un enregistrement qui se décrit lui-même
Chaque enregistrement commence par un bloc de réglage — historiquement appelé secrétariat — qui décrit l'acquisition en champs texte : quelles voies sont présentes, comment chaque carte est configurée, les cadences d'échantillonnage, le mode d'acquisition, la date et l'heure. Il joue exactement le rôle que TMATS joue dans un fichier Chapter 10.
Des blocs optionnels suivent, et c'est là que le format va plus loin que la norme. Un bloc d'informations utilisateur porte le nom de chaque voie, son unité et la conversion A·x + B des points bruts vers une grandeur physique. Un bloc d'étalonnage de cartes porte le gain et l'offset de la chaîne d'acquisition elle-même. Un bloc d'étalonnage capteurs porte ce qui transforme des volts en mesure physique.
Quelques blocs de service complètent le tableau : une table des matières listant les enregistrements présents sur le support, un bloc de marqueurs listant les positions signalées pendant le vol, un bloc d'identification du support lui-même, et un marqueur de fin d'enregistrement pour qu'un même support porte plusieurs enregistrements à la suite.
Le temps, et la santé du temps
Chaque en-tête de bloc porte 48 bits de temps — la même largeur que le compteur de temps relatif de Chapter 10, et une idée totalement différente. Chapter 10 compte des tops à 10 MHz et a besoin de paquets de temps distincts pour rattacher ce compte à un calendrier. D.T.MUX écrit le calendrier lui-même : jour de l'année, heures, minutes et secondes, plus la partie sous-seconde, comme date du premier échantillon du bloc.
La conséquence, c'est qu'un bloc se date tout seul. Coupez un fichier n'importe où, perdez le début, récupérez un fragment sur un support abîmé : chaque bloc encore lisible sait quand il a été acquis, sans avoir à retrouver un paquet de temps précédent.
Et l'en-tête porte quelque chose de plus rare. Un indicateur précise quel générateur a produit ce temps — horloge interne, temps IRIG, temps GPS — et, distinctement, si l'IRIG ou le GPS avait été perdu. Les variantes absolue, relative et microseconde se distinguent également.
Cela mérite d'être souligné, car c'est le genre de détail qu'on apprécie seulement après une campagne qui a mal tourné. Dans la plupart des formats, « le GPS a décroché quarante secondes quelque part dans la deuxième sortie » se reconstruit après coup à partir d'une voie d'état, à condition que quelqu'un ait pensé à l'enregistrer. Ici, l'information voyage avec chaque bloc : vous savez, bloc par bloc, quelle horloge a daté la donnée et si cette horloge était saine. C'est la différence entre un doute et une réponse.
Un autre champ de l'en-tête localise un échantillon particulier à l'intérieur du bloc — le début d'une trame utilisateur, ou l'instant exact d'une image vidéo — ce qui permet d'aligner un flux de blocs sur quelque chose de plus fin que le bloc lui-même.
Face à face avec Chapter 10
faire défiler
Cette comparaison se lit dans les deux sens. Chapter 10 gagne sur l'universalité : n'importe quel outil conforme ouvre le fichier, ce qui vaut beaucoup sur un programme à cinq industriels, et c'est pourquoi les clients l'imposent. D.T.MUX gagne sur l'autonomie du fichier : les unités, l'étalonnage, la source de temps, la santé de cette source et la qualité de l'acquisition sont tous à l'intérieur.
Aucun de ces deux avantages n'est rhétorique. Ils correspondent à deux modes de défaillance différents — « personne ne peut ouvrir mon fichier » et « personne ne peut me dire ce que ce fichier veut dire » — et une campagne sérieuse est exposée aux deux.
N'enregistrer que ce qui compte : les modes d'acquisition
Le bloc de réglage déclare aussi la manière dont l'acquisition a été déclenchée. Le continu est une option. Un déclenchement simple avec une durée de post-trigger déclarée en est une autre. Un mode rafale capte un nombre défini de segments déclenchés, et un mode à deux cadences enregistre un nombre d'échantillons différent avant et après l'événement.
Cela compte plus qu'il n'y paraît. Sur une campagne de chocs ou de vibrations, vous ne voulez pas des heures d'enregistrement continu de rien ; vous voulez les segments autour des événements, avec assez de pré-trigger pour voir ce qui y a mené. Comme le mode est déclaré dans le fichier, le lecteur sait qu'il regarde un ensemble de segments et non un flux continu, et peut le présenter comme tel au lieu de tracer un trait trompeur au-dessus des trous.
L'honnêteté d'un format qui a vécu
Le format accepte les deux ordres d'octets, et il existe une variante où les deux moitiés de chaque mot de 32 bits sont permutées — une cicatrice laissée par les machines qui relisaient les bandes. Un lecteur la détecte sur le motif de synchronisation lui-même, ce qui constitue un argument de plus pour en avoir un long.
Tout format qui a survécu de la bande magnétique à la mémoire solid-state accumule ce genre d'histoire. Le dire est plus utile que de faire semblant : un lecteur digne de ce nom détecte la variante, s'adapte, et n'en parle pas. L'alternative — un format sans histoire — signifie généralement un format sans parc derrière lui.
Alors, lequel enregistrer ?
- Chapter 10 quand le livrable franchit une frontière d'entreprise, quand la chaîne d'analyse du client le parle déjà, quand un programme l'impose, ou quand le fichier devra encore s'ouvrir dans vingt ans avec des outils que personne n'a écrits.
- D.T.MUX quand vous voulez que le fichier porte son étalonnage, ses unités et son diagnostic de temps, quand la campagne est déclenchée, ou quand toute la chaîne du capteur au rapport reste dans le même outillage.
- Les deux, ce qui est la réponse habituelle, parce que le choix n'est pas exclusif et que le coût d'écrire le second est proche de zéro.
- Et dans tous les cas, convertir plutôt que revoler : transformer un conteneur en l'autre après le vol est une opération logicielle, une seconde sortie n'en est pas une.