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

供稿:赫优信(上海)自动化系统贸易有限公司

  • 关键词:赫优讯,机器人,伺服控制器,EtherCAT,STM32,,COMX
  • 摘要:为了配合EtherCAT协议在机器人控制系统上的使用,本文提出了基于COMX和STM32的机器人伺服控制器解决方案。介绍了COMX模块的功能及结构,设计了基于FSMC的接口电路来控制COMX,并设计了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模块的伺服控制器方案的可行性。
  编者注:本文为期刊缩略版,全文见本刊网站www.mesnet.com.cn
参考文献
[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.
刘冬(硕士),主要研究方向为嵌入式系统,机器人控制;闵华松(教授),主要研究方向为嵌入式系统与SOPC、机器人网络控制系统与中间件;杨杰(硕士),主要研究方向为嵌入式系统。

发布时间:2013年7月12日 16:05  人气:  
相关链接

我有需求