新聞中心

EEPW首頁 > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 一種高精度數(shù)字傾角測量系統(tǒng)的設(shè)計(jì)

一種高精度數(shù)字傾角測量系統(tǒng)的設(shè)計(jì)

——
作者: 時(shí)間:2007-01-26 來源:《電子查詢網(wǎng)》 收藏

在自動(dòng)控制和工程設(shè)計(jì)中,常常需要對某一個(gè)平面或基準(zhǔn)進(jìn)行傾角測量,或進(jìn)行自動(dòng)水平調(diào)節(jié),特別是在自動(dòng)控制中,經(jīng)常需要對某一物體進(jìn)行動(dòng)態(tài)水平控制,這就要求儀器能對水平傾角進(jìn)行自動(dòng)動(dòng)態(tài)跟蹤測量[1];在某些高精度的測量系統(tǒng)中,還要求對系統(tǒng)進(jìn)行快速調(diào)平或?qū)δ承┭b置與水平面的傾斜角進(jìn)行快速高精度的測量。這些都是傳統(tǒng)傾角測量系統(tǒng)和水平儀很難做到的。以電子傾角器為傳感器而設(shè)計(jì)的數(shù)字傾角測量系統(tǒng)或數(shù)字水平儀不僅能滿足自動(dòng)測量與控制的要求,而且能使測量的精度和速度大大提高。

以往使用電子傾角器作為傳感器而設(shè)計(jì)的數(shù)字水平儀和電子傾角測量系統(tǒng),沒有考慮環(huán)境溫度對測量精度的影響,故無法滿足某些高精度調(diào)平和傾斜角測量的需求。為了進(jìn)行寬工作溫度范圍的高精度測量,必須對電子傾角器進(jìn)行溫度補(bǔ)償。這里介紹一種高精度的數(shù)字傾角測量系統(tǒng),它利用jewell instruments公司的lcf-100型傾角器作為傾角傳感器,其輸出的模擬電壓與傾斜角正弦成比例。將該模擬電壓5進(jìn)行a/d轉(zhuǎn)換后送入單片機(jī),同時(shí)利用溫度傳感器實(shí)時(shí)采集傾角器周圍環(huán)境的溫度,也送入單片機(jī),通過編制好的計(jì)算程序進(jìn)行計(jì)算,將計(jì)算結(jié)果通過串口中斷方式傳送到上位計(jì)算機(jī)。本文將詳細(xì)地闡述系統(tǒng)硬件電路設(shè)計(jì)以及軟件設(shè)計(jì)。

本文引用地址:http://butianyuan.cn/article/21332.htm

1 系統(tǒng)硬件設(shè)計(jì)

1.1系統(tǒng)的硬件結(jié)構(gòu)

高精度數(shù)字傾角測量系統(tǒng)的硬件結(jié)構(gòu)如圖1所示。單片機(jī)選用atmel公司的at89c52,利用其提供的軟件硬件資源,完成系統(tǒng)的控制以及采集數(shù)據(jù)的計(jì)算。系統(tǒng)的主要部分包括:電子傾角器、二階低通濾波器、a/d轉(zhuǎn)換器ads1210、at89c52、溫度傳感器ds1624、電源以及向上位計(jì)算機(jī)傳送數(shù)據(jù)的通訊接口電路等。

電子傾角器選用jewell instruments公司生產(chǎn)的lcf-100型電子傾角器,它屬于力平衡式伺服系統(tǒng)電子傾角器,測量范圍為-1°~+1°,其輸出為模擬電壓,與傾斜角度的正弦成正比。該傾角器具有分辨率高、響應(yīng)速度快、線性度好等特點(diǎn)。由于電子傾角器輸出的模擬電壓含有高次諧波,因此通過二價(jià)低通濾波器濾除輸出信號的高頻分量。

a/d轉(zhuǎn)換器將電子傾角器輸出的模擬量轉(zhuǎn)換為數(shù)字量,其分辨率的高低將直接影響系統(tǒng)的測量精度。根據(jù)設(shè)計(jì)要求,本系統(tǒng)采用burr-brown公司ads1210作為電子傾角器的a/d轉(zhuǎn)換器,它是一個(gè)24位分辨率、寬動(dòng)態(tài)范圍、單5v電源供電、帶自校正功能的∑-δ高精度a/d轉(zhuǎn)換器,其內(nèi)部由可編程增益放大器、二階∑-δ調(diào)制器、調(diào)制器控制單元、三階數(shù)字濾波器、微控制器、寄存器組、基準(zhǔn)參考源和時(shí)鐘電路等組成[2]。ads1210將轉(zhuǎn)換的數(shù)字量通過i2c總線傳送到單片機(jī)。

溫度傳感器選用dallas semiconductor公司的ds1624數(shù)字溫度測量計(jì),它具有測量精度高、測量溫度范圍寬,易與單片機(jī)接口等特點(diǎn),其內(nèi)部還帶有256字節(jié)的e2prom,用于存儲(chǔ)測量系統(tǒng)的修正參數(shù)[3]。溫度傳感器實(shí)時(shí)采集系統(tǒng)的環(huán)境溫度,將采集的溫度值通過i2c總線送入單片機(jī)。

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接地表示從機(jī)方式。由于在本系統(tǒng)中只用了一塊ads1210,故可將dsync與dvdd直接相連。

利用at89c52的p1口的p10和p11分別與ds1624的引腳scl和sda相連構(gòu)成i2c總線。i2c總線是一種串行數(shù)據(jù)總線,只用兩根信號線,一根是雙向數(shù)據(jù)線sda,另一根是時(shí)鐘線scl。在i2c總線上傳送的一個(gè)數(shù)據(jù)字節(jié)由八位組成,總線對每次傳送的字節(jié)數(shù)沒有限制,但是每個(gè)字節(jié)后必須跟一個(gè)應(yīng)答位(ack),數(shù)據(jù)傳送首先傳最高位(msb)。

2 系統(tǒng)軟件設(shè)計(jì)

本系統(tǒng)軟件采用匯編語言編程,由主程序、計(jì)算子程序、ads1210讀寫子程序、ds1624讀寫子程序和串口中斷服務(wù)子程序等組成。傾角器溫度補(bǔ)償?shù)南嚓P(guān)參數(shù)存放在ds1624的e2rom中,必要時(shí)上位計(jì)算機(jī)通過控制命令對其進(jìn)行修正。中斷服務(wù)程序隨時(shí)接收上位計(jì)算機(jī)的控制命令,進(jìn)行系統(tǒng)自檢、參數(shù)修正、數(shù)據(jù)輸出等。

2.1主程序

主程序完成初始化后,實(shí)時(shí)采集環(huán)境溫度和電子傾角器數(shù)據(jù),并進(jìn)行補(bǔ)償運(yùn)算。為了保證采集傾角器數(shù)據(jù)的穩(wěn)定性,采集一次環(huán)境溫度數(shù)據(jù)后,連續(xù)采集10次傾角器數(shù)據(jù)進(jìn)行算術(shù)平均,然后再采集一次環(huán)境溫度如此,如此循環(huán)往復(fù)。

主程序的流程如圖3所示。

2.2 計(jì)算子程序

電子傾角器輸出的模擬電壓v與傾斜角度θ的正弦近似成線性關(guān)系,即:

v=v0+k0×sinθ (1)

其中,k0是電子傾角器的轉(zhuǎn)換比例因子。因傾角器的測量范圍為±1。,可以用弧度值替代角度的正弦值,其計(jì)算誤差為:

該誤差可以忽略不計(jì),則公式(1)簡化為:

v=v0+k0×θ

從公式(2)可以看出,傾斜角度θ是隨環(huán)境溫度線性變化的函數(shù),而線性傳感器的溫度補(bǔ)償是對零位和靈敏度的補(bǔ)償,所以經(jīng)過溫度補(bǔ)償?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表示零點(diǎn)偏差系數(shù),單位:v/℃;δt表示溫度變化量,單位:℃;s.f._temp表示比例因子溫度系數(shù);title表示修正后的傾角,單位:"。則(3)式變?yōu)椋?/p>

兩邊同時(shí)乘以k_ad,則(4)式變?yōu)椋?/p>

由(9)式可以計(jì)算出溫度補(bǔ)償后的修正傾角。

計(jì)算子程序的流程如圖4所示。

2.3 ads1210的編程

對ads1210編程,首先對其進(jìn)行初始化,根據(jù)系統(tǒng)設(shè)計(jì)的要求,確定相關(guān)的參數(shù),如增益pga、加速因子tmr、數(shù)據(jù)輸出率dr(抽取率)等。在初始化子程序中,將這些相關(guān)的參數(shù)寫入cmr。啟動(dòng)ads1210的轉(zhuǎn)換,然后調(diào)用讀dor寄存器子程序,將轉(zhuǎn)換的結(jié)果讀到單片機(jī)中。ads1210的初始化流程和讀dor寄存器流程如圖5所示。

2.4 ds1624的編程

由于將ds1624的引腳scl和sda與at89c52的p10和p11相連構(gòu)成i2c總線,對ds1624的讀寫操作都要遵循i2c總線協(xié)議。利用單片機(jī)可以仿真i2c總線的讀/寫時(shí)序。i2c總線的控制主要包括以下五部分:開始、讀數(shù)據(jù)、寫數(shù)據(jù)、應(yīng)答、停止。

ds1624的編程包括以下幾個(gè)子程序:初始化子程序、啟動(dòng)溫度轉(zhuǎn)換子程序、讀取溫度值子程序。在初始化子程序中,向配置/狀態(tài)寄存器寫一個(gè)字節(jié)的數(shù)據(jù)用以將ds1624的工作方式設(shè)為連續(xù)轉(zhuǎn)換方式。

ds1624的初始化子程序、讀取溫度值和啟動(dòng)溫度轉(zhuǎn)換子程序流程圖如圖6所示。

2.5 串口中斷服務(wù)程序

如果更換電子傾角器,那么其相應(yīng)的參數(shù),如固定零偏差、零偏的溫度系數(shù)、比例因子、比例因子溫度系數(shù)等都會(huì)發(fā)生變化。為了提高系統(tǒng)的通用性,將這些參數(shù)通過串口中斷的方式進(jìn)行修改。單片機(jī)計(jì)算得到的結(jié)果即修正角度也是通過串口中斷的方式輸出的。本系統(tǒng)的串口中斷服務(wù)程序包括以下幾個(gè)命令:寫零偏差、寫零偏溫度系數(shù)、寫傾角器轉(zhuǎn)換比例因子、寫比例因子溫偏差、寫ads1210的轉(zhuǎn)換比例、寫ads1210的轉(zhuǎn)換速率、寫角度校準(zhǔn)值、初始化e2rom中的數(shù)據(jù)、讀溫度值、讀計(jì)算后修正角度值、檢查寫進(jìn)數(shù)據(jù)的正確性、檢查芯片是否工作正常等。串口中斷服務(wù)的流程圖如圖7所示。

本文介紹的高精度數(shù)字傾角測量系統(tǒng)已經(jīng)在工程中得到實(shí)現(xiàn),并通過t3經(jīng)緯儀驗(yàn)證了它的測量精度。實(shí)驗(yàn)結(jié)果表明:在-10℃~+50℃的溫度范圍內(nèi),其精度達(dá)到3”,能滿足寬工作溫度范圍高精度測量系統(tǒng)的需要。更寬溫度范圍內(nèi)的精度驗(yàn)證實(shí)驗(yàn)正在進(jìn)行中。該系統(tǒng)已經(jīng)在某項(xiàng)目的水平傾斜角測量中得到應(yīng)用,運(yùn)行穩(wěn)定、性能可靠。

經(jīng)緯儀相關(guān)文章:經(jīng)緯儀原理


關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉