DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2398|回复: 1
打印 上一主题 下一主题

[待整理] 基于COMX的机器人伺服控制器设计

[复制链接]
跳转到指定楼层
楼主
发表于 2015-5-1 19:06:58 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
  摘要: 为了配合EtherCAT协议在机器人控制系统上的使用,本文提出了基于COMX和STM32的机器人伺服控制器解决方案。介绍了COMX模块的功能及结构,设计了基于FSMC的接口电路来控制COMX,并设计了COMX驱动和伺服控制器的应用软件。最后搭建实验平台以测试通信功能和分析转发延时,验证了本方案的可行性。
  关键词: 机器人;伺服控制器;EtherCAT;STM32; COMX

  Abstract: In order to match the use of EtherCAT protocol in the robot control system, this paper proposes a robot servo controller solution based on COMX and STM32.The functions and structure of COMX module are described. The interface circuit based on FSMC is designed to control COMX, and COMX driver and application software for the servo controller are designed. Lastly, an experimental platform is built to test the communication function and analyze the forwarding delay, and experimental result shows the feasibility of this solution.
  Key words: robot; servo controller; EtherCAT; STM32; COMX

引言
  目前,机器人控制系统的研究重点在开放式、模块化控制系统等方面,机器人控制器的标准化和网络化已成为研究热点[1];同时,机器人伺服控制器的研究也具有很大的应用价值。在伺服通信方面,传统的基于模拟信号传输的集散控制系统需采用数/模转换器,系统构成复杂、分辨率低、可靠性得不到保障且难以扩展[2]。为了解决此问题,本系统采用实时工业以太网EtherCAT协议作为机器人伺服系统的底层协议,同时构建伺服从站控制器。实时以太网技术简化了一般总线的互操作性和实时性等方面的问题,能满足控制网络传输的实时性要求,EtherCAT工业以太网技术以其网络实时性高、速度快、拓扑结构灵活等优点得到广泛关注[3]。本控制器采用德国赫优讯公司开发的嵌入式实时以太网模块COMX来完成EtherCAT通信的功能,采用STM32系列单片机(以下简称STM32)为主控制器,由STM32来控制电机和COMX的工作流程。
1 COMX介绍
  嵌入式实时以太网模块COMXCARE是德国赫优讯公司开发的特殊网卡,支持所有主流的实时工业以太网协议(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是netX500控制器和主机之间共享的存储区,应用程序通过DPM来实现EtherCAT数据通信、netX系统配置和诊断信息的获取[5]。在使用COMX模块进行通信时,主要完成主机对DPM操作程序的编写以及握手标记的设置等。EtherCAT网络上的数据是实时地映射到DPM的,同时应用程序通过DPM来发送和接收数据,整个DPM区域是16 KB的地址空间。
2 硬件设计
  本伺服控制器主要用于机器人伺服节点通信、关节电机的控制、I/O控制,以及传感信息的采集。主要硬件由COMX和STM32来组成。其中COMX负责EtherCAT通信,STM32采用FSMC机制来读写COMX。STM32是从站的伺服控制器主控芯片,主要进行电机控制和A/D、D/A转换模块的控制,以及负责管理COMX模块的运行流程。其中,伺服通信功能是基于EtherCAT协议进行组网来达到各模块互联和数据交换的目的,这样便于伺服节点的扩展和硬件结构的设计;电机控制方面,采用RS485接口控制SR518数字舵机;STM32的I/O口用于基本的输入/输出功能;



图2 硬件结构框图
  A/D通道可以连接传感设备用于机器人的感知,D/A通道用于对语音、电流等模拟量的输出;RS232是开发过程中的调试接口。其硬件结构框图如图2所示。



图3 硬件电路图
  STM32采用FSMC机制控制COMX,将COMX映射到STM32的内存空间中,对COMX的读写方式与读写SRAM相同[6]。嵌入式模块COMX通过一个50引脚插槽来连接主控芯片,插槽包含了与主机通信必备的控制线总线、16位数据总线和14位地址总线等。COMX与STM32的硬件电路如图3所示。COMX内存映射到FSMC的第一个存储块的第4个分区中,起始地址为0x6C000000,并且采用8位数据宽度来读写DPM存储区[7]。
3 软件设计
3.1 软件结构
  基于COMX的伺服控制器的软件框架如图4所示。伺服系统的主控芯片是STM32,在软件上采用了ST公司开发的底层固件库来操作硬件接口。在本系统中,主要有RS485通信模块、COMX驱动模块、A/D转换模块、D/A转换模块以及I/O模块。系统中通过COMX来实现EtherCAT通信,采用RS485来控制SR518舵机,同时采用这些模块的API来构建伺服驱动的应用程序。



图4 伺服驱动器软件框架
3.2 COMX驱动设计
  COMX驱动的执行流程,在硬件电路连接好的前提下,主要任务是寄存器的配置及通信流程的控制。首先,要配置STM32的相关引脚,将与COMX相关的数据线、地址线、片选线和读写信号线全部设置成复用推挽输出模式;然后,设置FSMC的相关寄存器,配置FSMC时钟、时序逻辑、读写模式、数据宽度等;接着,就是COMX启动检测阶段,由于COMX是独立网卡,内部有独立的系统,只有在它内部系统运行就绪后才能正常通信,这就需要检测COMX提供的一些标志寄存器的相关位,以此来判断内部系统的状态;最后,等COMX一切就绪后就可以正常通信,执行读写操作。
  COMX是独立的网卡设备,通过加载不同的固件程序,来实现各种实时以太网通信协议,本系统中使用的是EtherCAT从站协议。在COMX使用之前,要保证固件程序下载到Flash中,同时配置文件也要保存在Flash中。COMX上电启动时,会自动加载运行固件,并读取配置文件。下载固件时要使用赫优讯公司配套的PCI板卡和cifX Test软件工具,配置文件的下载需要用SYCON.net工具,具体步骤可以查看参考文献[6]。当固件程序和配置文件下载完毕后,就可以使用COMX网卡了。
3.3 COMX读写操作实现
  COMX读写模式是基于缓冲的握手方式,在DPM中,主机和netX500系统通过握手标记来划分DPM的数据读写权限,这些握手标记在握手通道中。每个通道都有一对CMD和ACK标记位,当这两个标记位相同时,主机可以写相应的DPM区域;当不同时,主机可以读相应的DPM区域。COMX发送数据的过程如图5所示。



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



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



图7 COMX接收数据过程



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



图9 伺服从站程序流程
4 实验测试
  本系统主要进行的实验如下:其一,对COMX伺服控制器的协议兼容性测试;其二,对COMX伺服控制器转发延时的测试。针对以上测试需求,搭建了相应的测试平台。在PC平台上安装netANALYZER应用软件和Wireshark软件。其中netANALYZER用于数据抓取和时间分析;Wireshark用于数据报分析和时间抖动分析[8]。在主站上使用德国赫优讯公司的cifX 50RE网卡和SYCON.net软件,在从站上使用STM32和COMX开发的伺服控制器。
  采用netANALYZER分析卡抓取数据包,并采用Wireshark软件分析数据,这样就可以测试通信的兼容性和功能的实现。同时也可以采用netANALYZER分析卡的时间分析功能去测试控制器的转发延时。为了分析总线在不同压力下的转发延时,进行了一组数据的测量,并转换为曲线。如图10所示,从站的转发延时基本不变。由于总线从站采用了硬件FMMU的映射机制来获取数据,这一过程延时很短,而且每个从站只处理与自己相关的数据,因此在转发过程中数据的增加基本不影响转发延时。



图10 转发延时变化曲线
结语
  机器人伺服控制器是机器人组成的关键部件,在使用EtherCAT作为机器人控制协议时,需要关节控制器能兼容EtherCAT通信。为了解决这个问题,本文设计了基于COMX和STM32的伺服控制器,从软件和硬件两方面进行了设计,同时实现了基于FSMC接口的COMX驱动以及EtherCAT通信过程。最后,采用测试工具分析了伺服控制器在不同BusLoad下的转发延时,通过实验分析验证了基于COMX模块的伺服控制器方案的可行性。
参考文献
[1] 刘淼,魏洪兴,陈殿生,等.一种机器人嵌入式网络化控制系统体系结构的研究[J].机器人,2006,28(2):107110.
[2] 孙立宁,王鹏飞,黄博.四足仿生机器人嵌入式多关节伺服控制器的研究[J].机器人,2005,27(6):517520.
[3] M  Konyev, F  Palis,Y  Zavgorodniy, et al. Walking robot ANTON: Design, simulation, experiments[C]∥ In Proceedings of CLAWAR 2008, 11th International Conference on Climbing and Walking Robots.
[4] Hilscher. COM and COMX Communication Module[EB/OL].http://www.hilscher.com/support_manuals.html.
[5] 李钢,王飞. STM32直接驱动RGB接口的TFT数字彩屏设计[J].单片机与嵌入式系统应用,2011,11(8):2830.
[6] Hilscher. netX DualPort Memory Interface Manual[EB/OL].
http://www.hilscher.com/support_manuals.html.
[7] 邓梧鹏.基于赫优讯嵌入式模块EtherCAT从站设备的设计[J].国内外机电一体化技术,2009(1):5861.
[8] 邹玉鞋.利用德国赫优讯netANALYZER分析仪研究实时以太网的时间抖动[J].国内外机电一体化技术,2008(7):1416.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-9-22 17:35 , 耗时 0.107212 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表