Штрих-код Interleaved 2 of 5
Штрих-код Interleaved 2 of 5
Москва 2008
Аннотация
В работе рассматривается алгоритм кодирования числовых данных штрих-кодом Interleaved 2 of 5. Проводится обзор свободного ПО для его реализации.
Введение
Штриховой код – это последовательность черных и белых полос, представляющая некоторую информацию в виде, удобном для считывания техническими средствами. Информация, содержащаяся в коде, может быть напечатана в читаемом виде под кодом (расшифровка). Штриховые коды используются в торговле, складском учете, библиотечном деле, охранных системах, почтовом деле, сборочном производстве, обработке документов, а также в транспортной сфере (поезда пригородного сообщения).
Различают линейные и двухмерные символики штрих-кодов.
Двухмерными называются символики, разработанные для кодирования большого объема информации (до нескольких страниц текста). Двухмерный код считывается при помощи специального сканера двухмерных кодов и позволяет быстро и безошибочно вводить большой объем информации. Расшифровка такого кода проводится в двух измерениях (по горизонтали и по вертикали). Пример – Datamatrix, Data Glyph, Aztec.
Линейными называются штрих-коды, читаемые в одном направлении (по горизонтали). Пример линейного штрих-кода – Code128, Codabar, Interleaved 2 of 5. Линейные символики позволяют кодировать небольшой объем информации (до 20–30 символов – обычно цифр) с помощью штриховых линий и белых полос, читаемых недорогими сканерами.
Кроме того штриховой код является наиболее экономичным способом маркировки и / или идентификации объекта.
Штрих-код Interleaved 2 of 5
Линейный код Interleaved 2 of 5 состоит из последовательности чередующихся черных и белых вертикальных полосок, начинающейся и заканчивающейся черными. В данном коде полоски двух видов: Широкие (логическая «1») и узкие (логический «0»). Interleaved 2 of 5 предполагает наличие стартового и стопового символов. Стартовый символ кодируется «0000», стоповый символ кодируется «100». Между этими двумя символами находится полезная информация.
Своё название код получил, исходя из того, что информация кодируется расположением двух широких полосок среди пяти. Исходя из этого, получаем, что таким блоком можно закодировать 10 различных значений, т.е. все цифры от 0 до 9. Interleaved (перемежающийся – англ.) он потому, что рассматриваются отдельно черные и отдельно белые полоски.
На нечетных позициях (считая слева направо) цифры изображаются штрихами, а на четных – промежутками (чередование). При кодировании данных с нечетным количеством знаков впереди записывается «0».
В штрих-коде Interleaved 2 of 5 для повышения надежности считывания рекомендуется использовать контрольный знак. Контрольный знак располагается непосредственно после информационных знаков перед знаком «Стоп». Если добавление контрольного знака делает количество знаков в кодируемых данных нечетным, впереди кодовой строки непосредственно после знака «Старт» добавляется «0».
Параметры символики
В системе GS1 символы символики Interleaved 2 of 5 имеют следующие параметры:
Кодируемый набор знаков – цифровой от 0 до 9 (знаки ASCII с десятичными значениями от 48 до 57 включительно по ISO/EIC 646 (ГОСТ 27463));
Тип кода – непрерывный;
Число элементов в знаке символа – пять (два широких и три узких), закодированных либо в виде пяти штрихов (тёмных элементов) или пяти пробелов (светлых элементов);
Самоконтроль знака символа – присутствует;
Кодируемая длина строки данных – фиксированная длина – 14 цифр;
Двунаправленное декодирование – присутствует;
Контрольная цифра – одна обязательная;
Плотность знаков символа для Interleaved 2 of 5 – от 16 до 18 модулей на два парных знака символа, в зависимости от отношения широкого к узкому. Значение 16 основано на заданном отношении 2.5:1;
Необходимое дополнение, не относящееся к данным: от 8 до 9 модулей, в зависимости от отношения широкого к узкому. Значение 8,5 – при заданном отношении широкого к узкому 2.5:1.
Структура символа
Символ Interleaved 2 of 5 включает:
Начальную свободную зону;
Знак СТАРТ;
Семь пар знаков символа, представляющих данные;
Знак СТОП.
Кодирование знаков данных
В таблице 1 приведено кодирование знаков символа Interleaved 2 of 5. В графе «Двоичное представление» знаку «1» соответствует широкий элемент, а знаку «0» – узкий элемент.
Таблица 1. Двоичное представление кодирования знаков
Знак данных |
Двоичное представление |
||||
1 |
2 |
4 |
7 |
||
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
2 |
0 |
1 |
0 |
0 |
1 |
3 |
1 |
1 |
0 |
0 |
0 |
4 |
0 |
0 |
1 |
0 |
1 |
5 |
1 |
0 |
1 |
0 |
0 |
6 |
0 |
1 |
1 |
0 |
0 |
7 |
0 |
0 |
0 |
1 |
1 |
8 |
1 |
0 |
0 |
1 |
0 |
9 |
0 |
1 |
0 |
1 |
0 |
В таблице 1 используют модифицированную схему двоично-десятичного кодирования. Четырём расположенным слева битам каждого знака слева направо присваивают позиционные веса 1, 2, 4 и 7. Пятый бит используют для паритета чётности. Сумма позиционных весов битов со значением 1 равна значению знака данных, за исключением знака данных «0», где единицу используют для позиционного веса 4 и 7. Бит паритета используют, чтобы в знаке всегда присутствовали два бита со значением «1».
Алгоритм преобразования числовых данных в знаки Interleaved 2 of 5
В таблице 2 приведён алгоритм преобразования числовых данных в знаки символа Interleaved 2 of 5. Для примера возьмём номер 0367123456789.
Таблица 2. Алгоритм преобразования цифровых данных
Алгоритм |
Пример |
– каждую первую цифру каждой пары кодируют комбинацией штрихов в соответствии с таблицей 1. – каждую вторую цифру каждой пары кодируют комбинацией пробелов в соответствии с таблицей 1.
|
7 0367 03 и 67 0 и 6 3 и 7 |
Распознавание штрих-кода
Распознавание элементов штрих-кода можно свести к распознаванию образов. Для оптического распознавания образов можно применить метод перебора вида объекта под различными углами, масштабами, смещениями и т.д. В случае штрих-кода имеется 4 элемента: «0,1» (темного) и «0,1» (светлого). Учитывая особенности алгоритма для распознавания элемента необходимо определить его ширину.
Вычисление контрольной цифры
Типовое вычисление контрольной цифры приведено в таблице 3.
Таблица 3. Типовое вычисление контрольной цифры
Позиции разрядов |
|||||||||||||
N>1> |
N>2> |
N>3> |
N>4> |
N>5> |
N>6> |
N>7> |
N>8> |
N>9> |
N>10> |
N>11> |
N>12> |
N>13> |
N>14> |
Умножают значение в каждой позиции на позиционные веса |
|||||||||||||
x3 |
x1 |
x3 |
x1 |
x3 |
x1 |
x3 |
x1 |
x3 |
x1 |
x3 |
x1 |
x3 |
|
Складывают полученные произведения |
|||||||||||||
Разность ближайшего большего или эквивалентного числа, кратного десяти, и полученной суммы равна контрольной цифре |
Примеры
На рисунке 1 представлена последовательность элементов: штрихов (тёмных штрихов) и пробелов (светлых штрихов), соответствующая парам знаков цифр «03 и 67».
Рис. 1. Пары знаков символа Interleaved 2 of 5, кодирующие 03 и 67
Как отмечалось ранее знак «СТАРТ» должен состоять из четырёх узких элементов в последовательности «штрих – пробел – штрих – пробел». Знак «СТОП» должен состоять из последовательности «широкий штрих – узкий пробел – узкий штрих», как показано на рис. 2.
Знак «СТАРТ» должен располагаться слева перед знаками символа при обычном его расположении и примыкать к первому штриху комбинации, кодирующей цифру старшего разряда.
Знак «СТОП» должен располагаться справа от знаков символа при обычном его расположении и примыкать к последнему пробелу комбинации, кодирующей цифру младшего разряда.
Знаки «СТАРТ» и «СТОП» не имеют визуального представления для чтения и не подлежат передаче декодером. Знаки «СТАРТ» и «СТОП» с указанием их взаимосвязи со знаками символа приведены на рисунке 2.
Рис. 2. Знаки «СТАРТ» и «СТОП»
На рисунке 3 приведён законченный символ штрихового кода для числа 1234 с представлением необходимых свободных зон.
Рис. 3. Символ Interleaved 2of 5 с указанием свободных зон
В таблице 4 приведён пример типового вычисления контрольной цифры для последовательности 0367123456789.
Таблица 4. Типовое вычисление контрольной цифры
Действия |
Позиции разрядов |
|||||||||||||
N>1> |
N>2> |
N>3> |
N>4> |
N>5> |
N>6> |
N>7> |
N>8> |
N>9> |
N>10> |
N>11> |
N>12> |
N>13> |
N>14> |
|
Число без контрольной цифры |
0 |
3 |
6 |
7 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
|
Умножение на позиционные веса |
x3 |
x1 |
x3 |
x1 |
x3 |
x1 |
x3 |
x1 |
x3 |
x1 |
x3 |
x1 |
x3 |
|
Результат умножения |
0 |
3 |
18 |
7 |
3 |
2 |
9 |
4 |
15 |
6 |
21 |
8 |
27 |
|
Сложение результатов умножения |
=123 |
|||||||||||||
Вычитание суммы из ближайшего эквивалентного или большего, кратного 10 (130) = контрольная цифра (7) |
||||||||||||||
Число с контрольной цифрой |
0 |
3 |
6 |
7 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
7 |
Обзор свободного ПО для реализации алгоритма
Приложение KBarcode предназначено для печати этикеток и штрих-кодов. С её помощью можно изготавливать различную печатную продукцию от визитных карточек до сложных этикеток с несколькими штрих-кодами, таких как описания товаров. В состав KBarcode входят: Barcode Generator – для генерации штрих-кода, Label Editor – для редактирования этикеток, Batch Printing – для печати этикеток.
Рис. 4. Программа Kbarcode
Запустим Barcode Generator, сгенерируем штрих-код из даты «15.06.08» и разберем его по составу.
Рис. 5. Barcode Generator
На рис. 6 представлен детальный разбор штрих-кода заданной даты, на котором показаны границы «Старт», «Стоп», информационная зона и разряд контрольной суммы.
Рис. 6. Детальный разбор штрих-кода
Далее данный штрих-код можно открыть в Label Editor и добавить к нему текстовую информацию.
Рис. 7. Label Editor
Заключение
В курсовой работе был рассмотрен метод штрихового кодирования информации Interleaved 2 of 5. Рассмотрена свободная программа по его реализации Kbarcode.
Литература
Стандарт ГС1 Рус СТО ЮНИСКАН, версия 3 - 2006 г.