摘要:以CH365型PCI总线接口和MCX314As型运动控制器为核心硬件,自主研发了基于运动控制器的PCI总线运动控制卡。该控制卡能够实现4轴位置、速度和S曲线的加减速控制,具有直线、圆弧、位模式插补功能及自动原位搜寻功能,同时具有4路信号输入和8路通用输出。
关键词:运动控制卡;PCI总线;MCX314As;CH365
1 引言
随着现代科技的发展,数控技术的发展趋势是开放式数控。开放式数控系统具有即插即用、可移植性、可扩展性和可互操作性特点。PC―NC是目前比较实用的一种开放式数控系统模式,PC―NC可归纳为3种:PC板插入到NC装置中;软件NC;NC板插入到PC中。其中,种方案保留原有的数控系统不变,插入的PC板主要承担人一机界面、编程和通信等功能,用以提高系统开放性。此方案为目前主流数控系统厂商采用,可靠性较高但开放性有限。第二种方案的实时性对PC的CPU要求很高。第三种方案是在PC硬件平台和操作系统的基础上,采用自主开发或购买的运动控制卡来实现数控机床所需的全部功能。其中PC进行非实时处理,实时插补控制由运动控制卡来承担,采用这种方案设计的数控系统开放性好,人一机界面灵活,非常适合非标准数控机床的开发。
文中给出了基于第三种方案的运动控制卡设计方案,采用CH365型PCI总线接口和MCX314As型运动控制器作为核心硬件,实现运动控制卡的4轴位置、速度、S曲线的加减速控制;直线、圆弧、位模式插补功能:自动原位搜寻功能以及4路信号输入和8路通用输出。与其他控制卡相比,其位模式插补功能、自动原位搜寻功能及电子齿轮设计有特色。
图1
2 PCI总线接口电路
目前,计算机总线技术已由ISA总线发展到PCI总线,PCI的含义是周边元件互连(peripheral component interconnect)。PCI局部总线是一种高性能的32位/64位地址/数据复用总线,总线时钟频率高达33MHz/66MHz,同步控制,猝发传送时数据传递速率高达132MB/s(32位)或264MB/s(64位)[1]。
实现PCI接口的方法有二种:使用复杂可编程逻辑器件或现场可编程门阵列(如CPLD/FPGA)和使用专用电路(如PCI9052和CH365等)。采用CPLD/FPGA实现PCI接口虽然灵活性高且性能较好,但其IP核的价格较高,而采用专用电路固然灵活性较差,但不影响其使用性能,尤其是可以利用器件生产厂商提供的配套工具,大大简化设计和缩短开发周期,从而降低开发成本。
目前市场上有多种PCI接口电路.国外的如PLX公司的:PCI90系列,Altera公司的eplok,AMCC公司的S5933等,这些接口电路的性能好、适应对象较广,但价格较昂贵。南京沁恒公司推出一款CH365型PCI接口电路,该器件性能完全满足PCI接口规范,虽然频率较低(16MHz),但可满足设计需要且使用方便,价格低于国外产品,性价比高。经比较,本设计采用CH365作PCI接口器件。
CH365具有以下满足本运动控制卡设计的性能特点:
实现基于32位PCI总线的从设备接口:
转换为主动并行接口,8位数据,16位地址,I/O读写,存储器读和写:
可以设定PCI板卡的设备标识(Vendol ID、De-vice ID,Class Code等);
支持以字节、字或双字为单位对I/O端口或者存储器进行读写:
非突发存取的实测速度高达7MB/s,读写脉冲宽度为30ns~240ns可选,满足运动控制卡要求:
支持长度达240字节的I/O端口:
支持低电平有效的本地中断请求,支持中断共享:
内置4μs~1ms的硬件计时单元,用于软件运行过程中的延时参考[2]。
3 运动控制器
目前传统的运动控制器多采用嵌入式高性能单片机(如MC6833l微控制器)或DSP(TMS320xxx或DSP56xxx)来实现,系统集成度不够高,电路复杂,且软、硬件研制周期长,性能一致性较难保证。采用专用运动控制器可以提高系统集成度、插补速度及可靠性,同时简化电路,缩短开发周期。
目前市场上有多种运动控制器,如美国的PMD公司,日本的NOVA、KY()PAL、SEEK公司的产品。本设计采用日本NOVA公司的MCX314As,它是MCX314的改进型,能够同时控制4个伺服马达或步进马达,能以脉冲串形式输出,对伺服马达和步进马达进行位置控制、插补驱动速度控制等。具有许多突出功能。
(1)以固定速度或加/减速度输出指定数量的脉冲达到定量驱动;连续输出驱动脉冲,直至高位的停止命令或外部的停止信号有效时停止实现连续驱动。用于快速归零原点开关搜寻、扫描操作、控制马达旋转连续驱动速度等。
(2)设定各线段的加/减速曲线为定速、直线(梯形)加/减速或S曲线加/减速,使用S曲线加/减速可使运动更平滑,但降低了总速度。
(3)每个控制轴都有2个用于控制当前位置的32位可逆计数器,一个是在器件内部管理驱动脉冲输出的逻辑位置计算器,另一个是管理来自外部编码器脉冲的实际位置计数器;另外每个轴还有2个32位比较寄存器,用于比较逻辑位置计数器和实际位置计数器的位置大小,可作为软件限位控制。
(4)可以任选2轴或3轴,进行直线插补、圆弧插补、位模式插补驱动。插补坐标范围是从当前位置到一8,388,608~+8,388,608之间,在整个指定的直线插补范围内的插补精度是+0.5LSB.插补速度范围是1pps~4Mpps;位插补驱动可以产生任何插补曲线;同时可以进行直线插补→圆弧插补→直线插补的连续插补驱动,连续插补时达2Mpos。
(5)加/减速驱动的定速开始时、定速完毕时、驱动完毕时、位置计数器和比较器之间的大小关系变化时均会产生中断。此外,连续插补、位模式插补发生下一个数据请求时位置限制也会产生中断。
其他功能主要有外部信号控制的驱动操作、脉冲输出/输入方式的选择、硬件限制信号输入、紧急停止、每轴具有8个通用输出信号和4个通用输入信号、驱动状态的输出[3]。
4 控制卡系统设计
4.1控制卡硬件结构设计
控制卡硬件结构如图1所示。PCI端的主要信号有地址、数据多路复用的输入/输出信号(AD[3l-O])、总线命令和字节使能多路复用信号(CBE[3-O])、奇偶校验信号(PAR)、帧周期信号(FRAME)、发起设备准备好信号(IRDY)、目标设备准备好信号(TRDY)、初始化设备选择信号(IDSEL)、设备选择信号(I)EVSEL)、时钟输入信号(CLK)、复位信号(RST)和中断信号(INTA)。这些信号完全符合:PCI规范的要求。
控制卡本地端使用的信号主要有双向数据信号(D[7-0]),地址信号(A[14―0]),独立输出控制信号A15,I/O端口读/写控制信号(IOP_RD,IOP_WR)及中断信号(INTA)。CH365在I/O读写控制时只用到8根地址线A[7―0]。在本系统中,低4位地址信号A[3―0]作为MCX314As中寄存器的地址信号直接连到MCX314As,高4位A[7―4]作为译码电路的输入信号来产生MCX314As的片选信号,A[14―8]空闲不用,独立输出控制信号A15作为控制是否启用电子齿轮电路的选通开关信号。
对于MCX314As,其RSq、端与CH365共用,该输入把:MCX314As的RESETN置为低电平且大于4周期以上时,执行复位。CS端为MCX314As的片选信号,由CPLD中的译码电路模块产生。H16L8端接地,设置电路处于8位数据总线访问方式,这是因为CH365的数据传输是8位。也正因为这样,本系统只用到MCX314As的16位数据总线D[15:0]中的D[7:0],而D[15:8]要经高电阻接至+5V。RD和WR分别为MCX314As的读、写信号线,当它们为低电平时,可以对MCX314As进行寄存器的读写操作。需要特别注意的是由于本系统采用8位数据传输,所以对于MCX314As中的16位寄存器分为高8位和低8位地址,读写操作必须访问2次。A[3:0]用来选择MCX314As的寄存器地址。BLTSYN连接MCX314As忙信号,处于低电平时不能执行写入命令。MCX-314As只有一个中断INTN,所有中断源都需进行“或运算”后输出到中断信号端口。与其他运动控制卡相比,本运动控制卡的特色是具有位插补功能、自动原位搜寻功能及电子齿轮设计。
与直线、圆弧插补相比,位插补不是由几个参数和指令来产生任一特定的运动控制(如直线、圆弧等),它需要由上位机提供所有的插补数据。而这种插补模式却有很大的适应性,它对插补数据没有任何形式的限制,这无疑为实现样条插补、特殊函数曲线插补提供了方便,使得本运动控制卡在加工复杂轮廓曲线的工件时有很大的优越性,尤其适用于仿形机上的应用。由于位插补需要大量的插补数据,因此如何生成和管理这些数据就成为位插补模式应用的关键。一般来讲,插补数据都是由上位机提前生成的,这样,如何管理这些数据使其能及时写入而让插补连续进行就成为本设计系统的一个关键。针对这些数据“先进先出”的特点.本设计系统采用队列管理机制,并结合MCX314As中的堆栈计数器(SC),利用中断不断地将插补数据写入MCX314As中的4个(正反向各2个)数据缓冲区,从而保证了位插补的连续性。位插补的终止有2种方式:向正反方向各2个缓冲区都写入l;上位机停止写入数据。
自动原位搜寻功能有助于机床快速归零到机床参考点。在此功能下,设计系统按选定轴负方向高速驱动至原点附近,然后以低速驱动直到原点信号或编码器Z信号激活而停止。再以设定的驱动速度往正方向快速归零到机床参考点。与其他控制系统的通过程序实现机制相比,该功能更为简单方便。
在3轴极坐标螺旋仿形加工中,要求其中2轴(极径、极角)按工件外形轮廓曲线联动插补。第三轴按设定的螺距跟随极角坐标轴进给。在一般三轴加工中,上位机发送来的加工数据都为3维增量坐标,这里的第三轴增量坐标数据由设定的螺距决定,而M(2X314As的速度是按合成速度来控制的,这样就会出现下述情况:当粗加工螺距设定很大时。第三轴数据值就大,速度分量也很大,导致其它2轴速度分量大大降低,影响加工效率与质量。考虑到这种情况,本系统基于电子随动原理设计了电子齿轮,1轴可以按设定的比率从动于其他3轴中的任意l轴(类似机械齿轮传动),也可以解除这种从动关系的设定。在电子齿轮关系机制下,上述的3轴极坐标螺旋仿形加工就只需2轴数据,而第三轴按设定的传动比率跟随前者中的某一轴,从而理想地解决了这个难题。
为了提高反馈脉冲的分辨率,本设计系统还采用了4倍频电路设计,对电动机的编码反馈脉冲进行4倍频处理。
为了提高板卡的集成度,本系统使用VHDL硬件描述语言在(2PLD(MAX7000)中实现系统所需的一些外围电路。如地址译码(用于产生M(2X314As的片选信号)、4倍频电路、电子齿轮电路、速度倍率手轮译码等,限于篇幅,不再介绍。
系统对电机的控制脉冲由MCX314As产生,并根据需要选择是否采用电子齿轮传动方式,然后经差分驱动输出驱动器产生差分驱动输出,既可以控制数字式交流伺服驱动器,也可以控制步进电机驱动器。电机编码器反馈信号(A、B、Z)经过高速光电隔离后输入CPLD,经过4倍频后传输给MCX314As的实际位置寄存器,用于位置显示和软件限位。通用输出信号经过74LS06型输出缓冲器输出。外部反馈脉冲(如超程限位信号、原位搜索信号等)及外部手动控制信号要经过光电隔离才能输入MCX314As。
本系统采用MCX314As默认的16MHz频率作为时钟信号。该时钟决定了每个轴的正/负方向的驱动脉冲时间周期。图2示出MCX314As的时钟电路[4]。
4.2控制卡系统的软件设计
控制卡系统的软件设计主要是板卡驱动程序设计、CPLD硬件语言描述程序和MCX314As功能驱动函数设计。本系统的驱动程序主要是围绕(2H365来实现该板卡与PC的接口功能,选用DriverStudio 2.6开发工具,快速有效地开发了在Windows环境下用户级的WDM设备驱动程序,向该板卡的运用程序提供I/O基址、中断号等。CPLD硬件语言描述程序是用VHDL编写的,主要实现M(2X314As的片选信号、4倍频电路、电子齿轮电
路、速度倍率手轮译码等外围电路功能。MCX314As的功能驱动函数设计是用于MCX314As的初始化、速度和加速度设置、直线插补、圆弧插补、归零搜索(1IOME)、硬件限位、位插
补、数字信号的输入/输出和中断信号处理等功能函数设计。限于篇幅,这里只给出位插补的程序流程,如图3所示。
5 结束语
使用高集成度的MCX314As型运动控制器能实现4轴控制或3轴联动的位置、速度、加速度控制,并能实现直线、圆弧、位3种模式的连续插补,具有接口简单、易于编程、工作可靠的特点。采用CH365作为PCI―ISA的桥接口,大大简化了PCI接口的设计。与其他以DSP或微控制器为控制核心的运动控制器相比,本设计虽然在功能多样性和灵活性上不如后者,但具有可靠性高、实时性好、适合列表曲线仿型加工时犬数据量快速连续加工的特点。