关键词:双口RAM;数控运动控制卡;接口电路设计
在高速单片机数据采集和处理系统中,随着采集数据量及数据处理任务的增加,对数据传送的要求也越来越高,依靠单片机自带的串口实现数据的串行传输已无法满足要求,必须要进行高速的并行数据传输。双口RAM能够方便地构成各种工作方式下的高速数据传送介质,解决数据传输低速引起的瓶颈问题。无论是并行处理网络中的数据共享,还是流水线方式的高速数据传输,双口RAM都可以发挥重要作用,从而保证数据通路的畅通。
一、IDT7005芯片
双口RAM除了数据存储功能外,还提供两个完全独立的端口,每个端口分别有自己的控制线、地址线和I/O数据线,允许双端口同时读写数据,适合于两个单片机以总线方式对存储空间的共享。
IDT7005是IDT公司生产的高速8kb的八位双端口RAM器件,它具有存取速度快、功耗低、可完全异步操作、接口电路简单等优点。IDT7005L具有两端完全对称结构(即两套完全独立的I/O控制线、地址线、数据线) 和仲裁中断旗语逻辑模块,使得IDT7005L成为真正的双端口RAM,允许两个控制器同时读取任何存储单元,但不允许同时写或一读一写同一地址单元。该芯片内部的功能结构如图1所示。
二、硬件电路接口设计
1. IDT7005L的旗语令牌传递法由于IDT7005具有两套独立的总线结构,可用多种方法解决两边对同一单元的争用问题。
一般可以利用双口RAM的BUSY信号,但当两端口对同一地址单元同时存取数据时,其中一个端口处于等待状态,对于高速数据传输来说,插入等待状态会降低数据传输效率,这在某些情况下是不能够接受的,此时可以利用IDT7005L提供的旗语电路。这里介绍最为常用的旗语令牌传递法。IDT7005L的旗语操作见表1。
IDT7005内部有八个独立于存储单元的锁存器,最多将8kb存储单元分为八部分,可用来指示是否相应的共享RAM正被使用。当一侧端口访问共享RAM时先向相应的锁存逻辑单元写入“0”,如读出“1”则表示共享RAM正被另一侧占用,直到另一侧端口释放令牌,此时读出的数据为“0”,可访问相应RAM。
另外,值得注意的是,对旗语进行操作,应先写后读,不要先读后写,以避免出现争用系统总线的现象。
2. 总体设计方案
接口电路设计的上位机采用工业控制机,AT89S52单片机作为下位机,ISA总线与双口RAM以及双口RAM与单片机的总体通信方案原理见图2。
(1) IDT7005芯片接口设计。由于共享RAM使用了存储器寻址,而旗语令牌的锁存逻辑单元使用了I/O寻址,所以SMEW信号和IOW信号相与后送给IDT7005的R/WR信号,同样,SMER信号和IOR相与后送给IDT7005的OER信号。对共享RAM和旗语令牌访问时片选信号分别采用CE 和SEM。ISA总线的A0~A12接到IDT7005的A0R~A12R作为地址线,A13~A19接到GAL20V8B的一组输入端。本试验中,共享RAM可配置在D0000H~DFFFFH,旗语令牌可配置在300H~3FFH。
(2) ispGAL20V8B的读写控制电路程序设计。通用阵列逻辑GAL是由可编程的与阵列、固定(不可编程) 的或阵列和输出逻辑宏单元(OLMC) 三部分构成。GAL芯片须借助GAL的开发软件和硬件,对其编程写入后,才能使GAL芯片具有预期的逻辑功能。GAL20V8B有八个I/O口、14个输入口、10个寄存器单元,最高频率超过100MHz。它通过程序来控制可编程阵列区的软连线,从而实现所需的逻辑电路。ISA总线接口卡上采用GAL20V8B芯片实现存储器地址范围选择、I/O地址选择、地址总线和数据总线的选通控制、ISA总线与双口RAM间的控制信号产生等功能。该系统所采用的控制逻辑的程序如下。
MODULE IDT7005 //模块IDT7005开始
TITLE‘IDT7005‘ //标题语句
ADA PIN 15;
IOW,IOR,SMEMW,SMEMR
PIN1,2,4,5; //输入管脚说明
A14,A15,A16,A17,A18,A19PIN7,8,9,10,11,13;
K1,K2,K3,K4PIN23,22,21,20;
OE,CE,RW,SEMPIN18,19,17,16;
S1= [A14,A15,A16,A17] ; //地址译码组合
S2= [K1,K2,K3,K4] ;
EQUATIONS //逻辑方程描述
WHEN (S1==S2) THENADA=1
ELSEADA=0;
! CE = ! ( SMEMW&SMEMR) &ADA&(A18&A19) ;
! SEM=! (IOW&IOR) &! (! A18#A19) ;
RW=SMEMW&IOW;
OE=SMEMR&IOR;
END //模块IDT7005结束
经烧写后的管脚功能图见图3。
三、结束语
通过双口RAM实现单片机与上位机数据通信接口电路的设计及其ISA模式应用,利用IDT7005芯片实现了数控机床运动控制卡主从式处理器间的通信,试验证明,该方法与串行和并行通信相比,具有速度快、数据传输可靠性高、抗干扰能力强、实现简单的优点,有很强的实际应用价值。