来源:电子设计工程,作者:吴晓鹏;赵祚喜;黄健;冯贤超
微机电传感器(MEMS)惯性传感器在近几年来高速发展并得到了广泛的应用。微惯性传感器作为一种重要的MEMS,由微型陀螺仪、微型加速度计、专用集成电路(ASIC)、嵌入式微处理器及相应的软件组成,输出可以包含角速度、加速度、姿态等多种信息,并且其体积小、集成度高、使用方便,在军民等领域都得到广泛应用。
CRS10是Silicon SENSING公司的一款高精度的MEMS单轴陀螺仪,它是数字式输出,输出传感器运动过程的角速度和传感器工作的环境温度。
在转角测量方面,传统的方法是使用角度传感器,测量起始时间的角度值,然后相比较得到转过的角度。在此,根据运动学原理,应用CRSl0陀螺仪,设计了一个角速度和转角测量系统,系统配置有数据输出接口和液晶显示界面。
1 CRS10功能介绍及使用
CRSl0是一款高精度的数字角速率陀螺仪,集成度高,较宽的工作温度(-40~80℃),高带宽和宽泛的频率范围,极低的角速率随机漂移,标准5 V电压供电,SPI数据输出和模拟端口输出2种输出方式满足各种应用不同需求。在CRSl0的默认配置是为75 Hz带宽,±375(°)/s角速率测量访问。用户可根据需要,设置其角速率测量范围和带宽。例如可设置±75(°)/s的测量范围,也可设置带宽5、10、25、40、50、60和100 Hz。
CRSl0采用23 mmxl7 mmxl0 mm封装。无论是垂直或可用水平支架可表面安装在PCB上。其体积小,集成度高,易于安装。可广泛应用于汽车偏航率测定、制导和控制、平台稳定、图像稳定、惯性测量装置、机器人和导航等领域。
1.1 CRSl0功能介绍
图1(a)和图l(b)分别是CRSl0的实物图和功能框图。由图l(b)可知,在CRSl0中,MEMS陀螺仪先感知外界信号,并将信号输出给数据采集专用集成电路,数据采集电路将处理后的信号输出给微控制器。微控制器将得到的数据结果存入输出寄存器。通过SPI总线,外部SPI主控器件向CRSl0发送控制指令或者读取。CRSl0内部设置有控制寄存器,寄存器都有默认的值,通过对控制寄存器的修改写操作,可以改变角速率测量范围频率和输出带宽等方面的控制效果。
CRSl0测量的是平行于PCB平面的角速率。CLK_N,SPI_IN,SPI_OUT和引脚是传感器的SPI接口,引脚是传感器的复位引脚。A-NL_OUT是角速率的模拟输出端口。
CRSl0的数字输出部分还包含其工作环境的温度值。假如在无偿条件下,陀螺仪性能不佳,那么可通过使用这个温度进行建模和补偿。
1.2 CRS10使用方法
1.2.1 CRS1O硬件建接
CRSl0的SPI接口与各种微处理器SPI主控制器件接线如图2所示。SPI总线的时钟频率最高可达到2.5 MHz,建议采用1 MHz。
1.2.2 CRSl0数据读写与数据处理
通过SPI总线,可以对CRSl0进行读写操作。可以根据设计要求设置控制寄存器的值达到控制效果,也可以使用寄存器的默认设置。控制指令由1个字节状态位,4个字节的数据位和1个字节的校验位共6个字节组成。向CRSl0写控制指令时,只要将指令串通过SPI总线发送给CRSl0即可。
读取CRSl0输出的数据时,从总线上读取到的是6个字节的数据,依次是:1个字节的状态位,2个字节的角速率数据位,2个字节的温度数据位和1个字节的校验位。
角速率值(RATE_OUT)和温度值(TEMP_OUT)输出的数据格式均为16位二进制的补码,可以使用式(1)进行解算:
式中,DATA_VALUE为寄存器的输出数据,VALUE为转换后实际的测量量的值,Scale为寄存器值最小值代表的最小单位,n为对应寄存器的数据位数。
在这里有一个小技巧,由于数据是16位二进制补码类型,可以使用数据类型为整型(int)存储数据,这样亦可以省略其中的数据处理过程。
2 角速率和转角测量系统设计
这里给出了基于LMS8962与CRSl0的倾角测量系统的原理与设计。
2.1 转角测量原理
CRSl0是测量其所在PCB平面的角速率。根据运动学原理,角度等于角速率在时间上的积分,因此,可以得到转角与角速率的关系:
式中,θ是当前角度,θo是运动初始时的初始转角,ω为角速率,to为初始时刻,t为当前时刻。
在数字系统中,采用其离散型方程:
式中,θ、θo、ω的含义与式(2)相同,△t表示采样数据的时间间隔。
根据上述原理,利用CRSl0设计测量转角系统。只要保证采样频率够快,转角平台稳定,噪声较小即可。[page]
2.2 硬件电路设计
使用LMS8962与CRSl0搭建成倾角测量系统,LMS8962是一款高性能的32位Cortex-M3内核微处理器。它有丰富的片内外设,如模数转换(ADC),PWM,CAN和串行总线(SSI)等,功能强大,易于集成。
LMS8962与CRSl0组成的角速率和转角测量系统硬件设计框图如图3所示。LMS8962通过SSI总线与CRSIO进行通信。将采集到的数据存储到SD卡中,将解算得到的结果实时在液晶显示模块上显示。SD卡的数据存储为将来的数据分析提供一个很好的数据采集平台。SSI是串行通信总线,它兼容SPI总线。
2.3 软件设计
图4是系统的软件设计流程。程序启动进入系统初始化,接下来向CRSl0写控制指令,以设置CRSl0工作在需求的模式下,然后读取返回的数据并进行解算,最后通过存储数据到SD卡中并在液晶模块中显示。
3 试验结果
为了验证系统测量角速率和转角的效果,采用姿态与航向参考系统(attitude and heading reference system)AHRS500GA-226传感器作为参考进行测试。AHRS500GA-226是Crossbow Technology公司的一款高精度的IMU。将两系统固定安装在同一平台上,使CRSl0测量的角速率平面与AHRS的YAW平面(航向角速率和航向角测量平面)相一致。比较两个系统输出的角速率和角度数据,得到如图5所示的结果。
由图中5可看出,CRSl0所测量的角速率与AHRS测量得到的角速率运动的趋势一致,AHRS的结果比较平滑。CRSl0有噪声,局部陡峭。在静止和小角速率运动时两者测量结果基本重合,误差在0.1(°)/s左右。在大角度运动和急速转动时,两者的重合效果不佳,误差较大,有达到7(°)/s。这是由于AHRS得到的数据是经过滤波和数据融合处理的。角度测量的趋势一致,在局部重合的比较好。但角度测量的误差比较大。原因在于本文使用的角度计算方法:1)使用的是原始的角速率数据,角速率没有经过滤波处理,噪声较大,积分叠加到角度上得到的偏差亦较大;2)使用的是简单的积分求角度,没有补偿,没有平滑。综上可知,角速率测量效果比较好,角度测量可行,但算法有待提高。
4 结论
基于LMS8962 ARM微处理器与CRSl0陀螺仪的角速率与转角测量系统角速率测量误差平均为0.550(°)/s,最大达到7(°)/s,在小角速率测量时效果比较好。转角测量误差平均误差为2.5°,测量精度有待进一步提高。造成角度测量误差的原因主要是没有对得到的角速率进行滤波和数据的融合。滤波算法和融合算法的使用和完善是该系统今后要完善的主要工作。从测量的结果来看,只要做好滤波和融合的处理,提高系统的精确性是可行的。
责任编辑:gt
全部0条评论
快来发表一下你的评论吧 !