《论述伺服驱动控制器的实现方法.docx》由会员分享,可在线阅读,更多相关《论述伺服驱动控制器的实现方法.docx(16页珍藏版)》请在第一文库网上搜索。
1、论述伺服驱动控制器的实现方法摘要论述伺服驱动控制器的实现方法,通过对ARM+FP服+DSP架构的多CPU控制器的具体分析将其原理和优势展现出来;这种架构控制器系统分工明确,提高了算法的实时性;提高了控制器对外接且EthCrCAT的实时性;提高了系统的稳定性。这种架构方案在天津电气科学研究院有限公司的伺服驱功位逼中进行了实验,现场的应用取得了良好的效果,体现出这种技术的现实意义。1、引言伺服驱动器是用来控制包逊机的一种控制器,一般是通过位置、速度和力矩三种方式对电机进行控制,实现高精度的系统定位。目前,伺服控制器CPU的架构主要有:1、单CPU架构ARM(AcornRTSCMachine)控制器
2、;2、单CPU架构DSP(Digitaisigna1Process)控制器;3、ARM+FPGA+DSP架构的多CPU控制器。方法3是目前最先进的架构,前两种方法都有局限性。方法1和方法2这种单CPU架构的控制器,一个CPU集算法、采集控制、通讯、显示功能于一体,当算法复杂度和实时性要求高时往往会顾此失彼。而方法3的架构中各个CPU的分工明确,ARM负责通信和显示功能,DSP负责算法运算,FPGA负责采集和控制。方法3的技术瓶颈是满足伺服控制器的实时性要求需要几个CPU之间的高速数据通信,因此,如果能够找到一个高速的通信方式完全可以发挥各个CPU的特性,就像一个多核CPU在工作一样。本研究基于
3、ARM+FPGA+DSP架构,采用并口通信的方法用于几个CPU之间的内部高速通信;此外伺服驱动器作为伺服系统的一部分还需要和主控器和剑骤进行高速通信,来满足整个伺服系统的实时性要求,本架构采用EtherCAT和高速485接口用于控制器和其他设备进行高速通信,描述了系统的原理架构和软件设计架构。2 .多CPU架构控制器原理分析2.1 此架构的控制器中ARM负责通信和显示功能,DSP负责算法运算,FPGA负责采集和控制,如图1所示。FPGA采集相电压、相电速等物理量通过并口传给DSP;ARM通过EtherCAT接收主控制器命令,通过高速485采集码盘的速度和位置等信息,通过并口传给FPGA中转下再
4、传到DSP;DSP中执行伺服控制的算法,利用FPGA和ARM中采集的数据进行计算,把计算结果再通过并口传给FPGA和ARM,由FPGA和ARM进行相关的控制操作。主控制器此架构控制器中几个CPU之间的双口幽1通信:用双口RAv中各位数据都是并行传送的,它通常是以字节(8位)的整数倍为单位进行数据传输,能完成数据的输入和输出。用双口RAM通信的原理如2所示。用双口RAM通信具有各数据位同时传输,传输速度快、效率高的特点,多用在实时、快速的场合。图2用双口RAM通信原理图2.2 此架构控制器的对外接口有EtherCAT和高速485。码盘的接口一般采用485接口,所以本控制器也采用485的接口,用D
5、MA来实现;伺服控制器与主控制之间的接口有EtherCAT和PROFINET等协议,本控制器采用应用比较广的EtherCAT接口。实时以太网EtherCAT是由倍福开发的一种工业以太网技术。它以高速率、高有效数据利用率、完全符合以太网标准、刷新周期短、同步性能好等优势,在伺服通讯领域中得到越来越多的应用。其原理如图3所示。3 图3EtherCAT报文4 .多CPU架构控制器硬件设计4.1 控制器ARM的设计主控制器ARM通过STM32F407芯片完成上节介绍的与FPGA的并口通信、EtherCAT通信、485通信。STM32F407属于高端的32位ARM微控制器,该系列芯片是意法半导体(ST)
6、公司出品,其内核是Cortex-M4o本次设计充分利用其资源,实现了并口通信、therCAT通信、485通信。聿NVIC的FSMC中断信号FSMJNE4:1来自酎使控制野Hd1KNOR存储ItS控制器FSMJN1(orFSMJNBU1FSMCC1K配置寄存器FSMC_A(25JFSMC_D15JFSMCNOEFSMCNWEFSMC-NWAFSMC1NCErFSMCJNT(3NAND/PC+存储器控制器FsmcjntrFSMCNCE4FSMCZNCE4FSMJN1oRFSMC_NIOWFSMCCN1OSFSMCNRE(FSMCeCD图4FSMC框图并口通信:STM32F407具有FSMC功能,灵
7、活的静态存储器控制器(FSMe)是内置大容量的外部存储器控制器,使用这个控制器,STM32可以与FPGA或者存储器进行并口通信。FSMC产生所有驱动这些存储器(把FPGA当做存储器来操作)的信号时序:16个数据线和16个地址线,原理如图4所示。图5数据总线XIN1t连接框图EtherCAT通信和485通信:EtherCAT通信通过芯片ET11OO来实现,ET1100是一款强大的EtherCAT从站控制器ESC专用芯片,ET1100与ARM的接口采用SPI的方式;485通信速度为2.5Mbps,采用DMA的方式来实现,DMA的具体实现方法在下章软件设计中详述。存储器操作周期A25:0)tNADV
8、、I/NExNOENWU高电平!D150gJF;1II/IJuH5:ff1i(ADDSET1),(DATAST1)卜./2HC1KjM期HC1K周期读取数据图6读操作时序4.2 控制器FPGA和DSP的并口通信设计FPGA采用AItera的CycIoneIV系列FPGA,具有低成本、低功耗的特点,高达532个用户I/O,支持高达200MHz的DDR2SDRAM接口;DSP采用TMS320C28346,通过XINTF连接FPGA,实现双向并口通信。DSP的输入和输出采用中断控制,当FPGA准备好数据后,向DSP发送中断,DSP响应中断后读取相应地址的数据并向另外一段地址写入数据,FPGA等待60
9、s开始读数据。这样就能够完成两个芯片的并行通信。TMS320C28346型DSP芯片有16位XINTF数据总线,做为系统外部接口,它可以与各种外部存储器或者CPU实现无维连接,如图5所示。在此系统中,将它与FPGA的16个用户可定义I/O管脚相连,用于实现16位并行数据的通信。TMS320C28346芯片可编程通用输入/输出引脚,任选一个和FPGA的用户I/O管脚相连,作为DSP的读写中断。5 .多CPU架构控制器软件设计5.1 控制器ARM的软件设计控制器中ARM与FPGA的并口通信用FSMC来实现,采用非总线复用的异步NOR闪存的方式来驱动,读时序如图6所示,写时序如图7所示。A25:0N
10、ADVNExNOENWED15:0存储器操作周期IHC1KFSMC输(DATASTHC1KI.1IIII-JI(ADDSET1)!HC1KMJM图7写操作时序并口通信的地址选择使用了FSMC的BANK1的子板块2,具体程序代码如下:p.FSMC_AccessMode=FSMC_AccessModc_A;FSMC_NORSRAMTni!Structure.FSMC_Bank=FSMC_Bank1_N0RSRAM2;FSMC_NORSRAMCmd(FSMC_Bank1_N0RSRAM2,ENAB1E);ARM与FPGA通信触发由外部中断来触发,当FPGA准备好数据后给ARM一个中断,中断周期为12
11、0PS,其中前60s用于ARM从并地址读取数据并且把要传给FPGA的数据写入相应地址,后60s用于FPGA从并口地址读取数据,程序代码如下:pBuf=(s16*)EXTSRAMADDR31;for(i=31;i91;i+)readFPGA_TO_ARMi=*pBuf+;pBuf=(s16*)EXT_SRAM_ADDR+41;for(i=41;iDR);/串口3接收DMADMA1ni!Structure.DMAMemoryOBaseAc1dr=(uint32_t)UART3DMARxBuffer;DMAInitStructure.DMAPeriphera1BaseAddr=(uint32t)(&
12、(USART3-DR);/串口3发送DMADMA-TnitStructure.DMA-MemoryOBascAddr=(uint32_t)UART3_DMA_TxBuffer;5.2 控制器FPGA的软件设计FPGA与DSP并行总线通讯模块用于FPGA与DSP之间的并行总线数据交换,其中包含两段独立的地址空间,一个空间用于DSP读FPGA内部数据通道,另一个空间用于DSP向FPGA写数据通道。程序使用A1TERA提供的双口RAM的IP核。程序模块图如图8所示。ParameterVa1ueTyPeDNFRRAMDEPT131DNFW_RAM_DEP1131SignedIntegerSigneci
13、IntegerDNFC1KRESETDNFR_OPVdnfr_ram_deADDR_DSP70RDDSPWRDSPRDEN_FPGAWRENFPGADNFWJPVdnfw_ram_depth,0150iist1图8FPGA程序模块图FPGA与DSP并行总线通讯模块主睦电C1K的频率应是DSP总线读写频率的4倍以上,一般选取120M,这个时钟由FPGA内部的P11锁相环生成。由于DSP的地址总线一般为16位以上,ADDR_DSP连接DSP地址总线的低位。RD.DSP连接DSP读使能,WR_DSP连接DSP写使能,如果有片选信号,DSP读写使能信号需要与片选信号取或后再与WR.DSP和RD.DSP
14、连接。5.3 控制器DSP的软件设计DSP28346芯片通过外部接口(XINTF)来读写外扩存储单元,本系统中即为FPGA的双口RAM空间。DSP28346的XINTF是一个非复用的异步总线。在配置XINTF时,应该检测内部XTIMC1K所需要的与SYSC1KOUT有关的比例。通过写XINTFCNF2寄存器的XTIMC1K位,可以将TIMC1K配置成与SYSC1KOUT相等或者等于SYSC1KOUT2oXINTF的所有访问从XC1KOUT的上升沿开始,而外部逻辑受到XC1KOUT时钟的控制。通过写XINTFCNF2寄存器的C1KMODE位,可将XC1KOUT配置成与内部XINTF时钟XTIMC1K成比例的频率。程序代码如下:XintfRegs.XINTCNF2.bit.XT1MC1K=O;XintfRegs.XINTCNF2.bit.WRBUFF=3;XintfRegs.XINTCNF2.bit.C1KOFF=O;XintfRegs.XINTCNF2.bit.C1KMODE=O;XintfRegs.XINTCNF2.bit.BY4C1KM0DE=1;Xintf