關鍵詞:PDF417 二維條碼編碼譯碼 嵌入式設備
引 言
??二維條碼是不依賴計算機網(wǎng)絡和數(shù)據(jù)庫存儲、轉移信息的一種方法,是信息的另一種表示形式,是信息攜帶、信息自動傳遞、信息防偽的理想手段。四一七條碼是應用最為成功的一種二維條碼,它的出現(xiàn)是條碼技術的一次革新。它以其高密度、高信息容量、糾錯能力強、成本低等特點,廣泛應用于國際貿易、物流、工業(yè)、商業(yè)等領域,已經(jīng)取得了巨大的社會效益和經(jīng)濟效益。由于二維條碼的編碼和譯碼算法相對比較復雜,大部分應用是用臺式機打印出條碼,再通過掃描槍進行解碼,通過RS232串口輸出數(shù)據(jù);而在嵌入式設備上,對數(shù)據(jù)進行二維條碼數(shù)據(jù)加密并不多見。本文提出一種在嵌入式設備上利用Symbol公司生產(chǎn)的SE923HS型號的掃描頭解碼數(shù)據(jù),解碼后的數(shù)據(jù)和其它數(shù)據(jù)混合重新編碼的解決方案,可以適用于郵政、物流等行業(yè)。
1 二維條碼
1.1 二維條碼的特性
PDF417二維條碼具有信息容量大、信息密度高、修正錯誤能力強、譯碼可靠性高、保密性強和容易印制等特點。
四一七條碼的基本特性如圖1所示。一個PDF417條碼符號,可以將最多1848個字母字符或2729個數(shù)字字符或字母、數(shù)字混編字符進行編碼。按照ISO標準的證卡格式,當PDF417條碼的窄條(模)寬為0.17mm 時,使用PDF417條碼表卡片上所含的信息,條碼符號(包括周圍的白區(qū))所占面積僅為76mm×25mm。PDF417采用了目前世界上最先進的錯誤修正技術。這種隱含子符號內的錯誤修正技術,不僅可以有效地防止譯碼錯誤,提高譯碼的速度及可靠性,而且可以將由于條碼符號破損、沾污等丟失的信息破譯出來。錯誤修正可分為八個等級,錯誤修正為最高時,可以將符號受損面積達50%的條碼符號所含信息復現(xiàn)出來;PDF417可以把編碼信息按密碼格式進行編碼,以防止偽造條碼符號或非法使用有關編碼的信息。因此,可以將數(shù)據(jù)量不大但非常重要的信息按照某種二維條碼的格式進行編碼。
本文是將二維條碼用在物品投遞過程中,即把物品的信息(如寄信人地址、姓名、身份證號,收信人地址、姓名、身份證號以及郵資等信息)制成二維條碼,打印出來貼在物品上,以便傳遞信息。通過掌上嵌入式的條碼識讀設備,對條碼進行譯碼。在掌上嵌入式設備工作過程中,譯碼的信息可以和其它輸入的信息重新編碼,完成對數(shù)據(jù)再加密的過程。
1.2 PDF417條碼的結構
四一七條碼符號是一個多行結構。符號的頂部和底部為空白區(qū)。上下空白區(qū)之間為多行結構。每行數(shù)據(jù)符號字符數(shù)相同,行與行左右對齊直接銜接。其最小行數(shù)為3,最大行數(shù)為90,見圖1。每行構成如下:
a) 左空白區(qū);b)起始符;c) 左行指示符號字符;d) 1~30個數(shù)據(jù)符號字符;e)右行指示符號字符;f) 終止符;g)右空白區(qū)。
1.3 PDF417條碼的模式結構
四一七條碼在編碼時,首先對未編碼數(shù)據(jù)進行壓縮。四一七條碼有三種數(shù)據(jù)壓縮模式:文本壓縮模式(TC)、字節(jié)壓縮模式(BC)、數(shù)字壓縮模式(NC)。每種模式結構對應不同的算法,通過應用模式鎖定/轉移(latch/shift)碼字,可在一個四一七條碼符號中應用一種或者多種模式表示數(shù)據(jù)。圖2為四一七條碼的模式切換圖,其中900、901/924、902分別對應TC、BC和NC的壓縮模式,913為Latch/shift碼字。
1.4 PDF417條碼的錯誤糾正等級
四一七條碼的錯誤糾正等級可由用戶選擇。每種錯誤糾正等級所對應的錯誤糾正碼字數(shù)目為2的糾正等級次方。對于開放式系統(tǒng),不同數(shù)量的編碼數(shù)據(jù)所對應的錯誤糾正等級推薦值見表1。
表1 四一七條碼的推薦錯誤糾正等級
| 數(shù)據(jù)碼字數(shù) | 錯誤糾正等級 |
| 1~40 | 2 |
| 40~160 | 3 |
| 161~320 | 4 |
| 321~863 | 5 |
在四一七條碼符號容易損壞的場所,建議選用較高的錯誤糾正等級;在封閉系統(tǒng)中,可選用低于推薦錯誤糾正等級的錯誤糾正等級。
2 硬件設計
2.1 硬件總體結構[1]
物流信息采集終端設計方案的結構框圖如圖3所示。設計方案的主要組成部分包括微處理器、掃描頭接口模塊(SE923HS)、液晶顯示及觸摸模塊以及外部的32KB RAM,還有電源模塊和微處理器監(jiān)控模塊等其它模塊。
2.2 SE923HS掃描頭及其接口設計[2]
掃描頭的主要功能是讀出二維條碼上的信息;在讀出信息的同時,完成一定的解碼和糾錯功能。本課題采用SE923HS型號的掃描頭。它是Symbol公司生產(chǎn)的微型條碼讀入設備,可以對UPC/EAN、CODE128、CODE39和PDF417等條碼進行譯碼。它能嵌入到用戶的設備中,完成數(shù)據(jù)采集的功能。SE923HS大小約為3cm3,通過12根引線和外界相連。表2給出了SE923HS的引腳說明。
根據(jù)表2給出的接口說明,設計了SE923HS與微控制器的硬件接口,如圖4所示。
表2 SE923H的引腳說明
| 引 腳 | 引腳號 | 類 型 | 功 能 解 釋 |
| FLASH_DWN | 1 | I | 寫SE923HS的Flash-ROM |
| VBATT | 2 | I | Power Supply:為SE923HS提供工作電壓 |
| GND | 3 | I | Ground:地線 |
| RXD | 4 | I | Received Data:串行輸入口 |
| CTS | 6 | I | Clear to Send:串口握手線 |
| AIM/WKUP | 11 | I | Wake Up:用持續(xù)1μs的低電平喚醒低電模式的SE923HS |
| TRIG | 12 | I | Trigger:硬件觸發(fā)線,使SE923HS進入掃描和譯碼 |
| 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 譯碼和編碼的實現(xiàn)
3.1 軟件總體流程
根據(jù)SE923HS與微控制器的接口圖,軟件總體上可分為掃描頭工作函數(shù)和中斷函數(shù),流程如圖5和圖6所示。
用SE923HS譯碼程序相對簡單。首先,設置好SE923HS與W77E58通信的波特率。然后,打開串口中斷,在需要掃描條碼時將P1.2置為低電平,進入3s的延時,掃描電機開始工作。在延時時間內,掃描頭一直處于工作狀態(tài),掃描頭譯碼后的數(shù)據(jù)輸入至單片機產(chǎn)生串口中斷,在中斷函數(shù)中存儲譯碼后的信息。一般來說,SE923HS掃描頭有效工作1s后可以將紙質的掃描譯碼完畢。P1.2置為高電平時,掃描電機停止工作。
對解碼后的數(shù)據(jù)進行后期處理,將這些數(shù)據(jù)和其它需要重新加密的數(shù)據(jù)重新二維條碼編碼和糾錯,得到加密后的數(shù)據(jù)。這些數(shù)據(jù)可以通過RS232、USB或者藍牙發(fā)送給上位機作相應的處理。
3.2 二維條碼編碼和糾錯
在實際應用中,考慮到在應用中投遞物品信息組成和單片機處理速度,投遞物品上的信息多用漢字表示,且文本字符和數(shù)字的數(shù)量較少,所以可以只用字節(jié)壓縮模式(BC)對其進行編碼。這樣可大大減小編譯碼的復雜性,并且對數(shù)據(jù)的壓縮率影響也不大。再有,由PDF417條碼標準規(guī)定,條碼符號的行數(shù)不超過90行,數(shù)據(jù)區(qū)列數(shù)不超過30列,所以最多可以編2700個碼字。糾錯碼最多512個,那么數(shù)據(jù)碼最多可編2188個。但是由于PDF417條碼標準規(guī)定數(shù)據(jù)區(qū)第一個碼字表示數(shù)據(jù)區(qū)碼字的個數(shù),這就限制了數(shù)據(jù)區(qū)碼字最多不超過928個,也就是說譯碼最多只能譯 928個碼字,沒有用到編碼數(shù)量的極限。當要編碼的數(shù)據(jù)較多時,則可以作如下改動:采用2個碼字表示數(shù)據(jù)區(qū)碼字的個數(shù),這樣就可以做到編碼個數(shù)的極限2188個碼字。因此在具體應用時,根據(jù)情況靈活地運用PDF417條碼標準是很重要的。
為統(tǒng)一起見,在編碼過程中只采用模式結構中的字節(jié)壓縮模式(BC)?,F(xiàn)簡要介紹如下:
字節(jié)壓縮模式通過基256至基900的轉換,將字節(jié)序列轉換為碼字序列。當所要表示的字節(jié)總數(shù)不是6的倍數(shù)時,用模式鎖定901;當所要表示的字節(jié)總數(shù)是6的倍數(shù)時,用模式鎖定924。在應用模式鎖定924的情況下,6個字節(jié)可通過基256至基900的轉換用5個碼字表示,從左到右進行轉換。在應用模式鎖定901的情況下,每前6個字節(jié)的轉換方法與上述方法相同,對被6整除所剩余的字節(jié)應每個字節(jié)對應一個碼字,逐字節(jié)用碼字表示。具體編碼流程如圖7所示。
四一七條碼采用Reed-Solomon錯誤控制算法(簡稱RS碼)對數(shù)據(jù)碼字進行糾錯編碼和譯碼。RS碼是一類可以糾正多個隨機錯誤的多進制循環(huán)碼。對于一組給定的數(shù)據(jù)碼字,根據(jù)不同的碼字個數(shù)采用相應的糾錯等級,錯誤糾正碼字根據(jù)Reed-Solomon錯誤控制碼算法計算。
對于一個給定的錯誤糾正等級,其錯誤糾正容量由下式確定:
![]()
式中: e-拒讀錯誤數(shù)目; t-替代錯誤數(shù)目;
s-錯誤糾正等級; d-錯誤糾正碼字數(shù)目。
錯誤糾正碼字的總數(shù)為2s+1。其中,兩個用于錯誤檢測。其余的錯誤糾正碼字用于錯誤糾正。用一個錯誤糾正碼字恢復一個拒讀錯誤,用兩個錯誤糾正碼字糾正一個替代錯誤。
當被糾正的替代錯誤數(shù)目小于4時(s=0除外),錯誤糾正容量由下式確定:
e+2t ≤ d-3
對于一組給定的數(shù)據(jù)碼字,錯誤糾正碼字根據(jù)RS錯誤控制碼算法計算。
(1)建立符號數(shù)據(jù)多項式
![]()
(2)建立糾正碼字的生成多項式
![]()
(3)產(chǎn)生錯誤糾正碼字
對一組給定的數(shù)據(jù)碼字和一選定的錯誤糾正等級,錯誤糾正碼字為符號數(shù)據(jù)多項式d(x)乘以xk,然后除以生成多項式g(x),所得為余式的各系數(shù)的補數(shù)。
注:解碼、編碼和糾錯程序見本刊網(wǎng)站www.dpj.com.cn。
圖7
4 結 論
本文提供了一種簡單可行的PDF417二維條碼譯碼和編碼的方案。利用PDF417二維條碼具有信息容量大、編碼范圍廣、容錯能力強、譯碼可靠性高、保密防偽性好、成本低、條碼形狀和尺寸可變等優(yōu)點,使SE923HS掃描頭和W77E58微控制器結合,成本低、可行性強。在小數(shù)據(jù)量(小于1000字節(jié))和較低糾錯級別(5級以下)時,編碼和糾錯時間在10s之內,處理速度優(yōu)勢明顯。
- PDF4(5672)
PDF417二維條形碼的讀取和識別技術
二維碼軟件中制作Dot Code二維碼的步驟
二維碼高拍儀(睿智微電子)
在二維碼軟件中制作含GS1應用標識符的data Matrix二維碼的操作步驟
嵌入式掃描模組在智能門禁系統(tǒng)的應用是什么
[原創(chuàng)]Honeywell Xenon 1900手持式二維影像掃描器
[原創(chuàng)]Honeywell Xenon 1902gHD無線二維影像掃描器
一個基本完整的QR DataMatrix PDF417 和Barcode的識別程序,稍微修改就可以用在工程里面
單片機顯示二維碼的原理及實現(xiàn)
可變條碼打印軟件中實現(xiàn)二維碼數(shù)據(jù)換行的操作方法
如何識別單片機嵌入式二維碼解碼
天波智能云TPM300嵌入式二維碼讀頭
二維條碼技術在航材保障中的應用研究
16二維條碼的識別方法
40二維條碼技術在路橋ETC系統(tǒng)中的應用
28基于EVP-6100嵌入式多媒體處理機的二維條碼識別系統(tǒng)
14基于DSP的PDF417快速解碼終端的設計與實現(xiàn)
26北京元泰推出手機掃描二維條碼技術
1093DSP的PDF417快速解碼終端的設計與實現(xiàn)
1659
PDF417條碼特點及應用
2181PDF417二維條碼的編碼技術
0二維條碼的編解碼及系統(tǒng)實現(xiàn)
0基于VC++的二維條碼PDF417編解碼系統(tǒng)設計
0基于ARM的二維條碼識別與語音播報研究
0智能化訪客管理,二維碼在智能訪客機中的應用
1316ATK QR二維碼和條碼識別庫的模塊資料和使用C語言代碼合集免費下載
21立功科技嵌入式平臺“軟”實力——二維碼算法篇
1988
智能醫(yī)療的解決方案——PDF417二維條碼
1052嵌入式二維條碼識讀模組LV3296在手持設備配套中的應用
2454采用LV4500i二維碼掃描器的應用集成解決方案
2096NLS-EM25二維碼掃描模組形象,二維掃描模組適合哪些場所應用
3103讀取二維碼掃描設備有哪些類型
5188面試裝逼指南——嵌入式二維碼識別
21LV4300Pro二維碼模組卓越條碼讀取性能,為各類終端帶來優(yōu)秀掃碼體驗
1215
LV5300嵌入式二維碼掃碼頭,可應用于各類終端中掃碼使用,快速掃碼
1426
遠景達LV4500R二維碼掃碼模組有哪些嵌入式應用?
1740
掃碼頭、條碼識別模塊、二維條碼掃描模塊在物聯(lián)網(wǎng)領域中的應用
1524
嵌入式掃碼器與固定式掃描器,讀取條碼高效可靠
2613
二維碼掃描器是干嘛用的?嵌入式二維碼掃描器作用有哪些?
2411
二維碼模組用途廣泛 精準高效識別和讀取條碼、二維碼
2068
二維碼掃碼讀頭有什么功能?如何選擇二維碼讀頭?
2702
二維碼掃描模塊嵌入掃碼口,讓自助設備更加便捷化、智能化
1811
深圳遠景達專注二維碼掃描模塊,支持二維碼模塊定制
1357
條碼識讀器支持嵌入式應用,了解幾款高性價比的嵌入式二維條碼識讀器
1678
嵌入式掃碼模塊,深圳遠景達推出超小型二維條碼掃描模塊
1602
二維掃描模組,“二維條碼掃描模組”讓掃碼讀碼更加高效、順暢
1778
內嵌式二維碼識別模組,LV3298條碼識讀模塊有什么獨特亮點?
1362
如何選擇適合于您公司需求的嵌入式一維/二維碼掃描模塊?
1019
RD4300Pro嵌入式二維碼識讀器應用到醫(yī)療自助服務終端上怎么樣?
937
嵌入式手持機掃碼引擎,快速識別各類條碼、二維碼
2105
為什么很多自助設備都安裝二維碼模組?優(yōu)秀的掃碼模組廠家如何甄別
1418
條碼掃描模組行業(yè)應用 掃碼模組性能介紹
1486
二維碼掃描模塊多少錢一臺?二維掃描模組價格?
2004
嵌入式二維碼掃描儀助力智能終端行業(yè)獲得競爭優(yōu)勢
1106
安裝嵌入式二維碼條碼掃描模塊要注意什么?
1660
常用的幾款二維影像式條碼識讀引擎及應用領域
1539
LV30嵌入式二維識讀模組,為您帶來全新掃描體驗
1180
如何為PDA采集器選擇合適的嵌入式一維二維掃描模組?
1621
二維碼掃碼模塊有哪些功能?二維條形碼讀取設備詳解
2784
條碼二維碼識讀器廠商告訴你,條碼識讀設備有哪些產(chǎn)品形態(tài)?
2032
二維碼掃描器模塊 嵌入式掃碼模塊價格
3470
專業(yè)嵌入二維碼掃描頭LV30,兼容各類極小型化的應用設備
862
掃碼讀頭有哪些?嵌入自助設備專用的二維碼掃描器你知道嗎?
1263
哪款二維碼掃碼頭適合安裝嵌入到點餐機?嵌入式二維碼的掃描機器詳解
952
嵌入式二維碼掃描儀:提升支付終端靈敏讀碼的關鍵要素
1075
遠距離二維碼掃描器如何選擇?看看以下三款遠距離二維碼掃碼模塊
1831
手持機二維掃描模組,輕松讀取各類條碼、二維碼,長距離掃描
1097
遠景達嵌入式條碼掃描器怎么樣?高精度的條碼識讀,設備功能強大
963
二維碼掃碼模塊嵌入到電梯設備里
1027
如何選擇一維二維條碼采集器,哪種PDA采集器比較好?
986
條碼二維碼掃碼模組,支持二次開發(fā)嵌入嗎?
977
二維碼讀頭嵌入門禁設備,如何安裝與應用嵌入式的掃描頭?
1008
二維碼掃描頭設備嵌入到閘機上,實現(xiàn)掃手機屏幕碼完成簽到簽退
1171
工業(yè)視覺在條碼/二維碼識別領域的應用
1207
影響嵌入式二維碼掃描模組價格的因素
765
識別QR Code和PDF417的條碼掃描模組
873
二維碼掃描頭嵌入在圖書自助管理設備中的應用案例
913
工業(yè)二維碼條碼掃描器流水線條碼掃描
946
一維/二維條碼識讀器可以應用于哪些行業(yè)?
1069
嵌入式二維碼識別器嵌入到POS機里面,集成高性能硬解碼掃碼方案
947
嵌入式二維碼識別引擎是什么設備?哪些場景用得到?
702
極小型條碼識讀引擎裝在壁掛式終端機 全面解析嵌入式的二維碼掃描模塊
770
嵌入式二維碼模組在智能快遞柜中的幾大創(chuàng)新應用
521
智能門禁新標配:嵌入式二維掃描頭的幾大核心優(yōu)勢
420
智能門鎖廠商必看:如何選擇最適合的小型二維條碼識別模塊
497
一維二維碼條碼識讀器的主要功能有哪些
904
掃描條碼模塊、二維碼模塊,廣泛應用于定制的手持設備
505
EM3396嵌入式條形碼掃碼器安裝到手持終端里面,讀取一維二維碼
558
二維碼掃碼模塊是什么?它和普通條碼識別設備有什么不同
365
哪款二維條碼識別器支持遠距離連續(xù)掃描的?遠距離掃描模組介紹
264
三分鐘讀懂二維條碼掃描模塊的功能
234
掃條碼或者二維碼用什么掃碼模塊?
219
新大陸NLS EM2596二維掃描模組:嵌入式掃描設備中的工業(yè)級標桿
23
電子發(fā)燒友App



評論