一种带有限位功能的步进电机控制器
步进电机是一种将电脉冲转换为角位移或直线运动的执行设备。在非超载的情况下,电机转速和停止位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,因此步进电机广泛应用于精密控制场合[1]。
在基于图像处理评价函数的调焦系统中,常用的调焦策略包括斐波那契搜索法和爬山搜索法,其中又以爬山搜索法应用最为广泛[2]。根据爬山搜索的原理,在开始搜索时,先复位调焦镜头到起始搜索位置,在搜索焦点的过程中,要防止由于图像噪声等干扰造成程序判断错误,导致调焦镜头越出调焦范围边界。
为了适应这种控制需求,对通用步进电机控制器进行了改进,使其在具有自动和手动控制功能的同时,引入限位信号反馈控制。电机控制器使用硬件描述语言(HDL)编写,而限位信号则由位置感应电路中的光电开关器件自动反馈。
1 步进电机驱动原理
步进电机与直流电机的驱动方式不同,它需要逻辑控制器与功率驱动电路配合使用。具有位置感应电路的步进电机驱动原理图如图1所示。
电机控制器接受指令单元的控制指令,同时检测位置感应电路反馈的限位信号,然后向功率驱动单元传递驱动逻辑,功率驱动单元转换这些驱动逻辑,并输出功率脉冲驱动步进电机运行。
2 步进电机控制器
通用步进电机控制器主要用于输出驱动逻辑信号,控制步进电机的运行方向、速度、步数和停止。本文的步进电机控制器要求具有手动和自动控制功能,同时加入复位和限位处理模块,控制目标为一种二相四线制步进电机。加入限位信号(LIMIT)控制功能的控制器顶层信号如图2所示。
图2中DATA为电机自动运行的步数,HOLD控制电机停止,MANUAL为手动触发信号,DIRECTION用于控制运行方向,RESET_TRI为爬山搜索复位信号,四路OUT信号为步进电机的输出逻辑,用于四线制步进电机的驱动控制。通过控制输出逻辑的频率DRI_CLK可以控制步进电机运行速度,而输出逻辑的转换方向则控制了步进电机的运行方向[3]。
2.1 模块实现
步进电机在具有一定转换方向的驱动脉冲下运行,据此将电机控制器划分为方向控制和逻辑输出两个部分。限位信号用于复位和限定运行方向,因此在方向控制部分同时处理限位;在逻辑输出部分,按照控制需求再次划分为复位、自动和手动三个逻辑处理模块,在逻辑输出的实现方式上,复位、自动和手动通过一定的优先级逻辑,通过发送电机占用请求复用逻辑输出模块。图3为控制器模块划分示意图。
(1)爬山复位
爬山复位模块用于复位调焦镜头到爬山搜索的起始位置。电机控制器在捕获到指令单元的复位信号后,按预定的运行方向产生驱动逻辑,直至控制器收到限位信号LIMIT的有效反馈后停止。复位过程中,自动和手动请求无效。
(2)自动控制
步进电机控制器的步数数据接收端DATA在接收到指令单元传入的运行步数后,首先检查当前是否有其他电机占用请求,如果电机空闲,就按照同时传入的方向信号输出指定步数的驱动逻辑;否则忽略本次自动控制请求。
(3)手动微调
手动微调在控制器中作为一种辅助控制手段,允许人工微调调焦镜头的位置。每启动一次手动微调,电机就按照设定的运行方向,运行一段固定的微调距离。控制器在捕获到手动输入信号后,同时读取手动运行方向DIRECTION的设置值,如果当前电机空闲,则按照手动输入的方向信号输出固定步数的驱动逻辑;否则手动请求无效。
(4)方向和限位处理
当控制器运行在手动微调或自动控制时,需要防止调焦镜头越出边界。方向模块在收到有效的限位信号LIMIT后,对正在输出的方向信号取反,控制步进电机反方向运行,实现限位要求。当控制器没有收到限位信号反馈时,则读取DIRECTION端口的方向,传递给逻辑输出模块,用于控制驱动逻辑的转换方向。
(5)逻辑输出
逻辑输出模块内置逻辑发生器,逻辑发生器按照电机请求和方向信号输出驱动逻辑。方向信号用于控制驱动逻辑的转换方向;自动和手动模块的核心是计数器,电机请求信号是步数计数器的输出,因此电机请求信号的有效时间表示允许逻辑发生器运行的时钟周期数。
2.2 逻辑发生器
逻辑发生器的输出逻辑与步进电机的驱动方式密切相关。本文控制目标的驱动方式为二相双四拍式。标记步进电机的两相绕组为:A(+)、B(-)、C(+)、D(-),AB为一相,CD为另一相,则二相双四拍的驱动方式为AC-AD-BD-BC[4]。二相双四拍的驱动方式是指电机输入线的通电方式,也即功率驱动单元的输出通电脉冲,而逻辑发生器的输出还要考虑功率驱动单元的转换方式。
功率驱动单元可以使用MOS管等分立元件或专用集成电路实现[5]。为了减少电路规模,采用专用驱动芯片BA6845FS完成功率转换。该芯片具有四路电平转换,支持二相双四拍驱动方式;输出饱和电压低、内置节电和过热保护电路,可以降低电路功耗,同时提高电路可靠性。其真值表如表1所示[6]。从表1中可以看出,当控制器没有接到电机运行指令时,可以设置逻辑发生器的输出B/D为0,使步进电机的绕组处于开路状态,防止电机发热。
- 基于TMS320F240控制步进电机的调焦系统设计(10-20)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)