SL11R单片机外部存储器扩展_单片机论文
关键词:单片机 sl11r 存储器 usb
sl11r是scanlogic公司生产的一种带有usb接口的16位risc单片机,内核处理速度达到48mips,有丰富的硬件资源及32位可编程i/o口,可以灵活扩展外围芯片。本文主要讨论其外部存储器的扩展。
1 sl11r存储器空间
sl11r内部有3k字节的sram,可以用作指令存储器和数据存储器,但有些应用场合需要扩展存储器。sl11r可扩展i2c串行e2prom、通用并行eprom及ram,还能够直接扩展大容量的edo dram。
sl11r采用统一地址编码方式对外寻址,程序代码、数据区、i/o地址均安排在64k字节空间中,各自有独立的寻址空间并有相应的选通信号输出。硬件设计时不需另加解码电路,只要把扩展芯片的片选引脚与对应的控制信号相连就可以。sl11r对edo dram的寻址采用页寻址方式,可寻址高达2m字节的空间,以满足图像采集等需要大量数据存储器的场合。sl11r存储器空间具体安排见表1。
表1 sl11r存储器空间
功 能 区 | 地址空间 |
内部ram 外部ram 外部dram 外部dram 内部寄存器 外部rom 内部rom | 0x0000~0x0bff 0x0c00~0x7fff 0x8000~0x9fff 0xa000~0xbfff 0xc000~0xc0ff 0xc100~0xe7ff 0xe800~0xffff |
外部ram的0x0000~0x0bff地址空间被内部ram占用,故不能使用。
外部rom的默认地址空间为0xc100~0xe7ff,通过软件设定,也可以占用0x8000~0xbfff地址空间。
2 sl11r存储器扩展
sl11r的外部存储器包括串行e2prom存储器、外部sram数据存储器、外部eprom程序存储器及动态存储器。
2.1 串行i2c e2prom的扩展
串行e2prom的扩展比较简单,只要根据i2c e2prom的容量选择相应的电路即可。图1为扩展2k字节e2prom电路图,图2为扩展16k字节e2prom电路图。值得注意的是,如果用串行e2prom作程序存储器,最好选用图1所示的接线。由于sl11r内部ram只有3k字节,启动时bios首先从2k字节的串行e2prom中加载指令代码。
读写i2c e2prom可以直接调用bios中断实现,不需要另编程序,比较方便。
2.2 外部数据存储器及eprom的扩展
sl11r的数据总线是16位,提供了两种存储器扩展模式供用户选择,可以通过软件设定外部存储器工作在8位模式或16位模式。图3是sl11r扩展32k×16位sram的实例。图3所示状态下外部sram工作在16位模式;当开关sw接地,则sram工作在8位模式,ic2不使用。sl11r的引脚xramsel和xromsel可以分别作为外部数据存储器和程序存储器片选信号cs。
2.3 动态存储器的扩展
sl11r扩展动态存储器非常简单。因为它已经内置了动态存储器控制电路,与edo dram直接连接就可以,不需要另加电路,而且自动刷新,用户使用动态存储器负使用sram一样方便。sl11r扩展dram的电路见图4。
扩展dram时要选择3.3v的edo dram,尽量使用1m×16位的内存芯片如gm71v18163cj、is41lv16100、hy51v18164等,这样电路设计较简单。笔者在使用过程中发现,某些dram与sl11r存在兼容性问题,有时工作不稳定,但换另一批次的芯片后又正常工作,所以设计者在使用时应注意筛选。
sl11r对dram的寻址空间为0x8000~0x9fff和0xa000~0xbffff。这个地址值控制寻址的低位地址(a0~a12),另外有2个对应的页面寄存器控制寻址的高位地址,每个页面都能完成对1m×16位空间的寻址。这两个16位的页面寄存器是0xc018和0xc01a,以页面1寄存器0xc018具体说明如下:
d15~d9 | d8 | d7 | d6 | d5 | d4 | d3 | d2 | d1 | d0 |
0 | a21 | a20 | a19 | a18 | a17 | a16 | a15 | a14 | a13 |
如果a21=1,则对0x8000~0x9fff空间的读写操作是针对dram,由dramoe和dramwt引脚选通dram,参见图4。
如果a21=0,则对0x8000~0x9fff空间的读写操作是针其它外设,由nxmemsel引脚选通。这种方式使sl11r另外增加了1m×16位的寻址空间,但这个空间dma方式不能直接寻址。
a13~a20则是页面1的高位地址,加上08000~0x9fff的低位(a0~a12)实现页面1的寻址。
页面2的寻址与页面1的寻址完全一样,只是由0xc01a和对0xa000~0xbfff的寻址实现。
页面1和页面2的寻址空间是重叠的,一般可以使用一个页面对dram寻址,另一个页面对其它外设寻址。
3 存储器速度的影响
sl11r的工作频率较高,必须要考虑存储器的速度,否则可能工作不正常。
3.1 静态存储器速度
读取外部静态存储器的时序见图5,具体参数见表2。表2中的参数是sl11r的内部工作时钟pclk工作36mhz,等待周期设定为0时的数据。
表2 sl11r读周期参数
符 号 | 参 数 | 最小值 | 最大值 |
tcr trdh tcdh tprw tar tac | cs下降沿到rd下降沿 rd上升沿到数据保持 cs上升沿到数据保持 rd低电平时间 rd下降沿到地址有效 ram访问时间 | 1ns 5ns 3ns 28ns 1ns | 31ns 3ns 12ns |
sl11r扩展外部sram或eprom时,可以设定等待周期,最长可设定7个等待周期,每个等待周期时间为31ns(pclk=32mhz时),这样sl11r就可以扩展价格低廉的低速eprom和sram存储器。
选择sram的速度主要应该由cs的低电平脉冲宽度决定:
tac=tcr+trdh-tcdh+等待周期时间
笔者经实验得到常见的sram需要设定的等待周期数,见表3。从表3的数据可知,一般sram的速度可以达到标称值,如pclk为32mhz,100ns sram的等待周期为2,这时tac=1+28+5-3+2×31=93ns。
表3 常见sram等待周期设定
100ns sram | 70ns sram | 15ns sram | 12ns sram | |
pclk=32mhz pclk=48mhz | 2 3 | 1 2 | 0 0 | 0 0 |
3.2 动态存储器的速度
edo dram的读写速度有两种情况:一种是随机读写;另一种是快速页面读写。sl11r随机读取dram的时序见图6,参数见表4。
表4 sl11r读dram参数
pclk | trc | 1ras | tcas | trac | toac |
32mhz | 150ns | 80ns | 20ns | 80ns | 20ns |
48mhz | 100ns | 53ns | 13ns | 53ns | 13ns |
影响dram速度的参数较多,但选择dram主要是根据tras。一般选择50ns或60ns的dram就可以满足要求。
sl11r随机读写dram的周期时间trc在pclk为32mhz时为150ns;pclk为48mhz时为100ns。经测试,dma方式下,dram的读写速度可以达到6mhz,满足常用的数据采集要求。
dram的快速页面读写是指在dram的同一个页面下,即行地址相同时,dram保持行地址不变,只寻址列地址,这样可以减少发送行地址的时间。使用快速页面读写必须十分小心,因为在数据采集等场合,写数据时页面发生变化会影响dram的读写时间,很可能会丢失数据。
sl11r扩展外部存储器的能力较强,可以方便地扩展i2c接口的串行存储器、各种速度的静态存储器以及大容量的dram。配合sl11r的usb接口和快速的处理能力,可以满足各种应用的需要。