基于AT89C51单片机采用光电编码器实施转速测量的方法.docx
《基于AT89C51单片机采用光电编码器实施转速测量的方法.docx》由会员分享,可在线阅读,更多相关《基于AT89C51单片机采用光电编码器实施转速测量的方法.docx(32页珍藏版)》请在冰豆网上搜索。
基于AT89C51单片机采用光电编码器实施转速测量的方法
摘 要
在工程实践中,经常会遇到各种需要测量转速的场合,测量转速的方法分为模拟式和数字式两种。
模拟式采用测速发电机为检测元件,得到的信号是模拟量。
数字式通常采用光电编码器,霍尔元件等为检测元件,得到的信号是脉冲信号。
随着微型计算机的广泛应用,特别是高性能价格比的单片机的出现,转速测量普遍采用以单片机为核心的数字式测量方法。
本课题介绍了一种基于AT89C51单片机平台,采用光电编码器实施转速测量的方法,硬件系统包括脉冲信号产生、脉冲信号的处理和显示模块,并采用汇编语言编程,该方法具有结构简单、精度高、稳定性好的优点。
并且还介绍了该测速方法的基本原理、实现方法和软硬件设计。
关键字:
AT89C51单片机;转速;光电编码器
Abstract
Inengineeringpractice,weoftenencounteravarietyofoccasionsthatneedtomeasurethespeedandthespeedmeasurementthatisdividedintotwokindsofanaloganddigital.Analogtachometergeneratorfordetectingcomponents,theresultingsignalisanalog.Digitalcommonlyusedopticalencoder,theHallelementandotherdetectiondevices,thesignalisapulsesignal.Withtheextensiveapplicationofmicro-computer,especiallytheemergenceofhighperformanceandlowcostsingle-chipspeedmeasurementcommonlyusedbytheMCUasthecoredigitalmeasurementmethod
ThsubjectbasedonAT89C51microcontrollerplatform,theimplementationofthephotoelectricencoderspeedmeasurementmethod,thehardwaresystemincludesapulsesignalgeneratedpulsesignalprocessinganddisplaymodules,andassemblylanguageprogramming,thismethodhasasimplestructure,highprecisiongoodstabilityadvantages.Andalsodescribesthebasicprinciplesofthevelocitymeasurementmethodandthehardwareandsoftwaredesign.
Keywords:
AT89C51microcontroller;speed;opticalencoder
目 录
第一章 绪 论
随着超大规模集成电路技术的提高,尤其单片机应用技术以其功能强大,价格低廉的显著特点,是全数字化测量转速系统得以广泛应用。
由于单片机在测量转速方面具有体积小,性能强,成本低的特点。
越来越受企业用户的青睐。
转速是工程中应用非常广泛的参数,其测量方法较多,而模拟量的采集和模拟量的处理一直是转速主要的测量方法,这种测量技术已经不能适应现代科技发展的需要。
在测量范围和精度上,已不满足大多数系统的使用。
随着大规模及超大规模集成电路技术的发展。
数字系统测量得到广泛的使用,特别是单片机对脉冲数字信号的强大处理能力,是的全数字测量系统越爱越普及,其转速测量系统也可以用数字化处理。
在测量范围和精度方面都有较大的提高。
设计全数字化测量转速系统,在工业控制和民用电器中都有较高的使用价值。
一方面它可以应用与工业控制中的一部分,如数字机床的电机转速检测和控制,水泵流速控制以及需要利用转速测量来进行控制的许多场合,如车辆的里程表,车速表等。
另一方面由于该转速测量系统采用全数字结构,因而可以很方便的与工业控制机进行连接,实现远程管理和控制,进一步提高现代化水平。
1.1转速测量方法
转速是指作圆周运动的物体在单位时间内所转过的圈数,其大小及变化往往意味着机器设备运转的正常与否,因此,转速测量一直是工业领域的一个重要问题。
按照不同的理论方法,先后产生过模拟测速法(如离心式转速表)、同步测速法(如机械式或闪光式频闪测速仪)以及计数测速法。
计数测速法又可分为机械式定时计数法和电子式定时计数法。
本文介绍的采用单片机和增量式光电编码器组成的高精度转速测量系统,其转速测量方法采用的就是电子式定时计数法,对转速的测量实际上是对转子旋转引起的周期脉冲信号的频率进行测量。
在频率的工程测量中,电子式定时计数测量频率的方法一般有三种:
①测频率法:
在一定时间间隔t内,计数被测信号的重复变化次数N,则被测信号的频率fx可表示为
fx=Nt
(1)
②测周期法:
在被测信号的一个周期内,计数时钟脉冲数m0,则被测信号频率fx=fc/m0,其中,fc为时钟脉冲信号频率。
③多周期测频法:
在被测信号m1个周期内,计数时钟脉冲数m2,从而得到被测信号频率fx,则fx可以表示为fx=m1fcm2,m1由测量准确度确定。
电子式定时计数法测量频率时,其测量准确度主要由两项误差来决定:
一项是时基误差;另一项是量化±1误差。
当时基误差小于量化±1误差一个或两个数量级时,这时测量准确度主要由量化±1误差来确定。
对于测频率法,测量相对误差为:
Er1=测量误差值实际测量值×100%=1N×100%
(2)
由此可见,被测信号频率越高,N越大,Er1就越小,所以测频率法适用于高频信号(高转速信号)的测量。
对于测周期法,测量相对误差为:
Er2=测量误差值实际测量值×100%=1m0×100%(3)
对于给定的时钟脉冲fc,当被测信号频率越低时,m0越大,Er2就越小,所以测周期法适用于低频信号(低转速信号)的测量。
对于多周期测频法,测量相对误差为:
Er3=测量误差值实际测量值100%=1m2×100%(4)
从上式可知,被测脉冲信号周期数m1越大,m2就越大,则测量精度就越高。
它适用于高、低频信号(高、低转速信号)的测量。
但随着精度和频率的提高,采样周期将大大延长,并且判断m1也要延长采样周期,不适合实时测量。
根据以上的讨论,考虑到实际应用中需要测量的转速范围很宽,上述的转速测量方法难以满足要求,因此,研究高精度的转速测量方法,以同时适用于高、低转速信号的测量,不仅具有重要的理论意义,也是实际生产中的需要。
1.2转速测量原理
一般的转速长期测量系统是预先在轴上安装一个有60齿的测速齿盘,用变磁阻式或电涡流式传感器获得一转60倍转速脉冲,再用测频的办法实现转速测量。
而临时性转速测量系统,多采用光电传感器,从转轴上预先粘贴的一个标志上获得一转一个转速脉冲,随后利用电子倍频器和测频方法实现转速测量。
不论长期或临时转速测量,都可以在微处理器的参与下,通过测量转轴上预留的一转一齿的鉴相信号或光电信号的周期,换算出转轴的频率或转速。
即通过速度传感器,将转速信号变为电脉冲,利用微机在单位时间内对脉冲进行计数,再经过软件计算获得转速数据。
即:
n=N/(mT)
(1)
◆n———转速、单位:
转/分钟;
◆N———采样时间内所计脉冲个数;
◆T———采样时间、单位:
分钟;
◆m———每旋转一周所产生的脉冲个数(通常指测速码盘的齿数)。
如果m=60,那么1秒钟内脉冲个数N就是转速n,即:
n=N/(mT)=N/60×1/60=N
(2)
◆通常m为60。
在对转速波动较快系统或要求动态特性好而精度高的转速测控系统中,调节周期一般很短,相应的采样周期需取得很小,使得脉冲当量增高,从而导致整个系统测量精度降低,难以满足测控要求。
提高采样速率通常就要减小采样时间T,而T的减小会使采到的脉冲数值N下降,导致脉冲当量(每个脉冲所代表的转速)增高,从而使得测量精度变得粗糙。
通过增加测速码盘的齿数可以提高精度,但是码盘齿数的增加会受到加工工艺的限制,同时会使转速测量脉冲的频率增高,频率的提升又会受到传感器中光电器或磁敏器或磁电器件最高工作频率的限制。
凡此种种因素限制了常规智能转速测量方法的使用范围。
而采用本文所提出的定时分时双频率采样法,可在保证采样精度的同时,提高采样速率,充分发挥微机智能测速方法的优越性及灵活性。
本次课题以单片机AT89C51芯片为核心,通过光电编码器来检测电机的运转情况,进而实现对电机的转速测量,最后用LCD能直观的将转速显示给用户。
主要研究内容有:
1.光电编码器
2.单片机与外围设备的接口设计
3.LCD1602显示器
第二章 系统硬件设计
随着超大规模集成电路技术提高,尤其是单片机应用技术以及其功能强大,价格低廉的显著特点,使全数字化测量转速系统得以广泛应用。
出于单片机在测量转速方面具有体积小、性能强、成本低的特点,越来越受企业用户的青睐。
对测量转速系统的硬件和编程进行研究,设计出一种以单片机为主的转速测量系统,保证了精度。
信号采集采用光电编码器,在本设计方案中转轴每转一转,编码器将发出2000个脉冲,将脉冲信号输入单片机,利用单片机的计数、定时功能对脉冲信号进行分析,得到当前的转速。
在LCD1602上显示当前的实时转速。
信号传输显示图如图3-1所示
图2-1 信号传输显示图
2.1单片机模块设计
从功能的需求考虑,整个单片机系统包括以下模块:
传感器信号输入、复位输入、时钟输入、和转速显示。
如图2-2所示
图2-2 系统框图
2.2光电编码器
根据检测原理,编码器可分为光学式、磁式、感应式和电容式。
根据其刻度方法及信号输出形式,可分为绝对式、增量式、以及混合式三种。
(1)绝对式编码器
绝对编码器是直接输出数字量的传感器,在它的圆形码盘上沿径向有若干同心码道,每条道上由透光和不透光的扇形区相间组成,相邻码道的扇区数目是双倍关系,码盘上的码道数就是它的二进制数码的位数,在码盘的一侧是光源,另一侧对应每一码道有一光敏元件;当码盘处于不同位置时,各光敏元件根据受光照与否转换出相应的电平信号,形成二进制数。
这种编码器的特点是不要计数器,在转轴的任意位置都可读出一个固定的与位置相对应的数字码。
显然,码道越多,分辨率就越高,对于一个具有N位二进制分辨率的编码器,其码盘必须有N条码道。
目前国内已有16位的绝对编码器产品。
(2)增量式编码器
增量式编码器是直接利用光电转换原理输出三组方波脉冲A、B和Z相;A
B两组脉冲相位差90,用于基准点定位。
它的优点是原理构造简单,机械平均寿命可在几万小时以上,抗干扰能力强,可靠性高,适合于长距离传输。
图2-3 光电编码器原理图
(3)混合式绝对值编码器
混合式绝对值编码器,它输出两组信息;一组信息用于检测磁极位置,带有绝对信息功能;另一组则完全同增量式编码器的输出信息。
增量式光电编码器(电路图2-4)的特点是每产生一个输出脉冲信号就对应于一个增量位移,但是不能通过输出脉冲区别出在哪个位置上的增量。
它能够产生与位移增量等值的脉冲信号,其作用是提供一种对连续位移量离散化或增量化以及位移变化(速度)的传感方法,它是相对于某个基准点的相对位置增量,不能够直接检测出轴的绝对位置信息。
一般来说,增量式光电编码器输出A、B两相互差90°电度角的脉冲信号(即所谓的两组正交输出信号),从而可方便地判断出旋转方向。
同时还有用作参考零位的Z相标志(指示)脉冲信号,码盘每旋转一周,只发出一个标志信号。
标志脉冲通常用来指示机械位置或对积累量清零。
增量式光电编码器主要由光源、码盘、检测光栅、光电检测器件和转换电路组成,如图2-5所示。
码盘上刻有节距相等的辐射状透光缝隙,相邻两个透光缝隙之间代表一个增量周期;检测光栅上刻有A、B两组和码盘相对应的透光缝隙,用以通过或阻挡光源和光电检测器件之间的光线。
它们的节距和码盘上的节距相等,并且两组透光缝隙错开1/4节距,使得光电检测器件输出的信号在相位上相差90°电度角。
当码盘随着被测转轴转动时,检测光栅不动,光线透过码盘和检测光栅上的透过缝隙照射到光电检测
器件上,光电检测器件就输出两组相差90°电度角的近似于正弦波的电信号,电信号经
过转换电路的信号处理,可以得到被测轴的转角或速度信息。
增量式光电编码器输出
图2-4 增量式光电编码器电路
信号波形如图2-6。
图2-5 光电编码器组成元件
增量式光电编码器的优点是:
原理构造简单、易于实现;机械平均寿命长,可达到几万小时以上;分辨率高;抗干扰能力较强,信号传输距离较长,可靠性较高。
A相
B相
Z相
图2-6 增量式光电编码器的输出信号波形
在增量式光电编码器的使用过程中,对于其技术规格通常会提出不同的要求,其中最关键的就是它的分辨率、精度、输出信号的稳定性、响应频率、信号输出形式。
(1)分辨率
光电编码器的分辨率是以编码器轴转动一周所产生的输出信号基本周期数来表示的,即脉冲数/转(PPR)。
码盘上的透光缝隙的数目就等于编码器的分辨率,码盘上刻的缝隙越多,编码器的分辨率就越高。
在工业电气传动中,根据不同的应用对象,可选择分辨率通常在500~6000PPR的增量式光电编码器,最高可以达到几万PPR。
交流伺服电机控制系统中通常选用分辨率为2500PPR的编码器。
此外对光电转换信号进行逻辑处理,可以得到2倍频或4倍频的脉冲信号,从而进一步提高分辨率。
(2)精度
增量式光电编码器的精度与分辨率完全无关,这是两个不同的概念。
精度是一种度量在所选定的分辨率范围内,确定任一脉冲相对另一脉冲位置的能力。
精度通常用角度、角分或角秒来表示。
编码器的精度与码盘透光缝隙的加工质量、码盘的机械旋转情况的制造精度因素有关,也与安装技术有关。
(3)输出信号的稳定性
编码器输出信号的稳定性是指在实际运行条件下,保持规定精度的能力。
影响编码器输出信号稳定性的主要因素是温度对电子器件造成的漂移、外界加于编码器的变形力以及光源特性的变化。
由于受到温度和电源变化的影响,编码器的电子电路不能保持规定的输出特性,在设计和使用中都要给予充分考虑。
(4)响应频率
编码器输出的响应频率取决于光电检测器件、电子处理线路的响应速度。
当编码器高速旋转时,如果其分辨率很高,那么编码器输出的信号频率将会很高。
如果光电检测器件和电子线路元器件的工作速度与之不能相适应,就有可能使输出波形严重畸变,甚至产生丢失脉冲的现象。
这样输出信号就不能准确反映轴的位置信息。
所以,每一种编码器在其分辨率一定的情况下,它的最高转速也是一定的,即它的响应频率是受限制的。
编码器的最大响应频率、分辨率和最高转速之间的关系如下公式所示。
其中,fmax为最大响应频率、Rmax为最高转速、N为分辨率。
(5)信号输出形式
在大多数情况下,直接从编码器的光电检测器件获取的信号电平较低,波形也不规则,还不能适应于控制、信号处理和远距离传输的要求。
所以,在编码器内还必须将此信号放大、整形。
经过处理的输出信号一般近似于正弦波或矩形波。
由于矩形波输出信号容易进行数字处理,所以这种输出信号在定位控制中得到广泛的应用。
采用正弦波输出信号时基本消除了定位停止时的振荡现象,并且容易通过电子内插方法,以较低的成本得到较高的分辨率。
增量式光电编码器的信号输出形式有:
集电极开路输出(OpenCollector)、电压输出(VoltageOutput)、线驱动输出(LineDriver)、互补型输出(ComplementalOutput)和推挽式输出(TotemPole)。
2.3单片机AT89C51介绍
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
外形及引脚排列如图2-7所示
2.3.1主要特征及管脚说明
主要特征:
•与MCS-51兼容
•4K字节可编程FLASH存储器
•寿命:
1000写/擦循环
•数据保留时间:
10年
•全静态工作:
0Hz-24MHz
•三级程序存储器锁定
•128×8位内部RAM
•32可编程I/O线
•两个16位定时器/计数器
•5个中断源
•可编程串行通道
•低功耗的闲置和掉电模式
•片内振荡器和时钟电路
AT89C51提供以下标准功能:
4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
管脚及其说明:
·VCC:
供电电压。
·GND:
接地。
·P0口:
P0口为一个8位漏极开路双向I/O口,每引脚可吸收8TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接,上拉电阻。
·P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为低八位地址接收。
·P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
•P3口:
P3口管脚是带8个内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表(表3-1)所示:
·P3口同时为闪烁编程和编程校验接收一些控制信号。
图2-7 AT89C51管脚图
·RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
·ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
表2-1P3口的第二功能
引脚
第二功能
信号名称
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
RXD
TXD
INT0
INT1
T0
T1
WR
RD
串行数据接收
串行数据发送
外部中断0请求
外部中断1请求
定时器/计数器0计数输入
定时器/计数器1计数输入
外部RAM写选通
外部RAM读选通
·PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取值期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
·EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
·XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
·XTAL2:
来自反向振荡器的输出。
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石英振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
其余输入到内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦除操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
2.3.2时钟电路
时钟电路(图3-8)是计算机的心脏,它控制着计算机的工作节奏。
MCS-51单片机允许的时钟频率是因型号而异的典型值为12MHZ
MCS-51内部都有一个反相放大器,XTAL1、XTAL2分别为反相放大器输入和输出端,外接定时反馈元件以后就组成振荡器,产生时钟送至单片机内部的各个部
件。
AT89C51是属于CMOS8位微处理器,它的时钟电路在结构上有别于NMOS型的单片机。
CMOS型单片机内部(如AT89C51)有一个可控的负反馈反相放大器,外接晶振(或陶瓷谐振器)和电容组成振荡器,图3-8为CMOS型单片机时钟电路框图。
振荡器工作受/PD端控制,由软件置“1”PD(即特殊功能寄存器PCON.1)使/PD=0,振荡器停止工作,整个单片机也就停止工作,以达到节电目的。
清“0”PD,使振荡器工作产生时钟,单片机便正常运行。
电容C1和C2