首页->【FPGA/CPLD助学小组】

724 0

1 引言
    Nios II系列32位RISC嵌入式处理器是Altera公司的第二代软核嵌入式处理器,性能超过200DMIPS Nios II处理器是软核,开发者能够从无限的系统配置组合中选择满足性能和成本目标的方案,而不必为系统级设计采用ASIC,这种开发方式非常适合设计针对网络、电信、数据通信、嵌入式和消费市场的各种嵌入式应用。本文采用Nios II嵌入式处理器为核心,结合其它功能模块,充分利用高性能FPGA实现所需的控制逻辑,设计结构简单、灵活、高性能的直流无刷电机控制系统,并将其成功应用于机器人多指仿人灵巧手系统。

2 基于Nios II内核的SOPC软硬件开发
    采用Nios处理器开发设计与采用传统的处理器开发设计不同,开发者必须先配置处理器结构、设置接口等内容 也就是说,开发者必须根据实际需求构建一个处理器,而传统的处理器具有固定接口、片内RAM 和外部设备。应用SOPC Bulider(嵌入式开发套件)可以进行Nios II IP核的开发。构建嵌入式系统 SOPC Bulider中提供一个集成开发环境Eclipse,集成了硬件平台产生器、软件平台产生器、仿真模型生成器、软件编译器和软件调试工具等,方便用户完成嵌入式系统开发的整个流程。具体步骤如图1所示。
 
图1 Nios II开发流程
    在FPGA上设计的嵌入式系统的层次结构分为3级。其中,第一级为定义处理器,在最低层硬件资源上开发IP核,定义处理器包括CPU、片内存储器、片外存储器、外围设备等;第二级为构建处理器,软件产生一个处理器后还需要配置CPU硬件选项包括数据总线宽度(32 or 16 bits)、乘法器和自定义指令用法、定义处理器启动地址、为外围设备和接口设置中断优先级、设置Avalon总线结构。第三级为系统验证,任务是编写测试文件对系统进行全面测试。
    软件开发包括头文件生成、外部设备驱动、用户自定义库、RTOS核的编写等

3 Nios II 的嵌入式应用
    直流无刷电机由于其无电刷及换向火花、小转动惯量、小体积、低噪声、免维护等优点,在机器人领域中得到广泛应用。在直流伺服控制系统中,目前国内外普遍采用的是以单片机或DSP作为控制系统的微处理器来实现电机的控制算法,但是由于用单片机或DSP控制电机,占用接口资源较多,所需周边元器件也较多,对整个系统的稳定性和可靠性有较大影响。用FPGA设计直流无刷电机控制系统,能够将大量逻辑功能集成于一个单片IC中,节省资源,可实现在线编程和擦除,使设计更灵活,可靠程度更高,而且系统结构极为紧凑,虽然FPGA在逻辑实现上具有无与伦比的优势,但是运算能力低于DSP(数字信号处理器)。
    软核处理器的出现弥补了这一缺陷,Nios II处理器指令执行速度最高可达200DMIPS,几乎所有的指令都可以在5ns的单周期内执行完毕。这种高性能使复杂的电机控制算法的实时执行成为可能,例如空间矢量控制和卡尔曼滤波等。本文中采用Nios II软核处理器为核心,结合其它功能模块,充分利用高性能FPGA实现所需的控制逻辑,通过软核处理器完成软件控制算法,设计结构简单灵活、高性能的直流无刷电机控制系统。
    单个关节的直流无刷电机伺服系统采用角度、角速度双环从属控制结构,如图2所示。系统直流无刷电机作为伺服系统的执行元件,采用谐波减速器将电机轴高速运动转化为与关节轴的低速转动。驱动电路由直流无刷电机专用驱动芯片Si9979和MOSFET构成。控制电路由一片Altera的FPGA实现。整个系统可以通过由FPGA实现的串行接口与PC机通信。由于Si9979是一款高性能的直流无刷电机控制芯片,内部由输入控制信号逻辑电路、功率放大电路、电源分离悬浮电路、斩波电路及电流反馈及硬件死区产生电路等构成,FPGA只需提供PWM信号、方向(DIR)信号、刹车(BRK)信号就可对电机进行控制。传感器模拟输出信号通过串行AD转换成串行数字信号,串行AD通过SPI总线与FPGA实现通信FPGA对这些信号进行处理产生PWM、方向和刹车控制信号,传输给Si9979驱动板,实现对直流无刷电机的驱动和灵巧手关节的力矩、位置闭环控制。
 
图2 无刷直流电机伺服系统组成
    本文设计的直流无刷电机控制系统的整体结构如图3所示
 
图3 FPGA系统总体框图
    FPGA的Nios软核中的资源有:32位RISC架构CPU,4KByte的片上ROM,256Byte 的片上RAM。在处理器中加入定时器实现AD定时采样及电机的实时控制。SPI模块用来实现与串行AD7888的接口,电机控制模块实现对直流无刷电机的控制。UART接口模块实现与上位机的串行通信。完成人机交互。片上处理器和其它IP模块之间通过Avalon片上总线相连,规定了主部件和从部件之间进行连接的端口和通信的时序。
    完成定制后,SOPC Builder将定制的处理器转换为VHDL等具体的设计文件:除此之外SOPCBuilder还根据定制的结果,自动地生成针对特定硬件环境的C语言和汇编语言的头文件以及函数库。Nios程序的任务是在规定的控制周期内,通过SPI模块控制AD芯片的同步采样,将电机霍尔传感器、关节位置传感器、力矩传感器的数字量送至中央处理器32位CPU,CPU将各传感器信号进行预处理后,得到实时的电机速度、关节位置、关节力矩等状态参数:通过UART模块得到上位机发出的控制任务及控制参数,如期望关节位置、期望关节力矩等 由CPU实现直流无刷电机的闭环控制算法并将控制信号(PWM、方向、刹车)送入电机控制模块,实现实时控制,控制周期由Nios处理器中的硬件定时器决定,目前为200ms。实验中不同占空比的PWM波形如图4所示,效果良好,整个系统运行稳定。
 
图4 PWM实际波形

4 结束语
    使用Nios II系列处理器进行嵌入式系统设计的突出优点是:CPU以软核方式实现,其功能可根据需要定制,硬件设计快速灵活,提高了设计的可靠性并缩短了硬件开发周期 本文以直流无刷电机为设计对象,提出了基于Nios II软核处理器的直流无刷电机伺服系统。该系统输出波形稳定、规整,电机驱动平稳,已应用于机器人多指仿人灵巧手中,取得了良好效果。

楼主可见