基于NIOS软核处理器的直流无刷电机控制系统设计 | |
作者:魏 然,金明河,刘伊威,谢宗武,刘 宏 时间:2006-10-17 来源: | |
摘要:介绍了一种新型的基于NIOS软核处理器的直流无刷电机控制系统及设计方法。该系统采用FPGA作为核心器件,极大减少了分离元件的使用,充分利用NIOS处理器集成度高、灵活性强、实时控制的特点在片内实现电机控制逻辑,因此系统具有极大的灵活性、扩展性和通用性,抗干扰能力强、且系统本身结构紧凑,已成功应用于机器人仿人灵巧手手指中。 关键词:NIOS软核处理器;直流无刷电机(BLDCM);现场可编程逻辑门阵列(FPGA) 引言 随着大规模集成电路技术的发展,数字化的电子自动化设计(EDA)工具给电子设计带来了巨大变革,尤其是硬件描述语言的出现,解决了传统电路原理图设计系统工程的诸多不便,FPGA(现场可编程逻辑门阵列)器件在电机控制领域的应用也越来越广泛。用FPGA控制直流无刷电机,能够将大量逻辑功能集成于一个单片IC中,节省资源,实现在线编程、擦除,使设计更灵活,可靠程度更高,且系统结构极为紧凑。FPGA在逻辑实现上具有无与伦比的优势。但是在运算方面却逊于DSP(数字信号处理器) ,因此Altera公司在2003年推出新款的软核处理器——NIOS。它是一个32/16位精简指令处理器软核,可以实现SOPC(system on a progam ablechip) 集成。提供了16位专用指令集、ALU、同步地址发生器、16或32bit数据总线、各种外设(如定时器、SRAM、FLASH)和接口(如UART、PIO、SPI、PWM、SDRAM 接口和IDE硬盘控制器等),把微处理器的优点和PLD异常强大的并行功能结合在一起。NIOS处理器指令执行速度可达50MI/s,几乎所有的指令都可以在20ns的单周期内执行完毕。这种高性能使复杂的电机控制算法的实时执行成为可能,例如空间矢量控制和卡尔曼滤波等。本文采用NIOS软核处理器为核心、结合其它功能模块,充分利用高性能FPGA实现所需的控制逻辑,通过软核处理器完成软件控制算法,设计结构简单灵活、高性能的直流无刷电机控制系统,并将其成功应用于机器人多指仿人灵巧手系统。 系统构成及工作原理 机器人多指仿人灵巧手手指单个关节的直流无刷电机伺服系统采用角度、角速度双环从属控制结构,如图1所示。系统采用瑞士MINIMOTOR公司所产的直流无刷电机作为伺服系统的执行元件,采用谐波减速器将电机轴高速运动转化为与关节轴的低速转动。驱动电路由直流无刷电机专用驱动芯片Si9979 和MOSFET 构成。控制电路由一片ALTERA公司的FPGA实现。整个系统可以通过由FPGA实现的串行接口与PC机通信。 图1 无刷直流电机伺服系统组成 在本系统的设计过程中,电机的换向、转速和加速度以及电机输出力矩是伺服系统设计必须考虑的因素。电机的旋转输出与手指关节的运动存在一个固定的关系,这个关系由灵巧手机械系统的结构决定,本系统利用关节位关节的运动角度。位置传感器获得旋转关节位置作为控制系统的位置反馈。在灵巧手抓握某个物体或者手指与外界环境接触时,系统利用关节力矩传感器反馈信号以实现精确的力矩控制。直流无刷电机内部集成了三相线形霍尔传感器,Si9979根据这些霍尔信号产生基本的电机换向逻辑,实现无刷电机的无接触换向。电机霍尔传感器的输出信号除了实现电机换向逻辑转换外,其另外一个重要的功能是计算电机转子的位置及速度。由于霍尔传感器本身具有较高的分辨率,而关节位置传感器的位置信号输出具有相对较大的噪声,因此驱动器控制采用霍尔信号折算得到的关节速度作为控制系统的速度反馈。由于Si9979是一款高性能的直流无刷电机控制芯片,内部有输入控制信号逻辑电路、功率放大电路、电源分离悬浮电路、斩波电路及电流反馈及硬件死区产生电路等构成。FPGA只需提供PWM信号、方向(DIR)信号、刹车(BRK)信号就可对电机进行控制。传感器模拟输出信号通过串行AD转换成串行数字信号,串行AD通过SPI总线与FPGA实现通信。FPGA对这些信号进行处理产生PWM、方向和刹车控制信号,传输给Si9979驱动板,实现对直流无刷电机的驱动和灵巧手关节的力矩、位置闭环控制。 具体实现 硬件系统设计 直流无刷电机控制系统硬件上主要包括以下部分: CYCLONE FPGA包括NIOS软核CPU、锁相环、CPU同外部设备的接口; EPCS4用来上电时对FPGA进行配置;AD7888用来采集传感器信号,8路单端输入,串行接口为SPI;驱动器为直流无刷电机驱动芯片Si9979。在本系统中使用一片CYCLON E 芯片中定制的NIOS处理器作为直流无刷电机控制系统的中央处理器。整个系统的结构如图2所示。 图2 FPGA系统总体框图 NIOS处理器是一种软核处理器,即用户可随意配置和构建的32位/16位总线(用户可选的) 指令集和数据通道的嵌入式系统微处理器IP核。这部分设计使用到的开发工具是Altera公司的SOPC Builder,该工具会自动进行系统定义,完成SOPC开发的集成过程。FPGA 的NIOS软核中的资源有: 32位RISC架构CPU,4KByte的片上ROM,256Byte的片上RAM。在处理器中加入定时器实现AD定时采样及电机的实时控制。SPI模块用来实现与串行AD7888的接口,电机控制模块实现对直流无刷电机的控制。UART接口模块实现与上位机的串行通信,完成人机交互。片上处理器和其它IP模块之间通过Avalon片上总线相连,规定了主部件和从部件之间进行连接的端口和通信的时序。 SOPC Builder将定制的处理器转换为VHDL等具体的设计文件,除此之外SOPC Builder还根据定制的结果,自动的生成针对特定硬件环境的C语言和汇编语言的头文件以及函数库。 软件系统设计 NIOS处理器的软件设计方法是在NIOS内存中放一段自己编写的监控程序,控制CPU的运行,它可以读写芯片的存储单元,与外围设备进行通信。在本系统中,NIOS程序的任务是在规定的控制周期内:通过SPI模块控制AD芯片的同步采样,将电机霍尔传感器、关节位置传感器、力矩传感器的数字量送至中央处理器32位CPU,CPU将各传感器信号进行预处理后,得到实时的电机速度、关节位置、关节力矩等状态参数; 通过UART模块得到上位机发出的控制任务及控制参数,如期望关节位置、期望关节力矩等;由CPU实现直流无刷电机的闭环控制算法并将控制信号(PWM、方向、刹车)送入电机控制模块,实现实时控制,控制周期由NIOS处理器中的硬件定时器决定,目前为200ms。程序采用C语言编写,流程图如图3所示。 图3 主程序流程图 由于Altera公司的SOPC Builder没有提供电机控制模块IP,所以自行使用VHDL语言编写。FPGA需要提供PWM信号、方向(DIR) 信号、刹车(BRK)信号,仿真波形如图4所示。其中,CLK为晶振频率,Reset为系统模块用来初始化电机模块的复位信号,InData[11:0]为系统控制模块控制电机的信号,其中,InData [9∶0]为PWM信号占空比,InData[10]为刹车(BRK)信号,InData [11]为方向(DIR)信号,UpLimit、DownLimit为设定的机械位置极限。该设计可得到25kHz的固定脉冲周期、占空比可调的PWM信号。刹车信号由CPU与预设的机械位置极限共同给出,保证当关节运动到机械位置极限时可以及时刹车,起保护作用。方向信号由CPU直接给出。 图4 电机模块仿真波形 图5所示为DLRHIT型仿人灵巧手的实物照片。该灵巧手共有4个手指,每个手指装有3个直流无刷电机,手指关节1个,基关节2个。电机驱动板、FPGA控制板分别安装于手指两侧,系统本身结构极为紧凑,整个系统运行稳定。 图5 实际系统装配图 结论 本文以直流无刷电机为设计对象,提出了基于NIOS软核处理器的系统设计方案。基于NIOS进行嵌入式系统设计的突出优点是: 硬件设计快速灵活,可扩展性强,缩短了硬件开发周期,提高了设计的可靠性。软件开发快捷,CPU以软核方式实现,其功能可根据需要定制,且SOPC Builder提供了较多的IP模块。目前电机伺服系统输出波形稳定、规整,电机驱动平稳,已应用于机器人多指仿人灵巧手中,取得了良好效果。 |
标签: NIOS软核处理器;直流无刷电机(BLDCM);现场可编程逻辑门阵列(FPGA) |
文章评论(0条评论)
登录后参与讨论