Macierz danych - Data Matrix

Przykład kodu Data Matrix, kodującego tekst: „Wikipedia, wolna encyklopedia”

DataMatrix jest dwuwymiarowy kod składający się z czarnych i białych „komórki” lub kropek rozmieszczonych albo kwadratowy lub prostokątny wzór, znany także jako matryca . Informacje do zakodowania mogą być danymi tekstowymi lub liczbowymi. Typowy rozmiar danych wynosi od kilku bajtów do 1556 bajtów . Długość zakodowanych danych zależy od liczby komórek w macierzy. Kody korekcji błędów są często używane w celu zwiększenia niezawodności: nawet jeśli jedna lub więcej komórek jest uszkodzonych i nie można ich odczytać, wiadomość nadal może być odczytana. Symbol Data Matrix może przechowywać do 2335 znaków alfanumerycznych .

Symbole Data Matrix są prostokątne, zwykle mają kształt kwadratu i składają się z kwadratowych „komórek”, które reprezentują bity . W zależności od zastosowanego kodowania, komórka „jasna” reprezentuje 0, a komórka „ciemna” to 1 lub odwrotnie. Każda macierz danych składa się z dwóch przylegających do siebie granic w kształcie litery „L” (zwanych „wzorem wyszukiwania”) i dwóch innych granic składających się z naprzemiennych ciemnych i jasnych „komórek” lub modułów (zwanych „wzorem czasowym”). W obrębie tych granic znajdują się rzędy i kolumny komórek kodujących informacje. Wzorzec wyszukiwania służy do lokalizowania i orientowania symbolu, podczas gdy wzorzec taktowania zapewnia liczbę wierszy i kolumn w symbolu. Im więcej danych jest zakodowanych w symbolu, tym zwiększa się liczba komórek (wierszy i kolumn). Każdy kod jest unikalny. Rozmiary symboli wahają się od 10×10 do 144×144 w nowej wersji ECC 200 oraz od 9×9 do 49×49 w starej wersji ECC 000 – 140.

Aplikacje

Data Matrix na karcie Mini PCI , kodująca numer seryjny 15C06E115AZC72983004

Najbardziej popularna aplikacja dla Data Matrix jest oznakowanie małych przedmiotów, ze względu na zdolność kodu do kodowania pięćdziesiąt znaków w symbolu, który jest czytelny na 2 lub 3 mm 2 (0,003 lub 0,005 sq in) oraz fakt, że kod można odczytać z tylko 20% współczynnik kontrastu. Data Matrix jest skalowalna; zastosowania komercyjne istnieją z obrazami o wielkości zaledwie 300 mikrometrów (0,012 cala) (wytrawione laserowo na urządzeniu silikonowym o średnicy 600 mikrometrów (0,024 cala)) i tak dużym, jak 1 metr (3 stopy) kwadratowy (namalowany na dachu wagonu towarowego ) . Jedynym ograniczeniem jest wierność systemów znakowania i odczytu. Amerykańskie stowarzyszenie Electronic Industries Alliance (EIA) zaleca używanie Data Matrix do etykietowania małych komponentów elektronicznych.

Kody Data Matrix stają się powszechne na nośnikach drukowanych, takich jak etykiety i listy. Kod można szybko odczytać za pomocą czytnika kodów kreskowych, który umożliwia śledzenie mediów, np. gdy przesyłka została wysłana do odbiorcy.

Znakowanie powierzchni

Do celów inżynierii przemysłowej kody Data Matrix można umieszczać bezpośrednio na komponentach, zapewniając, że tylko zamierzony komponent jest identyfikowany za pomocą danych zakodowanych w matrycy danych. Kody można znakować na elementach różnymi metodami, ale w przemyśle lotniczym są to zwykle przemysłowe drukarki atramentowe, znakowanie punktowe, znakowanie laserowe i elektrolityczne wytrawianie chemiczne (ECE). Metody te dają trwały ślad, który może trwać przez cały okres eksploatacji elementu.

Kody Data Matrix są zwykle weryfikowane przy użyciu specjalistycznego sprzętu i oprogramowania kamer. Ta weryfikacja zapewnia, że ​​kod jest zgodny z odpowiednimi normami i zapewnia czytelność przez cały okres użytkowania komponentu. Po uruchomieniu komponentu kod Data Matrix może być odczytany przez kamerę czytnika, która dekoduje dane Data Matrix, które mogą być następnie wykorzystane do wielu celów, takich jak śledzenie ruchu lub kontrola zapasów.

Odczytywanie kodu Data Matrix za pomocą telefonu komórkowego ( projekt Semacode )

Kody Data Matrix, a także inne kody open source, takie jak kody kreskowe 1D, można również odczytywać za pomocą telefonów komórkowych, pobierając aplikacje mobilne dostosowane do danego kodu. Chociaż wiele urządzeń mobilnych jest w stanie odczytywać kody 2D, w tym kody Data Matrix, niewiele z nich rozszerza dekodowanie, aby umożliwić mobilny dostęp i interakcję, dzięki czemu kody mogą być używane bezpiecznie i w różnych mediach; na przykład w rozwiązaniach typu track and trace, przeciwdziałania fałszerstwom, e.govt i bankowości.

Przemysł spożywczy

Kody Data Matrix są używane w przemyśle spożywczym w systemach autokodowania , aby zapobiec nieprawidłowemu pakowaniu i datowaniu produktów spożywczych. Kody są utrzymywane wewnętrznie w bazie danych producentów żywności i powiązane z każdym unikalnym produktem, np. wariantami składników. Dla każdego uruchomienia produktu do drukarki dostarczany jest unikalny kod. Grafika etykiety jest wymagana, aby umożliwić ustawienie matrycy danych 2D w celu optymalnego skanowania. W przypadku kodów czarno-białych testowanie nie jest wymagane, chyba że problemem jest jakość druku, ale wszystkie warianty kolorów należy przetestować przed rozpoczęciem produkcji, aby upewnić się, że są czytelne.

Sztuka

W maju 2006 niemiecki programista Bernd Hopfengärtner stworzył na polu pszenicy duży Data Matrix (w sposób podobny do kręgów zbożowych ). Wiadomość brzmiała „ Witaj świecie! ”. W czerwcu 2011 roku paryski tatuator KARL, w ramach promocji szkockiej whisky Ballantine's , stworzył pierwszy na świecie animowany tatuaż wykorzystujący kod Data Matrix we wspólnym procesie transmitowanym na żywo na Facebooku.

Specyfikacja techniczna

Przykład kodu Data Matrix, kodującego tekst: „Wikipedia” pokolorowany, aby pokazać dane (zielony), dopełnienie (żółty), korekcję błędów (czerwony), wyszukiwarkę i synchronizację (magenta) i nieużywany (pomarańczowy).

Symbole Data Matrix składają się z modułów ułożonych w wyszukiwarce obwodowej i wzorcu taktowania. Może zakodować do 3116 znaków z całego zestawu znaków ASCII (z rozszerzeniami). Symbol składa się z obszarów danych, które zawierają moduły ułożone w regularnej tablicy. Duże symbole zawierają kilka regionów. Każdy obszar danych jest ograniczony wzorem wyszukiwania, który jest otoczony ze wszystkich czterech stron obramowaniem strefy cichej (marginesem). (Uwaga: Moduły mogą być okrągłe lub kwadratowe - żaden konkretny kształt nie jest zdefiniowany w normie. Na przykład, komórki żłobione są na ogół okrągłe.)

Matryca danych ECC 200

ECC 200, nowsza wersja Data Matrix, wykorzystuje kody Reed-Solomon do odzyskiwania błędów i wymazywania. ECC 200 umożliwia rutynową rekonstrukcję całego zakodowanego ciągu danych, gdy symbol doznał 30% uszkodzenia, zakładając, że matryca może być nadal dokładnie zlokalizowana. Data Matrix ma wskaźnik błędów mniejszy niż 1 na 10 milionów skanowanych znaków.

Symbole mają parzystą liczbę wierszy i parzystą liczbę kolumn. Większość symboli jest kwadratowa o rozmiarach od 10 × 10 do 144 × 144. Niektóre symbole są jednak prostokątne o rozmiarach od 8×18 do 16×48 (tylko wartości parzyste). Wszystkie symbole wykorzystujące korekcję błędów ECC 200 można rozpoznać po tym, że moduł w prawym górnym rogu jest taki sam jak kolor tła. (binarny 0).

Dodatkowe możliwości odróżniające symbole ECC 200 od wcześniejszych standardów obejmują:

  • Symbole czytania odwróconego (jasne obrazy na ciemnym tle)
  • Specyfikacja zestawu znaków (poprzez Extended Channel Interpretations )
  • Symbole prostokątne
  • Dołączanie strukturalne (łączenie do 16 symboli w celu zakodowania większej ilości danych)

Matryca danych ECC 000–140

Starsze wersje Data Matrix obejmują ECC 000, ECC 050, ECC 080, ECC 100, ECC 140. Zamiast używać kodów Reeda-Solomona , takich jak ECC 200, ECC 000-140, użyj korekcji błędów opartej na splocie. Każda z nich różni się ilością korekcji błędów, jaką oferuje, przy czym ECC 000 nie oferuje żadnej, a ECC 140 oferuje największą. W celu wykrycia błędów w czasie dekodowania, nawet w przypadku ECC 000, każda z tych wersji koduje również cykliczną kontrolę nadmiarową (CRC) we wzorze bitowym. Dodatkową miarą jest umieszczenie każdego bitu w kodzie określone przez tabele rozmieszczenia bitów zawarte w specyfikacji. Te starsze wersje zawsze mają nieparzystą liczbę modułów i mogą być wykonane w rozmiarach od 9 × 9 do 49 × 49. Wszystkie symbole wykorzystujące korekcję błędów ECC 000 do 140 można rozpoznać po module w prawym górnym rogu, który jest odwrotnością koloru tła. (binarny 1).

Zgodnie z normą ISO/IEC 16022 „ECC 000-140 powinno być używane tylko w zamkniętych aplikacjach, w których jedna strona kontroluje zarówno produkcję, jak i odczyt symboli i jest odpowiedzialna za ogólną wydajność systemu”.

Normy

Data Matrix została wynaleziona przez International Data Matrix, Inc. (ID Matrix), która została połączona z RVSI / Acuity CiMatrix , które zostały przejęte przez Siemens AG w październiku 2005 i Microscan Systems we wrześniu 2008. Data Matrix jest obecnie objęta kilkoma normami ISO / IEC standardów i jest w domenie publicznej dla wielu aplikacji, co oznacza, że ​​może być używany bez jakichkolwiek licencji lub opłat licencyjnych.

  • ISO / IEC 16022: 2006 — specyfikacja symboliki kodów kreskowych Data Matrix
  • ISO/IEC 15415 — standard jakości druku 2-D
  • ISO / IEC 15418: 2016-Symbol semantyki formatu danych ( identyfikatory aplikacji GS1 i identyfikatory danych ASC MH10 i konserwacja)
  • ISO / IEC 15424: 2008-identyfikatory nośników danych (w tym identyfikatory symboliki) [identyfikatory do rozróżniania różnych typów kodów kreskowych]
  • ISO / IEC 15434: 2006-Składnia dla nośników ADC o dużej pojemności (format danych przesyłanych ze skanera do oprogramowania itp.)
  • ISO/IEC 15459 — Unikalne identyfikatory

Kodowanie

Przemysłowe czytniki kodów Data Matrix

Proces kodowania opisany jest w normie ISO/IEC 16022:2006. Opublikowano oprogramowanie typu open source do kodowania i dekodowania wariantu ECC-200 Data Matrix.

Poniższe diagramy ilustrują umieszczenie danych komunikatu w symbolu Data Matrix. Wiadomość to „Wikipedia” i jest ułożona w dość skomplikowany ukośny wzór, zaczynając od lewego górnego rogu. Niektóre znaki są podzielone na dwie części, takie jak początkowe W, a trzecie „i” to „wzór narożny 2”, a nie zwykły układ w kształcie litery L. Pokazano również kod końca wiadomości (oznaczony jako Koniec), bajty dopełnienia (P) i korekcji błędów (E) oraz cztery moduły nieużywanej przestrzeni (X).

Kodowanie macierzy danych.svg Datamatrixfilling.png

Wiele trybów kodowania służy do przechowywania różnych rodzajów wiadomości. Tryb domyślny przechowuje jeden znak ASCII na 8-bitowe słowo kodowe. Kody sterujące służą do przełączania między trybami, jak pokazano poniżej.

Słowo kodowe Interpretacja
0 Nieużywany
1-128 Dane ASCII (wartość ASCII + 1)
129 Koniec wiadomości
130-229 Pary cyfr 00 – 99
230 Rozpocznij kodowanie C40
231 Rozpocznij kodowanie Base 256
232 FNC1
233 Zorganizowany załącznik. Umożliwia podzielenie wiadomości na wiele symboli.
234 Programowanie czytnika
235 Ustaw wysoki bit następującego znaku
236 05 Makro
237 06 Makro
238 Rozpocznij kodowanie ANSI X12
239 Rozpocznij kodowanie tekstu
240 Rozpocznij kodowanie EDIFACT
241 Rozszerzony kod interpretacji kanałów
242–255 Nieużywany

Tryby tekstowe

Tryby C40, Text i X12 są potencjalnie bardziej kompaktowe do przechowywania wiadomości tekstowych. Są one podobne do DEC Radix-50 , używają kodów znaków z zakresu 0–39, a trzy z tych kodów są łączone, aby uzyskać liczbę do 40 3 =64000, która jest pakowana w dwa bajty (maksymalna wartość 65536) w następujący sposób :

V = C1×1600 + C2×40 + C3 + 1
B1 = podłoga(V/256)
B2 = V mod 256

Wynikowa wartość B1 mieści się w zakresie 0–250. Specjalna wartość 254 służy do powrotu do trybu kodowania ASCII.

Interpretacje kodów znaków przedstawiono w poniższej tabeli. Tryby C40 i Text mają cztery oddzielne zestawy. Zestaw 0 jest domyślny i zawiera kody, które tymczasowo wybierają inny zestaw dla następnego znaku. Jedyna różnica polega na tym, że odwracają duże i małe litery. C40 to przede wszystkim wielkie litery, małe litery w zestawie 3; Tekst jest na odwrót. Zestaw 1 zawierający kody kontrolne ASCII i zestaw 2 zawierający znaki interpunkcyjne są identyczne w trybie C40 i Text.

Kod ustaw 0 zestaw 1 zestaw 2 zestaw 3 X12
C40 Tekst C40 Tekst
0 zestaw 1 NUL ! ` CR
1 zestaw 2 SOH " a A *
2 zestaw 3 STX # b b >
3 przestrzeń ETX $ C C przestrzeń
4 0 EOT % D D 0
5 1 ENQ & mi mi 1
6 2 POTWIERDZ ' F F 2
7 3 BEL ( g g 3
8 4 BS ) h h 4
9 5 HT * i i 5
10 6 LF + J J 6
11 7 VT , k K 7
12 8 FF ja L 8
13 9 CR . m m 9
14 A a WIĘC / n n A
15 b b SI : o O b
16 C C DLE ; P P C
17 D D DC1 < Q Q D
18 mi mi DC2 = r r mi
19 F F DC3 > s S F
20 g g DC4 ? T T g
21 h h NAK @ ty U h
22 i i SYN [ v V i
23 J J ETB \ w W J
24 K k MÓC ] x x K
25 L ja EM ^ tak Tak L
26 m m POD _ z Z m
27 n n WYJŚCIE FNC1 { n
28 O o FS | O
29 P P GS } P
30 Q Q RS bić ~ Q
31 r r nas DEL r
32 S s S
33 T T T
34 U ty U
35 V v V
36 W w W
37 x x x
38 Tak tak Tak
39 Z z Z

Tryb EDIFACT

Tryb EDIFACT wykorzystuje sześć bitów na znak, z czterema znakami upakowanymi w trzy bajty. Może przechowywać cyfry, duże litery i wiele znaków interpunkcyjnych, ale nie obsługuje małych liter.

Kod Oznaczający
0–30 Kody ASCII 64-94
31 Powrót do trybu ASCII
32–63 Kody ASCII 32-63

Tryb podstawowy 256

Dane trybu Base 256 zaczynają się od wskaźnika długości, po którym następuje liczba bajtów danych. Długość od 1 do 249 jest zakodowana jako pojedynczy bajt, a dłuższe długości są przechowywane jako dwa bajty.

L1 = podłoga(długość / 250) + 249, L2 = długość mod 250

Pożądane jest unikanie długich ciągów zer w zakodowanej wiadomości, ponieważ stają się one dużymi pustymi obszarami w symbolu Data Matrix, co może spowodować utratę synchronizacji skanera. (Z tego powodu domyślne kodowanie ASCII nie używa zera). Aby zmniejszyć prawdopodobieństwo tego, długość i bajty danych są zaciemniane przez dodanie wartości pseudolosowej R(n), gdzie n jest pozycją w strumieniu bajtów.

R(n) = (149 × n) mod 255 + 1

Kwestie patentowe

Przed wygaśnięciem patentu US 5 612 524 w listopadzie 2007 roku, firma Acacia Technologies , zajmująca się własnością intelektualną, twierdziła, że ​​Data Matrix jest częściowo objęta jej treścią. Jako właściciel patentu, Acacia rzekomo skontaktowała się z użytkownikami Data Matrix, żądając opłat licencyjnych związanych z patentem.

Cognex Corporation , duży producent urządzeń do kodów kreskowych 2D, złożył 13 marca 2006 r. skargę deklaratoryjną po otrzymaniu informacji, że firma Acacia skontaktowała się ze swoimi klientami żądając opłat licencyjnych. W dniu 19 maja 2008 r. sędzia Joan N. Ericksen z Sądu Okręgowego Stanów Zjednoczonych w Minnesocie orzekł na korzyść Cognex. W orzeczeniu stwierdzono, że patent „524, który twierdził, że obejmuje system przechwytywania i odczytywania kodów symboliki 2D, jest zarówno nieważny, jak i niewykonalny ze względu na niesprawiedliwe zachowanie pozwanych podczas uzyskiwania patentu.

Chociaż orzeczenie zostało wydane po wygaśnięciu patentu, wykluczało roszczenia o naruszenie oparte na użyciu Data Matrix przed listopadem 2007 r.

Niemieckie zgłoszenie patentowe DE 4107020 zostało złożone w 1991 i opublikowane w 1992. Patent ten nie jest cytowany w powyższych zgłoszeniach patentowych USA i może je unieważnić.

Zobacz też

Bibliografia

Zewnętrzne linki