zoukankan      html  css  js  c++  java
  • 【黑金动力社区】【bf531 体验板教程】第四章 存储器映射(六)

    一、 存储器映射

           ADSP-BF531处理器把存储器视为一个统一的4GBytes的地址空间,使用32位地址。所有的资源,包括内部存储器、外部存储器和I/O控制寄存器,都占据公共地址空间的各自独立的部分,如图4-1所示。此地址空间的各部分存储器按分级结构排列,用于Cache和SRAM的快速、低延迟的存储器系统离处理器最近,其他部分离处理器较远。

    图4-1 系统存储器映射

     

           L1存储器系统是Blackfin DSP内核所用的性能最高的存储器。片外的存储器系统通过外部总线接口单元(EBIU)访问,可以连接SDRAM、NORFLASH及SRAM等。

           存储器DMA控制器 (MDMA)提供高带宽的数据传输能力。它能够在内部存储器和外部存储器空间之间完成代码或数据的块传输,具体内容将在后面的章节中详述。

           1. 内部(片内)存储器

           ADSP-BF531处理器片内存储器如表4-1所示。

    表4-1 存储器配置

    表4-1 存储器配置

    类型

    大小

    地址范围

    指令SRAM/Cache

    16Kbytes

    0XFFA1 0000-0XFFA1 4000

    指令SRAM

    16Kbytes

    0XFFA0 8000-0XFFA0 C000

    数据SRAM/Cache

    16Kbytes

    0XFF80 4000-0XFF80 8000

    中间数据存储器

    4Kbytes

    0XFFB0 0000-0XFFB0 1000

    总计

    52Kbytes

     

    (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 异步存储设备空间

               引脚名称

        引脚类型

                         功能描述

    DATA[15:0]

    I / O

    外部数据总线

    ADDR[19:0]

    O

    外部地址总线

    AMS[3:0]

    O

    块片选,低电平有效

    AWE

    O

    写使能,低电平有效

    ARE

    O

    读使能,低电平有效

    AOE

    O

    输出使能,低电平有效

    ARDY

    I

    总线准备好,用于等待连接慢速的外部设备

    ABE[1:0]

    O

    字节使能,用于单字节访问屏蔽

           这里需要注意的是,我们需要把AOE与SRAM的OE相连,而不是ARE引脚。ARDY如果不用,可以直接接低电平,在寄存器配置里,可以忽略检测ARDY信号。如果不需要单字节访问,ABE也可以不用连接。

           AMS[3:0]是四组片选信号,分别代表四个连续的独立空间,表4-3为四个异步存储块的映射地址。

    表4-3 异步存储器空间映射

    片  选

    大  小

    地址范围

    AMS[0]

    1MByte

    0X2000 0000 - 0X200F FFFF

    AMS[1]

    1MByte

    0X2010 0000 - 0X201F FFFF

    AMS[2]

    1MByte

    0X2020 0000 - 0X202F FFFF

    AMS[3]

    1MByte

    0X2030 0000 - 0X203F FFFF

           异步存储器空间包含了三组寄存器,分别为全局控制寄存器(EBIU_AMGCTL)、块控制寄存器0(EBIU_AMBCTL0)及块控制寄存器1(EBIU_AMBCTL1)。EBIU_AMGCTL控制全局的设置,EBIU_AMBCTL0和EBIU_AMBCTL1的高低16为分别控制四个块的读写时序。

    表4-4 EBIU_AMGCTL(地址:0XFFC0 0A00 复位值0x00F2)

    名称

    描述

    15:9

    -

    未用

    8

    CDPRIO

    DMA 和内核访问优先级控制位。

    0:内核访问优先;

    1:DMA访问优先。

    7:4

    -

    未用

    3:1

    AMBEN

    使能异步存储器模块。

    000:所有块禁止;

    001:使能块 0;

    010:使能块 0 和 块 1;

    011:使能块 0 、块 1 和块 2;

    1xx:全部使能。

    0

    AMCKEN

    CLKOUT时钟使能。

    0:时钟禁止;

    1:时钟使能。

           EBIU_AMBCTL0 和EBIU_AMBCTL1具有相同的属性,我们仅通过一例控制说明每位的含义。

    表4-5 EBIU_AMBCTL 描述

    寄存器

    描 述

    AMBCTL0

    15:0

    控制异步存储器块 0

    AMBCTL0

    31:16

    控制异步存储器块 1

    AMBCTL1

    15:0

    控制异步存储器块 2

    AMBCTL1

    31:16

    控制异步存储器块 3

     

    表4-6EBIU_AMBCTL0 低16位(复位值0xFF2)

    名称

    描 述

    15:12

    B0WAT

    块0 写访问时间(周期数)

    0000: 不支持;

    0001 到 1111:1 到 15个周期。

    11:8

    B0RAT

    块 0 读访问时间(周期数)

    0000:不支持;

    0001 到 1111:1到15个周期。

    7:6

    B0HT

    块 0 访问保持时间(周期数)

    00:0周期;

    01:1周期;

    10:2周期;

    11:3周期。

    5:4

    B0ST

    块 0 访问建立时间(周期数)

    00:4周期;

    01:1周期;

    10:2周期;

    11:3周期。

    3:2

    B0TT

    块0 数据传输时间,指的是读访问后和写访问前插入多少个时钟周期。

    00:4周期;

    01:1周期;

    10:2周期;

    11:3周期。

    1

    B0RDYPOL

    块0 ARDY 极性。

    0:低电平有效;

    1:高电平有效。

    0

    B0RDYEN

    块 0 ARDY 使能。

    0:忽略ARDY 信号;

    1:使能ARDY 信号。


    附录:

    MS531 板子靓照

  • 相关阅读:
    2020916 spring总结
    20200915--事务
    20200915-mybatis基础
    20200911--使用注解开发
    20200910--Spring配置
    20200909--spring基础-IOC
    20200909-待补充
    20200909记我所看到的问题
    20200909-spring基础一
    面向对象
  • 原文地址:https://www.cnblogs.com/kingst/p/1848508.html
Copyright © 2011-2022 走看看