基于BF531 DSP的存储器映射
?原文地址::
一、 存储器映射?? ? ??ADSP-BF531处理器把存储器视为一个统一的4GBytes的地址空间,使用32位地址。所有的资源,包括内部存储器、外部存储器和I/O控制寄存器,都占据公共地址空间的各自独立的部分,如图4-1所示。此地址空间的各部分存储器按分级结构排列,用于Cache和SRAM的快速、低延迟的存储器系统离处理器最近,其他部分离处理器较远。 ? ?? ? ??L1存储器系统是Blackfin DSP内核所用的性能最高的存储器。片外的存储器系统通过外部总线接口单元(EBIU)访问,可以连接SDRAM、NORFLASH及SRAM等。 ?? ? ??存储器DMA控制器 (MDMA)提供高带宽的数据传输能力。它能够在内部存储器和外部存储器空间之间完成代码或数据的块传输,具体内容将在后面的章节中详述。 ?? ? ? 1. 内部(片内)存储器 ?? ? ??ADSP-BF531处理器片内存储器如表4-1所示。 表4-1 存储器配置
?? ? ??(1)????L1指令存储器, 由32Kbytes的SRAM组成,其中16Kbytes可以配置为一个4路联合的Cache。L1指令存储器以处理器的最快速度访问; ?? ? ??(2)????L1数据存储器,由16Kbytes的SRAM组成,可以配置成Cache或SRAM。 ?? ? ??(3)????4Kbytes临时数据SRAM,它和L1存储器有相同的运行速度,但只能作为数据SRAM,但不能配置成Cache。 ? ?? ? ? 2. 外部(片外)存储器 ?? ? ??外部总线接口单元(EBIU)既可以用于异步设备(例如:FLASH、EPROM、ROM、SRAM以及存储器映射I/O设备),也可以用于同步设备(例如:SDRAM)。它们的总线宽度均为16位,8位的外围设备必须如同16位设备一样分配16位地址,但只使用其低8位数据。 ?? ? ??与PC133完全兼容的SDRAM控制器可以访问16MByte 到128MByte的SDRAM。这可以为用户提供廉价的大容量数据缓存区。 ?? ? ??异步存储器控制器能够通过编程控制多达4个块异步存储设备。无论使用设备的大小如何,每个bank的空间都占据1MByets。这样,只能装满4个1MByte的存储器时地址空间才能连续。 ? 二、 Blackfin与SDRAM连接?? ? ??ADI公司的Blackfin系列处理器提供了可以与SDRAM接口的外部总线接口单元(EBIU)。下面简单介绍一下SDRAM硬件设计及初始化。 ?? ? ??SDRAM 存储器是一种成熟的存储技术,简单地说,他利用定时刷新技术来简化单个存储器单元所占用的绝对空间,使得在较小的硅片面积上,可以建立较大容量的存储区。这样不但降低了成本、降低了功耗,更使得大容量存储在嵌入式系统中成为可能。市面上,1MByte容量的SRAM生产厂家寥寥无几,并且价格昂贵,功耗极大;而2MByte及以上的SDRAM,价格已经非常低廉了,MS-531一代和二代开发板都分别标配了32MByte的SDRAM,这样我们就有足够大的空间进行音频、视频缓冲及大容量数据存储。 ? 图4-2???? Blackfin处理器与SDRAM的连接 ?? ? ??SDRAM初始化将影响应用程序的性能和SDRAM的功耗,为了使大家对SDRAM设置有更好的理解,本节通过设置外部总线接口单元(EBIU)寄存器来初始化SDRAM。根据所使用SDRAM芯片参数,分别对EBIU_SDRRC、EBIU_SDBCTL和EBIU_SDGCTL寄存器进行配置,下面是HY57V561620CLT的配置参数,仅供参考,具体配置参数大小,请参照HY57V561620CLT和ADSP-BF531芯片手册。 ? 三、 Blackfin与异步存储设备连接?? ? ??第一节我们说到,Blackfin的EBIU模块包含4个异步存储器块空间,每块包含1MByte字节的寻址空间;从应用的角度来讲,这四个块不但可以和SRAM/ ROM / Nor FLASH 等通用目的的存储器相连,也可以跟FPGA / CPLD 以及具有异步接口的一些专用芯片相连,如MS531二代就是利用这个部件和高速以太网芯片DM9000A相连的。表4-3为四块异步空间的接口引脚。 表4-2 异步存储设备空间
?? ? ??这里需要注意的是,我们需要把AOE与SRAM的OE相连,而不是ARE引脚。ARDY如果不用,可以直接接低电平,在寄存器配置里,可以忽略检测ARDY信号。如果不需要单字节访问,ABE也可以不用连接。 ?? ? ??AMS[3:0]是四组片选信号,分别代表四个连续的独立空间,表4-3为四个异步存储块的映射地址。 表4-3 异步存储器空间映射
?? ? ??异步存储器空间包含了三组寄存器, 全局控制寄存器(EBIU_AMGCTL)、 块控制寄存器0(EBIU_AMBCTL0) 块控制寄存器1(EBIU_AMBCTL1)。 ? EBIU_AMGCTL控制全局的设置,EBIU_AMBCTL0和EBIU_AMBCTL1的高低16为分别控制四个块的读写时序。 表4-4 EBIU_AMGCTL(地址:0XFFC0 0A00 复位值0x00F2)
?? ? ??EBIU_AMBCTL0 和EBIU_AMBCTL1具有相同的属性,我们仅通过一例控制说明每位的含义。 表4-5 EBIU_AMBCTL 描述
? 表4-6EBIU_AMBCTL0 低16位(复位值0xFF2)
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |