關(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)濟效益。由于二維條碼的編碼和譯碼算法相對比較復(fù)雜,大部分應(yīng)用是用臺式機打印出條碼,再通過掃描槍進行解碼,通過RS232串口輸出數(shù)據(jù);而在嵌入式設(shè)備上,對數(shù)據(jù)進行二維條碼數(shù)據(jù)加密并不多見。本文提出一種在嵌入式設(shè)備上利用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采用了目前世界上最先進的錯誤修正技術(shù)。這種隱含子符號內(nèi)的錯誤修正技術(shù),不僅可以有效地防止譯碼錯誤,提高譯碼的速度及可靠性,而且可以將由于條碼符號破損、沾污等丟失的信息破譯出來。錯誤修正可分為八個等級,錯誤修正為最高時,可以將符號受損面積達50%的條碼符號所含信息復(fù)現(xiàn)出來;PDF417可以把編碼信息按密碼格式進行編碼,以防止偽造條碼符號或非法使用有關(guān)編碼的信息。因此,可以將數(shù)據(jù)量不大但非常重要的信息按照某種二維條碼的格式進行編碼。
本文是將二維條碼用在物品投遞過程中,即把物品的信息(如寄信人地址、姓名、身份證號,收信人地址、姓名、身份證號以及郵資等信息)制成二維條碼,打印出來貼在物品上,以便傳遞信息。通過掌上嵌入式的條碼識讀設(shè)備,對條碼進行譯碼。在掌上嵌入式設(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ù)進行壓縮。四一七條碼有三種數(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)的錯誤糾正碼字數(shù)目為2的糾正等級次方。對于開放式系統(tǒng),不同數(shù)量的編碼數(shù)據(jù)所對應(yīng)的錯誤糾正等級推薦值見表1。
表1 四一七條碼的推薦錯誤糾正等級
數(shù)據(jù)碼字數(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等條碼進行譯碼。它能嵌入到用戶的設(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進入掃描和譯碼 |
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置為低電平,進入3s的延時,掃描電機開始工作。在延時時間內(nèi),掃描頭一直處于工作狀態(tài),掃描頭譯碼后的數(shù)據(jù)輸入至單片機產(chǎn)生串口中斷,在中斷函數(shù)中存儲譯碼后的信息。一般來說,SE923HS掃描頭有效工作1s后可以將紙質(zhì)的掃描譯碼完畢。P1.2置為高電平時,掃描電機停止工作。
對解碼后的數(shù)據(jù)進行后期處理,將這些數(shù)據(jù)和其它需要重新加密的數(shù)據(jù)重新二維條碼編碼和糾錯,得到加密后的數(shù)據(jù)。這些數(shù)據(jù)可以通過RS232、USB或者藍牙發(fā)送給上位機作相應(yīng)的處理。
3.2 二維條碼編碼和糾錯
在實際應(yīng)用中,考慮到在應(yīng)用中投遞物品信息組成和單片機處理速度,投遞物品上的信息多用漢字表示,且文本字符和數(shù)字的數(shù)量較少,所以可以只用字節(jié)壓縮模式(BC)對其進行編碼。這樣可大大減小編譯碼的復(fù)雜性,并且對數(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個碼字。因此在具體應(yīng)用時,根據(jù)情況靈活地運用PDF417條碼標準是很重要的。
為統(tǒng)一起見,在編碼過程中只采用模式結(jié)構(gòu)中的字節(jié)壓縮模式(BC)?,F(xiàn)簡要介紹如下:
字節(jié)壓縮模式通過基256至基900的轉(zhuǎn)換,將字節(jié)序列轉(zhuǎn)換為碼字序列。當所要表示的字節(jié)總數(shù)不是6的倍數(shù)時,用模式鎖定901;當所要表示的字節(jié)總數(shù)是6的倍數(shù)時,用模式鎖定924。在應(yīng)用模式鎖定924的情況下,6個字節(jié)可通過基256至基900的轉(zhuǎn)換用5個碼字表示,從左到右進行轉(zhuǎn)換。在應(yīng)用模式鎖定901的情況下,每前6個字節(jié)的轉(zhuǎn)換方法與上述方法相同,對被6整除所剩余的字節(jié)應(yīng)每個字節(jié)對應(yīng)一個碼字,逐字節(jié)用碼字表示。具體編碼流程如圖7所示。
四一七條碼采用Reed-Solomon錯誤控制算法(簡稱RS碼)對數(shù)據(jù)碼字進行糾錯編碼和譯碼。RS碼是一類可以糾正多個隨機錯誤的多進制循環(huán)碼。對于一組給定的數(shù)據(jù)碼字,根據(jù)不同的碼字個數(shù)采用相應(yīng)的糾錯等級,錯誤糾正碼字根據(jù)Reed-Solomon錯誤控制碼算法計算。
對于一個給定的錯誤糾正等級,其錯誤糾正容量由下式確定:
式中: e-拒讀錯誤數(shù)目; t-替代錯誤數(shù)目;
s-錯誤糾正等級; d-錯誤糾正碼字數(shù)目。
錯誤糾正碼字的總數(shù)為2s+1。其中,兩個用于錯誤檢測。其余的錯誤糾正碼字用于錯誤糾正。用一個錯誤糾正碼字恢復(fù)一個拒讀錯誤,用兩個錯誤糾正碼字糾正一個替代錯誤。
當被糾正的替代錯誤數(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(5570)
相關(guān)推薦
PDF417二維條形碼的讀取和識別技術(shù)
二維圖片清空問題
二維數(shù)組怎么能夠在自選的路徑中直接生成EXCEL表格
二維直接標記系統(tǒng)在飛機發(fā)動機中的應(yīng)用是什么?
二維碼識別
二維碼識別模塊都在哪些場景應(yīng)用到
二維碼軟件中制作Dot Code二維碼的步驟
二維碼門禁在互聯(lián)網(wǎng)下發(fā)生什么樣的新特色
二維碼高拍儀(睿智微電子)
在二維碼軟件中制作含GS1應(yīng)用標識符的data Matrix二維碼的操作步驟
在嵌入式設(shè)備中使用JavaScript
在LABVIEW中怎么將二維數(shù)組轉(zhuǎn)化為一維數(shù)組
在VIM中如何實現(xiàn)對嵌入式軟件的調(diào)試?
嵌入式FIFO怎么配置和使用?
嵌入式掃描模組在智能門禁系統(tǒng)的應(yīng)用是什么
嵌入式系統(tǒng)串行設(shè)備管理怎么實現(xiàn)?
嵌入式系統(tǒng)在行業(yè)中的應(yīng)用
C語言二維數(shù)組的定義和引用
DSP基條碼掃描器
HFSS二維薄片邊界設(shè)置應(yīng)用技巧
LabVIEW中怎樣將一維數(shù)組轉(zhuǎn)換成二維數(shù)組
Labview讀取二維碼并記錄
OpenHarmony應(yīng)用實現(xiàn)二維碼掃碼識別
STM32二維碼與條形碼識別庫
[原創(chuàng)]Honeywell Xenon 1900手持式二維影像掃描器
[原創(chuàng)]Honeywell Xenon 1902gHD無線二維影像掃描器
labview 一個二維數(shù)組分別與50個二維數(shù)組做運算,輸出最小值
【嵌入式資料精選合集】嵌入式工程師資料免費分享
一個基本完整的QR DataMatrix PDF417 和Barcode的識別程序,稍微修改就可以用在工程里面
分享一款二維碼掃描軟件
單片機顯示二維碼的原理及實現(xiàn)
可變條碼打印軟件中實現(xiàn)二維碼數(shù)據(jù)換行的操作方法
基于Web的嵌入式設(shè)備該怎么管理?
如何制作彩色二維碼防偽標簽?
如何去使用STM32CubeMX.AI嵌入式設(shè)備呢
如何在labview中實現(xiàn)二維DFT?
如何實現(xiàn)基于Agent技術(shù)的嵌入式智能設(shè)備測試?
如何構(gòu)造運行良好的嵌入式設(shè)備的驅(qū)動程序?
如何讓嵌入式設(shè)備枚舉成WinUSB設(shè)備?
如何識別單片機嵌入式二維碼解碼
如何通過機智云 iot開發(fā)平臺接口生成設(shè)備對應(yīng)的二維碼
如何通過機智云接口生成設(shè)備對應(yīng)的二維碼
工業(yè)級打印機
怎么在verilog中初始化二維數(shù)組
怎么將串口接收到的數(shù)據(jù)存儲在二維數(shù)組中
求嵌入式linux學習筆記
求一份arm9嵌入式系統(tǒng)設(shè)計基礎(chǔ)教程第二版PDF
解決ABBYY FineReader 12檢測不到條碼的問題
請問在嵌入式應(yīng)用中怎樣去實現(xiàn)USB?
選購嵌入式商品條碼掃描模塊應(yīng)該注意什么
天波智能云TPM300嵌入式二維碼讀頭
二維圖像尺寸批量測量儀器
二維條碼技術(shù)在航材保障中的應(yīng)用研究
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于EVP-6100嵌入式多媒體處理機的二維條碼識別系統(tǒng)
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于DSP的PDF417快速解碼終端的設(shè)計與實現(xiàn)
![](https://skin.elecfans.com/images/2021-soft/load.png)
DSP的PDF417快速解碼終端的設(shè)計與實現(xiàn)
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A5/89/wKgZomUMOOSAP3G4AAAEVAVOap8307.gif)
PDF417條碼特點及應(yīng)用
![](https://skin.elecfans.com/images/2021-soft/eye.png)
PDF417二維條碼的編碼技術(shù)
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于VC++的二維條碼PDF417編解碼系統(tǒng)設(shè)計
![](https://skin.elecfans.com/images/2021-soft/load.png)
PDF417條碼在設(shè)備管理系統(tǒng)中的應(yīng)用研究_張琦
![](https://skin.elecfans.com/images/2021-soft/load.png)
智能醫(yī)療的解決方案——PDF417二維條碼
![](https://skin.elecfans.com/images/2021-soft/eye.png)
嵌入式二維條碼識讀模組LV3296在手持設(shè)備配套中的應(yīng)用
![](https://skin.elecfans.com/images/2021-soft/eye.png)
讀取二維碼掃描設(shè)備有哪些類型
![](https://skin.elecfans.com/images/2021-soft/eye.png)
遠景達LV4500R二維碼掃碼模組有哪些嵌入式應(yīng)用?
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file.elecfans.com/web2/M00/66/DA/pYYBAGMPJIOAPDn1AABFRMgGF2k032.png)
嵌入式掃碼器與固定式掃描器,讀取條碼高效可靠
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file.elecfans.com/web2/M00/94/E9/poYBAGQAQceAeQ8mAAC-1w_CfzU594.png)
條碼識讀器支持嵌入式應(yīng)用,了解幾款高性價比的嵌入式二維條碼識讀器
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com/web2/M00/82/4C/wKgZomRI1bGADIYvAAEHFa1Hiqg684.png)
嵌入式條碼掃描器不僅廣泛應(yīng)用于條碼識別,更是提效好幫手
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com/web2/M00/82/7C/wKgZomRUswWAYJRDAAC4sAQ5wLM653.png)
嵌入式掃碼模塊,深圳遠景達推出超小型二維條碼掃描模塊
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com/web2/M00/82/83/wKgaomRV-aSAcdz7AADQecAsOyY414.png)
如何選擇適合于您公司需求的嵌入式一維/二維碼掃描模塊?
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com/web2/M00/82/D1/wKgaomRjMEqAbrMbAADeXCnJj2c033.png)
嵌入式手持機掃碼引擎,快速識別各類條碼、二維碼
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com/web2/M00/88/AF/wKgZomRvDBGAf-j1AADB876JCN8703.png)
條碼掃描模組行業(yè)應(yīng)用 掃碼模組性能介紹
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com/web2/M00/8A/24/wKgZomSRVCyAUO25AADhv38mVAY864.png)
安裝嵌入式二維碼條碼掃描模塊要注意什么?
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com/web2/M00/90/2E/wKgZomTV2EyAUASDAADqMPAISZo810.png)
條碼二維碼識讀器廠商告訴你,條碼識讀設(shè)備有哪些產(chǎn)品形態(tài)?
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com/web2/M00/AA/BC/wKgZomUvgnCAb8yVAADOidDjiCE316.png)
二維碼掃描器模塊 嵌入式掃碼模塊價格
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com/web2/M00/AB/94/wKgZomU2FK6AByJwAAEBC2q7qM8659.png)
掃碼讀頭有哪些?嵌入自助設(shè)備專用的二維碼掃描器你知道嗎?
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com/web2/M00/BB/64/wKgZomWbmUCAKgnnAADioDTxJP4514.png)
評論