微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于NiosⅡ的超声电机驱动控制电路

基于NiosⅡ的超声电机驱动控制电路

时间:04-06 来源:互联网 点击:

超声电机是一种新型微特电机,其工作原理是通过压电材料的逆压电效应,使定子在超声频段微幅振动,依靠摩擦将振动转换成动子的旋转(直线)运动。超声电机具有体积小,重量轻、结构紧凑、响应快、无电磁干扰等优点,在航天宇航和军事装备等领域有着广泛的应用前景。

近些年来,我国在超声电机控制方面,提出了一些控制理论,并搭建了一些用于超声电机驱动的实际驱动与控制电路。2010年,薛雯玉硕士研究了基于DSP芯片的超声电机驱动控制器,但驱动电路仍以传统的模拟电路为主,精度不高,不能实时的调频、调相。2011年,孙霖硕士研究了基于DSP/FPGA的超声电机驱动控制器,利用DDS技术产生数字正弦波,虽然提高了精确度和实时性,但是浪费了很多芯片的逻辑资源,也不利于驱动控制电路的小型化。

本文使用Altera公司的EP3C400240C8芯片设计了一种以FPGA为核心、基于SOPC技术和NiosⅡ软核处理器的新型超声电机驱动控制器。在FPGA内部用SOPC(可编程片上系统)的思想定制了一个NiosⅡ软核处理器作为控制运算部分,用Verilog语言编写出了频率、相位、幅度都可调的DDS模块和光栅反馈计数模块,这样的一个闭环系统在满足控制精度和实时性的同时具有良好的灵活性和可重构性,并且做到了以极少的硬件资源和高度集成的系统结构去控制超声电机运行,便于驱动控制电路的小型化。

1 驱动控制器的设计

1.1 驱动控制电路

本文提出的超声电机驱动控制系统由控制驱动器和功放/升压电路组成。图1是以FPGA为核心构建的超声电机驱动控制电路。超声电机的驱动机理要求驱动器必须提供在超声频段内两相具有一定相位差的同频、等幅正弦交流电,电压在几十伏到几百伏之间。该电路的功能全部由FPGA的软件实现,控制和输出正弦交流电,大大提高了控制系统的稳定性和精确性,并使控制系统电路板的面积大幅度缩小,一块控制板可以同时控制数个超声电机。

此驱动控制系统用FPGA内部编写的DDS模块输出两路具有一定相位差的正弦波数据,然后通过DA芯片转成正弦波信号,经过功率放大之后,最后用变压器抬高电压。

该电路加载超声电机后输出的波形如图2所示,波形变的光滑很多。当超声电机在运行过程中发生频率漂移的情况时,系统也能够从速度的改变量来调整相应的驱动输出,不会出现电机速度不稳定的现象。

1.2 FPGA内部系统

图3是超声电机控制驱动电路中FPGA内部的构架。其设计的核心是可裁剪的Nios II软核和发出正弦信号的DDS模块以及读取光栅编码器反馈脉冲的计数模块。

1.2.1 NiosⅡ系统的搭建

Nios II是Altera公司开发的软核32位的RISC微处器,作为一个采用硬件描述语言编写的软核,Nios II可以通过内带的Avalon总线机制与其他采用HDL语言描述的硬件接口模块组成Nios系统一起嵌入到Altera的Stratix、Cyclone或APEX系列的FPGA中,从而构成一个可编程片上系统设计。

首先要构建一个基于Nios II的最小系统,这个系统的组件都在SOPC Builder提供的IP核中,依次选择Nios II处理器、EPCS控制器、SDR AM控制器、JTAG模块。其中,NiosⅡ实现MCU的功能,SDRAM和EPCS控制器组件用来连接外部存储器,JTAG模块实现程序的调试与下载。除此以外,我们还需要用到串口接收上位机发送来的数据以及定时器中断,因此在系统中添加UART模块和定时器模块。最后,处理器要控制DDS模块的运行并且接收光栅计数模块计算出的脉冲数,还需要添加一些I/O口用作数据的传输。这样,FPGA内部的一个NIOS系统就构建完成了。

1.2.2 DDS模块

直接数字频率合成器(Direct Digital Frequency Synthesizer)是一种基于全数字技术,从相位概念出发直接合成所需波形的一种频率合成技术。基本原理是以数控振荡器的方式,产生频率、相位可控制的正弦波、余弦波、三角波、三角波、方波等波形。图4所示为DDS的基本结构。

图4中,fc为时钟频率,K为频率控制字,N为相位累加器的字长,D为ROM数据线宽度。

本文的DDS设计主要分为3个模块:控制字接收模块,用来与NIOS系统进行通信,接收来自上位机的控制字;波形存储器模块,用来产生驱动信号所需要的波形,本文只需要产生正弦波;相位累加器模块,用来产生频率和相位,本文是将接收到的频率和相位控制字转化为实际的频率和相位。

1.2.3 脉冲计数模块

脉冲计数模块由滤波和计数两部分构成,主要是为了读取光栅编码器反馈回来的信息,从而实现对电机的精确定位和速度控制。本文使用的光栅编码器,其分辨率为0.5um/count,输出A+/A-、B+/B- 2路差分信号,为将编码器的差分输出转换成单端脉冲信号,本文选用了26LS32AC差分转

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

网站地图

Top