本站小編為你精心準備了慣性傳感器數(shù)據(jù)采集系統(tǒng)設(shè)計參考范文,愿這些范文能點燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。
摘要:
文章介紹了一種基于STM32的慣性傳感器數(shù)據(jù)采集系統(tǒng)的設(shè)計方法。采用STM32作為核心處理器,通過SPI通信協(xié)議完成核心處理器對慣性傳感器數(shù)據(jù)的采集,并通過RS232串口實現(xiàn)核心處理器與上位機實時通信。闡述了系統(tǒng)工作原理以及相關(guān)硬件和軟件設(shè)計,核心處理器內(nèi)部集成功能模塊豐富,無需外部擴展芯片,大大簡化了系統(tǒng)設(shè)計。實際數(shù)據(jù)采集過程及結(jié)果表明,系統(tǒng)具有軟硬件設(shè)計穩(wěn)定可靠、采集數(shù)據(jù)真實準確、數(shù)據(jù)顯示和保存方便等優(yōu)點。
關(guān)鍵詞:
STM32;慣性傳感器;數(shù)據(jù)采集;SPI通信
近年來,隨著半導(dǎo)體集成電路微細加工技術(shù)的快速發(fā)展,微機電系統(tǒng)(MEMS,Micro-Electrical-MechanicalSystem)得到了快速發(fā)展,MEMS慣性器件包括MEMS陀螺儀和MEMS加速度計[1]。由于它具有集成化、智能化、微型化、可靠性強、抗沖擊能力強等特點[2],并且數(shù)據(jù)融合框架以及硬件性能的提高[3-4]使得越來越多的國家開始研究這種微型化、低成本的微型慣性導(dǎo)航系統(tǒng)。實時、高效地采集MEMS慣性器件測量的數(shù)據(jù)對于后續(xù)的導(dǎo)航定位、數(shù)據(jù)分析具有極其重要的意義。目前,針對不同的應(yīng)用環(huán)境,MEMS數(shù)據(jù)采集系統(tǒng)核心器件有FPGA、DSP、ARM、單片機等,F(xiàn)PGA、DSP多應(yīng)用于數(shù)據(jù)采集速率要求較高的環(huán)境[1],但是成本較高,而本系統(tǒng)所采集數(shù)據(jù)將用于對慣性器件數(shù)據(jù)進行誤差分析,考慮數(shù)據(jù)采集速率與成本兩方面要求,本系統(tǒng)采用ARMCortexM3內(nèi)核的STM32F103VBT6作為核心處理器件對慣性傳感器ADIS16488A的陀螺儀和加速度計進行數(shù)據(jù)采集,既保證了較低的設(shè)計成本又保障了一定的數(shù)據(jù)采集實時性。
1器件性能特點
本數(shù)據(jù)采集系統(tǒng)的慣性傳感器采用戰(zhàn)術(shù)級10自由度慣性傳感器ADIS16488A,核心處理器采用STM32F103VBT6,通過STM32F103VBT6核心處理器控制ADIS16488A完成數(shù)據(jù)采集并通過串口將數(shù)據(jù)實時發(fā)送到PC機端。以上三者通信示意圖如圖1所示。
1.1ADIS16488A慣性傳感器
1.1.1ADIS16488A性能特點ADIS16488A是一款完整的慣性系統(tǒng),內(nèi)置一個三軸陀螺儀以及三軸加速度計、一個三軸磁力計、一個壓力傳感器和溫度傳感器。陀螺儀和加速度計用以完成對慣性器件數(shù)據(jù)的測量,三軸陀螺儀可提供±450°/秒動態(tài)范圍,三軸加速度計動態(tài)范圍為±18g,該系統(tǒng)可實現(xiàn)可編程工作與控制,SPI和寄存器結(jié)構(gòu)針對數(shù)據(jù)收集和配置提供簡單的接口[5]。該系統(tǒng)通過單電源供電方式運行,電源工作電壓為3.0V至3.6V,可在-55℃至+105℃環(huán)境溫度下工作。ADIS16488A的工作功能框圖如圖2所示[5]。
1.1.2ADIS16488A寄存器結(jié)構(gòu)ADIS16488A寄存器結(jié)構(gòu)是連接傳感器處理系統(tǒng)與外部主機處理器的橋梁。ADIS16488A寄存器包括輸出寄存器和控制寄存器。輸出寄存器包括最新傳感器數(shù)據(jù)、實時時鐘、錯誤標志、報警標志和識別數(shù)據(jù)。控制寄存器寄存內(nèi)容包括采樣速率、濾波、輸入輸出、報警、校準和診斷配置選項[5]。ADIS16488A與外部處理器之間的所有通信都會讀取或?qū)懭肫渲幸粋€用戶寄存器。ADIS16488A寄存器結(jié)構(gòu)采用分頁尋址方案,包括13個頁面,每個頁面含有64個寄存器位置。每個寄存器都是16位寬,每個字節(jié)在相應(yīng)頁面的存儲器映射內(nèi)都有唯一的地址[5]。ADIS16488A寄存器工作的基本原理如圖3所示。
1.1.3ADIS16488A引腳配置ADIS16488A引腳分配圖如圖4所示[5]。
1.2STM32F103VBT6核心處理器
1.2.1STM32F103VBT6性能特點STM32F103VBT6使用高性能的ARMCortex-M332位的RISC內(nèi)核,工作頻率為72MHz,處理器內(nèi)置高速存儲器分別為128K字節(jié)的閃存和20K字節(jié)的SRAM,并且系統(tǒng)內(nèi)置增強的I/O端口以及連接到兩條APB總線的外設(shè)[7]。器件包含3個16位的定時器、1個PWM定時器、2個12位的ADC以及各類通用的通信接口(2個I2C總線接口、SPI通信接口、3個USART、1個USB和1個CAN)。STM32F103VBT6可工作于-40℃到+105℃的工作范圍,外部供電電壓范圍為2.0V到3.6V,并且器件設(shè)計的各類省電模式很好地實現(xiàn)了低功耗的要求[7]。
1.2.2Cortex-M3內(nèi)核結(jié)構(gòu)Cortex-M3內(nèi)核是建立在高性能哈佛結(jié)構(gòu)三級流水線基礎(chǔ)上,為ARM7架構(gòu)。為提高各個時鐘周期的性能,普遍采用時鐘選通相關(guān)技術(shù),比如單周期內(nèi)32位計數(shù)乘法和硬件除法,性能得到了較大提高。通過基于堆棧異常模式的設(shè)計,大大縮小了器件尺寸[6]。指令接口和數(shù)據(jù)接口各使用一條總線,與常規(guī)的Cortex-M3不同,ARM7系列處理器使用馮•諾依曼架構(gòu),數(shù)據(jù)和指令公用存儲器以及信號總線。由于指令以及數(shù)據(jù)可以同時從存儲器中讀取,Cortex-M3對多個操作行執(zhí)行,因此大大加快了系統(tǒng)的執(zhí)行效率[6]。
2數(shù)據(jù)采集系統(tǒng)總體硬件設(shè)計
2.1總體設(shè)計方案數(shù)據(jù)采集系統(tǒng)硬件設(shè)計的總體方案為:以STM32F103VBT6作為系統(tǒng)核心控制器件,STM32F103VBT6與ADIS16488A通過SPI通信協(xié)議進行數(shù)據(jù)傳輸,SPI通信模式中,STM32F103VBT6為主設(shè)備,ADIS16488A為從設(shè)備,實時采集慣性器件測量數(shù)據(jù)并通過RS232串口通過異步通信的方式將數(shù)據(jù)實時發(fā)送到PC機端,實時顯示并保存采集數(shù)據(jù)。系統(tǒng)總體設(shè)計方案圖如圖5所示。
2.2SPI通信模式設(shè)計當存在有效電源時,ADIS16488A會自動啟動,完成相關(guān)初始化功能后,傳感器開始采樣、處理并將校準后的慣性傳感器數(shù)據(jù)傳入輸出存儲器,通過SPI端口可以訪問數(shù)據(jù)[5]。本數(shù)據(jù)采集系統(tǒng)SPI端口連接到STM32F103VBT6核心處理器的兼容性端口。STM32F103VBT6核心處理器作為主設(shè)備,ADIS16488A作為SPI通信模式的從設(shè)備,SPI通信接線如圖6所示。主機NSS引腳用于選擇從機[7],ADIS16488A的DIO2引腳連接到處理器的中斷請求IRQ引腳,當輸出數(shù)據(jù)寄存器中有新數(shù)據(jù)可用時,該引腳變?yōu)榈碗娖剑嵝押诵奶幚砥鬟M行數(shù)據(jù)采集。主機通過SCLK引腳向從機提供串行時鐘信號,MOSI引腳作為主機輸出引腳,MISO作為從機輸出引腳。完成相關(guān)硬件連接后需要對主機處理器進行相關(guān)配置以實現(xiàn)SPI通信,STM32F103VBT6使用內(nèi)置控制寄存器來配置其串行端口,按照SPI通信協(xié)議,主機處理器的初始化程序可以通過固件命令方式將相關(guān)配置寫入其串行控制寄存器,主機相關(guān)配置如表2所示。SPI端口支持全雙工通信,主機處理器可以在讀取DOUT的同時向從設(shè)備寫入DIN,有效保證了數(shù)據(jù)傳輸?shù)男室约皵?shù)據(jù)傳輸?shù)膶崟r性。SPI通信協(xié)議時序圖如圖7所示[5]。SPI使用圖示的位分配方式向控制寄存器寫入信息,一次一個字節(jié)。每個寄存器都有16位,首先寫入寄存器的低位字節(jié),然后寫入高位字節(jié)。單個寄存器讀操作需要兩個16位SPI周期。在第一個周期中,利用SPI通信時序請求讀取一個寄存器的內(nèi)容。在第二個周期中,寄存器的內(nèi)容通過DOUT輸出,這樣在一個16位SPI周期內(nèi),同時完成了寫入與讀取操作[5],并且寫入操作是為下一周期讀取做準備,因而采用SPI通信方式可以極大提高數(shù)據(jù)的采集速率,保證數(shù)據(jù)傳輸?shù)膶崟r性。
2.3RS-232串口接口電路設(shè)計STM32F103VBT6與PC機進行通信時,RS-232C標準規(guī)定:-3~-15V表示邏輯“1”,+3~+15V表示邏輯“0”,電壓范圍與STM32F103VBT6TTL電平不兼容,因而需要在此基礎(chǔ)上進行電平轉(zhuǎn)換。本數(shù)據(jù)采集系統(tǒng)采用MAX232芯片實現(xiàn)電平轉(zhuǎn)換,MAX232低功耗、單電源雙RS232發(fā)送/接收器特點可以很好滿足采集系統(tǒng)需求。MAX232內(nèi)置的電壓變換器可以把輸入的+5V電壓轉(zhuǎn)換為±10V電壓,因而芯片接口的串行通信系統(tǒng)只要單一的+5V的電源即可滿足需求[1]。STM32F103VBT6與PC機之間的數(shù)據(jù)傳輸采取異步通信的方式,數(shù)據(jù)的發(fā)送和接收采取常規(guī)的格式進行。RS232通信電路原理圖如圖8所示。
3數(shù)據(jù)采集系統(tǒng)總體軟件設(shè)計
本數(shù)據(jù)采集系統(tǒng)軟件設(shè)計采用英蓓特公司和ARM公司聯(lián)合推出的高效基于Cortex-M、Cortex-R4、ARM7、ARM9處理器設(shè)備的完整的開發(fā)環(huán)境[8]。應(yīng)用程序包括以下四個部分:①主程序。②數(shù)據(jù)采集相關(guān)程序。③SPI通信程序。④串口通信程序。各程序以主程序為主線按照嚴格的時序執(zhí)行,主程序主要完成系統(tǒng)時鐘、串口通信、SPI通信的配置以及ADIS16488A復(fù)位功能、ADIS16488A自測功能的實現(xiàn)。完成主機與從機的相關(guān)初始化以及配置后,STM32F103VBT6通過RS232通信機制與上位機進行通信,傳輸數(shù)據(jù)通過串口調(diào)試助手可以實時顯示并進行存儲,方便后續(xù)進行數(shù)據(jù)分析與處理。實現(xiàn)軟件工作流程圖如圖9所示。在SPI通信模塊設(shè)計中由于SPI時鐘頻率為9MHz,STM32F103VBT6處理器主頻為72MHz,并且STM32F103VBT6的時鐘配置模式只有2、8、16、25四種分頻模式,兼顧主從設(shè)備的時鐘頻率匹配關(guān)系,最后STM32F103VBT6采用72MHz下的8分頻作為處理器數(shù)據(jù)采集頻率。
4實驗驗證
為了驗證數(shù)據(jù)采集系統(tǒng)所采集數(shù)據(jù)的可靠性,需要對采集得到的數(shù)據(jù)進行驗證。通過串口傳輸?shù)臄?shù)據(jù)通過串口調(diào)試助手在PC機上顯示并可轉(zhuǎn)化為txt格式進行存儲,讀取存放的txt格式文件相關(guān)數(shù)據(jù)進行實驗驗證。完成實驗驗證需要的設(shè)備包括以下兩個:(1)已搭建完善的MEMS慣性傳感器數(shù)據(jù)采集系統(tǒng)。(2)920E型單軸速率位置轉(zhuǎn)臺。實驗驗證思路如下:設(shè)定單軸轉(zhuǎn)臺以某一固定角速率進行旋轉(zhuǎn),分三次進行數(shù)據(jù)采集,分別將ADIS16488A三軸某一軸向與轉(zhuǎn)臺軸重合,完成慣性器件數(shù)據(jù)采集。得到三組慣性器件測量到的數(shù)據(jù),將不同軸指向條件下采集到的陀螺儀輸出數(shù)據(jù)與設(shè)定的固定旋轉(zhuǎn)角速率值進行比較,另外在靜態(tài)條件下以相同方式完成加速度計測量數(shù)據(jù)的采集并與重力加速度進行比較,驗證測量數(shù)據(jù)的正確性。實驗驗證單軸轉(zhuǎn)臺以速率運動模式工作,設(shè)定單軸旋轉(zhuǎn)速率為30°/s,實驗驗證實物圖如圖10所示。將慣性器件測量到的數(shù)據(jù)與理想設(shè)定值(轉(zhuǎn)臺旋轉(zhuǎn)角速率,加速度計理想測量值為重力加速度1000mg)進行比較,得到如下陀螺儀(見圖11)和加速度計真實測量數(shù)據(jù)曲線圖(見圖12)。實驗數(shù)據(jù)與理想數(shù)據(jù)存在偏差有以下兩個方面的主要原因:①慣性器件本身存在的測量誤差。②器件放置導(dǎo)致的三軸指向與理想坐標軸指向存在偏差導(dǎo)致的測量誤差。從圖12可以看出,實測數(shù)據(jù)由于以上兩方面原因確實存在誤差,但都在理想值附近波動,說明數(shù)據(jù)采集系統(tǒng)所采集的數(shù)據(jù)是真實的慣性器件實測數(shù)據(jù)。另外本數(shù)據(jù)采集系統(tǒng)也完成了磁力計、壓力傳感器以及溫度傳感器測量數(shù)據(jù)的采集,實驗驗證表明數(shù)據(jù)采集準確可靠。
5結(jié)語
本文介紹的慣性傳感器數(shù)據(jù)采集系統(tǒng),以ADIS16844A作為慣性傳感器,STM32F103VBT6作為核心處理器,通過SPI通信協(xié)議完成核心處理器對慣性傳感器測量數(shù)據(jù)的實時采集,通過RS232串口完成處理器與上位機的實時通信。通過SPI通信模式相關(guān)配置方式完成數(shù)據(jù)采集系統(tǒng)處理器與傳感器的硬件和相關(guān)軟件設(shè)計,通過RS232串口通信模式以異步通信方式完成處理器與上位機相關(guān)硬件和軟件設(shè)計,保證數(shù)據(jù)可靠、準確傳輸至上位機。所設(shè)計的數(shù)據(jù)采集系統(tǒng)穩(wěn)定可靠,采集數(shù)據(jù)真實準確,并可通過上位機完整顯示和保存。此數(shù)據(jù)采集系統(tǒng)可為后續(xù)數(shù)據(jù)誤差分析及補償建立基礎(chǔ),為今后以ADIS16488A作為慣性傳感器的慣導(dǎo)系統(tǒng)設(shè)計創(chuàng)造條件。
[參考文獻]
[1]陳寶毅.MEMS慣性器件的數(shù)據(jù)采集與誤差分析技術(shù)研究[D].哈爾濱:哈爾濱工程大學(xué),2009.
[2]安仲源,歐陽清.基于MEMS的溫度數(shù)據(jù)采集系統(tǒng)的設(shè)計[J].艦船電子工程,2008(11):204-206.
[3]YoshidaJ.Hardware-agnosticsensordataintegration,MEMS'nextfrontier?[J].EETimes,2012(1619):10-12.
[4]LiY,ZhangW,DongH,etal.Microstoragemeasurementunit[J].Microelectronicengineering,2002(61):1039-1047.
[5]TacticalGradeTenDegreesofFreedomInertialSensor[M].AnalogDevices,2014.
[6]馬建偉.基于STM32的空氣動力學(xué)數(shù)據(jù)采集系統(tǒng)的設(shè)計[D].成都:西南交通大學(xué),2010.
[7]STM32F103x8STM32F103xBDatasheet-productiondata[M].STMicroelectronics,2015.
[8]張旭,亓學(xué)廣,李世光,等等.基于STM32電力數(shù)據(jù)采集系統(tǒng)的設(shè)計[J].電子測量技術(shù),2010(11):90-93.
作者:許兆新 方濤 丁繼成 吳謀炎 單位:哈爾濱工程大學(xué)自動化學(xué)院