广东艾诗凯奇智能科技有限公司佛山市528000
摘要:在现代工业生产过程中,常常需要测量很多不同的位移量。与此同时对位移量进行较为精确地检测,是提高控制精度的基础。因此之前所普遍采用的传统位移测量装置已经不能适应时代发展的潮流。在此情况下通过科研人员的不断努力终于研制出了数字式光电编码器,它的输入量是角位移量其输出量是相应的电脉冲,并且它有体积小,精度高的优点。本次设计是以AT89C高速单片机为核心,用光电编码器来实现对位移量的精确测量,再将测量结果显示在LCD液晶显示器上。其中本次设计中所选用的是输出电压为5V的光电编码器。本文由浅入深先介绍了一些关于位移测量的基本原理,进而阐述了各个模块的设计思路,工作过程以及显示效果。本文借鉴了一些当前较为流行的设计思想,例如硬件软件化,很好的满足了设计要求。
关键词:位移;测量;光电编码器;单片机;LCD显示器
1位移测量及其传感器简介
位移包括线位移和角位移。在工业生产过程中需要大量的位移检测,而且位移检测还是测量诸如力、扭矩、速度、加速度、流量等参数的基础。
位移是矢量,其不仅具有大小,而且还具有方向。在实际测量中,应使二者方向重合,这样才可以得到比较满意的测量结果。若二者的方向不重合,则会使测量结果产生较大的误差。
在具体测量时,要依据测量对象的不同,而灵活选择测量点、方向与系统。位移传感器,放大电路以及显示器组成了位移测量系统。其中选用合适的位移传感器是本次设计的关键。
本仪器选用W77E58高速单片机作为位移测量控制核。高速单片机W77E58是WINBOND公司生产的与MCS-高速/52引脚和指令兼容的高速单片机,主要有以下特性:(1)内部集成了高速结构,将12周期/指令缩减为4周期/指令,使CPU的响应速度提升了1.5~3倍;(2)最高工作时钟频率为40MHz;(3)集成了256B可直接读取的RAM和1KB用MOVX读取的内置SRAM;(4)内部有32K的FLASH程序存储器;(5)有2个全双工串行通信口,支持UART(通用异步通信接收和发送器)和同步移位寄存器,不仅如此,该芯片的串口还增加了帧结构错误探测(FED)和地址自动识别(AAR)功能;(6)内部集成了看门狗复位电路。
2方案选择及原理
光电编码器常常应用于高精度控制系统中。其位移测量原理:光电编码器会产生两路脉冲,以A、B脉冲命名,两路脉冲的相位差相差90°。为了确定电机的正反转,可以事先规定:若脉冲A超前脉冲B?90°则为正转;若脉冲A滞后脉冲B?90°则为反转。显然位移量与脉冲数的关系是正比。因此只要确定了二者之间的比例关系就可以方便的得出位移量的大小。这种方法的优点是既方便又精确而且成本又很低。
通过上述原理可知,计数的准确与否对于位移的测量是至关重要的。在实际的位移测量系统中计数器必须可以加、减计数,这是因为电机可以正、反转,故而计数器应与之相适应。一般来说设计方法可以分为硬件设计方法和软件设计方法。硬件设计的优点是响应速度快,时效性好,可靠性高。其缺点是电路设计比较复杂,而软件设计却与之相反。总之二者各有优劣,应针对不同的情况灵活选择。
本次设计中的计数方案是:先对编码器的脉冲输出进行鉴相以确定电机的正反转,其次根据鉴相的结果来进行与之相应的加或减计数。
2.1?位移测量参数及电路参数分析
在本设计的仿真中,光电编码器产生的A,B相方波用PROTUES中的信号源加不同的起始时间来模拟。一个用原始的,还有一个用延时1/4周期。变换方向时将两个信号调换就行了。
2.1.1?高速单片机的定时器/计数器简介
高速单片机有两个内置的定时计数器,以T0、T1命名。两个定时计数器均可以通过编程来设置它们的工作方式、量程、以及启动方式。
与T0、T1定时计数器的控制相关的寄存器有两个,它们分别是TMOD模式控制寄存器和TCON控制寄存器。其中有关TMOD模式控制寄存器的各个位的定义如图1所示。
图1TMOD寄存器用于定时/计数的操作方式及工作模式指令格式
2.2.2.定时器模式选择位
C/T=0,定时器模式,每一个机器周期计数器自动加1。
C/T=1,计数器模式,在单片机T0引脚上每发生一次负跳变,计数器自动加1。GATE=0,定时/计数器工作不受外部控制。
GATE=1,定时/计数器T0的起停受INT0引脚的控制。
1.计算计数初始值
因为系统的晶振频率为fosc=12MHz,则机器周期Tm=12/fosc=1μs。
设计数初始值为X:
/Tm=216-13105/1=15535
X=216-td
则(TH0)=00111100B=3CH,(TL0)=10101111B=AFH
2.设置工作方式
方式0:M1M0=01;定时器模式:C/T=1;
定时/计数器启动不受外部控制:GATE=0;
因此,(TMOD)=05H。
3?硬件电路的设计
位移测量设计的整个系统框图如下:
图3主程序流程图
图4T0中断服务程序流程图
为了进行深度、速度的计算,需要浮点运算,采用C高速编程。由于W77E58的高速处理能力以及优化算法,用C语言编程也能满足深度系统的实时性。APP信号一路直接送W77E58的T0,同时将APP反相后送W77E58的INT1。这样做的目的是让单片机能够感知APP的上升沿和下降沿。在1个周期的上升沿对BPP信号检测,进行运动方向鉴别,而在下降沿则根据BPP信号的状态决定是否进行深度计数(下井仪器向上运动,减计数;下井仪器向下运动,加计数),若为抖动,则不计数,从而消除了抖动对深度测量的影响。当深度到达预定间隔时,控制器便发出深度中断请求信号DINTIRQ,通知主机开始采样。
4.结论
本系统在实际的数控测井中已成功地实现了测量抖动误差为零的满意结果。一般电路的消抖控制在抖动10min,位移误差为0.2m,本系统可以控制在抖动10min,位移误差为零。完全消除了编码器带来的抖动误差。若测量头参数为3600脉冲/m,采样间隔为80点/m,测井速度为20000m/h(最高限速)时,此时,AP和BP的频率达20000Hz,信号周期为50μs,也就是说,在50μs内要完成运动方向鉴别、深度测量及消抖动等操作,普通单片机是不能胜任的。用W77E58单片机再配合优化算法便可达到以上要求。
基于W77E58的高速运算能力,加上软件设计时采用了先进的方向鉴别及消抖动算法,使该位移测量子系统具有准确的方向判别能力及很高的位移测量精度。此外,该深度子系统能够通过主机设置测量头参数及深度采样间隔,能够适应各种测量头和各种测井项目,以及数控机床的高精度位移测量。
参考文献
[1]位移测量装置的设计与实现[J].杨峰,何晓慧,赵天法,杨庆.山西电子技术.2009(01)
[2]基于单片机控制的多量程位移数显仪设计[J].周玲,张记龙,刘笑达.火力与指挥控制.2008(06)
[3]基于单片机的微小位移测量[J].张茂贵.科技资讯.2007(25)