《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于STM32的机械手运动控制器的实现
基于STM32的机械手运动控制器的实现
李向如,俞建定,汪 沁
(宁波大学 信息科学与工程学院,浙江 宁波 315211)
摘要: 本文以五轴机械手的设计实现为背景,提出了一种基于以Cortex-M4为内核的微处理器STM32F407构成的嵌入式运动控制器。本设计方案引入现场总线的通信方式,利用其高可靠性和高通用性的特点,使得运动控制器具有高开放性和模块化的特点。文中提供的以CAN总线控制多个私服电机的设计方法,使得硬件电路的设计大大简化,也使得通信的效率和可靠性大幅提升。测试表明,控制器的性能稳定可靠,能够满足机械手控制的需求,同时本设计对工业控制领域有着实际的应用指导意义。
Abstract:
Key words :

  摘  要: 本文以五轴机械手的设计实现为背景,提出了一种基于以Cortex-M4为内核的微处理器STM32F407构成的嵌入式运动控制器。本设计方案引入现场总线的通信方式,利用其高可靠性和高通用性的特点,使得运动控制器具有高开放性和模块化的特点。文中提供的以CAN总线控制多个私服电机的设计方法,使得硬件电路的设计大大简化,也使得通信的效率和可靠性大幅提升。测试表明,控制器的性能稳定可靠,能够满足机械手控制的需求,同时本设计对工业控制领域有着实际的应用指导意义。

  关键词: CAN;多电机系统控制;现场总线

0 引言

  现代科学技术的不断发展,极大地推动了不同学科的交叉与渗透,导致了工程领域的技术革命与改造。机械手是近代自动控制领域出现的一项新技术,并已成为现代机械制造生产系统中的一个重要组成部分。运动控制技术作为其中的核心组成部分,得到长足的发展,目前已成为自动化技术的一个重要分支[1]。随着现代控制技术的提高,运动控制器的出现在某种意义上满足了新型数控系统的标准化、开放性的要求,为各种工业设备、国防设备以及智能医疗装置自动化控制系统的研制和改造提供了一个统一的硬件平台。运动控制器是运动控制技术中最具代表性的产品,其性能优劣直接关系到生产的效率和质量[2]。在此背景下,本文设计了一种基于STM32F407,采用以太网、CAN总线通信方式的五轴机械手运动控制器。

1 机械手运动控制器总体方案

  目前市场上的运动控制器依据不同的原则有不同的分类。按照运动控制器的核心技术方案,主要有基于模拟电路型、基于微控制单元型、基于可编程逻辑(FPGA/CLPD)型、基于数字信号处理(DSP)型等;按照运动控制器的系统结构,可分为基于总线的运动控制器和独立应用的运动控制器以及混合型的运动控制器[3]。本设计方案采用基于微控制单元型和现场总线的设计方案,机械手运动控制器的系统结构如图1所示。

001.jpg

  由上图可以看出该系统主要是由手持器、控制电路、电机驱动器及电机等几部分组成。本文主要讨论其中的控制电路的设计,其运行过程大致是手持器通过以太网接口把相应的动作指令发给控制电路,该过程采用LWIP协议。然后控制电路在接收到指令之后,开始解析指令,再通过CAN接口给伺服电机驱动器发送指令,该过程采用CANopen协议。伺服驱动器在得到指令后开始驱动电机,在电机到达指定位置后停止。在整个系统运行过程中,如何实现对五个电机的实时控制是整个系统的关键。为了保证数据在传输过程中的可靠性和实时性,系统在设计时采用了CAN接口和以太网接口。

2 运动控制器的硬件电路设计

  由于本设计采用现场总线进行通信,所以硬件电路得到很大简化。本设计主要以STM32F407VGT6为处理中心,通过以太网与手持器通信,以CAN总线与电机驱动器通信。由图2可以看出,CANopen通信是在控制电路和电机驱动器之间实现的。STM32F407VGT6基于高性能ARM CortexTM-M432位RISC内核,可在高达168 MHz的频率下工作。Cortex-M4内核采用单一精密浮点单元(FPU),支持所有ARM单一精密数据处理指令和数据类型。该系列还能执行全套DSP指令,执行存储保护单元(MPU),用以加强应用安全性[4]。以太网采用的是PHY控制器DP83848,DP83848是一个强大的、功能齐全的单端口10/100物理层设备,提供低功耗管理,包括几个智能功率下降状态。这些低功耗模式可以提高整体产品的可靠性,减少功耗。CAN的硬件实现包括两个部分:与OSI模型中数据链路层和物理层分别对应的CAN控制器和CAN收发器。本文采用基于Cortex-M4内核的STM32系列芯片作为控制电路的MCU,该芯片内有CAN控制器,并且完全支持CAN 2.0协议。CAN收发器选用CTM1050T,其内部集成了CAN隔离及收发器件,将CAN控制器的逻辑电平转换为CAN总线的差分电平,同时具有隔离功能机ESD保护作用。运动控制器硬件结构示意图如图2所示[5]。

002.jpg

3 运动控制器程序设计

  运动控制器的程序部分主要分为两个模块:控制模块和通信模块。控制模块完成系统控制参数的计算和控制量的输出;通信模块一方面通过以太网接收手持器发送的动作命令,另一方面根据命令通过CAN总线来控制电机运动。运动控制器程序是整个控制系统的核心,首先调用?滋C/OS-II操作系统中的函数完成任务调度和内存管理,然后根据移植的LWIP协议完成以太网通信,最后是CAN总线和其他I/O的硬件配置。整个程序主要分为三个任务:以太网通信、数据处理和CAN通信。以太网任务主要完成与手持器的通信,接收上面发送的数据与指令,采用查询方式来完成数据的接收。数据处理任务根据以太网传送过来的数据和指令选择不同的数据处理子函数,通过这些子函数来执行相应的动作。CAN通信任务主要是与电机驱动器进行通信,把数据处理任务传送过来的动作指令转换成CANopen协议的指令形式进行通信。在这三个任务中,数据处理任务是最为核心部分,其流程图如图3所示。

003.jpg

  上图中的模式是指机械手的运动模式,其任务就是根据以太网中的指令来判断机械手需要在什么模式中运行,然后调用子函数运行以太网传递下来的数据,再通过CAN向驱动器发送指令。

4 结束语

  本文讨论了多轴运动控制器的设计,给出了基于ARM和现场总线相结合的控制方案。现场总线集数字通信、微机技术、网络技术于一身,从根本上突破了传统的点对点式的模拟信号或数字-模拟信号控制的局限,为真正的分散式控制集中式管理提供了技术保证。ARM处理器具有高性能、低功耗、体积小等特点,两者的结合可以缩短研发时间,提高研发效率,应用前景十分广泛。

  参考文献

  [1] 郗志刚,周宏甫.运动控制器的发展与现状[J].电气传动自动化,2005,27(3):10-14.

  [2] 李澄,赵辉,聂保钱.基于CANopen协议实现多电机系统实时控制[J].微电机,2009(9):53-56.

  [3] 张峰.嵌入式多轴运动控制器的研究与开发[D].青岛:山东科技大学,2008.

  [4] 吴世名.基于ARM的三轴机械手控制系统研究与设计[D].杭州:浙江工业大学,2013

  [5] 王峰.基于嵌入式系统的CANopen协议分析研究[D].天津:天津理工大学,2010.


此内容为AET网站原创,未经授权禁止转载。