摘 要:二維條碼技術正在滲透到社會的各個領域,快速精準的二維條碼識別器具有很好的應用前景。以TI公司的TMS320VC5416 DSP芯片為核心,采用COMS圖像傳感器采集二維條碼數(shù)據(jù),用CPLD實現(xiàn)系統(tǒng)整體的邏輯控制,實現(xiàn)了一種帶有USB接口的便攜式二維條碼識別器的設計。識別器本身可以存儲一定容量的數(shù)據(jù),也可通過USB 2.0接口同PC連接共享數(shù)據(jù)。關鍵詞:DSP; 二維條碼; 識別器; USB
中圖分類號:TN911.73-34; C931.6 文獻標識碼:A
文章編號:1004-373X(2010)18-0035-03
Design of Portable 2-dimensional Barcode Identifier Based on DSP
WANG Wei-ya1,2, SUN Xu-bo2, WU Jie1
(1.Department of Command, Naval Aeronautical and Astronautical University, Yantai 264001, China;
2.Graduate Students Brigade, Naval Aeronautical and Astronautical University, Yantai, 264001, China)
Abstract: Since 2-dimensional barcode has been used in many domains,the fast and precise 2-dimensional barcode identifier has a bright future. Based on TI's TMS320VC5416 DSP chip, a portable 2-dimensional barcode identifier with USB interface is designed, which uses COMS image sensor to gather 2-dimensional barcode data and adopts CPLD to realize the logic control of the whole system. The identifier can store a certain capacity of data, and share data with PC via USB 2.0 interface.Keywords: DSP; 2-dimenitonal barcode; identifier; USB
0 引 言
條形碼作為一種及時、準確、可靠、經(jīng)濟的數(shù)據(jù)輸入手段已被物流信息系統(tǒng)采用。在工業(yè)發(fā)達的國家已經(jīng)普及應用,已成為商品獨有的世界通用的“身份證”。它在交通運輸業(yè)、郵電通訊業(yè)、物流行業(yè)、超市等領域有不尋常的表現(xiàn)[1]。
條碼技術(一維條碼、二維條碼)是在計算機技術與信息技術基礎上發(fā)展的信息存儲、傳遞和識別技術。二維條碼是美國SYMBOL公司1991年發(fā)明的,二維條碼具有高密度、高可靠性的優(yōu)點,可以在有限的幾何空間內(nèi)表示更多的信息,其應用前景非常廣闊。因此,設計快速而精準的二維條碼識別器值得深入研究。
1 二維條碼特性和碼制
二維條碼如圖1所示,二維條碼的特性如下[2]。
(1) 高密度。二維條碼通過利用垂直方向的尺寸來提高條碼的信息密度。可以把產(chǎn)品信息全部存儲在一個二維條碼中,要查看產(chǎn)品信息,只要用識讀設備掃描二維條碼即可。
(2) 具有糾錯功能。二維條碼的糾錯算法與人造衛(wèi)星和VCD等所用的糾錯算法相同。這種糾錯機制使得二維條碼成為一種安全可靠的信息存儲和識別的方法,這是一維條碼無法相比的。
(3) 可以表示多種語言文字。多數(shù)二維條碼都具有字節(jié)表示模式,即提供了一種表示字節(jié)流的機制。
(4) 可表示圖像數(shù)據(jù)。既然二維條碼可以表示字節(jié)數(shù)據(jù),而圖像多以字節(jié)形式存儲,因此使圖像(如照片、指紋等)的條碼表示成為可能。
(5) 可引入加密機制。用二維條碼表示照片時,可以先用一定的加密算法將圖像信息加密,然后再用二維條碼表示。在識別二維條碼時,再加以一定的解密算法,就可以恢復所表示的照片。
圖1 二維條碼
二維條碼有多種碼制,常用的有:PDF417,Data Matrix,Maxi Code,Aztec,QR Code,Veri Code,Ultra Code,Code49和Code 16K碼等。根據(jù)二維碼的實現(xiàn)原理和結構形狀的差異,主要分為堆積層排式、棋盤矩陣式和郵政碼三類。其中PDF417目前在我國應用最為廣泛[3]。
2 基于DSP的嵌入式二維條碼識別器
介紹一種基于數(shù)字信號處理器(digital signal processing,DSP)的二維條碼識別器的基本設計方案。該方案可將解碼后的數(shù)據(jù)實時上傳給上位機PC,本身也存儲一定量的解碼數(shù)據(jù),可作為便攜式二維條碼數(shù)據(jù)采集器單獨使用。
2.1 系統(tǒng)處理的流程
系統(tǒng)處理的流程如圖2所示。系統(tǒng)的工作過程如下,通過圖像傳感器獲取二維條碼圖像。獲取的圖像首先進行圖像降噪、圖像校正和二值化等預處理。降噪處理可通過多幀圖像平均降噪或遞歸濾波的方法,圖像校正通過Hough變換,二值化可采用最小均方根誤差的方法確定門限。經(jīng)過二值化的圖像通過不同條空的比例進行碼字分割,分割出的碼字和碼本中的碼字進行模板匹配來確定解碼數(shù)據(jù)。解碼后的數(shù)據(jù)一方面可以寫入系統(tǒng)自帶的大容量FLASH中,也可以通過USB接口實時將解碼數(shù)據(jù)上傳給PC。
圖2 系統(tǒng)處理的流程
2.2 二維條碼識別器的硬件設計
識別器的硬件結構圖如圖3所示,下面對主要部件的選擇和功用逐一介紹。
圖3 識別器的硬件結構圖
2.2.1 DSP芯片的選擇
數(shù)字信號處理器(DSP)在該系統(tǒng)中主要負責圖像的預處理和識別匹配。由于二維條碼解碼算法比較復雜,對硬件系統(tǒng)的要求比較高,選用TI公司的TMS320VC5416,該款芯片具有很高的性價比。它功耗低,運算速度達160 MIPS。采用模板匹配方式進行碼字識別,對一個碼字進行匹配需要8 000個指令周期,如果平均每個二維條碼包含500個碼字,則可計算所需時間為:8 000×500/160 000 000=0.03 s,可滿足系統(tǒng)實時性要求[4]。
2.2.2 圖像傳感器的選擇
條碼圖像傳感器的作用是將二維條碼讀入系統(tǒng),其成像質(zhì)量的好壞直接影響整個系統(tǒng)的性能。現(xiàn)在常用的圖像傳感器一般有2種:CCD(charge coupled device)和CMOS(complementary metal-oxide-semiconductor transistor)[2]。
CCD又分為線陣CCD和面陣CCD。用線陣CCD時進行二維條碼掃描需要掃描電動機。在掃描電動機的帶動下CCD逐行掃描條碼,因而速度較慢,但其成本較低。面陣CCD掃描速度塊,成像質(zhì)量好,但控制電路復雜,成本高。
CMOS是最近幾年發(fā)展起來的一種圖像傳感器,CMOS對光照強度的要求比CCD的要求高,但CMOS傳感器易于集成,接口簡單,內(nèi)部一般集成A/D,可直接輸出灰度級數(shù)字信號,成本也較低,因而CMOS的應用越來越普及。
該系統(tǒng)中選用Omni Vision公司的黑白CMOS圖像傳感器OV7120。OV7120為單電源+5 V工作,分辨率為640×480像素,成像速度可達30幀/s,信噪比大于48 dB,有逐行和隔行兩種掃描方式,并內(nèi)置伽馬校正功能,輸出為8 b灰度信號。
2.2.3 USB接口設計
通用串行總線(universal serial bus,USB)是1994年底由Intel為首的7家公司共同開發(fā)的PC外設接口標準。它的主要優(yōu)點如下:數(shù)據(jù)傳輸速率明顯快于一般的串口;支持控制傳輸、中斷傳輸、塊傳輸和同步傳輸4種傳輸方式;支持熱撥插和即插即用;占用的系統(tǒng)資源少;USB 2.0數(shù)據(jù)傳輸速度可達480 Mb/s[5-6]。
Philips公司的ISP1581是一種價格低、功能強的高速通用串行總線(USB)接口器件,它完全符合USB 2.0規(guī)范,并為基于微控制器或微處理器的系統(tǒng)提供了高速USB通信能力。此外,ISP1581內(nèi)部還集成了許多特性,包括Soft Connect、低頻晶體振蕩器和集成的終止寄存器。使USB功能很容易地用于PC機的外設。
2.2.4 邏輯控制
整個系統(tǒng)的邏輯控制由一片CPLD(complex programmable logic device)完成,主要完成復位、中斷和地址譯碼功能。在此選用Xilinx公司的XC95144XL,其單電源3.3 V工作,有144個宏單元,81個用戶I/O引腳。DSP的數(shù)據(jù)空間、程序空間、I/O空間的尋址是由DS,PS,IS,MSTRB,IOSTRB等控制信號完成,將這些控制信號連入CPLD,由CPLD來完成譯碼,選通相應器件。在項目的實際設計過程,采用VHDL硬件描述語言來描述時序控制電路。使用CPLD可以給硬件實現(xiàn)帶來極大便利,可將擴展的按鍵、LCD等外圍設備,由CPLD接入DSP,并由CPLD實現(xiàn)基本的控制功能。
2.3 二維條碼識別器的軟件設計
該系統(tǒng)的軟件包括DSP中的軟件、USB同PC通信軟件。下面給出軟件的設計方法。
DSP中軟件的設計如圖4所示,其核心是二維條碼解碼算法。在DSP上的軟件由圖像數(shù)據(jù)接收模塊、條碼解碼模塊、串口數(shù)據(jù)發(fā)送模塊3個功能模塊組成。使用TI公司的嵌入式操作系統(tǒng)DSP/BIOS,以上功能模塊可以作為操作系統(tǒng)的幾個中斷,算法程序作為標準子程序,這樣使程序結構清晰,降低了程序的復雜性,并改善了系統(tǒng)的可靠性與可維護性[7-8]。
圖4 DSP主程序流程圖
USB接口通信的結構體系如圖5所示,包括硬件驅(qū)動層、設備枚舉、USB事物層、Mass storage 命令層、文件系統(tǒng)、應用層等。
圖5 USB與PC通信結構體系
其中驅(qū)動層的固件設計是整個通信模塊的中心。固件是Fireware對應的中文詞,它是與USB芯片相連的CPU執(zhí)行的代碼,負責兩項任務:一是作為駐留在設備中的內(nèi)應,相應主機的列舉請求;二是作為智能設備的控制中心[9-10]。固件的開發(fā)一般采用前臺主循環(huán)與后臺的ISR之間的通信結構,這兩個全局變量的結構如下:
Typedef union_event_flags
{
Struct_flags
{
Unsigned char timer :1;//時間溢出
Unsigned char bus_reset:1;//總線復位標志
Unsigned char suspend:1;//掛起改變標志
Unsigned char setup_packet :1;//收到setup包
Unsigned char remote_wakeup :1;//遠程喚醒標志
Unsigned char in_isr :1;//USB中斷服務標志
Unsigned char control_state :2;//
//0:IDEL空閑狀態(tài);1:TRANSMIT數(shù)據(jù)發(fā)送狀態(tài);
//2:RECEIVE數(shù)據(jù)接收狀態(tài)
Unsigned char configuration :1;//配置標志(0:未配置;1:已經(jīng)配置)
Unsigned char ep1_rxdone :1;//端點1收到數(shù)據(jù)標志
Unsigned char ep2_rxdone :1;//端點2收到數(shù)據(jù)標志
Unsigned char ep1buf_full :1;//端點1輸出雙緩沖區(qū)滿標志
Unsigned char ep2buf_full :1;//端點2輸出雙緩沖區(qū)滿標志
}bits;
Unsigned short value;
}EVENTFLAGS;
EVENTFLAGS bEVENflags;
3 結 語
該系統(tǒng)可以對二維條碼進行快速識別、存儲和上傳PC。當今信息化的趨勢使得人們不得不考慮數(shù)據(jù)的實時共享,比如將識別器得到的信息通過網(wǎng)絡實時共享更新。可以通過連接PC來實現(xiàn),也可以通過在識別器上加裝通信模塊來實現(xiàn),使得信息傳遞的速度加快,提高物流系統(tǒng)或是資源管理系統(tǒng)的效率。
參考文獻
[1]阮李英.如何應用二維碼[J].中國質(zhì)量技術監(jiān)督,2009(5):60-61.
[2]鄧鏈,吳曉兵,王克涌,等.信息識別技術[M].北京:機械工業(yè)出版社,2006.
[3]徐常凱,鄭金忠.新型條碼在軍事物流中的應用研究[J].物流技術,2006 (7):236-238.
[4]Texas Instruments. DSP selection guide[M]. Texas, USA: Texas Instruments, 2004.
[5]劉青麗.基于USB 2.0接口技術的數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn)[D].成都:西南交通大學,2004.
[6]段軍.基于USB的數(shù)據(jù)采集和控制系統(tǒng)的開發(fā)與研究[D].南京:南京理工大學,2004.
[7]陳興剛,劉振華,郭寶華.FRID技術與條碼技術在軍事物流領域的聯(lián)合應用[J].包裝工程,2006,27(1):87-89.
[8]郭穎.基于DSP的新型圖形發(fā)生器主控制器的研究[D].北京:中國科學院電工研究所,2004.
[9]張劍.基于USB總線的便攜式數(shù)據(jù)采集系統(tǒng)設計[D].南京:南京理工大學,2004.
[10]王其華.面向數(shù)字化的軍事物資保障體系構架[J].中國物流與采購,2006(3):29.