《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于AT89S52的MEMS陀螺信號采集與處理系統(tǒng)設(shè)計
基于AT89S52的MEMS陀螺信號采集與處理系統(tǒng)設(shè)計
來源:微型機與應(yīng)用2011年第14期
闞如文1,王芳榮1,,董緒斌2,,劉順安2,尚 濤2
(1.吉林大學(xué) 控制科學(xué)與工程系,,吉林 長春130025,;2.吉林大學(xué) 機械工程學(xué)院,吉林 長春13
摘要: 針對MEMS陀螺儀在實際應(yīng)用中達不到需要的精度,,為改善陀螺儀的工作性能,,降低陀螺信號噪聲,通過AT89S52單片機與ADIS16355慣性陀螺儀搭建一個硬件平臺,,經(jīng)過SPI接口通信,、AT89S52單片機控制,將采集的數(shù)據(jù)通過LCD顯示,,并對平臺系統(tǒng)進行靜態(tài)和動態(tài)測試,,最后對系統(tǒng)進行了誤差分析,該系統(tǒng)具有較高精度,、成本低,、操作方便簡單,在陀螺儀實際應(yīng)用中具有良好的推廣價值,。
Abstract:
Key words :

摘  要: 針對MEMS陀螺儀在實際應(yīng)用中達不到需要的精度,,為改善陀螺儀的工作性能,降低陀螺信號噪聲,,通過AT89S52單片機ADIS16355慣性陀螺儀搭建一個硬件平臺,,經(jīng)過SPI接口通信、AT89S52單片機控制,,將采集的數(shù)據(jù)通過LCD顯示,,并對平臺系統(tǒng)進行靜態(tài)和動態(tài)測試,,最后對系統(tǒng)進行了誤差分析,該系統(tǒng)具有較高精度,、成本低,、操作方便簡單,在陀螺儀實際應(yīng)用中具有良好的推廣價值,。
關(guān)鍵詞: MEMS陀螺儀,;ADIS16355芯片;AT89S52單片機,;SPI接口,;數(shù)據(jù)采集

 MEMS(Micro Electron Mechanical System)陀螺儀是一種可以精確測量物體方位的儀器,不僅成本低,,體積小,,重量輕,而且可以與微電子加工的電路實現(xiàn)集成,,做到機電一體化,。MEMS陀螺適用于汽車工業(yè)、慣性導(dǎo)航,、計算機,、機器人、軍事等急需大量小型,、廉價陀螺的應(yīng)用領(lǐng)域,,是國防、工業(yè)發(fā)展中必不可少的儀器,。
    但是,,MEMS陀螺儀在實際應(yīng)用中達不到需要的精度,為了提高陀螺儀系統(tǒng)工作性能和測量精度,,對陀螺儀進行數(shù)據(jù)采集并減小誤差是至關(guān)重要的,。
    ADIS16355慣性測量裝置將三軸角速度感知與三軸加速度感知相結(jié)合,提供六自由度運動感知,、嵌入式校準與傳感器處理以及傳感器-傳感器交叉補償,,并大大提高信號穩(wěn)定性(使用偏移穩(wěn)定性為0.015 deg/sec),體積小于1立方英寸,。ADIS16355是在整個溫度范圍內(nèi)校準,,具有卓越的偏壓溫度穩(wěn)定性(0.005 deg/sec/°)。ADISl6355提供一個串行外部接口SPI(Serial Peripheral Interface),,通過SPI可以對芯片進行配置,,獲得運行狀態(tài)與測量結(jié)果等,其對外部供電要求不高,內(nèi)部自帶高精度的穩(wěn)壓電路,,外圍電路較少[1],。
    AT89S52單片機[2]是一種低功耗、高性能CMOS 8位微控制器,,具有8 KB在系統(tǒng)可編程Flash存儲器,,使用美國ATMEL公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容,。在單芯片上,,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,同時,,AT89S52帶有ISP下載功能,,它利用在線編程器替代昂貴的單片機仿真器編程器,既方便使用,,又節(jié)省開發(fā)費用,。
    本文結(jié)合單片機對ADIS16355慣性傳感器進行控制,將采集的數(shù)據(jù)實時存儲并通過LCD1602進行顯示,,最后對系統(tǒng)進行測試,并分析了系統(tǒng)存在的誤差,。
1 ADIS16355芯片數(shù)據(jù)采集硬件設(shè)計
    根據(jù)數(shù)據(jù)采集系統(tǒng)的需要,,系統(tǒng)以AT89S52作為主控單元,外擴一片6264靜態(tài)存儲器作為數(shù)據(jù)存儲器,,并設(shè)計AT89S52與ADIS16355通信的SPI接口模塊,、LCD顯示模塊、鍵控模塊和在線編程模塊,,系統(tǒng)硬件連接框圖如圖1所示,。

 

 

 

1.1 主控模塊
    控制單片機AT89S52具有8 KB Flash,256 B RAM,,32 bit的I/O口線,,看門狗定時器,兩個數(shù)據(jù)指針,,3個16 bit定時器/計數(shù)器,,一個六向量兩級中斷結(jié)構(gòu),全雙工串行口,,片內(nèi)晶振及時鐘電路等功能[3],。它與ADIS16355陀螺儀之間通過SPI接口相連。因為AT89S52單片機沒有專門的SPI接口,,只能通過軟件模擬P2.0口為時鐘信號線與陀螺儀的SPI接口SCLK引腳相連,,P2.1口為主輸出從輸入MOSI與陀螺儀SPI接口的數(shù)據(jù)輸人SDI引腳相連,P2.2口為主輸入從輸出MISO與陀螺儀SPI接口的數(shù)據(jù)輸出SDO引腳相連,P2.3口為片選信號,。P3.2,、P3.3為中斷引腳,分別與ADIS16355的DIO1和DIO2相連,,為數(shù)據(jù)轉(zhuǎn)換中斷,。
1.2 LCD顯示模塊
    系統(tǒng)顯示部分采用液晶LCD1602芯片,其特點是:功耗低,、體積小,、質(zhì)量輕、顯示質(zhì)量高,、數(shù)字式,,采用標準的16腳接口和單片機連接簡單,操作方便,,能夠同時顯示16×2即32個字符,,1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)存儲了160個不同的點陣字符圖形,方便顯示控制器采集出的數(shù)據(jù),。
1.3 在線編程模塊
    系統(tǒng)設(shè)計了在線編程模塊,,利用STC-ISP編程燒錄軟件實時在線下載程序,大大方便了開發(fā)者,,提高了系統(tǒng)研發(fā)效率,。
1.4 SPI接口模塊通信與配置
    SPI是MOTOROLA公司提出的同步串行總線方式,是一種全雙工,、同步,、串行數(shù)據(jù)接口標準總線,與其他串行總線相比,,它具有電路結(jié)構(gòu)簡單,、速度快、通信可靠等優(yōu)點[4],。標準的SPI總線由4根信號線組成:時鐘信號(SCLK),、主輸入\從輸出線(SDI)、主輸出\從輸入線(SDO)和片選信號(CS),。
    系統(tǒng)中ADIS16355通過SPI接口與外部進行通信,,需要外部設(shè)備MCU通過該接口對其內(nèi)部各寄存器進行設(shè)置,圖2所示是一個典型的寫入控制寄存器命令的數(shù)據(jù)幀,。由芯片資料[5]可知,,DIN系列的首位是1,第二位是0,,后面是目標寄存器的6 bit地址和8 bit數(shù)據(jù)命令,,因為每一個寫命令包含一個數(shù)據(jù)位,,所以給整個16 bit寄存器空間寫值時要求有兩個數(shù)據(jù)幀。圖3為ADIS16355讀操作SPI時序圖,,由芯片資料[5]可知ADIS16355完成一次SPI通信包括16 bit數(shù)據(jù),,其中第1位是SPI傳輸?shù)淖x寫狀態(tài)標識,第2位為0,,緊跟著的6 bit是目標寄存器地址,,最后8 bit是在寫操作時將要寫進寄存器的數(shù)據(jù),如果是讀操作則忽略,,完成ADIS16355的一個讀操作需要進行兩次16 bit的SPI通信,,其中第一次是寫入將要讀取的寄存器地址,該寄存器的內(nèi)容將在第二次SPI通信出現(xiàn)在ADIS16355的DOUT信號線上,,輸入SPI的主設(shè)備,。

    本設(shè)計中控制器與ADIS16355進行SPI通信的每個數(shù)據(jù)幀為16 bit,而AT89S52的數(shù)據(jù)寬度為8 bit,,所有內(nèi)部寄存器和數(shù)據(jù)空間存儲器都是8 bit寬度組成,,作為主設(shè)備在其發(fā)出有效的SPI片選信號使能ADISl6355后,要對其自身的SPI數(shù)據(jù)寄存器進行兩次寫操作,,才能在總線上完成一次16 bit數(shù)據(jù)傳輸,。
2 軟件設(shè)計
    ADISl6255陀螺儀所有的數(shù)據(jù)和命令的讀取和寫入都是通過讀寫寄存器來完成的。通過AT89S52單片機編寫程序讀取ADISl6355內(nèi)部相應(yīng)的寄存器地址,,相應(yīng)讀取回來的12 bit或者14 bit長度的數(shù)據(jù)經(jīng)過換算再乘以對應(yīng)的比例因子就得到了相應(yīng)的x,、y、z軸陀螺儀和加速度計以及內(nèi)部溫度信息,。
    在啟動陀螺儀前,首先要對陀螺儀的各個寄存器進行正確的設(shè)置,。由參考文獻[5],、[6]知,設(shè)置GYRO_OFF和GYRO_SCALE寄存器對陀螺儀三軸輸出的靈敏度和偏差進行用戶自校準,;設(shè)置SMPL_PRD寄存器,,選取合適的采樣頻率;設(shè)置SENS/AVG寄存器,,定義陀螺動態(tài)量程以及對應(yīng)的數(shù)字濾波器,;設(shè)置MSC_CTRL寄存器,定義自檢位以及數(shù)據(jù)更新中斷位,;設(shè)置COMMAND寄存器,,定義數(shù)據(jù)校正模式;設(shè)置ALM_CTRL寄存器,,為數(shù)據(jù)報警,。
    陀螺儀自身帶有一個校準控制指令,在讀取數(shù)據(jù)之前需要用戶的自定義校準,具體操作方法[6]是將MSC_
CTRL寄存器的第10位置1,,20 ms后,,讀取狀態(tài)寄存器的值,如果為0x0000,,表明自檢通過,,否則表明陀螺儀存在如供電超限、SPI通信錯誤等問題,,響應(yīng)的錯誤位將在狀態(tài)寄存器中標出,。
    MEMS陀螺儀數(shù)據(jù)采集軟件設(shè)計主要是對AT89S52的程序設(shè)計。系統(tǒng)上電復(fù)位后,,首先完成單片機初始化,,對陀螺儀各個自由度寄存器參數(shù)設(shè)置,初始化LCD1602,,初始化SPI接口,,陀螺儀自校準過程,定時器和相應(yīng)中斷打開,,數(shù)據(jù)存儲及更新,,最后通過按鍵分別顯示X、Y,、Z軸陀螺儀和加速度計以及內(nèi)部溫度信息,。系統(tǒng)軟件程序采用Keil μVision4軟件編寫,Keil μVision4是基于80C51內(nèi)核開發(fā)的,,可以用C語言和匯編語言進行編程,,C編譯工具在產(chǎn)生代碼的準確性和效率方面達到了較高的水平,并且可以附加靈活的控制選項,,在開發(fā)大型項目時非常實用[7],。其軟件程序流程圖如圖4所示。


3 測試結(jié)果
    完成硬件平臺搭建和軟件程序設(shè)計后,,室溫下對系統(tǒng)進行靜態(tài)測量,,通過改變溫度,分析角度的漂移,;在小型旋轉(zhuǎn)平面上進行動態(tài)測試,,分析線性加速度的變化,針對過大的漂移率現(xiàn)象,,進行自校準,,再測量。
    靜態(tài)測試,,在室溫下,,由液晶屏顯示輸出溫度為
+21.36 ℃,,輸出角度有不超過0.02°/s的漂移率。當(dāng)把陀螺儀溫度提高到50 ℃時,,顯示溫度為+50.07 ℃,,陀螺角度出現(xiàn)單向漂移現(xiàn)象,輸出角度大約為0.72°/min漂移率,。經(jīng)過軟件自校準后,,角度漂移較穩(wěn)定變化,單漂移現(xiàn)象消除,。
    動態(tài)測試,,對三軸加速度計的測試采用重力場1 gn試驗方法[8],安裝方法如圖5所示,,將加速度計通過卡具安裝在位置轉(zhuǎn)臺上,,使加速度計的輸入軸在鉛垂平面內(nèi)相對重力加速度轉(zhuǎn)動。

    使位置轉(zhuǎn)臺在360°范圍內(nèi)旋轉(zhuǎn),,由圖5可知,,敏感軸上的加速度分量為[9]:
    a=gn·sinθ                 (1)
式中a為敏感軸上的加速度;θ為加速度計敏感軸與水平方向間的夾角,。由式(1)可知,,當(dāng)位置轉(zhuǎn)臺轉(zhuǎn)動時,加速度計敏感軸上的重力加速度分量呈正弦關(guān)系變化,,加速度計的輸出也呈正弦關(guān)系變化,。在知道敏感軸與水平方向的夾角后,就可以計算出加速度計所感應(yīng)到的加速度大小[8],。
    測試采取十二位置測試方法,,即每間隔30°測量一次,首先需要確定機械零點,,即試驗前要確保初始狀態(tài)的敏感軸與水平方向間夾角為0°,,確定機械零位一般采用四點法[9],測量當(dāng)?shù)刂亓铀俣萭n(如長春重力加速度為9.801 m/s2),由公式(1)可以計算出十二位置點的重力加速度分量值,,選取部分測試點與本系統(tǒng)顯示的加速度值對比,分析絕對誤差如表1所示,。

    由表1知,,在常溫下測量的ADIS16355加速度計  系統(tǒng)顯示的值與理論值絕對誤差在轉(zhuǎn)臺限定的誤差范圍之內(nèi),并且滿足ADIS16355線性加速度精度誤差為2.522 mg/LSB(約為0.024 7 m/s2)的要求,,加上溫度補償可以進一步提高測量精度,。
    本數(shù)據(jù)采集系統(tǒng)主要存在以下誤差:一方面是由陀螺儀自身出廠工藝缺陷、結(jié)構(gòu),、工作模式等形成的各種漂移,;另一方面是由重力場,、磁場、檢測電路干擾,、系統(tǒng)安裝不平衡引起的陀螺輸出偏差,。對于以上誤差中確定性誤差可以采用標定測試、自檢校準和溫度補償來減小,,對于不確定性誤差采用統(tǒng)計方法統(tǒng)計變化規(guī)律和有效系統(tǒng)辨識方法來處理,。
    ADIS16355 iSensor是一款完整的三軸陀螺儀與三軸加速計慣性檢測系統(tǒng)。本文以AT89S52單片機為核心控制器件,,只需要很少的外圍電路,,采用KeilC51軟件編寫程序,實時存儲采集的數(shù)據(jù)并經(jīng)LCD顯示,,通過靜態(tài)溫度和角度測試及重力加速度試驗測試表明,,該系統(tǒng)具有較高的精度和實時性。最后對系統(tǒng)存在的誤差進行分析,。本文設(shè)計的MEMS數(shù)據(jù)采集系統(tǒng)具有精度高,、成本低、操作簡單,、使用方便,,在陀螺儀的實際應(yīng)用中存在較大的市場價值。
參考文獻
[1] 陳國華,,王剛. 基于ADIS16255 MEMS芯片陀螺儀的應(yīng)用研究[J].中國慣性技術(shù)學(xué)報,,2008,16(4):480-483.
[2] 李朝青.單片機原理與接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,2003.
[3] 8-bit microcontroller with 8 K Bytes in-system programmable  Flash.AT89S52 datasheet. Micro- controllers.2008,,[2011- 01-06].http://www.atmel. com/dyn/resources/prod_documents/doc1919.pdf.
[4] 陳寶毅.MEMS慣性器件的數(shù)據(jù)采集與誤差分析技術(shù)研究[D].哈爾濱:哈爾濱工程大學(xué),,2009.
[5] Programmable low power gyroscope,ADISl6355 datasheet. ANALOG DEVICES.2007,,[2011-01-06].http://www.analog.com/pr/ADIS16355.
[6] 王犇,,袁濤,譚濤.基于MEMS陀螺儀的微慣性測量系統(tǒng)的實現(xiàn)[J].微機電(MEMS)技術(shù)應(yīng)用,,2008,,24(9):152-153.
[7] 陳小忠,黃寧,,趙小俠.單片機接口技術(shù)實用子程序[M].北京:人民郵電出版社,,2005.
[8] 李振波,李疆,,劉北英.基于單片機的數(shù)字微加速度計靜態(tài)測試平臺設(shè)計[J].傳感器與微系統(tǒng),,2008,28(2):88-90.
[9] 董景新.微慣性儀表-微機械加速度計[M].北京:清華大學(xué)出版社,,2003:227-265.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。