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

редактировать

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

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

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

Содержание
  • 1 Приложения
    • 1.1 Продукты питания промышленность
    • 1.2 Art
  • 2 Технические характеристики
    • 2.1 Матрица данных ECC 200
    • 2.2 Матрица данных ECC 000–140
  • 3 Стандарты
  • 4 Кодирование
    • 4.1 Текстовые режимы
    • 4.2 Режим EDIFACT
    • 4.3 Режим Base 256
  • 5 Патентные вопросы
  • 6 См. Также
  • 7 Ссылки
  • 8 Внешние ссылки
Приложения
Матрица данных на Mini PCI карта, кодирующая серийный номер 15C06E115AZC72983004

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

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

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

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

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

Чтение кода матрицы данных с помощью мобильного телефона (проект Semacode )

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

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

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

Art

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

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

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

Data Matrix 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 от более ранних стандартов, включают:

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

Data Matrix 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, каждая из этих версий также кодирует Cyclic Redundancy Check ( CRC) в битовом шаблоне. В качестве дополнительной меры размещение каждого бита в коде определяется таблицами размещения битов, включенными в спецификацию тион. Эти более старые версии всегда имеют нечетное количество модулей и могут быть выполнены в размерах от 9 × 9 до 49 × 49. Все символы, использующие коррекцию ошибок ECC 000–140, могут быть распознаны с помощью модуля в правом верхнем углу, являющегося обратным. цвета фона. (двоичная 1).

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

Стандарты

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

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

Процесс кодирования описан в документах, опубликованных на веб-сайте ISO. Было опубликовано программное обеспечение с открытым исходным кодом для кодирования и декодирования варианта матрицы данных ECC-200

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

Data Matrix Encoding.svg Datamatrixfilling.png

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

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

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

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

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

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

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

Коднабор 0набор 1набор 2набор 3X12
C40ТекстC40Текст
0установить 1NUL!`CR
1установить 2SOH"aA*
2установить 3STX#bB>
3пробелETX$cCпробел
40EOT%dD0
51ENQeE1
62ACK'fF2
73BEL(gG3
84BS)hH4
95HT*iI5
106LF+jJ6
117VT,kK7
128FFlL8
139CR.mM9
14AaSO/nNA
15BbSI:oOB
16CcDLE;pPC
17DdDC1<qQD
18EeDC2=rRE
19FfDC3>sSF
20GgDC4?tTG
21HhNAK@uUH
22IiSYN[vVI
23JjETB\wWJ
24KkCAN]xXK
25LlEM^yYL
26MmSUB_zZM
27NnESCFNC1{N
28OoFS|O
29PpGS}P
30QqRShibit~Q
31RrUSDELR
32SsS
33TtT
34UuU
35VvV
36WwW
37XxX
38YyY
39ZzZ

Режим EDIFACT

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

КодЗначение
0–30коды ASCII 64–94
31Возврат в режим ASCII
32–63коды ASCII 32 –63

Режим Base 256

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

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

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

R (n) = (149 × n) mod 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 году. Этот патент не цитируется в вышеуказанных патентных заявках США и может сделать их недействительными.

См. также
Ссылки
Внешние ссылки
На Wikimedia Commons есть носители, связанные с DataMatrix.
Последняя правка сделана 2021-05-17 14:08:38
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте