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