數(shù)字水準(zhǔn)儀的數(shù)據(jù)采集與處理系統(tǒng)研究
數(shù)字水準(zhǔn)儀是在自動安平水準(zhǔn)儀的基礎(chǔ)上發(fā)展起來的,他采用條紋編碼標(biāo)尺和電子影像處理原理,用線陣CCD替代觀測員的肉眼,將望遠(yuǎn)鏡像面上的標(biāo)尺成像轉(zhuǎn)換成數(shù)字信息,再利用數(shù)字圖像處理技術(shù)來識別標(biāo)尺條碼進(jìn)而獲得標(biāo)尺讀數(shù)和視距。
本文設(shè)計(jì)的數(shù)字水準(zhǔn)儀數(shù)據(jù)采集系統(tǒng)是以89C51單片機(jī)為核心,Intel8253計(jì)數(shù)器作為同步控制器,控制A/D轉(zhuǎn)換器對CCD的輸出信號定時(shí)采樣。系統(tǒng)采用等間隔、多周期采樣的方法實(shí)現(xiàn)低速A/D轉(zhuǎn)換器對高分辨率線陣CCD輸出信號的數(shù)據(jù)采集,并將采集結(jié)果通過串口傳給微機(jī),在微機(jī)系統(tǒng)采用數(shù)字濾波、邊緣檢測等數(shù)字圖像處理技術(shù)對采集數(shù)據(jù)進(jìn)行數(shù)據(jù)處理,提取條碼邊緣,再根據(jù)幾何光學(xué)物象比的關(guān)系,求出視距和視線高讀數(shù)。
2 硬件電路設(shè)計(jì)及工作原理
2.1 硬件電路設(shè)計(jì)
系統(tǒng)硬件電路如圖1所示,主要由89C51單片機(jī)、A/D轉(zhuǎn)換器及其接口電路組成。 本系統(tǒng)計(jì)數(shù)器Intel8253選用計(jì)數(shù)器2,采用方波脈沖方式(方式1)和連續(xù)負(fù)脈沖方式(方式2)相結(jié)合的方法。其門控信號和時(shí)鐘脈沖信號分別由CCD驅(qū)動電路輸出的行同步脈沖信號FC和像元同步脈沖信號SP來控制,從而實(shí)現(xiàn)Intel8253的輸出信號與CCD輸出的視頻信號同步。Intel8253在89C51的控制命令下工作,產(chǎn)生與像元同步的驅(qū)動A/D脈沖,使A/D轉(zhuǎn)換器在CCD輸出像元信號的有效時(shí)間進(jìn)行A/D轉(zhuǎn)換。
考慮系統(tǒng)合理的轉(zhuǎn)換速度和性能價(jià)格比,A/D轉(zhuǎn)換電路采用轉(zhuǎn)換時(shí)間為25μs的12 b逐次比較型A/D轉(zhuǎn)換器AD574。其工作狀態(tài)由CE,CS,R/C,12/8,A0五個(gè)控制信號決定。對于本系統(tǒng)AD574進(jìn)行8 b數(shù)據(jù)轉(zhuǎn)換可滿足系統(tǒng)精度要求,因此提高了A/D轉(zhuǎn)換時(shí)間。圖1中AD574的CE端接+5V,CS接地,使A/D轉(zhuǎn)換器始終處于允許工作狀態(tài)。12/8接地,啟動8b數(shù)據(jù)轉(zhuǎn)換。A0由74LS138的Y7控制,讀/轉(zhuǎn)換控制端R/C由8253的OUT2端來控制,采用單極性輸入。轉(zhuǎn)換結(jié)束狀態(tài)口線STS接到89C51的P1.1口,采用查詢方式讀取轉(zhuǎn)換結(jié)果。
2.2 工作原理
CCD在驅(qū)動電路的驅(qū)動脈沖作用下輸出視頻信號經(jīng)低通濾波送到A/D轉(zhuǎn)換器的模擬信號輸入端。由于A/D轉(zhuǎn)換器的轉(zhuǎn)換頻率底于CCD的工作頻率,系統(tǒng)采用等間隔重復(fù)掃描的方式對CCD輸出的信號進(jìn)行采樣。當(dāng)系統(tǒng)上電后,在FC信號的第一個(gè)下降沿時(shí)刻響應(yīng)外部中斷0,置8253工作方式1和計(jì)數(shù)初值,8253開始計(jì)數(shù),計(jì)數(shù)完輸出第一個(gè)負(fù)脈沖信號。該信號啟動A/D轉(zhuǎn)換,同時(shí)查詢INT1口狀態(tài)。
當(dāng)8253輸出第一個(gè)負(fù)脈沖信號的下降沿時(shí)刻,8253重置工作方式2和計(jì)數(shù)初值。使8253按新的計(jì)數(shù)初值開始計(jì)數(shù),輸出連續(xù)的負(fù)脈沖信號。同時(shí)不斷查詢P1.1口的狀態(tài),當(dāng)P1.1為低電平時(shí),不斷讀取A/D轉(zhuǎn)換結(jié)果。在下面連續(xù)的FC信號周期,重復(fù)上述過程,完成對所有有效信號點(diǎn)的采樣。
3 系統(tǒng)的軟件設(shè)計(jì)
本系統(tǒng)的應(yīng)用程序采用了模塊化程序設(shè)計(jì)的方法,按功能主要分為2大部分。前一部分是采用MCS-51匯編語言開發(fā)由89C51的單片機(jī)執(zhí)行程序,包括數(shù)據(jù)采集程序和單片機(jī)通信程序2個(gè)模塊。后一部分是用VC++高級語言編寫的由IBM-PC機(jī)執(zhí)行的程序,包括PC機(jī)通信程序、邊緣檢測和條碼識別程序3個(gè)模塊。PC機(jī)與單片機(jī)采用判別等待通訊協(xié)議進(jìn)行連接,各模塊之間使用子程序調(diào)用,使整個(gè)系統(tǒng)有機(jī)地成為一體。單片機(jī)數(shù)據(jù)采集及數(shù)據(jù)通訊和PC機(jī)數(shù)據(jù)通訊及數(shù)據(jù)處理子程序流程框圖如圖2和圖3所示。 3.1 數(shù)據(jù)采集程序模塊
由于系統(tǒng)采用的是普通A/D采集電路,采樣速度低,無法與正常工作的CCD信號速度同步,本系統(tǒng)的數(shù)據(jù)采集程序模塊采用等間隔重復(fù)掃描的方式對CCD圖像進(jìn)行采樣。采集結(jié)果通過串口傳送給PC機(jī),以便對采集結(jié)果進(jìn)一步作數(shù)據(jù)處理和實(shí)現(xiàn)圖形顯示。
3.2 數(shù)據(jù)通訊程序模塊
數(shù)據(jù)通訊程序模塊由單片機(jī)通訊程序和PC機(jī)通訊程序2個(gè)部分組成。單片機(jī)上電后,接收到聯(lián)絡(luò)信號,給PC機(jī)發(fā)應(yīng)答信號并開始進(jìn)行數(shù)據(jù)采集,同時(shí)將采集結(jié)果通過串口發(fā)送給PC機(jī)。PC機(jī)通信程序通過串口通訊MSComm控件,設(shè)置通訊參數(shù),接收應(yīng)答信號,讀取采集結(jié)果。
3.3 數(shù)字濾波程序模塊
采集結(jié)果通?;祀s有噪聲信號,為提高測量精度,本系統(tǒng)采用均值濾波方法消除隨機(jī)誤差的影響,運(yùn)用中值濾波方法消除脈沖噪聲的影響,再運(yùn)用指數(shù)基的平滑濾波 器方法,對采集圖像進(jìn)一步作平滑處理。經(jīng)實(shí)驗(yàn)結(jié)果證明采用該方法濾波效果較好。
3.4 邊緣檢測、條碼識別程序模塊
對標(biāo)尺條碼的邊緣檢測是數(shù)字水準(zhǔn)儀數(shù)據(jù)處理系統(tǒng)中非常重要的環(huán)節(jié),邊緣檢測的定位精度將直接影響條碼識別的準(zhǔn)確度。為使被噪聲污染的條碼圖像很好的檢測出邊緣,結(jié)合數(shù)字水準(zhǔn)儀標(biāo)尺條碼的特點(diǎn),本系統(tǒng)選用基于指數(shù)基的平滑濾波器的快速一維邊緣檢測方法,該算法是DeriChe依據(jù)Canny設(shè)計(jì)思想導(dǎo)出的邊緣檢測算子,具有較好的單、雙邊定位精度和較快的檢測速度。該算法采用的平滑算子和邊緣檢測算子可用遞歸算法代替卷積運(yùn)算,大大提高運(yùn)算速度。該算法的實(shí)現(xiàn)過程如下:
(1)運(yùn)用平滑算子的遞歸公式對圖像進(jìn)行平滑化處理。
依據(jù)Canny設(shè)計(jì)思想導(dǎo)出的平滑算子為: (2)運(yùn)用一階導(dǎo)數(shù)算子的遞歸公式求圖像極大值點(diǎn)
DeriChe推導(dǎo)出的一階導(dǎo)數(shù)邊緣檢測算子為:D(n)=kne-σ|n|,對D(n)進(jìn)行Z變換和反Z變換,求得一階導(dǎo)數(shù)算子的遞歸公式為: (3)運(yùn)用二階導(dǎo)數(shù)算子的遞歸公式求圖像零交叉點(diǎn) (3)確定邊緣點(diǎn)
找出同時(shí)滿足一階導(dǎo)數(shù)最大值和二階導(dǎo)數(shù)零交叉的點(diǎn),即為條碼的邊緣點(diǎn)。
根據(jù)CCD的光電轉(zhuǎn)換原理,判別首邊緣點(diǎn)是對應(yīng)亮條碼還是暗條碼的邊界位置點(diǎn),求出亮、暗條碼寬度,進(jìn)而識別出條碼。
3.5 視距和視線高計(jì)算程序模塊
標(biāo)尺條碼中的R碼是用來求視距的,視距不同,成像在線陣CCD上標(biāo)尺截距不同,但至少應(yīng)包含兩組R碼,本系統(tǒng)設(shè)計(jì)的標(biāo)尺條碼相鄰兩組R碼的間距為P(=40mm),他在CCD線陣上成像所占的象素個(gè)數(shù)為Z,象素寬為b(=14μm),則P在CCD上的成像長度為:L=Z×b,再根據(jù)幾何光學(xué)成像原理,即可求出視距:D=P/L×f(望遠(yuǎn)鏡物鏡的焦距)。
本系統(tǒng)中采用相位差法設(shè)計(jì)標(biāo)尺條碼,標(biāo)尺中位于任意兩組R碼之間的A碼、B碼和C碼的條碼寬度組合具有惟一性,即任意一組A碼,B碼,C碼,R碼的組合對應(yīng)標(biāo)尺的高度值具有單值性。利用線陣CCD中心像元所在的那組A碼,B碼,C碼寬度值,可以算出該組條碼中R碼的高度,再利用該中心R碼所對應(yīng)的像元和CCD中心像元的偏差,即可算得視線高讀數(shù)。
4 結(jié)語
本文介紹的數(shù)字水準(zhǔn)儀數(shù)據(jù)采集與數(shù)據(jù)處理系統(tǒng),解決了高分辨率線陣CCD與低速A/D轉(zhuǎn)換速度低的矛盾。系統(tǒng)硬件結(jié)構(gòu)簡單、設(shè)計(jì)成本低、軟件算法簡單、運(yùn)算速度快、界面友好。經(jīng)過初步實(shí)驗(yàn),系統(tǒng)能夠達(dá)到預(yù)期的效果。(end)
51單片機(jī)相關(guān)文章:51單片機(jī)教程
評論