PDF417二維條碼在嵌入式設備中的應用

發(fā)布時(shí)間:2010-11-16 16:01    發(fā)布者:eetech
關(guān)鍵詞: PDF417 , 二維 , 嵌入式 , 設備 , 條碼
介紹PDF417二維條碼的編碼、譯碼及糾錯的原理,并分析其在嵌入式設備上的軟硬件實(shí)現。其中譯碼部分是使用Symbol公司生產(chǎn)的SE923HS型號的掃描頭,編碼部分是用軟件來(lái)實(shí)現的。

二維條碼是不依賴(lài)計算機網(wǎng)絡(luò )和數據庫存儲、轉移信息的一種方法,是信息的另一種表示形式,是信息攜帶、信息自動(dòng)傳遞、信息防偽的理想手段。四一七條碼是應用最為成功的一種二維條碼,它的出現是條碼技術(shù)的一次革新。它以其高密度、高信息容量、糾錯能力強、成本低等特點(diǎn),廣泛應用于國際貿易、物流、工業(yè)、商業(yè)等領(lǐng)域,已經(jīng)取得了巨大的社會(huì )效益和經(jīng)濟效益。由于二維條碼的編碼和譯碼算法相對比較復雜,大部分應用是用臺式機打印出條碼,再通過(guò)掃描槍進(jìn)行解碼,通過(guò)RS232串口輸出數據;而在嵌入式設備上,對數據進(jìn)行二維條碼數據加密并不多見(jiàn)。本文提出一種在嵌入式設備上利用Symbol公司生產(chǎn)的SE923HS型號的掃描頭解碼數據,解碼后的數據和其它數據混合重新編碼的解決方案,可以適用于郵政、物流等行業(yè)。




1 二維條碼  

1.1 二維條碼的特性


  
PDF417二維條碼具有信息容量大、信息密度高、修正錯誤能力強、譯碼可靠性高、保密性強和容易印制等特點(diǎn)。  

四一七條碼的基本特性如圖1所示。一個(gè)PDF417條碼符號,可以將最多1848個(gè)字母字符或2729個(gè)數字字符或字母、數字混編字符進(jìn)行編碼。按照ISO標準的證卡格式,當PDF417條碼的窄條(模)寬為0.17mm 時(shí),使用PDF417條碼表卡片上所含的信息,條碼符號(包括周?chē)陌讌^)所占面積僅為76mm%26;#215;25mm。PDF417采用了目前世界上最先進(jìn)的錯誤修正技術(shù)。這種隱含子符號內的錯誤修正技術(shù),不僅可以有效地防止譯碼錯誤,提高譯碼的速度及可靠性,而且可以將由于條碼符號破損、沾污等丟失的信息破譯出來(lái)。錯誤修正可分為八個(gè)等級,錯誤修正為最高時(shí),可以將符號受損面積達50%的條碼符號所含信息復現出來(lái);PDF417可以把編碼信息按密碼格式進(jìn)行編碼,以防止偽造條碼符號或非法使用有關(guān)編碼的信息。因此,可以將數據量不大但非常重要的信息按照某種二維條碼的格式進(jìn)行編碼。  

本文是將二維條碼用在物品投遞過(guò)程中,即把物品的信息(如寄信人地址、姓名、身份證號,收信人地址、姓名、身份證號以及郵資等信息)制成二維條碼,打印出來(lái)貼在物品上,以便傳遞信息。通過(guò)掌上嵌入式的條碼識讀設備,對條碼進(jìn)行譯碼。在掌上嵌入式設備工作過(guò)程中,譯碼的信息可以和其它輸入的信息重新編碼,完成對數據再加密的過(guò)程。  

1.2 PDF417條碼的結構  

四一七條碼符號是一個(gè)多行結構。符號的頂部和底部為空白區。上下空白區之間為多行結構。每行數據符號字符數相同,行與行左右對齊直接銜接。其最小行數為3,最大行數為90,見(jiàn)圖1。每行構成如下:  

a) 左空白區;b)起始符;c) 左行指示符號字符;d) 1~30個(gè)數據符號字符;e)右行指示符號字符;f) 終止符;g)右空白區。





1.3 PDF417條碼的模式結構  

四一七條碼在編碼時(shí),首先對未編碼數據進(jìn)行壓縮。四一七條碼有三種數據壓縮模式:文本壓縮模式(TC)、字節壓縮模式(BC)、數字壓縮模式(NC)。每種模式結構對應不同的算法,通過(guò)應用模式鎖定/轉移(latch/shift)碼字,可在一個(gè)四一七條碼符號中應用一種或者多種模式表示數據。圖2為四一七條碼的模式切換圖,其中900、901/924、902分別對應TC、BC和NC的壓縮模式,913為L(cháng)atch/shift碼字。  

1.4 PDF417條碼的錯誤糾正等級  

四一七條碼的錯誤糾正等級可由用戶(hù)選擇。每種錯誤糾正等級所對應的錯誤糾正碼字數目為2的糾正等級次方。對于開(kāi)放式系統,不同數量的編碼數據所對應的錯誤糾正等級推薦值見(jiàn)表1。

表1 四一七條碼的推薦錯誤糾正等級  

數據碼字數
錯誤糾正等級

1~40
2

40~160
3

161~320
4

321~863
5

在四一七條碼符號容易損壞的場(chǎng)所,建議選用較高的錯誤糾正等級;在封閉系統中,可選用低于推薦錯誤糾正等級的錯誤糾正等級。  

2 硬件設計


  
2.1 硬件總體結構  

物流信息采集終端設計方案的結構框圖如圖3所示。設計方案的主要組成部分包括微處理器、掃描頭接口模塊(SE923HS)、液晶顯示及觸摸模塊以及外部的32KB RAM,還有電源模塊和微處理器監控模塊等其它模塊。  

2.2 SE923HS掃描頭及其接口設計  

掃描頭的主要功能是讀出二維條碼上的信息;在讀出信息的同時(shí),完成一定的解碼和糾錯功能。本課題采用SE923HS型號的掃描頭。它是Symbol公司生產(chǎn)的微型條碼讀入設備,可以對UPC/EAN、CODE128、CODE39和PDF417等條碼進(jìn)行譯碼。它能嵌入到用戶(hù)的設備中,完成數據采集的功能。SE923HS大小約為3cm3,通過(guò)12根引線(xiàn)和外界相連。表2給出了SE923HS的引腳說(shuō)明。  

根據表2給出的接口說(shuō)明,設計了SE923HS與微控制器的硬件接口,如圖4所示。

表2 SE923H的引腳說(shuō)明  

引  腳
引腳號
類(lèi)  型

功  能  解  釋  

FLASH_DWN
1
I
寫(xiě)SE923HS的Flash-ROM

VBATT
2
I
Power Supply:為SE923HS提供工作電壓

GND
3
I
Ground:地線(xiàn)

RXD
4
I
Received Data:串行輸入口

CTS
6
I
Clear to Send:串口握手線(xiàn)

AIM/WKUP
11
I
Wake Up:用持續1μs的低電平喚醒低電模式的SE923HS

TRIG
12
I
Trigger:硬件觸發(fā)線(xiàn),使SE923HS進(jìn)入掃描和譯碼

TXD
5
O
Transmitted Data:串口輸出口

RTS
7
O
Request to Send:串口輸出口

PWRDWN
8
O
Power Down Ready:高電平,表示Decoder處于掉電模式

BPR
9
O
Beeper:低電流Beeper輸出

DLED
10
O
Decode LED:電流LED輸出

3 譯碼和編碼的實(shí)現  

3.1 軟件總體流程


  
根據SE923HS與微控制器的接口圖,軟件總體上可分為掃描頭工作函數和中斷函數,流程如圖5和圖6所示。  

用SE923HS譯碼程序相對簡(jiǎn)單。首先,設置好SE923HS與W77E58通信的波特率。然后,打開(kāi)串口中斷,在需要掃描條碼時(shí)將P1.2置為低電平,進(jìn)入3s的延時(shí),掃描電機開(kāi)始工作。在延時(shí)時(shí)間內,掃描頭一直處于工作狀態(tài),掃描頭譯碼后的數據輸入至單片機產(chǎn)生串口中斷,在中斷函數中存儲譯碼后的信息。一般來(lái)說(shuō),SE923HS掃描頭有效工作1s后可以將紙質(zhì)的掃描譯碼完畢。P1.2置為高電平時(shí),掃描電機停止工作。  

對解碼后的數據進(jìn)行后期處理,將這些數據和其它需要重新加密的數據重新二維條碼編碼和糾錯,得到加密后的數據。這些數據可以通過(guò)RS232、USB或者藍牙發(fā)送給上位機作相應的處理。  

3.2 二維條碼編碼和糾錯  

在實(shí)際應用中,考慮到在應用中投遞物品信息組成和單片機處理速度,投遞物品上的信息多用漢字表示,且文本字符和數字的數量較少,所以可以只用字節壓縮模式(BC)對其進(jìn)行編碼。這樣可大大減小編譯碼的復雜性,并且對數據的壓縮率影響也不大。再有,由PDF417條碼標準規定,條碼符號的行數不超過(guò)90行,數據區列數不超過(guò)30列,所以最多可以編2700個(gè)碼字。糾錯碼最多512個(gè),那么數據碼最多可編2188個(gè)。但是由于PDF417條碼標準規定數據區第一個(gè)碼字表示數據區碼字的個(gè)數,這就限制了數據區碼字最多不超過(guò)928個(gè),也就是說(shuō)譯碼最多只能譯 928個(gè)碼字,沒(méi)有用到編碼數量的極限。當要編碼的數據較多時(shí),則可以作如下改動(dòng):采用2個(gè)碼字表示數據區碼字的個(gè)數,這樣就可以做到編碼個(gè)數的極限2188個(gè)碼字。因此在具體應用時(shí),根據情況靈活地運用PDF417條碼標準是很重要的。



  
為統一起見(jiàn),在編碼過(guò)程中只采用模式結構中的字節壓縮模式(BC),F簡(jiǎn)要介紹如下:  

字節壓縮模式通過(guò)基256至基900的轉換,將字節序列轉換為碼字序列。當所要表示的字節總數不是6的倍數時(shí),用模式鎖定901;當所要表示的字節總數是6的倍數時(shí),用模式鎖定924。在應用模式鎖定924的情況下,6個(gè)字節可通過(guò)基256至基900的轉換用5個(gè)碼字表示,從左到右進(jìn)行轉換。在應用模式鎖定901的情況下,每前6個(gè)字節的轉換方法與上述方法相同,對被6整除所剩余的字節應每個(gè)字節對應一個(gè)碼字,逐字節用碼字表示。具體編碼流程如圖7所示。  

四一七條碼采用Reed-Solomon錯誤控制算法(簡(jiǎn)稱(chēng)RS碼)對數據碼字進(jìn)行糾錯編碼和譯碼。RS碼是一類(lèi)可以糾正多個(gè)隨機錯誤的多進(jìn)制循環(huán)碼。對于一組給定的數據碼字,根據不同的碼字個(gè)數采用相應的糾錯等級,錯誤糾正碼字根據Reed-Solomon錯誤控制碼算法計算。  
對于一個(gè)給定的錯誤糾正等級,其錯誤糾正容量由下式確定:  




  
式中: e-拒讀錯誤數目; t-替代錯誤數目;  

s-錯誤糾正等級; d-錯誤糾正碼字數目。  

錯誤糾正碼字的總數為2s+1。其中,兩個(gè)用于錯誤檢測。其余的錯誤糾正碼字用于錯誤糾正。用一個(gè)錯誤糾正碼字恢復一個(gè)拒讀錯誤,用兩個(gè)錯誤糾正碼字糾正一個(gè)替代錯誤。  

當被糾正的替代錯誤數目小于4時(shí)(s=0除外),錯誤糾正容量由下式確定:  

e+2t ≤ d-3  

對于一組給定的數據碼字,錯誤糾正碼字根據RS錯誤控制碼算法計算。  

(1)建立符號數據多項式  




  
(2)建立糾正碼字的生成多項式  




  
(3)產(chǎn)生錯誤糾正碼字  

對一組給定的數據碼字和一選定的錯誤糾正等級,錯誤糾正碼字為符號數據多項式d(x)乘以xk,然后除以生成多項式g(x),所得為余式的各系數的補數。  

4 結 論  

本文提供了一種簡(jiǎn)單可行的PDF417二維條碼譯碼和編碼的方案。利用PDF417二維條碼具有信息容量大、編碼范圍廣、容錯能力強、譯碼可靠性高、保密防偽性好、成本低、條碼形狀和尺寸可變等優(yōu)點(diǎn),使SE923HS掃描頭和W77E58微控制器結合,成本低、可行性強。在小數據量(小于1000字節)和較低糾錯級別(5級以下)時(shí),編碼和糾錯時(shí)間在10s之內,處理速度優(yōu)勢明顯。
本文地址:http://selenalain.com/thread-39808-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页