基于DSP56F826芯片的二維條碼掃描器系統(tǒng)
系統(tǒng)框圖
本文引用地址:http://www.ex-cimer.com/article/151550.htm系統(tǒng)以DSP56F826芯片為核心控制模塊, 使用CMOS數(shù)字圖像傳感芯片,圖像采集分辨率可達(dá)640×480像素。當(dāng)需要進(jìn)行高分辨率的圖象采集時(shí),可改用1024×1024像素的芯片(成本將隨之增加)。譯碼可靠性高。目前得到的誤碼率不超過6萬分之一,并且還在不斷改進(jìn),期望誤碼率不超過2000萬分之一。采用RS-232通訊接口,將獲取的二維條碼信息實(shí)時(shí)上傳給計(jì)算機(jī)顯示處理。糾錯(cuò)等級(jí)達(dá)到8級(jí),糾錯(cuò)能力強(qiáng)。
二維條碼掃描器系統(tǒng)框圖如圖(1)所示。CMOS圖像傳感芯片為光電轉(zhuǎn)換元件,用與采集二維條碼圖像,直接輸出為數(shù)字信號(hào)。由外部擴(kuò)展SRAM存儲(chǔ)該數(shù)據(jù),再送到DSP,進(jìn)行圖像處理、碼字分割、碼字識(shí)別、信號(hào)糾錯(cuò)等,當(dāng)一組二維條碼信息的識(shí)別完成以后,服務(wù)程序控制I/O接口給出中斷申請(qǐng)信號(hào),DSP響應(yīng)此中斷申請(qǐng),進(jìn)入中斷服務(wù)程序。譯碼后的二維條碼數(shù)據(jù)從I/O口經(jīng)SCI RS-232傳送至計(jì)算機(jī),并在屏幕上顯示。軟件程序和PDF417碼本都儲(chǔ)存在DSP芯片中的FLASH內(nèi),而動(dòng)態(tài)采集到的二維條碼圖象數(shù)據(jù)則儲(chǔ)存在SRAM內(nèi)。
圖1 二維條碼掃描器框圖
系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)硬件電路主要包括以下七個(gè)部分:條碼圖象采集電路、DSP主控電路、存儲(chǔ)器擴(kuò)展電路、輸出接口電路、復(fù)位與時(shí)鐘電路、電源控制電路、照明控制電路。
條碼圖象采集電路
該電路以O(shè)V7120黑白圖像傳感芯片為核心,該芯片分辨率達(dá)到640×480像素,成像速度為30幀/秒,采取逐行掃描方式,輸出為數(shù)字信號(hào)。此芯片功耗低,價(jià)格便宜,雖然CCD芯片在信噪比、靈敏度、成像質(zhì)量等方面優(yōu)于CMOS芯片,但在本系統(tǒng)設(shè)計(jì)中,采用CMOS芯片較為合適。
條碼圖像采集電路(圖2)中,Y0-Y7為總線數(shù)字輸出,HREF為水平參考信號(hào),即行掃描信號(hào);VSYN為垂直同步信號(hào),即場(chǎng)同步信號(hào)。PCLK為像素時(shí)鐘輸出。該電路使用5V直流電,由電源控制電路提供。雖然該芯片使用5V工作電壓,但它提供3.3V的I/O口,所以它可以與I/O電壓為3.3V的DSP直接相連接,不需要電平轉(zhuǎn)換。當(dāng)DSP接收到VSYN信號(hào)時(shí),表示芯片開始采集第一幀條碼圖像數(shù)據(jù),隨后接收到HREF信號(hào),芯片開始進(jìn)行第一行的數(shù)據(jù)采集,每來一個(gè)PCLK信號(hào),芯片就采集一個(gè)像素點(diǎn)的信號(hào),當(dāng)DSP接收到下一個(gè)HREF信號(hào),芯片就進(jìn)行第二行的數(shù)據(jù)采集,直到采集完640行的數(shù)據(jù),芯片停止采集。當(dāng)DSP收到下一個(gè)VSYN信號(hào)時(shí),表示芯片采集下一幀的數(shù)據(jù)。
圖2 條碼圖象采集電路框圖
DSP主控電路
如圖1所示,該電路以DSP56F826為核心。當(dāng)OV7120圖像傳感芯片準(zhǔn)備采集條碼圖像數(shù)據(jù)時(shí),DSP發(fā)出一個(gè)初始信號(hào),控制SRAM重新分配地址塊,同時(shí)圖像傳感芯片開始采集條碼圖象數(shù)據(jù)。采集完數(shù)據(jù)并送到SRAM中儲(chǔ)存后,DSP開始調(diào)用處理程序?qū)?shù)據(jù)進(jìn)行譯碼,譯碼完成后,通過SCI RS-232將數(shù)據(jù)傳輸?shù)接?jì)算機(jī)。
存儲(chǔ)器擴(kuò)展電路
由于DSP56F826片內(nèi)提供的RAM只有4.5K字,而RAM中需存放大量動(dòng)態(tài)采集到的條碼圖象數(shù)據(jù),從條碼采集電路傳送過來的數(shù)據(jù)按如下計(jì)算:
640×480×4-bit = 1228800 bits
所以我們選用128K×16-bit 的IS61LV12816作為外部擴(kuò)展,來滿足系統(tǒng)需要。
DSP56F826為外部地址總線和外部數(shù)據(jù)總線分別提供了16個(gè)引腳,為總線控制提供了4個(gè)引腳,給擴(kuò)展外圍電路提供了方便。我們采用分開程序區(qū)和數(shù)據(jù)區(qū)的接口方法,采用程序選通線(/PS)接SRAM的A0地址線來實(shí)現(xiàn)。因此,數(shù)據(jù)區(qū)為SRAM的前64K(0000H_FFFFH),程序區(qū)為SRAM的后64K(10000H_1FFFFH)。對(duì)DSP而言,數(shù)據(jù)區(qū)和程序區(qū)的地址均為0000H_FFFFH。
輸出接口電路
該電路使用異步串口RS-232,選用MAX202E芯片作為電平轉(zhuǎn)換收發(fā)器。該芯片最高數(shù)據(jù)處理速率可達(dá)120Kbps,滿足傳送二維條碼數(shù)據(jù)的要求。經(jīng)過DSP譯碼后的數(shù)據(jù)信號(hào)TXD0通過T1IN引腳進(jìn)入MAX202E,信號(hào)的電平被提高后,經(jīng)T1OUT引腳輸出,再通過SCI RS-232接口中的TXD口,將譯碼后數(shù)據(jù)傳送給計(jì)算機(jī)。R1IN為接收輸入信號(hào),R1OUT為接收輸出信號(hào)。
復(fù)位與時(shí)鐘電路
雖然DSP內(nèi)置了COP模塊,可以完成watchdog功能,當(dāng)DSP內(nèi)核電壓VDD低于2.2V或者I/O口電壓VDDIO低于2.7V,系統(tǒng)自動(dòng)復(fù)位。我們還專門加了外部RESET,防止系統(tǒng)受到外界干擾或電源波動(dòng)時(shí)出現(xiàn)死機(jī)現(xiàn)象。
DSP56F826的系統(tǒng)時(shí)鐘由晶振提供。我們用DSP芯片內(nèi)部提供的晶振電路,在EXTAL和XTAL之間接一外部晶體(4MHz)。
評(píng)論