基于三轴加速度计SCA3000和LPC2210的倾斜角传感器设计
PI总线可以连接多个主机和多个从机,但是在同一时刻只允许一个主机操作总线,总线上只能有一个主机和一个从机通信。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.9PO.10PO.11=000时,将SCA3000按z轴垂直向上放置;PO.9P0.10P0.11=001时,将SCA3000按z轴垂直向下放置;PO.9P0.10P0.11=OlO时,将SCA3000按x轴垂直向上放置;P0.9PO.10PO.11=01l时,将SCA3000按x轴垂直向下放置;P0.9PO.10P0.11=100时,将SCA3000按y轴垂直向上放置;P0.9P0.10P0.11=101时,将SCA3000按y轴垂直向下放置。综合各个状态时的数据完成零点偏移和横轴传感量计算。实际运用中,SCA3000安装在平台上时不可能保持xy轴与平台完全平行,z轴完全垂直平台。所以在进行测量前必须取得平台水平放置时SCA3000的输出值,将其设为初始值保存于FLASH中。 在倾斜角计算
- 基于LPC2210的ARINIC429总线测试装置研究(11-20)
- LPC2210芯片加密的解释(11-11)
- 基于ARM LPC2210的以太网RTL8019AS驱动系统设计(11-11)
- 对ARM7 LPC2210的Bootloader源码分析(11-10)
- 基于LPC2210和uC/OS-Ⅱ的无刷直流电动机控制设计(06-11)
- u-boot启动过程分析——基于lpc2210的移植代码(08-30)