??? 摘 要: 一種基于Blackfin533 DSP的便攜式QR code識(shí)別終端系統(tǒng)的設(shè)計(jì)方案。系統(tǒng)以Blackfin533DSP為核心處理單元,通過COMS圖像傳感器采集QR code條碼圖像信息,借助DSP的高速運(yùn)算性能,對(duì)采集到的QR code圖像信息進(jìn)行圖像預(yù)處理和QR code算法識(shí)別,然后通過TFT LCD實(shí)時(shí)顯示識(shí)別結(jié)果,最后再運(yùn)用Zigbee節(jié)點(diǎn)無線傳輸方式代替?zhèn)鹘y(tǒng)的有線和無線芯片傳輸技術(shù),將識(shí)別后的條碼圖像數(shù)據(jù)準(zhǔn)確可靠地向主機(jī)傳輸。
??? 關(guān)鍵詞: Blackfin533;QR code;Zigbee;條碼識(shí)別
?
??? 二維條碼是為了克服一維條碼容量小、依賴數(shù)據(jù)庫、不能表示漢字等缺點(diǎn)而產(chǎn)生的。二維條碼系統(tǒng)是非網(wǎng)絡(luò)環(huán)境下的高安全性信息載體系統(tǒng),其不僅可儲(chǔ)存文字、聲音、圖像,還能儲(chǔ)存虹膜、指紋等生物信息,是實(shí)現(xiàn)大容量信息高可靠性存儲(chǔ)、攜帶、自動(dòng)識(shí)別的理想系統(tǒng)??焖夙憫?yīng)矩陣碼QR code是一種矩陣式二維條碼,具有信息容量大、可靠性高、超高速全方位識(shí)讀、高效漢字表示等優(yōu)點(diǎn),被廣泛應(yīng)用于工商、金融、稅務(wù)、物流、海關(guān)等領(lǐng)域。由于在線式數(shù)據(jù)采集終端在使用距離上的限制,使其不能應(yīng)用在需要脫機(jī)使用的場(chǎng)合,如較大新庫存盤點(diǎn),大件物品的掃描等。為了解決在線式條碼識(shí)別終端的不足,無線便攜式識(shí)別終端應(yīng)運(yùn)而生。基于這些特征需求,本文研究設(shè)計(jì)了基于Blackfin533的便攜式QR code識(shí)別系統(tǒng)。
1 系統(tǒng)硬件設(shè)計(jì)
??? 整個(gè)ZigBee無線QR code識(shí)別系統(tǒng)由四部分組成:便攜式QR code識(shí)別終端、Zigbee無線節(jié)電網(wǎng)絡(luò)、主機(jī)Zigbee數(shù)據(jù)無線接收模塊、HOST主機(jī)數(shù)據(jù)庫管理系統(tǒng)。系統(tǒng)框圖如圖1所示。本文主要對(duì)便攜式QR code識(shí)別終端系統(tǒng)進(jìn)行研究與設(shè)計(jì),其硬件電路由七部分構(gòu)成[1]:Blackfin533 DSP最小系統(tǒng)、COMS圖像傳感器、Zigbee無線模塊、人機(jī)交互模塊、TFT LCD顯示模塊、USB接口模塊、照明控制模塊。
?
??? 系統(tǒng)信號(hào)流程如下:COMS圖像傳感器采集條碼圖像信息,然后通過Blackfin533 PPI接口以DMA方式存入SDRAM,Blackfin533從SDRAM讀取一幅QR code圖像信息,進(jìn)行圖像數(shù)據(jù)的處理、信號(hào)糾錯(cuò)、碼字識(shí)別。譯碼后的二維條碼數(shù)據(jù)被送入TFTLCD進(jìn)行顯示,同時(shí)將譯碼后數(shù)據(jù)通過Zigbee無線通信模塊發(fā)送,經(jīng)過其通信節(jié)點(diǎn)網(wǎng)絡(luò)逐步傳輸?shù)街鳈C(jī)數(shù)據(jù)管理系統(tǒng),對(duì)收集到的條碼數(shù)據(jù)進(jìn)行管理。
1.1 Blackfin533小系統(tǒng)
??? 系統(tǒng)采用Blackfin533作為核心處理器。Blackfin系列DSP是ADI公司與Intel公司于2003年4月聯(lián)合推出的一系列基于微信號(hào)體系結(jié)構(gòu)(MSA)的DSP產(chǎn)品[2],主要面向嵌入式音頻、視頻和通信等領(lǐng)域,除了具有強(qiáng)大的信號(hào)處理性能和理想的電源效率,還集成了32位的RISC精簡(jiǎn)指令集,可以運(yùn)行精簡(jiǎn)的不具有MMU的操作系統(tǒng),如μCLinux等,以加強(qiáng)系統(tǒng)多任務(wù)控制調(diào)度能力。Blackfin533具有600MHz主頻,雙16位的MAC(乘加器)和兩個(gè)40位的ALU(算術(shù)邏輯單元),4個(gè)8位的視頻處理單元,8個(gè)算術(shù)寄存器,10個(gè)地址尋址單元并且集成了大量的外圍設(shè)備和存儲(chǔ)器接口,每秒運(yùn)算速度最高達(dá)到1 200MMAC(兆次乘法加法運(yùn)算),并專門針對(duì)高速數(shù)據(jù)吞吐集成了并行外圍接口(PPI),在傳統(tǒng)的數(shù)據(jù)總線的基礎(chǔ)上增加了一條數(shù)據(jù)吞吐通道,充分滿足了系統(tǒng)技術(shù)指標(biāo)的要求。
??? 外圍存儲(chǔ)器包括數(shù)據(jù)存儲(chǔ)器和指令存儲(chǔ)器,分別采用SDRAM和Flash。
?? ?系統(tǒng)外擴(kuò)SDRAM用以緩存動(dòng)態(tài)采集到的二維條碼圖像數(shù)據(jù),MICRON公司的MT48LC16M16A2與BF533的連接如圖2所示。
?
??? 系統(tǒng)外擴(kuò)Flash用于存儲(chǔ)系統(tǒng)軟件和譯碼后的數(shù)據(jù)信息,ST公司的PSD4256G6V與BF533的連接如圖3所示。
?
1.2 COMS圖像傳感器模塊
??? 條碼圖像傳感器是該系統(tǒng)的關(guān)鍵器件,用來完成QR code圖像采集,其成像質(zhì)量直接影響整個(gè)系統(tǒng)的性能。CMOS傳感器易于集成,接口簡(jiǎn)單,內(nèi)部一般集成A/D,可直接輸出灰度級(jí)數(shù)字信號(hào),成本也較低。因此本系統(tǒng)采用Omni Vision公司的CMOS圖像傳感器OV9120[3]。OV9120是130萬像素、1/2英寸的黑白COMS圖像傳感芯片,它采用SXGA/VGA格式。SXGA輸出時(shí),像素為1 280×1 024;VGA輸出時(shí),像素為640×480,最大幀速率可達(dá)到30S/s(VGA)。
??? Blackfin533通過OV9120的SCCB接口來讀寫其內(nèi)部寄存器以設(shè)置和讀取OV9120的工作狀態(tài),包括對(duì)曝光控制、亮度控制、對(duì)比度控制、窗口大小設(shè)定、幀速率設(shè)定、數(shù)據(jù)輸出格式等參數(shù)的設(shè)定和修改。SCCB的接口有SCCE、SIO_C、SIO_D三條引線,其中SCCE是串行總線使能信號(hào),SIO_C是串行總線時(shí)鐘信號(hào),SIO_D是串行總線數(shù)據(jù)信號(hào)。SCCB對(duì)總線功能的控制完全依靠SCCE、SIO_C、SIO_D三條總線上電平的狀態(tài)以及三者之間的相互配合實(shí)現(xiàn)。OV9120與Blackfin533的接口如圖4所示。
?
??? Blackfin533提供了專用的并行外設(shè)接口(PPI)用于圖像數(shù)據(jù)傳輸,配合DMA使用可以解決數(shù)據(jù)傳輸?shù)臎_突問題,減少DSP的資源消耗,使DSP內(nèi)核可以專注于后端的處理。
1.3 Zigbee無線通信模塊
??? Zigbee采用IEEE802. 15.4標(biāo)準(zhǔn),利用全球共用的公共頻率2.4GHz。應(yīng)用于監(jiān)視、控制網(wǎng)絡(luò)時(shí),具有非常顯著的低成本、低耗電、網(wǎng)絡(luò)節(jié)點(diǎn)多、傳輸距離遠(yuǎn)等優(yōu)勢(shì)。
??? 本系統(tǒng)的無線模塊采用基于Zigbee技術(shù)的無線模塊CC2430芯片。CC2430是Chipcon公司提供的全球首款支持Zigbee協(xié)議的SoC解決方案[4],在單個(gè)芯片上整合了ZigBee 射頻(RF)前端、內(nèi)存和微控制器,具有21個(gè)可編程I/O引腳,通過軟件設(shè)定一組SFR寄存器的位和字 ,可使這些引腳作為通常的I/O口或作為連接ADC、計(jì)時(shí)器或USART部件的外圍設(shè)備I/O口使用。本系統(tǒng)中將CC2430設(shè)置成SPI模式與Blackfin533進(jìn)行數(shù)據(jù)傳輸,Blackfin533作為主設(shè)備,CC2430作為從設(shè)備,其Blackfin533與CC2430接口連接及其CC2430外圍電路如圖5所示。
?
2 系統(tǒng)軟件設(shè)計(jì)
??? 系統(tǒng)采用μClinux操作系統(tǒng)作為系統(tǒng)軟件的內(nèi)核來管理和維護(hù)各種硬件資源。系統(tǒng)主程序流程如圖6所示。系統(tǒng)首先初始化各個(gè)模塊,然后觸發(fā)掃描采集條碼圖像,再進(jìn)行條碼圖像傳輸。DSP調(diào)用數(shù)據(jù)進(jìn)行圖像預(yù)處理及條碼譯碼,再將譯碼結(jié)果通過LCD顯示,最后通過Zigbee模塊將譯碼結(jié)果數(shù)據(jù)無線傳輸?shù)紿OST主機(jī)。
?? ?系統(tǒng)軟件的核心部分就是QR code的譯碼識(shí)別,其流程如圖7所示。
?
??? (1)中值濾波:由于攝像頭本身的成像質(zhì)量或者條碼在使用過程中的破損、涂抹等原因,會(huì)產(chǎn)生鹽粒噪聲和毛刺噪聲,從而影響條碼的識(shí)別。中值濾波是一種去除噪聲的非線性處理方法,可以達(dá)到既去除噪聲又保護(hù)圖像邊緣的較滿意復(fù)原的效果。中值濾波的基本原理是把數(shù)字圖像或數(shù)字序列中某點(diǎn)的值用該點(diǎn)所處的一個(gè)領(lǐng)域中各點(diǎn)值的中值來代替。
?? ?(2)圖像二值化[5]:系統(tǒng)將圖像數(shù)據(jù)以YUV4:2:2的格式從Ov9120傳到系統(tǒng)存儲(chǔ)器SDRAM中,從中取出圖像的亮度信息Y。雖然灰度圖像己經(jīng)簡(jiǎn)化了處理的復(fù)雜度,但是條碼是典型的黑白圖像,一般要通過二值化處理使背景和圖像分開,同時(shí)也使黑白條碼更加分明。根據(jù)點(diǎn)運(yùn)算的閾值理論,按式(1)對(duì)圖像處理可以得到二值圖像。
????
??? (3)圖像定位:系統(tǒng)采集的條碼圖像不可避免地會(huì)有一定角度的旋轉(zhuǎn),因此首先要確定條碼圖像位置,然后把條碼旋轉(zhuǎn)至水平方向。圖像定位包括邊緣檢測(cè)和Radon變換。系統(tǒng)先采用sobel算法進(jìn)行邊緣檢測(cè),然后采用基于Radon變換的定位算法求解二值條碼圖像的旋轉(zhuǎn)角度。
?? ?(4)圖像旋轉(zhuǎn):求出旋轉(zhuǎn)角度后就可以對(duì)條碼圖像旋轉(zhuǎn)至水平方向,點(diǎn)(x0,y0)經(jīng)過旋轉(zhuǎn)θ角度后坐標(biāo)變?yōu)?xl,y1)的轉(zhuǎn)換公式如下:
??? ???? (5)分割條碼圖像[6]:采用Canny水平和垂直方向檢測(cè)算子,把單行的條碼分離出來分別進(jìn)行處理,在一定程度上提高條碼的識(shí)別率。
??? (6)Fourier反模糊濾波:對(duì)分割出的條碼圖像進(jìn)行Fouirer反模糊濾波,去除圖像處理過程中的噪聲影響。
??? (7)條碼譯碼:圖像旋轉(zhuǎn)完成之后進(jìn)行圖像數(shù)據(jù)的讀取和譯碼。譯碼流程如圖8所示。首先將讀取的圖像數(shù)據(jù)存放在一個(gè)內(nèi)存區(qū)域,從圖像中讀取格式信息和版本信息,并進(jìn)行糾錯(cuò)譯碼,得到當(dāng)前條碼符號(hào)的版本、糾錯(cuò)等級(jí)和掩膜圖形;然后將掩膜圖形與條碼圖像的編碼區(qū)域進(jìn)行異或處理,去除掩膜,恢復(fù)編碼數(shù)據(jù)和糾錯(cuò)碼字,使用RS糾錯(cuò)算法對(duì)數(shù)據(jù)碼字進(jìn)行糾錯(cuò)以得到正確的編碼數(shù)據(jù);最后將編碼數(shù)據(jù)按照編碼格式進(jìn)行解碼,還原為原始的編碼信息,并將結(jié)果保存并輸出。
3 實(shí)驗(yàn)結(jié)果
??? 本系統(tǒng)測(cè)試平臺(tái)以ADSP-BF533 EZ-KIT Lite為硬件主平臺(tái),外圍擴(kuò)展了OV9120圖像采集模塊、CC2430無線通信模塊、TFTLCD顯示模塊以及基本的人機(jī)交互模塊。系統(tǒng)能正確采集到QR code條碼圖像,識(shí)別時(shí)間在1s之內(nèi)。對(duì)于輕微有損或歪曲的圖像基本能識(shí)別。由于測(cè)試平臺(tái)的限制,總的識(shí)別率在85%左右,能正確顯示識(shí)別結(jié)果。在測(cè)試CC2430無線通信模塊時(shí),采用ZigBee專用評(píng)估軟件SmartRFStudio,它可以很好地對(duì)無線數(shù)據(jù)傳輸性能進(jìn)行評(píng)估和功能測(cè)試。在測(cè)試條件良好的情況下,2.5GHz頻率、50m內(nèi),數(shù)據(jù)向HOST主機(jī)傳輸過程中的丟碼率小于2%。通過測(cè)試表明,系統(tǒng)基本能實(shí)現(xiàn)全方位快速識(shí)讀QR code功能,并能通過ZigBee模塊CC2430實(shí)現(xiàn)數(shù)據(jù)無線傳輸。
?? ?本文提出了一種基于Blackfin533和ZigBee技術(shù)便攜式QR code識(shí)別終端系統(tǒng)的實(shí)現(xiàn)方案。系統(tǒng)以Blackfin533為數(shù)據(jù)處理核心,DSP內(nèi)核移植μCLinux操作系統(tǒng),調(diào)度和管理各種硬件資源。系統(tǒng)采用COMS傳感器采集條碼圖像數(shù)據(jù),通過DMA傳輸圖像數(shù)據(jù),減少了DSP內(nèi)核負(fù)擔(dān),使DSP專注于圖像處理和譯碼工作。識(shí)別結(jié)果可以通過LCD顯示,并可通過ZigBee模塊CC2430實(shí)現(xiàn)無線數(shù)據(jù)傳輸功能。實(shí)驗(yàn)證明,該系統(tǒng)能實(shí)現(xiàn)QR code的快速全方位識(shí)讀,并能無線傳輸識(shí)讀結(jié)果數(shù)據(jù),且系統(tǒng)結(jié)構(gòu)簡(jiǎn)單、體積小、功耗低、成本低廉。隨著二維條碼應(yīng)用越來越廣泛,該方案的實(shí)用性和推廣價(jià)值日益增加。
參考文獻(xiàn)
[1] 陳峰.Blackfin系列DSP原理與系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2004.
[2] 高同海,宋明丁,曉明.基于SoPC的嵌入式二維條碼識(shí)讀系統(tǒng)[J].電子技術(shù)應(yīng)用,2005(11):33-36.
[3] 李春明,姜威,高超,等.COMS圖像傳感器芯片OV9620/OV9120及其運(yùn)用[J].電視技術(shù),2003(12):66-68.
[4] CHIPCON.SmartRF CC2430[EB/OL].www.chipcon.com,2005/2006.
[5] 劉東,高西全.QR碼圖像處理及識(shí)別算法的研究[J].信息技術(shù),2004(1):61-63.
[6] 岡薩雷斯(美).數(shù)字圖象處理(第二版)[M].北京:電子工業(yè)出版社,2003.