您的位置 首页 元件

89C52单片机与双口RAM怎么完成数据通信

89C52单片机与双口RAM如何实现数据通信-CY7C133是CYPRESS公司研制的高速2K×16CMOS双端口静态RAM,具有两套相互独立、完全对称的地址总线、数据总线和控制总线,采用68脚 PLCC封装形式,最大访问时间可以为25/35/55 ns。

1 导言

数字信号处理器(DSP)是一种适合于完结各种数字信号处理运算的微处理器,具有下列首要结构特色:(1)选用改进型哈佛(Harvard)结构,具有独立的程序总线和数据总线,可一起拜访指令和数据空间,答应实践在程序存储器和数据存储器之间进行传输;(2)支撑流水线处理,处理器对每条指令的操作分为取指、译码、履行等几个阶段,在某一时刻一起对若干条指令进行不同阶段的处理;(3)片内含有专门的硬件乘法器,使乘法能够在单周期内完结;(4)特别的指令结构和寻址方法,满意数字信号处理FFT、卷积等运算要求;(5)快速的指令周期,能够在每秒钟内处理数以千万次甚至数亿次定点或浮点运算;(6)大多设置了独自的DMA总线及其操控器,能够在根本不影响数字信号处理速度的状况下进行高速的并行数据传送。

由一片DSP加上存储器、模/数转化单元和外设接口就能够构成一个完好的操控体系,但这种计划要到达高速实时操控是不可行的。因为一个实时操控体系一般需求完结数据收集、模/数转化、剖析核算、数/模转化、实时进程操控以及显现等使命,单靠一片DSP来完结这些作业势必会大大延伸体系对操控目标的操控周期,然后影响整个体系的功用。所以咱们增加一个CPU,担任数据收集、模/数转化、进程操控以及人机接口等使命,使DSP专心于体系操控算法的完结,充分使用它的高速数据处理才能。从功用价格比的视点动身,这个CPU选用8位的51系列单片机。这时,两个CPU之间的数据同享就成了一个重要的问题。

选用双口RAM(简称DRAM)是处理CPU之间的数据同享的有用方法。与串行通讯比较,选用双口RAM不只数据传输速度高,并且抗干扰功用好。在笔者实验室研发的电力有源滤波器中,选用了TI公司的第三代DSP芯片TMS320C32和51系列单片机89C52作为操控体系的CPU。两个CPU之间经过双口RAM CY7C133完结数据交换。但在实践使用进程中遇到了89C52 与双口RAM总线宽度不匹配的问题,需求进行接口电路的规划。

2 双口RAM CY7C133的内部结构和功用

CY7C133是CYPRESS公司研发的高速2K×16CMOS双端口静态RAM,具有两套彼此独立、彻底对称的地址总线、数据总线和操控总线,选用68脚 PLCC封装方法,最大拜访时刻能够为25/35/55 ns。选用主从形式能够方便地将数据总线扩展成32位或更宽。各引脚的功用如表1所示,内部功用框图如图1所示。

89C52单片机与双口RAM怎么完结数据通讯

CY7C133答应两个CPU一起读取任何存储单元(包含一起读同一地址单元),但不答应一起写或一读一写同一地址单元,不然就会发生过错。双口RAM中引入了裁定逻辑(忙逻辑)电路来处理这个问题:当左右两端口一起写入或一读一写同一地址单元时,先安稳的地址端口经过裁定逻辑电路优先读写,一起内部电路使另一个端口的信号有用,并在内部制止对方拜访,直到本端口操作完毕。BUSY信号能够作为中止源指明本次操作不合法。在主从形式中,主芯片的信号接上拉电阻作为输出,从芯片的信号作为写制止输入。

3 DSP、单片机与双口RAM之间的接口电路

89C52的地址总线宽度为16位,数据总线为8位;TMS320C32的数据总线宽度为32位,地址总线宽度为24位。而CY7C133的数据总线宽度为16位,地址总线宽度为11位,所以TMS320C32与双口RAM的接口并无特别之处,可是89C52与双口RAM之间的接口电路中就需求对89C52进行总线扩展了。详细做法是使用锁存器74HC373的锁存功用,经过对其使能信号的操控,进行分时读写,完结数据总线的扩展,即使用锁存器作为虚拟总线。详细的读写进程、读写信号及锁存器使能信号的发生将在下面详细阐明。DSP、单片机与双口RAM之间的接口电路如图2所示。

89C52单片机与双口RAM怎么完结数据通讯

TMS320C32分配给双口RAM的地址空间为0x800000h~0x8007FFh。经过三八译码器74HC138对A20~A23和STRB进行译码,给出双口RAM的片选信号CER。89C52分配给双口RAM的地址空间为0x1000h~0x1FFFh。经过二四译码器74HC139对A13~A15进行译码发生双口RAM的片选信号CEL。双口RAM每边都有两个读/写操控信号,别离操控高位字节和低位字节的读/写,在使用时能够依据需求别离对数据的高位和低位进行写入操作。在图2所示接口电路中,两头的两个读/写操控信号别离被衔接在一起,也就是说此刻双口RAM的读写都是一起读写16位数据。

图2中双口RAM CY7C133的读写信号以及锁存器74HC373的使能信号的发生如图3所示。其间,WR是89C52的写操控信号,RD是89C52的读操控信号,A0是89C52的地址最低位,A15是地址最高位,R/W是TMS320C32的读写操控信号,BUSYL接89C52的P1口的一个引脚(详细可依据体系实践景象自行挑选,图中未画出),BUSYR接TMS320C32的READY信号。

89C52单片机与双口RAM怎么完结数据通讯

下面讨论一下89C52对双口RAM的读写进程。当89C52对双口RAM进行读数据时,由图3可知此刻A0应为低电平,无妨假定地址为0x1000h,则存储在双口RAM中该地址处的16位数据一起被读出,因为高8位数据线与89C52的8位数据线直接相连,所以高8位数据被当即读入89C52中。一起,依据图3中各信号的彼此逻辑关系不难判别,U3的使能信号LE有用(高电平),OE无效(低电平),因此低8位数据被送入U3 中锁存起来。接着89C52再进行一次读操作,这时地址变为0x1001h,因为A0变成高电平,双口RAM的读使能信号变成无效电平,所以此次读操刁难双口RAM不发生影响。再来看U3的使能信号LE和OE的改变状况,明显LE变成了无效电平,而OE变成了有用电平,前次被锁存的数据(即双口RAM的低8位数据)被送入89C52。当89C52对双口RAM进行写入操作时,留意此刻A0应为高电平,无妨假定地址为0x100Ch,相同可依据图3判别U2的使能信号LE和OE均为有用电平,因此数据被一起写入双口RAM中(即此刻双口RAM的高8位数据和低8位相同);接着89C52再进行一次写操作,此刻地址变为0x100Dh,因为A0变成低电平,U2的片选为无效电平,U2被封闭,数据写入双口RAM的高8位。从上面的剖析可知,使用最低地址位A0的不同电平,89C52经过两次接连的读或写操作,成功地完结了对双口RAM中数据的读或写,只不过是读入时是先读入高8位,后读入低8位;而写入则是先写入低8位,后写入高8位。

4 软件完结计划

双口RAM有必要选用必定的机制来和谐左右两头CPU对它的读写操作,不然会呈现读写数据的过错。一般能够用中止、硬件、令牌和软件这四种方法来和谐两边,本文选用的是软件方法。从上面的剖析中咱们能够得知,在接口电路中实践上现已使用89C52的最低地址位A0把双口RAM的存储空间分为奇、偶地址两个空间。其间,奇地址空间专供89C52写,偶地址空间专供89C52读。那么咱们只需对TMS320C32的软件作相应处理即可,也就是说,TMS320C32对双口RAM的奇地址空间只读,对偶地址空间只写。这样就避免了TMS320C32和89C52对双口RAM同一地址单元的写入操作。别的,在对双口RAM进行拜访之前,CPU首要对本端的BUSY信号进行查询,只要本端/BUSY信号无效时才进行读写操作,进一步确保了数据读写的可靠性。

5 完毕语

经过双口RAM完结双CPU之间的数据通讯,极大地提高了数据传输速度和可靠性,满意了操控体系的实时、高速的操控要求。本文所规划的89C52与双口RAM之间的接口电路简略有用,成功处理了它们总线匹配的问题,对其他相似需求总线扩展的体系也有必定的参考价值。
责任编辑;zl

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/yuanjian/343348.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部