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



評論