当前位置:首页 > 单片机 > 单片机
[导读]1.IDT7132简介IDT7132是一种高速2K×16bit双端口静态RAM,且带片内总线仲裁电路,具有两组数据总线和地址总线,两组总线可以同时访问不同的存储器单元。当两组地址总线完全相同时,由片内总线仲裁逻辑向后访问的一方

1.IDT7132简介

IDT7132是一种高速2K×16bit双端口静态RAM,且带片内总线仲裁电路,具有两组数据总线和地址总线,两组总线可以同时访问不同的存储器单元。当两组地址总线完全相同时,由片内总线仲裁逻辑向后访问的一方发出等待信号,使该方进入等待,待另一方访问结束后等待撤消,等待方继续访问这一地址。由于双端口RAM的特殊结构,使得双机可以方便、快速地进行数据交换,从而大大提高了多CPU系统的并行处理能力。

IDT7132的结构框图如图13.12所示。当引脚出现下降沿时选中DPRAM,即可通过控制或R/来访问内部存储单元。

IDT7312的核心部分是存储器阵列,用于数据存储,为左右两个端口公用。这样,位于两个端口的左右处理单元就可以共享一个存储器。当两个端口对双端口RAM存取时,IDT7312芯片设计有硬件功能输出,其工作原理如下。

·当左右端口不对同一地址单元存取时,、均为高电平,可正常存储。

·当左右端口对同一地址单元存取时,有一端口的为低电平,禁止数据的存取,此时,两个端口中哪个存取请求信号出现在前,则其对应的为高电平,允许存取,否则其对应的为高电平,禁止其写入数据。

IDT7312的时序与RAM的读写时序非常类似:当CPU选中DPRAM时,引脚出现下降沿,当控制线为高且R/为低时,CPU对内部存储单元进行写操作;而当控制线为低且R/为高时,CPU对内部存储单元进行读操作。IDT7312在非竞争情况下的读写控制字如表13-1所示。

图13.12IDT7132结构框图

表13-1IDT7132非竞争读写控制字

左或右端口

功  能

R/



D7~D0

X

H

X

Z

掉电模式

L

L

X

数据输入

数据写入存储器

H

L

L

数据输出

存储器中数据输出

H

L

H

Z

输出呈高阻态

2.竞争现象的处理

使用双端口RAM的关键是对竞争的处理。当外部CPU通过两个端口对双端口RAM内部的同一个存储单元进行操作(即两组地址总线完全相同)时,系统将出现竞争。为避免因竞争而导致的通信失败,设计者提出了各种解决方案,常见的有如下3种。

·设置标志位。在开辟数据通信区的同时可通过软件方法在某个固定的存储单元设立标志位。这种方法要求两端CPU每次访问双端口RAM之前必须查询、测试和设置标志位,然后再根据标志位的状态决定是否可以访问数据区。

有的双端口本身就具有专用的一个或多个硬件标志锁存器和专门的测试和设置指令,可直接对标志位进行读写操作。这种方法通常用在多个处理器共享一个存储器块时。为了保证通信数据的完整性,在采用这种方法时往往要求每个处理器能对该存储器块进行互斥的存取。

·软件查询引脚状态。双端口RAM必须具有解决两个处理器同时访问同一单元的竞争仲裁逻辑功能。当双方访问地址发生冲突时,竞争仲裁逻辑可用来决定哪个端口访问有效,同时取消无效端口的访问操作,并将禁止端口的信号置为低电平。因此信号可作为处理器等待逻辑的输入之一,即当为低电平时,让处理器进入等待状态,每次访问双端口RAM时,检查状态以判断是否发生竞争,只有为高时对双端口RAM的操作才有效。

·利用硬件解决竞争。信号可以直接接至支持插入等待时序的CPU,如80C196的引脚,而无需软件支持。

3.电路原理图

原理图如图13.13所示,由两个8051单片机和包括双端口RAM的单片机控制系统组成。两个单片机之间的通信是通过对双端口RAM的读写实现的。单片机对双端口RAM的访问与片外扩展RAM没有区别,例如,要对IDT7312的0x0单元进行操作,只需对片外地址0x7800进行操作即可;而要对IDT7312的0x0单元进行操作,只需对片外地址0x7801进行操作即可。

图13.138051与IDT7132组成的系统原理图

在本系统中,单片机U1将某些数据存入IDT7132,由U2将这些数据读入并处理,此时U1就可以去进行其他操作。显然,这种发放可以实现一定程度上的并行计算,在计算量较大的时候是比较可取的。

13.5.2程序设计

系统工作后,单片机U2连续读双端口RAM,先查询(P3.5)信号,若为高电平,说明不忙,则查询更新标志单元7800H。若7800H单元为#FFH,说明数据已经更新,单片机先把标志单元7800H置为#00H,再读入数据;若标志单元7800H为#00H,说明数据未更新,单片机U2再读IDT7132。单片机U2读双端口RAM的流程如图13.14(a)所示。单片机U1向IDT7132的写操作与此类似,首先把更新标志单元7800H置为#FFH,然后再向其中写入数据,如图13.14(b)所示。

图13.14单片机读、写IDT7312的流程图

程序如例13-6所示,采用设置标志位和软件查询的方法解决竞争问题。

【例13-6】两片8051单片机通过双端口RAM IDT7132交换数据。IDT7312的第一个存储单元0x0作为更新标志,从0x1~0x0A的10个字节作为存储区,U1可以在满足条件时向此存储区写入数据,U2可以在满足条件时从此存储区读出数据。

U1的程序:

#include

typedef unsigned char uchar;

#define adr_flag((uchar*)0x17800)//存放更新标志的地址

#define adr_store ((uchar*)0x17801)//存储区起始地址

sbit BL=P3^5;//P.5接BUSYL信号

void main(void)

{

uchar buf[10];//存储从IDT7312中读取的数据

uchar i,temp;

while(1)//无限循环

{

buf[i]=*(adr_store+i);//读双端口RAM

if(!BL) break;//如果BUSYL信号为低,循环检测

temp=*adr_flag;//直到BUSYL信号变高

if(temp==0xff) break;//如果尚未更新,循环检测

else//如果已经更新

{

*adr_flag=0x0;//清除更新标志

for(i=0;i<=9;i++)//读取10个字节

buf[i]=*(adr_store+i);

}

}

}

U2的程序:

#include

typedef unsigned char uchar;

#define adr_flag((uchar*)0x17800)//存放更新标志的地址

#define adr_store ((uchar*)0x17801) //存储区起始地址

sbit BR=P3^5;//P.5接BUSYR信号

void main(void)

{

uchar buf[10];//将要写入的数据存放在buf[10]中

uchar i,temp;

while(1)//无限循环

{

*(adr_store+i)= buf[i];//写双端口RAM

if(!BR) break;//如果BUSYR信号为低,循环检测

temp=*adr_flag;//直到BUSYR信号变高

if(temp==0) break; //若上次更新尚未被读取,循环检测

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

  摘 要:通过使用IDT70261 双端口RAM 实现了ARM 与TMS320C6211 DSP 之间的高速实时数据通信,给出了双端口RAM 与TMS320C6211 和ARM 的硬件连接图和

关键字: 双端口ram tms320c6211

你知道如何单片机EMC的检测?如何定义EMC?简单概括,就是设备或系统在其电磁环境中能正常工作,且不对该环境中任何事物构成不能承受的电磁骚扰的能力。EMC 测试包括两大方面内容:对其向外界发送的电磁骚扰强度进行测试,以便...

关键字: emi 单片机系统 电磁干扰

数字钟设计

关键字: 单片机系统 数字钟

当按下开关SP1,AT89S51单片机产生“叮咚”声从P1.0端口输出到LM386,经过放大之后送入喇叭。

关键字: 单片机系统 门铃

用AT89S51单片机产生“嘀、嘀、…”报警声从P1.0端口输出,产生频率为1KHz,根据上面图可知:1KHZ方波从P1.0输出0.2秒,接着0.2秒从P1.0输出电平信号,如此循环下去,就形成我们所需的报警声了。

关键字: 单片机系统 报警声

I/O并行口直接驱动LED显示,每按下一次开关SP1,计数值加1,通过AT89S51单片机的P1端口的P1.0到P1.3显示出其的二进制计数值。

关键字: 单片机系统 按键识别

闪烁灯设计

关键字: 单片机系统 闪烁灯

根据设定好的密码,采用二个按键实现密码的输入功能,当密码输入正确之后,锁就打开,如果输入的三次的密码不正确,就锁定按键3秒钟,同时发现报警声,直到没有按键按下3种后,才打开按键锁定功能;否则在3秒钟内仍有按键按下,就重新...

关键字: 单片机系统 电子密码锁

  EMC测试包括两大方面内容:对其向外界发送的电磁骚扰强度进行测试、对其在规定电磁骚扰强度的电磁环境条件下进行敏感度测试,对于从事单片机应用系统设计的工程技术人员

关键字: emc测试 单片机系统 电源技术解析
关闭
关闭