Матрица данных - Data Matrix

Из Википедии, бесплатной энциклопедии

Пример кода Data Matrix, кодирующий текст: «Википедия, бесплатная энциклопедия»

Данная Матрица представляет собой двумерный код , состоящий из черных и белых «точек» или точек , расположенных либо в квадратном или прямоугольном узоре, также известный как матрица . Кодируемая информация может быть текстовой или числовой. Обычный размер данных составляет от нескольких байтов до 1556 байтов . Длина закодированных данных зависит от количества ячеек в матрице. Коды исправления ошибок часто используются для повышения надежности: даже если 15 или более ячеек повреждены или нечитаемы, сообщение все равно можно прочитать. В символе Data Matrix может храниться до 2335 буквенно-цифровых букв.

Символы матрицы данных имеют прямоугольную, обычно квадратную форму и состоят из квадратных «точек», которые представляют биты . В зависимости от используемого кодирования «светлая» ячейка представляет собой 0, а «темная» ячейка - 1, или наоборот. Каждая матрица данных состоит из двух сплошных смежных границ в форме буквы «L» (называемой «шаблоном поиска») и двух других границ, состоящих из чередующихся темных и светлых «ячеек» или модулей (называемых «шаблоном синхронизации»). Внутри этих границ находятся строки и столбцы ячеек, кодирующих информацию. Шаблон поиска используется для поиска и ориентации символа, в то время как шаблон синхронизации обеспечивает подсчет количества строк и столбцов в символе. Чем больше данных закодировано в символе, тем больше ячеек (строк и столбцов). Каждый код уникален. Размеры символов варьируются от 10 × 10 до 144 × 144 в новой версии ECC 200 и от 9 × 9 до 49 × 49 в старой версии ECC 000 - 140.

Приложения

Матрица данных на карте Mini PCI с кодировкой серийного номера 15C06E115AZC72983004

Самым популярным приложением для Data Matrix является маркировка мелких предметов из-за способности кода кодировать пятьдесят символов в символе, читаемом на расстоянии 2 или 3 мм 2 (0,003 или 0,005 кв. Дюйма), и того факта, что код можно прочитать с помощью всего 20% контрастности. Матрица данных масштабируема; существуют коммерческие приложения с изображениями размером от 300 микрометров (0,012 дюйма) (лазерное травление на кремниевом устройстве размером 600 микрометров (0,024 дюйма)) и размером с квадрат в 1 метр (3 фута) (нарисованный на крыше товарного вагона ) . Единственным ограничением является точность систем маркировки и чтения. Альянс электронной промышленности США (EIA) рекомендует использовать Data Matrix для маркировки небольших электронных компонентов.

Коды Data Matrix становятся обычным явлением на печатных носителях, таких как этикетки и буквы. Код может быть быстро считан считывателем штрих-кода, который позволяет отслеживать носитель, например, когда посылка была отправлена ​​получателю.

Маркировка поверхностей

Для целей промышленного проектирования коды Data Matrix могут быть нанесены непосредственно на компоненты, что гарантирует идентификацию только предполагаемого компонента с данными, закодированными в матрице данных. Коды могут быть нанесены на компоненты различными методами, но в аэрокосмической промышленности это обычно промышленная струйная печать, точечная маркировка, лазерная маркировка и электролитическое химическое травление (ECE). Эти методы оставляют постоянную отметку, которая может длиться до срока службы компонента.

Коды Data Matrix обычно проверяются с помощью специального оборудования для камеры и программного обеспечения. Эта проверка обеспечивает соответствие кода соответствующим стандартам и обеспечивает читаемость в течение всего срока службы компонента. После того, как компонент введен в эксплуатацию, код матрицы данных может быть прочитан камерой считывателя, которая декодирует данные матрицы данных, которые затем могут использоваться для ряда целей, таких как отслеживание движения или проверка запасов.

Чтение кода Data Matrix с мобильного телефона ( проект Semacode )

Коды Data Matrix, наряду с другими кодами с открытым исходным кодом, такими как штрих-коды 1D, также можно считывать с мобильных телефонов, загрузив мобильные приложения для конкретных кодов. Хотя многие мобильные устройства могут считывать двухмерные коды, включая матричный код данных, лишь некоторые из них расширяют декодирование, чтобы обеспечить мобильный доступ и взаимодействие, после чего коды можно безопасно использовать в различных средах; например, в области отслеживания и отслеживания, борьбы с контрафактной продукцией и банковских решений.

Пищевая промышленность

Коды Data Matrix используются в пищевой промышленности в системах автокодирования , чтобы предотвратить неправильную упаковку пищевых продуктов и их дату. Коды хранятся внутри базы данных производителей пищевых продуктов и связаны с каждым уникальным продуктом, например, с вариациями ингредиентов. Для каждого запуска продукта на принтер выдается уникальный код. Обложка этикетки необходима для того, чтобы матрица 2D-данных могла располагаться для оптимального сканирования. Для кодов «черный на белом» тестирование не требуется, если только качество печати не является проблемой, но все цветовые вариации необходимо проверить перед производством, чтобы убедиться, что они читаемы.

Изобразительное искусство

В мае 2006 года немецкий программист Бернд Хопфенгертнер создал большую матрицу данных на пшеничном поле (аналогично кругам на полях ). Сообщение гласило: « Hello, World! ». В июне 2011 года парижский татуировщик KARL в рамках продвижения шотландского виски Ballantine создал первую в мире анимированную татуировку с использованием кода Data Matrix в совместном процессе, транслируемом в прямом эфире на Facebook.

Технические характеристики

Пример кода матрицы данных, кодирующий текст: «Википедия», окрашенная для отображения данных (зеленый), заполнение (желтый), исправление ошибок (красный), поиск и синхронизация (пурпурный) и неиспользованный (оранжевый).

Символы Data Matrix состоят из модулей, расположенных в пределах средства поиска по периметру и временного шаблона. Он может кодировать до 3116 символов из всего набора символов ASCII (с расширениями). Символ состоит из областей данных, которые содержат модули, расположенные в обычном массиве. Большие символы содержат несколько регионов. Каждая область данных ограничена шаблоном поиска, который со всех четырех сторон окружен границей тихой зоны (полем). (Примечание: модули могут быть круглыми или квадратными - в стандарте не определена конкретная форма. Например, точечно-наплавленные ячейки обычно круглые.)

Матрица данных ECC 200

ECC 200, более новая версия Data Matrix, использует коды Рида-Соломона для восстановления после ошибок и стирания. ECC 200 позволяет рутинную реконструкцию всей строки кодированных данных, когда символ подвергся 30% повреждению, при условии, что матрица все еще может быть точно расположена. Data Matrix имеет коэффициент ошибок менее 1 из 10 миллионов отсканированных символов.

Символы имеют четное количество строк и четное количество столбцов. Большинство символов имеют квадратную форму размером от 10 × 10 до 144 × 144. Однако некоторые символы имеют прямоугольную форму с размерами от 8 × 18 до 16 × 48 (только четные значения). Все символы, использующие коррекцию ошибок ECC 200, можно распознать по модулю в правом верхнем углу, который совпадает с цветом фона. (двоичный 0).

Дополнительные возможности, которые отличают символы ECC 200 от более ранних стандартов, включают:

  • Символы инверсного чтения (светлые изображения на темном фоне)
  • Спецификация набора символов (через Extended Channel Interpretations )
  • Прямоугольные символы
  • Структурированное добавление (связывание до 16 символов для кодирования больших объемов данных)

Матрица данных ECC 000–140

Старые версии Data Matrix включают ECC 000, ECC 050, ECC 080, ECC 100, ECC 140. Вместо использования кодов Рида-Соломона, таких как ECC 200, ECC 000–140 используйте коррекцию ошибок на основе свертки. Каждый из них отличается объемом предлагаемого исправления ошибок, при этом ECC 000 не предлагает ничего, а ECC 140 предлагает наилучшие. Для обнаружения ошибок во время декодирования, даже в случае ECC 000, каждая из этих версий также кодирует циклический контроль избыточности (CRC) в битовой комбинации. В качестве дополнительной меры размещение каждого бита в коде определяется таблицами размещения битов, включенными в спецификацию. Эти более старые версии всегда имеют нечетное количество модулей и могут быть изготовлены в размерах от 9 × 9 до 49 × 49. Все символы, использующие коррекцию ошибок ECC 000–140, могут быть распознаны с помощью модуля в правом верхнем углу, который является обратным. цвета фона. (двоичная 1).

Согласно ISO / IEC 16022, «ECC 000–140 следует использовать только в закрытых приложениях, где одна сторона контролирует создание и считывание символов и отвечает за общую производительность системы».

Стандарты

Data Matrix была изобретена компанией International Data Matrix, Inc. (ID Matrix), которая была объединена с RVSI / Acuity CiMatrix , которые были приобретены Siemens AG в октябре 2005 года, и Microscan Systems в сентябре 2008 года. Сегодня Data Matrix рассматривается несколькими ISO / IEC. стандартов и является общественным достоянием для многих приложений, что означает, что его можно использовать без каких-либо лицензий или лицензионных отчислений.

  • ISO / IEC 16022: 2006 - Спецификация символики штрих-кода Data Matrix.
  • ISO / IEC 15415—2-D Стандарт качества печати
  • ISO / IEC 15418: 2016 - Семантика формата символьных данных (идентификаторы приложений GS1 и идентификаторы данных ASC MH10 и обслуживание)
  • ISO / IEC 15424: 2008 - Идентификаторы носителя данных (включая идентификаторы символики) [идентификаторы для различения различных типов штрих-кодов]
  • ISO / IEC 15434: 2006 - Синтаксис для носителей ADC большой емкости (формат данных, передаваемых со сканера в программное обеспечение и т. Д.)
  • ISO / IEC 15459 - Уникальные идентификаторы

Кодирование

Считыватели кода Industrial Data Matrix

Процесс кодирования описан в стандарте ISO / IEC 16022: 2006. Было опубликовано программное обеспечение с открытым исходным кодом для кодирования и декодирования варианта Data Matrix ECC-200.

На схемах ниже показано размещение данных сообщения внутри символа матрицы данных. Это сообщение называется «Википедия», и оно расположено в несколько сложном диагональном порядке, начиная с верхнего левого угла. Некоторые символы разделены на две части, например, начальная буква W, а третья буква «i» находится в «угловом шаблоне 2», а не в обычном L-образном расположении. Также показаны код конца сообщения (помеченный как End), байты заполнения (P) и исправления ошибок (E), а также четыре модуля неиспользуемого пространства (X).

Матрица данных Encoding.svg Datamatrixfilling.png

Для хранения различных типов сообщений используются несколько режимов кодирования. В режиме по умолчанию для каждого 8-битового кодового слова сохраняется один символ ASCII . Коды управления предназначены для переключения между режимами, как показано ниже.

Кодовое слово Интерпретация
0 Не используется
1–128 Данные ASCII (значение ASCII + 1)
129 Конец сообщения
130–229 Пары цифр 00-99
230 Начать кодирование C40
231 Начать кодирование Base 256
232 FNC1
233 Структурированное приложение. Позволяет разделить сообщение на несколько символов.
234 Читательское программирование
235 Установить старший бит следующего символа
236 05 Макро
237 06 Макро
238 Начать кодирование ANSI X12
239 Начать кодирование текста
240 Начать кодирование EDIFACT
241 Код расширенной интерпретации канала
242–255 Не используется

Текстовые режимы

Режимы C40, Text и X12 потенциально более компактны для хранения текстовых сообщений. Они похожи на DEC Radix-50 , используя коды символов в диапазоне 0–39, и три из этих кодов объединяются, чтобы получить число до 40 3 = 64000, которое упаковано в два байта (максимальное значение 65536) следующим образом :

V = C1 × 1600 + C2 × 40 + C3 + 1
B1 = пол (В / 256)
B2 = V мод 256

Результирующее значение B1 находится в диапазоне 089. Специальное значение 254 используется для возврата в режим кодирования ASCII.

Интерпретации кодов символов показаны в таблице ниже. Режимы C40 и Text имеют четыре отдельных набора. Набор 0 является значением по умолчанию и содержит коды, которые временно выбирают другой набор для следующего символа. Единственное отличие состоит в том, что они меняют местами прописные и строчные буквы. C40 - это в основном заглавные буквы, а в наборе 3 - строчные буквы; Текст - наоборот. Набор 1, содержащий управляющие коды ASCII, и набор 2, содержащий символы пунктуации, идентичны в C40 и текстовом режиме.

Код установить 0 набор 1 набор 2 набор 3 X12
C40 Текст C40 Текст
0 набор 1 NUL ! ` CR
1 набор 2 SOH " а А *
2 набор 3 STX # б B >
3 космос ETX $ c C космос
4 0 EOT % d D 0
5 1 ENQ & е E 1
6 2 ACK ' ж F 2
7 3 BEL ( грамм грамм 3
8 4 BS ) час ЧАС 4
9 5 HT * я я 5
10 6 LF + j J 6
11 7 VT , k K 7
12 8 FF - л L 8
13 9 CR . м M 9
14 А а ТАК / п N А
15 B б SI : о О B
16 C c DLE ; п п C
17 D d DC1 < q Q D
18 E е DC2 знак равно р р E
19 F ж DC3 > s S F
20 грамм грамм DC4 ? т Т грамм
21 год ЧАС час НАК @ ты U ЧАС
22 я я SYN [ v V я
23 J j ETB \ ш W J
24 K k МОЖЕТ ] Икс Икс K
25 L л ЭМ ^ y Y L
26 год M м SUB _ z Z M
27 N п ESC FNC1 { N
28 год О о FS | О
29 п п GS } п
30 Q q RS гибит ~ Q
31 год р р нас DEL р
32 S s S
33 Т т Т
34 U ты U
35 год V v V
36 W ш W
37 Икс Икс Икс
38 Y y Y
39 Z z Z

Режим EDIFACT

В режиме EDIFACT используется шесть битов на символ, при этом четыре символа упаковываются в три байта. Он может хранить цифры, заглавные буквы и многие знаки препинания, но не поддерживает строчные буквы.

Код Имея в виду
0–30 Коды ASCII 64–94
31 год Вернуться в режим ASCII
32–63 Коды ASCII 32–63

Базовый режим 256

Данные в режиме Base 256 начинаются с индикатора длины, за которым следует количество байтов данных. Длина от 1 до 249 кодируется как один байт, а более длинные значения хранятся как два байта.

L1 = пол (длина / 250) + 249, L2 = длина по модулю 250

Желательно избегать длинных строк нулей в кодированном сообщении, поскольку они становятся большими пустыми областями в символе матрицы данных, что может привести к потере синхронизации сканером. (По этой причине в кодировке ASCII по умолчанию не используется ноль.) Чтобы сделать это менее вероятным, длина и байты данных скрыты путем добавления псевдослучайного значения R (n), где n - позиция в потоке байтов.

R (n) = (149 × n) по модулю 255 + 1

Патентные вопросы

До истечения срока действия патента США 5 612 524 в ноябре 2007 года компания, занимающаяся интеллектуальной собственностью, Acacia Technologies заявила, что Data Matrix частично покрывается ее содержимым. Как владелец патента, Acacia якобы связалась с пользователями Data Matrix и потребовала лицензионных сборов, связанных с патентом.

Cognex Corporation , крупный производитель устройств для 2D-штрих-кодов, подала декларативную жалобу на судебное решение 13 марта 2006 года после получения информации о том, что Acacia связалась со своими клиентами, требуя лицензионных сборов. 19 мая 2008 года судья Окружного суда США в Миннесоте Джоан Н. Эриксен вынесла решение в пользу компании Cognex. Постановление постановило, что патент '524, который претендовал на защиту системы для считывания и считывания 2D-кодов символов, является недействительным и не имеющим исковой силы из-за несправедливого поведения ответчиков во время получения патента.

Хотя решение было вынесено после истечения срока действия патента, оно исключило иски о нарушении прав, основанных на использовании Data Matrix до ноября 2007 года.

Заявка на патент Германии DE 4107020 была подана в 1991 г. и опубликована в 1992 г. Этот патент не цитируется в вышеупомянутых заявках на патент США и может сделать их недействительными.

Смотрите также

Рекомендации

Внешние ссылки