條形碼

條形碼或稱條形碼（barcode），是將寬度不等的多個黑條和空白，按照一定的編碼規則排列，用以表達一組資訊的圖形標識符。常見的條形碼是由反射率相差很大的黑條（簡稱條）和白條（簡稱空）排成的平行線圖案。條形碼可以標出物品的生產國、製造廠家、商品名稱、生產日期、圖書分類號、郵件起止地點、類別、日期等資訊，因而在商品流通、圖書管理、郵政管理、銀行系統等許多領域都得到了廣泛的應用。

## 條碼的識別原理

要將按照一定規則編譯出來的條形碼轉換成有意義的資訊，需要經歷掃描和解碼兩個過程。物體的顏色是由其反射光的類型決定的，白色物體能反射各種波長的可見光，黑色物體則吸收各種波長的可見光，所以當條形碼掃描器光源發出的光在條形碼上反射後，反射光照射到條碼掃描器內部的光電轉換器上，光電轉換器根據強弱不同的反射光信號，轉換成相應的電信號。根據原理的差異，掃描器可以分為光筆、CCD、雷射三種。電信號輸出到條碼掃描器的放大電路增強信號之後，再送到整形電路將模擬信號轉換成數位訊號。白條、黑條的寬度不同，相應的電信號持續時間長短也不同。然後解碼器通過測量脈衝數字電信號0、1的數目來判別條和空的數目，通過測量0、1信號持續的時間來判別條和空的寬度。此時所得到的數據仍然是雜亂無章的，要知道條形碼所包含的資訊，則需根據對應的編碼規則（例如：EAN-8碼），將條形符號換成相應的數字、字符資訊。最後，由電腦系統進行數據處理與管理，物品的詳細資訊便被識別了。

### 條形碼的掃描

條形碼的掃描需要掃描器，掃描器利用自身光源照射條形碼，再利用光電轉換器接受反射的光線，將反射光線的明暗轉換成數位訊號。不論是採取何種規則印製的條形碼，都由靜區、起始字符、數據字符與終止字符組成。有些條碼在數據字符與終止字符之間還有校驗字符。

- 靜區：顧名思義，不攜帶任何資訊的區域，起提示作用。
- 起始字符：第一位字符，具有特殊結構，當掃描器讀取到該字符時，便開始正式讀取代碼了。
- 數據字符：條形碼的主要內容。
- 校驗字符：檢驗讀取到的數據是否正確。不同編碼規則可能會有不同的校驗規則。
- 終止字符：最後一位字符，一樣具有特殊結構，用於告知代碼掃描完畢，同時還起到只是進行校驗計算的作用。

為了方便雙向掃描，起止字符具有不對稱結構。因此掃描器掃描時可以自動對條碼資訊重新排列。

條碼掃描器有光筆、CCD、雷射三種：

- 光筆：最原始的掃描方式，需要手動移動光筆，並且光筆筆尖部分需要與條形碼直接接觸。
- CCD：以CCD作為光電轉換器，LED作為發光光源的掃描器。在一定範圍內，可以實現自動掃描。並且可以閱讀各種材料、不平表面上的條碼，成本也較為低廉。但是與雷射式相比，掃描距離較短。
- 雷射：以雷射作為發光源的掃描器。又可分為線型、全角度等幾種。
- 線型：多用於手持式掃描器，範圍遠，準確性高。
- 全角度：多為臥式，自動化程度高，在各種方向上都可以自動讀取條碼。

### 條碼的優越性

- 可靠性強。條形碼的讀取準確率遠遠超過人工記錄，平均每15000個字符才會出現一個錯誤。
- 效率高。條形碼的讀取速度很快，相當於每秒40個字符。
- 成本低。與其它自動化識別技術相比較，條形碼技術僅僅需要一小張貼紙和相對構造簡單的光學掃描儀，成本相當低廉。
- 易於製作。條形碼的編寫很簡單，製作也僅僅需要印刷，被稱作為「可印刷的電腦語言」。
- 易於操作。條形碼識別設備的構造簡單，使用方便。
- 靈活實用。條形碼符號可以手工鍵盤輸入，也可以和有關設備組成識別系統實現自動化識別，還可和其他控制設備聯繫起來實現整個系統的自動化管理。

## 條形碼的發展歷史

- 1949年美國人諾曼·伍德蘭（Norman Joseph Woodland）和伯納德·西爾弗（Bernard Silver）申請了用於食品自動識別領域的環形條形碼（公牛眼）。
- 1963年在1963年10月號《控制工程》雜誌上刊登了描述各種條形碼技術的文章。
- 1967年美國辛辛那提的一家KROGER超市首先使用條形碼掃描器。
- 1969年比利時郵政業採用用螢光條形碼表示信函投遞點的郵政編碼。
- 1970年美國成立UCC；美國郵政局採用長短形條形碼表示信函的郵政編碼。
- 1971年歐洲的一些圖書館採用Plessey碼。
- 1972年美國人蒙那奇·馬金（Monarch Marking）研製出庫德巴碼，同年交叉25碼被開發出來。
- 1973年美國統一編碼協會（簡稱UCC）在IBM公司的條碼系統基礎上建立了通用產品代碼（UPC）系統，並且實現了該碼制標準化。
- 1974年美國Intermec公司的戴維·阿利爾（Davide·Allair）博士研製出39碼。
- 1977年歐洲共同體在UPC-A基礎上制定出歐洲物品編碼EAN-13碼和EAN-8碼，簽署了歐洲商品編碼（EAN）協議備忘錄，並且成立了歐洲物品編碼協會。
- 1978年日本在EAN的基礎上開發出日本商品條碼（JAN）。
- 1980年美國國防部採納39碼作為軍事編碼。
- 1981年歐洲物品編碼協會改組為國際物品編碼協會（IAN）；實現自動識別的條形碼解碼技術；128碼被推薦使用。
- 1982年手持式雷射條形碼掃描器實用化；美國軍用標準military標準1189被採納；93碼開始使用。
- 1983年美國制定了ANSI標準MH10.8M，包括交叉25碼、39碼和庫德巴碼。
- 1987年美國人David Allairs博士提出49碼。
- 1988年可見雷射二極體研製成功；美國的Ted Willians提出適合雷射系統識讀的16K碼。
- 2005年EAN更名為GS1。

## 條碼類型

### 線性條碼

第一代，「一維」的條碼是由線條和空間的各種寬度，創建特定的模式。

例如｜符號｜Continuous or discrete｜條紋寬度｜用途

澳大利亞郵政條碼｜Discrete｜4 bar heights｜一個澳大利亞郵政條碼作為一個商業上的答覆付費信封。

Codabar｜Discrete｜Two｜在圖書館和血庫和airbills使用的舊格式（過時）

Code 25 – Non-interleaved 2 of 5｜Continuous｜Two｜產業

Code 25 – Interleaved 2 of 5｜Continuous｜Two｜批發，圖書館國際標準ISO / IEC 16390

Code11｜Discrete｜Two｜電話（過時）

Farmacode or Code 32｜Discrete｜Two｜義大利 Pharmacode 成為-使用代碼39 （無國際標準）

Code39｜Discrete｜Two｜其他 - 國際標準ISO / IEC 16388

Code49｜Continuous｜Many｜各個

Code93｜Continuous｜Many｜各個

Code128｜Continuous｜Many｜其他 - 國際標準ISO / IEC 15417

CPC Binary｜Discrete｜Two

DX film edge barcode｜Neither｜Tall/short｜Color print film

EAN-2｜Continuous｜Many｜插件代碼（雜誌）， GS1 -approved -不是自己的符號-要只用一個EAN / UPC根據ISO / IEC 15420使用

EAN-5｜Continuous｜Many｜插件代碼（書）， GS1 -approved -不是自己的符號-要只用一個EAN / UPC根據ISO / IEC 15420使用

EAN-8, 歐洲商品條碼｜Continuous｜Many｜全球零售， GS1 -approved -國際標準ISO / IEC 15420

EAN-13, 歐洲商品條碼｜Continuous｜Many｜全球零售， GS1 -approved -國際標準ISO / IEC 15420

Facing Identification Mark｜Discrete｜Two｜美國郵政業務回復郵件

GS1-128（前身為UCC/ EAN-128），誤稱為EAN·UCC的128和128構僅僅是128碼（ISO/ IEC15417）的應用。｜Continuous｜Many｜各種，GS1批准 - 只是應用程序代碼128（ISO/ IEC15417）使用和mh10.8.2 AI的數據結構它不是一個獨立的符號

GS1的的 DataBar 的前身縮減碼（RSS）｜Continuous｜Many｜各種，GS1批准

Intelligent Mail barcode｜Discrete｜4 bar heights｜美國郵政服務，取代了 POSTNET 和 PLANET 符號（原名 OneCode）

ITF-14｜Continuous｜Two｜非零售包裝的水平，GS1批准-僅僅是一個交錯2/5碼（ISO/ IEC16390）和一些額外的規格，根據GS1通用規範

JAN｜Continuous｜Many｜用於日本，類似和兼容EAN-13（ISO/ IEC15420）

日本郵政條碼 barcode｜Discrete｜4 bar heights｜日本郵政

KarTrak ACI｜Discrete｜Coloured bars｜用於在北美鐵路車輛裝備

MSI｜Continuous｜Two｜用於倉庫貨架和庫存

Pharmacode｜Discrete｜Two｜藥品包裝（無國際標準）

PLANET｜Continuous｜Tall/short｜美國郵政服務（無國際標準）

Plessey｜Continuous｜Two｜產品目錄，商店的貨架，庫存（無國際標準）

PostBar｜Discrete｜4 bar heights｜加拿大郵局

POSTNET｜Discrete｜Tall/short｜美國郵政服務（無國際標準）

RM4SCC / KIX｜Discrete｜4 bar heights｜皇家郵政/PostNL

RM Mailmark C｜Discrete｜4 bar heights｜皇家郵政

RM Mailmark L｜Discrete｜4 bar heights｜皇家郵政

Telepen｜Continuous｜Two｜圖書館（英國）

通用產品代碼｜Continuous｜Many｜全球零售，-GS1批准的國際標準ISO/ IEC15420

### 矩陣（二維）條形碼

矩陣碼，也被稱為二維條碼或二維碼，是一種以二維矩陣呈現數字資訊的方式。它類似於線性（一維）條碼，但可以表示更多數據。