基於DSP56F826晶元的二維條碼掃描器系統設計方案

   時間:2014-03-12 23:00:34
基於DSP56F826晶元的二維條碼掃描器系統設計方案簡介
系統框圖  系統以DSP56F826晶元為核心控制模塊, 使用CMOS數字圖像感測晶元,圖像採集解析度可……
基於DSP56F826晶元的二維條碼掃描器系統設計方案正文

  系統框圖
系統以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內。
系統硬體電路主要包括以下七個部分:條碼圖象採集電路、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
所以我們選用128K×16-bit 的IS61LV12816作為外部擴展,來滿足系統需要。
DSP56F826為外部地址匯流排和外部數據匯流排分別提供了16個引腳,為匯流排控制提供了4個引腳,給擴展外圍電路提供了方便。我們採用分開程序區和數據區的介面方法,採用程序選通線(/PS)接SRAM的A0地址線來實現。因此,數據區為SRAM的前64K(0000H_FFFFH),程序區為SRAM的后64K(10000H_1FFFFH)。對DSP而言,數據區和程序區的地址均為0000H_FFFFH。
輸出介面電路
該電路使用非同步串口RS-232,選用MAX202E晶元作為電平轉換收發器。該晶元最高數據處理速率可達120Kbps,滿足傳送二維條碼數據的要求。經過DSP解碼后的數據信號TXD0通過T1IN引腳進入MAX202E,信號的電平被提高后,經T1OUT引腳輸出,再通過SCI RS-232介面中的TXD口,將解碼后數據傳送給計算機。R1IN為接收輸入信號,R1OUT為接收輸出信號。
複位與時鐘電路
雖然DSP內置了COP模塊,可以完成watchdog功能,當DSP內核電壓VDD低於2.2V或者I/O口電壓VDDIO低於2.7V,系統自動複位。我們還專門加了外部RESET,防止系統受到外界干擾或電源波動時出現死機現象。
DSP56F826的系統時鐘由晶振提供。我們用DSP晶元內部提供的晶振電路,在EXTAL和XTAL之間接一外部晶體(4MHz)。
電源控制電路
輸入5V的直流電作為整個系統的電源。由於圖像感測晶元OV7120使用5V電源,MAX202E用5V電源,外部SRAM用3.3V電源,DSP56F826 Core用2.5V電源,而DSP56F826 的I/O口用3.3V電源,所以電源分三路輸出。
照明控制電路
採用主動光源,用三個發光二極體給條碼採集提供照明,便於二維條碼圖象的定標。當開始採集圖象數據時,DSP輸出一控制信號,驅動發光二極體工作。採集結束后,在DSP控制下停止工作。
系統部分電路圖示於圖3。圖3 部分硬體電路圖
系統軟體設計
二維條碼掃描器開始工作時,首先採集二維條碼圖象數據,由於實際工作中條碼圖象會出現污損等情況,對碼字的正確譯出造成影響,所以必須對採集到的圖象進行降噪、校正等處理。條碼圖象為灰度圖象,對其進行二值化才能進行碼字識別。在將PDF417碼的所有碼字正確分割后,以查表方式在碼本中查找與碼字相對應的值,將編碼數據譯出。為確認掃描的有效性,必須進行前向錯誤校驗。如出錯,則進行糾錯。最後,將解碼的正確數據傳輸到上位計算機或直接進行處理顯示。軟體框圖如圖4所示。
降噪處理
圖象採集晶元OV7120成像速度為30幀/秒,但是在實際操作過程中,會有人手抖動、條碼圖象移動等情況產生,採集時間過長,就會導致每幀圖象之間的差別相當大,進而造成很大的識別誤差,所以在每一次掃描時,我們只取三幀圖象,所用時間為 :(1 / 30 ) × 3 = 0.1 s ,可以忽略人手抖動等影響。設採集到的三幀圖象為I1 (x , y) 、I2 (x , y) 、I3 (x , y) , 每幀的雜訊方差為σ2,取平均可得到:
I (x , y) = I (x , y)的雜訊方差為σ2/3 。
可見此方法可以有效降噪。我們不採用常見的中值濾波、Butterworth濾波等方法,是因為一個碼字佔有3、4個像素點,用中值或Butterworth濾波處理污損的圖象,將對圖象造成結構性的破壞。
圖象二值化
首先統計出圖象的直方圖,然後用Bayesian最佳分類器,確定最佳二值化門限電平,實現對圖象的二值化處理。此二值化門限電平必須是動態調整的,因為每次的光照等外界條件是不同的,每掃描一次條碼,就必須確定一個新的二值化門限電平。動態採集到的條碼圖象有300K像素點,但只需要取圖象中間區域進行統計直方圖,取中間的64×64個像素點,平均每統計一個像素點需要2個指令周期,可算得統計直方圖總共需要64×64×2=8192個指令周期。確定二值化門限電平需要約2000個指令周期,由此可計算所用時間約為:(8192+2000)/ 40000000 = 0.00025 s。
碼字識別與信號糾錯
在碼字分割完成之後,採用模板匹配方式,在固定的碼本中查找與碼字相對應的值,將碼字譯出。這裡不需要用到神經網路,因為PDF417碼字模式非常標準,用簡單的模板匹配即可完成,不需複雜化。對一個碼字進行模板匹配需要8000個指令周期,平均每個二維條碼包含500個碼字,則進行模板匹配總共需要時間為:8000×500 / 40000000 = 0.1 s 。為確保解碼的有效性,使用R-S錯誤控制碼對碼字進行檢錯和糾錯,每個碼字的檢錯和糾錯需要用100個指令周期,所以總共需要100×500 / 40000000 = 0.00125 s的時間來完成二維條碼數據糾錯。
結語
所設計的二維條碼掃描器用DSP56F826晶元為系統核心,採用優化演演算法,可以快速高效地對二維條碼進行識別處理。

[基於DSP56F826晶元的二維條碼掃描器系統設計方案],你可能也喜歡

  • 基於裝配之設計
  • pro e螺旋掃描
  • pro e螺旋掃描教學
  • proe掃描混成
  • proe螺紋掃描
  • proe掃描長出
  • 3d列印掃描器概念股
  • 二維條碼掃瞄器
  • 雷射條碼掃瞄器
  • 二維電泳原理
  • 條碼貼紙印刷
  • 台南條碼印刷
  • 條碼印刷顏色
  • 二維條碼三維條碼
  • 三維二維轉換
  • 二維條碼變三維條碼
  • epson gt s85掃描器
  • 三維條碼掃描器
  • 機械零件圖利用掃描器直接輸入計算機形成的是向量圖形
Bookmark the permalink ,來源:
One thought on “基於DSP56F826晶元的二維條碼掃描器系統設計方案