基于LonWorks和iButton技术的新型电子考勤装置
摘要:介绍了在系统可编程(ISP)器件及其优点,分析了PC多轴运动控制卡关键电路的作原理,并由高密度的ISP器件设计实现,运动结果表明所设计的电路完全达到了设计要求。
关键词:在系统可编程 双口RAM 多轴运动控制卡
当今,数控系统正在朝着高速度、高精度以及开放化、智能化、网络化的方向发展,而高速度、高精度是通过控制执行部件(包括运行控制卡及伺服系统)来保证的。以往的运动控制卡主是基于单片机和分立数字电路制作的,用以实现位置控制、光栅信号处理等功能。由于器件本身执行速度慢、体积大、集成度低,并且结构固定,电路制作完成以后,无法改变其功能和结构。采用在系统可编程技术,应用ispLSI器件开发的PC——DSP多轴运动控制卡,能够完全解决上述问题,适应数控系统发展的需要。
1 ISP器件及其优点
ISP(In-System Programmability)器件,是美国Lattice半导体公司于20世纪90年代初开发出的一种新型高密高速的现场可编程数字电路器件,具有在系统可编程能力和边界扫描测试能力,非常适合在计算机、通信、DSP系统以及遥测系统中使用。
在系统可编程技术与传统逻辑电路设计比较,其优点在于:(1)实现了在系统编程的调试,缩短了产品上市时间,降低了生产成本。(2)无需使用专门的器件编程设置,已编程器件无须仓库保管,避免了复杂的制造流程,降低了现场升级成本。(3)使用ISP器件,不仅能够在可重构器件的基础上设计开发自己的系统,还可以在不改变输入、输出管脚的条件下,随时修改原有的数字系统结构,真正实现了硬件电路的“软件化”,将器件编程和调试集中到生产最终电路板的测试阶段,使系统调试数字系统硬件现场升级变得容易而且便宜[1]。
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的应用也是本卡的核心技术之一,但是限于篇幅,不再介绍。 |