姚 庆, 倪骁骅
(1. 江苏大学 机械工程学院,镇江 212013;2. 盐城工学院 机械工程学院,盐城 224051)
装配机器手是用于装配生产线上对零件或部件进行装配作业的工业机器人的一种。由于装配操作的多样性,复杂性,单机操作的独立性,多机操作的协同性等特点,除了机器手本体机械部分设计外,装配机器手控制系统的硬软件设计等方面均有较高的要求[1]。为了满足多种类型的装配要求,并便于工人的现场调整操作,故要求控制系统能够针对不同的装配要求自由选择电机、处理器和软件模块等,实现模块化的控制系统设计,从而缩短设计周期,改变系统“一种工况要求,一次重新设计”的设计方法,满足多种工况下的控制要求,以便真正提高产品的性价比。
FPGA(Field Programmable Gate Array)技术为解决上述控制系统设计中的问题提供了相应的技术手段。FPGA的显著特点是可重复利用并且研发周期短,用户只需要用硬件描述语言编写系统功能由EDA工具转化成为BitStream下载文件,下载到FPGA中即可实现该系统功能[2]。如果要实现其他电路功能,只要修改源程序重新产生下载文件,从而达到在外围电路不变的情况下用不同的硬件电路实现各异的功能。
其关键是在实际工作时由相关可重配置处理器对FPGA进行再配置,构造出相应的硬件功能满足模块化的控制要求。这种可进化硬件结构和可重配置处理器设计高度集成整个系统,实现SOPC设计,满足模块化机械手控制系统的设计要求。
XILINX是全球领先的FPGA供应商。XILINX的主流FPGA分两类,一种侧重低成本应用,容量中等,性能满足一般设计要求的Spartan系列;另一种侧重于高性能的应用,容量大,性能满足各类高端应用的Virtex系列[3]。
本设计控制器核心配置XILINX Spartan3系列,型号为XC3S400的FPGA,采用PQ208表贴封装,具有40万等效门,已满足控制设计要求,支持完整的XILINX platform开发,支持XILINX软核MicroBlaze cpu,提供丰富的IP Core设计,方便应用模块化的机械手控制系统设计[3]。
装配机械手系统由操作机、视频采集器、控制系统以及相关硬件组成。操作机就是机械手的机械本体,完成基本抓取、搬运和放置等动作,并要考虑多种工况和相应的拼装要求。视频采集器主要由CCD和视频解码芯片SAA7113及相关硬件组成。
机械手的控制系统主要包括:中央处理器、步进电机驱动接口、与上位机或多机的通讯接口、调试和下载接口、传感器接口、输入输出的触摸屏接口以及相关稳压电源等部分。
1)中央处理器:以Spartan3系列的FPGA为机械手控制系统核心,完成模块化机械手的控制要求。
2)步进电机驱动接口:采用两相混合式步进电机39BYG系列,额定电压24V,引线数4根。步进电机驱动器为96560A V3型CNC驱动器,其中采用的TB6560AHQ是东芝公司最新设计生产的单片正弦细分两相步进电机驱动专用芯片。
3)上位机或多机的通讯接口:用FPGA软核MicroBlaze实现控制串口通信。OPB UART Lite是EDK中为MicroBlaze提供的一个串行口控制器。
4)调试和下载接口:采用JTAG模式下载二进制下载文件。用XILINX公司的ISE软件扫描出FPGA相应的下载链,以二进制下载文件(后缀为.bit)下载。
5)传感器接口:读取夹持器上经过A/D转换的压力传感器信息。
6)输入输出的触摸屏:K-TP178触摸屏与FPGA是通过RS232接口相连的,来实现数据的共享和对FPGA的输入、输出控制。
根据机械手系统模块化的要求,采用XILINX Spartan3系列,型号为XC3S400的FPGA,XILINX公司 Spartan3系列的结构由5个基本的可编程功能模块组成,分别是:可配置逻辑模块(CLB),输入输出模块(IOB),BlockRAM,乘法器模块和数字时钟管理器(DCM)。
处理器系统采用MicroBlaze处理器,是XILINX公司针对嵌入式处理器开发应用的一种32位嵌入式处理器内核,MicroBlaze是一个高度灵活可以配置的软核,可以根据自身设计需要,对MicroBlaze进行裁剪,用最少的资源完成设计需要。
MicroBlaze的基本特性:32个32位的通用寄存器,32位指令,3个操作数和两种地址模式,32位地址和单流水线结构[4]。
处理器MicroBlaze可添加的外设包含有Timer/PMW,UART,GPIO,IIC等IP Core,并预留了USB2.0,Ethernet MAX和其他常用外设模块,以便扩展,提高系统设计开放性。
使用XILINX ISE中的Xilinx Platform Studio(XPS)创建一个基于Spartan-3 XC3S400的处理器。完成硬件系统和软件系统的框架设计,主要由下列IP核组成:
由于处理器MicroBlaze软核特性,可以使用XPS,在一个已存在的处理器系统中添加额外的IP,扩展硬件系统,提高系统开放性,模块化。如图1所示。
图1 中央处理器设计图
基于FPGA的控制系统是一个软硬件复合的系统,其设计采用模块化的设计思想,围绕FPGA中央处理器所设定系统功能,用模块化方法实现。
1)初始化模块:实现初始化FPGA芯片配置,初始化MicroBlaze核及各IP Core。
2)步进电机驱动模块:数据输入(data_input模块)使用两个拨码开关及四个按钮开关 做为输入,对应h1_sel和in_allow两个信号线,四个按钮开关分别对应sw3,sw2,sw1,sw0。拨码开关实现工作模式的选择,按钮实现数据输入。数据输出采用14位输出,为data_out(13:0)。一方面输出的data_out(13:0)数据传输给字符型液晶显示屏1602显示(lcd_display模块),另一方面将data_out(13:0)数据传输给电机控制模块(machine_ctl模块),控制步进电机转动。在ISE环境下用Verilog语言编写module data_input,module lcd_display,module machine_ctl三个模块:
图2 RTL级视图
并由指定的ISE综合工具XST综合出RTL级视图,如图2所示。
3)UART模块:通过串行通讯接口达到与上位机或触摸屏交流通信的目的。OPB UART Lite是为MicroBlaze提供的一个串行口控制器,提供了一个发送通道和一个接受通道(全双工),16字符的发送FIFO和16字符的接收FIFO,并可配置波特率。根据具体的工况要求可与上位PC机或触摸屏相连。
4)GPIO模块:输入输出模块具有开放性。可以根据外接的输入输出设备进行扩展。可以方便的创建一自定义的外围设备,通过IO将其添加到硬件系统中。
5)IIC模块:设计一个 IIC 总线控制器,其主要作用是提供 uC(Microcontroller,微控制器或单片机)和 IIC 总线之间的接口,为两者之间的通信提供物理层协议的转换。IIC 总线控制器包含两个主要部分,一是微控制器接口,简称 uC 接口,二是 I2CMaster/Slave 接口,即 IIC 接口,通过这两个接口,IIC 总线控制器实现了微控制器外围总线和 IIC 总线的连接。
6)其他模块:包括网络连接模块Ethernx Max、USB接口模块和其他预留模块。
本文提出基于FPGA的模块化机械手控制系统,采用XILINX公司的Spartan3系列的FPGA,首先先用ISE软件中的XPS搭建MicroBlaze软核作为处理器核,构造各IP核,生成处理器系统和硬件IP网表。然后,基于FPGA可重构特性,利用IP核可重复使用,可自定义,独立性强的特点,将相关电机控制模块,通讯模块等模块从控制系统中添加或删除,增减机械手的功能,以适应不同工况要求,而无需重新设计硬件系统,提高控制系统的开放性,达到模块化设计要求。
[1] 倪骁骅,赵忠伟.嵌入式系统在装配机器人中的应用[J].盐城工学院学报(自然科学版),2009,22(2):8-11.
[2] 田耘,徐文波,胡彬,等.Xilinx ISE Design Suite 10.X FPGA开发指南[M].北京:人民邮电出版社,2008.
[3] Spartan3 Platform FPGA User Guide,Xilinx,2005.
[4] Xilinx.MicroBlaze Processor Guide EDK[Z].Http://www.xilinx.com.
[5] 龙霞飞,李仁发. MicroBlaze微处理器IP Core的结构及应用[J].微处理机,2004,(6):6-9.