配置stm32定时器输入捕获为计算1s钟捕获脉冲的次数存到一个变量里,并且在下一秒刷新应该怎么配置

基于STM32的新型角度测量系统设计
> 基于STM32的新型角度测量系统设计
基于STM32的新型角度测量系统设计
在现代控制系统中,角度测量装置是非常关键的需要高精度的部件,其测量精度直接影响着整个系统的性能和精度。例如施工 升降机上有角度测控机构来控制起降;火箭炮瞄准系统中都有大量的角度传感器,实时检测炮塔偏转角度,以便对火箭炮瞄准进行调整。目前已有的利用的加速度传 感器实现高精度角度测量的研究,主要侧重于单轴的角度测量。本文将重点讨论利用双轴加速传感器ADXL202实现高精度角度测量的软硬件方法。1 角度测量仪系统硬件方案设计本文引用地址:本角度测量仪采用STM32F107作为数据处理的核心芯片。这是一款低功耗、高速度的32位处理器,拥有Cortex-M3内核。角度测量模块使用的是高精度、低功耗的双轴加速度传感器ADXL202,能将加速度信号转换成数字方波信号输出,可直接与STM32F107连接,通过一定的算法即可计算出当前的倾斜角度。显示模块使用的是12864ZW型128&64的点阵液晶显示器,图1所示为角度测量仪硬件结构框图。图1 角度测量仪硬件结构框图2 角度测量模块角 度测量模块使用的是ADI公司出品的低成本、低功耗、高精度的双轴加速度传感器ADXL202,其测量范围为-2g~+2g,既能测量动态加速度,又能测 量静态加速度。它的工作电压是3.0~5.25 V,工作电流低于0.6 mA,最高主频可达到70 MHz,所以从功耗、灵敏度和精确度考虑,选择ADXL202作为角度测量模块的核心芯片。图2是它的功能结构框图。图2 ADXL202的功能结构框图由图2可知,ADXL202是基于单片集成电路的完善的双轴加速度测量系统,对X、Y轴而言,输出环路将加速度信号转换为脉宽占空比的数字信号输出,这些数字信号可直接传输给STM32F107,无需A/D转换或其他附加的其他电路。ADXL202 由振荡器、X和Y轴传感器、相位解调器和脉宽占空比解调器组成,它的功能实现过程是,X、Y轴传感器受到加速度力后输出振幅变化的方波,输出方波的振幅与 加速度成正比。相位解调器能够对输出的方波信号进行修正并提取信息,然后判断加速度方向。相位解调器的输出会经过一个低通滤波电路,可以通过改变滤波电容 的大小来设置输出信号的带宽。经过低通滤波的模拟信号进入DCM,被转换为脉宽占空比信号输出。2.1 角度测量模块硬件电路设计为保证ADXL202高精度稳定的工作,需要根据芯片技术文档和实际使用情况,来配置信号周期、滤波电容(决定信号的带宽)。ADXL202的输出信号是脉宽占空比调制信号,占空比T1/T2与被测加速度成正比。0g时,其输出为50%占空比,灵敏度为每g所引起的脉宽占空比变化12.5%。查阅芯片的技术文档,可以通过电阻RSET来设定DCM的周期:T2=RSET/125 M&O (1)在X、Y方向上的加速度分量值可由下式计算:A(g)=(T1/T2-0.5)/12.5% (2)表1是芯片的技术文档提供的RSET和T2配置表。我们选择125 k&O的RSET,将周期T2设定为1 ms。ADXL202 通过XFILT、YFILT外接电容CX、CY来设定ADXL202的带宽,这个带宽决定了它的测量精度,同时电容CX、CY可以去混叠和滤波。为了使脉 宽占空比的误差最小,模拟带宽应比脉宽占空比的频率低1/10。对技术文档提供的表2进行分析,并考虑设定T2为1 ms,脉冲占空比频率为1 kHz,为满足实际需要和DCM误差最小的要求,选择0.05&F的滤波电容,此时模拟带宽为100 Hz。[page]引 脚连接的规范:13、14是两个电压输入引脚VDD,直接与5 V电源连接,同时连接退耦电容CDC,推荐使用0.1&F;4、7是两个接地引脚COM,直接接地;2脚VTP保持开路,不与其他任何引脚相连;3脚ST 是自检输入端,当接VDD时能检查加速度计的功能,平时该引脚开路,也可与COM相连。引脚配置如图3所示。图3 ADXL202引脚配置根据芯片的引脚配置图和以上的各类配置,可以设计角度检测模块的硬件电路,其电路原理如图4所示,其脉冲输出端直接与STM32F107的I/O口相连。图4 角度采集原理图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水平放置时的倾角ADXL202垂直放置时的倾角如图6所示。图6 ADXL202垂直放置时的倾角加速度传感器在竖直初始位置时,沿X轴和Y轴方向的加速度分量大小与重力的关系为:&=sin-1(AX/g), &=sin-1(AY/g) (5)此 角度测量仪的工作原理是:ADXL202将加速度信号转换为脉宽占空比输出,STM32F107接收这个数字脉冲信号,利用STM32F107的输入捕获 功能来测量脉冲信号的高电平脉宽。然后,计算出高电平脉宽的准确时间T1,由式(2)得到X、Y方向上的加速度分量A(g)。最后,由式(4)(5)分别 求出芯片在水平状态或垂直状态下的倾角。[page]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只采集处理一条通道内的信号和数据,到下一秒时就采集处理另一条通道上的信号和数据。还应该注意一个问题,计数器在检测到上升沿 时开始计数,等下降沿到来停止计数的时间内,脉宽过长时计数器会发生溢出,所以必须记录下溢出次数。在最后计算计数器的值时,将溢出次数乘以计数器的宽度 加上当前计数器的值,即为总的计数值。4 角度测量仪系统的程序设计使用STM32F107的输入捕获功能,需要通过程序配置内部寄存器的初始状态,以此来满足角度测量仪的工作需求。①开启GPIO和TIM2的时钟,通过内部的库函数RCC_APB2PeriphClockCmd、RCC_APB1PeriphClockCmd来控制两个时钟的开启。为了采集TIM 2_CH1和TIM2_CH2上的高电平脉宽,需配置PA0和PA1为下拉输入。②初始化TIM2,设定TIM2的输入捕获自动重装载值为0xfffe,计数频率为1 MHz。③使能输入捕获、中断、计数器,通过STM32F107的库函数能方便地配置。由角度测量和输入捕获原理可得系统的程序流程图,如图7所示。图7 系统程序流程图5 调试和测量结果在 室温下进行调试。当角度测量仪没有倾斜时,液晶屏上显示的结果并不为零,其原因是ADXL202安装无法完全水平。芯片安装后本身存在倾角,这是不可避免 的。虽然调试环境是在室温下,但是实际使用的环境可能是温度变化较大的场合,零漂和灵敏度随温度的漂移将会很严重,直接测量时会导致很大的角度误差,因 此,必须采取某种形式的温度补偿方法来解决。当角度测量仪有倾斜时,测量结果与实际值有较大误差。经分析是输入捕获的计数器有误差。经将干扰和毛刺计数进来,所以应该添加滤波电路,同时计数器的值采用多次计数取平均值的方法,以此提高计数的精度。角度测量仪的测量结果如图8所示。图8 角度测量仪的测量结果结语本文论述了一种基于ADXL202的高精度角度测量仪的研究和设计方法,对ADXL202的角度测量原理和STM32F107的输入捕获功能进行了详细的介绍。经实验测试,该测量仪能高精度地完成角度测量,而且可靠性好,对角度测量的研究和设计有着积极的意义。
分享给小伙伴们:
我来说两句……
最新技术贴
微信公众号二
微信公众号一测·控领域专业互动媒体平台
推动测试测量,检测诊断,传感物联,遥测自控智能化发展
当前位置: &
基于STM32的新型角度测量系统设计
[导读] 在现代控制系统中,角度测量装置是非常关键的需要高精度的部件,其测量精度直接影响着整个系统的性能和精度。例如施工 升降机上有角度测控机构来控制起降;火箭炮瞄准系统中都有大量的角度传感器,实时检测炮塔偏转角度,以便对火箭炮瞄准进行调整。目前已有的利用的加速度传 感器实现高精度角度测量的研究,主要侧重于单轴的角度测量。本文将重点讨论利用双轴加速传感器ADXL202实现高精度角度测量的软硬件方法。
在现代控制系统中,角度测量装置是非常关键的需要高精度的部件,其测量精度直接影响着整个系统的性能和精度。例如施工
升降机上有角度测控机构来控制起降;火箭炮瞄准系统中都有大量的角度,实时检测炮塔偏转角度,以便对火箭炮瞄准进行调整。目前已有的利用的加速度传
感器实现高精度角度测量的研究,主要侧重于单轴的角度测量。本文将重点讨论利用双轴加速传感器ADXL202实现高精度角度测量的软硬件方法。
1 角度测量仪系统硬件方案设计
本角度测量仪采用STM32F107作为数据处理的核心芯片。这是一款低功耗、高速度的32位处理器,拥有Cortex-M3内核。角度测量模块使用的是高精度、低功耗的ADXL202,能将加速度信号转换成数字方波信号输出,可直接与STM32F107连接,通过一定的算法即可计算出当前的倾斜角度。显示模块使用的是12864ZW型128&64的点阵液晶显示器,图1所示为角度测量仪硬件结构框图。
图1 角度测量仪硬件结构框图
2 角度测量模块
角 度测量模块使用的是ADI公司出品的低成本、低功耗、高精度的ADXL202,其测量范围为-2g~+2g,既能测量动态加速度,又能测
量静态加速度。它的工作电压是3.0~5.25 V,工作电流低于0.6 mA,最高主频可达到70
MHz,所以从功耗、灵敏度和精确度考虑,选择ADXL202作为角度测量模块的核心芯片。图2是它的功能结构框图。
图2 ADXL202的功能结构框图
由图2可知,ADXL202是基于单片的完善的双轴加速度测量系统,对X、Y轴而言,输出环路将加速度信号转换为脉宽占空比的数字信号输出,这些数字信号可直接传输给STM32F107,无需A/D转换或其他附加的其他电路。
由振荡器、X和Y轴传感器、相位解调器和脉宽占空比解调器组成,它的功能实现过程是,X、Y轴传感器受到加速度力后输出振幅变化的方波,输出方波的振幅与
加速度成正比。相位解调器能够对输出的方波信号进行修正并提取信息,然后判断加速度方向。相位解调器的输出会经过一个低通滤波电路,可以通过改变滤波电容
的大小来设置输出信号的带宽。经过低通滤波的模拟信号进入DCM,被转换为脉宽占空比信号输出。
2.1 角度测量模块硬件电路设计
为保证ADXL202高精度稳定的工作,需要根据芯片技术文档和实际使用情况,来配置信号周期、滤波电容(决定信号的带宽)。
ADXL202的输出信号是脉宽占空比调制信号,占空比T1/T2与被测加速度成正比。0g时,其输出为50%占空比,灵敏度为每g所引起的脉宽占空比变化12.5%。查阅芯片的技术文档,可以通过电阻RSET来设定DCM的周期:
T2=RSET/125 M&O (1)
在X、Y方向上的加速度分量值可由下式计算:
A(g)=(T1/T2-0.5)/12.5% (2)
表1是芯片的技术文档提供的RSET和T2配置表。我们选择125 k&O的RSET,将周期T2设定为1 ms。
通过XFILT、YFILT外接电容CX、CY来设定ADXL202的带宽,这个带宽决定了它的测量精度,同时电容CX、CY可以去混叠和滤波。为了使脉
宽占空比的误差最小,模拟带宽应比脉宽占空比的频率低1/10。对技术文档提供的表2进行分析,并考虑设定T2为1 ms,脉冲占空比频率为1
kHz,为满足实际需要和DCM误差最小的要求,选择0.05&F的滤波电容,此时模拟带宽为100 Hz。[page]
引 脚连接的规范:13、14是两个电压输入引脚VDD,直接与5
V电源连接,同时连接退耦电容CDC,推荐使用0.1&F;4、7是两个接地引脚COM,直接接地;2脚VTP保持开路,不与其他任何引脚相连;3脚ST
是自检输入端,当接VDD时能检查加速度计的功能,平时该引脚开路,也可与COM相连。引脚配置如图3所示。
图3 ADXL202引脚配置
根据芯片的引脚配置图和以上的各类配置,可以设计角度检测模块的硬件电路,其电路原理如图4所示,其脉冲输出端直接与STM32F107的I/O口相连。
图4 角度采集原理图
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水平放置时的倾角
ADXL202垂直放置时的倾角如图6所示。
图6 ADXL202垂直放置时的倾角
加速度传感器在竖直初始位置时,沿X轴和Y轴方向的加速度分量大小与重力的关系为:
&=sin-1(AX/g), &=sin-1(AY/g) (5)
此 角度测量仪的工作原理是:ADXL202将加速度信号转换为脉宽占空比输出,STM32F107接收这个数字脉冲信号,利用STM32F107的输入捕获
功能来测量脉冲信号的高电平脉宽。然后,计算出高电平脉宽的准确时间T1,由式(2)得到X、Y方向上的加速度分量A(g)。最后,由式(4)(5)分别
求出芯片在水平状态或垂直状态下的倾角。[page]
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 采集和处理数据的方法
有两路输出信号Xout、Yout,而且它们是同时工作的,而STM32F107是顺序处理器,一个时间点上只能处理一路信号。我们采用分时复用的方法解 决,以1
s为时间点,在这1
s内,STM32F107只采集处理一条通道内的信号和数据,到下一秒时就采集处理另一条通道上的信号和数据。还应该注意一个问题,计数器在检测到上升沿
时开始计数,等下降沿到来停止计数的时间内,脉宽过长时计数器会发生溢出,所以必须记录下溢出次数。在最后计算计数器的值时,将溢出次数乘以计数器的宽度
加上当前计数器的值,即为总的计数值。
4 角度测量仪系统的程序设计
使用STM32F107的输入捕获功能,需要通过程序配置内部寄存器的初始状态,以此来满足角度测量仪的工作需求。
①开启GPIO和TIM2的时钟,通过内部的库函数RCC_APB2PeriphClockCmd、RCC_APB1PeriphClockCmd来控制两个时钟的开启。为了采集TIM
2_CH1和TIM2_CH2上的高电平脉宽,需配置PA0和PA1为下拉输入。
②初始化TIM2,设定TIM2的输入捕获自动重装载值为0xfffe,计数频率为1 MHz。
③使能输入捕获、中断、计数器,通过STM32F107的库函数能方便地配置。
由角度测量和输入捕获原理可得系统的程序流程图,如图7所示。
图7 系统程序流程图
5 调试和测量结果
在 室温下进行调试。当角度测量仪没有倾斜时,液晶屏上显示的结果并不为零,其原因是ADXL202安装无法完全水平。芯片安装后本身存在倾角,这是不可避免
的。虽然调试环境是在室温下,但是实际使用的环境可能是温度变化较大的场合,零漂和灵敏度随温度的漂移将会很严重,直接测量时会导致很大的角度误差,因
此,必须采取某种形式的温度补偿方法来解决。
当角度测量仪有倾斜时,测量结果与实际值有较大误差。经分析是输入捕获的计数器有误差。经将干扰和毛刺计数进来,所以应该添加滤波电路,同时计数器的值采用多次计数取平均值的方法,以此提高计数的精度。
角度测量仪的测量结果如图8所示。
图8 角度测量仪的测量结果
本文论述了一种基于ADXL202的高精度角度测量仪的研究和设计方法,对ADXL202的角度测量原理和STM32F107的输入捕获功能进行了详细的介绍。经实验测试,该测量仪能高精度地完成角度测量,而且可靠性好,对角度测量的研究和设计有着积极的意义。
[整理编辑:中国测控网]
&&[2]&&&&[0]&&&&[0]
双轴加速度传感器相关论文
角度测量系统相关论文
版权与免责声明:
①凡本网注明"来源:中国测控网"的所有作品,版权均属于中国测控网,转载请必须注明中国测控网 。违反者本网将追究相关法律责任。
②本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。如其他媒体、网站或个人从本网下载使用,必须保留本网注明的"稿件来源",并自负版权等法律责任。
③如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
角度测量系统
还没有 角度测量系统 相关的测控名词的解释您可以点击
LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别
第七届中国卫星导航学术年会(China Satellite Navigation Conference, CSNC 2016)是一个开放的学术交流平台。旨在加强学术创新,
66%的网友读了:
介绍飞迈(烟台)机械有限公司电能管理系统,该系统采用智能电力仪表采集配电现场的各种电参量和开关信号
51%的网友读了:
安科瑞剩余电流式电气火灾监控系统通过ARCM剩余电流式电气火灾监控装置或数字型剩余电流互感器,对商场
注册成为中国测控网会员
可以无需任何费用浏览专业技术文章
&&[2]&&&&[0]&&&&[0]
京公网安备:09号
Copyright (C)
All Rights Reserved 版权所有403 Forbidden
403 Forbidden}

我要回帖

更多关于 定时器输入捕获 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信