基于NiosII的二維條碼識別系統(tǒng)設(shè)計
3 系統(tǒng)軟件設(shè)計
系統(tǒng)軟件是在Nios II的μC/OSII操作系統(tǒng)下進行C語言編程的。系統(tǒng)初始化主要包括對采集芯片、射頻傳輸控制模塊、網(wǎng)絡(luò)接口的初始化,整個系統(tǒng)動態(tài)掃描條碼圖像和實時譯碼。系統(tǒng)主要流程如圖9所示。其中,系統(tǒng)初始化時利用函數(shù)IOWR(SIGNAL_CAP_O_BASE,O,1)將采集模塊全局信號復(fù)位,然后使用函數(shù)alt_irq_register。(SIGNAL_CAP_0_IRQ,NULL,sig_cap_irq_proc)來建立一個用戶中斷程序,對按鍵中斷響應(yīng)進入中斷服務(wù)程序sig_cap_irq_proc,向攝像頭發(fā)送采集指令。當(dāng)采集模塊完成一幅條碼圖像采集后,產(chǎn)生一個硬件中斷,將標(biāo)志FLAG置1。當(dāng)主循環(huán)程序判斷FLAG為1時,就可以從外擴的SRAM中將圖像數(shù)據(jù)讀入SDRAM中,接著進行圖像預(yù)處理和譯碼,其中包括用自定義用戶指令和硬件模塊實現(xiàn)的一些運算量大的部分。射頻傳輸與NiosII的PIO口相連,通過函數(shù)IOWR_ALTERA_AVALON_PIO_DA_TA來實現(xiàn)。本文引用地址:http://cafeforensic.com/article/192009.htm
4 實驗與分析
本識別系統(tǒng)工作頻率為100 MHz,圖像采樣分辨率為320×240,一幅條碼圖像識別時間為60 ms。本系統(tǒng)有如下幾個特點:
①利用PDF417碼本身的特點來定位分割條碼,與傳統(tǒng)的條碼定位分割算法相比,大大提高了條碼識別速率。傳統(tǒng)二維條碼定位分割多采用Hough變換來確定條碼傾斜角度,不能滿足手持式嵌入式條碼識讀器的實時性要求。
②在FPGA中嵌入NioslI軟核處理器,簡化硬件設(shè)計,同時使系統(tǒng)更加穩(wěn)定。FPGA的可重配置以及SOPC的可裁減使系統(tǒng)具有很高的資源利用率,而且方便升級和維護。
③利用自定義模塊、自定義指令、C2H硬件加速等方法刮對部分耗時算法進行優(yōu)化,大大提高了整個系統(tǒng)識別速率。
筆者針對不同環(huán)境下采集的300幅條碼圖像進行了三次測試:第一次是在條碼無破損的情況下,第二次是在條碼有5%破損和污染的情況下,第三次隨機識別100幅條碼。本文所采用的算法平均識別率達(dá)96.7%,耗時60ms,如表1所列。
結(jié) 語
二維條形碼誕生后,條碼技術(shù)的應(yīng)用領(lǐng)域更加廣泛,不僅應(yīng)用于物流運輸,還滲透到生產(chǎn)、生活的各個領(lǐng)域。本文介紹了一種基于SOPC的二維條碼識別系統(tǒng)的設(shè)計,提出了一種軟硬件綜合的解決方案,由于涉及底層的硬件系統(tǒng)設(shè)計和相應(yīng)的軟件設(shè)計,在系統(tǒng)性能優(yōu)化方面有著很大的空間。
評論