數字水準儀的數據采集與處理系統研究
介紹了數字水準儀數據采集系統的原理與設計,以及數據處理的方法。該數據采集系統硬件電路簡單、設計成本低、使用方便。數據處理算法采用一維邊緣檢測算子的遞歸算子提取標尺條碼邊緣,大大降低了數據處理的運算量,提高了運算速度。實踐證明了該方案的可行性。
關鍵詞:數字水準儀;數據采集;邊緣檢測;A/D轉換器
1 引言
數字水準儀是在自動安平水準儀的基礎上發展起來的,他采用條紋編碼標尺和電子影像處理原理,用線陣CCD替代觀測員的肉眼,將望遠鏡像面上的標尺成像轉換成數字信息,再利用數字圖像處理技術來識別標尺條碼進而獲得標尺讀數和視距。
本文設計的數字水準儀數據采集系統是以89C51單片機為核心,Intel8253計數器作為同步控制器,控制A/D轉換器對CCD的輸出信號定時采樣。系統采用等間隔、多周期采樣的方法實現低速A/D轉換器對高分辨率線陣CCD輸出信號的數據采集,并將采集結果通過串口傳給微機,在微機系統采用數字濾波、邊緣檢測等數字圖像處理技術對采集數據進行數據處理,提取條碼邊緣,再根據幾何光學物象比的關系,求出視距和視線高讀數。
2 硬件電路設計及工作原理
2.1 硬件電路設計
系統硬件電路如圖1所示,主要由89C51單片機、A/D轉換器及其接口電路組成。

考慮系統合理的轉換速度和性能價格比,A/D轉換電路采用轉換時間為25μs的12 b逐次比較型A/D轉換器AD574。其工作狀態由CE,CS,R/C,12/8,A0五個控制信號決定。對于本系統AD574進行8 b數據轉換可滿足系統精度要求,因此提高了A/D轉換時間。圖1中AD574的CE端接+5V,CS接地,使A/D轉換器始終處于允許工作狀態。12/8接地,啟動8b數據轉換。A0由74LS138的Y7控制,讀/轉換控制端R/C由8253的OUT2端來控制,采用單極性輸入。轉換結束狀態口線STS接到89C51的P1.1口,采用查詢方式讀取轉換結果。
2.2 工作原理
CCD在驅動電路的驅動脈沖作用下輸出視頻信號經低通濾波送到A/D轉換器的模擬信號輸入端。由于A/D轉換器的轉換頻率底于CCD的工作頻率,系統采用等間隔重復掃描的方式對CCD輸出的信號進行采樣。當系統上電后,在FC信號的第一個下降沿時刻響應外部中斷0,置8253工作方式1和計數初值,8253開始計數,計數完輸出第一個負脈沖信號。該信號啟動A/D轉換,同時查詢INT1口狀態。
當8253輸出第一個負脈沖信號的下降沿時刻,8253重置工作方式2和計數初值。使8253按新的計數初值開始計數,輸出連續的負脈沖信號。同時不斷查詢P1.1口的狀態,當P1.1為低電平時,不斷讀取A/D轉換結果。在下面連續的FC信號周期,重復上述過程,完成對所有有效信號點的采樣。
3 系統的軟件設計
本系統的應用程序采用了模塊化程序設計的方法,按功能主要分為2大部分。前一部分是采用MCS-51匯編語言開發由89C51的單片機執行程序,包括數據采集程序和單片機通信程序2個模塊。后一部分是用VC++高級語言編寫的由IBM-PC機執行的程序,包括PC機通信程序、邊緣檢測和條碼識別程序3個模塊。PC機與單片機采用判別等待通訊協議進行連接,各模塊之間使用子程序調用,使整個系統有機地成為一體。單片機數據采集及數據通訊和PC機數據通訊及數據處理子程序流程框圖如圖2和圖3所示。

由于系統采用的是普通A/D采集電路,采樣速度低,無法與正常工作的CCD信號速度同步,本系統的數據采集程序模塊采用等間隔重復掃描的方式對CCD圖像進行采樣。采集結果通過串口傳送給PC機,以便對采集結果進一步作數據處理和實現圖形顯示。
3.2 數據通訊程序模塊
數據通訊程序模塊由單片機通訊程序和PC機通訊程序2個部分組成。單片機上電后,接收到聯絡信號,給PC機發應答信號并開始進行數據采集,同時將采集結果通過串口發送給PC機。PC機通信程序通過串口通訊MSComm控件,設置通訊參數,接收應答信號,讀取采集結果。
3.3 數字濾波程序模塊
采集結果通常混雜有噪聲信號,為提高測量精度,本系統采用均值濾波方法消除隨機誤差的影響,運用中值濾波方法消除脈沖噪聲的影響,再運用指數基的平滑濾波 器方法,對采集圖像進一步作平滑處理。經實驗結果證明采用該方法濾波效果較好。
3.4 邊緣檢測、條碼識別程序模塊
對標尺條碼的邊緣檢測是數字水準儀數據處理系統中非常重要的環節,邊緣檢測的定位精度將直接影響條碼識別的準確度。為使被噪聲污染的條碼圖像很好的檢測出邊緣,結合數字水準儀標尺條碼的特點,本系統選用基于指數基的平滑濾波器的快速一維邊緣檢測方法,該算法是DeriChe依據Canny設計思想導出的邊緣檢測算子,具有較好的單、雙邊定位精度和較快的檢測速度。該算法采用的平滑算子和邊緣檢測算子可用遞歸算法代替卷積運算,大大提高運算速度。該算法的實現過程如下:
(1)運用平滑算子的遞歸公式對圖像進行平滑化處理。
依據Canny設計思想導出的平滑算子為:

DeriChe推導出的一階導數邊緣檢測算子為:D(n)=kne-σ|n|,對D(n)進行Z變換和反Z變換,求得一階導數算子的遞歸公式為:



找出同時滿足一階導數最大值和二階導數零交叉的點,即為條碼的邊緣點。
根據CCD的光電轉換原理,判別首邊緣點是對應亮條碼還是暗條碼的邊界位置點,求出亮、暗條碼寬度,進而識別出條碼。
3.5 視距和視線高計算程序模塊
標尺條碼中的R碼是用來求視距的,視距不同,成像在線陣CCD上標尺截距不同,但至少應包含兩組R碼,本系統設計的標尺條碼相鄰兩組R碼的間距為P(=40mm),他在CCD線陣上成像所占的象素個數為Z,象素寬為b(=14μm),則P在CCD上的成像長度為:L=Z×b,再根據幾何光學成像原理,即可求出視距:D=P/L×f(望遠鏡物鏡的焦距)。
本系統中采用相位差法設計標尺條碼,標尺中位于任意兩組R碼之間的A碼、B碼和C碼的條碼寬度組合具有惟一性,即任意一組A碼,B碼,C碼,R碼的組合對應標尺的高度值具有單值性。利用線陣CCD中心像元所在的那組A碼,B碼,C碼寬度值,可以算出該組條碼中R碼的高度,再利用該中心R碼所對應的像元和CCD中心像元的偏差,即可算得視線高讀數。
4 結語
本文介紹的數字水準儀數據采集與數據處理系統,解決了高分辨率線陣CCD與低速A/D轉換速度低的矛盾。系統硬件結構簡單、設計成本低、軟件算法簡單、運算速度快、界面友好。經過初步實驗,系統能夠達到預期的效果。
文章版權歸西部工控xbgk所有,未經許可不得轉載。
上一篇:電磁流量計在線診斷技術的發展
下一篇:EST水處理系統