摘要:IDT7007是IDT公司推出的异步高速双端口RAM,利用它可以实现两个CPU之间的数据通信。文章介绍了IDT7007静态RAM芯片的结构、特点、功能和工作原理,并给出了典型的应用电路。
关键词:中断 仲裁 旗语通讯 IDT7007 双端口RAM
1 概述
IDT7007是IDT公司推出的32k×8b异步高速双端口静态RAM。它有两磁疗独立的地址线、数据线和控制信号线,允许两个控制器件中的数据通过共同连接的存储器来进行通信,这两个控制器可以是CPU和磁盘控制器,也可以是两个CPU。该双端口RAM允许两个控制器同时读取任何存储单元(包括同时读同一地址单元),但不允许同时写或一读一写同一地址单元。IDT7007具有如下特点:
●内含仲裁逻辑,可解决同时读写同一地址问题;
●具有中断逻辑,允许通过端口直接进行通信;
●带有旗语通讯逻辑,允许两个控制器共享资源;'
●采用主、从模式,可方便地扩展芯片数据宽度。
总之,IDT双端口RAM功能完善,易于软件编程和控制,速度也较快,非常适合于双CPU共享内存。同时,IDT双端口RAM还具有省电功能,当CE和SEM为高电平时,IDT双端口RAM能自动进入休眠模式。
IDT7007的主要性能如下:
●允许同时读取同一存储单元;
●可进行高速访问,商业级的访问时间可在15/20/25/35/55ns(最大)之间选择。
●功耗低,运行时功耗仅850mW,休眠时仅1mW;
●利用M/S模式可级联扩展数据宽度,当M/S为高时,BUSY信号为输出忙标志,当M/S为低时,BUSY信号则作为输入脚使用;
●具有片内端口仲裁逻辑和中断标志;
●片内硬件支持端口间的旗语通讯;
●各端口完全异步操作;
●与TTL电平兼容,采用5V(+10%)电压供电;
●采用68脚PGA、PLCC和80脚TQFP封装;
●工作温度范围为-40℃~+85℃。
2 引脚功能与内部结构
图1为IDT7007采用80脚TQFP封装的引脚排列。图2为其内部功能框图。各主要引脚功能说明如表1所列。
表1 引脚功能
引 脚 名 称 | 功 能 | |
左端口 | 右端口 | |
CEL | CER | 片选 |
R/WL | R/WR | 读/写 |
OEL | OER | 输出使能 |
A0L-A14L | A0R-A14R | 地址线 |
I/O0L-IO7L | I/O0R-I/O7R | 数据线 |
SEML | SEMR | 旗语通讯使能 |
INTL | INTR | 中断标志 |
BUSYL | BUSYR | 忙标志 |
M/S | 主/从选择 | |
VCC | 电源 | |
GND-C | 地 | |
N/C | 未用 |
表2 基本操作(A0L-A14L≠AOR-A14R)
输 入 | 输 出 | 功 能 | |||
CE | R/W | OE | SEM | I/O0-7 | |
H | X | x | H | 高阻 | 休眠模式 |
L | L | x | H | 数据输入 | 写存储器 |
L | H | x | H | 数据输出 | 读存储器 |
x | x | H | x | 高阻 | 输出不允许 |
3 功能与原理
IDT7007具有两套独立的地址线、数据线和控制信号线,允许双CPU各自独立访问同一套存储单元,其基本操作如表2所列。
从表2可知,当CE=SEM=H时,芯片电路自动进入休眠模式。此外,IDT7007还具有中断、仲裁、扩展以及旗语通讯等逻辑功能。
3.1 中断逻辑
在一个双CPU系统中,一般均需要互相通信,因而需要IDT7007中断逻辑进行中断处理。而IDT7007中断逻辑中的最后两个存储单元(7FFE,7FFF)可用作两端口的中断产生器。当CEL=R/WL=0时,写入7FFF单元,以使INTR中断有效(若BUSYL=0,则无效)。当CER=OER=0时,访问7FFF单元以清除INTR中断。同理,当CER=R/WR=0时,写入7FFE单元,INTL有效;当CEL=OEL=0时,访问7FFE单元并清除INTL中断,参见表3。至于7FFE和7FFF单元的内容,则可由用户自行定义,因为它们也是可寻址的RAM单元。
3.2 忙逻辑
在双端口RAM系统中,有时会发生双CPU同时访问同一存储单元的情况,分两种情况:第一种情况是一个CPU在读,而另一个在写,此时会读出一个错误的数据;第二种情况是两个CPU同时写,此时写入数据为两端口数据之合成。忙逻辑电路则专门用于解决此问题。忙逻辑敢称仲裁逻辑,它由一对地址相等的比较器、一对延时缓冲器和一个交叉耦合仲裁锁存器组成。当左右两端口同时写入或一读一写同一地址单元时,先稳定地址的端口通过仲裁逻辑电路优先进行读/写操作,同时内部电路使能对方端口的BUSY信号使之有效,并在内部禁止对方访问,直至本端口操作完成。BUSY信号可作为中断源来指明本次操作为非法。在应用于从模式(即M/S=L)时,BUSY可作为写禁止输入;而在应用于主模式(M/S=H)时,BUSY作为输出,但应接上拉电阻。忙仲裁操作方式如表4所列。表中“(1)”的意思是假设BUSYL和BUSYR为输出,并接上拉电阻;“(2)”的意思是哪一个端口地址先稳定,则对方的BUSY为低,本方BUSY为高;“(3)”表示若BISYL=L,则禁止左端口写;若BUSYR=L,禁止右端口写。
表3 中断标志(BUSY=H)
左 端 口 | 右 端 口 | 功 能 | ||||||||
R/WL | CEL | OEL | A14L-A0L | INTL | R/WR | CER | OER | A14R-A0R | INTR | |
L | L | x | 7FFF | x | x | x | x | x | L | INTR=L |
x | x | x | x | x | x | L | L | 7FFF | H | INTR=H |
x | x | x | x | L | L | L | x | 7FFE | x | INTL=L |
x | L | L | 7FFE | H | x | x | x | x | x | INTL=H |
表4 忙仲裁操作
输 入 | 输 出 | 功 能 | |||
CEL | CER | AOL-A14L AOR-A14R |
BUSYL(1) | BUSYR(1) | |
x | x | 不相等 | H | H | 正常 |
H | x | 相等 | H | H | 正常 |
x | H | 相等 | H | H | 正常 |
L | L | 相等 | (2) | (2) | 写禁止(3) |
表5 旗语通讯读/写操作
输 入 | 输 出 |
模 式 |
|||
CE | R/W | OE | SEM | I/O0-7 | |
H | H | L | L | 数据输出 | 读旗语通讯标志 |
H | ↑ | x | L | 数据输入 | 写旗语通讯标志 |
L | x | x | L | - - - | 不允许 |
3.3 双端口RAM的扩展
双端口RAM的扩展分为深度扩展和宽度扩展两个方面,深度扩展与常规的RAM扩展一样,如两个IDT7007可扩展为64k×8b的双端口RAM。这里主要讨论宽度扩展,如两个IDT7007可扩展为32kX16b双端口RAM,图3怕示是宽度扩展的逻辑框图。但存在一个问题:即当左右两个CPU同时访问同一地址单元时,由于主从片同时工作,并各有一套仲裁逻辑电路。因此,如果同一地址同时到达,则有可能主片左端获优先处理使主片BUSYR为L,当然,也有可能从片右端获优先处理而使从片BUSYL为L。如果这样,系统就会死锁,解决的办法是只采用主片的仲裁电路。即主片BUSY做输出并外接上拉电阻,而从片的BUSY作为写禁止输入。使用时可由M/S为低电平或高电平来决定从片或主片。
表6 典型旗语通讯序列
功 能 | 左端口 | 右端口 |
状 态 |
||
D0 | 申请寄存器 | D0 | 申请寄存器 | ||
无动作 | 1 | 1 | 1 | 1 | 旗语通讯自由 |
左端口写 | 0 | 0 | 1 | 1 | 左端置标志 |
右端口写 | 0 | 0 | 1 | 0 | 无变化,右端保留申请标志 |
左端口写 | 1 | 1 | 0 | 0 | 右端获得标志 |
右端口写 | 1 | 1 | 1 | 1 | 旗语通讯自由 |
左端口写 | 0 | 0 | 1 | 1 | 左端置标志 |
左端口写 | 1 | 1 | 1 | 1 | 旗语通讯自由 |
3.4 旗语通讯逻辑
在双端口RAM应用中,经常需要暂时指定一块存储区只供一端CPU用。例如,把一个CPU运算出的一批数据结果一次写入存储共供另一CPU调用,这种情况称为块配置。块配置应避免地址仲裁问题,因为一个CPU在使用块配置时,不希望另一个CPU了使用这些单元,旗语通讯逻辑提供了一套适于块配置的功能。它是一组独立于双端口RAM之外的八个锁存器,它些锁存器可用来标志一个端口正在使用块配置,而另一个暂时不不能使用的情况。若左边的CPU要使用块配置,则需要通过置位锁存器的申请标志通过CPU读标志并校验它,以判断它是否成功地置位锁存器,即判断标志是否为0,若成功(即标志为0),就可以使用块配置,否则,说明右边CPU已先置标志为0了,即正在使用块配置。此时,左边的CPU要么重复申请标志,要么先暂时完成别的任务,并不时地尝试通过置位和校验来获得标志。一旦右边使用完毕而显示复位标志(置标志为1),则左边立即置标志为0以获得使用权,旗语通讯标志总是通过置位——测试的序列来进行的。旗语通讯标志为低电平有效,申请标志应向锁存器写0,释放标志时写1。这八个锁存器可通过SEM、OE、R/W、A0~A2像RAM单元一样来进行读写,只是读或写只通过D0来进行。为方便用户,读出时,D0~D7要么全为0,要么全为1。当左右两边同时申请标志时,由旗语通讯逻辑仲裁来判断哪端先获得标志,而不会出现两端的标志同时为0。旗语通讯的读/写操作见表5,典型的旗语通讯操作序列见表6。表中的申请寄存器可用来保存申请状态的内部寄存器。
4 应用举例
图4为双CPU(Z80、89C51)共享的IDT7007双端口RAM的典型应用电路。因89C51的串行通信能力很强,故常用在通信和输入输出部分,而Z80常用于运算,且必须外带EPROM。而89C51本身有电可擦除E2PROM,若容量不够,也可外接扩展。Z80和89C51可分别在IDT7007中找一部分空间作自己的内存。并通过INTL和INTR直接进行端口通信。通过IDT70087的SEML、SEMR可使Z80、89C51实现资源共享。VUSYL接在Z80r
WAIT端,以保证在同时访问同一地址时,由BUSYL信号产生等待脉冲。BUSYR接中断INT1,若引起中断,则告之本次操作失败而必须重复操作。CEL、SEML由译码器电路给出。CER只需由P2.7片选即可,而SEMR则由P1.0来使能。软件编程除需要考虑各自CPU的内存外,还需考虑共享存储器以及通过中断直接进行端口通信的问题。此外,还应注意BUSYR信号引起的中断。
- CGD和Qorvo将共同革新电机控制解决方案
- 是德科技 FieldFox 手持式分析仪配合 VDI 扩频模块,实现毫米波分析功能
- 贸泽开售可精确测量CO2水平的 英飞凌PASCO2V15 XENSIV PAS CO2 5V传感器
- 玩法进阶,浩亭让您的PCB板端连接达到新高度!
- 长城汽车研发新篇章:固态电池技术引领未来
- 纳芯微提供全场景GaN驱动IC解决方案
- 解读华为固态电池新专利,2030 叫板宁德时代?
- 让纯电/插混车抓狂?中企推全球首款-40℃可放电增混电池,不怕冷
- 智驾域控知多少:中低端车型加速上车,行泊一体方案占主体
- Foresight推出六款先进立体传感器套件 彻底改变工业和汽车3D感知