DSP与FPGA设计的跟踪伺服运动控制技术(转)

2019-07-14 13:24发布

DSP与FPGA设计的跟踪伺服运动控制技术


摘  要: 在分析光电跟踪伺服系统特点的基础上,以TI公司DSP芯片TMS320F2812作为主控制芯片,采用FPGA进行逻辑时序控制,设计了基于DSP和FPGA的多轴伺服运动控制器。给出了该控制器的功能和硬件结构以及软件流程设计。实验结果表明,该控制器具有高集成度、灵活性、实时性、模块化的特点,完全满足了在复杂环境下对伺服系统控制的要求。
关键词: 伺服控制; DSP; FPGA; 闭环控制
    在高速光电跟踪系统中,对伺服系统的高速性、精确度和稳定性都有很高的要求。为了提高跟踪精度,越来越多的控制算法被应用于伺服系统中,因此要求控制器能在很短的时间内完成大量的运算[1]。DSP具有较强的运算能力,而FPGA具有高度灵活的可配置性和逻辑时序控制能力[2]。因此在很多伺服控制器中,“DSP+FPGA”结构得到了广泛的应用。    实际应用环境一般比较复杂,有大量的信息传递,并且需要对电机转速实行精确控制,因此对伺服控制器的多路通信能力,快速运算能力和抗干扰能力都有较高的要求。为了解决这一问题,提供一个较好的实验平台,本文结合光电跟踪伺服系统的特点,提出一种以TI公司的32位定点数字信号处理器TMS320F2812为核心,以Altera公司CycloneⅡ系列FPGA为辅助处理器结构的跟踪伺服控制器,并综合阐述了该控制器的功能、硬件设计和软件流程。该控制器采用单+5 V供电,具有6路模拟信号输入、4路模拟信号输出、多路PWM输出、1路CAN总线、2路RS422和1路RS232串行通信口,具有较强的运算能力和数据通信能力,是良好的数字控制系统实验平台。1 总体结构设计
    TMS320F2812作为一款专为电机控制所设计的芯片,不仅具有运算速度快的特点,而且集成了丰富的片内外设资源[3]。设计时综合考虑DSP片上资源的充分利用、系统的模块化和可移植性等特点,将整个控制器大体分为4个部分:DSP模块、FPGA模块、D/A转换模块和通信接口模块。控制器的总体硬件结构如图1所示。
201051518214126.gif
 从图1中可以看出,DSP通过CAN总线接收上位机指令;位置信号通过两路RS422通信口传给DSP作相应处理;速度信号是由DSP片上集成的QEP电路对电机产生的正交编码脉冲信号进行解码获得;DSP输出的PWM信号与FPGA相连,通过FPGA内部的保护模块后经光电隔离输出到功率放大模块。外部中断经FPGA片内中断控制逻辑后输出到DSP外部中断管脚上;DSP与FPGA之间的数据交换通过DSP片上的多通道缓冲串口(Mcbsp)来实现;D/A转换器控制由FPGA内部的D/A转换接口模块接收DSP传来的数字量并控制逻辑时序;计算机调试接口采用RS232。
2 硬件电路设计
2.1 DSP模块
    32位定点数字信号处理器TMS320F2812整合了DSP和微控制器的最佳性能,能够在一个周期内完成32×32 bit的乘法运算,或2个16×16 bit乘法累加运算,处理速度最高可达150 MIPS。它采用高性能静态CMOS技术,内核电压为1.8 V@135 MHz,1.9 V@150 MHz, I/O端口电压3.3 V[4,5]。其先进的内部和外设结构使得该处理器特别适合电机及其他运动控制应用,能够真正实现单片控制,为电机的伺服控制提供了良好的控制功能[6]。
    DSP的功能主要通过软件实现,在此主要实现接收上位机指令,完成位置环和速度环反馈的双闭环控制算法,以及速度的PID调节,产生PWM输出。由于实际工作环境较为复杂,所以选用了抗干扰能力强的CAN总线作为与上位机的通信方式,TMS320F2812内部集成了一个eCAN模块,只需增加相应的CAN收发器外围电路就可以实现通信。根据系统采样频率调整事件管理器的定时器,控制寄存器的控制字来设定PWM工作方式和频率,通过调整比较寄存器的数值来改变PWM的占空比,根据功率驱动电路的驱动芯片来设置死区控制寄存器的数值来调整死区时间,通过专用的PWM输出口输出占空比可调的带有死区的PWM信号[7]。    将DSP片上集成的多通道缓冲串口配置成SPI模式,与FPGA内部的SPI模块完成数据交换,从而完成DSP对FPGA的控制。此时DSP上的Mcbsp为SPI通信的主机,FPGA内部的SPI模块为从机,从FPGA读取数据时,只需向从机发送伪数据。这种通信方式避免了占用大量的DSP I/O口资源,速度快,出错率小。    由于TMS320F2812内部集成的12位高速A/D转换器只能输入电压范围在0~3 V以内的模拟信号,因此需要对输入的双极性电压信号进行处理,具体电路如图2所示。为了提高A/D采样精度,需要进行软件校准,基本思想是通过采样已知电压信号来确定偏差。
201051518215231.gif 2.2 FPGA模块
    FPGA选型时综合考虑片上逻辑单元、用户I/O口数量以及功能扩展的需要,根据前期仿真结果选用Altera公司的CycloneⅡ系列的EP2C8Q208C8,它具有8 256个逻辑单元,138个用户I/O,36个M4KRAM和2个锁相环,内核电压只有1.2 V,具有低成本、低功耗的特点[8,9]。由于FPGA具有高速并行处理能力,所以保证了系统的同步性[10]。它的I/O口支持3.3 V LVTTL电平,与DSP管脚电平兼容,因此不用进行电平转换,可直接连接,使用方便。
    FPGA模块主要完成伺服控制器的逻辑接口功能,并可以扩展通用I/O口数量,方便功能扩展。在此主要实现4个模块:串行通信接口模块、SPI模块、D/A接口模块和中断控制模块。其中SPI模块配置成从机工作模式,与DSP的Mcbsp配合完成DSP与FPGA的数据交换。各模块独立并行工作,并由顶层控制模块统一协调控制,具有速度快、可移植性好的特点。
2.3 D/A转换器模块
    根据转换通道数、精度和转换速度,D/A转换芯片选择BURR-BROWN公司的DAC7614。它是12位串行数模转换器,4路模拟输出,功耗只有20 mW,单次转换建立时间10 μs[10]。
   使用单极性输出时,采用+5 V供电;双极性输出时,采用±5 V供电。在此需要用到双极性输出,基准电压源选用LM336-2.5,负电压基准采用反相放大方式产生。为避免外电路对板内数字电路的干扰,需要对数字部分进行光电隔离。具体电路如图3所示。
201051518215988.gif

2.4 其他模块
    其他模块主要包括电源模块和通信接口模块。由于该控制器采用单+5 V供电,因此在内部需要进行电压转换,主要包括3.3 V、1.9 V和1.2 V以及-5 V和±12 V。其中3.3 V、1.9 V和1.2 V采用的是一般的LDO电压转换芯片,而-5 V和±12 V则采用开关电源MC34063。由于DSP要求3.3 V上电在1.9 V之前,在这里选用通过3.3 V转1.9 V的方法,既保证了上电顺序,又能提高电源的转换效率。
    通信接口模块包括1路CAN总线,1路RS232和2路RS422。设计时主要保证与系统的其他部分匹配,一般都采用通常的工业标准。
3 软件流程
    为了提高控制的精度和响应速度,在硬件电路基础上增加位置环和速度环。其中位置和位置增量数据通过RS422从外部编码器传入,速度值数据通过由QEP电路产生。此外丰富的模拟信号输入通道还可以增加电流环和其他反馈量,进一步提高系统的响应速度和稳定性。基本软件流程图如图4所示。
201051518215978.gif     系统上电后自动初始化各端口和相关变量,并等待接收上位机开始指令,接收到开始指令后进入准备状态。因为整个跟踪系统需要同步工作才能产生有效的数据,所以需要等待外部同步脉冲信号,在这里以外部中断的形式接收。然后逐步完成控制算法。当收到结束指令时完成所有工作。    本文给出了一种基于DSP和FPGA的光电跟踪系统伺服控制器的硬件结构和软件流程。实验证明,这种结构紧凑灵活,控制算法完全由控制器完成,使用CAN总线方式传输上位机指令,安全可靠,使计算机完全从工作现场解脱出来。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
kmzuaz
1楼-- · 2019-07-14 18:06
 精彩回答 2  元偷偷看……
qiufengsd
2楼-- · 2019-07-14 19:12
这个的控制精度怎么样
wengh2016
3楼-- · 2019-07-15 00:18
伺服电路怎么设计的
hellosdc
4楼-- · 2019-07-15 01:03
DSP怎么不使用C5000呢
plsbackup
5楼-- · 2019-07-15 06:36
这个FPGA就可以实现。
kmzuaz
6楼-- · 2019-07-15 11:01
 精彩回答 2  元偷偷看……

一周热门 更多>