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