基于AT89C52单片机的转速测量仪设计

描述

1 引言

测量转子速度的方法很多,但多数比较复杂[1]。目前,测量转速的方法主要有四种[2]:机械式、电磁式、光电式和激光式。机械式主要利用离心力原理,通过一个随轴转动的固定质量重锤带动自由轴套上下运动,根据不同转速对应不同轴套位置获得测量结果原理简单直接,不需额外电器设备,适用于精度要求不高、接触式的转速测量场合。电磁式系统由电磁传感器和安装在轴上的齿盘组成,主轴转动带动齿盘旋转,齿牙通过传感器时引起电路磁阻变化,经过放大整形后形成脉冲,通过脉冲得到转速值。由于受齿盘加工精度、齿牙最小分辨间隔、电路最大计数频率等限制,测量精度不能保证。光电式结构类似于电磁式结构,把旋转齿盘换作光电编码盘或黑白相间的反射条纹,把电磁传感器换作光电接收器,通过对反射回来的光脉冲信号计数得到测量结果。由于受条纹最小分辨间隔、电路最大计数频率等限制,测量精度不能保证,所测转速值和电磁式一样为两个计数脉冲间距的平均值。激光测速技术(LDV)是一种正在发展中的测速技术,通过激光多普勒效应获得转动体的瞬时角速度,理论上具有很高的瞬时转速测量精度,但目前实际产品精度不够高,并且价格昂贵,在实际使用上受到限制。通过改进已有的电磁式传感器,设计一种适于瞬时转速测量的新型传感器,在旋转机械瞬时状态分析中具有一定的实际意义。

本文以传统的电磁式系统为基础,研制一种使用红外辐射技术的新型转速测量仪,安装方便,对周围环境要求不高,可以很容易地完成转速的测量。具有较宽的动态测量范围,测量精度较高。

 2 系统设计

测速系统总体结构如图1所示,主要包括红外测速传感器(由红外发射与接收电路和齿盘组成)、信号处理电路、单片机以及数字显示部分。其工作过程如下:当齿盘旋转时,由于轮齿的遮挡,红外发射管与接收管之间的红外线光路时断时续,信号处理电路将此变化的光信号转换为电脉冲信号,一个脉冲信号即表示齿盘转过一个齿。单片机对脉冲进行计数,同时通过其内部的计时器对接收一定数目的脉冲计时,根据脉冲数目及所用时间就可计算出齿盘的转速,最后通过数字显示部分将转速显示出来。

AT89C52

2.1 系统硬件设计

根据红外测速的原理,系统的电路设计如图2所示。

AT89C52

本系统采用AT89C52单片机,它是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8KB的可反复擦写的Flash程序存储器和256B的随机数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MS-51指令系统及8052产品引脚兼容,片内置有8位中央处理器(CPU)。功能强大的AT89C52单片机适用于许多较为复杂的控制应用场合。

电路中选用红外光敏二极管作为受光器件,它与红外发光二极管一起组成一对红外发射接收管,红外光敏二极管在电路中处于反向工作状态。没有光照射时,光敏二极管处于截止状态,反向电阻很大,反向电流(暗电流)很小。随着光照的增强,光敏二极管处于导通状态,其反向电阻减小,反向电流(光电流)增大,其光电流与照度之间呈线性关系。

转速显示选用字符型液晶显示模块(LCM)JHD12864,可显示16×8或16×16点阵字符。其主控制驱动电路为HD44780,具有标准的接口特性,适配M6800系列和MCS-51系列MCU的操作时序;模块内部具有64个字节的自定义字符RAM,可自定义显示字符。该模块采用+5V电源供电,共有20个引脚,其与单片机的接口路如图2所示,其中可变电阻RW2用来调节显示器的对比度。

 3.2系统软件设计

  3.2.1计时方案的选择

根据计时方案的不同,目前数字式转速测量装置的计时方法主要有M 法、T法和同步M/T法。M 法测速是在相等的时间间隔△t内读取脉冲数M,由M/△t计算出转速,速度越高在△t时间内计得的M 就越多,由±1个计数脉冲误差所引起的转速测量误差就越小,故该法适用于高速。T法测速是根据相邻两个脉冲时间间隔对应的时钟脉冲计数值m 来计算转速的,转速越慢或每转脉冲数越多,其计数值m就越多,计数器±l个计数脉冲所引起的误差就越小,故该法适用于低速。上述两种方法测量的绝对误差反比于速度采样时间T(Hp:时间间隔△t或计数值m),因此在稳态测量和实时性要求不高的场合,可取较大的T 以保证足够的测量精度。但在动态测量和实时控制系统中,往往对转速测量的实时性有较高的要求。因此,采样时间T不能随意取大,为了解决既要周期小,又要测速精度高的矛盾,可采用同步M/T法。这种方法的特点是不固定定时时间△t′,以记录到完整的盘脉冲为准,主要是设法使M 与△t′同步,从整数个盘脉冲开始计时,同样在整数个盘脉冲结束计时,记录到的是整数个盘脉冲,且与计时是“同步” 的。其原理如图3所示,在采样时间△t时间内实际计时时间△t′开始于第一盘脉冲的下降沿,终止于最后一个脉冲的下降沿,因而得到整数个盘脉冲,消除了M 法和T法中±1个脉冲引入的误差。鉴于几种方法的比较,在设计中采用同步M/T法设计本测速系统。

AT89C52

 3.2.2 软件结构划分

采用结构化软件设计的方法,使得设计简单,易于调试和移植,提高编程效率。采用结构化设计软件的方法将本系统软件划分为图4所示的4个模块:齿数计数模块、计时模块、转速计算模块和转速显示模块。其中最主要的是计时模块和转速计算模块

AT89C52

(1) 计时模块

由图2可知当红外线发射管发射的红外线未被轮齿挡住时,接收管受红外线照射呈导通状态,经反相器输入到单片机中断端口的电压为高电平,不产生中断;而当红外线发射管发射的红外线被轮齿挡住时,接收管不受红外线照射则呈截止状态,经反相器输入到单片机中断端口的电压跳变为低电平。从而激活中断程序对脉冲进行计数。计数流程图如图5所示。由于计数需要与计时同步,所以需要在产生第一次红外光被挡住时(红外光被挡住时Pass=0,反之Pass=1),也即中断口电位由高变低时打开定时器。由于实验中的齿盘共有108个齿,为了提高测量的实时性,把108个齿分成9等份,当计数值(Num)为12时关闭定时器并读取定时器的计时值。

(2) 转速计算模块

由于系统采用同步M/T法测量转速,所以计算转速时,需要的参数有盘脉冲数和计时值。本系统中AT89C52单片机采用频率为12MHz的外接晶振,则每个机器周期为1us。单片机定时器的计数脉冲周期为一个机器周期,若定时器从零开时计数,关闭定时器时其计数值为m,则计时时间就是m微秒。计算转速部分程序如下。

m=TH0×256        //读出计数器的计数变量TH0,并将其左移8位

m=TH0+TL0               //获得时钟脉冲数

time=m                 //计算出计时时间

n=60*106/(9*time) //计算转速r/min

 5 结束语

本文作者的创新点是以红外传感器代替了传统的电磁式传感器,系统的硬件电路简单,测量转速范围较宽,且具有较高的测量精度,对于低转速的测量也有相当高的精度。并充分利用了单片机的内部资源,有很高的性价比。可用于各行业转速的非接触式检测和控制中。

参考文献:

[1]. AT89C52 datasheet http://www.dzsc.com/datasheet/AT89C52_1064535.html.
[2]. HD44780 datasheet http://www.dzsc.com/datasheet/HD44780_371772.html.
[3]. MCS-51 datasheet http://www.dzsc.com/datasheet/MCS-51_477840.html.
 


:

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分