stringtranslate.com

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

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

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

Символы Data Matrix имеют прямоугольную, обычно квадратную форму и состоят из квадратных «ячеек», которые представляют биты . В зависимости от используемого кодирования «светлая» ячейка соответствует 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%. [1] Матрица данных масштабируема; существуют коммерческие приложения с изображениями размером от 300 микрометров (0,012 дюйма) (лазерная гравировка на кремниевом устройстве размером 600 микрометров (0,024 дюйма)) и размером до квадрата размером 1 метр (3 фута) (нарисованные на крыше товарного вагона ) . Единственным ограничением является точность систем маркировки и считывания. Альянс электронной промышленности США (EIA) рекомендует использовать Data Matrix для маркировки небольших электронных компонентов. [2]

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

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

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

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

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

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

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

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

Искусство

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

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

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

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

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

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

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

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

[9]

Матрица данных 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. стандартами и является общественным достоянием для многих приложений, что означает, что его можно использовать без каких-либо лицензий или лицензионных отчислений.

Исправление ошибки

Коды Data Matrix используют коррекцию ошибок Рида-Соломона по конечному полю (или ), элементы которого кодируются как байты по 8 бит ; байт со стандартным числовым значением кодирует элемент поля , где считается примитивным элементом, удовлетворяющим . Примитивный полином — это , соответствующий номеру полинома 301, с начальным корнем = 1. Код Рида-Соломона использует один из 37 различных полиномов над , со степенями от 7 до 68, в зависимости от того, сколько байтов исправления ошибок добавляет код.

Кодирование

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

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

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

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

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

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

В = С1×1600 + С2×40 + С3 + 1
B1 = пол (В/256)
B2 = В мод 256

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

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

режим ЭДИФАКТ

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. ^ «Штрих-код матрицы данных» . Архивировано из оригинала 14 сентября 2017 года.
  2. ^ Стивенсон, Рик (декабрь 2005 г.). «Матричные коды лазерной маркировки на печатных платах» (PDF) . Проектирование и производство печатных плат . Проверено 31 мая 2007 г.
  3. ^ Стефан, В. (2012). Использование 2D-кодов при разработке мобильных приложений с базой данных. Валахский журнал экономических исследований, 3 (2), 105–114. Получено с https://econpapers.repec.org/article/vlhjournl/v_3a3_3ay_3a2012_3ai_3a2_3ap_3a105-114.htm.
  4. ^ "Немец программирует "Hello World" на пшеничном поле" . arstechnica.com . Проверено 22 февраля 2017 г.
  5. ^ «Первая в мире анимированная татуировка - блог Digital Buzz» . digitalbuzzblog.com . Проверено 22 февраля 2017 г.
  6. ^ «Первая в мире анимированная татуировка – от KARL» youtube.com . Архивировано из оригинала 12 декабря 2021 года . Проверено 22 февраля 2017 г.
  7. ^ «Фейсбук». Facebook.com . Проверено 22 февраля 2017 г.
  8. ^ «Матрица данных и тест целостности данных PDF417» (PDF) . idautomation.com . Архивировано из оригинала (PDF) 20 августа 2019 года . Проверено 20 августа 2019 г.
  9. ^ Энгин, Томас. «Сканер QR-кодов онлайн» . Проверено 27 февраля 2022 г.
  10. ^ Страница электронной торговли ISO для этого стандарта http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=44230.
  11. ^ «GitHub - zxing/zxing: домашняя страница официального проекта ZXing («Пересечение зебры»)» . гугл.com . Проверено 22 февраля 2017 г.
  12. ^ "Домашняя страница libdmtx" . sourceforge.net . Проверено 22 февраля 2017 г.
  13. ^ «Cognex аннулирует патент акации '524; дальше? Подает в суд за клевету в бизнесе» . Гроклав . 23 июня 2008 г. Архивировано из оригинала 5 мая 2010 г.

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