MaxiCode

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania
Przykład kodu MaxiCode z zakodowaną informacją: "This test data is for WikiPedia: 0123456789 abcdefghijklmnopqrstuvwxyz"

MaxiCode (UPS) – matrycowy, modularny, alfanumeryczny kod kreskowy o stałym wymiarze. Ze względu na swoją budowę może być stosowany do znakowania obiektów szybko poruszających się (np. ładunki poruszające się na przenośnikach). Może być dodatkowo umiejscowiony na powierzchniach zagiętych lub zakrzywionych. Symbolika została opracowana w 1992 roku przez firmę kurierską United Parcel Service. Następnie symbolika została włączona do Wykazu Ujednoliconych Symbolik (ang. USS - Unform Symbol Specyfications) przez organizację AIM (Global Trade Association of the Automatic Identification & Data Capture Industry). Obecnie symbolika jest dostępna na licencji public domain. Oprócz symboli ASCII istnieje również możliwość kodowania znaków należących do alfabetu arabskiego, greckiego, hebrajskiego lub cyrilicy.

Budowa kodu[edytuj | edytuj kod]

Opis budowy kodu MaxiCode

Struktura fizyczna[edytuj | edytuj kod]

MaxiCode z zakodowaną informacją: "Wikipedia, the free encyclopedia"

Kod ma stałe wymiary równe jednemu calowi kwadratowemu. Umożliwia to zakodowanie 93 znaków alfanumerycznych lub 138 cyfr (stała wartość) w 866 modułach. Każdy moduł ma kształt sześciokąta i przyjmuje dwa kolory zaczerniony lub biały. Pojedynczy sześciokąt ma wymiary 1,02mm w pionie i 0,88mm w poziomie. Poszczególne moduły ułożone są w matrycy 30 lub 29 (poziomo) na 33 (pionowo) moduły. Specyfikacja dopuszcza i umożliwia połączenie do ośmiu kodów celem zwiększenia ilości przenoszonych danych.

W centralnej części kodu znajduje się przypominający tarczę strzelecką wzór wyszukiwania, dzięki któremu skaner może rozpoznać położenie kodu. Wzór wyszukiwania składa się z trzech czarnych okręgów, pomiędzy którymi są białe przerwy. W pewnej odległości od wzoru wyszukiwania znajduje się sześć grup komórek stanowiących wzór orientacyjny. Komórki te są symetrycznie ułożone względem wzoru wyszukiwania i pozwalają na określenie położenia kodu względem skanera (gdzie jest góra, dół, lewa i prawa krawędź).

Mechanizm korekcji błędów[edytuj | edytuj kod]

W kodzie stosuje się mechanizm korekcji błędów Reed-Solomon na dwóch poziomach korekcji

  • SEC – poziom standardowy, w którym dla 42 modułów kodujących dane dodaje się 20 modułów korygujących, co zapewnia możliwość poprawnego odczytu danych dla symbolu uszkodzonego w 16 procentach.
  • EEC – poziom rozszerzony, w którym na każdy moduł kodujący dane przypada jeden moduł zawierający dane o korekcji, co pozwala na poprawny odczyt symboli uszkodzonych w 25 procentach.

Struktura logiczna[edytuj | edytuj kod]

W kodzie grupy modułów tworzą tzw. słowa kodowe. Jedno słowo kodowe odpowiada jednemu znakowi alfanumerycznemu. Dzięki możliwości kompresji cyfr jest możliwość kodowania dziewięciu cyfr w sześciu słowach kodowych. Kodowane dane dzielą się na dwa komunikaty:

  • komunikat pierwotny – zawiera informacje o trybie kodu, dla niektórych trybów zawiera także pewne informacje o przesyłce, takie jak:
  1. trzycyfrowy kod kraju według ISO 3166
  1. kod pocztowy danego kraju
  2. trzycyfrowy kod Class of service przydzielony przez przewoźnika określający priorytet w kolejce
  3. dwudziestocyfrowy kod do śledzenia ruchu przesyłki
  4. dwu- czterocyfrowy kod określający pochodzenie przewoźnika

Komunikat ma długość 60 bitów (modułów). W komunikacie tym wykorzystuje się mechanizm korekcji EEC, co wykorzystuje kolejne 60 bitów.

  • komunikat wtórny – wykorzystuje poziom korekcji SEC i służy do kodowania innych danych dodatkowych, które nie muszą być niezbędne do odczytania (w przypadku szybkiego skanowania). Dane te mogą zawierać informacje o dozwolonych sposobach manipulacji ładunku, na którym są umieszczone lub jego punkcie nadania i odbioru jak również o numerze faktury, o kliencie, numerze zamówienia etc.

Tryby kodu[edytuj | edytuj kod]

Kod może występować w jednym z siedmiu trybów. Informacje o trybie zakodowane są w czterech bitach komunikatu pierwotnego. Tryb uzależniony jest od stosowanego poziomu korekcji, rodzaju przenoszonych danych oraz struktury symbolu. Dostępne tryby to:

  1. Tryb 0 – nieaktualny (można rozpoznać po tym, że dwa górne moduły leżące po prawej stronie są białe, w pozostałych trybach są zaczernione)
  2. Tryb 2 – wykorzystywany przy stosowaniu numerycznych kodów pocztowych
  3. Tryb 3 – wykorzystywany przy stosowaniu alfanumerycznych kodów pocztowych
  4. Tryb 4 – wykorzystywany poziom korekcji SEC
  5. Tryb 5 – wykorzystywany poziom korekcji EEC
  6. Tryb 6 – wykorzystywany dla programowania urządzeń

W firmie UPS stosuje się tryb drugi lub trzeci.

Bibliografia[edytuj | edytuj kod]