近年来,微机电系统(MEMS)技术广泛用于汽车的系统和稳定系统、医学系统、便携式照相机、运动装置和三维鼠标等领域。简单和小体积的惯性测量系统尤其受到关注,因此,基于MEMS的高精度、重量轻、小体积的姿态测量系统将得到广泛的应用。本文将介绍一种ADI公司的惯性传感器以及由其组成的微小姿态测量系统。
1ADISl6300简介
ADISl6300四自由度(4DoF)IMU是一个完整的惯性测量传感器,其内置单轴陀螺仪和三轴加速计,每个传感器都实现了iMEMS(Motion Sig-nal Processing Technology)技术与信号调理技术的完美结合,可提供最优化的动态性能。工厂校准为每个传感器提供灵敏度、偏置、对准和线性加速度特性。因此,每个传感器都拥有自身的动态补偿,从而可以在4.75~5.25 V的电源范围内进行精确的传感器测量。由于AD-ISl6300所有必要的运动检测与校准都是在工厂完成,大幅缩短了系统集成时间,并降低了测试设备成本。ADISl6300采用改进的SPI接口,可提供更快的数据收集与配置控制,用户实现就像供电及连接SPI(串行外设接口)端口一样简单。ADISl6300采用23 mmx31 mmX7.5 mm封装,具有2 000 g额定耐冲强度,并提供了一个标准的连接接口,使其能方便水平或垂直安装。
ADISl6300角速度检测的动态范围具有±75、±150以及±300(°)/s 3种选项,三轴加速度的动态范围为±3 g,可提供350 Hz带宽,高达1 200次/秒的采样速率,并具有嵌入式与可编程数字滤波功能。ADISl6300其价格仅为其他同级产品的1/10,可广泛应用于医疗仪器、机器人、惯性测量单元、导航控制等领域。
2 ADISl6300结构功能
如图1所示,图(a)为ADISl6300的坐标系,其标出了每个惯性传感器(陀螺仪和加速度计)的测量朝向。图(b)为ADISl6300的标准接口引脚配置图,引脚16,17,18,19,22,23,24是没有连接的预留引脚;引脚10,11,12为电源VCC;引脚13,14,15为电源GND;引脚3,4,5,6分别为SPI接口的时钟,数据输出,数据输入和器件选择引脚;引脚1,2,7,9分别为配置数据输入/输出引脚;引脚8为复位引脚;引脚21,22分别为12位的ADC输入和DAC输出引脚。
ADISl6300功能模块框图如图2所示,温度传感器、MEMS角速度传感器和三轴MEMS加速度传感器分别感知环境温度、器件所受角速度和三维加速度,将信号调理并转换,经校准和数字信号处理后将数据存入输出寄存器供外部SPI主控器件读取。ADISl6300是一个智能的传感器,传感器上电后便自动以819.2次/秒采样速率进行惯性测量。每个采样周期结束后,传感器测量结果存放至输出寄存器,并且DI01引脚向器件外产生一个脉冲,表示一个完整的新惯性测量数据已经采集准备好,可供外部SPI主控器件读取。
3 ADISl6300基本操作
3.1 ADISl6300的SPI连接
ADISl6300是一个全数字接口的智能传感器系统,其SPI接口与各种微处理器SPI主控制器件接线如图3所示。微处理器作为SPI主器件各引脚功能分别为:为从器件选择;IRQ为中断请求;MOSI为主器件输出,从器件输入;MISO为器件输入,从器件输出;SCLK为连续时钟。AD-ISl6300对SPI时钟需满足:正常模式下SCLK不高于2 MHz:数据进发模式下SCLK不高于1 MHz;在低电压模式下SCLK不高于300 kHz。
3.2 传感器数据读取
通过ADISl6300的SPI接口可读取其传感器的供电电压,陀螺仪值,X,Y,Z轴加速度值,温度值,纵摇角,横摇角等数据。根据ADISl63 00读取数据时序,读取每个寄存器的内容分为两步,即2个16位的时序:第1个16位时序向ADISl6300写入读取命令和寄存器地址;第2个16位时序将对应寄存器内容发送至DOUT数据线上。例如:如果第1个16位时序DIN=0x0A00,那么第2个时序时,XACCL_OUT(X轴加速度值)将被发送到DOUT数据线上。
数据进发模式是连续读取ADISl6300数据的最好方式。在10个连续的时序周期内,9个常用寄存器数据可方便读到,它们分别是:SUPPLY _0UT(供电电压)、GYRO_OUT(陀螺仪)、XACCL_OUT(X轴加速度)、YACCL_0UT(Y轴加速度)、ZACCL_0UT(Z轴加速度)、TEMP_0UT(温度)、PITCH_ 0UT(俯仰角)、0LL_OUT(横滚角)和AUX_ADC(ADC转换结果)。数据进发模式操作为:在连续10个时序周期内,DIN引脚对应的10个输入数据以0011 111O 0000 0000(Ox3E00)开始,之后9个数据可任选,同时在DOUT引脚上依次输出如上所述9个输出寄存器内的数据。
3.3 数据处理
表1说明了ADISl6300数据输出的格式和比例因子。从表1中可知,SUPPLY_0UT和AUX_ADC数据格式都为12位的二进制数据,各惯性传感器输出的数据格式均为14位2的补码,温度传感器输出数据格式和AUX_ADC数据格式都是12位2的补码,而横摇角和纵摇角数据格式为13位的2的补码。也就是说0x0000是0LSB.0x0001是+1 LSB,2n-1(n=12,13,14)为-1 LSB,LSB为满量程输入范围的最小单位。若为GYRO_0UT时,1 LSB=O.05(°)/s。下式可用来将输出数据转换成浮点形式的姿态数据。
式中,DATA_OUTi为表1中输出数据,OUTi为转换后浮点形式的姿态数据,Scale为表1中最小单位,n为表1中数据位数。
例如:GYR0_0UT=0x384A,由于,则角速率Rate=(0x4000-Ox384A)×(-0.05)(°)/s=1206x(-0.05)(°)/s=-60.3(°)/s。因此,根据传感器方向坐标定义,当GYRO 0UT为0x384A时,表示传感器z轴以60.3(°)/s的角速率逆时钟旋转。
4 姿态测量系统设计
ADISl6300是四自由度(4DoF)惯性检测系统,能提供三轴加速度以及Z轴旋转角速率,此外还输出了横摇角、纵摇角和温度数据,能应用于医疗仪器、机器人、惯性测量单元、导航控制领域等。介绍基于C8051F330和ADISl6300的姿态测量系统,该系统采用C805lF330单片机的SPI接口读取ADISl6300的数据。再将采集到的数据通过串行RS-232接口输出。
4.1 硬件设计
姿态测量系统的硬件连接如图4所示,器件ADISl6300无需其他外围电路,本设计仅采用0.1μF和10μF电容并联入器件供电电路进行电源退耦。C8051F330是美国Slincon公司生产的一款高性能的8051内核单片机,它具有增强波特率配置的全双工UART和增强型SPI端口,采用4 mm×4 mmx0.9 mm封装。C8051F330的IO口允许0~5 V电平,且ADISl6300的SPI接口输入高电平只需2.0 V,因此C8051F330和ADISl6300虽是不同工作电源器件,但它们的接口电平兼容,可采取直接连接的方式直接连接。RS-232电平转换采用MAX3232,它是一款3~5.5 V单通道RS-232线路驱动器/接收器。电源电路可提供+5 V和+3.3 V电压,分别为ADISl6300和C8051F330提供电源。
4.2 软件设计
姿态测量系统单片机的SPI接口采用数据进发模式读取ADISl6300数据,根据ADISl6300数据进发模式定义,在10个连续时序周期下,9个输出寄存器内的数据依次输出到DOUT引脚上。程序流程如图5所示,程序启动进入系统初始化.包括IO口、SPI和串口等。对ADISl6300的操作程序首先向其写入0x3E00,并读取返回的数据,此次数据为SPI之前的数据,之后向ADISl6300连续写9次0x0000,便可连续读到9个输出寄存器内数据。完成9个数据读取后,按上述数据处理中介绍的数据处理方法解算9个数据,最后通过串口输出。
5 试验及数据分析
为了能对由C8051F330和ADISl6300传感器组成的姿态测量系统进行简单的测定,该试验采用姿态与航向参考系统(attitude and heading reference system)AHRS500GA-226作为参考传感器。该传感器可测量被安装物体的欧拉方位角(航向、纵摇角与横摇角),其内置三轴磁场计、3个陀螺仪和3个加速度计,能高精度、高灵敏地测出360°范围的方位角,±180°横滚角,±90°俯仰角。试验中将两系统固定安装在同一平台上,使平台运动并用计算机同时保存两系统输出的姿态数据。两系统输出的航向角速率、X轴加速度、Y轴加速度、Z轴加速度四组姿态数据利用Matlab软件图形显示如图6所示。
从图中可以看出,利用ADISl6300所测量的航向角速率、X轴加速度、Y轴加速度和Z轴加速度4个空间姿态数据与AHRS所测量的姿态数据基本一致,其中ADISl6300输出的航向角速率、X轴加速度、Y轴加速度和Z轴加速度平均误差分别为0.469(°)/s、O.009 m/s2、O.010m/ s2、O.003 m/s2。ADISl6300数据的噪声较大,这是由于它的数据输出未经滤波处理和融合算法处理,而AHRS经过复杂的融合算法和滤波处理。因此,要使用ADISl6300获取更准确、更平滑的姿态数据还需将其数据进行融合或滤波处理,如卡尔曼算法。
6 结论
四自由度IMU惯性测量传感器ADISl6300可准确测量空间姿态,采用C805lF330与ADISl6300组成的姿态测量系统能够实现准确测量空间姿态。ADISl6300输出的航向角速率、X轴加速度、Y轴加速度和Z轴加速度4个空间姿态的平均误差分别为0.469(°)/s、0.009m/s2、0.01 0m /s2、0.003 m/s2。然而姿态数据的噪声需滤波和融合算法来消除,以获得更为平滑、精确的空间姿态数据。