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