DSP的VCM低频主动隔振控制系统设计
扫描二维码
随时随地手机看文章
摘要:音圈电机(Voice Coil Motor,VCM)因其良好的线性驱动性能,在主动隔振系统中作为主动吸振器的驱动器日益受到人们的青睐。本文设计了一种应用于低频主动隔振系统中,基于DSP的VCM控制系统,给出了软、硬件设计方法,并介绍了一种基于时钟节拍和消息机制的软件系统的工作原理。
关键词:音圈电机;DSP;时钟节拍;消息机制
引言
近年来,随着微/纳米技术的蓬勃发展,加工、测量都要求一个稳定的环境,以提高加工、测量精度。然而振动干扰无处不在,室外交通、室内人员走动、机械设备运转等均可能造成振动干扰。大地产生的振动频率约为0.1~10 Hz,实验室人员走动所产生的振动频率约为1~3Hz,一般建筑物的振动频率约在10~100 Hz之间。而且这些振动都很难彻底消除,所以振动的抑制与隔离就尤为重要。
振动的抑制与隔离方法有多种,通常将振动隔离技术分为被动隔振技术和主动隔振技术。音圈电机(Voice Coil Motor,VCM)是电磁线性电机中的一种,最早用于扩音器。因其具有结构简单、直接驱动、维护容易等优点,并具有良好的加速、减速性能,所以VCM激励器常用于需要快速、运动受控的设备等场合,如DVD中的伺服控制、硬盘,以及摄像机镜头等。本文选用VCM作为低频主动隔振系统中主动吸振器的驱动器,并给出了软、硬件设计方法。
1 系统硬件设计
VCM控制系统硬件电路采用TI公司的TMS320F2812(以下简称F2812)作为控制系统核心。该芯片是一款功能非常强大的32位定点DSP芯片,既具有数字信号处理能力,又具有强大的事件管理能力和嵌入式控制功能。时钟频率为150 MHz,能够满足系统实时性要求。另外,该芯片还支持96个外部中断、丰富的外部存储器接口等。VCM控制系统结构框图如图1所示。
图1中,电源模块为系统提供各种规格的电源需求;DSP最小系统模块是控制系统的运算处理核心;数据存储模块分别采用IS61LV25616AL和SST39VF800Q扩展了8 MbFlash和4 Mb RlAM;CPLD扩展模块采用EPM3256A系列的CPLD扩展了人机交互模块和RS232和USB2.0通信模块;加速度传感器信号采集电路是主动隔振系统的振动干扰检测模块,即控制系统的前向通道;VCM驱动电路模块为控制系统的后向通道。
在主动隔振系统中,采用的是ICP式加速度传感器来检测隔振平台的振动情况。传感器的输出为±5 V的电压信号,为了获得足够的分辨率和线性度,选用了ADI公司的24位∑-△ADC转换芯片AD7734。其非线性度不超过±0.0025%,并具有SPI通信接口。通过配置AD7734的内部寄存器,可以直接采样加速度传感器输出的±5 V信号。前向通道的电路原理图如图2所示。其中,AD780是一款超高精度带隙基准电压源,可以提供2.5 V输出。[!--empirenews.page--]
VCM驱动电路原理如图3所示。VCM是永磁式直线型电机,改变线圈控制电压的方向和大小,即可改变VCM的运动方向和定位位置,且其定位精度与控制信号的分辨精度密切相关。为了获得较大的驱动能力,选用了TI公司的双全桥PWM电机驱动芯片DRV8402。该驱动芯片可以工作在500 kHz的切换频率下,操作电压为12~50 V,可持续输出10 A电流,峰值电流高达24 A;能100%线性还原输入的PWM,对控制精度无损。采用F2812的PWM输出模块与DRV8402配合使用,VCM的控制精度可达16位。[!--empirenews.page--]
2 系统软件设计
为了满足控制系统的实时性要求,在参考μC/OS-I的基础上,结合F2812的32位硬件定时器Timer 2,编写了一种基于时钟节拍和消息机制的软件系统。该软件系统完全由C语言编写而成,对硬件的依赖度小,可以很方便地移植到其他的硬件平台上。该软件系统核心文件的说明如表1所列。其中,硬件依赖度分为3个级别(1~3),数字越大依赖度越大。
[!--empirenews.page--]
核心文件之间的包含调用关系如图4所示。其中,math.h为编译器自带的头文件。
软件系统的架构可以用图5所示的3个流程来表示。图5(a)是主程序流程,即该软件系统的前台操作流程。在主程序的大循环(while(1){;})中,系统会不断地从消息队列中取消息,判断消息类型,然后根据消息类型和消息值执行相应操作。图5(b)是系统时钟节拍的中断服务函数流程。该时钟节拍由硬件定时器Timer 2(T2)产生,节拍周期可调,通常为20ms。每个时钟节拍周期到了之后,系统中断并进人中断服务函数,执行T2例行程序,这是系统的后台操作。图5(c)是T2例行程序的流程。进入该例行程序,首先检查有没有软件时钟,如果有则调用软件时钟服务函数,然后执行系统例行程序。如果没有,则直接调用系统例行程序。
软件时钟是一种基于系统时钟节拍的定时操作,可以把它理解成闹钟,即每个一定时间都执行某一操作,或仅是单次操作。软件时钟对应的操作,可以送进消息队列在前台执行,也可以在中断中执行。但不宜把太多的软件闹钟设为在消息队列中执行。
消息传递机制是该软件系统前后台配合的纽带。所有后台操作或外部请求都可以通过消息包的方式送进消息队列,然后在前台以取消息、解消息的方式获取需要处理的信息,然后执行相应的操作。目前,消息队列是FIFO的方式,不支持优先级,在实际应用时一定要保证消息队列的容量足够大。
结语
经过实验调试,基于该VCM控制系统的低频隔振平台能有效地动态抑制外界振动干扰。此外,基于时钟节拍和消息机制的软件系统被多次移植到其他项目应用上,均取得了良好的效果。