目前,在市場上通常使用的條形碼是一維條形碼,它含有的信息量很小,一般需要后臺數據庫支持。二維條形碼則有很大的數據容量,在一定情況下不需要后臺數據庫的支持,并且可以形成便攜式數據文件進行離線傳輸,它的糾錯能力極強,文件的局部破損、污染不會影響數據的準確讀出。二維條碼可對字符、漢字、圖像、簽字等進行編碼,應用范圍十分廣闊。
系統框圖
系統以DSP56F826芯片為核心控制模塊, 使用CMOS數字圖像傳感芯片,圖像采集分辨率可達640×480像素。當需要進行高分辨率的圖象采集時,可改用1024×1024像素的芯片(成本將隨之增加)。譯碼可靠性高。目前得到的誤碼率不超過6萬分之一,并且還在不斷改進,期望誤碼率不超過2000萬分之一。采用RS-232通訊接口,將獲取的二維條碼信息實時上傳給計算機顯示處理。糾錯等級達到8級,糾錯能力強。
二維條碼掃描器系統框圖如圖(1)所示。CMOS圖像傳感芯片為光電轉換元件,用與采集二維條碼圖像,直接輸出為數字信號。由外部擴展SRAM存儲該數據,再送到DSP,進行圖像處理、碼字分割、碼字識別、信號糾錯等,當一組二維條碼信息的識別完成以后,服務程序控制I/O接口給出中斷申請信號,DSP響應此中斷申請,進入中斷服務程序。譯碼后的二維條碼數據從I/O口經SCI RS-232傳送至計算機,并在屏幕上顯示。軟件程序和PDF417碼本都儲存在DSP芯片中的FLASH內,而動態采集到的二維條碼圖象數據則儲存在SRAM內。
圖1 二維條碼掃描器框圖
系統硬件設計
系統硬件電路主要包括以下七個部分:條碼圖象采集電路、DSP主控電路、存儲器擴展電路、輸出接口電路、復位與時鐘電路、電源控制電路、照明控制電路。
條碼圖象采集電路
該電路以OV7120黑白圖像傳感芯片為核心,該芯片分辨率達到640×480像素,成像速度為30幀/秒,采取逐行掃描方式,輸出為數字信號。此芯片功耗低,價格便宜,雖然CCD芯片在信噪比、靈敏度、成像質量等方面優于CMOS芯片,但在本系統設計中,采用CMOS芯片較為合適。
條碼圖像采集電路(圖2)中,Y0-Y7為總線數字輸出,HREF為水平參考信號,即行掃描信號;VSYN為垂直同步信號,即場同步信號。PCLK為像素時鐘輸出。該電路使用5V直流電,由電源控制電路提供。雖然該芯片使用5V工作電壓,但它提供3.3V的I/O口,所以它可以與I/O電壓為3.3V的DSP直接相連接,不需要電平轉換。當DSP接收到VSYN信號時,表示芯片開始采集幀條碼圖像數據,隨后接收到HREF信號,芯片開始進行行的數據采集,每來一個PCLK信號,芯片就采集一個像素點的信號,當DSP接收到下一個HREF信號,芯片就進行第二行的數據采集,直到采集完640行的數據,芯片停止采集。當DSP收到下一個VSYN信號時,表示芯片采集下一幀的數據。
圖2 條碼圖象采集電路框圖
DSP主控電路
如圖1所示,該電路以DSP56F826為核心。當OV7120圖像傳感芯片準備采集條碼圖像數據時,DSP發出一個初始信號,控制SRAM重新分配地址塊,同時圖像傳感芯片開始采集條碼圖象數據。采集完數據并送到SRAM中儲存后,DSP開始調用處理程序對數據進行譯碼,譯碼完成后,通過SCI RS-232將數據傳輸到計算機。
存儲器擴展電路
由于DSP56F826片內提供的RAM只有4.5K字,而RAM中需存放大量動態采集到的條碼圖象數據,從條碼采集電路傳送過來的數據按如下計算:
640×480×4-bit = 1228800 bits