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