一種高精度數(shù)字傾角測量系統(tǒng)的設(shè)計
在自動控制和工程設(shè)計中,常常需要對某一個平面或基準(zhǔn)進行傾角測量,或進行自動水平調(diào)節(jié),特別是在自動控制中,經(jīng)常需要對某一物體進行動態(tài)水平控制,這就要求儀器能對水平傾角進行自動動態(tài)跟蹤測量[1];在某些高精度的測量系統(tǒng)中,還要求對系統(tǒng)進行快速調(diào)平或?qū)δ承┭b置與水平面的傾斜角進行快速高精度的測量。這些都是傳統(tǒng)傾角測量系統(tǒng)和水平儀很難做到的。以電子傾角器為傳感器而設(shè)計的數(shù)字傾角測量系統(tǒng)或數(shù)字水平儀不僅能滿足自動測量與控制的要求,而且能使測量的精度和速度大大提高。
以往使用電子傾角器作為傳感器而設(shè)計的數(shù)字水平儀和電子傾角測量系統(tǒng),沒有考慮環(huán)境溫度對測量精度的影響,故無法滿足某些高精度調(diào)平和傾斜角測量的需求。為了進行寬工作溫度范圍的高精度測量,必須對電子傾角器進行溫度補償。這里介紹一種高精度的數(shù)字傾角測量系統(tǒng),它利用jewell instruments公司的lcf-100型傾角器作為傾角傳感器,其輸出的模擬電壓與傾斜角正弦成比例。將該模擬電壓5進行a/d轉(zhuǎn)換后送入單片機,同時利用溫度傳感器實時采集傾角器周圍環(huán)境的溫度,也送入單片機,通過編制好的計算程序進行計算,將計算結(jié)果通過串口中斷方式傳送到上位計算機。本文將詳細地闡述系統(tǒng)硬件電路設(shè)計以及軟件設(shè)計。
本文引用地址:http://m.butianyuan.cn/article/21332.htm1 系統(tǒng)硬件設(shè)計
1.1系統(tǒng)的硬件結(jié)構(gòu)
高精度數(shù)字傾角測量系統(tǒng)的硬件結(jié)構(gòu)如圖1所示。單片機選用atmel公司的at89c52,利用其提供的軟件硬件資源,完成系統(tǒng)的控制以及采集數(shù)據(jù)的計算。系統(tǒng)的主要部分包括:電子傾角器、二階低通濾波器、a/d轉(zhuǎn)換器ads1210、at89c52、溫度傳感器ds1624、電源以及向上位計算機傳送數(shù)據(jù)的通訊接口電路等。
電子傾角器選用jewell instruments公司生產(chǎn)的lcf-100型電子傾角器,它屬于力平衡式伺服系統(tǒng)電子傾角器,測量范圍為-1°~+1°,其輸出為模擬電壓,與傾斜角度的正弦成正比。該傾角器具有分辨率高、響應(yīng)速度快、線性度好等特點。由于電子傾角器輸出的模擬電壓含有高次諧波,因此通過二價低通濾波器濾除輸出信號的高頻分量。
a/d轉(zhuǎn)換器將電子傾角器輸出的模擬量轉(zhuǎn)換為數(shù)字量,其分辨率的高低將直接影響系統(tǒng)的測量精度。根據(jù)設(shè)計要求,本系統(tǒng)采用burr-brown公司ads1210作為電子傾角器的a/d轉(zhuǎn)換器,它是一個24位分辨率、寬動態(tài)范圍、單5v電源供電、帶自校正功能的∑-δ高精度a/d轉(zhuǎn)換器,其內(nèi)部由可編程增益放大器、二階∑-δ調(diào)制器、調(diào)制器控制單元、三階數(shù)字濾波器、微控制器、寄存器組、基準(zhǔn)參考源和時鐘電路等組成[2]。ads1210將轉(zhuǎn)換的數(shù)字量通過i2c總線傳送到單片機。
溫度傳感器選用dallas semiconductor公司的ds1624數(shù)字溫度測量計,它具有測量精度高、測量溫度范圍寬,易與單片機接口等特點,其內(nèi)部還帶有256字節(jié)的e2prom,用于存儲測量系統(tǒng)的修正參數(shù)[3]。溫度傳感器實時采集系統(tǒng)的環(huán)境溫度,將采集的溫度值通過i2c總線送入單片機。
1.2 ads1210和ds1624與at89c52的接口電路
ads1210和ds1624與at89c52的接口電路如圖2所示。傳感器的輸出接到ads1210的ainp和ainn輸入端。在這里,ads1210和at89c52采用的是三線連接,drdy、sdio、sclk分別與p12、p13、p14相連接,其中sdio用于數(shù)據(jù)的輸入和輸出,cs直接接地,mode接地表示從機方式。由于在本系統(tǒng)中只用了一塊ads1210,故可將dsync與dvdd直接相連。
利用at89c52的p1口的p10和p11分別與ds1624的引腳scl和sda相連構(gòu)成i2c總線。i2c總線是一種串行數(shù)據(jù)總線,只用兩根信號線,一根是雙向數(shù)據(jù)線sda,另一根是時鐘線scl。在i2c總線上傳送的一個數(shù)據(jù)字節(jié)由八位組成,總線對每次傳送的字節(jié)數(shù)沒有限制,但是每個字節(jié)后必須跟一個應(yīng)答位(ack),數(shù)據(jù)傳送首先傳最高位(msb)。
2 系統(tǒng)軟件設(shè)計
本系統(tǒng)軟件采用匯編語言編程,由主程序、計算子程序、ads1210讀寫子程序、ds1624讀寫子程序和串口中斷服務(wù)子程序等組成。傾角器溫度補償?shù)南嚓P(guān)參數(shù)存放在ds1624的e2rom中,必要時上位計算機通過控制命令對其進行修正。中斷服務(wù)程序隨時接收上位計算機的控制命令,進行系統(tǒng)自檢、參數(shù)修正、數(shù)據(jù)輸出等。
2.1主程序
主程序完成初始化后,實時采集環(huán)境溫度和電子傾角器數(shù)據(jù),并進行補償運算。為了保證采集傾角器數(shù)據(jù)的穩(wěn)定性,采集一次環(huán)境溫度數(shù)據(jù)后,連續(xù)采集10次傾角器數(shù)據(jù)進行算術(shù)平均,然后再采集一次環(huán)境溫度如此,如此循環(huán)往復(fù)。
主程序的流程如圖3所示。
2.2 計算子程序
電子傾角器輸出的模擬電壓v與傾斜角度θ的正弦近似成線性關(guān)系,即:
v=v0+k0×sinθ (1)
其中,k0是電子傾角器的轉(zhuǎn)換比例因子。因傾角器的測量范圍為±1。,可以用弧度值替代角度的正弦值,其計算誤差為:
該誤差可以忽略不計,則公式(1)簡化為:
v=v0+k0×θ
從公式(2)可以看出,傾斜角度θ是隨環(huán)境溫度線性變化的函數(shù),而線性傳感器的溫度補償是對零位和靈敏度的補償,所以經(jīng)過溫度補償?shù)膬A角器輸出為:
v=v0+k×δt+k0(1+k1×δt) ×θ
式中,k為零位溫度系數(shù),k1為比例因子溫度系數(shù)。
用ad表示a/d轉(zhuǎn)換器輸出的數(shù)據(jù);k_ad表示a/d轉(zhuǎn)換器的輸出斜率,單位:1/v;b0表示基準(zhǔn)零偏電壓,單位:v;b_temp表示零點偏差系數(shù),單位:v/℃;δt表示溫度變化量,單位:℃;s.f._temp表示比例因子溫度系數(shù);title表示修正后的傾角,單位:"。則(3)式變?yōu)椋?/p>
兩邊同時乘以k_ad,則(4)式變?yōu)椋?/p>
由(9)式可以計算出溫度補償后的修正傾角。
計算子程序的流程如圖4所示。
2.3 ads1210的編程
對ads1210編程,首先對其進行初始化,根據(jù)系統(tǒng)設(shè)計的要求,確定相關(guān)的參數(shù),如增益pga、加速因子tmr、數(shù)據(jù)輸出率dr(抽取率)等。在初始化子程序中,將這些相關(guān)的參數(shù)寫入cmr。啟動ads1210的轉(zhuǎn)換,然后調(diào)用讀dor寄存器子程序,將轉(zhuǎn)換的結(jié)果讀到單片機中。ads1210的初始化流程和讀dor寄存器流程如圖5所示。
2.4 ds1624的編程
由于將ds1624的引腳scl和sda與at89c52的p10和p11相連構(gòu)成i2c總線,對ds1624的讀寫操作都要遵循i2c總線協(xié)議。利用單片機可以仿真i2c總線的讀/寫時序。i2c總線的控制主要包括以下五部分:開始、讀數(shù)據(jù)、寫數(shù)據(jù)、應(yīng)答、停止。
ds1624的編程包括以下幾個子程序:初始化子程序、啟動溫度轉(zhuǎn)換子程序、讀取溫度值子程序。在初始化子程序中,向配置/狀態(tài)寄存器寫一個字節(jié)的數(shù)據(jù)用以將ds1624的工作方式設(shè)為連續(xù)轉(zhuǎn)換方式。
ds1624的初始化子程序、讀取溫度值和啟動溫度轉(zhuǎn)換子程序流程圖如圖6所示。
2.5 串口中斷服務(wù)程序
如果更換電子傾角器,那么其相應(yīng)的參數(shù),如固定零偏差、零偏的溫度系數(shù)、比例因子、比例因子溫度系數(shù)等都會發(fā)生變化。為了提高系統(tǒng)的通用性,將這些參數(shù)通過串口中斷的方式進行修改。單片機計算得到的結(jié)果即修正角度也是通過串口中斷的方式輸出的。本系統(tǒng)的串口中斷服務(wù)程序包括以下幾個命令:寫零偏差、寫零偏溫度系數(shù)、寫傾角器轉(zhuǎn)換比例因子、寫比例因子溫偏差、寫ads1210的轉(zhuǎn)換比例、寫ads1210的轉(zhuǎn)換速率、寫角度校準(zhǔn)值、初始化e2rom中的數(shù)據(jù)、讀溫度值、讀計算后修正角度值、檢查寫進數(shù)據(jù)的正確性、檢查芯片是否工作正常等。串口中斷服務(wù)的流程圖如圖7所示。
本文介紹的高精度數(shù)字傾角測量系統(tǒng)已經(jīng)在工程中得到實現(xiàn),并通過t3經(jīng)緯儀驗證了它的測量精度。實驗結(jié)果表明:在-10℃~+50℃的溫度范圍內(nèi),其精度達到3”,能滿足寬工作溫度范圍高精度測量系統(tǒng)的需要。更寬溫度范圍內(nèi)的精度驗證實驗正在進行中。該系統(tǒng)已經(jīng)在某項目的水平傾斜角測量中得到應(yīng)用,運行穩(wěn)定、性能可靠。
經(jīng)緯儀相關(guān)文章:經(jīng)緯儀原理
評論