引言
传统的姿态测量因为采用高精度陀螺仪和加速度计等姿态传感器,体积庞大并且价格昂贵。当前MEMS产品因其体积小、价格低、功耗低,被称为是传统的惯性测量组合的一次重大改革,越来越多地应用于姿态测量应用中。并且,随着MEMS技术的迅速发展以及向各个学科领域的渗透,它的各方面性能如精度、鲁棒性、动态响应等都得到了巨大的提高。
随着嵌入式技术的不断发展,以应用为中心的嵌入式系统由于体积小、功耗低、可靠性高、可裁减性好、软硬件集成度高,已经渗入到我们日常生活的各个方面,在各行各业中都得到了应用。而嵌入式与MEMS的结合使姿态测量系统满足了低成本、低功耗、微型化的应用需求,给消费电子领域带来了巨大进步,如智能手机中的重力感应与指南针,同时给航空、工业、汽车、医疗、环境监控、通信等领域带来了十分广阔的应用前景。
本文采用三轴MEMS陀螺仪、三轴MEMS加速度计及三轴MEMS电子罗盘与Freescale单片机MC9S08QE8组成一个嵌入式姿态测量系统。陀螺仪由于动态性能好,用于获取实时姿态信息。但陀螺仪因为会产生偏移,而加速度计与电子罗盘因其静态性能比较优越,所以用来对陀螺仪姿态计算过程中的误差进行修正。
1 系统组成和结构
本系统主要由单轴陀螺仪LY530AL、双轴陀螺仪LPR530AL、三轴MEMS加速度计ADXL345、三轴MEMS电子罗盘HMC5843及单片机MC9S08QE8组成。其中X、Y方向的双轴陀螺仪与Z轴方向的单轴陀螺仪组合成三轴陀螺仪,它们的信号由单片机MC9S08QE8的ADC模块进行采集,而加速度信号和电子罗盘信号则通过I2C总线传送到单片机。这9路信号在单片机中首先经过前期的处理,而后由单片机中的姿态计算算法程序获取3个姿态角信息,这3个信息通过单片机MC9S08QE8的串口模块传送到上位机进行演示,嵌入式姿态测量系统结构框图如图1所示。
1.1 三轴MEMS陀螺仪
系统中三轴MEMS陀螺仪由ST公司的单轴Z方向的陀螺仪LY530AL和双轴X、Y方向的陀螺仪LPR530AL组合而成。它们采用电容式微机械陀螺仪原理,由于ST公司选用了音叉方法,并且振动驱动电路采用了双闭环的控制结构,显著地提高了陀螺仪的稳定性和分辨率。测量范围达±300°/s,拥有自测功能,输出端集成了低通滤波电路,工作电压为1.8~3.6 V,待机模式电流小于1μA。
1.2 三轴MEMS加速度计
系统中三轴MEMS加速度计选用ADI公司的ADXL345。ADXL345是基于iMEMS技术的三轴、数字输出加速度传感器,具有±2g、±4g、±8g、±16g可变的测量范围。芯片内带的32级FIFO存储可以缓存数据,从而减轻处理器的负担并降低了系统功耗。ADXL345具有较高的分辨率与灵敏度、3 mm×5 mm×1 mm超小封装、40~145μA超低功耗及标准的I2C或SPI数字接口,非常适合于移动设备的应用。
1.3 三轴MEMS电子罗盘
系统中的三轴MEMS电子罗盘采用霍尼韦尔公司的HMC5843,它采用霍尼韦尔公司的各向异性磁阻(AMR)技术,由霍尼韦尔高精度的HMC11 8X系列磁阻传感器组成,在低强度磁场传感器中具有较高的灵敏度和可靠性。2.16~3.3 V的低电压供电、0.66 mA电流功耗,以及3mm×3 mm×0.9 mm的小体积,在消费电子设备、导航系统中拥有明显的优越性。
1.4 单片机MC9S08QE8
系统中单片机采用Freescale公司的MC9S08QE8。MC9S08QE8采用了众多新技术,如电池寿命、延长技术、增强型的低功耗性能以及超低电压下的高级运行能力等。同时具有极高的集成度,集成了很多系统级功能,如12位高精度A/D转换器、定时器、SPI、I2C、SCI等常用模块,非常适合低功耗、低成本的应用。
2 应用电路设计
2.1 电源模块
本系统的电源稳压电路为整个系统所有设备供电,考虑到系统中涉及数字型和模拟型传感器,采用了低噪音、低漂移、供电电压为3.3 V的线性稳压芯片MIC5205。电源稳压电路原理图如图2所示。其中,C1是连接芯片内部电压参考源与GND的电容,用来减少输出电压的噪音,而C2作为输出与GND的电容,用来防止电路产生振荡。C2的电容大小与C1有关,但当C1为470 nF时,C2一般为2.2μF。D1为电源的指示灯。
2.2 陀螺仪与ADC模块
MC9S08QE8单片机内带的ADC模块是基于逐次逼近型12位模数转换器。它提供10个输入通道,可以配置采用时间转换速度及功耗,可以设置预置比较,从而保证某些不符合要求的数据不用保存。其中最能体现高性能特点的是可以设置连续序列转换方式,这种模式下,ADC硬件可自动实现所设定的几个通道连续转换,并把转换结果存入响应的数据寄存器中,而不用程序循环实现。这样既简化了程序设计,又降低了转换功耗,减轻了MC9S08QE8的负担。
陀螺仪与单片机ADC模块的接口如图3所示。图中ST、HP、PD作为自我测试、能量控制、高通滤波设置3个引脚,它们分别连接到MC9S08 QE8的通用I/O接口上。一般它们都接下拉电阻,默认为正常工作模式,如果需要对相应的工作模式进行改变则须改变对应MC9S08QE8I/O口的电平为高电平。而LY530AL与LPR530AL的输出信号(4xOTUX、4xOTUY、4xOTUZ引脚)与输出参考电压(Vref引脚)分别接MC9S08QE8的ADC模块的相应通道。设计中特别注意的是,LPR530AL有2种输出模式:一种是采用经过内部放大4倍后的输出,另一种是正常的输出。当采用非线性放大输出方式时,应当把LPR530AL的5引脚和9引脚连接GND;如果采用放大输出方式并且外部没有扩展旁路滤波,则应当分别把4和5引脚、9和10引脚短接。图3中,LY530AL工作原理与LPR530AL相似。
2.3 加速度计、电子罗盘与I2C接口
MC9S08QE8内带的高速I2C模块拥有多主机操作、可编程从机地址、中断驱动的逐字节数据发送、支持广播模式和10位寻址等特点,总线在最大负荷下可达到100kbps的速度。系统中,加速度计、电子罗盘芯片与MC9S08QE8 I2C模块的接口如图4所示。图中ADXL345的CS引脚用来控制选择I2C还是SPI通信协议,电平为高表示采用I2C协议,而SDA和SCL引脚分别连接到MC9S08QE8的I2C总线引脚上。电子罗盘HMC5843支持双电压工作,其中引脚VDD表示内核电压,引脚VDDIO表示外部I/O电压,本系统中采用单电压模式,即内核电压与外部I/O电压相同。
3 软件设计与测试
系统的软件设计是整个系统的重要组成部分。依据上述硬件电路的设计原理与功能要求,软件中首先要完成MC9S08QE8的初始化,对各种MEMS传感器的工作模式进行设定;然后获取三轴陀螺仪、加速度计、电子罗盘的实时信号,并根据姿态计算算法计算姿态角,最终把姿态角信息通过串口传送到上位机中进行测试与演示,嵌入式姿态测量系统软件流程如图5所示。
3.1 MC9S08QE8的初始化
MC9S08QE8的初始化函数主要实现对系统时钟、端口及各个使用的功能模块进行初始化,如ADC模块、SCI模块、I2C模块。初始化函数Sys_init_fun(void)如下:
3.2 传感器工作模式的设定
各种MEMS传感器工作模式的设定中,陀螺仪涉及的均为模拟信号,不用对其具体工作模式进行设定。加速度计ADXL345丰富的功能是通过配置对应的寄存器来实现的,通过对应的寄存器可以选择数据格式、FIFO工作模式、数字通信模式、节电模式、中断使能以及修正各轴偏差等。POWER_CTL寄存器用来设定供电模式,与BW_RATE寄存器配合,可设定数据传输速率,如果要进一步降低功耗,可将BW_RATE寄存器中的LOW_POWER位置位,进入低功耗模式。而DATA_FORMAT寄存器用来设定数据格式与加速度计的量程,FIFO_CTL寄存器用来设置缓存器具体的工作模式,如Bypass、FIFO、Stream、Trigger。最后OFSX、OFSY、OFSZ三个用来存放初始化时标定的X、Y、Z轴的偏移量,以便对数据进行修正。
电子罗盘HMC5843配置相对简单,主要有3个寄存器,通过配置寄存器A可以设定数据传输速率和测量模式,寄存器B用来设置设备的增益大小,而通过模式寄存器用来设置设备的工作模式。
3.3 姿态计算
典型的姿态解算方法有方向余弦矩阵求解法、四元数法、旋转矢量法等,本系统采用William Premerlani andPaul Bizard的DCM算法,DCM算法框图如图6所示。三轴陀螺仪的输入信号通过运动学方程计算出方向余弦矩阵,三轴加速度计信号与三轴电子罗盘信号结合PI反馈控制对陀螺仪信号进行修正。
其中算法由kinematics_and_normalization(t_vector*gyro,t_matrix*dcm)函数实现:
上述计算得到的实时姿态角数据通过串口传送到上位机,上位机中通过编写的python演示程序对下位机姿态测量模块的运动姿态进行跟踪与显示,演示效果如图7所示。每幅图中包含3个部分:第1部分(左上角)中红、绿、蓝3种指针指向分别代表横滚角(roll)、俯仰角(pitch)与航向角(yaw)的大小,第2部分(左下角)显示模块实时运动姿态,第3部分(右边)用于显示姿态角信息。左图为物体静止不动下的演示效果,右图表示在运动过程中物体的姿态运动效果,通过对比与分析2个图及各图对应3部分的效果,可以说明本设计达到了良好的效果,能比较正确地测量物体的姿态信息。
结语
当前,各种消费电子设备内部一般含有三轴加速度计和电子罗盘,如智能手机、平板电脑等,但加速度计动态性能相比陀螺仪逊色很多,而陀螺仪的增加可以提升系统整体的动态与静态性能。本文设计的嵌入式姿态测量系统,采用多MEMS传感器组合方式,拓展了MEMS传感器的应用范围,也延伸了姿态测量系统的应用领域。实验演示表明系统性能和使用性都比较好,可以应用于消费电子与一般工业的姿态测量与物体稳定控制的应用中。