摘 要: 為了快速、準(zhǔn)確地測(cè)量閉合圖形的面積,設(shè)計(jì)了由接觸式圖像傳感器(CIS)、步進(jìn)電機(jī)、掃描平臺(tái)和MC9S12XS128微控制器系統(tǒng)組成的數(shù)字式求積儀。通過(guò)步進(jìn)電機(jī)使圖像傳感器沿導(dǎo)桿勻速水平運(yùn)動(dòng),掃描玻璃平板上白紙上的圖形。單片機(jī)采集圖像信號(hào)并進(jìn)行點(diǎn)陣識(shí)別,根據(jù)捕捉到的兩點(diǎn)之間的時(shí)間間隔和圖像傳感器移動(dòng)速度,通過(guò)數(shù)值積分求出圖形面積,并在液晶顯示器上顯示。實(shí)驗(yàn)結(jié)果表明,完成一幅圖形的測(cè)量只需12 s,橫向和縱向分辨率分別為600 dpi和254 dpi,完全滿足實(shí)驗(yàn)教學(xué)的要求。
關(guān)鍵詞: 數(shù)字式求積儀; MC9S12XS128; CIS; 步進(jìn)電機(jī); 圖形面積
求積儀是一種專供測(cè)定不規(guī)則圖形面積的儀器,廣泛應(yīng)用于土地規(guī)劃、氣象、水利工程、房地產(chǎn)和森林管理等方面[1]。目前實(shí)驗(yàn)室使用的大多是滾動(dòng)式機(jī)械求積儀,任意閉合圖形的面積可以理解為在直角坐標(biāo)系中的矩形微元(線性求積儀)或極坐標(biāo)系中的扇形微元(極式求積儀)的累加。使用時(shí),將重錘底部小針固定在圖紙上,描跡針按順時(shí)針?lè)较蜓胤忾]圖形的輪廓線移動(dòng)一周,測(cè)輪和游標(biāo)等組成的微測(cè)機(jī)構(gòu)將測(cè)輪轉(zhuǎn)動(dòng)的弧長(zhǎng)轉(zhuǎn)換為測(cè)輪的分劃值,在計(jì)數(shù)盤與測(cè)輪游標(biāo)上讀取圖形的面積。機(jī)械式求積儀的主要缺點(diǎn)是人工操作會(huì)帶來(lái)測(cè)量誤差, 如循跡偏差、始點(diǎn)重合度以及圖面粗糙度引起滾輪滑動(dòng)等?,F(xiàn)有的數(shù)字式求積儀采用光柵或光電編碼器,雖然消除了測(cè)量機(jī)構(gòu)的機(jī)械誤差,但由于仍采用描跡的方法,并不能消除人為誤差。
無(wú)需描跡和自動(dòng)測(cè)量最便捷的方法是采用線陣圖像傳感器電荷耦合器件CCD(Charged Couple Device)和接觸式圖像傳感器CIS(Contact Image Sensor),CCD和CIS已經(jīng)被廣泛用于掃描儀和數(shù)碼攝像機(jī)等成像系統(tǒng)[2-3]。
與CCD相比,CIS具有尺寸小、結(jié)構(gòu)緊湊、獨(dú)立LED光源、單時(shí)鐘/定時(shí)邏輯、功耗小、成本低等一系列優(yōu)點(diǎn)[4]。為此,本文基于CIS設(shè)計(jì)了數(shù)字式求積儀。
1 數(shù)字式求積儀總體設(shè)計(jì)
通過(guò)對(duì)佳能掃描儀LIDE20進(jìn)行改裝,利用掃描儀自帶的CIS、步進(jìn)電機(jī)和掃描平臺(tái),加裝基于MC9S12XS128單片機(jī)的控制系統(tǒng)、光電開(kāi)關(guān)和LCD顯示器,構(gòu)成圖1所示的數(shù)字式求積儀。
求積儀的工作方式類似于掃描儀,將具有任意圖形的白紙置于玻璃平板上,接通電源并按下啟動(dòng)按鈕,在單片機(jī)的控制下,CIS將每個(gè)像素的灰度值以模擬電壓形式通過(guò)串行移位方式輸出[5]。每個(gè)像素的電壓信號(hào)經(jīng)過(guò)比較放大后,由單片機(jī)的輸入捕捉模塊計(jì)量橫向兩點(diǎn)對(duì)應(yīng)的時(shí)間,并根據(jù)采樣頻率轉(zhuǎn)換成線距。同時(shí),單片機(jī)控制步進(jìn)電機(jī),通過(guò)傳動(dòng)系統(tǒng)使CIS沿著導(dǎo)軌以固定速度勻速縱向前進(jìn),每前進(jìn)一個(gè)固定距離(如0.1 mm), CIS完成一次橫向掃描。通過(guò)對(duì)所有有效網(wǎng)格面積進(jìn)行數(shù)值積分,便可得到封閉線條的面積。
2 硬件電路設(shè)計(jì)
2.1 CIS
CIS的型號(hào)為FH7-7881,由柱狀透鏡陣列、LED 光源和線性 CMOS 圖像傳感器構(gòu)成,并集成在一個(gè)條狀盒內(nèi)。傳感器可掃描彩色和黑白圖像,彩色光源有紅光、藍(lán)光和綠光,本系統(tǒng)只用藍(lán)光。傳感器電源電壓為 3.3 V,最大電流為60 mA。掃描寬度為216 mm,分辨率為600 dpi(點(diǎn)數(shù)/英寸)。
2.2 步進(jìn)電機(jī)及其驅(qū)動(dòng)電路
二相微型步進(jìn)電機(jī)通過(guò)齒輪組和帶輪來(lái)移動(dòng)CIS,步距角為18°。為了滿足步進(jìn)電機(jī)驅(qū)動(dòng)要求,設(shè)計(jì)了驅(qū)動(dòng)電路,如圖4所示。驅(qū)動(dòng)芯片為THB6128,內(nèi)置雙全橋MOSFET,峰值電流可達(dá)2.2 A, 工作電流1.5 A,最高耐壓36 V,具有8種細(xì)分模式。
CLK_1為脈沖信號(hào)輸入端,CW_1為正/反轉(zhuǎn)信號(hào)輸入端,ENABLE為使能信號(hào)控制端,OUT1A和OUT2A為A相OUTA輸出端,OUT1B和OUT2B為B相OUTB輸出端 。當(dāng)THB6128的ENABLE引腳置1,CLK_1引腳輸入一定頻率的脈沖波時(shí),步進(jìn)電機(jī)轉(zhuǎn)動(dòng),轉(zhuǎn)速通過(guò)CLK_1引腳輸入的脈沖頻率調(diào)節(jié),轉(zhuǎn)向由CW_1引腳的電平?jīng)Q定。
2.3 光電開(kāi)關(guān)
導(dǎo)軌的兩端分別設(shè)置一個(gè)用于限位的槽型(U形)紅外光電開(kāi)關(guān),由發(fā)射管和接收管組合而成。同時(shí),在CIS固定架上兩端分別安裝一個(gè)金屬擋片。當(dāng)金屬擋片進(jìn)入槽內(nèi)時(shí),發(fā)射管發(fā)射的紅外光被阻斷,接收管的輸出端將產(chǎn)生電平變化。光電開(kāi)關(guān)輸出的電壓經(jīng)過(guò)整形后,輸入到單片機(jī)外部中斷輸入引腳,分別作為CIS的起始、停止和返回位置信號(hào),單片機(jī)據(jù)此判斷傳感器移動(dòng)的兩個(gè)端點(diǎn)。
2.4 LCD1602顯示器
LCD顯示器用于顯示計(jì)算的圖形面積,為字符型點(diǎn)陣液晶顯示器組件LCD1602,可用來(lái)顯示字母、數(shù)字和符號(hào)等,顯示內(nèi)容為16×2個(gè)字符。LCD1602的工作電壓為5 V,工作電流為2.0 mA。接口部分包括背光電源LED+、LED-,數(shù)據(jù)/命令選擇RS、讀/寫選擇R/W、使能信號(hào)E、雙向8位數(shù)據(jù)線D0~D7引腳等。
2.5 MC9S12XS128單片機(jī)系統(tǒng)
求積儀的控制電路由核心電路、CIS信號(hào)比較電路、步進(jìn)電機(jī)驅(qū)動(dòng)電路、LCD顯示器接口電路和光電開(kāi)關(guān)信號(hào)整形電路等部分組成。其中,MC9S12XS128是高性能16位單片機(jī),具有速度快、功能強(qiáng)、成本低、功耗低等特點(diǎn)。內(nèi)部集成有128 KB的Flash存儲(chǔ)器,8通道24位中斷定時(shí)器,8通道16位定時(shí)器,8通道PWM波輸出和8通道12位精度的A/D轉(zhuǎn)換器,并帶有CAN、SPI和UART等通信接口[6]。
單片機(jī)產(chǎn)生CIS和步進(jìn)電機(jī)工作時(shí)所需的各種控制信號(hào),其中,采集觸發(fā)信號(hào)SI由輸出比較模塊產(chǎn)生,時(shí)鐘頻率CLK信號(hào)由脈寬調(diào)制模塊(PWM)產(chǎn)生,步進(jìn)脈沖由實(shí)時(shí)中斷功能產(chǎn)生。單片機(jī)的通用I/O口PORTA與LCD顯示器的8位數(shù)據(jù)線相連,PORTB作為控制和命令口。
為了區(qū)別圖形像素的灰度值,可以把圖像信號(hào)通過(guò)A/D轉(zhuǎn)換,根據(jù)固定閾值分割算法[7],設(shè)置一個(gè)區(qū)別白色像素和黑色像素的閾值,利用軟件來(lái)判斷。本文利用硬件的方法區(qū)分圖形的有效像素點(diǎn),即沒(méi)有利用單片機(jī)的片內(nèi)A/D模塊對(duì)CIS輸出信號(hào)進(jìn)行量化,而是設(shè)置一個(gè)門限值,采用高精度比較器LM2091將圖像信號(hào)電壓轉(zhuǎn)換成高、低電平,高電平對(duì)應(yīng)白色像素,低電平對(duì)應(yīng)黑色像素。通過(guò)單片機(jī)的輸入捕捉模塊對(duì)放大比較后的CIS輸出信號(hào)SIG進(jìn)行捕捉計(jì)時(shí),確定兩條線距對(duì)應(yīng)的時(shí)間間隔。
3 軟件實(shí)現(xiàn)
數(shù)字式求積儀的軟件包括主程序、圖像采集子程序、步進(jìn)電機(jī)控制子程序、各種中斷子程序以及有效網(wǎng)格面積計(jì)算和圖形數(shù)值積分程序等模塊。
3.1 圖像采集程序
圖像采集軟件流程圖如圖5所示。進(jìn)入圖像采集程序后,首先進(jìn)行PWM模塊和增強(qiáng)型定時(shí)器模塊(ECT)的初始化,然后產(chǎn)生時(shí)鐘頻率信號(hào)CLK,延時(shí)后產(chǎn)生采集觸發(fā)信號(hào)SI。當(dāng)SI置1時(shí),CIS不輸出信號(hào);當(dāng)SI置0時(shí),CIS開(kāi)始輸出電壓信號(hào)。輸入捕捉模塊被設(shè)置成脈沖下降沿觸發(fā),根據(jù)是否存在兩個(gè)有效的電平跳變沿,判斷是否存在圖形的軌線。利用兩個(gè)下降沿捕捉的主定時(shí)器計(jì)數(shù)值,經(jīng)過(guò)計(jì)算便得到對(duì)應(yīng)的時(shí)間間隔,再根據(jù)采樣頻率換算后得到兩條黑線的間距。
3.2 步進(jìn)電機(jī)控制程序
主程序通過(guò)調(diào)用驅(qū)動(dòng)程序來(lái)控制步進(jìn)電機(jī),利用實(shí)時(shí)中斷產(chǎn)生50%占空比方波作為步進(jìn)脈沖信號(hào)。在初始化實(shí)時(shí)中斷控制寄存器CRGINT_RTIE,配置實(shí)時(shí)中斷的溢出周期RTICTL后,設(shè)置中斷允許,啟動(dòng)實(shí)時(shí)中斷。實(shí)時(shí)中斷溢出周期RTICTL為:
(RTS[3:0]+1)×2(RTR[6:4]+9)/OSCCLK
其中,OSCCLK為外部晶振時(shí)鐘。
當(dāng)控制步進(jìn)電機(jī)運(yùn)動(dòng)時(shí),根據(jù)主程序設(shè)置的轉(zhuǎn)向標(biāo)志,使THB6128驅(qū)動(dòng)芯片CW_1引腳置成相應(yīng)電平,使能控制端ENABLE置1,每當(dāng)一次中斷到來(lái)時(shí),通過(guò)I/O口改變CLK_1引腳的電平,步進(jìn)電機(jī)便按照預(yù)定的方向和速度轉(zhuǎn)動(dòng)。
4 實(shí)驗(yàn)結(jié)果
數(shù)字式求積儀工作時(shí)處理前后的CIS信號(hào)如圖6所示。圖6(a)給出了采集觸發(fā)信號(hào)SI和CIS輸出的原始圖像信號(hào)SIG。當(dāng)采集觸發(fā)信號(hào)SI為高電平時(shí),電壓信號(hào)SIG為1 V;當(dāng)SI為低電平時(shí),白色像素對(duì)應(yīng)的SIG輸出電壓大約為3.3 V,黑色像素對(duì)應(yīng)的SIG輸出電壓大約為1.5 V。從圖中可以看出,在每個(gè)行掃描周期內(nèi),采集觸發(fā)信號(hào)SI低電平期間的SIG信號(hào)有兩次電平變低的過(guò)程,低電平持續(xù)時(shí)間正好對(duì)應(yīng)黑線的寬度,SIG兩個(gè)下降沿的時(shí)間間隔對(duì)應(yīng)兩條黑線的間距。
為了使單片機(jī)的輸入捕捉模塊能夠有效識(shí)別黑、白色像素,電壓比較器LM2901的門限電壓設(shè)置為2.2 V,處理后的圖像信號(hào)如圖6(b)所示。原先1.5 V~3.3 V的模擬電壓變化被轉(zhuǎn)變?yōu)?~5 V的脈沖,便可以觸發(fā)單片機(jī)的輸入捕捉。
在1.5 MHz的采樣時(shí)鐘下,CIS一次行掃描的時(shí)間大約需要3.4 ms,如果CIS移動(dòng)0.1 mm進(jìn)行一次掃描,即縱向分辨率為254 dpi,按照A4紙的幅面,理論上一幅圖面的測(cè)量最快需要10.1 s??紤]到軟件處理所需要的時(shí)間和圖像信號(hào)的穩(wěn)定過(guò)程,將采集觸發(fā)信號(hào)SI的頻率設(shè)置為250 Hz,則實(shí)際測(cè)量一幅圖面的時(shí)間大約為11.88 s。如果CIS移動(dòng)0.05 mm進(jìn)行一次掃描,則縱向分辨率可以進(jìn)一步提高到508 dpi,但測(cè)量時(shí)長(zhǎng)也將增大一倍。
基于CIS設(shè)計(jì)了數(shù)字式求積儀,利用掃描儀自帶的CIS、步進(jìn)電機(jī)與傳動(dòng)系統(tǒng)、掃描平臺(tái),研制了基于MC9S12XS128單片機(jī)的控制系統(tǒng)。
(1)利用比較電路將CIS的輸出轉(zhuǎn)換成代表兩種不同灰度值的電平,由單片機(jī)的輸入捕捉模塊測(cè)量曲線的線距,精度可達(dá)600 dpi。
(2)利用單片機(jī)的實(shí)時(shí)中斷產(chǎn)生步進(jìn)電機(jī)的控制脈沖,實(shí)現(xiàn)步進(jìn)電機(jī)轉(zhuǎn)速的軟件調(diào)節(jié)。但電機(jī)的轉(zhuǎn)速確定需要與掃描頻率相配合,兼顧縱向分辨率和測(cè)量時(shí)長(zhǎng),采集觸發(fā)信號(hào)SI的頻率設(shè)置為250 Hz,CIS移動(dòng)0.1 mm進(jìn)行一次掃描,使得縱向像素識(shí)別精度達(dá)到254 dpi。
(3)多次圖形測(cè)量實(shí)驗(yàn)的結(jié)果表明,測(cè)量結(jié)果數(shù)值穩(wěn)定,完成一次測(cè)量的時(shí)間只需12 s。與現(xiàn)有的數(shù)字式求積儀相比,基于CIS的數(shù)字求積儀自動(dòng)掃描,消除了人為循跡所帶來(lái)的誤差,在結(jié)構(gòu)和使用上更簡(jiǎn)單,成本低,可滿足常規(guī)的圖形面積測(cè)量要求。
參考文獻(xiàn)
[1] 陳殿盛, 朱翠英. 滾動(dòng)式數(shù)字求積儀的探討[J].光學(xué)儀器,1993,15(6):17-21.
[2] 唐亞軍,郭喜慶.基于51單片機(jī)的線陣CCD驅(qū)動(dòng)設(shè)計(jì)[J]. 微型機(jī)與應(yīng)用,2013,32(12):73-76.
[3] 于長(zhǎng)青.CCD/CIS圖像處理[J].世界電子元器件,2000(12): 41-43.
[4] 程秋林,朱凱燕. 基于ARM9 的便攜式 CIS型掃描儀設(shè)計(jì)[J]. 微型機(jī)與應(yīng)用, 2010,29(12):38-41.
[5] 肖軍,肖本賢. 基于FPGA和CIS的紙幣圖像采集及5/3提升小波圖像處理方法[J]. 合肥工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2011,34(8):1160-1164.
[6] 吳曄,張陽(yáng),滕勤. 基于HCS12的嵌入式系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社, 2010.
[7] 武麗.基于圖像傳感器的黑線提取及抗干擾算法研究[J].電子技術(shù)應(yīng)用,2012,38(2):88-90.