
Un Data Matrix est un code bidimensionnel composé de « cellules » ou de points noirs et blancs disposés selon un motif carré ou rectangulaire , également appelé matrice . Les informations à encoder peuvent être des données textuelles ou numériques. La taille habituelle des données varie de quelques octets à 1556 octets . La longueur des données encodées dépend du nombre de cellules de la matrice. Des codes de correction d'erreur sont souvent utilisés pour augmenter la fiabilité : même si une ou plusieurs cellules sont endommagées et donc illisibles, le message peut toujours être lu. Un symbole Data Matrix peut stocker jusqu'à 2 335 caractères alphanumériques .
Les symboles Data Matrix sont rectangulaires, généralement de forme carrée et composés de « cellules » carrées qui représentent des bits . Selon le codage utilisé, une cellule « claire » représente un 0 et une cellule « sombre » un 1, ou vice versa. Chaque Data Matrix est composé de deux bordures adjacentes pleines en forme de « L » (appelées « motif de recherche ») et de deux autres bordures constituées de « cellules » ou modules sombres et clairs alternés (appelées « motif de synchronisation »). À l'intérieur de ces bordures se trouvent des lignes et des colonnes de cellules codant des informations. Le motif de recherche est utilisé pour localiser et orienter le symbole tandis que le motif de synchronisation fournit un décompte du nombre de lignes et de colonnes du symbole. Au fur et à mesure que davantage de données sont codées dans le symbole, le nombre de cellules (lignes et colonnes) augmente. Chaque code est unique. Les tailles des symboles varient de 10×10 à 144×144 dans la nouvelle version ECC 200, et de 9×9 à 49×49 dans l’ancienne version ECC 000 – 140.
Applications

L'application la plus populaire du Data Matrix est le marquage de petits objets, en raison de la capacité du code à encoder cinquante caractères dans un symbole lisible à 2 ou 3 mm2 ( 0,003 ou 0,005 pouce carré) et du fait que le code peut être lu avec un rapport de contraste de seulement 20 %. Un Data Matrix est évolutif ; des applications commerciales existent avec des images aussi petites que 300 micromètres (0,012 pouce) (gravées au laser sur un dispositif en silicium de 600 micromètres (0,024 pouce)) et aussi grandes qu'un carré de 1 mètre (3 pieds) (peintes sur le toit d'un wagon couvert ). La fidélité des systèmes de marquage et de lecture est la seule limitation. L'US Electronic Industries Alliance (EIA) recommande d'utiliser le Data Matrix pour l'étiquetage des petits composants électroniques.
Les codes Data Matrix sont de plus en plus courants sur les supports imprimés tels que les étiquettes et les lettres. Le code peut être lu rapidement par un lecteur de codes-barres, ce qui permet de suivre le support, par exemple lorsqu'un colis a été expédié au destinataire.
À des fins d'ingénierie industrielle, les codes Data Matrix peuvent être marqués directement sur les composants, garantissant que seul le composant prévu est identifié avec les données codées par Data Matrix. Les codes peuvent être marqués sur les composants par diverses méthodes, mais dans l'industrie aérospatiale, il s'agit généralement du marquage industriel par jet d'encre, par micro-percussion, par laser et par gravure chimique électrolytique (ECE). Ces méthodes donnent un marquage permanent qui peut durer toute la durée de vie du composant.
Les codes Data Matrix sont généralement vérifiés à l'aide d'un équipement de caméra et d'un logiciel spécialisés. Cette vérification garantit que le code est conforme aux normes en vigueur et garantit la lisibilité pendant toute la durée de vie du composant. Une fois le composant mis en service, le code Data Matrix peut être lu par une caméra de lecture, qui décode les données Data Matrix qui peuvent ensuite être utilisées à diverses fins, telles que le suivi des mouvements ou les contrôles des stocks.

Les codes Data Matrix, ainsi que d'autres codes open source tels que les codes-barres 1D, peuvent également être lus avec des téléphones portables en téléchargeant des applications mobiles spécifiques au code. Bien que de nombreux appareils mobiles soient capables de lire les codes 2D, y compris les codes Data Matrix, peu d'entre eux étendent le décodage pour permettre l'accès et l'interaction mobiles, après quoi les codes peuvent être utilisés en toute sécurité et sur tous les supports ; par exemple, dans les solutions de suivi et de traçabilité, de lutte contre la contrefaçon, de gouvernement électronique et de banque.
Industrie alimentaire
Les codes Data Matrix sont utilisés dans l' industrie alimentaire dans les systèmes d'autocodage pour éviter que les produits alimentaires ne soient emballés et datés de manière incorrecte. Les codes sont conservés en interne dans une base de données de fabricants de produits alimentaires et associés à chaque produit unique, par exemple les variations d'ingrédients. Pour chaque série de produits, le code unique est fourni à l'imprimante. Une illustration de l'étiquette est nécessaire pour permettre le positionnement du Data Matrix 2D pour une numérisation optimale. Pour les codes noir sur blanc, aucun test n'est nécessaire, sauf si la qualité d'impression est un problème, mais toutes les variations de couleur doivent être testées avant la production pour garantir leur lisibilité.
Art
En mai 2006, un programmeur informatique allemand, Bernd Hopfengärtner, a créé une grande matrice de données dans un champ de blé (d'une manière similaire aux crop circles ). Le message disait « Hello, World! ». En juin 2011, le tatoueur parisien KARL, dans le cadre d'une promotion pour le whisky écossais Ballantine's , a créé le premier tatouage animé au monde en utilisant un code Data Matrix dans un processus collaboratif diffusé en direct sur Facebook.
Spécifications techniques

Les symboles Data Matrix sont constitués de modules disposés selon un modèle de recherche de périmètre et de synchronisation. Ils peuvent encoder jusqu'à 3 116 caractères de l'ensemble des caractères ASCII (avec extensions). Le symbole se compose de régions de données qui contiennent des modules disposés selon un tableau régulier. Les grands symboles contiennent plusieurs régions. Chaque région de données est délimitée par un modèle de recherche, et celui-ci est entouré sur les quatre côtés par une bordure de zone silencieuse (marge). (Remarque : les modules peuvent être ronds ou carrés ; aucune forme spécifique n'est définie dans la norme. Par exemple, les cellules microperforées sont généralement rondes.)
Matrice de données ECC 200
La nouvelle version de Data Matrix, l'ECC 200, utilise les codes Reed-Solomon pour la récupération des erreurs et des effacements. L'ECC 200 permet la reconstruction de routine de l'intégralité de la chaîne de données codée lorsque le symbole a subi 30 % de dommages, en supposant que la matrice puisse toujours être localisée avec précision. Data Matrix a un taux d'erreur inférieur à 1 sur 10 millions de caractères numérisés.
Les symboles ont un nombre pair de lignes et un nombre pair de colonnes. La plupart des symboles sont carrés avec des tailles allant de 10 × 10 à 144 × 144. Certains symboles sont cependant rectangulaires avec des tailles allant de 8 × 18 à 16 × 48 (valeurs paires uniquement). Tous les symboles utilisant la correction d'erreur ECC 200 peuvent être reconnus par le module du coin supérieur droit qui est identique à la couleur d'arrière-plan. (binaire 0).
Les fonctionnalités supplémentaires qui différencient les symboles ECC 200 des normes antérieures incluent :
- Symboles de lecture inversés (images claires sur fond sombre)
- Spécification du jeu de caractères (via Extended Channel Interpretations )
- Symboles rectangulaires
- Ajout structuré (liaison jusqu'à 16 symboles pour encoder de plus grandes quantités de données)
Matrice de données ECC 000–140
Les versions plus anciennes de Data Matrix incluent ECC 000, ECC 050, ECC 080, ECC 100, ECC 140. Au lieu d'utiliser des codes Reed-Solomon comme ECC 200, ECC 000-140 utilisent une correction d'erreur basée sur la convolution. Chacune varie en fonction de la quantité de correction d'erreur qu'elle offre, ECC 000 n'en offrant aucune et ECC 140 offrant la plus grande. Pour la détection des erreurs au moment du décodage, même dans le cas de ECC 000, chacune de ces versions code également un contrôle de redondance cyclique (CRC) sur le modèle de bits. En guise de mesure supplémentaire, le placement de chaque bit dans le code est déterminé par les tables de placement de bits incluses dans la spécification. Ces versions plus anciennes ont toujours un nombre impair de modules et peuvent être réalisées dans des tailles allant de 9 × 9 à 49 × 49. Tous les symboles utilisant la correction d'erreur ECC 000 à 140 peuvent être reconnus par le module du coin supérieur droit qui est l'inverse de la couleur d'arrière-plan. (binaire 1).
Selon la norme ISO/CEI 16022, « l'ECC 000-140 ne doit être utilisé que dans des applications fermées où une seule partie contrôle à la fois la production et la lecture des symboles et est responsable des performances globales du système. »
Normes
Data Matrix a été inventé par International Data Matrix, Inc. (ID Matrix) qui a fusionné avec RVSI/ Acuity CiMatrix , qui ont été acquis par Siemens AG en octobre 2005 et Microscan Systems en septembre 2008. Data Matrix est aujourd'hui couvert par plusieurs normes ISO / IEC et est dans le domaine public pour de nombreuses applications, ce qui signifie qu'il peut être utilisé sans aucune licence ni redevance.
- ISO/IEC 16022:2006 — Spécification de la symbologie des codes à barres Data Matrix
- ISO/IEC 15415 — Norme de qualité d'impression 2D
- ISO/IEC 15418:2016 — Sémantique des formats de données de symboles ( identifiants d'application GS1 et identifiants de données ASC MH10 et maintenance)
- ISO/IEC 15424:2008 — Identifiants de support de données (y compris les identifiants de symbologie) [Identifiants permettant de distinguer les différents types de codes à barres]
- ISO/IEC 15434:2006 — Syntaxe pour supports ADC haute capacité (format des données transférées du scanner au logiciel, etc.)
- ISO/CEI 15459 – Identifiants uniques
Correction d'erreur
Les codes Data Matrix utilisent la correction d'erreur Reed-Solomon sur le corps fini (ou GF(2 8 ) ), dont les éléments sont codés sous forme d'octets de 8 bits ; l'octet avec une valeur numérique standard code l'élément de champ où est considéré comme un élément primitif satisfaisant . Le polynôme primitif est , correspondant au nombre polynomial 301, avec une racine initiale = 1. Le code Reed-Solomon utilise l'un des 37 polynômes différents sur , avec des degrés allant de 7 à 68, selon le nombre d'octets de correction d'erreur ajoutés par le code.
Codage
Le processus de codage est décrit dans la norme ISO/IEC 16022:2006. Un logiciel open source pour le codage et le décodage de la variante ECC-200 de Data Matrix a été publié.
Les diagrammes ci-dessous illustrent le placement des données du message dans un symbole Data Matrix. Le message est « Wikipedia » et il est disposé selon un motif diagonal quelque peu compliqué commençant près du coin supérieur gauche. Certains caractères sont divisés en deux parties, comme le W initial, et le troisième « i » est dans le « motif d'angle 2 » plutôt que dans la disposition habituelle en forme de L. Sont également indiqués le code de fin de message (marqué End), les octets de remplissage (P) et de correction d'erreur (E) et quatre modules d'espace inutilisé (X).
Plusieurs modes de codage sont utilisés pour stocker différents types de messages. Le mode par défaut stocke un caractère ASCII par mot de code de 8 bits. Des codes de contrôle sont fournis pour basculer entre les modes, comme indiqué ci-dessous.
Modes de texte
Les modes C40, Texte et X12 sont potentiellement plus compacts pour le stockage de messages texte. Ils sont similaires au DEC Radix-50 , utilisant des codes de caractères dans la plage 0–39, et trois de ces codes sont combinés pour former un nombre allant jusqu'à 40 3 = 64000, qui est compressé sur deux octets (valeur maximale 65536) comme suit :
- V = C1×1600 + C2×40 + C3 + 1
- B1 = étage (V/256)
- B2 = V modulo 256
La valeur résultante de B1 est comprise entre 0 et 250. La valeur spéciale 254 est utilisée pour revenir au mode de codage ASCII.
Les interprétations des codes de caractères sont présentées dans le tableau ci-dessous. Les modes C40 et Texte comportent quatre jeux distincts. Le jeu 0 est la valeur par défaut et contient des codes qui sélectionnent temporairement un jeu différent pour le caractère suivant. La seule différence est qu'ils inversent les majuscules et les minuscules. Le mode C40 est principalement en majuscules, avec des minuscules dans le jeu 3 ; le mode Texte est l'inverse. Le jeu 1, contenant les codes de contrôle ASCII, et le jeu 2, contenant les symboles de ponctuation, sont identiques en mode C40 et Texte.
Mode EDIFACT
Le mode EDIFACT utilise six bits par caractère, avec quatre caractères regroupés dans trois octets. Il peut stocker des chiffres, des lettres majuscules et de nombreux signes de ponctuation, mais ne prend pas en charge les lettres minuscules.
Mode Base 256
Les données en mode Base 256 commencent par un indicateur de longueur, suivi d'un nombre d'octets de données. Une longueur comprise entre 1 et 249 est codée sur un seul octet, et les longueurs plus longues sont stockées sur deux octets.
- L1 = sol (longueur / 250) + 249, L2 = longueur mod 250
Il est préférable d'éviter les longues chaînes de zéros dans le message codé, car elles deviennent de grandes zones vides dans le symbole Data Matrix, ce qui peut entraîner une perte de synchronisation du scanner. (Le codage ASCII par défaut n'utilise pas de zéro pour cette raison.) Afin de réduire ce risque, la longueur et les octets de données sont masqués en ajoutant une valeur pseudo-aléatoire R(n), où n est la position dans le flux d'octets.
- R(n) = (149 × n) mod 255 + 1
Questions relatives aux brevets
Avant l'expiration du brevet américain 5,612,524 en novembre 2007, la société de propriété intellectuelle Acacia Technologies a affirmé que Data Matrix était partiellement couvert par son contenu. En tant que titulaire du brevet, Acacia aurait contacté les utilisateurs de Data Matrix pour exiger des frais de licence liés au brevet.
Cognex Corporation , un important fabricant de dispositifs de codes-barres 2D, a déposé une plainte en jugement déclaratoire le 13 mars 2006 après avoir reçu des informations selon lesquelles Acacia avait contacté ses clients pour exiger des frais de licence. Le 19 mai 2008, la juge Joan N. Ericksen du tribunal de district américain du Minnesota a statué en faveur de Cognex. La décision a statué que le brevet '524, qui prétendait couvrir un système de capture et de lecture de codes de symbologie 2D, est à la fois invalide et inapplicable en raison de la conduite inéquitable des défendeurs lors de l'obtention du brevet.
Bien que la décision ait été rendue après l'expiration du brevet, elle a exclu les réclamations pour contrefaçon fondées sur l'utilisation de Data Matrix avant novembre 2007.
Une demande de brevet allemand DE 4107020 a été déposée en 1991 et publiée en 1992. Ce brevet n'est pas cité dans les demandes de brevet américaines ci-dessus et pourrait les invalider.