基于單片機(jī)的傾角測(cè)量系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
海洋環(huán)境監(jiān)測(cè)儀器是測(cè)量海洋水文要素的重要手段,其在水下的姿態(tài)直接影響到測(cè)量參數(shù)的精度。通過(guò)對(duì)儀器姿態(tài)的精確測(cè)量,可在一定傾角范圍內(nèi)對(duì)流速、流向等水文測(cè)量要素進(jìn)行傾斜補(bǔ)償。本文主要通過(guò)傾角傳感器的選型、A/D轉(zhuǎn)換及其測(cè)量控制電路的設(shè)計(jì)、與上位機(jī)的通訊等幾部分,詳細(xì)介紹了一種傾角測(cè)量系統(tǒng)的設(shè)計(jì)方案。已成功地在國(guó)家“十五”863計(jì)劃“水下流浪潮綜合測(cè)量技術(shù)”課題中得到應(yīng)用。
2.傾角測(cè)量系統(tǒng)的硬件設(shè)計(jì)
圖1是系統(tǒng)硬件組成的框圖。如圖所示,整個(gè)系統(tǒng)由SCA100T傾角傳感器、一階低通濾波器、ADS1211AD轉(zhuǎn)換器、單片機(jī)、上位機(jī)等幾部分組成。下面簡(jiǎn)單對(duì)硬件的各個(gè)組成部分進(jìn)行介紹:
圖1 硬件設(shè)計(jì)框圖
2.1單片機(jī)的選擇
單片微型計(jì)算機(jī)簡(jiǎn)稱(chēng)單片機(jī)。它是把組成計(jì)算機(jī)的各種功能部件:中央處理器CPU、RAM、ROM、I/O接口電路、定時(shí)器/計(jì)數(shù)器以及串行通訊接口等部件制作在一塊集成芯片中,構(gòu)成一個(gè)完整的微型計(jì)算機(jī) 。單片機(jī)是整個(gè)系統(tǒng)的核心,在本文的應(yīng)用中主要用于數(shù)據(jù)采集和傳輸,選用的是ATMEL公司的AT89S52。
2.2 AD轉(zhuǎn)換器
基金項(xiàng)目:國(guó)家高技術(shù)研究發(fā)展(863)計(jì)劃—資源環(huán)境技術(shù)領(lǐng)域海洋監(jiān)測(cè)技術(shù)主題:水下流浪潮綜合測(cè)量技術(shù)(課題號(hào):2002AA632060)
ADS1211有主動(dòng)和從動(dòng)兩種工作方式,在本應(yīng)用中ADS1211與單片機(jī)的連接采用四線(xiàn)
制從動(dòng)方式(如圖2),即ADS1211的SDOUT、SDIO、SCLK、DRDY分別與單片機(jī)的P1.4、P1.5、 P1.6、P1.7口連接。采樣數(shù)據(jù)通過(guò)SDOUT傳輸?shù)絾纹瑱C(jī),單片機(jī)通過(guò)查詢(xún)DRDY接收數(shù)據(jù)。單片機(jī)通過(guò)SDIO向ADS1211發(fā)送命令。SCLK引腳上的串行通波特率由軟件編程實(shí)現(xiàn)。
圖2 傾角測(cè)量系統(tǒng)電路原理圖
2.3 傾角傳感器
傾角傳感器采用VTI Technologies 公司的SCA100T系列。SCA100T是采用微電子機(jī)電技術(shù)(EMES)制造的一款雙軸加速度傳感器,SCA100T單軸的最大輸出范圍約為±40度,有效輸出范圍為±30度。在采樣頻率為8Hz及以下時(shí),可獲得0.002度的輸出分辨率。
加速度傳感器可以用來(lái)測(cè)定變化或恒定的加速度。恒定加速度的一個(gè)特例就是重力加速度,當(dāng)傳感器靜止時(shí)(沒(méi)有水平或垂直方向的加速度時(shí)),重力加速度方向和傳感器靈敏軸的夾角就是傾角。雙軸加速度傳感器測(cè)量?jī)A角有兩種放置方法:水平放置和一軸垂直放置。
圖3給出水平放置示意圖:
圖3水平放置方法
水平放置在±60度的范圍內(nèi)有很好的分辨率,當(dāng)大于±60度時(shí),傳感器將變得不靈敏(此時(shí)arcsin函數(shù)逐漸接近水平位置),當(dāng)傾角接近90度時(shí)則無(wú)法測(cè)量。水平放置時(shí)應(yīng)用如下的公式計(jì)算傾角:
可求得 為38.7度??紤]到儀器的傾斜不應(yīng)該大于±30度(如果大于±30度只能重新安裝),所以傳感器安裝時(shí)采用此種水平放置方法。
同時(shí),為了進(jìn)行傳感器自檢和內(nèi)部校正,分別將傳感器的MISO、MOSI、SCK、CSB與單片機(jī)的P1.1、P1.2、P1.3、P1.4相連。MISO用于傳輸傳感器內(nèi)部模數(shù)轉(zhuǎn)換器轉(zhuǎn)換的數(shù)字?jǐn)?shù)據(jù), MOSI與單片機(jī)的P1.2 引腳相連,用于向傳感器發(fā)送命令和進(jìn)行傳感器內(nèi)部自校正,使用軟件編程通過(guò)P1.3向SCK提供串口通訊脈沖。CSB為片選信號(hào)引腳。另外,SCA100T內(nèi)部帶有溫度傳感器,可對(duì)溫度誤差補(bǔ)償,在商業(yè)溫度范圍內(nèi)可不考慮溫度的影響。
2.4一階低通濾波器
由于SCA100T系列內(nèi)置一個(gè)11位的A/D轉(zhuǎn)換器,會(huì)產(chǎn)生周期為50-70微秒持續(xù)時(shí)間大約1微秒的毛刺,這個(gè)毛刺被疊加到模擬信號(hào)輸出端。在低速轉(zhuǎn)換時(shí)影響不大,但在進(jìn)行高速轉(zhuǎn)換時(shí)可能引起測(cè)量錯(cuò)誤。因此需要在模擬信號(hào)的輸出端加上一個(gè)一階低通濾波器,可有效濾除毛刺的影響。
2.5 電源部分
為了減少模擬信號(hào)噪聲,采用MAXIM公司的低噪聲高穩(wěn)定性MAX6325電源芯片給ADS1211提供參考電源,使用MAX6350芯片給ADS1211提供模擬電源,同時(shí)也給傳感器提供電源。
3.軟件設(shè)計(jì)
軟件分為下位機(jī)軟件和上位機(jī)軟件兩部分。
3.1單片機(jī)軟件編程
對(duì)于51系列單片機(jī),目前有匯編、PL/M、C和BASIC四種語(yǔ)言支持。本文下位機(jī)軟件采用Keil C51程序編寫(xiě)。主要由主程序、讀ADS1211子程序、讀SCA100T子程序、串口發(fā)送子程序和命令接收子程序等部分組成。圖1.4為程序流程圖:
圖4單片機(jī)程序流程圖
如圖所示,整個(gè)程序采用順序結(jié)構(gòu)。為了加快系統(tǒng)的響應(yīng)速度和提高計(jì)算精度,運(yùn)算由上位機(jī)程序完成,下位機(jī)只負(fù)責(zé)數(shù)據(jù)采集和數(shù)據(jù)傳輸。命令接收子程序通過(guò)接收上位機(jī)傳輸?shù)拿钸M(jìn)行系統(tǒng)自檢、參數(shù)修正等等。上位機(jī)的命令發(fā)送采用間隔10ms反復(fù)發(fā)送的方式,直到單片機(jī)將接收到的命令返回為止。如在1s內(nèi)單片機(jī)沒(méi)有響應(yīng),則設(shè)置超時(shí),系統(tǒng)復(fù)位單片機(jī)。
3.2 上位機(jī)軟件編程
單片機(jī)與上位機(jī)的通訊采用Visual C++6.0編寫(xiě),程序在Windows XP下編譯通過(guò)。
3.2.1串行通訊的實(shí)現(xiàn)
目前串行通訊主要有兩種實(shí)現(xiàn)方法:一種是利用Windows AP
本文采用MSComm控件,它間接調(diào)用Windows API函數(shù),使編程人員在程序設(shè)計(jì)的時(shí)候不必再考慮復(fù)雜的系統(tǒng)函數(shù),使編程工作變得簡(jiǎn)便,同時(shí)又能滿(mǎn)足實(shí)際情況的工控要求。
實(shí)現(xiàn)測(cè)量系統(tǒng)與PC機(jī)的通訊,首先在程序里嵌入MSComm控件,并設(shè)置通訊參數(shù),這里設(shè)置波特率為2400bps,8位數(shù)據(jù)位,無(wú)奇偶校驗(yàn)位,接收數(shù)據(jù)時(shí)采用事件驅(qū)動(dòng)方式,響應(yīng)Oncomm事件,當(dāng)接收緩沖區(qū)中接收到的字符數(shù)超過(guò)一定值產(chǎn)生緩沖區(qū)有字符事件。然后用GetInput()讀取緩沖區(qū),用SetInputMode(1)設(shè)置輸入數(shù)據(jù)類(lèi)型為以二進(jìn)制方式取回?cái)?shù)據(jù)。這樣可以接收ASCII字符‘0’。
3.2.2 傾角的計(jì)算
由上位機(jī)取得數(shù)據(jù)后,按下面的修正公式計(jì)算:
4.結(jié)束語(yǔ)
本測(cè)量系統(tǒng)研制成功后,已經(jīng)過(guò)了三個(gè)月的海試,工作穩(wěn)定,達(dá)到了預(yù)期的設(shè)計(jì)要求,取得了較好的效果。采用加速度計(jì)式的傾斜傳感器與傳統(tǒng)觸點(diǎn)電位器式的傾斜傳感器相比,有著無(wú)可比擬的優(yōu)點(diǎn)。如加速度計(jì)式的傾斜傳感器工作壽命長(zhǎng)、精度高、響應(yīng)速度快等優(yōu)點(diǎn)。
參考文獻(xiàn)
[1]胡漢才 單片機(jī)原理及其接口技術(shù) 清華大學(xué)出版社
[2]宋躍等 存儲(chǔ)示波表中常用電氣參數(shù)測(cè)量設(shè)計(jì) 微計(jì)算機(jī)信息 2005年21卷 11s期
[3]輝格科技 利用加速度傳感器測(cè)量?jī)A角 技術(shù)文檔
[4] VTI Technologies Improved Output Filtering Technical Note 18
[5]龔建偉、熊光明 Visual C++/Turbo C串口通訊編程實(shí)踐 電子工業(yè)出版社