![](../img/eep/emb/emb-25139g0t4c24jkmo.jpg)
![](../img/eep/emb/emb-25141oap5sbxghy5.jpg)
![](../img/eep/emb/emb-25142e0ssvhlfx54.jpg)
1.3 MCU模块及通信模块
在本设计中MCU主要作为通信管理芯片,实现与人机交互模块进行通信。操作者通过人机交互模块向通信模块发送变倍调焦命令,通信模块把该命令转发给MCU,MCU以中断方式接收命令实时传递给FPGA,FPGA对电机驱动模块进行控制,从而实现变倍调焦控制。FPGA对光耦模块的状态进行检测,并把该状态通过MCU模块和通信模块传递给人机交互模块,使操作者能掌握当前相机状态。因为人机交互模块发送数据较频繁,为了防止MCU出现死机现象,这里没有直接应用人机交互模块的通信口与MCU的串口连在一起,而是通过通信模块把二者联系起来。这里通信模块采用了一片16C650,该芯片优点在于内部具有32字节的FIFO,可起到数据缓存的作用,使MCU能够稳定可靠地接收数据。
1.4 光耦模块
光耦模块主要起到实时检测当前电机是否运行到限位点的作用,如果电机没有运行到限位点,光耦模块向FPGA输出0电平,当电机运行到限位点时光耦模块向FPGA输出1电平。为了便于观察和调试,这里选用欧姆龙的EX470P型光耦,该光耦通过指示灯,可指示出光耦当前输出状态。
2 软件设计
本文软件设计主要对MCU和FPGA进行编程。其中对MCU编程主要应用C语言进行,对FPGA主要应用VHDL语言编写。其中MCU程序框图如图3所示。FPGA程序流程框图如图4所示。
3 结论
本文介绍了一种基于FPGA的连续可变焦距相机的变倍调焦系统,该系统同以往单纯使用MCU完成变倍调焦功能的系统相比,采用FPGA控制调焦、变倍,能够更快地实现控制电机运动、停止,对于防止电机因为运动到限位位置没有及时发出停止操作而产生堵转,进而造成电机毁坏或控制系统毁坏具有一定效果,因此具有一定应用价值。