基于AT89S52的MEMS陀螺信号采集与处理系统设计
2 软件设计
ADISl6255陀螺仪所有的数据和命令的读取和写入都是通过读写寄存器来完成的。通过AT89S52单片机编写程序读取ADISl6355内部相应的寄存器地址,相应读取回来的12 bit或者14 bit长度的数据经过换算再乘以对应的比例因子就得到了相应的x、y、z轴陀螺仪和加速度计以及内部温度信息。
在启动陀螺仪前,首先要对陀螺仪的各个寄存器进行正确的设置。由参考文献[5]、[6]知,设置GYRO_OFF和GYRO_SCALE寄存器对陀螺仪三轴输出的灵敏度和偏差进行用户自校准;设置SMPL_PRD寄存器,选取合适的采样频率;设置SENS/AVG寄存器,定义陀螺动态量程以及对应的数字滤波器;设置MSC_CTRL寄存器,定义自检位以及数据更新中断位;设置COMMAND寄存器,定义数据校正模式;设置ALM_CTRL寄存器,为数据报警。
陀螺仪自身带有一个校准控制指令,在读取数据之前需要用户的自定义校准,具体操作方法[6]是将MSC_
CTRL寄存器的第10位置1,20 ms后,读取状态寄存器的值,如果为0x0000,表明自检通过,否则表明陀螺仪存在如供电超限、SPI通信错误等问题,响应的错误位将在状态寄存器中标出。
MEMS陀螺仪数据采集软件设计主要是对AT89S52的程序设计。系统上电复位后,首先完成单片机初始化,对陀螺仪各个自由度寄存器参数设置,初始化LCD1602,初始化SPI接口,陀螺仪自校准过程,定时器和相应中断打开,数据存储及更新,最后通过按键分别显示X、Y、Z轴陀螺仪和加速度计以及内部温度信息。系统软件程序采用Keil μVision4软件编写,Keil μVision4是基于80C51内核开发的,可以用C语言和汇编语言进行编程,C编译工具在产生代码的准确性和效率方面达到了较高的水平,并且可以附加灵活的控制选项,在开发大型项目时非常实用[7]。其软件程序流程图如图4所示。
3 测试结果
完成硬件平台搭建和软件程序设计后,室温下对系统进行静态测量,通过改变温度,分析角度的漂移;在小型旋转平面上进行动态测试,分析线性加速度的变化,针对过大的漂移率现象,进行自校准,再测量。
静态测试,在室温下,由液晶屏显示输出温度为+21.36 ℃,输出角度有不超过0.02°/s的漂移率。当把陀螺仪温度提高到50 ℃时,显示温度为+50.07 ℃,陀螺角度出现单向漂移现象,输出角度大约为0.72°/min漂移率。经过软件自校准后,角度漂移较稳定变化,单漂移现象消除。
动态测试,对三轴加速度计的测试采用重力场1 gn试验方法[8],安装方法如图5所示,将加速度计通过卡具安装在位置转台上,使加速度计的输入轴在铅垂平面内相对重力加速度转动。
使位置转台在360°范围内旋转,由图5可知,敏感轴上的加速度分量为[9]:
a=gn·sinθ (1)
式中a为敏感轴上的加速度;θ为加速度计敏感轴与水平方向间的夹角。由式(1)可知,当位置转台转动时,加速度计敏感轴上的重力加速度分量呈正弦关系变化,加速度计的输出也呈正弦关系变化。在知道敏感轴与水平方向的夹角后,就可以计算出加速度计所感应到的加速度大小[8]。
测试采取十二位置测试方法,即每间隔30°测量一次,首先需要确定机械零点,即试验前要确保初始状态的敏感轴与水平方向间夹角为0°,确定机械零位一般采用四点法[9],测量当地重力加速度gn(如长春重力加速度为9.801 m/s2),由公式(1)可以计算出十二位置点的重力加速度分量值,选取部分测试点与本系统显示的加速度值对比,分析绝对误差如表1所示。
由表1知,在常温下测量的ADIS16355加速度计 系统显示的值与理论值绝对误差在转台限定的误差范围之内,并且满足ADIS16355线性加速度精度误差为2.522 mg/LSB(约为0.024 7 m/s2)的要求,加上温度补偿可以进一步提高测量精度。
本数据采集系统主要存在以下误差:一方面是由陀螺仪自身出厂工艺缺陷、结构、工作模式等形成的各种漂移;另一方面是由重力场、磁场、检测电路干扰、系统安装不平衡引起的陀螺输出偏差。对于以上误差中确定性误差可以采用标定测试、自检校准和温度补偿来减小,对于不确定性误差采用统计方法统计变化规律和有效系统辨识方法来处理。
ADIS16355 iSensor是一款完整的三轴陀螺仪与三轴加速计惯性检测系统。本文以AT89S52单片机为核心控制器件,只需要很少的外围电路,采用KeilC51软件编写程序,实时存储采集的数据并经LCD显示,通过静态温度和角度测试及重力加速度试验测试表明,该系统具有较高的精度和实时性。最后对系统存在的误差进行分析。本文设计的MEMS数据采集系统具有精度高、成本低、操作简单、使用方便,在陀螺仪的实际应用中存在较大的市场价值。
- 基于AT89S52的机载电气盒测试仪的设计(09-18)
- 基于AT89S52单片机的电机控制系统设计 (08-26)
- 基于单片机的音乐播放器的仿真与制作(03-18)
- 基于AT89S52的家庭智能浇花器设计方案(10-24)
- 基于AT89S52的数字频率计设计(05-18)
- 基于单片机的语音播报万用表设计(06-15)