摘要:介绍一种以MC9S08GB32为核心控制器的便携式无小阻桨频船速测量仪的设计方案,给出方案设计原理、系统功能特性、硬件及软件结构。
关键词:MC9S08GB32 加速度传感器 桨频船速测量
引言
皮艇、划艇、赛艇等都是比较重要的水上运动项目。运动员划桨的桨频、艇前进的速度等是项目训练中教练员和运动员最为关注的指标。如果能够方便、准确地测出这些运动技术参数,并加以科学的运算、处理、分析,必会对训练产生很好的指导作用。传统方法不可避免地增加了水对艇的阻力,对运动员训练带来额外负担。由于传感器要在水中工作,因此训练前后的安装、拆卸非常不便,由于传感器和控制、电视教学部分分离,因此很难做到较小便携。此外,由于传感器输出通常需要放大、滤波等处理,进一步进大了系统功耗,不便利用在电池供电场合。本文提出的测量系统采用Motorola的低功耗芯片MC9S08GB32作为信心控制器,通过对MMA6262Q型加速度传感器的信号处理实现船速、桨频的测量,克服了传统仪器的诸多弊端。
图1
1 设计原理及功能特性
本系统利用划艇时每划一桨,船体动量会有一增量的原理开发而成。工作时,微控制器不断采用加速度传感器二个方向加速度对应的输出电压,然后通过内部A/D转换器得到可运算的数字量,再经过一定算法计算出船速、桨数和桨频,最终存储并显示这些数据。该测量仪具有以下功能特性:
·采用电池供电,系统工作于3.3V电压,再结合MC9S08GB32的低功耗工作模式,使系统具有很好的低功耗特性;
·轻小便携,外形尺寸为75mm×40mm×35mm(长×宽×高),既不会给运动员的划桨带来额外阻力,也便于携带使用;
·具有自启动功能,设置好训练时段后,划动第一桨时,仪器便自动开始进行测量和记录,面板的LCD屏将实时显示训练时间、桨数、桨频、速度等信息;
·运动计时范围为59分59.9秒(00:00.0~59.9),计时精度为0.1秒,计时到59分59.9秒时可自动返回到00:00.0;
·具有自动关闭功能,若6分钟之内无划桨操作,MC9S08GB32将自动转入低功耗模式,同时清LCD屏以节省电源功耗,直至有按键按下时才被唤醒,并继续下一时段的测量、记录工作;
·皮艇桨频测量范围为60~180桨/分;划艇桨频测量范围为36~100桨/分;赛艇桨频测量范围为12~60桨/分。
·桨数测量范围为0~9999桨,若计到9999桨将自动返回0并继续计数;
·在每个训练段的计时范围内,可以记忆整个运动过程中从划第一桨至划完最后一桨的总时间,以及这段时间内的平均桨频和总桨数。可利用按键操作依次在LCD屏上显示整个运动过程的总时间、总平均桨频、总桨数。不清屏时,可按需要多次重复显示;
·具有数据存储功能,对于运动时段数、运动总时间、总桨数和桨频的存储而言,可以存储4小时的运动数据;对于桨速存储而言,可以存储15分钟的运动数据;二种存储式可以通过按键单选择;
·具有数据通信功能,在训练结束后,可以选择将存储的数据通过RS-232传送到PC,进行相应的运算、处理、分析;
·PC端配有分析处理软件,能够接收仪器传送的数据,以直观、明了的图形方式绘制各个训练时段的加速度α(t)、速度v(t)、桨频f(t)等多种参数曲线,也能将训练数据保存以供日后分析使用;
·具有电池报警功能,当电池电量不足时不可报警显示,提示用户更换电池。
2 系统硬件设计
整个系统以MC9S08GB32型微控制器和MMA6260Q型加速度传感器为核心,系统电路包括微控制器模块、数据采集模块、电源管理模块、LCD显示模块、按键功能选择模块和PC串口通信模块。其硬件框图如图1所示。
2.1 微控制器模块
本系统选用的MC9S08GB32型MCU,是Motorola专为智能仪表应用设计的一款高速超低功耗MCU,速度可达20MHz。该MCU最大的特色体现在电源管理上,采用1.8V~3.6V供电,适合于电池供电的应用场合,低功耗模式下仅耗电0.7μA,内部电源管理支持电池电压监测、低电压报警等功能。内部8路16位定时器可满足多种定时需求;32kB片内Flash支持在系统、在应用擦写而无需再扩展外部存储器;8通道10位ADC;带有SCI、SPI、I2C接口;56个通用I/O接口,具有内部可编程上拉电阻器、大电流吸收能力和边沿斜率控制能力。仪表启动后,MCU可对MMA6260Q型加速度传感器的信号进行处理,进而实现船速、桨数和桨频的测量、计算、存储和显示。
2.2 数据采集模块
MMA6260Q具有高灵敏度、低噪声、低功耗等特点。其动态量程为±1.5g,灵敏度为800mv/g,输出电压与加速度成正比。该传感器可与MC9S08GB32直接接口,其输出直接送至MC9S08GB32的片内10位ADC。MC9S08GB32片内ADC的工作电压为3.3V,工作频率达2MHz,10位ADC对于加速度的分辨率可达4mg。具体连接方法参见图2。XOUT与ADC引脚之间的RC起滤波作用,用于减小时钟噪声。加速度传感器与微控制器之间不需大电流。电源与地之间的0.1μF电容器是去耦电容器,设计时应尽量减小加速度传感器与微控制器之间的距离。
2.3 电源管理模块
系统电源管理采用TPS78833型低噪声、低压差、低功耗稳压 ,低电电池电压范围为2.7V~10V,输出3.3V稳压,最大输出电流为150mA,静态工作电流仅为0.017mA,采用SSOP小尺寸封装。
2.4 LCD模块
LCD采用专用字符液晶显示模块,通过不同字符组合,可以满足当前桨频、当前桨数、当前船速、平均桨频、平衡桨数、航程、记录通道数、训练时间、工作方式、电池状态等信息的显示。LCD的电源电压为3.3V,与MCU的接口采用SPI。
2.5 按键功能功能模块
按键K2-K0用于设定仪器工作方式、测量的停止、显示信息的选择、系统休眠与唤醒、存储数据擦除与传送等。按键直接由MC9S08GB32管理,MC9S08GB32复用,KBI1P7-KBI1P0共享同一键盘中断,KBI1P7-KBI1P4引脚还可以通过软件为其配置内部上拉电阻器。
2.6 PC串口通信模块
MAX3221是低功耗电平转换器,实现3.3V TTL电平和RS-232电平之间的转换,完成MC9S08GB32和PC之间通信的物理连接。
3 系统软件设计
软件主程序流程如图3所示。系统初始化后,先判断加速度传感器的瞬时输出电压值,以决定系统是否进入运动测量状态。进入测量状态后,由主程序完成加速度的采样和补偿、船速、桨数和桨频的换算、数据的存储与显示刷新。工作状态下,若在6分钟之内加速度传感器的瞬时输出电压一直低于某一阈值,MCU将会转入休眠模式。按键检测由按键中断完成,再进入相应的功能模块。系统软件包括测量仪终端软件和PC端软件二部分。
3.1 测量仪终端软件
测量仪终端软件主要包括以下模块。
(1)工作时钟设定模块:用来设定MC9S08GB32内部CPU的工作频率、ADC、计数器、SCI等外围模块的工作时钟频率,同时利用计时器产生1/128ms的ADC采样时间间隔及0.1s的运动时间最小间隔。
(2)A/D采样及船速测量模块:MCU每隔1/128ms采样一次MMA6260Q的加速度输出,同时通过一定的软件算法得 到一个瞬时速度值。软件算法基于以下公式。
其中,v0为t0时刻的瞬时速度,v1(t)为t1时刻瞬过速度,α(t)为t0~t1时段的瞬时加速度值。
(3)桨数、桨频测量模块:运动员每划动一桨将对船产生前向加速度,而在回桨过程中又会由水对船产生后向加速度,这种前、后向加速度随着运动员的不停划桨出现准周期性的变化,本测量模块将结合实测的加速度曲线,通过专门的软件搜索算法判断出每一桨的起始点、终止点,从而得到桨数值和桨频值。
(4)MMA6260Q静态调零校准模块:受工作温度、供电电压、电路个体差异等因素的影响,MMA6260Q的0g情况下的电压输出值会有一定的波动,故需要通过该模块进行零点校准,其他处理模块需要利用此时得到的零点漂移值进行软件补偿。
(5)系统自启动模块和休眠启动、唤醒模块:初始状态下,当A/D采样模块的瞬时输出超出某一阈值时,系统便自动转入运动测量状态直到运动员按下停止键或超时为止。工作状态下,若在6分钟之内A/D转换模块的输出一直低于某一阈值,MCU将在清屏和现场保护后转入休眠模块以节省功耗。休眠模式下若有键按下,则退出休眠模式并返回休眠前的状态。
(6)按键和LCD模块:按键功能选择模块通过键盘中断处理、软件消抖、键值译码等过程获取K2-K0的键值,产生不同工作状态下的各种控制信息。MCU通过SPI接口向LCD显示不同的数据信息。
(7)Flash擦、写模块:测量桨频和桨速时都需要将测量结果存储到存储器中,以供训练结束后利用PC进行进一步的分析,Flash擦、写模块完成MC9S08GB32片内32kB Flash在线擦写,实现测量数据的存储。擦、写模块需要复制到MC9S08GB32中的RAM来执行。
(8)SCI通信模块:SCI通信模块可在通信工作方式下读取Flash中存储的测量数据,并遵循一定的通信协议将数据传送给PC。
3.2 PC端软件
PC端软件基于Window界面,利用VisualC++编写,主要实现测量数据的读取、保存、分析处理和速度曲线α(t)、速度曲线v(t)、桨频曲线f(t)等的显示。
4 结束语
皮艇、划艇、赛艇等是许多运动会的正式比赛项目,也是非常依赖器材的项目,良好的器件能够帮助运动员改进技术,提高成绩。本文设计的测量仪能够实现船速、桨数和桨频的实时显示;能存储数据以便以后的分析和指导;操作简单,所有功能均由按键按制;仪表由电池供电,体积小,便于携带和放置;在艇类体育运动领域有着良好的应用前景。