服务电话:13714267958 QQ:1364937015  手机:
|

bsport体育

伺服驱动器 无刷电机 无刷驱动器

bsport体育:论述伺服驱动的实现方法

来源:bsport体育注册 作者:bsport体育登录

  论述伺服驱动的实现方法,通过对ARM+FPGA+DSP架构的多CPU的具体分析将其原理和优势展现出来;这种架构系统分工明确,提高了算法的实时性;提高了对外接口EtherCAT的实时性;提高了系统的稳定性。这种架构方案在天津电气科学研究院有限公司的伺服驱动器产品中进行了实验,现场的应用取得了良好的效果,体现出这种技术的现实意义。

  伺服驱动器是用来控制伺服电机的一种,一般是通过位置、速度和力矩三种方式对电机进行控制,实现高精度的系统定位。

  方法3是目前最先进的架构,前两种方法都有局限性。方法1和方法2这种单CPU架构的,一个CPU集算法、采集控制、通讯、显示功能于一体,当算法复杂度和实时性要求高时往往会顾此失彼。而方法3的架构中各个CPU的分工明确,ARM负责通信和显示功能,DSP负责算法运算,FPGA负责采集和控制。方法3的技术瓶颈是满足伺服的实时性要求需要几个CPU之间的高速数据通信,因此,如果能够找到一个高速的通信方式完全可以发挥各个CPU的特性,就像一个多核CPU在工作一样。

  本研究基于ARM+FPGA+DSP架构,采用并口通信的方法用于几个CPU之间的内部高速通信;此外伺服驱动器作为伺服系统的一部分还需要和主控器和编码器进行高速通信,来满足整个伺服系统的实时性要求,本架构采用EtherCAT和高速485接口用于和其他设备进行高速通信,描述了系统的原理架构和软件设计架构。

  2.1 此架构的中ARM负责通信和显示功能,DSP负责算法运算,FPGA负责采集和控制,如图1所示。FPGA采集相电压、相电流等物理量通过并口传给DSP;ARM通过EtherCAT接收主命令,通过高速485采集码盘的速度和位置等信息,通过并口传给FPGA中转下再传到DSP;DSP中执行伺服控制的算法,利用FPGA和ARM中采集的数据进行计算,把计算结果再通过并口传给FPGA和ARM,由FPGA和ARM进行相关的控制操作。

  2.2 此架构中几个CPU之间的双口RAM通信:用双口RAM中各位数据都是并行传送的,它通常是以字节(8位)的整数倍为单位进行数据传输,能完成数据的输入和输出。用双口RAM通信的原理如2所示。用双口RAM通信具有各数据位同时传输,传输速度快、效率高的特点,多用在实时、快速的场合。

  码盘的接口一般采用485接口,所以本也采用485的接口,用DMA来实现;伺服与主控制之间的接口有EtherCAT和PROFINET等协议,本采用应用比较广的EtherCAT接口。实时以太网EtherCAT是由倍福开发的一种工业以太网技术。它以高速率、高有效数据利用率、完全符合以太网标准、刷新周期短、同步性能好等优势,在伺服通讯领域中得到越来越多的应用。其原理如图3所示。

  主ARM通过STM32F407芯片完成上节介绍的与FPGA的并口通信、EtherCAT通信、485通信。STM32F407属于高端的32位ARM微,该系列芯片是意法半导体(ST)公司出品,其内核是Cortex-M4。本次设计充分利用其资源,实现了并口通信、therCAT通信、485通信。

  并口通信:STM32F407具有FSMC功能,灵活的静态存储器(FSMC)是内置大容量的外部存储器,使用这个,STM32可以与FPGA或者存储器进行并口通信。FSMC产生所有驱动这些存储器(把FPGA当做存储器来操作)的信号时序:16个数据线个地址线 数据总线XINTF连接框图

  EtherCAT通信和485通信:EtherCAT通信通过芯片ET1100来实现,ET1100是一款强大的EtherCAT从站ESC专用芯片,ET1100与ARM的接口采用SPI的方式;485通信速度为2.5Mbps,采用DMA的方式来实现,DMA的具体实现方法在下章软件设计中详述。

  FPGA采用Altera的CycloneIV系列FPGA,具有低成本、低功耗的特点,高达532个用户I/O,支持高达200MHz的DDR2SDRAM接口;DSP采用TMS320C28346,通过XINTF连接FPGA,实现双向并口通信。DSP的输入和输出采用中断控制,当FPGA准备好数据后,向DSP发送中断,DSP响应中断后读取相应地址的数据并向另外一段地址写入数据,FPGA等待60μs开始读数据。这样就能够完成两个芯片的并行通信。TMS320C28346型DSP芯片有16位XINTF数据总线,做为系统外部接口,它可以与各种外部存储器或者CPU实现无缝连接,如图5所示。在此系统中,将它与FPGA的16个用户可定义I/O管脚相连,用于实现16位并行数据的通信。TMS320C28346芯片可编程通用输入/输出引脚,任选一个和FPGA的用户I/O管脚相连,作为DSP的读写中断。

  中ARM与FPGA的并口通信用FSMC来实现,采用非总线复用的异步NOR闪存的方式来驱动,读时序如图6所示,写时序如图7所示。

  ARM与FPGA通信触发由外部中断来触发,当FPGA准备好数据后给ARM一个中断,中断周期为120μs,其中前60μs用于ARM从并口地址读取数据并且把要传给FPGA的数据写入相应地址,后60μs用于FPGA从并口地址读取数据,程序代码如下:

  ARM与码盘通信通过485来实现,通信速度为2.5Mbps,由于速度快采用一般的中断方式很难满足需求,本系统采用DMA来实现,程序代码如下:

  <

  FPGA与DSP并行总线通讯模块用于FPGA与DSP之间的并行总线数据交换,其中包含两段独立的地址空间,一个空间用于DSP读FPGA内部数据通道,另一个空间用于DSP向FPGA写数据通道。程序使用ALTERA提供的双口RAM的IP核。程序模块图如图8所示。

  FPGA与DSP并行总线通讯模块主时钟CLK的频率应是DSP总线M,这个时钟由FPGA内部的PLL锁相环生成。由于DSP的地址总线位以上,ADDR_DSP连接DSP地址总线的低位。RD_DSP连接DSP读使能,WR_DSP连接DSP写使能,如果有片选信号,DSP读写使能信号需要与片选信号取或后再与WR_DSP和RD_DSP连接。

  市面上的伺服驱动器CPU的架构主要有单ARM和单DSP。单ARM方案在通信和控制方面存在优势,但是复杂算法在实现的时候往往会因为运算耗时而降低整个系统实时性;单DSP方案中在算法中存下优势,但是在对外通信和控制方面往往会实现起来比较复杂。采用ARM+FPGA+DSP架构的多CPU方案完全解决了上述两种方法的弊端,充分发挥了各个CPU的优势。本文论述的架构在本公司的伺服驱动器产品中进行试验和应用,证明了“ARM+FPGA+DSP架构的多CPU架构”的可行性和技术优势。

  图9 CPU算法在线中的红色标记框图所示,整个伺服驱动器系统的CPU使用率在75.22%(A:空跑时优先级最低的计数器个数;B满算法运行时优先级最低计数器的个数;CPU使用率=(A-B)/A*100),此CPU架构达到了控制CPU使用率和提高系统效率的目标。

  如图10中的离线转速)PI不变时跟随情况,通道1是转速给定,通道2是电磁转矩,通道3是实际转速,通道4是实际A相电流。速度采集首先通过ARM的高速485采集码盘数据,并通过并口传给DSP和FPGA,经过算法处理再把数据下发给码盘,整个闭环过程通过并口传输,满足了伺服驱动器的算法实时性要求,此CPU架构达到了提高整个系统实时性的目标。

  关键字:引用地址:论述伺服驱动的实现方法上一篇:变频器谐波的由来、计算及抑制方法下一篇:永磁伺服电机的基本概念及主要传动参数

  51单片机 与计算机 通信 首先我们先来了解一下51单片机与计算机进行通信的实现方法。先来看一个实现这个功能的基本电路。 图中的P1就是 仿真 用的一个串口 接口 ,这个仿真电路要实现与计算机通信功能需要用到其他两个软件,一个是虚拟串口驱动软件,另外一个是串口助手软件,这两个软件在网上都很容易找到。我使用的是Virtual Serial Port Driver和丁丁串口助手,你也可以使用自己熟悉的软件,如果找不到或使用,安装这两个软件有问题可以私信。 虚拟串口驱动软件安装后配置两个成对的虚拟串口一个对应仿真电路中的串口接口,一个对应在串口助手软件上,这样就相当于将两个软件通过虚拟串口连接在一起了,将他们配置成相同的串口

  今天调试了stm32f407的ADC,一切顺利,然而用串口发送ADC结果时都是16进制数,看着很不爽。于是打算用用牛B的 printf 函数,按照以前的做法,在main文件中添加了 stdio.h ,写好了 printf 函数,沏杯茶,打算边品茶边坐等结果,然而这一坐竟坐了半天也没见结果 。一调试发现程序停在了printf函数处,百思不得其解,百度之,得答案,不敢独享,分享如下: STM32串口通信中使用printf发送数据配置方法(开发环境 Keil RVMDK) 标签: STM32 串口通信 printf方法 2011-06-29 23:29 在STM32串口通信程序中使用printf发送数据,非常的方便。可在刚

  摘要:介绍一种利用全球定位系统(GPS)并辅以复杂可编程逻辑器。

询价