时间:2024-08-31
李 洋,闫学昆,谷铁男(北京市海军核化安全研究所,北京,100077)
基于STM32F103的ADIS16405数据采集系统设计
李 洋,闫学昆,谷铁男
(北京市海军核化安全研究所,北京,100077)
本文设计了一种基于STM32F103处理器的ADIS16405数据采集系统。STM32F103通过SPI的DMA通道将ADIS16405的三轴角速度、三轴比力、三轴磁数据读取进入处理器,通过一定的野值剔除算法对数据进行一定处理,设计了专用的上位机软件可以解析处理器发送的ADIS16405原始数据,并采用友好、简介的界面显示出来。试验表明,本系统设计具有数据实时性好、稳定性高、成本低、便携性高、界面友好等特点。
STM32;ADIS16405;数据采集系统;SPI接口
随着各种无人飞行器、无人车甚至于高端航模产品的出现,姿态测量技术越来越受到重视,基于惯性测量单元(Inertial measurement unit,IMU)的姿态测量系统由于其成本低廉、体积小、数据处理简单、精度始终等优点,得到了广泛应用[1,2,3]。
现今,大部分产品中使用的IMU产品存在器件没有经过校正比例系数、零位、安装误差、温度系数等参数,造成误差较大;或者,设计的数据采集系统数据实时性比较差、容易出现野值、显示界面不友好等问题。
本文设计的基于STM32F13的ADIS16405的数据采集系统,采用经过工厂标定补偿的9轴IMU产品ADIS16405,能够消除大部分误差;处理器采用SPI的DMA通道读取IMU的数据,使得实时性得到一定程度的提高,并且发送数据也采用串口的DMA通道,减少了发送延时;设计的野值剔除算法,使得数据正确率有所提高;设计了专用的数据显示界面,使得数据更加直观,显示更加友好[4]。
1.1 采集系统方案设计
本数据采集系统采用STM32F103+ADIS16405的硬件构架,通过SPI口的DMA通道将ADIS16405的三轴角速度、三轴比力、三轴磁数据读取到处理器中,进行处理,处理完成后,通过串口的DMA通道发送到上位机。
方案框图如图1所示。
1.2 STM32F103性能参数
STM32F103是意法公司生产的一款32位Cortex-M3内核的处理器,最高主频72MHZ,在存储器的0等待周期访问时可达1.25Mips/MHZ,并且具有单周期乘法和硬件除法器。STM32F03具有丰富的外设,2个12位AD通道;7路DMA控制器;具有定时器、CAN、USB、SPI、I2C、USART等总线;多达80个快速I/O端口[4]。
图1 系统硬件设计框图
STM32F103具有主频高、功效低、集成度高、开发工具低廉等一系列优点,很适合低成本的嵌入式产品开发。
1.3 ADIS16405性能参数
ADIS16405是ADI公司生产的一款集成3轴陀螺仪传感器、三轴加速度传感器、三轴磁传感器的惯性测量单元,并且在产品出厂时已经对标度因数、零位、安装误差、温度误差系数进行了尽可能的校正,具有很好的稳定性和精度[5]。ADIS16405具体参数如表1所示。
表1 ADIS16405重要参数表
从上图的参数指标可以看出,ADIS16405具有很好的陀螺零偏稳定性、加速度零偏稳定性,随机游走指标也算不错,唯一欠缺的是分辨率比较低,但仍然是一款比较好的惯性测量组合产品。
1.4 详细硬件原理图
在硬件设计方面,首先考虑了输入电源的宽范围要求,选取了LM117线性稳压芯片,可以将较大的输入电压变换为5V,然后通过TPS79933变换为3.3V电压供传感器和处理器使用;处理器STM32F103采用了48脚封装,能够最大限度的减小系统体积,并且同时拓展了GPS所使用的串口,SWD在线调试接口,具有比较好的灵活性和可拓展性;使用SP3232将TTL电平转换为RS232电平,方便了台式电脑的使用。
图2 硬件电路详细设计图
整个硬件设计十分注意体积、功效、拓展性,并且对这些做了很好的平衡,实物图如图。
图3 数据采集设备实物图
嵌入式程序主要包括系统硬件初始化、数据采集以及数据处理等三个部分。系统开始运行后首先会对处理器的寄存器进行处理;处理器参数配置好后,将对ADIS16405的寄存器进行配置,主要配置输出速率、量程等指标;各种参数配置好后,进行系统定时器中断,读取ADIS16405数据,并且将数字量还原为标准量,陀螺仪为°/s,比力为g,磁为高斯;最后,将数据通过串口发送到上位机进行显示。
图4 程序流程图
所设计的ADIS16405采集设备对ADIS16405的读取速度为1000HZ,但是所使用的环境最大带宽不足20HZ,因此很有必要对数据进行处理以便剔除数据点中的“毛刺”。显然由于载体的带宽的原因,可以采用均值滤波的手段进行数据处理,但是很明显如果出现大的“毛刺”会让整个均值出现错误,因此在这里设计了一
mean——求平均;
x——ADIS16405原始数据;
N——求平均的数据点的个数,第一次取平均可取10。
完成第一次求均值后得到数据y1,剔除原始数据中的最大值最小值再按照(1)进行取均值,得到y2,如果y2-y1≤0.1,则说明ADIS数据中没有野值存在,如果不满足条件则继续进行上面的处理,直至yk-yk-1≤0.1,若都不满足则输出数据异常警报,需要进行排查。
友好的界面是一个成功设计的重要部分。本系统采用VC++平台,使用网上开源的metergroup控件设计了数据显示界面,并且预留了飞行姿态表显示功能,只要按照所定义的协议添加姿态解算后的姿态数据就可以显示。
为了验证所设计的系统是否满足数据正确性,将整个系统放置在位置速率转台上进行了数据正确性验证。
通过设置转台运行角速率为[-200 -100 0 100 200],单位°/s,对比ADIS16405的输出,如表2。
表2 ADIS16405与标准转台对比表
经过试验表明,所设计的基于STM32F103处理器的ADIS1605数据采集设备最大误差为3.6°/s,考虑到本身零位为-3.4°/s与线性误差,采集到的数据是完全正确的;由于ADIS16405发送的陀螺、加速度、磁数据都在一个数据包内,只要陀螺通过正确性验证即可以认定其他两个传感器采集到的数据都正常。
图5 设计界面图
经过试验验证表明,所设计的基于STM32F103处理器的ADIS6405数据采集系统能够实现数据读取,数据滤波的功能,并且具有数据实时性好、数据稳定性高、成本低、便携性高、界面友好等特点,能够满足无人飞行器、无人车甚至于高端航模产品的使用要求。
[1]刘军.基于IMEMS传感器的汽车运动姿态测量系统研究[J].传感器与微系统,2009(28):12-15.
[2]蒋海涛.基于MEMS器件的倾角指示系统研究[J].测控技术,2010,29(6):5-11.
[3]夏琳琳.低成本AHRS/GPS紧耦合融合滤波技术研究[D].哈尔滨:哈尔滨工程大学自动化学院,2008:40-50.
[4]ARM Limited.CortexTM-M3 technical reference manual.http://wwww.arm.corn,2006-01-05/2008-02-10.
[5]Analog Devices,Inc.ADIS16405 datasheet.http:// www.analog.com/static/imported-files/ data-sheets/ ADIS163405.pdf,2009-04/2010.01-28.
A data acquisition system based on STM32F103 processor for ADIS16405
Li Yang,Yan Xuekun,Gu Tienan
(Institute of Navy Nuclear and Chemical Defence,Beijing,100077)
This paper presents a data acquisition system based on STM32F103 processor for ADIS16405. STM32F103 get the ADIS16405’s triaxial angular velocity, triaxialaccelerated speed, three-axis magnetic datathrough SPI DMA channel, excluding certain algorithms for data processing through certain outliers, anda dedicated PC software can be resolved ADIS16405 processor sends raw data, and using friendly interface profile is displayed. Test surface, the system design with real-time data, high data stability, low cost, high portability, user-friendly features.
STM32;ADIS16405;Data acquisition system;SPI interface
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!