学海荡舟手机网

主页 > 实用文摘 > 教育文摘_12 > > 详细内容

基于在系统可编程技术的PC运动控制卡研究_传感与控制论文

摘要:介绍了在系统可编程(isp)器件及其优点,分析了pc多轴运动控制卡关键电路的作原理,并由高密度的isp器件设计实现,运动结果表明所设计的电路完全达到了设计要求。

    关键词:在系统可编程 双口ram 多轴运动控制卡

当今,数控系统正在朝着高速度、高精度以及开放化、智能化、网络化的方向发展,而高速度、高精度是通过控制执行部件(包括运行控制卡及伺服系统)来保证的。以往的运动控制卡主是基于单片机和分立数字电路制作的,用以实现位置控制、光栅信号处理等功能。由于器件本身执行速度慢、体积大、集成度低,并且结构固定,电路制作完成以后,无法改变其功能和结构。采用在系统可编程技术,应用isplsi器件开发的pc——dsp多轴运动控制卡,能够完全解决上述问题,适应数控系统发展的需要。

1 isp器件及其优点

isp(in-system programmability)器件,是美国lattice半导体公司于20世纪90年代初开发出的一种新型高密高速的现场可编程数字电路器件,具有在系统可编程能力和边界扫描测试能力,非常适合在计算机、通信、dsp系统以及遥测系统中使用。

    在系统可编程技术与传统逻辑电路设计比较,其优点在于:(1)实现了在系统编程的调试,缩短了产品上市时间,降低了生产成本。(2)无需使用专门的器件编程设置,已编程器件无须仓库保管,避免了复杂的制造流程,降低了现场升级成本。(3)使用isp器件,不仅能够在可重构器件的基础上设计开发自己的系统,还可以在不改变输入、输出管脚的条件下,随时修改原有的数字系统结构,真正实现了硬件电路的“软件化”,将器件编程和调试集中到生产最终电路板的测试阶段,使系统调试数字系统硬件现场升级变得容易而且便宜。

2 在系统可编程技术应用

2.1 系统描述

本所自主开发的多轴运动控制卡采用的是主-从式pc-dsp系统。pc机的主要任务是提供良好的人机交互环境;而dsp(数字信号处理器)则作为系统执行者,以高速度进行算法实现、位置调节和速度调节,然后经过16位的d/a将数据送给伺服控制单元。系统不但可以进行高速度高精度控制,同时也是一个dsp伺服系统的开发平台。

pc运动控制卡采用美国德州公司dsp芯片tms320f206作为系统的核心,运动控制卡由isp模块、dsp-pc通信双口ram模块、光栅信号输入模块、数/模转换电路模块四部分组成(见图1)。其中,isp模块中包括了可变地址的译码电路、输入输出缓冲/锁存器电路、11位的自动加计数器电路、双端口ram的控制电路以及pc机和dsp测验握手电路。本系统使用lattice公司的isplsi系列cpld(复杂可编程逻辑器件)来实现这一部分数字电路和逻辑控制电路,如图2所示。

    2.2 双端口ram访问控制的实现

对于本系统来说,pc机要发送控制指令和进行大量数据计算,数据交换应尽可能占用较少的机时和内存空间;此外,pc机的系统总线与dsp之间还要进行大量可靠的数据传输,它们均过多地占用cpu时间,导致cpu效降率低。使用双端口ram,交换双方cpu将其当作自己存储器的一部分,可保证高速可靠的数据通信。我们选用2k×8bit的idt7132,完全能够满足本系统中数据交换的要求。对双端口ram访问,一般有三种方式,即映射内存方式、dma方式和扩展i/o方式。映射内存方式访问双端口ram,不需要周转,访问速度快。实模式及保护模式下,能对确定内存空间进行访问,实现对ram任意存储单元读写;但在32位的windows98和windows nt操作系统下,不支持对确定内存空间的访问,要访问双端口ram必须编写复杂的硬件驱动程序,难度很大。dma方式访问端口ram,传送数据的速度灵活、扩展i/o方式访问双端口ram,可以按实现要求分配i/o端口,实现对双端口ram所有存储单元读写,这种方式软、硬件设计都很简单。所以,扩展i/o方式访问双端口ram是最佳方案。

从技术上来说,pci总线是最先进的,不仅速度快,而且支持即插即用等特性,但控制卡上双端口ram芯片是8们的idt7132,而pci总线是32位。为了简化设计,对pc机一方,采用了16位isa总线, 通过扩展i/o方式访问双端口ram。实际占用了两个i/o端口地址,一个作为计数器预置端口地址,一个作为双端口ram读/写端口地址。pc机在读/写存储器之前,首先要通过预置数端口,用输出指令将要访问ram存储器的起始地址置入11位可预置加计数器中;以后每访问一次读/写端口,执行一次读/写操作,计数器中的地址就自动加1,计数器输出指向ram的下一个存储单元。这样,简单地执行i/o指令,就可以传送一批数据。而下位的微处理器(dsp)采用的是存储器访问方式,它将idt7132的2k空间映射自己的外存储器中,实现对双端口ram的任意存储单元的访问。

在pc机和dsp对端口ram访问时,只要不是同时访问同一个存储单元,就允许两个端口对片内任何单元同时进行独立的读/写操作,而且互不干扰。但两个端口访问同一存储单元,会造成同时写或者一侧读一侧写的访问冲突,因此应避免这一访问冲突发生。由于片内逻辑促裁可根据两偶片选或地址信号同时到达的差别(小到5ns),对后到达一侧进行封锁,并同时输出一个busy(约25ns)的低电平脉冲信号,利用这一信号,便可解决访问冲突问题。一般来说,标准的isa总线周期为3个时钟周期,若主板isa总线时钟为8mhz,则一个时钟周期为125ns;若总线时钟为6mhz,则一个时钟周期为167ns,相应的16位总线周期时间分别为375ns和501ns。所以对于pc机来说,可以将busy信号接isa总线的i/ochrdy信号线,总线周期中会自动插入一个等待周期(最多可达10个时钟周期),直至busy信号拉高;同样,对于dsp,busy信号接dsp芯片的ready信号线,系统总线也会自动插入等待周期,从而避免了pc—dsp对双端口ram的共享冲突。

    无论是pc机还是dsp,传送数据后都需要通知对方及时提取数据,以免后面数据对前面数据覆盖,这就需要协调pc—dsp间的数据交换。通过中断控制器可实现数据交换过程中两个cpu之间相互中断。对于pc机写ram操作完成之后,pc机通过端口1将中断控制器2(dsp中断控制器)置位,dsp响应中断后进入中断服务程序。在子程序中,dsp可以通过端口4将中断控制器2复位。同理,dsp也可向pc机发中断,pc机响应中断后进入断服务程序。

2.3 器件选择和输入方法

选择可编程逻辑器件型号时,应注意到isp模块电路总共使用i/o管脚数目为52个,大约需要10~20个glb单元。所以选用isplsi1032e-100lj84芯片来实现isp模块电路,它的集成度达到6000门,具有64个i/o引脚,寄存器超过96个,32个glb单元,系统速度为100mhz,从资源和速度上能够满足该多轴运动控制卡的需求。同一芯片内的门电路、触发器、三态门等参数特性完全一样,抗干扰性能比原来分立器件构成的电路也有极大的提高,完全可能实现全数字的i/o电路。

使用lattice公司提供的数字系统设计软件ispexpert,逻辑设计可以采用原理图、硬件描述语言(hdl)以及两者混合采用三种方法输入。本设计采用abel—hdl语言输入和编写测试向量,并且使用自己开发的编程板完成对器件的编程和下载。

2.4 主时序设计

以pc机为例,访问双端口ram分以下两步完成:

第一步是向pc机i/o端口中的数据端口送数据d0~d12,d0~d10(访问ram的起始地址)送至计数器,d11作为可预置计数器的load信号;当d11为1时,计数器装入预置数。d12作为读写控制位,d12为1时,pc机对ram写操作;为0时,对ram读操作。

第二步是通过pc机isa总线的i/o端口读写rma,每完成一次读/写,计数器输出就指向下一个要访问的rma地址单元。时序如图3所示。

3 功能仿真

为了保证本系统设计的正确性,在对isp器件下载以前,首先对系统进行功能仿真。功能仿真的输入信号由abel-hdl编写测试矢量给出。仍以pc机访问双端口ram为例,系统的功能仿真波形图如图4所示。

    由图4可以看出,假定访问ram的0x006地址,在load(d11)信号到来后,当iow的上升沿到来时(见图4中1所示),预置数(oa3 oa2 oa1 oa0=0110,即十进制数6)写入计数器。然后对双端口ram进行读操作,pc读信号(ior)下降沿到来(见图4中2所示),这时ram的oel端(数据输出控制)为低电平(数据输出有效),cel端(ram片选)为低电平(选中),rwl(ram的读写控制)置高电平(读有效),pc机读取ram中的数据;当ior上升沿到来时(见图4中3所示),计数器输出地址加1(oa3 oa2 oa1 oa0=0111,即7),指向下一ram地址。在预置数重新写入计数器后(见图4中4所示),对双端口ram进行写操作。pc写信号(iow)上升沿到来,oel端置高电平,cel端置低电平,rwl置低电平(见图4中5所示),pc机将数据写入双端口ram中,计数器输出地址自动加1。同理,dsp访问双端口ram也可实现。

该运动控制卡经实际测试可以达到24mhz,时钟信号到达输出延迟为1.6ns,而isa总线的数据传输率为16mb/s,解决了数据传输的“瓶颈”问题,同时避免了以前的运动控制卡执行速度慢、体积大、集成度低,并且结构固定,电路制作完成以后,无法改变其功能和结构的缺点,抗干扰性能比分立器件构成的电路也有极大的提高。实际运行结果表明完全达到了设计要求。

实际上,dsp的应用也是本卡的核心技术之一,但是限于篇幅,不再介绍。