Sunteți pe pagina 1din 38

SISTEME DE IDENTIFICARE FOLOSIND

CODURI DE BARE
1. INTRODUCERE

Codul de bare este un cod binar aranjat ca un câmp de


bare şi goluri, într-o configuraŃie paralelă, după un
model prestabilit. Aceasta configuratie codifica de fapt
date (informatii binare). Succesiunea de biti “0” si “1”
este asociata aranjarii specifice a barelor si golurilor.
SecvenŃa de bare (de latimi diferite) şi goluri (la fel, de
latimi diferite) poate fi interpretată numeric şi
alfanumeric. Această secvenŃă este citită prin scanarea
optică cu ajutorul unei raze laser care este diferit
reflectata de bare (tiparite in general cu cerneala) şi de
goluri (ce au culoarea alba sau culoarea suportului pe
care este tiparit codul de bare).
Codurile de bare pot fi imprimate la un cost foarte redus,
folosind o mare varietate de tehnici de imprimare. Sistemul
de identificare prin cod de bare este considerat, in general,
un sistem de identificare unidimensional. Astfel, in marea
majoritate a cazurilor, doar latimea barelor si a spatiilor
contine informatie, nu si inaltimea lor. Acest sistem este
considerat relativ sigur din punct de vedere al ratei de eroare
la identificarea codului citit (mai buna de 10-6). Totusi, exista
o rata de eroare a primei citiri destul de mare (aproximativ
20%), in special in sistemele de citire manuala
(preponderente pe piata). Sistemele automate pot scadea
aceasta rata de eroare dar astfel de sisteme sunt mai rar
intalnite si necesita operatii anterioare foarte bine definite.
Cele mai vizibile aplicatii ale sistemelor cu cod de bare se afla
in domeniul vanzarilor cu amanuntul si en-gross, unde
acestea au aparut inca din anii 1970. Astazi, astfel de
sisteme au patruns si in domeniul automatizarilor industriale
dar estimarile prevad un declin important al acestor aplicatii
in detrimentul sistemelor de identificare RFID.
2. Tipuri de coduri de bare

Din punctul de vedere al modului in care este


codificat un numar de identificare, exista
urmatoarele tipuri de coduri de bare principale:

• Coduri de bare modulate in latime (wide-


modulated);

• Coduri de bare modulate in inaltime;

• Coduri de bare bidimensionale (2-D Stacked sau


2D-Matrix);
a) Coduri de bare modulate in latime (wide-
modulated);

Cele mai reprezentative coduri de bare din aceasta


categorie sunt: Code 39, Interleaved 2 of 5, Codabar, Code
128, Code 93.

Code 39 a fost primul cod de bare


dezvoltat pe scara larga. Astazi este
cel mai des intalnit in aplicatii
industriale. Codul utilizeaza doua
latimi atat pentru benzile negre cat si
pentru cele albe. Fiecare caracter are
5 bare si 4 spatii, adica un total de
noua elemente. Intotdeauna, din cele
9 elemente trei sunt late si sase
inguste, de unde vine si denumirea
codului (3 of 9 = 3 din 9 = 39).
Figura 1 Simbolizarea codului 39
In tabelul de mai jos sunt prezentate codurile corespondente
pentru caracterele alfanumerice posibil de folosit:

Figura 2 Tabelul de codificare al codului 39


Fiecare cod 39 incepe si se termina cu un caracter *. Altfel
spus, acest cod prezinta un caracter de start si unul de stop.
Intre oricare doua caractere exista un spatiu de separatie
care nu contine informatie, asa cum este prezentat in fig. 3.

Figura 3 Codul 39 - exemplu


Spre deosebire de codul 39, codul Interleaved 2 of 5 este un
cod fara separatii intre caractere si fiecare simbol codeaza de
fapt doi digiti: unul cu ajutorul barelor negre si unul cu
ajutorul spatiilor albe. Cum barele negre si spatiile albe se
intrepatrund, rezulta denumirea codului. Fiecare simbol
consta din 5 bare si 5 spatii. Intotdeauna doua bare sunt late
si trei inguste, conditie ce ramane valabila si pentru spatii. In
figura 4 este prezentata codificarea cifrelor cu ajutorul
barelor, acelasi cod este insa respectat si pentru spatii.

Figura 4 Codificarea Interleaved 2 of 5 pentru cifre


Un exemplu pentru numarul „38” codificat cu codul
Interleaved 2 of 5 astfel este prezentat in figura 5.

Figura 5 Simbolizarea lui 39


in codul Interleaved 2 of 5
In 1981 a fost dezvoltat un alt cod de bare mai evoluat care
ofera o mult mai mare densitate: Code 128. Incepand cu
1990 el si-a gasit o serie larga de aplicatii si a fost apoi
dezvoltat pentru a se potrivi cat mai bine cu aplicatiile legate
de vanzarea cu amanuntul. Acest cod este continuu si de
lungime variabila. Fiecare caracter este tiparit pe 11 module,
ce pot fi negre sau albe, asa cum este prezentat in figura 6.
Pentru oricare caracter exista
doar trei bare negre si doar
trei spatii albe, de marimi
diferite, functie de tabelul de
codificare. Tabelul de
codificare contine 106
codificari diferite pentru 3
seturi diferite (A, B si C) de
caractere alfanumerice. In
setul C se codifica 2 digiti, →
Figura 6. Simbolizarea unui caracter
cod de mare densitate. folosind 11 module in codul 128
Un mesaj scris in codul 128 incepe intotdeauna cu un
caracter de start ce poate avea una din trei forme posibile,
indicand astfel ce set al codului este folosit: A, B sau C.
Urmeaza apoi tiparirea simbolurilor corespunzatoare
mesajului. In final se tipareste un caracter de control urmat
de un caracter de stop. Un exemplu este prezentat in figura
8, unde s-a folosit setul A.

Figura 8. Mesajul “CODE 128” tiparit cu codul 128, setul A


b) Coduri de bare modulate in inaltime;

Aceste coduri sunt folosite cu predilectie de catre


serviciile postale. Astfel, codul Postnet este folosit in
special in SUA, este un cod numeric (codeaza doar
numere) si se bazeaza pe o tehnica de sincronizare cu
un semnal de ceas. Un exemplu este prezentat in figura
10. Prin citirea benzii inferioare a codului, scanerul
recupereaza semnalul de ceas iar prin citirea benzii
superioara se decodifica date inscrise. Pentru fiecare
digit se folosesc 5 bare si 4 spatii de latime constanta.

Figura 10. Codul POSTNET


Spre deosebire de SUA, cele mai multe tari utilizeaza in
cadrul serviciilor postale coduri alfanumerice. Pentru
aceasta, codul Postnet nu mai poate raspunde cerintelor
deoarece are prea putine posibilitati de codare (maxim 32).
In figura 11 este prezentat un cod de bare numit Four State
Code, utilizat in Marea Britanie. Pot exista 4 inaltimi diferite
ale fiecarei bare si astfel cresc numarul de combinatii
pentru a putea codifica cele 106 caractere alfanumerice.

Figura 11. Exemplu de character tiparit cu Four State Code


c) Coduri de bare bidimensionale (2-D Stacked sau
2D-Matrix);

Codurile de tip stiva (2-D Stacked) au fost dezvoltate in


vederea reducerii ariei ocupate de codurile liniare. Aceste
coduri se caracterizeaza prin faptul ca informatia este
tiparita pe mai multe randuri dispuse unul sub altul,
fiecare rand fiind citit si decodat similar ca un cod liniar.
Exista, de asemena separatii intre randuri si caractere
speciale dispuse la inceputul randului, pentru
identificarea fiecarui rand.

Figura 12 a). Codul 49 poate avea intre 2 si 8 randuri


Codurile de tip 2-D matrix sunt mult mai complicate decat
cele liniare sau de tip stiva prezentate anterior.
Echipamentele de imprimare si cele de citire sunt mult mai
sofisticate. Evident insa ca se obtine o densitate mult mai
mare, adica intr-o aceeasi arie tiparita este stocata o
cantitate de informatie de 2-3 ori mai mare decat in cazul
codurilor anterioare.

In figura 12 b) este prezentat


codul Vericode in care
informatia este codata sub
forma unor mici patrate ce
pot fi albe sau negre.

Figura 12 b). Codul Vericode


3. Coduri de bare folosite in sistemele pentru
vanzarea cu amanuntul

Incepand cu anii 1970, cele mai vizibile aplicatii ale


codurilor de bare vizau vanzarile cu amanuntul. Astazi aceste
sisteme sunt practic prezente aproape in orice magazin.
Pentru a pune in functiune astfel de sisteme a fost necesara
o standardizare. Prima astfel de standardizare a aparut in
SUA in 1973 cand simbolizarea Universal Product Code (UPC)
propusa de IBM a fost aleasa ca standard industrial. Pe de
alta parte, in Europa, incepand cu 1978 s-a aprobat
standardizarea European Article Numbering (EAN). Dupa
multi ani in care cele doua sisteme de codificare au operat
separat, incepand cu 1990 s-a cautat o anumita convergenta
a celor doua codificari iar astazi exista doar o singura
organizatie, cunoscuta sub denumirea de EAN.UCC, care
administreaza toate aplicatiile legate de aplicarea codurilor
de bare in sistemele pentru vanzarea cu amanuntul.
Sistemul de codificare EAN.UCC
Codificarea UPC a fost introdusa pentru a asigura fiecarui
produs un cod unic. Astfel, fiecare producator primea 5 digiti
pentru propria identificare si alti cinci digiti cu care putea
identifica pana la 100.000 produse livrate de el. Cei 10 digiti
sunt completati cu un digit numit Number System digit, care
era primul digit din cod si asigura o anumita definire a
categoriilor de produse ce erau codificate. La finalul codului s-
a introdus un digit de control si astfel a aparut codul UPC cu
12 digiti.
Pe de alta parte Codul EAN contine 13 digiti, in locul primului
digit pentru definirea categoriei de produs introducandu-se 2
digiti pentru codificarea tarii. Acest prefix a evoluat apoi,
folosindu-se 3 digiti pentru el, ramanand doar 9 digiti pentru
identificarea producatorului si a produsului.
Codul EAN.UCC are 14 digiti, la cei 13 anterior descrisi la
Codul EAN adaugandu-se un nou prefix pentru identificarea
tipului de ambalaj.
Figura 13. Evolutia codificarii EAN.UCC
Digitul pentru identificare are urmatoarea semnificatie:

• 0, 6, 7 – codul reprezinta un numar UPC standard;


• 2 - codul de bare se refera la coduri corespunzatoare
greutatii produselor cantarite in magazin (si sunt valabile
doar in acel magazin);
• 3 - codul de bare se refera la produse farmaceutice;
• 4 - codul de bare este un cod propriu unui anume
magazin (nu este recunoscut in alt magazin);
• 5 - codul de bare se refera la cupoane pentru reduceri
de pret aplicate asupra unor anumite produse si pot fi
valabile intr-unul sau mai multe magazin;
• 1, 8, 9 – sunt coduri rezervate.

In codificarea UPC, codul este impartit in doua


jumatati, fiecare flancate de doua bare negre. Fiecare numar
este codificat prin doua bare negre si doua spatii avand
latimi simple, duble, triple sau cvadruple.
Exista 30 de coduri de bare grupate in trei seturi: SET A, SET
B si SET C (figura 14). Cele doua jumatati ale unui cod UPC
de 12 digiti sunt codate astfel: jumatatea din stanga folosind
setul A, jumatatea din dreapta folosind setul C. Setul B, in
combinatie cu setul A este rezervat unor coduri UPC cu doar
8 digiti - UPC – Versiunea E (6 digiti de date + digit de
control + digit de sistem).

Aceasta din urma


versiune codifica un
numar limitat de coduri
cu doar 6 digiti si este
adesea folosita de
comercianti datorita
etichetei mai scurte, la
etichetarea produselor
de mici dimensiuni.

Figura 14. Cele trei seturi de coduri folosite in UPC


Din punctul de vedere al codificarii EAN exista doua versiuni:
EAN 13 si EAN-8.
EAN 13 codeaza 13 digiti, prefixul fiind format din 2 digiti.
Compatibilitatea cu codurile UPC, care au doar 12 digiti este
asigurata prin rezervarea codurilor 00-09 in prefixul codurilor
EAN 13. Altfel spus, la citirea cu un reader UPC primul 0 va fi
ignorat. Invers, un cititor EAN va decodifica un cod UPC prin
adaugarea in fata a unui 0.

In cazul codarii EAN-8,


codul este impartit in
doua jumatati de cate 4
digiti fiecare. In acest
caz (figura 15) exista 2
digiti pentru tara, 5 digiti
pentru produs si unul de
control.

Figura 15. Codul EAN-8


Fiecare tara are o autoritate care asigneaza
coduri producatorilor si mentine o baza de date
centrala cu toate aceste coduri.
In SUA, Uniform Code Council administreaza
aceste coduri pentru SUA si Canada.
In Europa, acest lucru este facut de International
Article Numbering Associacion cu sediul in Bruxel,
Belgia.
Astazi codul UPC poate fi considerat un subset al
codului EAN. De fapt, in SUA se trece treptat la
implementarea codului EAN.UCC ce are doi digiti
suplimentari fata de clasicul UPC.
4. Principiile de operare ale cititoarelor de
coduri de bare.
Un cititor de coduri de bare este un sistem electronic utilizat
pentru extragerea informatiei ce este codata optic sub forma
unui cod de bare. Informatia este extrasa sub forma unui sir
de date si este transmisa apoi unui computer pentru
prelucrare sau stocare locala. Schema bloc – figura 16.

Figura 16. Schema bloc a unui cititor de coduri de bare


Sistemul electro-optic asigura iluminarea codului
de bare tiparit si preia lumina reflectata. Sistemul de
scanare asigura examinarea secventiala a codului de
bare prin baleierea razei de lumina pe una sau doua
dimensiuni, functie de tipul codului de bare folosit.
Semnalul obtinut la iesire sistemului electro-optic
este un semnal analogic direct proportional cu
succesiunea de bare negre si spatii albe din codul de
bare scanat. Acest semnal analogic este transformat
intr-un cod numeric cu ajutorul unui convertor
analog-numeric.
In final, datele sunt procesate de un procesor pentru
decoficarea completa a codului de bare scanat.
Atunci cand este scanat un cod de bare liniar (EAN.UCC,
Code 39 sau code 128) – cazul cel mai des intalnit -
cititorul de coduri de bare trebuie sa realizeze
urmatoarele functii de baza:
• Pozitionarea corecta deasupra codului de bare,
asigurarea liniei de vizibilitate directa;
• Determinarea latimii fiecarei bare negre si a fiecarui
spatiu alb, sau a distantei intre doua inceputuri de bara
neagra sau de spatiu alb;
• Cuantizarea fiecarei latimi intr-un numar intreg de nivele,
functie de tipul codului de bare;
• Verificarea faptului ca cuantele mai sus obtinute au valori
corecte si in concordanta cu codarea specifica fiecarui
cod;
• Atunci cand e necesar trebuie sa inverseze ordinea
datelor;
• Confirmarea zonei de garda pentru codurile care o
prevad;
• Confirmarea corectitudinii citirii codului de control corelat
cu celelalte date.
Sistemul electro-optic
Sistemul electro-optic asigura scanarea codului de
bare imprimat. Operatiunea de scanare poate fi realizata:
• manual, de catre un operator;
• prin intermediul unui mecanism intern de scanare;
• prin intermediul unui senzor optic intern;
• prin miscarea codului de bare imprimat prin dreptul fantei
de citire a cititorului.
Principiul de citire se
bazeaza pe trimiterea spre
eticheta cu cod de bare a
unei raze luminoase care
se reflecta diferit pe barele
negre si pe zonele albe. Pe
eticheta se formeaza un
asa numit spot de lumina
care este reflectat si
captat apoi de un
fotodetector (figura 17). Figura 17. Principiul de scanare a codurilor de bare
Zonele albe reflecta mai multa lumina iar cele negre mai
putina lumina. Astfel fotodetectorul furnizeaza la iesire un
semnal analogic a carui valoare instantanee corespunde
barelor negre sau spatiilor albe (fig 18). Spotul nu trebuie sa
fie neaparat circular, trebuie insa sa aiba un diametru mai
mic decat cea mai subtire bara neagra sau spatiu alb (altfel
nu s-ar sesiza schimbarea neta de reflectivitate).
Spotul se formeaza prin focalizarea
razelor de lumina provenite de la o
sursa luminoasa. Exista insa si
solutii in care lentila de focalizare
este dispusa in fata fotodetectorului
si nu a sursei de lumina. Baleierea
se asigura fie intern printr-un
mecanism mecanic care plimba
raza de lumina de-a lungul lungimii
codului de bare (cel mai adesea) fie
prin plimbarea etichetei cu codul de Figura 18. Semnalul analogic
bare, raza fiind fixa. corespunzator codului de bare
Convertorul analog digital

Inainte de a fi aplicat convertorului analog digital,


semnalul de la iesirea fotodetectorului este uzual
amplificat datorita amplitudinii sale foarte mici ce face
grea prelucrarea sa ulterioara. Rolul de baza al acestui
convertor este de a face conversia semnalului analogic
provenit de la detector (uzual numit semnal „video”)
intr-un semnal digital ce poate fi apoi prelucrat de catre
microprocesorul (microcontrolerul) cititorului de cod de
bare. In cea mai simpla forma, acest convertor poate fi
un simplu comparator ce compara valorile instantanee
ale semnalului analogic cu doua valori de prag
(comparator cu Trigger Schmitt), rezultand la iesirea sa
un semnal numeric ca in figura 19.
Daca valorile de prag sunt alese corect, durata celor doua
nivele de tensiune obtinute corespund, din punct de vedere
al proportiilor, exact cu latimile barelor negre si a spatiilor
albe din codul de bare (durata in timp a unui palier ar
trebui teoretic sa fie exact raportul dintre latimea barei
negre sau a spatiului si viteza de scanare).

Din pacate un astfel de


convertor simplu are slabe
performante in practica
deoarece trebuie sa faca
fata unor semnale
analogice mult diferite de
cele prezentate in figura
19. (vezi figura 20).
Figura 19. Formele de unda de la intrarea
si iesirea unui detector de prag
Figura 20. Forma semnalului analogic
obtinuta adesea in practica
Semnalul din figura 20 este mult mai apropiat de ceea ce
se intampla in realitate datorita unor unghiuri de scanare
diferite sau care se schimba pe durata scanarii (cazul scanarii
manuale), a rezolutiei mai putin performante a scanerului, a
interferentei intersimboluri (semnalul corespunzator unui
spatiu patrunde si in zona corespunzatoare unei bare negre si
invers).
Pentru a obtine un semnal digital cat mai apropiat de cel
ideal, trebuie alese cu foarte multa grija valorile pragurilor
(superior – la trecerea semnalului analogic peste aceasta
valoare iesirea devine „high” si inferior - la trecerea
semnalului analogic sub aceasta valoare iesirea devine
„low”). Pentru aceasta sau inregistrat mai multe brevete de
inventie. Astazi cea mai moderna si mai exacta metoda
consta in esantionarea cu o frecventa mare a semnalului
analogic, conversia esantioanelor analogice in numere si
analiza unui sir mare de esantioane pentru determinarea si
formarea cu precizie a semnalului numeric din figura 19.
Sursa de lumina
La inceputurile utilizarii codurilor de bare, raza
incidenta era o raza din domeniul vizibil (figura 21) sau
apropiat acestuia.

Figura 21. Spectrul vizibil in cadrul intregului spectru electromagnetic


In domeniul vizibil sau in domeniul apropiat
acestuia s-au standardizat scanere ce lucrau in banda
B633 (adica foloseaza o raza cu lungimea de unda de
633 nm) si B900 (900 nm).
Scanerele B633 lucreaza in domeniul vizibil, in timp ce
scanerele B900 sunt in afara acestui domeniu, fiind
adesea folosite in aplicatii privind securitatea accesului.
In general, scanerele ce lucreaza in banda B900 sunt
mai performante putand lucra cu succes in medii in
care pe etichete pot aparea urme de ulei, petrol sau
sange. Dar acestea sunt si mai scumpe. Astazi, cele
mai multe scanere lucreaza in ambele benzi (B633 si
B900).
O alta modalitate de scanare, specifica serviciilor
postale, folosea o cerneala speciala fosforescenta care
emitea lumina pe o frecventa specifica atunci cand era
iluminata cu raze UV.
Iata in continuare categoriile de surse de lumina
frecvent folosite in scanerele de coduri de bare:
- lasere bazate pe Heliu-Neon, ce opereaza pe λ=633 nm;
- surse de lumina incandescente, ce opereaza cu o raza de
lumina cu un spectru mai larg, aflat in domeniul 600-630nm;
- flash lamp (lampi de tip spot, de mare intensitate
luminoasa), ce opereaza in domeniul 550-650 nm;
- LED ce opereaza in domeniul vizibil 630-700 nm;
- LED-uri in infrarosu, ce opereaza in domeniul 850-920 nm;
- diode LASER (cele mai moderne si mai folosite, datorita
pretului care a devenit foarte scazut).

Privind diodele LASER, putem preciza faptul ca abia


incepand cu 1988, LED-urile ce lucreaza in domeniu 640-680
nm au inceput a echipa scanere pentru coduri de bare.

Astazi sunt disponibile si diode laser ce lucreaza pe λ= 630


nm, domeniu in care ochiul uman are cea buna sensitivitate.
O categorie aparte o formeaza scanerele CCD (fig 22).

Figura 22. Principiul de functionare a scanerului CCD


Un scaner CCD nu contine parti mecanice in miscare ceea
ce il face mult mai fiabil si mai precis. Raza de lumina ce
provine de la sursa de lumina (pot fi chiar si doua surse)
ilumineaza intregul cod de bare. Undele luminoase
reflectate sunt focalizate pe o arie de fotodetectori
(fotodiode) realizate prin tehnica circuitelor integrate.
Semnalul analogic este obtinut astfel similar ca intr-o
camera TV. Drept fotodetectori pot fi folositi astazi pe langa
senzorii CCD (charged coupled device) si senzorii CMOS,
datorita pretului de cost foarte scazut al acestora din urma.
Pentru a creste rata de succes a scanarii, orice scaner
efectueaza rapid mai multe scanari ale aceluiasi cod, pentru
ca, la finalul procesului de scanare, cel putin un semnal
analogic obtinut sa poata fi decodat ca un cod viabil. Unele
scanere folosesc chiar mai multe raze de scanare, sub
diverse unghiuri pentru ca putea realiza cat mai multe
incercari, din acelasi motiv. Chiar si asa, rata de eroare la
prima citire ajunge in multe cazuri in jurul a 20%.
In cazul in care codurile de bare sunt altele decat cele
liniare, complexitatea scanerului creste. Pentru
codurile formate din mai multe randuri este necesara
o baleiere a acestora de catre raza luminoasa dupa un
sistem asemanator cu cel din monitoare sau
receptoarele TV.
In cazul codurilor matriciale sau chiar mai complexe,
cele mai performante scanere sunt scanerele video.
Aceste scanere folosesc DSP-uri (Digital Signal
Processing) puternice, imagini de inalta rezolutie
captate cu senzori de imagini sensibili si software de
inalt nivel pentru recunoasterea formelor. In aceste
scanere nu se foloseste raza LASER.
O schema bloc a unui scaner video portabil este
prezentata in figura 23.

Figura 23. Schema de principiu a unui scaner video pentru coduri de bare
Imaginea de scanat (codul de bare), este
captata printr-o lentila de focalizare pe o tinta 2D
(similar ca in camera TV), tinta pe care se afla
milioane de senzori de imagine de tip CCD sau CMOS.
Semnalul de imagine obtinut la iesirea acestor
senzori este transformat intr-un semnal numeric si
apoi digitizat (codat) pentru a fi stocat intr-o
memorie de imagine.
In vederea recunoasterii codului (recuperarii
informatiei codate in codul de bare), datele ce
corespund imaginii preluate sunt apoi prelucrate cu
ajutorul unui DSP si, cu ajutorul unui program
software specializat pentru recunoasterea formelor,
datele stocate in codul de bare sunt in final
decodificate.

S-ar putea să vă placă și