商品條碼的編碼方法采用的是模塊組配法。所謂模塊組配法就是以一個標(biāo)準(zhǔn)寬度的單元為一個模塊,每個條或空由若干個模塊組成。
商品條碼的編碼規(guī)則:每個標(biāo)準(zhǔn)模塊寬度為0.33毫米,每個字符由7個模塊構(gòu)成,這7個模塊組成2條2空,每個條或空由1-4個模塊構(gòu)成。下圖是商品條碼從0到9的條碼符號:
條碼符號分為A子集和C子集兩種編碼,同一個字符的兩個子集的符號恰好互補,A子集組成條的模塊數(shù)都為奇數(shù),稱為奇排列,C子集組成條的模塊數(shù)都為偶數(shù),稱為偶排列。我們把條對應(yīng)二進(jìn)制數(shù)字1,把空對應(yīng)二進(jìn)制數(shù)字0,就可以得到條碼符號對應(yīng)的二進(jìn)制表示:
一、UPC-A條碼
要搞清楚商品條碼的來龍去脈,我覺得還是從UPC條碼開始講比較好。
UPC商品條碼是定長條碼,條碼符號一共可以表示12個數(shù)字。如圖:
起始符為3個模塊,兩條夾一空,用二進(jìn)制記為101,中間分隔符占用5個模塊,即中間的兩條加左中右的三個空,記為01010,終止符也是兩條夾一空,記為101。 起始符后到中間分隔符前為左數(shù)據(jù)區(qū),表示6個數(shù)字,所以就有6組兩條兩空,中間分隔符后到終止符前為右數(shù)據(jù)區(qū),也表示6個數(shù)字,也同樣有6組兩條兩空。因為起始符以條結(jié)束,所以左數(shù)據(jù)區(qū)的符號均以空開始,以條結(jié)束,使用的是A子集。中間分隔符以空開始,空結(jié)束,所以右側(cè)數(shù)據(jù)區(qū)的符號要以條開始,空
結(jié)束,因此右側(cè)數(shù)據(jù)區(qū)的符號使用C子集。
條碼的左、右空白區(qū)是為掃描器識別條碼準(zhǔn)備開始和結(jié)束的判斷依據(jù),因此必須保持一定的寬度,UPC-A條碼規(guī)定左右空白區(qū)均為9個模塊寬。
符號的長度:每個數(shù)字均由7個模塊組成,數(shù)據(jù)區(qū)的模塊數(shù)就是7*12=84,起始符是3個模塊,中間分隔符是5個模塊,終止符也是3個模塊,因此符號總模塊數(shù)就是84+3+5+3=95。
符號長度就是95*0.33=31.35毫米,如果算上兩側(cè)空白區(qū)則是37.29毫米。
商品條碼的標(biāo)準(zhǔn)規(guī)定,條碼符號可以在放大系數(shù)為0.8—2.0之間變化,因此
條碼符號的實際大小就是在29.83-—74.58毫米之間(含左右空白區(qū))。
二、EAN-13條碼 EAN-13條碼源于歐洲,是在UPC-A條碼的基礎(chǔ)上發(fā)展起來的一種條碼。歐洲將美國的UPC條碼引入后,由于需要區(qū)分不同的國家,因此原有的12位數(shù)字已不夠用,便將數(shù)字位數(shù)增加為13位。但是如果另外設(shè)計一種碼制,歐洲與美國的條碼制式將會完全不同,不便于世界范圍內(nèi)的商品流通??茖W(xué)家們經(jīng)過反復(fù)研究試驗,終于找到了一個兩全其美的方法。
下面是一個EAN-13條碼:
仔細(xì)觀察可以發(fā)現(xiàn),它的左數(shù)據(jù)區(qū)和右數(shù)據(jù)區(qū)的條碼符號仍然是6組兩條兩空,也就是說它仍然表示的是12位數(shù)字,那么多出來的那一位數(shù)字是如何解決的呢? 其實,在設(shè)計商品條碼的符號編排的時候,還有一個B子集,如圖:
B子集的條空結(jié)構(gòu)正好與C子集的條空結(jié)構(gòu)左右對換。EAN-13的13位數(shù)字,我們只用條碼符號表示右12位,左邊一位放在起始符左側(cè),稱為前置碼,不用條碼符號表示,而是將左側(cè)數(shù)據(jù)區(qū)的6位數(shù)字采用不同的AB子集的排列來表示。不同前置碼左數(shù)據(jù)區(qū)6位數(shù)字使用的AB子集排列見下表:(注:商品條碼的數(shù)字位
數(shù)自右向左排列,所以前置碼是第13位,后面的6位分別是第12位到第7位)
例如:條碼數(shù)字6902890884910,前置碼為6,按上表查出來左側(cè)數(shù)據(jù)區(qū)的6位數(shù)字子集排列為ABBBAA,即6(前置碼)9(A子集)0(B子集)2(B子集)8(B子集)9(A子集)0(A子集)。由于B子集與A子集一樣,也是空開始,條結(jié)束。所以AB子集可以在左側(cè)數(shù)據(jù)區(qū)混合使用。右側(cè)數(shù)據(jù)區(qū)的條碼符號仍然使用C子集。為了保持EAN-13條碼與UPC-A條碼兼容,將左側(cè)數(shù)據(jù)區(qū)都為A子集排列的情況
定義為前置碼0,因此,UPC-A條碼也可以說是前置碼為0的EAN-13條碼。
如此就圓滿地解決了多出來的一位數(shù)字,又保持了條碼符號的統(tǒng)一。與UPC-A條碼不同的是,EAN-13規(guī)定左空白區(qū)為11個模塊寬,而右空白區(qū)為7個模塊寬,左邊多了兩個,右邊少了兩個,條碼符號的尺寸仍然與UPC-A保持一致。
本文來自:鄭州恒佑科技官網(wǎng),如需轉(zhuǎn)載,請注明出處 http://www./tech/CodeKown/Code/200911/4248.html |
|