久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 數字水準儀的數據采集與處理系統研究

數字水準儀的數據采集與處理系統研究

作者: 時間:2013-08-06 來源:網絡 收藏
1 引言

是在自動安平水準儀的基礎上發展起來的,他采用條紋編碼標尺和電子影像處理原理,用線陣CCD替代觀測員的肉眼,將望遠鏡像面上的標尺成像轉換成數字信息,再利用數字圖像處理技術來識別標尺條碼進而獲得標尺讀數和視距。

本文設計的系統是以89C51單片機為核心,Intel8253計數器作為同步控制器,控制A/D轉換器對CCD的輸出信號定時采樣。系統采用等間隔、多周期采樣的方法實現低速A/D轉換器對高分辨率線陣CCD輸出信號的,并將采集結果通過串口傳給微機,在微機系統采用數字濾波、邊緣檢測等數字圖像處理技術對采集數據進行數據處理,提取條碼邊緣,再根據幾何光學物象比的關系,求出視距和視線高讀數。

2 硬件電路設計及工作原理

2.1 硬件電路設計

系統硬件電路如圖1所示,主要由89C51單片機、A/D轉換器及其接口電路組成。

本系統計數器Intel8253選用計數器2,采用方波脈沖方式(方式1)和連續負脈沖方式(方式2)相結合的方法。其門控信號和時鐘脈沖信號分別由CCD驅動電路輸出的行同步脈沖信號FC和像元同步脈沖信號SP來控制,從而實現Intel8253的輸出信號與CCD輸出的視頻信號同步。Intel8253在89C51的控制命令下工作,產生與像元同步的驅動A/D脈沖,使A/D轉換器在CCD輸出像元信號的有效時間進行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所示。

3.1 數據采集程序模塊

由于系統采用的是普通A/D采集電路,采樣速度低,無法與正常工作的CCD信號速度同步,本系統的數據采集程序模塊采用等間隔重復掃描的方式對CCD圖像進行采樣。采集結果通過串口傳送給PC機,以便對采集結果進一步作數據處理和實現圖形顯示。

3.2 數據通訊程序模塊

數據通訊程序模塊由單片機通訊程序和PC機通訊程序2個部分組成。單片機上電后,接收到聯絡信號,給PC機發應答信號并開始進行數據采集,同時將采集結果通過串口發送給PC機。PC機通信程序通過串口通訊MSComm控件,設置通訊參數,接收應答信號,讀取采集結果。

3.3 數字濾波程序模塊

采集結果通常混雜有噪聲信號,為提高測量精度,本系統采用均值濾波方法消除隨機誤差的影響,運用中值濾波方法消除脈沖噪聲的影響,再運用指數基的平滑濾波 器方法,對采集圖像進一步作平滑處理。經實驗結果證明采用該方法濾波效果較好。

3.4 邊緣檢測、條碼識別程序模塊

對標尺條碼的邊緣檢測是數據中非常重要的環節,邊緣檢測的定位精度將直接影響條碼識別的準確度。為使被噪聲污染的條碼圖像很好的檢測出邊緣,結合數字水準儀標尺條碼的特點,本系統選用基于指數基的平滑濾波器的快速一維邊緣檢測方法,該算法是DeriChe依據Canny設計思想導出的邊緣檢測算子,具有較好的單、雙邊定位精度和較快的檢測速度。該算法采用的平滑算子和邊緣檢測算子可用遞歸算法代替卷積運算,大大提高運算速度。該算法的實現過程如下:

(1)運用平滑算子的遞歸公式對圖像進行平滑化處理。

依據Canny設計思想導出的平滑算子為:

(2)運用一階導數算子的遞歸公式求圖像極大值點

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

(3)運用二階導數算子的遞歸公式求圖像零交叉點

(3)確定邊緣點

找出同時滿足一階導數最大值和二階導數零交叉的點,即為條碼的邊緣點。

根據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轉換速度低的矛盾。系統硬件結構簡單、設計成本低、軟件算法簡單、運算速度快、界面友好。經過初步實驗,系統能夠達到預期的效果。(end)

51單片機相關文章:51單片機教程




評論


相關推薦

技術專區

關閉