1、前言
直流伺服驱动器凭借其优异的驱动性能,在工业、医疗、国防等领域有着广泛应用。典型的直流伺服驱动器的结构如图1-1所示。整个系统是由电流环、速度环和位置环构成的多环控制系统。传统的伺服驱动器使用运放为核心的模拟电路构成,其有结构复杂、参数调整不易和系统性能易受环境影响等缺点。随着微处理器技术、模拟数字接口技术和功率半导体技术的长足发展,现代的直流伺服驱动器普遍采用由微处理器为核心的数字控制系统。以微处理器为核心的伺服驱动器不但可以方便实现以前用模拟电路无法实现的控制算法,并且有着结构简单、参数调整方便、系统性能对环境参数不敏感等优点。同时,数字控制系统还可以充分利用成熟的网络连接技术,实现多机并行运行。
本文介绍的是基于SPMC75F2313A和MOSFET功率管(IRF540)实现的直流伺服驱动器方案。
2 芯片特性简介
SPMC75F2313A是μ’nSP™系列产品的一个新成员,是凌阳科技新推出的专用于电机驱动的16位微控制器。其拥有性能出色定时器和PWM信号发生器。可以方便的实现各种电机伺服驱动方案。
SPMC75F2313A在4.5V~5.5V工作电压范围内的工作速度范围为0~24MHz,拥有2K字SRAM和32K字闪存ROM;最多33个可编程的多功能I/O端口;4个通用16位定时器/计数器(其中有一个电机驱动专用PWM波形发生器,一个位置侦测接口定时器),且每个定时器均有PWM发生的事件捕获功能;2个专用于定时可编程周期定时器;可编程看门狗;低电压复位/监测功能;8通道10位模-数转换。在这些硬件外设的支持下SPMC75F2313A在电机控制领域有相当优秀的表现。
SPMC75F2313A的特性如下:
1. 高性能的16位CPU内核 a) 凌阳16位u’nSP处理器(ISA 1.2) b) 片内基于锁相环的时钟发生模块 c) 最高系统频率Fck:24MHz 2. 片内存储器 a) 32K Words (32K×16bit) Flash b) 2K Words (2K×16bit) SRAM 3. 工作温度: -40 ℃~85 ℃ 4. 10位ADC模块 a) 可编程转换速率,最大转换速率100Ksps b) 6个外部输入通道 c) 可与PDC或MCP等定时器联动,实现电机控制中的电参量测量 5. 串行通讯接口 a) 通用异步串行通讯接口(UART) b) 标准外围接口(SPI) 6. 33(LQFP44)/31(SDIP42)个通用输入输出脚 7. 可编程看门狗定时器 8. 内嵌在线仿真电路ICE接口:可实现在线仿真、调试和下载 9. 通用16位定时/计数器 |
1. PDC定时器 a) 两个PDC定时器:PDC0和PDC1 b) 可同时处理三路捕获输入 c) 可产生三路PWM输出(中心对称或边沿方式) d) BLDC驱动的专用位置侦测接口 e) 两相增量码盘接口,支持四种工作模式,拥有四倍频电路 2. MCP定时器 a) 一个MCP定时器:MCP4 b) 能产生三相六路可编程的PWM波形,如三相SPWM、SVPWM等 c) 提供PWM占空比值同步载入逻辑 d) 可选择与PDC的位置侦测变化同步 e) 可编程的硬件死区插入功能,死区时间可设定 f) 可编程的错误和过载保护逻辑 3. TPM定时器 a) 一个TPM定时器:TPM2 b) 可同时处理二路捕获输入 c) 可产生二路PWM输出(中心对称或边沿方式) 4. 两个CMT定时器 |
3 系统总体方案介绍
本伺服驱动器主要由凌阳SPMC75F2313A、由IRF540组成的功率全桥和各种接口模块组成,其结构框图如图 3-1所示。驱动器使用带电流环的位置伺服结构,其中位置伺服环可根据需要选择是否接入系统。驱动器使用20KHz的双极性PWM,以保证系统良好的动态性能。
系统工作流程:
SPMC75F2313A接受来自各种控制接口的控制信息,并转换成相应的电机控制信息。SPMC75F2313A内部的电机驱动模块依据控制信息和电机本身反馈的状态信息产生PWM驱动信号,经MOSFET功率放大后驱动电机运行。同时,内建的保护电路随时监示系统状态,一旦系统异常,保护电路会立即动作,保护整个系统不会异常情况而损坏,同时提醒用户检查。
4 系统硬件设计
系统驱动部分的电路原理图如图 4-1。电路由主控MCU核心(SPMC75F2313A)、功率驱动电路(IRF540组成的功率桥)、MOSFET驱动保护电路、霍尔电流传感电路、增量编码器接口电路和DC/DC电源变换电路几部分构成。其中SPMC75F2313A主要实现电机驱动所需PWM信号的产生、系统控制、人机接口等控制功能。
驱动电机所需的四路PWM信号由SPMC75F2313A内部的MCP定时器产生,信号由芯片的IOC端口输出,经栅极驱动电路后驱动功率MOSFET(IRF540)。PWM信号经IRF540功率合成后输出驱动直流伺服电机。
霍尔电流传感器提供实时的电机工作电流信号,电流信号经SPMC75F2313A内部的ADC模块AD转换后供给电机驱动模块使用。
增量编码器接口使用SPMC75F2313A内部的PDC定时器实现,为SPMC75F2313A内部固化的电机驱动模块提供位置和速度信息,从而完成系统的速度和位置控制。
系统保护电路由SPMC75F2313A内部MCP定时器的硬件保护逻辑和外部保护电路两部分组成。保护电路会时刻监测系统工作状态,一旦系统异常(过压、欠压、过流、过载等情况),保护电路会立时拉低MCP定时器的错误保护输入端(IOC9),SPMC75F2313A内部的驱动硬件会立即禁止所有PWM输出(变为高阻态),关断所有功率器件,确保系统不会因这些异常情况而损坏。同时申请中断,请求CPU对相应的事件进行处理。
由于其它模块属于通常的一些模块,此处不再详述。
5 系统软件设计
整个系统软件分为三部分:
1. 伺服电机的核心驱动模块,这部分主要是产生电机驱动所用的PWM信号和相应的控制环路;
2. 系统控制程序;
3. 人机接口界面程序;
电机的核心驱动模块的结构如图 5-1所示,模块使用经典的三环位置伺服结构。整个驱动模块分为位置调节器、速度调节器、电流调节器、位置计算、速度计算和电流反馈几部分构成。每个环节均使用改进的增量PID调节器(结构根据各个环路的特点而有不同),电流环的反馈速度为0.05ms,速度环的反馈速度为1ms,位置环的反馈速度10ms。
各控制环的核心服务子程序的流程如图 5-2所示。这几部分是整个系统的核心,其性能也决定了整个驱动器的性能。因此,这几部分使用纯汇编编写,相应的PID算法也根据不同控制环的特点进行相应的结构调整和性能优化。以最大限度保证这几部分程序的性能和实时性。
图 5-2 PWM周期中断服务子程序流程图
系统控制部分是整个系统协调的心脏。整个系统都在其协调下有条不紊的工作。这部分主要是根据系统设置和当前系统的状态给出相应的控制信息,以确保系统的可靠运行。
人机接口界面程序,这部主要是为用户提供一个简单易用的交互接口,以方便用户对驱动器的可靠控制。包括驱动器的起停、各种运行参数的设置都在这一层面上进行。
6 结语
通常,在开发伺服驱动设备的过程中,需要编写实时性、程序可读性强的代码,这时就需要采用混合编程。而凌阳的m’nSP™ IDE具有良好的编程环境,它可以很轻松、容易地进行混合编程(在C程序中调用汇编程序,在汇编程序中调用C程序)。
该系统用了SPMC75F2313A三个定时器和约30个IO口资源,其实SPMC75F2313A的资源相当丰富。因其有专业的电机驱动硬件支持,电机驱动系统开发变得相对简单。因此,基于SPMC75F2313A的电机伺服驱动器系统在工业、医疗、国防等领域有广阔的应用前景。