由于光栅传感器测量精度高、动态测量范围广、可进行无接触测量、易实现系统的自动化和数字化,因而在机械工业中得到了广泛的应用。特别是在量具、数控机床的闭环反馈控制、工作母机的坐标测量等方面,光栅传感器起着重要作用。
目前,USB端口已成为微机主板的标准端口,利用USB总线技术,开发适用于科学研究和工业生产的各种仪器仪表设备,借以取代传统计算机测控系统中采用的串行RS232、并行接口以及ISA或PCI总线的仪器仪表设备,不仅可使计算机测控系统更加高效实时、方便灵活,而且可满足高质量、高可靠性、低成本计算机测控系统的要求。本文以光栅位移传感器检测系统的设计背景,详细介绍了系统的硬件、软件设计方法。
光栅位移传感器的基本原理和特点
光栅位移传感器的基本构成是一对光栅,其中一块是固定的,而另一块是运动的。当它们发生相对运动并有光通过两者时,能够获得相当于干涉仪中得到的条纹信号,即所谓的莫尔条纹信号。与普通位移传感器相比,它有以下几个特点。
●精度高。光栅位移传感器在大量程测量长度或直线位移方面仅仅低于激光干涉传感器。在圆分度和角位移测量方面,光栅式传感器也属于精度最高的。
大量程测量兼有高分辨率。感应同步器和磁栅式传感器也具有大量程测量的特点,但分辨力和精度都不如光栅位移传感器。
可实现动态测量,易于实现测量及数据处理的自动化。
具有较强的抗干扰能力,对环境条件的要求不像激光干涉传感器那样严格,但不如感应同步器和磁栅式传感器的适应性强,油污和灰尘会影响它的可靠性。主要适用于在实验室和环境较好的车间使用。
系统硬件设计
1系统原理简介
光栅位移传感器是进行高精度位移测量的光电转换器,它将位移微变量转换为多路正弦光栅信号。硬件电路要求首先对正弦光栅信号合成,消除测量中的共模干扰信号,然后一路进入单片机进行A/D转换;另一路通过比较器转换成数字信号后由D触发器和与门电路完成光栅位移的辨向,而后进入单片机进行正向和反向计数;其次单片机将这些数据通过USB插口送入计算机,最后由计算机进行数据细分和处理,从而得到光栅位移长度。
2方案的选定
利用USB总线的数据采集方案有两种,一种方案是采用普通单片机另加上专用的USB通信芯片,现在的专用芯片中较为流行的有NationalSemiconductor公司的USBN9602、USBN9603、USBN9604,Philips公司提供的PDIUSBD12,以及SanLogic公司的SL11等。该方案可充分利用开发人员原有的硬件资源和软件知识,开发成本较低,但设计和调试较为麻烦,而且电磁兼容性差,容易造成主机不能识别USB设备。另一种是利用具有USB接口功能的单片机。目前国外不少主要芯片厂商都陆续推出了带USB通信接口的单片机,使用这些专用芯片构成的数据采集系统电路设计简单,调试方便,电磁兼容性好。本设计的USB光栅位移检测系统接口电路就采用了Microchip的USBPIC单片机。
3PIC18F4550芯片特点
Microchip公司的带USB通信接口的单片机PIC18F4550芯片为40/44脚封装,配备了功能强大的12MIPSRISC内核,自编程闪存存储器以及纳瓦节能技术,工作频率达48MHz,数据传输速率高达12Mb/s。新器件还具有Microchip先进的PMOS电可擦除单元(PEEC)闪存技术,耐擦写次数可高达100万次,而数据保存期能超过40年。此外,其全速USB2.0接口包括一个片上收发器和一个并行流端口,能把数据直接传送到外部的设备,减少CPU的开销,而且大大增加了系统的抗干扰能力和工作的可靠性。
PIC18F4550单片机的一个关键特性在于它配备了32Kb自编程增强型闪存,使得设计人员可以通过USB端口对最终应用进行现场升级。结合新器件配备的一系列片上外设和纳瓦技术(nanoWatt)的功耗管理功能,该全速USBPIC单片机非常适用于多种嵌入式应用,包括工业领域、医疗、汽车、电池供电应用和消费类产品。
4硬件组成框图
从光栅传感器输入的信号有5路:±SIN、±COS以及零窗信号ZERO,它们经差分放大电路合成,分3路进入PIC单片机模拟量输入口进行A/D转换;同时,经差分放大电路合成后的SIN、COS信号再经零比较器后转换成数字脉冲信号,然后经D触发器和与门电路完成光栅位移的辨向。PIC单片机T0和T1口接收来自与门电路的数字脉冲,完成光栅位移的计大数(计算光栅尺移动的完整光栅数);PIC单片机RC1口输出4MHz的PWM脉冲信号作为D触发器的CP信号。计算机的USB接口两根数据线分别接PIC18F4550的D+和D-口用以完成计算机和单片机之间的数据通信,计算机的USB电源一方面为PIC微处理器提供能源,另一反面通过电源模块转换成±12V电源,为运放电路提供正负电源。
系统软件设计
1单片机软件部分的设计
单片机的软件部分主要完成光栅位移传感器的数据采集、A/D转换、计算光栅位移传感器的正向、反向莫尔条纹的个数、为数字电路提供CP脉冲以及完成USB的通信等工作。
①A/D转换部分的程序设计
PIC18F4550器件的ADC模块有13个输入通道。该模块能将任意一个模拟输入信号转换成相应的10位数字信号。本检测系统需要把COS和SIN两路正弦模拟信号转换成数字信号,同时把一路零位脉冲信号送入单片机寄存器中。因此在设计A/D转换部分程序时,把RA0、RA3分别设为SIN和COS两路模拟信号的输入,把RA5设为零位信号的数字输入,其他模拟信号口都分别设为数字量输出口,以便最大限度的减少单片机的外围电路对该系统信号采集的影响,提高整个系统的抗干扰能力和精度。
②定时器/计数器部分的程序设计
本检测系统的单片机需要把光栅位移传感器正向移动的光栅线数和反向移动的光栅线数计算出来,然后通过USB接口送到上位机,作为光栅位移长度的计大数部分。光栅位移传感器输出的正弦信号经过信号调理电路后,可以把它移动的光栅线数转换成数字脉冲,从而可以通过计算脉冲的个数来达到计算光栅线数的目的。因此我们可以选择Timer0和Timer1作为计数器使用,从而计算出光栅位移传感器正反向移动的光栅线数。
③比较/捕捉/PWM(CCP)模块的设计
PIC18F4550具备一个16位数据和分辨率的捕捉(Capture)/比较(Compare)/PWM(PulseWidthModulation)模块CCP2和一个增强型捕捉/比较/PWM模块CCP1。其中,增强型CCP1具有死区控制和故障保护输入功能。每个CCP模块有一个16位寄存器,它可以用作16位捕捉寄存器、16位比较寄存器或PWM主/从占空比寄存器。因为本设计只需要一路PWM输出,所以我们只需要使用一个CCP2就能满足设计要求。根据系统设计要求,我们使用单片机的Timer2配合单片机的CCP使用,使CCP模块输出4M的方波。
④USB模块的设计
对于单片机控制程序,目前没有任何厂商提供自动生成固件(firmware)的工具,因此所有程序都要由自己手工编制。本系统的设计就是在Microchip提供的DEMO程序的基础上,进行必要的修改而完成的。
2PC软件部分的设计
PC的软件部分主要用于完成上位机同下位机之间的USB通信,光栅位移传感器位移信号的细分和显示等功能。为了下一步的软件开发以及与厂家的其它软件接口,应厂家的要求,本系统上位机的软件部分采用VC++6.0来实现。
该设备驱动程序采用了Microchip的通用USB设备驱动程序,而接口通信程序采用了Microchip的BAPI.DLL动态链接库。
计算机对最后一个正弦信号进行细分,细分点通过计算相位程序结合正、余弦信号象限判别来获得。为了提高精度,我们把正、余弦信号分为8个象限,然后求出细分点的比值,然后通过求细分点反正切函数求出光栅尺的相位,再根据光栅尺相位的弧度值计算出光栅尺细分点的位移值,最后把光栅尺细分点的位移值加上光栅尺移动的完整光栅线数,从而得到光栅尺的位移值。
因为光栅尺栅线的栅距不同,为了设计的通用性,我们在编程时对三种常用的栅距(100线/mm、50线/mm、25线/mm)都分别作了处理。若使用光栅尺栅线为100线/mm,即光栅栅距为0.01mm,对正弦信号进行100细分,可得测距分辨率为0.1μm。
在本课题设计时,我选用MFC基于对话框的设计,数据的显示等全用Windows的公用控件完成。
|