C8051与SRAM的高速接口
发布时间:2008/5/27 0:00:00 访问次数:1096
     刚
     来源:《单片机与嵌入式系统应用》
     摘要:c8051是美国cygnal公司生产的、与标准51兼容的高速单片机,速度高达25
     mips,但它扩展外部sram的方式与标准51单片机不同。单片机访问外部存储器的速度直接影响系统的性能。本文介绍两种提高c8051访问外部存储器速度的接口方法,其速度均超过现有文献所给出的接口方法。
    
    
     关键词:单片机
     sram c8051 接口方法
     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<
     刚
     来源:《单片机与嵌入式系统应用》
     摘要:c8051是美国cygnal公司生产的、与标准51兼容的高速单片机,速度高达25
     mips,但它扩展外部sram的方式与标准51单片机不同。单片机访问外部存储器的速度直接影响系统的性能。本文介绍两种提高c8051访问外部存储器速度的接口方法,其速度均超过现有文献所给出的接口方法。
    
    
     关键词:单片机
     sram c8051 接口方法
     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<