IDT7132双端口RAM在单片机系统中的使用

发布者:qiuxubiao最新更新时间:2017-11-18 来源: eefocus关键字:IDT7132  双端口RAM  单片机系统 手机看文章 扫描二维码
随时随地手机看文章

1.IDT7132简介

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

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

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

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

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

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

 

图13.12  IDT7132结构框图

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

左或右端口

功  能

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.13  8051与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;               //若上次更新尚未被读取,循环检测

        else                             //若已被读取

        {

            *adr_flag=0xff;               //置更新标志

            for(i=0;i<=9;i++)         //写入10个字节

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

        }

    }

}


关键字:IDT7132  双端口RAM  单片机系统 引用地址:IDT7132双端口RAM在单片机系统中的使用

上一篇:单片机中C语言的程序与数据存储
下一篇:单片机测控系统的抗干扰技术

推荐阅读最新更新时间:2024-03-16 15:45

信息纽扣DS1991在单片机系统中的应用
摘要:Dallas公司的iButton产品是一系列1-wire总线新型器件。DS1991是一种加密存储器型信息纽扣,封装于直径为16mm的不锈钢外壳中,体积小巧,便于携带、保存,防尘、防腐蚀,可以在恶劣的应用环境中实现带密码保护的数据传送。本文介绍DS1991的特点、工作原理及其带密码保护存储器区的读写方法。 关键词:iButton信息纽扣 1-Wire总线 单片机 DS1991是Dallas公司的1-wire总线信息纽扣家庭中的一员,是一种加密存储器型信息纽扣。它内部集成了1Kbit是非易失性存储器及加密保护逻辑,封装于直径为16mm、厚约6mm的不锈钢外壳中,何种小巧、操作便捷,防潮、抗震、防灰尘,可在恶劣的环境中实现带
[单片机]
单片机系统设计的误区与对策
    摘要: 用电磁兼容性理论剖析了单片机系统设计中的某些传统观念,指出其过时和失误之处,给出了根据电磁兼容性理论设计单片机系统的新理念,还给出了双时限看门狗、定时复位看门狗、抗快速脉冲群滤波器、电磁兼容PCB等新的设计方法。     关键词: 单片机 电磁兼容性(EMC) 电磁干扰(EMI) 看门狗(WatchDog) 单片机系统在军事、工业、民用产品中的应用越来越广。它将许多以往用硬件实现的功能由软件来完成,体积小巧、功能丰富、智能化程序度,但在可靠性方面也面临许多新问题。用现场电磁兼容性(EMC)理论剖析单片机系统设计中的某些传统观念,会发现许多误区,并且有些误区至今还在工程界广为存在。 1
[应用]
X25043的原理及在单片机系统中的应用
1. 序言   X25043是XICOR公司的单片机监控芯片。它把四种常用的功能:上电复位、看门狗定时器、电压监控和串行EEPROM功能组在单个封装之内。这种组合降低了系统成本并减少了对电路板空间的要求。下面将分别介绍它们的功能。 2. X25043的原理   X25043将多种功能集成在一起,图1是其原理框图: 图1 X25043原理框图   其中/WP是X25043写保护,低电平有效。   SI是串行数据输入口,串行时钟上升沿有效。   SO是串行数据输出口,串行时钟下降沿有效。   SCK是串行时钟,用于控制串行数据的I/O。   /CS是芯片片选信号,低电平有效。   VCC是供电电源。   /R
[单片机]
X25043的原理及在<font color='red'>单片机系统</font>中的应用
一种基于单片机系统的无线遥控技术
1 引言 随着集成电路技术的飞速发展,基于各类芯片新型遥控的不断出现。遥控装置的中心控制部件已从早期的分立元件、集成电路逐步发展到现在的单片微型计算机,智能化程度大大提高。在无线遥控领域,目前常用的遥控方式主要有超声波遥控、红外线遥控、无线电遥控等。由于无线电波的自身技术特点可以在很大区域和空间内实现,成为遥控的主要方式,并在生产、建设和日常生活中具有广泛的应用价值。为此,在前人研究的基础上探索出了一种基于单片机控制技术的可编程无线电遥控多通道开关系统的设计方法。研究表明,采用该方法设计的遥控开关系统控制方便,适用于含有较多受控电器的场合,可实现多路多功能控制。 2 系统设计 2.1 系统分析 系统结构主要由天线接收部分,
[单片机]
C51最小单片机系统
1.芯片部分 其中P1是给烧写器留的接口,J3和J4是留的排插,用于拓展模块,比如万年历,温度照度传感器,语音播报等。 2.独立键盘部分 这里参考我的STC12C5A60S2的数据手册,P0口已经有内部上拉电阻,所以外部不需要再接电阻,直接接地。 3.稳压电路 9V直流进5V直流出 4.蜂鸣器部分 选用封装时候注意8550和8050的一三脚别搞错 选TO-220封装。 5.LED部分 只留了两个灯,足够用,不够的可以用其他空的IO口照着这个画。电阻560欧姆灯的亮度会比较亮,可以选更大的阻值 10K 20K都可。 6.晶振部分 选用11.0592M的晶振,这个频率的晶振用于串口通信合适,波特率误差最小。
[单片机]
C51最小<font color='red'>单片机系统</font>
单片机系统的电磁兼容设计研究
单片机系统广泛应用于日常生活工作中,对其在各种环境下工作的稳定性提出了更高的 要求。单片机系统的稳定性在很大的程度上决定于系统的电磁兼容性。因此,电磁兼容设计 应贯穿于单片机系统设计的始终。国际电工委员会 IEC 对电磁兼容性的定义是 :电磁兼容 是设备的一种能力,是设备其在电磁环境中能完成它的功能,而不至于在其环境中产生不能 容忍的干扰。电磁兼容性对单片机系统的设计提出两方面的要求:一方面单片机系统不能受 其他系统的干扰而影响工作;另一方面单片机系统不能干扰其他系统的工作。作者从某电力 负荷管理终端的设计及电磁兼容性测试对单片机系统的电磁兼容性进行了研究。 电磁干扰的形成必须具备三个条件:干扰源、影响通道、干扰电路(如图 1
[单片机]
<font color='red'>单片机系统</font>的电磁兼容设计研究
单片机系统的低功耗设计策略
摘要:嵌入式系统的低功耗设计需要全面分析各方面因素,统筹规划。在设计之初,各个因素往往是相互制约、相互影响的,一个降低系统功耗的措施有时会带来其他方面的“负效应”。因此,降低系统整体功耗,需要仔细分析和计算。本文从硬件和应用软件设计两个方面,阐述一个以单片机为核心的嵌入式系统低功耗设计时所需考虑的一些问题。 关键词:低功耗设计 硬件设计 应用软件设计 低功耗模式   在嵌入式应用中,系统的功耗越来越受到人们的重视,这一点对于需要电池供电的便携式系统尤其明显。降低系统功耗,延长电池的寿命,就是降低系统的运行成本。对于以单片机为核心的嵌入式应用,系统功耗的最小化需要从软、硬件设计两方面入手。   随着越来越多的嵌入式应用使用了实时
[单片机]
USB接口芯片SL811HS在51单片机系统中的应用
1 引言 USB(通用串行总线)是INTEL、DEC、MI-CROSOFT、IBM等公司联合提出的、最近几年逐步在PC领域广为应用的新型接口技术。USB接口通用性好、实时性强、传输方式多样、成本低、支持即插即用、易于扩展且便于使用,这些优点使其得到许多硬件厂商的青睐。目前各种类型的USB产品已大量涌入市场,同时也被广泛地用在PC机及嵌入式系统中。 USB的拓扑结构中居核心地位的是Host(也称为主机),任何一次USB数据传输都必须由主机发起和控制,所有的USB外设都只能和主机建立连接,任何两个外设之间或是两个主机之间无法直接通信。而目前,扮演主机角色的大多是个人电脑PC。而我们买到和使用的USB移动设备都是USB外设(devi
[单片机]
USB接口芯片SL811HS在51<font color='red'>单片机系统</font>中的应用
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved