首页 > 范文大全 > 正文

基于USB的伺服电机的通信研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于USB的伺服电机的通信研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:随着数控的发展,对伺服电机系统的通信提出了更高的要求。该文分析了基于usb伺服电机的总体构架,并详细研究了基于USB的伺服电机的通信,涉及到:USB接口的研制、电机旋转方向辨识的通信电路以及伺服电机的通信控制流程。

关键词:伺服电机;USB接口;通信研究

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2010)18-5084-02

Servo Electrical Machinery's Correspondence Research Based on USB

HUANG Cheng

(Guangdong Technical College of Water Resources and Electric Engineering, Guangzhou 510000, China)

Abstract: Along with the numerical control development, set a higher request to the servo electrical machinery system's correspondence. This article has analyzed based on the USB servo electrical machinery's overall skeleton, and the dissect based on the USB servo electrical machinery's correspondence, has involved: USB connection development, electrical machinery hand of rotation identification communication circuit as well as servo electrical machinery's correspondence control flow.

Key words: servo electrical machinery; USB connection; correspondence research

作为现代工业生产设备重要源之一的伺服电机,已经成为工业自动化阶段的基础设备,并广泛应用于各个高科技领域。要将伺服电机应用与数控系统领域,就需要对伺服系统提出改进要求,特别是在设计伺服电机的通信模块时,更应对数控系统的发展方向及其对伺服电机的要求加以充分考虑。

目前,在开放性数控系统中采用Windows操作系统,需要使用一种“PC+NC 控制卡”,但这种方案存在两个缺点:1) 需要增加硬件投资,成本大;2) 不同NC控制卡生产商之间存在兼容性问题[1]。因此,既要考虑不增加或尽量少增加系统硬件成本,又要利用Windows 操作系统的各种优点,使系统能完成实时控制任务,那么对现有的伺服电机系统结构进行改变就是一个顺势而为的思路。基于这个目标,本文采用了当前广泛使用的USB2.0协议作为通信接口,基于此接口,设计了指令存储缓冲区,提高伺服电机系统的指令传输响应时间。

1 基于USB的伺服电机的总体构架

目前,USB总线技术支持即插即用和热插拔技术,而且可以同时支持127个设备。因此,本文采用该总线作为电机系统与pc系统的通信接口,也就是说理论上最大可支持的伺服电机数目也是127个,这个数目对于一个数控系统来说,已经足够用了,而且即使出现接口数不够用的情况,还可以通过USB扩展口的方式进行扩展,极为方便。

在Windows 系统的数控系统上利用USB总线控制伺服电机,其工作原理与通常的数控系统类似,但这里数控系统的核心变成了PC系统,它来负责完成数控系统的核心功能。其任务流程为:首先,系统通过CNC核心产生指令文件,并利用USB2.0总线,将指令文件发送到挂载在USB总线上的各个伺服电机,再通过内存读写控制器RRWC,将指令文件逐个写入到目标指令缓冲区中。然后,实时控制处理器按照外部时序从目标缓冲区读取所需的目标指令,并执行以完成控制算法的任务。

2 基于USB的伺服电机的通信

2.1 USB接口的研制

本文研究将FPGA作为主设备控制从设备CY7C68013A,从设备的FIFO模式接口与主设备相连,采用Keril μVision2进行固件的开发,固件是控制硬件完成预期功能的一种辅助硬件。Keil C51是一种符合ANSI标准的,高效率C语言编译器,是专门为8051单片机设计的,可以生成存储空间小、,运行速度高的程序代码,因此,本文开发平台选用Keril μVision2软件,并采用C51开发语言来完成EZUSB固件程序的代码开发、仿真和调试[2]。设计固件程序主要源文件及其作用如表1所示。

其任务循环的流程实现如下描述:该函数用来初始化FX2,完成各个端点的初始化及其FIFO模式的设置,在开始任务之前或者FX2再次枚举之前被调用。在本文的设计里,将SLAVE FIFO接口的AUTO-OUT模式设置在FX的端点2上,将SLAVE FIFO接口的AUTO-IN模式设置在端口8上,考虑到指令数据输出量相对输入量会较大的情况,为保证在端点间,大容量指令数据可以顺利平缓传输,我们将输出端点2的缓冲区大小设置为3*1024B,而输入端点 8 的缓存区大小设置为2*512B,两个端点之间,没有CPU的指令干预,这样的设置也可以保证上位计算机有更多的时间进行处理。

2.2电机旋转方向辨识的通信

电路本文的编码器电路中,位置计数器是POSCNT寄存器,它对两相正交编码器信号进行上下沿边沿计数。方向指示寄存器是UPDN,电机转子的旋转方向用该寄存器来表示,同时位置计数器POSCNT 的计数方向也由它来表示。方向辨识的逻辑简图中两相正交编码器信号进行编码器电路后,被寄存三次,后两个寄存器值用来分别捕获QEA 的正、负跳变,QEB 的正、负跳变。每次编码器信号的跳变后,都会被寄存下来。两级寄存器分别寄存了当前QEn 的跳变状态及前一次QEn 的跳变状态[3]。旋转方向就可以通过这些跳变状态来检测出来。

图1表示了如何根据正交编码器输入的两路正交编码信号来判断伺服电机转子的旋转方向。得到伺服电机的旋转方向后,在每个正交编码器信号的跳变沿编码器检测模块对计数器进行操作。当检测到伺服电机正向旋转时,在编码器信号跳变沿编码器检测模块对计数器进行加1 操作,当检测到伺服电机负向旋转时,在编码器信号的跳变沿编码器检测模块对计数器进行减1 操作。由于在两路正交编码器的正负边沿编码器检测模块都进行计数器操作,因此伺服电机每转一圈计数器更改数为伺服电机光栅码的4 倍。在本文中,伺服电机每圈所产生的编码器计数值为8000。

2.3伺服电机的通信控制流程

包括初始化变量,时钟设定,中断初始化等。DSP 进入中断程序执行控制环的运算由外部中断源控制,电机伺服控制由中断服务程序来实现。在每个中断报务周期内,系统首先调节电流PI,然后完成参考电压矢量的传送,FPGA接收到传送来的电压矢量后,产生SVPWM 信号。图2为伺服电机通信控制主程序的流程图。

由于控制系统的外环频率响应比电流环慢很多,因此速度环的采样周期取为电流环采样周期的20 倍,每运行20 次电流环中断服务程序去运行1 次速度环控制算法,首先从FPGA 读取速度值,然后调节速度环PI,以更新转矩电流指令。

3 结束语

总之,采用USB实时通信技术的伺服电机系统随着计算机及网络通讯技术的进步与时俱进。目前,多种分布式运动控制系统已经面世,典型的有:Real-Time Ethernet、SERCOS、等。这些在分布式伺服电机系统中采用高速网络技术,产生了诸多优点,比如:系统应用更加灵活、系统整合控制效果更佳等等。

协同技术(synergy technology) 是伺服电机系统本质,因此伺服电机系统设计工程师需要整合多项不同的技术,来满足系统的应用需求。这些关键技术如数字控制、微处理器软硬件设计、运动控制、电力电子、自动控制、电机控制等等。而随着技术领域不断取得的巨大的进展,这样的系统整合所表现出的特质,将会更明显的以“实时多任务柔性控制技术”的方式呈现出来。

参考文献:

[1] 严帅,杨明,贵献国,徐殿国.基于 DSP 和 FPGA 的永磁交流伺服系统研究[J].微电机,2007(4):28-31.

[2] 张建勇,马建设,徐端颐,潘龙法.基于有限状态机的光存储伺服系统设计[J].光学技术,2007(3):12-16.

[3] 廖福成,刘贺平.多重采样离散时间系统的最优预见伺服控制器设计[J].北京科技大学学报,2007(5):542-547.