站内文章搜索:

 

 行业资讯 
 电子基础 
 汽车电子 
 家电维修 
 手机数码 
 通信网络 
 PLC工控 
 LED照明 
 安防电子 
 消费电子 
 电源电池 
 嵌入式系统 
 EDA技术 
 音响技术 
 医疗电子 
 半导体 
 光伏技术 
 SMT技术 
 传感器 
 电工电气 
 单片机 
 EMC EMI 
 电机控制 
 光电显示 
您现在的位置: 电子之家 >> 电机控制 >> 正文   更新时间:2014/8/13 0:22:16  点击数:2001

基于COMX的机器人伺服控制器设计

分享此文章:

摘要:为了配合EtherCAT协议在机器人控制系统上的使用,本文设计了基于COMX和STM32的机器人伺服控制器解决方案。首先介绍了COMX模块的功能及结构,然后设计了基于FSMC的接口电路来控制COMX,并基于硬件之上设计和实现了COMX驱动和伺服控制器的应用软件。最后搭建实验平台测试通信功能和分析转发延时,通过实验手段验证了本方案的可行性。

关键词:机器人;伺服控制器;EtherCAT;STM32; COMX

Design of robot servo controller based on COMX

Abstract: In order to match the EtherCAT protocol in the use of robot control system, this paper introduces a solution of robot servo controller based on COMX and STM32. Firstly COMX module's functions and structure are described, then the interface circuit based on the FSMC to control COMX is designed, while COMX drive and servo controller application software based on the hardware are realized. Lastly, a experimental platform is built to test communication function and analyze the forwarding delay, and the experiment shows the feasibility of this design.

Key words: robot; servo controller; EtherCAT; STM32; COMX

0 引言

目前机器人控制系统的研究重点在开放式、模块化控制系统等方面,机器人控制器的标准化和网络化已成为研究热点[1],同时机器人伺服控制器的研究也是具有很大的应用价值。在伺服通信上,传统的基于模拟信号传输的集散控制系统需采用数模转换器,系统构成复杂、分辨率低、可靠性得不到保障且难以扩展[2]。为了解决此问题,本系统采用实时工业以太网EtherCAT协议作为机器人伺服系统的底层协议,同时构建伺服从站控制器。实时以太网技术简化了一般总线的互操作性和实时性等方面的问题,能满足控制网络传输的实时性要求,EtherCAT工业以太网技术以其网络实时性高、速度快、拓扑结构灵活等优点得到广泛关注[3]。本控制器采用德国赫优讯公司开发的嵌入式实时以太网模块COMX来完成EtherCAT通信的功能,采用STM32为主控制器,由STM32来控制电机和COMX的工作流程。本文主要就伺服控制器的设计过程做出阐述。

1 COMX介绍

嵌入式实时以太网模块COMX-CA-RE是德国赫优讯公司开发的特殊网卡,它支持所有主流的实时工业以太网协议(EtherCAT、PROFINET IO、Ethernet/IP、PowerLink、Sercos III、Modbus TCP 等),其协议栈设计成可装载的固件存储在Flash中;在系统启动时,COMX 模块会自动装载保存在Flash 中的协议固件;COMX模块使用netX500网络控制芯片,主机通过双端口内存DPM接口来进行数据交互,通过对DPM读和写来实现网络通信及模块控制[4]。COMX的硬件结构如图1所示。

图1.comX结构框图

COMX模块与主机交互的接口是双端口内存DPM,DPM是netX控制器和主机之间共享的存储区,应用程序通过DPM来实现EtherCAT数据通讯、配置netX系统和诊断信息的获取[5]。在使用COMX模块进行通讯时,主要完成主机对DPM操作程序的编写以及握手标记的设置等。EtherCAT网络上的数据是实时地映射到DPM的,同时应用程序通过DPM来发送和接收数据,整个DPM区域是16KB的地址空间。

2 硬件设计

本伺服控制器主要用于机器人伺服节点通讯、关节电机的控制、I/O控制以及传感信息的采集。主要硬件由COMX和STM32来组成,其中COMX负责EtherCAT通信,STM32采用FSMC机制来读写COMX;STM32是从站的伺服控制器主控芯片,主要进行电机控制和A/D、D/A模块的控制,以及负责管理COMX模块的运行流程。其中伺服通信功能是基于EtherCAT协议进行组网来达到各模块互联和数据交换的目的,这样便于伺服节点的扩展和硬件结构的设计;在电机控制上采用RS485接口控制SR518数字舵机;其中I/O口用于基本的输入输出功能;A/D通道可以连接传感设备用于机器人的感知,D/A通道用于对语音、电流等模拟量的输出;RS232是开发过程中的调试接口。其硬件框架如图2所示。

图2.硬件框图

STM32采用FSMC机制控制COMX,将COMX映射到STM32的内存空间中,对COMX的读写方式和读写SRAM相同[6]。FSMC是集成在STM32F系列芯片上的外部存储器控制接口,FSMC能控制两种存储器: NOR Flash/SRAM控制器、 NAND Flash/PC卡控制器。嵌入式模块COMX通过一个50PIN插槽来连接主控芯片,插槽包含了与主机通信必备的控制线总线、16位数据总线和14位地址总线等;COMX与STM32的硬件电路图如图3所示,由电路图可知COMX内存映射到FSMC的第一个存储块的第四个分区中,起始地址为0x6C000000,并且采用8位数据宽度来读写DPM存储区[7]

图3.硬件电路图

3 软件设计

3.1 软件结构

图4.伺服驱动器软件框架

基于COMX的伺服控制器的软件结构如图4所示。伺服系统的主控芯片是STM32,在软件上采用了ST公司开发的底层固件库来操作硬件接口。在本系统中,主要有RS485通信模块、COMX驱动模块,A/D模块、D/A模块以及I/O模块。系统中通过COMX来实现EtherCAT通信,采用RS485来控制SR518舵机。同时采用这些模块的API来构建伺服驱动的应用程序。

3.2 COMX驱动设计

COMX驱动的执行流程如图5所示,在硬件电路连接好的前提下,主要工作还是寄存器的配置及通信流程的控制。首先,要配置STM32的相关引脚,在与COMX相关的数据线、地址线、片选线和读写信号线全部设置成复用推免输出模式;然后,需要设置FSMC的相关寄存器,配置FSMC时钟、时序逻辑、读写模式、数据宽度等;接着就是COMX启动检测阶段,COMX是独立网卡,内部有独立的系统,只有在它内部系统运行就绪后才能正常通信,这就需要检测COMX提供的一些标志寄存器的相关位,以此来判断内部系统的状态;最后,等COMX一切就绪后就可以正常通信,执行读写操作。

图5.Comx驱动流程

COMX是独立的网卡设备,通过加载不同的固件程序,来实现各种实时以太网通信协议,本系统中使用的是EtherCAT从站协议。在COMX使用之前要保证固件程序下载到FLASH中,同时配置文件也要保存在FLASH中。当COMX上电启动时会自动加载运行固件并读取配置文件。下载固件时要使用赫优讯公司配套的PCI板卡和cifX Test软件工具,配置文件的下载需要用SYCON.net工具,具体步骤可以查看文献[6]。当固件程序和配置文件下载完毕后就可以使用COMX网卡了,启动流程说明如下所示:

1) 读取DPM的0x0000地址的前四个字节,如果是“netX”就说明COMX固件程序已启动,通信通道0已经建立;如果是“BOOT'”那说明固件程序没有启动或者固件程序不存在。这里的“netX”表示COMX芯片上的一个实时系统;

2) 检测系统通道的握手位,读取位于0x0202处的8位寄存器,检测NSF_READY 位是否置为1,当置位时,系统通道可以接收数据,这样就可以与netX系统交互了;

3) 检测通信握手位,读取位于0x0310的32位寄存器ulCommunicationCOS,检测RCX_COMM_COS_READY和RCX_COMM_COS_RUN,当这两个标记位被设置后就说明netX系统已配置完成;

4) 启动通信,设置位于0x0308的32位寄存器ulApplicationCOS的RCX_APP_COS_APP_READY和RCX_APP_COS_BUS_ON两个标记位,同时还要设置RCX_APP_COS_BUS_ON_ENABLE才能使BUS_ON设置生效,设置完毕后要切换usHostFlags寄存器的HCF_HOST_COS_CMD标记位;

5) 等待ulCommunicationState 是 OPERATE状态。

3.3 COMX读写操作实现

COMX读写模式是基于缓冲的握手方式,在DPM中主机和netX系统通过握手标记来划分DPM的数据读写权限,这些握手标记在握手通道中。每个通道都有一对CMD和ACK标记位,当这两个标记位相同时主机可以写相应的DPM区域,当不同时主机可以读相应的DPM区域。

COMX发送数据的过程如图6所示,各阶段的具体操作说明如下:

0.netX系统将缓存中的数据发送到网络上;

1.主机获得DPM的写权限,将数据写到DPM的相应区域,;

2.写完后切换标记位,交出DPM操作权限;

3. netX系统将DPM上的数据复制到内部的缓冲区;

4.复制完后切换标记位,将DPM操作权交给主机;

5. netX系统新一轮的数据发送到网络上;

根据以上分析过程可以设计出COMX发送数据的驱动程序,其执行流程如图8所示。

图6 COMX发送数据过程

图7 COMX接收数据过程

COMX接收数据的过程如图7所示,各阶段的具体操作说明如下:

0.netX系统将网络上接收的数据复制到内部缓冲区;

1.主机获得DPM读权限,读取DPM相关区域的数据;

2.读完后切换标记位,交出DPM操作权限;

3. netX系统将内部的缓冲区的数据复制到DPM的相关区域;

4.复制完后切换标记位,将DPM操作权交给主机;

5. netX系统将新一轮接收的数据复制到内部缓冲区;

根据以上分析过程可以设计出COMX接收数据的驱动程序,其执行流程如图9所示。

图8 COMX发送数据流程图 图9 COMX接收数据流程图

3.4 伺服控制器软件流程

伺服从站控制器在启动后会初始化COMX模块,然后等待COMX就绪。在控制过程中首先会通过邮箱数据发送电机的设置参数,在参数设置完成后就会发送过程命令来启动电机控制,然后进入电机控制循环。在电机控制过程中可以使用邮箱数据发送过程命令来停止电机控制,在没接到停止命令时会循环接收过程命令,并解析后用于控制电机,直到控制结束。伺服从站控制器的程序流程如图10所示。

图10 伺服从站程序流程

4 实验测试

本系统主要进行的实验包括以下两个方面:其一,对COMX伺服控制器的协议兼容性测试;其二,对COMX伺服控制器转发延时的测试。针对以上测试需求搭建了相应的测试平台,本系统的实验方案及平台如图11所示。在PC平台上安装netANALYZER应用软件和Wireshark软件,其中netANALYZER用于数据抓取和时间分析,Wireshark用于数据报分析和时间抖动分析[8]。在主站上使用德国赫优讯的cifX 50-RE网卡和SYCON.net软件,在从站上使用STM32和COMX开发的伺服控制器。


图11. 测试方案

采用netANALYZER分析卡抓取数据包,并采用Wireshark软件分析数据,这样就可以测试通信的兼容性和功能的实现。同时也可以采用netANALYZER分析卡的时间分析功能去测试控制器的转发延时,在实验中为了分析总线在不同压力下的转发延时,进行了一组数据的测量,并转换为曲线,如图12所示。通过图12的曲线可知从站的转发延时基本不变,由于总线从站采用了硬件FMMU的映射机制来获取数据,这一过程延时很短,而且每个从站只处理与自己相关的数据,因此在转发过程中过程数据的增加基本不影响转发延时。


图12 转发延时变化曲线

5 总结

机器人伺服控制器是机器人组成的关键部件,在使用EtherCAT作为机器人控制协议时需要关节控制器能兼容EtherCAT通信。为了解决这个问题,本文设计了基于COMX和STM32的伺服控制器,从软件和硬件两方面做出了设计,同时实现了基于FSMC接口的COMX驱动以及EtherCAT通信过程。最后采用测试工具分析了伺服控制器在不同BusLoad下的转发延时,通过实验分析验证了基于COMX模块的伺服控制器方案的可行性。

参考文献:

[1]刘淼,魏洪兴,陈殿生等. 一种机器人嵌入式网络化控制系统体系结构的研究[J].机器人. 2006,28(2):107-110.

[2]孙立宁,王鹏飞,黄博. 四足仿生机器人嵌入式多关节伺服控制器的研究[J]. 机器人. 2005,27(6):517-520

[3]M. Konyev, F. Palis, Y. Zavgorodniy, A. Melnikov. Walking robot ANTON: Design, simulation, experiments[C]. In Proceedings of CLAWAR 2008, 11th International Conference on Climbing and Walking Robots.

[4]COM and COMX Communication Module[EB/OL].

http://www.hilscher.com/support_manuals.html

[5]李钢,王飞. STM32直接驱动RGB接口的TFT数字彩屏设计[J].单片机与嵌入式系统应用. 2011,11(8):28-30

[6]netX Dual-Port Memory Interface Manual[EB/OL]. http://www.hilscher.com/support_manuals.html

[7]邓梧鹏. 基于赫优讯嵌入式模块EtherCAT从站设备的设计[J]. 国内外机电一体化技术.2009,01:58-61

[8]邹玉鞋. 利用德国赫优讯netANALYZER分析仪研究实时以太网的时间抖动[J].国内外机电一体化技术. 2008,07:14-16

  • 上一篇文章:

  • 下一篇文章:
  • 相关文章

    没有相关文章

    推荐文章

    · 电动机单相运行产生的原因及预防措施
    · 变频器的作用及工作原理
    · 三角形接法与三相电动机星形的额定电流
    · 单相电机电容接线图
    · 几种用于3V供电的微型直流电机的驱动电
    · 用于Quad-rotor飞行器的无刷直流电机驱

    热门文章

    · 基于COMX的机器人伺服控制器设计
    · SVPWM在现代串级调速系统中的仿真研究
    · 基于模糊-PI双模控制的永磁同步电机控制
    · 无刷直流电机相序测定实用方法
    · 基于LM3S8962 ARM的神经元控制直流调速
    · 基于MPC07运动控制卡的步进电机控制系统

    | QQ:278237851 | 鲁ICP备14015669号-3 |

    电子之家 版权所有