Тема 11.
Штрихові коди
Штрихові коди
( ШК ) широко використовуються
в медицині, торгівлі, промисловості тощо. ШК – це послідовність штрихів і пробілів, що розташовані у напрямку
уявленої прямої. Інформацію у ШК можуть нести як штрихи і пробіли різної ширини,
так і штрихи різної висоти.
Існує багато ШК які в основному
мають вузькоспеціальне призначення. Найбільш поширеними ШК є коди, що
рекомендовані Міжнародною асоціацією EAN. Це коди EAN ( European Article
Numbering ) та UPC
( Uniform Product Code )
.
Штрихові коди EAN призначені для кодування
10 цифр ( 0. . .9 ) і додаткових
символів ( СТАРТ, СТОП та розділові знаки ). Код може мати довжину
кодового слова 4, 5, 6, 7, 8, 10, 12, 13
і 14 знаків. Але існує два основні різновиди
коду EAN: EAN-13 і EAN-8, де цифрою позначена довжина коду ( кількість знаків у кодовому
слові ). Так наприклад, код EAN-13 має структуру, яка наведена на рис.
6.1.
u12
u11 u 10 u 9 u 8 u7 u6 u5 u4 u3 u2 u1 uК
Код Код товаро- країни
виробника Код
Код Код товару Конт-
країни товаровиробника ( найменування, рольний
характеристика ) символ Рис. 6.1. Структура штрихового коду EAN-13
Як видно з рисунка 6.1, код країни ( див. табл. додатка В ) може мати не два, а три знаки.
У цьому разі код товаровиробника має не 5, а 4
знаки.
Контрольний символ визначається
за таким алгоритмом:
1- ий крок: знаходять суму цифр,
розташованих на непарних позиціях кодового слова ( перегляд виконується
справа наліво ), і помножують одержаний результат на 3;
2 - ий крок: знаходять суму цифр,
розташованих на парних позиціях кодового слова;
3 - ій крок: визначають добуток сум, знайдених при 1-му та 2-му кроках;
4 - ий крок: обчислюють контрольну цифру,
яка дорівнює найменшому числу, що не перевищує 9, яке, якщо його додати до
результату, одержаному на 3-му кроці, дає кратне 10 число.
Для кодування інформації у ШК EAN
використовуються чотири набори знаків: A,
B, C та D
( табл.6.1 ) для кодування десяткових цифр, а також знаків
СТАРТ, СТОП ( Н1, Н2, Н3 ), та розділових зна-ків ( Н4 та Н5 ). Кожний знак містить у собі
два штрихи і два пробіли. Довжина кожного знака для кодування цифр дорівнює 7
модулям
( 7-ми елементам зображення ), а допоміжні знаки
мають довжину 3, 5 і 6
модулів. Як знак СТАРТ використовуються набори Н1 та Н3,
а знак СТОП – Н1 та Н2
у залежності від символів початку і кінця кодового слова ( табл.6.2, де 0 – пробіл,
1 – штрих ).
Таблиця 6.1
Сим- воли |
Набір А |
Набір В |
Набір С |
Набір D |
Двійковий еквівалент |
Двійковий еквівалент |
Двійковий еквівалент |
Двійковий еквівалент |
|
|
0001101 |
0100111 |
1110010 |
1011000 |
1 |
0011001 |
0110011 |
1100110 |
1001100 |
2 |
0010011 |
0011011 |
1101100 |
1100100 |
3 |
0111101 |
0100001 |
1000010 |
1011110 |
4 |
0100011 |
0011101 |
1011100 |
1100010 |
5 |
0110001 |
0111001 |
1001110 |
1000110 |
6 |
0101111 |
0000101 |
1010000 |
1111010 |
7 |
0111011 |
0010001 |
1000100 |
1101110 |
8 |
0110111 |
0001001 |
1001000 |
1110110 |
9 |
0001011 |
0010111 |
1110100 |
1101000 |
Н1 |
101 |
Обмежувальні знаки
СТАРТ і СТОП |
||
Н2 |
010101 |
|||
Н3 |
101010 |
|||
Н4 |
01010 |
Розділові
знаки |
||
Н5 |
10101 |
Примітка: При зображенні кодового
слова у штриховому коді , згідно табл. 6.1, подають: 0 – одним, 00 – двома, 000
– трьома і 0000 – чотирма інтервалами, а 1 – тонким штрихом ( ) , 11 – штрихом ( ),
111 – штрихом (
) і 1111 – штрихом ( ) .
Таблиця 6.2
Знак СТАРТ |
Кодове слово |
Знак СТОП |
Н1 |
0 . . . . . . . . . . 0 |
Н1 |
Н3 |
1 . . . . . . . . . . .1 |
Н2 |
Н1 |
0 . . . . . . . . . . .1 |
Н2 |
Н3 |
1 . . . . . . . . . . .0 |
Н1 |
У штрихових кодах EAN довжиною 4,
5, 6, 7 знаків для кодування цифр використовується набір А ( табл.6.1 ), а обмежувальних знаків – Н1 ( СТАРТ ) та Н2 ( СТОП ). У
ШК довжиною 8, 10, 12 і 14
зна-ків кодові слова діляться на дві частини з однаковим числом знаків у
кожній, які розділяються розділовим знаком Н4.
Для зображення знаків лівої частини кодового слова використовуються набори А і В, а
правої – С і D ( див. табл.6.1 ). Такі
кодові слова мають обмежу-вальні знаки СТАРТ
і СТОП типу Н1.
У коді EAN-13 штрихове зображення складається з двох частин
по шість знаків у кожній, які розділені знаком
Н4, і має
зліва та справа обмежувальні знаки Н1
( СТАРТ і СТОП ). Першу зліва
цифру ( 12-а цифра ) товарного номера не кодують у вигляді
штрихів і пробілів, а тільки пишуть зліва внизу. Ця цифра визначає спосіб
кодування цифр, які розташовані у лівій частині кодового слова між знаками Н1 та Н4 ( табл.6.3 ). Літерами А і В
у табл. 6.3 позначені набори з
табл..6.1, якими кодують відповідні знаки лівої частини кодового слова. Цифри,
які розташовані у правій частині кодового слова між знаками Н4
і Н1, кодують набором С
( див. табл.6.1 ). Обмежувальні і розділовий знаки зображають більш довшими по висоті штрихами.
Таблиця 6.3
u12 |
u11 u10 u9 u8 u7 u6 |
0 |
А А А А А А |
1 |
А А В А В В |
2 |
А А В В А В |
3 |
А А В В В А |
4 |
А В А А В В |
5 |
А В В А А В |
6 |
А В В В А А |
7 |
А В А В А А |
8 |
А В А В В А |
9 |
А В В А В А |
Деякі товари можуть мати короткий
номер, що має 7 цифр. Після доповнення його контрольною цифрою, що виконується
за наведеним вище алгоритмом для коду EAN-13, одержують 8 цифр, які кодують
кодом EAN-8. Кодове слово EAN-8 складається зі знака СТАРТ – Н1, чотирьох знаків набору А, розділового знака Н4, трьох знаків набору С, знака контрольної цифри у наборі С, а також знака СТОП – Н1. У коді EAN-8 перша цифра
u7 не визначає неявне кодування, а кодується як і
наступні цифри u6, u5,
u4 набором А
( див. табл.6.1 ).
Штрихові коди UPC
використовуються у США та Канаді для ідентифікації товарів і також
призначені для кодування 10 цифр та п’яти додаткових знаків. Коди UPC
сумісні з кодами EAN з огляду на
те, що використовують одну і ту ж таблицю наборів знаків
( табл.6.1 ).
Існує декілька різновидів ШК
UPC, з яких найбільше поширення
набули коди UPC-А і UPC-Е.
Кодове слово ШК UPC-А має 12 цифр
( 12-а – контрольна ), тобто на одну цифру менше ніж у EAN-13. Це
викликано тим, що код країни ( США і Канада ) має тільки дві цифри.
Відмінними ознаками коду UPC-А від коду EAN-13 є:
– старша цифра ( u11 ) товарного номера у
штриховому зображенні кодується явно;
– штрихове зображення
кодового слова у коді UPC-А містить знак
СТАРТ ( Н1 ), 6 знаків
набору А, розділовий знак ( Н4 ), 5 знаків набору С, знак контрольної суми набору С
і знак СТОП ( Н1 ) ( див. табл.6.1 );
– у штриховому зображенні
знаки цифр u11 і uК виконуються висотою, однаковою з висотою
зображення знаків Н1 і Н4, причому значення цифр під цими
знаками не позначають;
– зліва від штрихового
зображення друкують цифру 0, що
іденти-фікує код UPC-А.
Контрольна цифра визначається за
тим же алгоритмом, що використовується
і у коді EAN-13.
Товарний номер у коді UPC-Е містить 6 цифр і також поділяється на дві
частини по 3 цифри у кожній. Перша частина ( ліва ) кодується набором
А, а друга ( права ) –
набором С ( у тому числі і
контрольний знак ) ( див. табл.6.1 ).
При декодуванні ШК EAN та
UPC перш за все визначається
контрольний знак, який повинен співпадати
з переданим. Крім того, сума всіх
цифр кодового слова, що подається на приймальний пристрій, повинна бути кратною
10. У цьому разі помилки нема. Якщо ж
сума буде не кратною 10, це
вказує на наявність помилки. Помилка виявля-ється і при неправильному прийомі
знаків, що не відповідають наборам, встановленим неявним кодуванням по старшому
знаку в ШК EAN-13 цифр лівої половини кодового слова, тому що
набори А і В ( див. табл.6.1 ) не
збігаються.
Задача 1.
Побудувати кодове слово у коді EAN-13, якщо
країна товаровиробник – Україна,
код товаровиробника –1229, код товару – 03458.
Розв’язання.
12 цифр кодового слова, яке треба закодувати
кодом EAN-13, мають вигляд: 482122903458
( код країни – 482 ). Необхідно доповнити це кодове слово
контрольною цифрою uK, яку
визначаємо згідно з алгоритмом для коду
EAN:
а) визначаємо суму цифр, які розміщені на непарних
місцях кодового слова ( справа
наліво ): 8 + 4 + 0
+ 2 + 1 + 8 = 23;
б) помножимо одержану суму на 3: 23 ´ 3 = 69;
в) визначаємо суму цифр, які розташовані на непарних
місцях кодового слова:
5 + 3 + 9 + 2 + 2 + 4 = 25;
г) визначаємо суму двох результатів за п. п. б
та
в:
69 + 25 = 84;
д) визначаємо контрольну цифру як різницю між числом
кратним 10, що є найближчим більшим за одержаний результат у п. г, і числом одержаним у п. г: 90 – 84 = 6, тобто uK = 6.
У коді EAN-13 штрихове зображення
має дві частини, по 6 знаків у кожній, які розділені знаком Н4, і має зліва і справа обмежувальні
знаки Н1 ( СТАРТ і СТОП ).
За першою зліва цифрою визначаємо набори кодових комбінацій, якими кодуються
цифри першої частини кодового слова ( табл.6.3 ). У зв’язку з тим, що u12 = 4,
згідно табл. 6.3 маємо: u11,
u9 та u8 – кодуються набором А, а
u10, u7 та u6 – набором В. Цифри u5, . . . , u1,
а також контрольна цифра uК,
кодуються відповідними знаками набору С
( табл.6.1 ). Таким чином, кодове слово EAN-13 у двійковому еквіваленті має такий вигляд:
101 0110111 0011011 0011001
0010011 0011011 0010111
01010
Н1
8
2 1
2 2
9 Н4
1110010
1000010 1011100 1001110 1001000 1010000 101
0 3
4 5
8 6
Н1.
Задача 2.
Зчитувальним пристроєм фіксується
кодове слово у коді EAN-13: 4821223034586, у якому міститься помилка. Показати
процес виявлення помилки.
Розв’язання. Для виявлення помилки у кодовому
слові коду EAN-13 виконуємо перевірку на відповідність контрольної цифри
( uК = 6 )
цифрам кодового слова, що надійшло до декодера
зчитувального пристрою. Для цього знаходимо контрольну цифру uK* для прийнятого кодового слова 482122303458
( без uK )
згідно з алгоритмом для коду EAN-13
та порівнюємо її з
uK :
8 + 4 + 0 + 2 + 1 + 8 = 23;
23 ´ 3 = 69;
5 + 3 + 3 + 2 + 2 + 4 = 19;
69 + 19 = 88;
90 – 88 = 2
uK* = 2, uK*
uK.
Таким чином, контрольні цифри у
прийнятому кодовому слові і обчислені декодером не збігаються. Це вказує на
наявність помилки у прийнятому кодовому слові.