基于NiosII的二維條碼識別系統(tǒng)設(shè)計
1.1 系統(tǒng)硬件結(jié)構(gòu)
系統(tǒng)通過配置視頻采集芯片ADV7181B,通過圖像采集子系統(tǒng)將CCD采集到的條碼數(shù)據(jù)存儲在SRAM中后,產(chǎn)生硬件中斷,處理器響應(yīng)中斷,Nios對SRAM中的數(shù)據(jù)進行圖像預(yù)處理、譯碼及糾錯,通過譯碼算法硬件加速模塊對耗時較多部分算法進行優(yōu)化,在實現(xiàn)條碼數(shù)據(jù)譯碼及糾錯后,產(chǎn)生射頻傳送和LCM顯示中斷,進入中斷程序?qū)⒆g碼數(shù)據(jù)通過射頻傳輸模塊發(fā)送到上位機,并且在LCM實時顯示。其硬件平臺結(jié)構(gòu)原理如圖3所示。本文引用地址:http://butianyuan.cn/article/192009.htm
1.2 圖像采集子系統(tǒng)
由于本設(shè)計采用的是灰度圖,因此圖像采集子系統(tǒng)的主要功能是:配置采集芯片,從解碼芯片讀出數(shù)據(jù)流,根據(jù)行場同步信號對數(shù)據(jù)流進行分離,提取出亮度信號,并將采集到的亮度信號通過乒乓緩存存入SRAM中。
在設(shè)計中,采用ADI的解碼芯片ADV7181B進行圖像信號的數(shù)模轉(zhuǎn)換,F(xiàn)PGA中的I2C模塊是作為主設(shè)備來對ADV7181B進行配置的,而ADV7181B作為從設(shè)備來接受I2C總線傳來的數(shù)據(jù),實現(xiàn)芯片的初始化、寄存器的配置等。圖4中T_DA為數(shù)據(jù)信號,TD_VS為場同步信號,TD_HS為行同步信號。
系統(tǒng)上電時,I2C配置模塊將對ADV7181B的內(nèi)部寄存器進行配置,ADV7181B將模擬信號轉(zhuǎn)換為Y:U:V為42:2:2的8位CCIR656數(shù)字信號,其中輸出的時序包括行場同步、行場消隱、行頻場頻及場識別等信號。
CCD攝像頭采集的圖像實際尺寸為768×576像素,每幀圖像由奇場數(shù)據(jù)和偶場數(shù)據(jù)交錯組合而成,奇場數(shù)據(jù)與偶場數(shù)據(jù)在時間上是先后輸入的。本設(shè)計使用的是320×240的液晶顯示屏,在處理過程中也采用的是320×240的圖片格式,所以要對攝像頭采集的圖片進行提取。在設(shè)計中僅采奇場數(shù)據(jù)的中間240行,并對每行中間的640個數(shù)據(jù)每兩個像素抽取一個像素,從而得到符合系統(tǒng)要求的圖像大小。由于一幀圖像的奇場數(shù)據(jù)與偶場數(shù)據(jù)實際上非常接近,而每行的相鄰兩個像素值也幾乎沒有差異,因此可以得到原輸入圖的縮小圖像而不會有失真。
圖像存入SRAM采用了乒乓緩存,如圖5所示,是為了防止寫出速度快于寫入速度而導(dǎo)致出現(xiàn)錯誤數(shù)據(jù)。采用兩個行緩存進行乒乓切換,在數(shù)據(jù)提取子模塊向行A寫入數(shù)據(jù)時,數(shù)據(jù)寫出子模塊讀取行緩存B中的數(shù)據(jù)輸出到總線;在對下一行進行采集時,對行緩存A讀數(shù)據(jù),對行緩存B寫數(shù)據(jù)。因此行緩存寫路選器與行緩存讀路選器在同一時刻選通的一定是不同的行緩存。
評論