複製鏈接
請複製以下鏈接發送給好友

EAN-13

鎖定
European Article Number (歐洲物品編碼的縮寫),其中共計13位代碼的EAN-13是比較通用的一般終端產品的條形碼協議和標準,主要應用於超級市場和其它零售業,因此這種是我們比較常見的,隨便拿起身邊的一個從超市買來的商品都可以從包裝上看得到。
中文名
EAN-13
外文名
European Article Number
全    稱
歐洲物品編碼
概    述
一般的終端產品條形碼協議和標準
結    構
左側空白區、起始符等組成
作用於
超級市場和其它零售業

EAN-13基本介紹

中華人民共和國可用的國家代碼有690-699,其中696-699尚未使用。生活中最常見的國家代碼為690-693,其中以690、691開頭時,廠商識別碼為四位,商品項目代碼為五位;以692、693開頭時,廠商識別碼是五位,商品項目代碼是四位。

EAN-13結構

圖1 EAN-13右側空白區“〉”的位置 圖1 EAN-13右側空白區“〉”的位置
如圖1所示,EAN-13商品條碼是表示EAN/UCC-13商品標識代碼的條碼符號,由左側空白區、起始符、左側數據符、中間分隔符、右側數據符、校驗符、終止符、右側空白區及供人識別字符組成。
左側空白區:位於條碼符號最左側與空的反射率相同的區域,其最小寬度為11個模塊寬。
起始符:位於條碼符號左側空白區的右側,表示信息開始的特殊符號,由3個模塊組成。
左側數據符:位於起始符右側,表示6位數字信息的一組條碼字符,由42個模塊組成。
中間分隔符:位於左側數據符的右側,是平分條碼字符的特殊符號,由5個模塊組成。
右側數據符:位於中間分隔符右側,表示5位數字信息的一組條碼字符,由35個模塊組成。校驗符:位於右側數據符的右側,表示校驗碼的條碼字符,由7個模塊組成。
終止符:位於條碼符號校驗符的右側,表示信息結束的特殊符號,由3個模塊組成。
右側空白區:位於條碼符號最右側的與空的反射率相同的區域,其最小寬度為7個模塊寬。為保護右側空白區的寬度,可在條碼符號右下角加“>”符號。
供人識讀字符:位於條碼符號的下方,是與條碼字符相對應的供人識別的13位數字,最左邊一位稱前置碼。供人識別字符優先選用OCR-B字符集,字符頂部和條碼底部的最小距離為0.5個模塊寬。標準版商品條碼中的前置碼印製在條碼符號起始符的左側。

EAN-13字符集

數據字符
條碼字符的構成 條碼字符的構成
包括EAN-13在內的商品條碼,每一條碼數據字符由2個條和2個空構成,每一條或空由1~4個模塊組成,每一條碼字符的總模塊數為7。用二進制“1”表示條的模塊,用二進制“0”表示空的模塊。
商品條碼可表示10個數字字符:0~9。
條碼的二進制表示方法有三個子集:A、B和C。
數字字符
A 子集
B 子集
C 子集
0
0001101
0100111
1110010
1
0011001
0110011
1100110
2
0010011
0011011
1101100
3
0111101
0100001
1000010
4
0100011
0011101
1011100
5
0110001
0111001
1001110
6
0101111
0000101
1010000
7
0111011
0010001
1000100
8
0110111
0001001
1001000
9
0001011
0010111
1110100
1. A子集中條碼字符所包含的條的模塊的個數為奇數,稱為奇排列;
2. B、C子集中條碼字符所包含的條的模塊的個數為偶數,稱為偶排列。
商品條碼的輔助字符
商品條碼起始符、終止符、中間分隔符示意圖 商品條碼起始符、終止符、中間分隔符示意圖
商品條碼起始符、終止符的二進制表示都為“101”(UPC-E的終止符例外),中間分隔符的二進制表示為“01010”(UPC-E的無中間分隔符。

EAN-13EAN-13商品條碼數據符

EAN-13商品條碼中的前置碼不用條碼字符表示,不包括在左側數據符內。右側數據符及校驗符均用字符集中的C子集表示。選用A子集還是B子集表示左側數據符取決於前置碼的數值。下表中列出了左側數據符的字符集的選擇規則:
前置碼
左1
左2
左3
左4
左5
左6
0
A
A
A
A
A
A
1
A
A
B
A
B
B
2
A
A
B
B
A
B
3
A
A
B
B
B
A
4
A
B
A
A
B
B
5
A
B
B
A
A
B
6
A
B
B
B
A
A
7
A
B
A
B
A
B
8
A
B
A
B
B
A
9
A
B
B
A
B
A

EAN-13EAN-13商品條碼校驗符

EAN-13商品條碼中的校驗符用字符集中的C子集表示,校驗符的作用是檢驗前面12個數字是否正確,在條碼機每次讀入數據時,都會計算一次數據符的校驗並與校驗符進行比對。校驗符的計算方法非常簡單,將12個數據符從左起將所有的奇數位相加得出一個數a,將所有的偶數位相加得出一個數b,然後將數b乘以3再與a相加得到數c,用10減去數c的個位數,如果結果不為10則檢驗符為結果本身,如果為10則檢驗符為0。
示例
例如:690123456789
690表示商品代碼:日用品
1234表示生產商代碼
56789表示產品代碼
計算其校驗符的過程為:
奇數位和:6 + 0 + 2 + 4 + 6 + 8 = 26
偶數位和:9 + 1+ 3 + 5 + 7 + 9 = 34
將奇數位和與偶數位和的三倍相加:26 + 34 * 3 = 26 + 102=128
取結果的個位數:128的個位數為8
用10減去這個個位數:10 - 8 =2
所以校驗碼為2
(注:如果取結果的個位數為0,那麼校驗碼不是為10 (10 - 0 = 10),而是0。)
前置碼:6
左側數據符:901234,按ABBBAA子集方式繪製條碼
右側數據符:567892,按CCCCCC子集方式繪製條碼
用條碼錶示:
左側空白區(11個模塊)
起始符(3個模塊):101
左側數據符(42個模塊):0001011(9)0100111(0)0110011(1)0011011(2)0111101(3)0100011(4)
中間分隔符(5個模塊):01010
右側數據符(42個模塊):1001110(5)1010000(6)1000100(7)1001000(8)1110100(9)1101100(2)
自制條形碼 自制條形碼
結束符(3個模塊):101右側空白區(7個模塊):0000000
畫出這個條碼

EAN-13EAN字符集編碼表

圖2 圖2
這個表説明了EAN-13條碼中的每個數位應該如何編碼,這要取決於這個數位位於條碼的哪半邊(左邊還是右邊)。在這種情況下,一個左手邊數位的編碼(奇數性還是偶數性)將取決於數制碼的第一個數位的值(見圖2中奇偶性編碼)。
觀察發現:
一個EAN-13字符使用7個元素來描述,包含2個條和2個空間。任何條或空間的長度都不會超過4個元素。唯一的例外情況就是左警戒條和右警戒條(都是3個元素)以及中間警戒條(5個元素長)。
條碼左手邊的所有字符總是以0(空間)開始的,而條碼右手邊的所有字符都是以1(條)開始的。
如果把1變成0,把0變成1,那麼“右手邊”編碼模式和“左手邊奇數”編碼模式是完全相同的。
“左手邊偶數”編碼模式是基於“左手邊奇數”編碼模式的。為了得到偶數編碼,可以按照如下步驟對左手邊編碼模式進行操作:1)把所有的1變成0,0變成1。2)將得到的結果編碼反着讀(從右到左)就得到了“左手邊偶數”編碼模式 [1] 

EAN-13EAN奇偶性編碼表

圖3 圖3
下表説明了條碼左手邊每個字符按照哪種奇偶性進行編碼。奇偶性取決於EAN-13值得第一個數位。例如,我們的CD的EAN-13值是0075678164125。在這個條碼中,數制碼的第一個數位就是第一個“0”,所以,奇偶性就應該遵循下表中的數字0一行:
觀察得到:
第二個數制位總是按照奇數性進行編碼(這在解碼時很重要)。
一個UPC-A條碼的第一個數制位總是0,因此,全部使用奇數性。實際上,任何第一個數值位是0的EAN-13幅好其實是一個UPC-A符號,而不是一個EAN-13符號。
所有EAN-13符號(那些第一個數制位不是0的)始終有3個左手邊字符采用偶數性編碼,有2個採用奇數性編碼。
最後那兩個表是EAN-13編碼的關鍵和核心,並且兼容現有的UPC-A符號。
編碼示例
這個例子將對值“7501031311309”進行EAN-13編碼。“75”是數制,“01031”是廠商碼,“31130”是產品碼(“9”是校驗位,在本例中我們還是要進行計算)。這是墨西哥的12盎司一聽的百事可樂上的條碼。
圖4 圖4
首先,我們計算校驗位(如圖4):
計算加權和7+15+0+3+9+1+9+1+3+3+0=51。我們需要給51加上9以保證能整除10(51+9=60),因此,校驗位就是9。這和我們在條碼後面看到的那個“9”是一致的,説明我們計算對了。
接下來,我們觀察數制碼的第一個數位(條碼中最左邊的那個數位)是數字“7”。參照奇偶性編碼表中的數字“7”,我們可以知道第二個數制位和廠商碼應該按照“奇/偶/奇/偶/奇/偶”的模式進行編碼。這就是説第二個數制位將按照“左手邊奇數”性表進行編碼,廠商碼的第一個數位應該按照“左手邊偶數”性編碼的,等等。現在,我們可以按照如下步驟來編制條碼。之後將所有字符串連接起來就構成了最終的條碼。
  1. 左警戒條(總是相同的):101.
  2. 第二數制位[5]:按照左手邊奇數性進行編碼,0110001.
  3. 廠商碼第1個數位[0]:按照左手邊偶數性進行編碼,0100111.
  4. 廠商碼第2個數位[1]:按照左手邊奇數性進行編碼,0011001.
  5. 廠商碼第3個數位[0]:按照左手邊偶數性進行編碼,0100111.
  6. 廠商碼第4個數位[3]:按照左手邊奇數性進行編碼,0111101.
  7. 廠商碼第5個數位[1]:按照左手邊偶數性進行編碼,0110011.
  8. 中間警戒條(總是相同的):01010.
  9. 產品碼第1個數位[3]:按照右手邊字符進行編碼,1000010.
  10. 產品碼第2個數位[1]:按照右手邊字符進行編碼,1100110.
  11. 產品碼第3個數位[1]:按照右手邊字符進行編碼,1100110.
  12. 產品碼第4個數位[3]:按照右手邊字符進行編碼,1000010.
  13. 產品碼第5個數位[0]:按照右手邊字符進行編碼,1110010.
  14. 校驗位[9]:按照右手邊字符進行編碼,1110100.
  15. 右邊警戒條(總是相同的):101.
記住,一個“1”代表一個條,一個“0”代表一個空間。因此,我們可以將這個數字字符串轉換成他們的圖形表示形式,最終我們可以得到如下條形碼:
圖5 圖5
參考資料
  • 1.    徐益峯, 金晅宏, 戴曙光. 基於EAN-13條形碼識別的改進算法[J]. 計算機與數字工程, 2011, 39(7):133-137.