EDN China > 设计实例 > 工业电子 > 检测与传感 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) 基于双轴加速度传感器的新型角度测量系统设计

刘亮?? 王益祥?? 白杨?? 张霄涵?? 南京理工大学机械工程学院?? 2014年12月08日 ?? 收藏2

2.2 ADXL202测角度工作原理

ADXL202水平放置时的倾角如图5所示。

ADXL202水平放置时,沿X轴和Y轴方向的加速度分量大小与重力的关系为:

AX=g·sin(α), AY=g·sin(β) (3)

式中,AX、AY分别代表加速度计的两个轴上的分量输出,g是以重力作为参考的加速度值,而α、β是倾斜角度。由反正弦函数即可以得到倾斜角度为:

α=sin-1(AX/g),β=sin-1(AY/g) (4)

图5 ADXL202水平放置时的倾角
图5 ADXL202水平放置时的倾角

ADXL202垂直放置时的倾角如图6所示。

图6 ADXL202垂直放置时的倾角
图6 ADXL202垂直放置时的倾角

加速度传感器在竖直初始位置时,沿X轴和Y轴方向的加速度分量大小与重力的关系为:

γ=sin-1(AX/g), δ=sin-1(AY/g) (5)

此角度测量仪的工作原理是:ADXL202将加速度信号转换为脉宽占空比输出,STM32F107接收这个数字脉冲信号,利用STM32F107的输入捕获功能来测量脉冲信号的高电平脉宽。然后,计算出高电平脉宽的准确时间T1,由式(2)得到X、Y方向上的加速度分量A(g)。最后,由式(4)(5)分别求出芯片在水平状态或垂直状态下的倾角。

3 数据处理模块

STM32F107采用的是ARM Cortex—M3内核,工作电压为3.3 V,时钟频率达到72 MHz。该芯片系统资源和外围接口丰富,内部集成专用时钟、复位以及电源管理模块,支持多种工作模式。由于STM32F107芯片的性能、成本和功耗方面的特点,选择它作为数据处理模块。更重要的是STM32F107的定时器除了TIM6和TIM7,都有输入捕获功能。

3.1 输入捕获功能应用于角度测量的工作原理

以TIM2定时器实现输入捕获功能为例。TIM2有4个独立通道,通过检测TIM2_CH1通道上的边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值存放到TIM2_CH1的捕获/比较寄存器里面,完成一次捕获。这就是STM32F107所具有的输入捕获功能。

将ADXL202的Xout、Yout引脚输出接到STM32F107的34、35引脚(PA0、PA1)上,由STM32F107的原理图可知,34、35引脚控制TIM2_CH1和TIM2_CH2两个通道。用TIM2_CH1来捕获Xout的数字方波信号的高电平脉冲,首先配置此通道的输入捕获为上升沿检测。当检测到上升沿时,进入中断将计数器清零重新开始计数,并配置通道的输入捕获为下降沿捕获;当检测到下降沿时,进入中断读取计数器的值,由计数值和计数频率可得到高电平的脉宽,即T1。然后通过以下两个公式:

A(g)=(T1/T2-0.5)/12.5% (6)

α=sin-1(Ax/g), β=sin-1(AY/g) (7)

计算得出当前的倾角,之后将结果传输给液晶显示屏显示结果。式中T2=1 ms。此处仅讨论芯片水平放置时的情况,当芯片垂直放置时,用式(5)即可。

3.2 采集和处理数据的方法

ADXL202有两路输出信号Xout、Yout,而且它们是同时工作的,而STM32F107是顺序处理器,一个时间点上只能处理一路信号。我们采用分时复用的方法解决,以1 s为时间点,在这1 s内,STM32F107只采集处理一条通道内的信号和数据,到下一秒时就采集处理另一条通道上的信号和数据。还应该注意一个问题,计数器在检测到上升沿时开始计数,等下降沿到来停止计数的时间内,脉宽过长时计数器会发生溢出,所以必须记录下溢出次数。在最后计算计数器的值时,将溢出次数乘以计数器的宽度加上当前计数器的值,即为总的计数值。


?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

STM32F107? 角度测量? 双轴加速度传感器? ADXL202?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈