夏振春,丁萬山
(南京航空航天大學(xué) 自動(dòng)化學(xué)院,江蘇 南京 210016)
實(shí)際采集到的條碼圖像中往往夾雜著背景信息,而真正對(duì)條碼識(shí)別有用的是條碼區(qū)域信息,因此,盡量減少無用信息的采集對(duì)條碼識(shí)別工作具有舉足輕重的意義。不同的應(yīng)用場(chǎng)合下,條碼區(qū)域的尺寸各不相同,因此這就需要圖像采集設(shè)備能夠根據(jù)實(shí)際情況自動(dòng)調(diào)節(jié)圖像分辨率,減少不必要信息的采集。傳統(tǒng)面陣CCD或攝像頭等圖像采集設(shè)備出廠時(shí)分辨率就已經(jīng)固定,無法在不改變硬件結(jié)構(gòu)的條件下做到分辨率自動(dòng)調(diào)節(jié)。文中提出一種基于接觸式圖像傳感器(CIS)和ARM9處理器的條碼圖像采集系統(tǒng),能夠根據(jù)實(shí)際需要自動(dòng)調(diào)節(jié)掃描行數(shù)從而達(dá)到調(diào)節(jié)分辨率的目的。
條碼圖像的采集是整套系統(tǒng)的核心部分,它直接影響著系統(tǒng)的整體性能[1]。CIS每次掃描得到一行像素值,因此,必須配合橫向(垂直于CIS方向)運(yùn)動(dòng)才能完成一幅二維圖像的掃描。為保證圖像的準(zhǔn)確采集,必須精確控制平臺(tái)的運(yùn)動(dòng)速度與CIS換行信號(hào)之間的關(guān)系[2]。本系統(tǒng)采用減速電機(jī)配合光電旋轉(zhuǎn)編碼器的方案來協(xié)調(diào)兩者之間的關(guān)系。條碼圖像采集平臺(tái)的整體結(jié)構(gòu)框圖,如圖1所示。
圖1 條碼圖像采集平臺(tái)
采用接觸式圖像傳感器(CIS)作為圖像采集器件,其輸出的像素值信號(hào)(模擬電壓信號(hào))經(jīng)過信號(hào)調(diào)理電路進(jìn)行差分、放大、去噪等,送入高速A/D轉(zhuǎn)換器TLC5540轉(zhuǎn)換為對(duì)應(yīng)像素灰度的數(shù)字量,然后經(jīng)FIFO緩存之后由ARM9讀入內(nèi)存,最后傳入PC機(jī)。
接觸式圖像傳感器[3]CIS(Contact Image Sensor)是一種新型的光電圖像傳感器。它具有體積小、重量輕、功耗低、結(jié)構(gòu)緊湊、連接方便等優(yōu)點(diǎn),近幾年在傳真機(jī)、掃描儀、復(fù)印機(jī)和其它獨(dú)特的圖像掃描儀器等領(lǐng)域得到了廣泛應(yīng)用。本系統(tǒng)采用的SV643C10型CIS,其物理分辨率為600 dpi(23.6 dots/mm),有效掃描寬度為29.2 mm,共688個(gè)傳感器像素單元。
CIS的讀操作時(shí)序[4]如圖2所示。SP的上升沿過后,一輪掃描開始,第一個(gè)像素的有效信號(hào)發(fā)生在第27個(gè)時(shí)鐘周期處,所以,從第一個(gè)CP開始共52個(gè)Vout信號(hào)為無效像素信號(hào)。由于此CIS有688個(gè)傳感器像素單元,所以Vout引腳從第27個(gè)CP開始,依次輸出688個(gè)有效信號(hào),此后Vout引腳輸出無效信號(hào),直到下一個(gè)SP上升沿產(chǎn)生,觸發(fā)新一輪的掃描。
圖2 讀操作時(shí)序圖
為準(zhǔn)確獲取一幅完整二維條碼圖像,必須協(xié)調(diào)好橫向運(yùn)動(dòng)速度與CIS之間的關(guān)系。本運(yùn)動(dòng)平臺(tái)由減速電機(jī)、光電編碼器和傳送機(jī)構(gòu)組成。其中光電編碼器由光電開關(guān)(GK152)和光柵盤組成,光柵盤與減速電機(jī)同軸。光電編碼器產(chǎn)生的信號(hào)送給可編程邏輯器件(CPLD),作為CIS換行信號(hào)。在平臺(tái)的前端靠近CIS處再安裝一個(gè)GK152光電開關(guān),產(chǎn)生的信號(hào)送給CPLD,作為整幅圖像的啟動(dòng)、停止控制信號(hào)。
該部分主要完成對(duì)CIS信號(hào)的差分、放大等功能,以達(dá)到降噪以及提高驅(qū)動(dòng)電壓的目的。具體電路實(shí)現(xiàn),如圖3所示。
圖3 信號(hào)調(diào)理電路
本系統(tǒng)選擇高速A/D轉(zhuǎn)換器TLC5540,采用單一5 V電源供電,8位分辨率,最大采樣率為40 msps,完全滿足系統(tǒng)需求。CIS輸出的電信號(hào)經(jīng)過濾波放大后達(dá)到接近A/D轉(zhuǎn)換電路的滿度值2 V,然后送入TLC5540的19引腳;當(dāng)TLC5540輸出使能為低時(shí)輸出數(shù)據(jù)有效。由于TLC5540沒有片選信號(hào),只有輸出使能控制,只要輸出使能為低就一直向總線上送入數(shù)據(jù),該信號(hào)一直有效,時(shí)鐘信號(hào)clk由CPLD提供,記作ad_clk。TLC5540的8根數(shù)據(jù)線首先經(jīng)過一個(gè)具有三態(tài)功能的總線驅(qū)動(dòng)器74lv245(常選通),然后再送入FIFO,這樣不僅可以提高電路驅(qū)動(dòng)能力,而且還可以起到電平轉(zhuǎn)換的作用。
采用三星公司的ARM9系列S3C2410A作為處理器,工作頻率可達(dá)到203 MHz,可以滿足實(shí)時(shí)性要求。它負(fù)責(zé)完成圖像的存儲(chǔ)、預(yù)處理以及與PC機(jī)的通訊等工作。
由于A/D輸出頻率僅為10 MHz,而S3C2410A最大處理速度可達(dá)203 MHz,為減少由于速度不匹配帶來的等待時(shí)間,提高系統(tǒng)工作效率,在高速A/D轉(zhuǎn)換器與處理器之間要加一個(gè)FIFO作為高速數(shù)據(jù)存儲(chǔ)器。選用Averlogic公司的1 M×8 bit的AL4V8M440[5,6]。FIFO的讀信號(hào)RE由S3C2410的通用片選信號(hào)nGCS6來控制,這樣將地址FIFO映射到S3C2410的0x30000000開始地址空間,ARM對(duì)FIFO讀取操作即可將數(shù)據(jù)寫入相應(yīng)地址單元中,接口連接圖,如圖4所示。
圖4 A/D、FIFO以及ARM9連接圖
負(fù)責(zé)提供CIS的CP和SP信號(hào),A/D的ad_clk以及FIFO的寫及寫復(fù)位信號(hào)等。其輸入時(shí)鐘為10 MHz,除此之外輸入信號(hào)還有CIS換行信號(hào)CR,采集啟停信號(hào)EN。文中采用的芯片是Altera公司的EPM7128SLC84-15。
為配合CIS的穩(wěn)定工作及圖像的準(zhǔn)確采集,各驅(qū)動(dòng)信號(hào)之間必須有嚴(yán)格的時(shí)序關(guān)系[7]。在Max+plus II開發(fā)環(huán)境采用VHDL語言進(jìn)行各種驅(qū)動(dòng)時(shí)序及控制信號(hào)的設(shè)計(jì)。其頂層文件采用圖形法,如圖5所示,其中,CR為CIS換行信號(hào);EN為啟、停信號(hào);clk為全局時(shí)鐘;cp為CIS時(shí)鐘脈沖輸入;SP為CIS幀啟動(dòng)信號(hào);FIFO_WCLK為FIFO寫時(shí)鐘;ad_clk為A/D轉(zhuǎn)換時(shí)鐘;FIFO_WRST為FIFO寫復(fù)位信號(hào)。
仿真結(jié)果,如圖6所示,為便于觀察,仿真時(shí)序中對(duì)時(shí)鐘及計(jì)數(shù)器大小進(jìn)行了調(diào)整。
系統(tǒng)的軟件設(shè)計(jì)主要包括對(duì)ARM的編程和對(duì)CPLD的編程兩個(gè)部分,下面就條碼圖像采集的整個(gè)程序流程作簡(jiǎn)要敘述,系統(tǒng)程序流程圖,如圖7所示。
圖7 采集流程圖
系統(tǒng)上電經(jīng)過一系列初始化后便進(jìn)入等待狀態(tài),等待CIS啟動(dòng)信號(hào),一旦啟動(dòng),在幀啟動(dòng)信號(hào)(SP)有效之后便對(duì)CP信號(hào)進(jìn)行計(jì)數(shù),計(jì)數(shù)器為counter,當(dāng)counter=27時(shí),啟動(dòng)A/D開始轉(zhuǎn)換,CPLD將數(shù)據(jù)寫入FIFO;當(dāng)counter=344時(shí),停止采集,等待下一次幀啟動(dòng)有效(CIS在CP一個(gè)周期內(nèi)產(chǎn)生兩個(gè)像素值信號(hào))。
ARM9等待FIFO的滿信號(hào),一旦有效,便將FIFO寫指針復(fù)位并開始從FIFO讀取數(shù)據(jù),存到SDRAM中;若FIFO為空,則將讀指針復(fù)位。判斷SDRAM空間是否存滿,若滿,則結(jié)束;否則繼續(xù)判斷是否采集完。如果數(shù)據(jù)采集完畢,即結(jié)束,等待下次CIS啟動(dòng)信號(hào)有效。為驗(yàn)證采集結(jié)果的正確性,系統(tǒng)采集完圖像之后,將數(shù)據(jù)打包傳送到PC機(jī)上進(jìn)行顯示、存儲(chǔ)等,以供后續(xù)條碼識(shí)別。采集結(jié)果如圖8所示,可以看出,本系統(tǒng)采集的圖像紋理清晰,完全能夠達(dá)到條碼識(shí)別的分辨率要求,并且大大減少了無用信息的采集。
利用CIS傳感器配合運(yùn)動(dòng)平臺(tái)實(shí)現(xiàn)了圖像分辨率的動(dòng)態(tài)可調(diào),圖像分辨率為688,其中,x值可根據(jù)條碼實(shí)際尺寸及SDRAM內(nèi)存空間大小自動(dòng)調(diào)整。既能滿足條碼識(shí)別系統(tǒng)對(duì)條碼圖像細(xì)節(jié)及分辨率的要求,又能較好的避免大量無用信息的采集,提高了條碼識(shí)別的效率。
圖8 系統(tǒng)采集結(jié)果
[1] 徐大誠,翁桂榮.線陣CCD數(shù)據(jù)的高速采集系統(tǒng)[J].傳感器技術(shù),2002(9):45-50.
[2] 李紅梅,陳敏聰,陳子瑜,等.線陣CCD數(shù)據(jù)獲取方法研究與設(shè)計(jì)[J].電子測(cè)量技術(shù),2008(6):125-128.
[3] 深圳矽感科技有限公司.SV643C10使用手冊(cè)[Z].深圳:深圳矽感科技有限公司,2003.
[4] 米本和也.CCD/CMOS圖像傳感器基礎(chǔ)與應(yīng)用[M].陳榕庭,彭美桂,譯.北京:科學(xué)出版社,2006.
[5] 趙劼,劉鐵根,李晉申.基于DM642的高速圖像識(shí)別系統(tǒng)設(shè)計(jì)[J].電子測(cè)量與儀器學(xué)報(bào),2007,21(1):86-89.
[6] 楊玉春,畢貴紅,丁喜波.利用FIFO和DMA實(shí)現(xiàn)線陣CCD高速數(shù)據(jù)采集[J].哈爾濱理工大學(xué)學(xué)報(bào),2000,5(3):78-80.
[7] 林德輝,道克剛,鐘紹俊.基于CPLD的線陣CCD驅(qū)動(dòng)時(shí)序的設(shè)計(jì)與實(shí)現(xiàn)[J].儀表技術(shù),2008(4):22-23.