在很多运用场合,都必须弄清楚装备对于重力场是水平的还是垂直的,与水平面呈多大角度。在许多国家有这样的规定,升降机和起重机上都必须要有倾斜监控。对于倾斜监控在人类交通工具上尤为重要。离轨列车需要倾斜信息来避免事故发生,或保持某些重要部件在某一确定角度。一些交通工具,例如自倾斜火车需要倾斜角来补偿离心力。有时需要用倾斜计来保持平台的水平,或者一定角度,倾斜角传感器的研究极为重要。传感器的微型化、智能化已成为传感器发展的趋势,基于MEMS技术的全固态微传感器的研究已成为传感器研究的一个重要方面,实际应用中的倾斜角传感器包括,液态倾斜角传感器,气体倾斜角传感器,固态倾斜角传感器,光学倾斜角传感器,与液态倾斜角传感器相比,固态倾斜角传感器具有结构简单,可重复性强,反应快的优点,与光学倾斜角传感器相比,固态倾斜角传感器具有适应性强,价格便宜的优势。
由加速度传感器测量倾斜角的途径很多,文献中提出了一种基于两轴加速度传感器ADXL213的倾角测量装置,实现了全摆幅高精度测量,并能在运动车辆中抵消前进方向加速度,实现运动中单方向高精度测量。文献中同样运用两轴压力传感器实现单方向全摆幅倾角测量文献。文献中运用两轴加速度传感器ADXL202实现了全方位,45°摆幅内低误差倾斜角测量。文献中运用液态两轴倾斜角传感器实现全方位、低摆幅、高精度倾斜角传感器。单轴加速度传感器只能实现单方向,低摆幅倾斜角测量,两轴倾斜角传感器,方向和摆幅不能兼顾。本文将讨论采用三轴微加速度传感器实现智能化倾斜角传感器方法。
1 倾斜角测量原理
对于轴加速度传感器,当它的传感方向和重力加速度方向一致时,假如此时为零倾斜角度,设加速度传感器测量结果为F(θ),θ为倾斜角度,g为重力加速度,如图l所示。
所以当倾斜角θ太小时,测量的分辨率就会太小,当角度足够大时精度才会上升。所以对一轴倾斜角传感器的运用是:把它的传感方向与重力加速度方向垂直时的状态设为零倾斜角度,文献运用此方法测量倾斜角,如图2所示,此时:
此时倾斜角度小时测量精度高,而对于一轴加速度传感器而言,只能测一个方向的倾斜角。所以用一个两轴加速度传感器,两个传感方向皆垂直于重力加速度,当两轴倾斜角倾斜时,加速度传感器测量结果为:
如何利用θx,θy求出倾斜角θ。首先定义两组三轴向量:[x,y,z]为参考O倾斜向量,[u,v,r]为倾斜后的向量。如图3所示,设向量[z,y,z]先绕y轴倾斜
,再绕x轴倾斜
,所以从[x,y,z]到[u,v,r]的转换为:
设x,y为水平方向,z为垂直方向。(x,y,z)=(0,0,1)于是便有:
此时u=kF(θx)=kgsinθx,v=kF(θy)=kgsinθy,所以:
而传感器实际倾斜角为:
所以只要得出两轴加速度传感器测量结果F(θx)和F(θy)就可以计算出θx和θy,进而知道总的倾斜度。
同一轴传感器,两轴传感器测量精度有限,当θx,或θy越接近±兀/2时,分辨率越低。只有在倾斜角度接近O时分辨率最高。利用两轴加速度传感器的这种测量方法可以实现全方位倾斜测量。
为实现高精度全摆幅倾斜测量就必须把两轴加速度传感器垂直放置,一个传感方向与重力方向垂直,一个传感方向与重力方向平行。运用此方法测量倾斜角。加速度传感器测量结果为:
此时θ为单方向上全摆幅、高精度倾斜角度。运用两轴加速度传感器无法解决倾斜角测量中全方位和全摆幅不能共同实现的矛盾。所以为测量一个全方位,全摆幅的倾斜角就必须使用三轴加速度计。
运用三轴加速度计测量倾斜角就必须把测量范围分为两档,一档为倾斜角为-π/4~π/4,二档为倾斜角为(-π/2~-π/4)&(π/4~π/2)。当倾斜角度在±π/4之间时,
, 这里以F(θz)的值作为划分档次的依据。在一档中F(θx),F(θy)的分辨率很高,此时相当于运用一个两轴加速度传感器测量全方位,低摆幅倾斜角,运用式(15)可以计算倾斜角。在二档中F(θz)的分辨率都很高,此时相当于运用一个一轴加速度传感器测量全方位,高倾斜角度的倾斜角,运用式(1)可以计算倾斜角。
2 SCA3000
传感器的微型化、智能化、低功耗是当今传感器发展的必然趋势,微电子机械系统技术(MicroElectro,Mechanical Systems,MEMS)是传感器微型化发展道路上的一项重要技术。SCA3000-D1是VTI公司的全数字化三轴加速度计,量程±2g,电源电压3.3 V,64组缓冲存储器记录数据,在系统一级上面,有先进的性能和有效节能方式,频率响应可选,SPI数字串口通信,抗冲击力强,可以应用于许多恶劣的条件下。
2.1传感器前端
前端单元采用了耐用、稳定、低功耗和噪声的电容传感器,这个前端单元包含三个加速度传感块。由于结构原因,三个加速度传感块传感方向与直角坐标成45°角,所以在接口电路模块中有一个匹配处理,加速度导致电容变化接着在信号调理电路中转化为电压变化。
2.2 接口电路
传感单元连接一个电容电压转换器,接下来在模拟领域校准,信号通过ADC转换器转换为数字信号,ADC信号被分离成三个信号处理通道,经过低通滤波器和骤减。之后,信号配合上直角坐标系和传输给输出寄存器。在一般测量中,加速度数据能够通过串行总线SPI读出。
3 硬件设计
在此运用ARM7微控制器LPC2210和三轴加速度计SCA3000测量数据。运用ZLG7290控制LED显示倾斜角度,保留一组SPI接口用于扩展功能。
如图5所示,LPC2294通过SPI总线连接SCA3000,通过I2C总线连接ZLG7290,开关S1,S2,S3,S4用做校准功能使用,具体运用后面介绍。
SPI是一个全双工的同步串行接口,一个SPI总线可以连接多个主机和多个从机,但是在同一时刻只允许一个主机操作总线,总线上只能有一个主机和一个从机通信。SPI总线一般由3~5根线组成,如图5所示为经典的4线SPI连接电路,一个主机连接两个从机,主出从进(Master Out Slave In,MOSI),主入从出(Master In Slave Out,MISO),串行时钟(Serial ClocK,SCK),片选(Chip Select,CSB)低有效,工作时SSO,SSl只能有一个为低。主机一般为微控制器产生串行时钟,从机接收时钟。SCA3000一般作为从机组成一个系统。
SCA3000SPI帧格式和传输协议如图6所示。
当CSB为低时,SPI帧触发,每一帧数据有16 b,MOSI线上前8 b包含需要读/写的寄存器地址和读/写控制,其中前6 b为寄存器地址,第7 b为读/写控制,1为读,O为写,第8 b为0,MOSI线上后8 b为需要写的数据,读时不要考虑上面的数据。MOSI线上数据是在时钟上升沿被采样,而在MISO线上数据在时钟下降沿被装载。
MISO线上,第2 b为前一SPI帧的帧错误比特,第7 b始终为1,第8 b为当前帧数据的奇偶校验位。后8位数据为要读取的数据,在写过程中为地址寄存器中先前数据。
4 数据处理与校验
由于测量精度、外力影响,三轴加速度计的横轴传感,零刻度度偏移,温度飘移等影响导致三轴加速度计在测量上出现误差,或者测量数据受到不同程度的污染,这对求倾斜角产生很大的阻碍。由于上述原因的影响,现实中测量得到的三轴加速度计的三个数据的矢量和往往不会等于重力加速度。有外力时加速度传感器测得的是重力与外力和的加速度,肯定不等于重力加速度,有恒外力作用时难以直接测量倾斜角的准确值(运用适当方法进行补偿或抵消除外),SCA3000对数字信号进行低通滤波可以去除掉高频振动;对三轴数字数据进行权限设置,对于三轴数据矢量和与重力加速度的偏差大于0.05g时抛弃此次测量数据,保证测量精度。
4.1 零点偏移
零刻度偏移的解决方案,当倾斜角较小时,z轴数据的分辨率极低,影响测量精度,所以此时运用其中两轴进行倾斜角测量将更精确。为提高精度,需要对倾斜角传感器进行调零校正,校正后的结果将是测量值减去偏移值后的数据。偏移值的测量方法有两种:
(1)将传感器放置在一个校准水平面上,此时的输出即为偏移值。
(2)如图7所示,测量出图7(a).(b)姿势的输出VA,VB偏移值为(VA+VB)/2。
4.2 横轴传感
横轴传感补偿方案,由于组合封装或者器件本身结构原因,三轴加速度计存在横轴传感现象,三轴加速度计的横轴传感的度量有下式定义:
式中:Sx,Sz为横轴方向测得的传感量,Sy为测试方向测得的传感量,由于横轴传感的存在,使得测量结果不准确,所以需要对输出结果进行补偿,首先来考虑两轴间的传感补偿,如图8所示。
图8中,测试方向为y轴方向,加速度传感器如图8(a)样式放置时,x轴输出为Voutx-A,y轴输出为Vouty-A;加速度传感器如图8(b)样式放置时,x轴输出为Voutx-B,y轴输出为Vouty-B,测试方向y轴传感量为:
x横轴传感量为:
所以当倾斜角传感器倾斜为某一角度时,x横轴数据经y轴进行传感补偿后的值为:
式中:xoutComp为补偿后的x轴数据;Vouty-axis为x轴测量数据;Vouty-axis为y轴测量数据;Voffsety为y轴数据偏移值。同样,z轴数据对x轴数据进行补偿后得到x轴数据的校准值。
4.3 数据融合
SCA3000工作在测量模式下时,传感器输出数据速率为260 Hz,0.37 s就可以产生一次输出缓冲存储器半满中断。所以在倾斜角度变化不是很剧烈的情况下,可以对每一输出缓冲存储器中数据进行加权平均求得倾斜角度。
5 软件设计
程序主要分三部分,主程序main,倾斜角计算子程序tlitcalculate和校准子程序calibrate,在对SCA3000进行操作时,还要调用SPI读写程序,在对ZLG7290进行操作时调用I2C读写子程序。
如图9所示,在倾斜角传感器第一次使用前必须对其进行校准,包括测量各轴的零点偏移,各轴的横轴传感量,当PO.1置高时进入校准状态。在校准中,PO.9&PO.10&PO.11=000时,将SCA3000按z轴垂直向上放置;PO.9&P0.10&P0.11=001时,将SCA3000按z轴垂直向下放置;PO.9&P0.10&P0.11=OlO时,将SCA3000按x轴垂直向上放置;P0.9&PO.10&PO.11=01l时,将SCA3000按x轴垂直向下放置;P0.9&PO.10&P0.11=100时,将SCA3000按y轴垂直向上放置;P0.9&P0.10&P0.11=101时,将SCA3000按y轴垂直向下放置。综合各个状态时的数据完成零点偏移和横轴传感量计算。实际运用中,SCA3000安装在平台上时不可能保持xy轴与平台完全平行,z轴完全垂直平台。所以在进行测量前必须取得平台水平放置时SCA3000的输出值,将其设为初始值保存于FLASH中。
在倾斜角计算中。首先读数据进行零点偏移补偿和横轴传感补偿,接着对严重污染的数据丢弃,进行数据融合,再判断倾斜角度大小。当角度较小时,利用两轴数据进行计算,当角度过大时运用三轴数据进行计算。
主程序中,采用定时器中断和SCA3000缓存器中断两个中断对SCA3000数据进行读写。保证数据的实时性。
6 结语
本文基于三轴加速度计SCA3000和ARM处理器芯片LPC2210设计了一种三轴倾斜角智能传感器,它具有全方位和全摆幅的特点。本文对两轴、三轴加速度计测量倾斜角的原理进行了分析,采用两轴、三轴数据的合理运用,实现精度高、抗噪性能强的倾斜角传感器的研究。
对传感器数据采用零点偏移补偿,横轴传感量补偿,进一步提高了数据的精度。采用SPI接口实现传感器与微控制器间的通信,采用定时器中断和SCA3000缓存器中断两个中断唤起对传感器数据的读/写,实现对传感器数据读速度可控。