基于ATmega16的数字光栅位移测量系统

2011-07-13 03:05齐树毅丁进军
电子设计工程 2011年22期
关键词:光栅尺触发器刻度

周 洋,齐树毅,丁进军

(1.中国人民解放军92038部队 山东 青岛 266100;2.海洋石油工程股份有限公司 天津 300451;3.中国海洋大学 信息科学与工程学院,山东 青岛 266100)

随着社会的发展和科技的进步,工业操作中对位移测量的精度要求越来越高。在迅速发展的计算机技术和大规模集成电路技术的推动下,位移检测设备也发生了巨大的改变。在此背景下,光栅尺测量系统应运而生。光栅尺,属光电传感器,多运用在精密机加工和数控机床上,用来精密测量物体的位移,是现代测量领域中广泛应用的一种传感器。光栅尺测量系统以高精度、高稳定性、大量程、可实现动态检测等优点在当今测量系统中占有明显的优势,并成为我国工业现代化重点推广的技术。

文中基于AVR单片机设计了一套数字光栅数据处理系统。整个系统使用ATMEL公司的ATmega16L单片机作为核心的微控制器来控制各个功能模块。主要功能模块有定时器模块、串口数据接口模块。光栅尺每脉冲当量为4 μm,要求其分辨率为1 μm。单片机对光栅尺传感器输出信号进行采集,光栅位移细分,数据处理。位移量通过光栅的透射转换成莫尔条纹的运动,然后经光电转换成脉冲信号输出,这样,我们只要记录脉冲信号的数目,以及位移停止时的最后一个状态,就可以计算出位移量的大小,达到了1 μm的分辨率。

1 器件说明

1.1 ATmega16单片机

ATmega16是ATMEL公司的生产的性价比比较高的单片机。ATmega16有如下特点:16 k字节的系统内可编程Flash(具有同时读写的能力,即RWW),512字节EEPROM,1 k字节SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,3个具有比较模式的灵活的定时器计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP封装)的ADC,具有片内振荡器的可编程看门狗定时器,1个SPI串行端口,以及6个可以通过软件进行选择的省电模式。 工作于空闲模式时CPU停止工作,而USART、两线接口、A/D转换器、SRAM、T/C、SPI端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态;ADC噪声抑制模式时终止CPU和除了异步定时器与ADC以外所有I/O模块的工作,以降低ADC转换时的开关噪声;Standby模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展Standby模式下则允许振荡器和异步定时器继续工作[1]。

1.2 双D触发器74HC74

该器件内含两个独立的D触发器,每个触发器有数据输入(D)、置位输入()、复位输入(、时钟输入(CP)和数据输出(Q、),和的低电平使输出预置或清除,而与输入端的电平无关,当和均无效(高电平)时,符合建立时间要求的D数据在CP上升沿作用下传送到输出端[2]。

1.3 数字光栅尺

光栅尺位移传感器(简称光栅尺),是利用光栅的光学原理工作的测量反馈装置。光栅尺位移传感器经常应用于机床与现在加工中心以及测量仪器等方面,可用作直线位移或者角位移的检测。其测量输出的信号为数字脉冲,具有检测范围大,检测精度高,响应速度快的特点。光栅尺输出引脚信号如表1所示。

表1 光栅尺输出输入信号Tab.1 Output and input signals of grating ruler

A,B信号为输出脉冲,每隔4 μm变化;Z信号为校准脉冲,每隔50 mm输出一个脉冲。

2 系统设计

主要思路:在本系统中,光栅尺的位移分为3部分:刻度脉冲、校准脉冲和补偿脉冲。

1)刻度脉冲:利用单片机的定时器比较匹配中断功能可以检测刻度脉冲,设置定时器的比较值为1,即来了一次上升沿脉冲后进入匹配中断进行判别[3]。在中断子程序里面首先置寄存器初始值,然后通过D触发器送来的方向完成对刻度位移加减的计算。可以选择A或者B信号作为脉冲计数源。

2)校准脉冲:光栅尺每隔一段位移有一个校准信号Z,可通过外部中断接入,在外部中断子程序里面完成对校准位移的计算和刻度脉冲的清零[4]。

3)补偿脉冲:由于AB信号一共有4个状态,通过读取2个刻度脉冲的状态并比较状态值可以得出位移补偿。光栅尺的位移为刻度位移、校准位移和和补偿位移之和。

上位机可通过串口实现获取数据,清零设置,存储当前值等功能。

系统结构如图1所示:

图1 系统设计Fig.1 System design

2.1 光栅尺位移方向的获取

光栅尺的运动不是单向移动,但其接口只能给出脉冲数,而不能辨别移动方向。因此系统采用D触发器来辨别方向。其输出信号如图2所示。

图2 光栅尺输出的脉冲信号Fig.2 Output pulse of grating ruler

用A信号连接D触发器的CP端,B信号连接D触发器的D端,当正向移动时D触发器Q端的输出为1,反之为0。其原理图如图3所示。

图3 方向原理图Fig.3 Schematic diagram of direction

2.2 光栅尺位移的计算原理

根据光栅尺读数原理,刻度脉冲为一个固定的位移[5]。这里为4 μm,即每次来一个正向脉冲,刻度位移增加4 μm,反方向运动时,刻度位移每次减小4 μm。所以在刻度位移计算的子程序中通过判断位移的方向可以获取相应的刻度位移。.校准刻度的计算也需要判断当前位移方向,当光栅尺正向移动时校准脉冲变量加一,反之减一。考虑零点是随时改变的,故第一个校准点处的刻度值需要用来做标定。 光栅尺位移为刻度位移和校准位移之和。

设置校准位移变量为tNUM,刻度位移变量为sNUM,正向第一个点处标定值为move_data00,反向第一个点处标定值为move_data01。通过分析光栅尺位移的状态我们知道,总共有4种位移计算情况,如表2所示。

2.3 补偿位移

光栅尺的A,B脉冲可分为4种状态00、01、10、11, 通过获取该状态值并比较可获得0~4 μm的脉冲补偿。正向和反向移动时状态均有16种情况,需要加以判别并得到补偿位移。

3 软件设计

3.1 系统主程序

系统上电后初始化串口配置,端口等。查询A、B状态,等待串口命令和中断信号[6]。位移信息通过中断程序即可获取,如串口需要获取数据,还需要进入位移补偿子程序对位移进行补偿,最后经过十进制转换后发给上位机。

表2 光栅尺位移计算Tab.2 Grating ruler displacement calculation

3.2 定时器中断子程序

3.3 外部中断子程序

4 实际电路的改进

由于实际工业环境中,脉冲干扰很扰很大,导致位移测量有一定的误差。D触发器也有一定的延时。为了改进测量性能,可以加入光耦隔离电路或滤波电路。改进后的电路如图4所示。

图4 改进的电路框图Fig.4 Improved block diagram

5 结束语

文中基于M16设计了一个光栅尺位移测量系统,可以接受上位机信息控制读取光栅尺位移信息,在工业测量控制中有一定的使用价值。

[1]马潮.AVR单片机嵌入式系统原理与应用实践[M].北京:北京航空航天大学出版社,2007.

[2]阎石.数字电子技术基础[M].北京:高等教育出版社,1998.

[3]李长林.AVR单片机应用设计[M].北京:电子工业出版社,2005.

[4]吴健.AVR单片机实用C语言程序设计与典型实例[M].北京:中国电力出版社,2008.

[5]叶盛祥.光电位移精密测量技术[M].四川:四川科技出版社.2003.

[6]ATMEL Corporation.ATmega16[EB/OL].[2011-09-27].http://www.dzsc.com/datasheet/ATmega16_144718.html.

猜你喜欢
光栅尺触发器刻度
国产光栅尺在校直机设备上的应用
光栅尺在高精度数控机床中的重要性
欧姆表的刻度真的不均匀吗?
——一个解释欧姆表刻度不均匀的好方法
光栅尺在数控机床中的应用
被吃掉刻度的尺子
使用触发器,强化安全性
谁大谁小
测量三字歌
几种常见触发器工作方式的讨论
对触发器逻辑功能转换的分析