C8051与SRAM的高速接口

发布者:心愿实现最新更新时间:2015-02-04 来源: laogu关键字:C8051  SRAM  高速接口 手机看文章 扫描二维码
随时随地手机看文章
C8051系列单片机没有与标准的51单片机那样的数据总线(RD、WR、ALE)等,只能采用通用I/O口模拟总线方式访问外部存储器。 因此,C8051访问一次外部存储器需要几十条指令。即便这样,由于C8051的绝大多数指令的执行只需一个机器(振荡)周期,在同样的时钟下与标准的51单片机相当。例如,20MHz的时钟下,在文献[2]给出的SRAM接口方式中,C8051读或写1个字节需要1.7μs,这就是说可以达到的最大传输率为588KB/s。相比之下,标准51读或写1个字节需要1.2μs。为了充分发挥C8051的能力,本文介绍两种提高访问外部SRAM速度的接口方法。
1 扩展外部SRAM的高速接口电路之一
图1所示电路可提高访问外部SRAM的速度。该电路充分利用C8051系列口线多的优势,避免采用端口复用的费时方法。采用该接口电路的读和写周期的时序波形分别修改为如图2和图3所示。为节省篇幅,这里略去初始化部分(初始化数字交叉开关和设置端口)的程序,直接给出读、写程序。
SRAM_Read:
MOV P2,DPH ;输出外部地址A15..A8
MOV P3,DPL ;输出外部地址A7..A0
ANL P1,#0b7h ;选择SRAM,发出读选通
MOV A,P0 ;读数据
ORL P1,#48h ;使读选通和SRAM片选无效
RET
同样,完成写1个字节到外部SRAM的操作共需15字节、19个周期,需要0.95μs(包括执行RET指令的0.25μs)。


2 扩展外部SRAM的高速接口电路之二
图4给出了C8051扩展外部SRAM的接口电路,图5和图6分别给出了C8051访问(读或写)外部存储器的时序图。
由图4可以看出,此外部扩展RAM的高速接口电路的改进为:①高、低位地址都由P2口提供,而不是由P3口分时复用地提供低位地址和数据(总线)。这样,可以节省每次读写都要改变P3口的设置而消耗的时间。②尽可能地把控制信号同步给出,特别是在读外部数据存储器时,同时给出CS、ALE和WR信号,可以节省1~2个指令周期的时间。
为方便起见,下面根据图4的接口电路,给出常量和声明:
DATA1 EQU P3 ;数据端口引脚(AD7..0)
DATACF EQU PRT3CF ;端口配置寄存器对数据
ADDR EQU P2 ;地址端口引脚(A15..8)
ADDRCF EQU PRT2CF ;端口配置寄存器对地址
A16 EQU P1.5 ;最高地址位(地址块选择)
RD EQU P1.4 ;读选通(低电平有效)
WR EQU P1.3 ;写选通(低电平有效)
ALE EQU P1.2 ;地址锁存信号(低电平有效)
CS EQU P1.1 ;SRAM片选信号(低电平有效)
下面为主程序中与访问外部SRAM有关的部分(初始化数字交叉开关和端口、数据指针等):
ORG 0B3H
;禁止看门狗定时器,中断尚未被允许。如果中
;断被允许,应用确禁止中断,以保证下面的两
;条指令能在4个时钟周期内执行完
Main:
MOV WDTCN,#0DEH
MOV WDTCN,#0ADH
;设置交叉开关
MOV XBR2,#40h ;弱上拉允许交叉开关
LCALL SRAM_Init ;初始化SRAM
MOV R0,#0ffh
MOV DPH,#00h ;初始化16位地址
MOV DPL,#00h
MOV A,R0 ;装写入值
.
.
.
下面的子程序初始化SRAM接口逻辑,必须在任何SRAM_Read或SRAM_Write操作之前调用一次,该程序可作为复位操作的一部分。该程序假定交叉开关已经被允许(XBR2.6=“1”)。[page]
“读”初始化SRAM接口逻辑子程序:
SRAM_Read_Init:
MOV DRATACF,#00h
;允许端口3(DATA)作为输入总线

    MOV DATA1,#0ffh
MOV ADDRCF,#0ffh ;允许端口2(ADDR)作为输出
MOV ADDR,#0ffh ;驱动为高电平($ff)
ORL PRT1CF,#00111110b ;允许P1.7..3作为输出
ANL P1,#11011011b
;A16=ALE=“0”,选择存储块1
ORL P1,#00011010b ;RD,WR,CS=“1”
RET
“写”初始化SRAM接口逻辑子程序:
SRAM_Write_Init:
MOV DATACF,#0FFh
;允许端口3(DATA)作为输出总线
MOV DATA1,#0ffh ;驱动为高电平($ff)
MOV ADDRCF,#0ffh ;允许端口2(ADDR)作为输出
MOV ADDR,#0ffh ;驱动为高电平($ff)
ORL PRT1CF,#00111110b ;允许P1.7..3作为输出ANL P1,#11011011b
;A16=ALE=“0”,选择存储块1
ORL P1,#00011010b ;RD,WR,CS=“1”
RET
相应地从外部SRAM读1个字节的数据的程序(SRAM_Read)为:
;该程序从DPTR指向的地址读取数据存到ACC。此处未处;
理存储块选择(操作A16);
SRAM_Read:
MOV ADDR,DPL ;输出外部地址A7..A0
SETB ALE ;锁存该地址
ANL P1,#0C7h ;选择SRAM,发出读选通、ALE=0
MOV ADDR,DPH :输出外部地址A15..A8
MOV A,DATA1
;读数据(注对于这片SRAM读操作建立时间为
;45ns,在SYSCLK=20MHz时,该指令需2个时;
;钟周期,或50ns×2=100ns
ORL P1,#48h ;使读选通和SRAM片选无效
RET
完成从外部SRAM读1个字节的操作共需17字节、21个周期,即每从外部SRAM中读1个字节需要1.05μs(包括执行RET指令的0.25μs)。
同样,写1个字节的数据到外部SRAM的程序
(SRAM_Write)为:
;该程序将ACC中的字节写到DPTR指向地址的外部
;SRAM单元,此处未处理存储块选择
SRAM_Write:
MOV ADDR,DPL ;输出外部地址A7..A0
SETB ALE ;锁存该地址
CLR ALE
MOV ADDR,DPL ;输出外部地址A15..A8
MOV DATA1,a ;将数据送到数据总线
ANL P1,#0d7h ;选择外部SRAM和启动写操作
ORL P1,#028h ;写选通无效和SRAM片选无效
RET:注:在sysclk=20MHz时,这种方式将产生100ns
;宽的写脉冲。该SRAM所要求的最小值为7ns
同样,完成写1个字节到外部SRAM的操作共需19字节、23个周期,需要1.15μs(包括执行RET指令的0.25μs)。在不增加I/O口的情况下,比现有文献给出的接口电路速度提高了50%。
应用指出的是,上述程序是读或写1个字节所需的时间。如果是读或写1个数据块,则平均读或写1个字节所需的时间将缩短到0.8μs(读)或0.9μs(写),比标准51执行1条MOVX指令所需的时间(20MHz时钟时为1.2μs)快30%~50%。
类似地,也可以用八D锁存器锁存低8位地址。

结束语

本文介绍了2种提高C8051访问外部SRAM速度的接口电路和相应的程序。第一种方法能够大幅度提高C8051访问外部SRAM的速度,使读或写1个字节的时间缩短到0.95μs(包括执行RET指令的0.25μs时间),但这种方法要多使用1个8位的I/O口。第二种方法既提高C8051访问外部SRAM的速度,使读或写1个字节的时间由1.7μs缩短到1.15μs,同时,还不多占用I/O口线。
利用本文介绍的方法,可以显著地提高单片机C8051的系统性能。该方法不仅仅用于扩展外部RAM,也可用于扩展单片机的其它并行接口上。
关键字:C8051  SRAM  高速接口 引用地址:C8051与SRAM的高速接口

上一篇:MCS-51单片机实用子程序库(一)
下一篇:关于C51的中断编程

推荐阅读最新更新时间:2024-03-16 13:53

FPGA+DSP的高速通信接口设计与实现
  TigerSHARC系列DSP芯片与外部进行数据通信主要有两种方式:总线方式和链路口方式。链路口方式更适合于FPGA与DSP之间的实时通信。随着实时信号处理运算量的日益增加,多DSP并行处理的方式被普遍采用,它们共享总线以互相映射存储空间,如果再与FPGA通过总线连接,势必导致FPGA与DSP的总线竞争。同时采用总线方式与FPGA通信,DSP的地址、数据线引脚很多,占用FPGA的I/O引脚资源太多。而采用链路口通信不但能有效缓解DSP总线上的压力,而且传输速度快,与FPGA之间的连线相对也少得多,故链路口方式更适合于FPGA与DSP之间进行实时数据通信。     1 TS101和TS201的链路口分析与比较   TS10
[嵌入式]
C8051读取hex文件
以C8051F020为例:  1.下载C8051F编程器(可百度自行搜索)。通过搜索网络上有几个版本,比如新华龙电子的V6.00版本,以及鸿翼电子的V1.1版本与V2.1版本,我用的时候用的“鸿翼电子C8051F编程器V1.1”,因为新华龙电子的V6.00版本总是出现找不到设备的错误,鸿翼电子V2.1版本读出操作失败,各编程器界面如下图所示。 C8051F单片机hex文件读取: 具体的操作步骤如下:  1. 将仿真器与目标板以及计算机进行连接。打开下载的软件,选择编程接口形式,我用的JTAG口,所以选择JTAG,然后点击“连接目标芯片” 2. 连接成功后,会出现目标单片机的型号,如图所示 3. 连接成功后点击
[单片机]
<font color='red'>C8051</font>读取hex文件
凌华科技业界首款PoE接口高速图像采集卡
  日前,凌华科技领先业界发布支持Power over Ethernet(PoE)供电型接口的高速图像采集卡GIE62+。凌华科技GIE62+高速图像采集卡支持PCI Express x4,提供两组独立的Gigabit Ethernet端口,可连接PoE接口的工业相机,传输速率高达2 Gbps,拥有高速数据传输性能、远距离数据传输能力,最远距离可达100米。   随着PoE接口在机器视觉应用需求的增加,市场上主要的工业相机厂商,于今年(2009)年底或明年(2010)初纷纷开始推出支持PoE的工业相机。PoE通过Ethernet传输图像数据,与电源线整合为一。凌华科技领先业界推出第一款支持PoE接口的图像采集卡,简化用户的
[测试测量]
凌华科技业界首款PoE<font color='red'>接口</font><font color='red'>高速</font>图像采集卡
智原科技推出世界最小存储面积的40eHV与40LP SRAM编译器
台湾新竹2017年3月30日电 /美通社/ -- ASIC设计服务暨IP研发销售厂商智原科技(Faraday Technology Corporation, TWSE: 3035)今日发表基于联电40eHV与40LP工艺的新一代内存编译器(SRAM compiler)。该编译器结合联电最新的0.213um 2 存储单元(bit cell)技术与智原科技的优化存储器外围电路设计,可自动输出具有世界最小单元面积的存储区块,尤其在40eHV的工艺节点,可显著地为行动装置显示器驱动芯片(MDDI)相关应用降低成本。 联电推出40eHV与40LP工艺最小的0.213um2储存单元后,智原立即率先推出相对应的SRAM编译器。相较于原先的0
[半导体设计/制造]
基于 QDR-IV SRAM 实现网络流量管理统计计数器 IP设计
网络路由器带有用于性能监控、流量管理、网络追踪和网络安全的统计计数器。计数器用来记录数据包到达和离开的次数以及特定事件的次数,比如当网络出现坏包时。数据包的到达会使多个不同的统计计数器发生更新;但一台网络设备中的统计计数器的数量及其更新速度常常受到存储技术的限制。 管理统计计数器需要高性能的存储器才能满足多重的读—修改—写操作。本文将描述一种使用IP方法的独特统计计数器,这种计数器的一端可以连接网络处理器(NPU),另一端可以连接Xilinx公司的QDR-IV存储控制器。QDR-IV统计计数器IP是一种带有QDR-IV SRAM、为网络交流管理和其他计数器应用提供高效统计计数器的软IP。 QDR-IV SRAM概述 QD
[网络通信]
基于 QDR-IV <font color='red'>SRAM</font> 实现网络流量管理统计计数器 IP设计
EPP高速数据采集与LabVIEW接口实现
1 引言 可以实现PC机数据采集的接口很多,如ISA,PCI,EPP,USB等,其中最容易实现,而且性能很稳定的模式就是EPP模式。EPP指增强型并行接口标准(Enhanced Parallel Port),他电路实现简单、时序稳定、与所有软件接口容易实现、支持各种采样速度,是用做数据采集比较理想的接口。 LabVIEW是现在应用广泛的虚拟仪器开发软件,他将数据采集与分析上的大多数方法都模块化,以供用户任意组合。其强大的图形显示能力及数据分析处理能力,不但降低了软件开发难度,而且提高了用户界面的可视性。 用LabVIEW驱动EPP接口进行数据采集,不但实现方法简单,而且可以利用LabVIEW的显示与分析工具,免去了买采集卡的昂贵
[嵌入式]
绝对位置测量系统的高速接口
位置编码器经常应用于以可编程逻辑控制器(PLC)为基础的控制系统。这些系统的线路通常设计为点点连接。当这样的设计要求将位置值快速的传送到PLC 时,通常需要复杂的电缆配置结构。 图1:旋转编码器的普通通讯结构 现在的流行趋势是通过在PLC 与传动装置及 传感器 之间使用区域总线结构(如:CAN、Interbus-S、Profibus-DP 等)来减少电缆的复杂性。与点点结构相比,区域总线传送位置值需要更长的时间。一个带有几个传动装置及传感器的传送时间通常为一或几个毫秒。由此在控制环中产生的停滞时间是许多应用软件所不能接受的。同时,一个带有区域总线接口的位置编码器的价格也比较昂贵。因此,带有区域总线接口的位置编码器的最佳配置是
[嵌入式]
STM32单片机用FSMC接口控制SRAM
环境: 主机:WIN7 开发环境:MDK4.72 MCU:STM32F103ZE 说明: sram型号:IS62WV51216BLL 连接方式:FSMC 大小:1M字节.512K * 16 源代码: inf_sram.h span style= font-family:SimHei; font-size:18px /********************************************************************* * sram接口层头文件 * (c)copyright 2013,jdh * All
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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