基于FPGA+单片机的调焦变倍系统设计
摘要:在光电探测领域中以往对相机调焦变倍多采用单片机(MCU)控制完成,其优点在于易于编程实现。因为要求实时控制相机的变倍、调焦,其程序的编写多采用查询方式实现,这就使单片机始终处于十分繁忙的状态,利用率降低,此外当调焦、变倍电机到达限位位置时,由于单片机是采用查询方式工作,这就导致电机到达限位与实际停止电机转动之间存在时间差,这种时间差导致电机发生堵转,容易把电机或调焦变倍驱动机构烧毁。文章采用单片机+FPGA方式进行调焦变倍控制,单片机负责通信,FPGA根据命令实现调焦变倍控制。FPGA实现调焦变倍的优势在于响应速度更快、此外能够真正实现控制电机运转和监测电机运行状态同时进行,当电机运行到限位位置能够及时停止电机运转,有效避免堵转现象发生。
关键词:单片机;现场可编程门阵列;调焦变倍;限位点
0 引言
在光电测量领域中,常常需要使用长焦距、大口径的光学相机进行目标探测。这种相机由于变倍比比较大,为了使不同距离的目标均能在像面成清晰的像,除了需要控制倍率的变化外,还需要对聚焦位置进行微调。以往对这种光学相机变倍调焦的控制比较常用的方法是采用单片机来完成。采用单片机控制的优点在于编程方法简单、易于实现。缺点在于由于需要控制监测的信号有变倍电机的驱动信号、调焦电机的驱动信号、变倍电机分别走到两头的两个限位信号、调焦电机分别走到两头的两个限位信号,这些信号均要实时控制监测,因此通常需要采用查询的方法进行编程处理,这种方法的好处在于能够及时地控制相机的变倍调焦,缺点在于由于频繁的查询硬件状态,使得单片机始终处于繁忙的工作状态,工作效率低。此外由于单片机是以固定周期进行查询,这常常导致检测到电机运行到限位状态与停止电机运动存在时间差,该时间差可导致电机处于堵转状态,易于损坏电路板及电机。
本文设计了一种光学相机调焦变倍控制系统,此系统以FPGA+单片机(MCU)为核心芯片,其中控制电机运行的命令通过中断的方式发出,保证电机实时接到命令即运动起来,当电机到达限位位置FPGA得到限位状态,马上发出停止信号,断掉电机管脚上的电,使电机马上停止下来。此方法同以往方法相比的好处在于控制电机的实时性更强,能够有效地控制相机变倍调焦机构的运动、停止,同时避免电机堵转,以致烧毁电机或电路板。
1 硬件组成
基于FPGA+单片机的调焦变倍系统主要包括MCU、通信模块、FPGA(可编程逻辑器件)模块、电机驱动模块、光耦模块、电机组成,其组成框图如图1所示。其中MCU采用AD公司的ADU812,该款芯片除具有单片机的通用功能外,还具有AD转换功能,当光学镜头需要实时回传当前位置信息时,可通过把电位计同电机连接到一起,把电位计的输出端接到该MCU的AD输入口,通过程序可读到当前电机转到的位置;通信模块采用16C650,该通信模块可把MCU的并行数据信号转变为串行信号传递出去;FPGA采用EP1K100-208I,电机驱动模块采用L298,该芯片具有两路电机驱动信号输出,可同时驱动两路电机;光耦模块采用欧姆龙的EP470,该光耦模块接法简单,并且模块上具有灯光指示,通过灯光可知道当前状态;电机采用瑞士电机。
1.1 工作原理
人机交互模块通过通信模块向MCU发送调焦变倍命令,MCU通过中断接收到命令,实时传递给FPGA,FPGA接到命令后,依照命令向调焦变倍驱动电路发送相应的逻辑电平,调焦变倍驱动电路接到相应逻辑后,向相应的控制电机发送正转反转电压,使电机根据命令正转或反转。当电机转到限位位置时,光耦模块作为传感器检测到相应电机转到限位位置,把限位状态传递给FPGA,FPGA接到限位信号立刻向调焦变倍驱动电路发送信号,使其输出为零电压,电机立即停止转动。这里使用FPGA完成控制的优点在于通过对FPGA编程即可实现调焦变倍;监测电机转动位置;实时停止电机转动并行实现,当电机转动到限位位置能及时迅速地使电机停止。
1.2 FPGA控制模块及电机驱动模块
FPGA具有高集成度、高可靠性以及开发工具智能化等特点,目前逐步成为复杂数字电路设计的理想首选。此外FPGA可以通过编程实现硬件的逻辑功能,大大减少了硬件设计的复杂程度。因此本文以FPGA为核心器件进行调焦变倍驱动电路的设计,这里选用ALTERA公司的EP1K100 -208I,采用VHDL语言编程生成调焦变倍控制信号、限位信号检测逻辑、电机驱动模块使能控制信号。系统上电后,当MCU接收到人机交互机构发来的调焦变倍控制命令后,立即把该命令传递给FPGA,FPGA接到控制命令,转换成实际控制信号传递给电机驱动模块,电机驱动模块接到控制信号,产生相应的电压驱动电机转动,实现相机调焦变倍的控制。FPGA对电机驱动模块的控制原理图如图2所示。其中MFOCUS STOP、FOCUS STOP分别为FPGA向电机驱动模块发出的变倍电机和调焦电机控制使能信号;MFOCUS+、MFOCUS-为FPGA发送的变倍控制信号,FOCUS+、FOCUS-为FPGA发送的调焦控制信号;变倍电机+和变倍电机-为电机驱动模块输出的控制变倍电机转动的电压,调焦电机+和调焦电机-为电机驱动模块输出的控制调焦电机转动的电压。当相应电机转到限位点时,FPGA向对应使能端发送低电平信号,则无论相应的电机控制信号是何种状态,对应的电机驱动模块中的电压输出信号均为零电平,电机停止运动。当电机没有运动到限位点时,对应的使能端被FPGA置为高电平,FPGA通过向变倍控制端和调焦控制端发送相应信号,控制电机驱动模块输出相应电压。FPGA发送的使能信号、电机控制信号及电机驱动模块输出的电压的对应关系如表1和表2所示。其中X表示为任意电平。
- Linux嵌入式系统开发平台选型探讨(11-09)
- VxWorks实时操作系统下MPC8260ATM驱动的实现(11-11)
- VXWORKS内核分析(11-11)
- Linux内核解读入门(11-09)
- linux文件系统基础(02-09)
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)