微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > USB总线在光栅位移传感器检测系统中的应用

USB总线在光栅位移传感器检测系统中的应用

时间:02-27 来源:互联网 点击:

从光栅传感器输入的信号有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(Pulse Width Modulation)模块CCP2和一个增强型捕捉/比较/PWM模块CCP1。其中,增强型CCP1具有死区控制和故障保护输入功能。每个CCP模块 有一个16位寄存器,它可以用作16位捕捉寄存器、16位比较寄存器或PWM主/从占空比寄存器。因为本设计只需要一路PWM输出,所以我们只需要使用一 个CCP2就能满足设计要求。根据系统设计要求,我们使用单片机的Timer2配合单片机的CCP使用,使CCP模块输出4M的方波。

④ USB模块的设计

对于单片机控制程序,目前没有任何厂商提供自动生成固件(firmware)的工具,因此所有程序都要由自己手工编制。本系统的设计就是在Microchip提供的DEMO程序的基础上,进行必要的修改而完成的。

2 PC软件部分的设计

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的公用控件完成。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top