微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于FPGA和USB接口的验光仪控制系统设计方案

基于FPGA和USB接口的验光仪控制系统设计方案

时间:02-12 来源:电子爱好者博客 点击:

  本文提出了一种基于FPGA和USB接口的验光仪控制系统设计方案,该方案中的全自动电脑验光的接口设计是在原先验光仪的基础进行了改进,设计了基于FPGA的全自动电脑控制系统,并采用了先进的USB技术连接设备与电脑,提高了数据传输速率,增加了定位精度,并且缩短了验光过程的时间。

  1.引言

  近些年来,近视已经严重影响了人们的健康。为了准确的了解近视患者眼睛的近视程度,为近视者配出更加合适的眼镜,验光仪器成为了眼镜零售行业必不可少的设备。目前市场上主流电脑验光仪并不能完全实现验光过程的自动化,问题主要表现在以下三个方面:

  ①定位速度慢;②定位精度差;③自动化水平低。

  为了解决以上问题,本设计对原有的电脑验光仪进行了改进,采用运行速率快,稳定性高的FPGA控制步进电机驱动芯片,实现了验光仪的三轴联动;运用行程开关实现了极点间的自动往返。为了保护电路安全,设计了板间的光电隔离电路;并且采用先进的USB技术使电脑和设备进行通信,增加了数据的传输率,提高了设备的可控性。

  2.系统硬件整体设计

  控制系统是验光仪的控制核心,它不但要实现对多轴步进电机的运动和光源控制,还要实现与上位机信息的交互和其他重要功能。验光仪的主控制板的设计由EP3C16Q240C8最小系统扩展而成,根据FPGA功能实现及相关外设扩展对插针接口进行适当更改,并添加了USB通信接口、步进电机驱动模块和行程开关信号输入端的光电隔离电路。验光仪控制系统的主控制板硬件电路设计框图如图1所示。

  

  主控制板中FPGA使用的是Altera公司生产的Cylone III系列芯片EP3C16Q240C8N,该芯片拥有15,408个逻辑单元;可以提供516,096字节的RAM;另外芯片内部还自带有4个锁相环,可以保证系统时钟信号在高速运行时的稳定性。步进电机驱动芯片选择使用Allergo公司生产两相步进电机专用驱动芯片SLA7042M,它能够实现超平滑低速驱动。为了实现主芯片和外部设备通信,控制板需要将3.3V和5V的电平相互转换,系统使用TI公司生产的16位3.3V-5V电平转换芯片SN74ALVC164245.USB接口控制芯片采用PDIUSBD12,它集成了SIE FIFO存储器、收发器以及电压调整期,适用于许多的外部设备。

  3.Verilog硬件功能实现

  Verilog HDL是一种硬件描述语言,主要用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模.FPGA芯片是验光仪主控制板的核心部件,本设计方案中使用Verilog HDL在FPGA上实现下位机与上位机的信息交互、多轴联动步进电机运动平台的控制、对光源的控制等功能,FPGA内部功能模块如图2所示。

  

  1)USB接口控制模块:FPGA内部USB固件程序,实现FPGA与上位机USB接口通信。

  2)时钟模块:对外部的16MHz时钟进行分频、倍频处理,产生FPGA工作所需各种频率的时钟信号。

  3)指令分析模块:分析收到的上位机指令,根据规定的指令协议,产生执行命令并将执行指令发送到各个执行模块。

  4)步进电机控制模块:执行FPGA送达的三轴步进电机控制指令,对各轴的电机进行细分、变速控制,最终通过给步进电机专用驱动芯片发送不同的命令实现电机的三轴联动。

  5)光源控制模块:控制光学系统的5个LED红外光源和3个视觉辅助光源3个视觉辅助光源引导人眼注视方向,5个LED红外光源辅助系统的对焦功能。

  4.上位机应用程序及驱动程序的实现

  本电脑验光仪控制系统上位机软件主要负责完成视频图像采集和处理的功能,在预处理的基础上完成形态学的处理、目标识别和光斑参数计算输出等一系列指令,并将指令通过USB接口传输给下位机。由于该设备不是一个类设备,说以要使设备正常工作,还需要编写专门的驱动程序和软件。

  4.1 驱动程序的编写

  驱动程序的编写使用一些驱动开发的专用工具,例如Driver Studio、WinDriver等。

  Driver Studio3.2进行开发,开发步骤这里就不一一列举,应该注意的是要在USB Vendor ID和USB Product ID中输入和固件中设备描述一致的信息。由于选用的是Philips的PDIUSBD12芯片,所以设备的Vendor ID固定为0×0471.

  使用Driver Studio的Driver Wizard生成驱动框架后,可以根据需要使用Visual C++6.0对Driver Wizard生成的工程文件中的函数进行修改,还有就是对自定义的IO控制接口函数进行处理和厂商请求的编写。完成这些后,就可以对驱动程序进行编译了,成功编译驱动程序后,将它和Driver Studio自动生成的。inf文件放在同一目录下,在查找驱动的时候指定这个目录就可以了。

  4.2 上位机应用程序的编写

由于设备使用USB接口进

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

网站地图

Top