1 引言
随着体育训练科学化水平的不断提高,人体专项力量训练的必要性日益受到重视。通过对大量实际运动测试数据的总体分析发现,所有从事跑、跳运动项目和以跑、跳为基础运动项目的运动员,其向后蹬伸力量均明显小于向下或向前蹬伸力量。而向后蹬伸力量恰恰是跑、跳运动产生动力所必需的专项力量。因此,设计开发一套实用准确的髋作用力测试仪,对于教练精确量化运动员的训练效果,以及合理制定有针对性的训练方案,进而最终提高运动员比赛成绩,有着极其重要的参考价值。
本文所介绍的髋作用力测试仪以凌阳公司推出的16位单片机SPCE061A为核心部件,综合借鉴现有技术,通过对测试仪软硬件设计的合理规划,充分发挥单片机自身集成众多系统级功能单元的优势,有效降低了硬件成本,具有很高的可靠性和稳定性。
该髋作用力测试仪主要实现以下功能:
(1)测量运动员腿部下蹬作用力实时力量值;
(2)测量运动员腿部与下蹬作用力同步的实时速度值;
(3)通过上位机实时显示上述作用力、速度以及功率的具体数值和曲线;
(4)具备数据复现功能。可以保存并比对测试数据。
2 系统总体结构
髋作用力测试仪结构框图如图l所示。系统由数据采集处理电路、控制中心和上位机实时数据、曲线显示3部分组成。
作用力采集电路将髋作用力以模拟量的形式传递至单片机I/O口。通过单片机自身集成的10位高速A/D转换器,将力量值转化为控制系统可用的数字量。速度采集电路由光电编码器和鉴相电路组成。光电编码器输出的数字脉冲量经单片机运算处理后,得出作用力的实时线速率,鉴相电路则向单片机提供了该作用力的方向。微控制器采用凌阳16位单片机SPCE061A,其最高工作频率为49.15MHz,32位可编程多功能I/O端口方便连接各种外设,片内集成7通道 10位电压模数转换器(ADC)和单通道声音模数转换器,并具有丰富的中断资源,特别适用于实时性要求严格的控制系统。串口电平转换电路完成RS232电平标准和单片机电平标准的转换,以实现测试仪和上位机的实时全双工数据通信。用户可通过上位机控制程序实时观测和保存训练数据,并能够设定测试仪的相关参数。
3 数据的采集和处理
髋作用力测试仪需要测量和显示的数据主要包括髋作用力、与作用力相应的瞬时速度值和功率值。其中,髋作用力数据的采集由力传感器和配套变送器完成,瞬时速度的采集由光电编码器和鉴相电路完成。功率则可由作用力和速度的乘积求得。
3.1 髋作用力测量
髋作用力由力传感器采集,其模拟电压信号经变送器放大和线性化处理后,送至SPCE061A内部集成的ADC完成数模转换。
3.1.1 力传感器工作原理
本测试仪采用电阻应变式力传感器完成髋作用力采集。电阻应变式力传感器由弹性敏感元件和电阻应变片组成。当弹性敏感元件受到被测力作用时,将产生位移和应变,同时使粘贴在弹性敏感元件上的电阻应变片的阻值发生变化。因此,通过测量电阻应变片的阻值变化,就可以确定被测作用力的大小。力采集电路内部等效原理图如图2所示。
其中,Rl是粘贴在弹性敏感元件上的电阻应变片。R1~R4组成单臂式直流电桥,将桥电路中电阻的变化转换为电桥输出电压的变化。由图可知,电桥的输出电压为
即电桥输出电压Uo与电阻应变片阻值变化△Rl成线性关系。结合前述可知,电桥输出电压Uo的变化反映了作用力大小的变化。从而通过测量电桥输出电压Uo,就能实现对作用力大小的检测。
力传感器输出的电压信号Uo通过变送器的放大和线性化处理,由双端输入信号Uo转变为单端输出信号Usample。模拟电压Usample与被测作用力线性相关,送至后续模数转换电路(ADC)完成模数变换。变送器中的精密变送放大电路一般采用三运放差动放大电路,具有较高的输入阻抗和共模抑制比,并通过内部的阻容耦合电路有效减小了温度漂移,保证了测量的精确度。
3.1.2 髋作用力测量方法
力采集电路输出 Usample是电压模拟量,需要经过ADC,变换为系统控制核心—单片机可以使用的数字量。SPCE061A内部集成有8通道10位高速A/D转换器,本系统选用单通道I/O A0作为A/D转换的模拟电压输入。A/D转换的参考电压Vref可以采用单片机系统自带的Vdd,也可以通过软件设置使用外部参考电压。考虑到该测试仪的测力量程为0kg~300kg,力采集电路对应的模拟电压输出O V~3V,模拟电压信号符合SPCE061A自带A/D转换器的输入要求。因此,A/D转换参考电压采用系统默认的Vdd。将Usample连接至 SPCE061A的I/O A0端,即可进行A/D转换。本系统设计的A/D转换频率设置为l kHz,髋作用力F可表示为:
式中:Mmax是测试仪所测作用力的最大量程,g是重力加速度值,Umax是力采集电路输出的模拟电压最大值,AD_Data是力采集电路输出 Usample经A/D转换后得到的10位数字量,AD_Max是10位A/D转换器参考电压Uref所对应的数字量,此处为0x03FF。实际编程中,为了降低采样过程瞬态误差的干扰,运用了算术均值滤波的方法,即最终显示的作用力F通过对10次采样的作用力求算术平均值取得。
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为控制核心,充分发挥其片内资源丰富和运算速度快的优点,硬件电路结构简洁,稳定性高。上位机监控程序界面友好,操控方便。测试数据的保存和复现功能便于运动训练方案的离线分析和制定。整个测试仪具备较强的可扩展性。该测试仪已经开始在中国海洋大学运动体能实验室试用,并取得了良好的测试效果。