基于SPCE061A单片机的髋作用力测试仪设计
时间:01-13
来源:互联网
点击:
3.2 速度测量
本测试仪中,与髋作用力同步的速度值和作用力方向由光电编码器、鉴相电路和相应软件计数器求得。
3.2.1 光电编码器测速原理
光电编码器是一种数字式角度传感器,它能将角位移转化成相应数量的电压脉冲信号,主要用于机械转角位置和旋转速度的检测和控制。本测试仪选用的ZKX-6- 50BM7型增量式光电缩码器是一款高精度角位移传感器,转动轴每旋转一周分两路输出500个电压脉冲信号Out_A和Out_B。其中,Out_A和 Out_B两路信号相位差为90°。
将光电编码器输出接至单片机的外部中断IRQ3,则转动引起的每一个电压脉冲都会触发单片机外部中断。通过编制单片机外部中断子函数,就可以实现对光电编码器输出脉冲个数的准确计算,经换算后即得转动轴转过的精确角位移。
因此,计算固定时间段内光电编码器的角位移,就可求得转动轴的角速率,结合光电编码器同轴转盘的半径,就可算得与髋作用力同步的线速度值。实际编程中,选用单片机内部512 Hz的时基中断产生固定时间段,即计算每个时间间隔t=l/512 s内光电编码器的输出脉冲个数,从而求得速度。设v为t时间内的平均速度,由于固定时间段足够小,所以将瞬时速度近似为平均速度v,则
式中:s为t时间内被测对象产生的位移;n为固定时间间隔内(1/512 s)光电编码器输出的脉冲数;ι为光电编码器同轴转盘的周长,N为光电编码器旋转一周输出的脉冲数,此处N=500。
3.2.2 速度鉴相的方法
髋作用力检测过程中,光电编码器的转向说明训练者髋部是主动发力或是被动受力。因此,光电编码器转向的判别是本测试仪必须具备的基本功能。通过对光电编码器所输出的相位差90°的两路电压脉冲信号0ut_A和Out_B进行鉴相,就能够判别转盘正转或反转。具体鉴相电路原理如图3所示。
光电编码器输出的Out_A和Out_B分别接至D触发器时钟端Clk和控制端D。根据D触发器的功能定义,在输入时钟信号Out_A的每个脉冲上跳沿,触发器的输出W2被控制端D的输入信号Out_B置位。图4示意了光电编码器正转时,Out_A、Out_B的信号波形和鉴相电路的输出。
正转时,Out_A信号的相位超前Out_B信号90°,w1输出始终为高电平。反转时,Out_A信号的相位延后Out_B信号90°,W1输出始终为低电平。因此,通过读取W1的电压高低,就可以判别光电编码器的转向。
3.3 功率的测量
测得作用力和速度之后,功率可由二者乘积算得。即功率:
P=Fv (5)
但考虑到单片机在计算实数乘法的效率和精度上的劣势,单片机只负责将采集到的作用力和速度通过RS232上传到上位机,实际运算则由上位机完成。此方法能满足测试仪的实时性和精度要求。
4 系统软件设计
SPCE061A内置在线仿真电路ICE (In-CircuitEmulator)接口和在线串行编程技术,使程序开发、调试和下载等均在可视化开发环境中通过在线调试器PROBE实现,省去了传统单片机开发中必需的硬件在线实时仿真器(ICE)和程序烧写器。具体软件设计中,充分利用SPCE061A丰富的时基中断,在IRQ4、IRQ5中断子程序中完成键盘扫描和A/D转换等工作。与上位机的串行通信则采用SPCE061A自带的UART硬件传输中断,以满足数据双向传输的异步性和实时性。
系统程序由主程序、力采集子程序、速度计算子程序、串行通信子程序、外扩存储器子程序和中断子程序等部分组成。各部分严格按照模块化原则编写,易于日后系统升级和维护。其中,主程序主要完成测试仪各部件的初始化和自检,以及实际测量中各个功能模块的协调。
力采集子程序和速度计算子程序流程图如图5所示。
测试仪的上位机监控程序基于Visual C++6.0平台开发。使用微软公司提供的MSComm控件,极大程度上避免了直接调用Win32API造成的编程繁琐等弊端,以较少代码量实现本系统要求的通信功能。上位机程序具备作用力计时、平均功率计算、正反转选择显示、测量数据保存和复现等功能。程序运行界面如图6所示。
5 结束语
该测试仪以凌阳16位单片机SPCE061A为控制核心,充分发挥其片内资源丰富和运算速度快的优点,硬件电路结构简洁,稳定性高。上位机监控程序界面友好,操控方便。测试数据的保存和复现功能便于运动训练方案的离线分析和制定。整个测试仪具备较强的可扩展性。该测试仪已经开始在中国海洋大学运动体能实验室试用,并取得了良好的测试效果。
本测试仪中,与髋作用力同步的速度值和作用力方向由光电编码器、鉴相电路和相应软件计数器求得。
3.2.1 光电编码器测速原理
光电编码器是一种数字式角度传感器,它能将角位移转化成相应数量的电压脉冲信号,主要用于机械转角位置和旋转速度的检测和控制。本测试仪选用的ZKX-6- 50BM7型增量式光电缩码器是一款高精度角位移传感器,转动轴每旋转一周分两路输出500个电压脉冲信号Out_A和Out_B。其中,Out_A和 Out_B两路信号相位差为90°。
将光电编码器输出接至单片机的外部中断IRQ3,则转动引起的每一个电压脉冲都会触发单片机外部中断。通过编制单片机外部中断子函数,就可以实现对光电编码器输出脉冲个数的准确计算,经换算后即得转动轴转过的精确角位移。
因此,计算固定时间段内光电编码器的角位移,就可求得转动轴的角速率,结合光电编码器同轴转盘的半径,就可算得与髋作用力同步的线速度值。实际编程中,选用单片机内部512 Hz的时基中断产生固定时间段,即计算每个时间间隔t=l/512 s内光电编码器的输出脉冲个数,从而求得速度。设v为t时间内的平均速度,由于固定时间段足够小,所以将瞬时速度近似为平均速度v,则
式中:s为t时间内被测对象产生的位移;n为固定时间间隔内(1/512 s)光电编码器输出的脉冲数;ι为光电编码器同轴转盘的周长,N为光电编码器旋转一周输出的脉冲数,此处N=500。
3.2.2 速度鉴相的方法
髋作用力检测过程中,光电编码器的转向说明训练者髋部是主动发力或是被动受力。因此,光电编码器转向的判别是本测试仪必须具备的基本功能。通过对光电编码器所输出的相位差90°的两路电压脉冲信号0ut_A和Out_B进行鉴相,就能够判别转盘正转或反转。具体鉴相电路原理如图3所示。
光电编码器输出的Out_A和Out_B分别接至D触发器时钟端Clk和控制端D。根据D触发器的功能定义,在输入时钟信号Out_A的每个脉冲上跳沿,触发器的输出W2被控制端D的输入信号Out_B置位。图4示意了光电编码器正转时,Out_A、Out_B的信号波形和鉴相电路的输出。
正转时,Out_A信号的相位超前Out_B信号90°,w1输出始终为高电平。反转时,Out_A信号的相位延后Out_B信号90°,W1输出始终为低电平。因此,通过读取W1的电压高低,就可以判别光电编码器的转向。
3.3 功率的测量
测得作用力和速度之后,功率可由二者乘积算得。即功率:
P=Fv (5)
但考虑到单片机在计算实数乘法的效率和精度上的劣势,单片机只负责将采集到的作用力和速度通过RS232上传到上位机,实际运算则由上位机完成。此方法能满足测试仪的实时性和精度要求。
4 系统软件设计
SPCE061A内置在线仿真电路ICE (In-CircuitEmulator)接口和在线串行编程技术,使程序开发、调试和下载等均在可视化开发环境中通过在线调试器PROBE实现,省去了传统单片机开发中必需的硬件在线实时仿真器(ICE)和程序烧写器。具体软件设计中,充分利用SPCE061A丰富的时基中断,在IRQ4、IRQ5中断子程序中完成键盘扫描和A/D转换等工作。与上位机的串行通信则采用SPCE061A自带的UART硬件传输中断,以满足数据双向传输的异步性和实时性。
系统程序由主程序、力采集子程序、速度计算子程序、串行通信子程序、外扩存储器子程序和中断子程序等部分组成。各部分严格按照模块化原则编写,易于日后系统升级和维护。其中,主程序主要完成测试仪各部件的初始化和自检,以及实际测量中各个功能模块的协调。
力采集子程序和速度计算子程序流程图如图5所示。
测试仪的上位机监控程序基于Visual C++6.0平台开发。使用微软公司提供的MSComm控件,极大程度上避免了直接调用Win32API造成的编程繁琐等弊端,以较少代码量实现本系统要求的通信功能。上位机程序具备作用力计时、平均功率计算、正反转选择显示、测量数据保存和复现等功能。程序运行界面如图6所示。
5 结束语
该测试仪以凌阳16位单片机SPCE061A为控制核心,充分发挥其片内资源丰富和运算速度快的优点,硬件电路结构简洁,稳定性高。上位机监控程序界面友好,操控方便。测试数据的保存和复现功能便于运动训练方案的离线分析和制定。整个测试仪具备较强的可扩展性。该测试仪已经开始在中国海洋大学运动体能实验室试用,并取得了良好的测试效果。
单片机 编码器 电路 电压 ADC 传感器 电阻 仿真 相关文章:
- 基于中颖SH79F164单片机的电子血压计应用(07-01)
- 医学成像的未来(08-25)
- 最新血氧仪低功耗设计方案(09-17)
- 人体成分测量装置的设计(09-18)
- 基于LabVIEW的食管动力检测系统设计(02-26)
- 基于MSP430的便携式医疗监护系统的设计(06-12)