DSP之外部设备连接接口之EMIF

Posted Eason.wxd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DSP之外部设备连接接口之EMIF相关的知识,希望对你有一定的参考价值。

外部设备连接接口包括外部存储器连接接口(EMIF)、主机接口(HPI)等。外部存储器接口主要用来同并行存储器连接,这些存储器包括SDRAM、SBSRAM、Flash、SRAM存储器等,外部存储器接口还可以同外部并行设备进行连接,这些设备包括并行A/D、D/A转换器、具有异步并行接口的专用芯片,并可以通过外部存储器接口同FPGA、CPLD等连接;主机接口主要用来为主控CPU和C55x处理器之间提供一条方便、快捷的并行连接接口,这个接口用来对DSP进行控制、程序加载、数据传输等工作。        这里主要是EMIF。 EMIF输入输出信号图:   EMIF为3种类型的存储器提供了无缝接口: 1 异步存储器,包括ROM,FLASH,异步SRAM 2 同步突发静态存储器( SBSRAM 3 同步动态存储器( SDRAM         异步存储器可以是静态随机存储器( SRAM )、只读存储器( ROM )和闪存存储器等存储器,在实际使用中还可以用异步接口连接并行 A/D 采样器件、并行显示接口等外围设备,但使用这些非标准设备时需要增加一些外部逻辑来保证设备的正常使用。         在使用外部存储器接口时应区分字寻址和字节寻址之间的区别,当 TMS320C55x 访问数据时, CPU 23 位地址访问 16 位字,该方式下数据空间被分成 128 页,每页字长 64K CPU 访问程序代码时,用 24 位地址访问 8 位字节, DMA 控制器访问存储器时也采用字节寻址方式。         如果多个请求服务同时到达,EMIF会根据每个请求优先级来进行处理。最高为HOLD,最低为刷新。         对EMIF编程时,必须了解外部存储器地址如何分配给片使能空间,即CE空间,每个CE空间可以同那些类型的存储器连接,以及用那些寄存器位来配置CE空间。         TMS320C55x的外部存储器映射在存储空间的分布,相应于EMIF的片选使能信号,例如CE1空间的存储器,则必须将其片选引脚连接到EMIF的CE1引脚。当EMIF访问CE1空间时,驱动CE1变低。
数据页 字寻址方式地址范 16 进制) 外部存储器 字节寻址方式地址 范围 16 进制)
2 页后 64K 字节 3-31 02 8000-1F FFFF CE0 空间 4M-320K )字节 05 0000-3F FFFF
32-63 20 0000-3F FFFF CE1 空间 4M 字节 40 0000-7F FFFF
64-95 40 0000-5F FFFF CE2 空间 4M 字节 80 0000-BF FFFF
96-127 60 0000-7F FFFF MP/MC=0 CE3 空间长度为 4M-32K )字节 剩余地址空间被片上ROM MP/MC=1 CE3 空间长度为 4M 字节 C0 0000-FF FFFF
TMS320C5510外部存储器映射中的最高地址单独分配给CE3空间,或由CE3及内部的DSP ROM共享。这些地址的分配由CPU状态寄存器ST3_55中的MPNMC位来决定。在DSP复位期间,MPNMC值取决于DSP的NP/MC引脚的信号电平。   可以使用全局控制寄存器EGCR和每个CE空间控制寄存器来配置CE空间。 对于每个CE空间,必须设置控制寄存器1中的以下域: MTYPE 指定存储器类型 MEMFREQ 决定存储器信号的频率 MEMCEN 决定CLKMEM引脚是输出存储器时钟信号,还是被拉成高电平   一定要对全局控制寄存器写如下控制位。 WPE 对所有CE空间,使能或者禁止 NOHOLD 对所有CE空间,使能或禁止HOLD请求     外部寄存器接口硬件连接与配置           外部存储器接口所支持的异步存储器接口、同步突发静态存储器接口和同步动态存储器接口都支持程序代码访问以及 32 位宽、 16 位宽和 8 位宽数据访问。外部存储器的 4 个片选空间都可以单独进行设置,设置的内容包括存储器类型、存储器宽度、读写时序参数等内容。本节将分别给出不同接口的硬件连接以及参数的设置。 1 .异步存储器接口               异步存储器的类型多种多样,它们既包括静态随机存储器、闪存存储器、只读存储器等,又有先入先出存储器、双端口存储器等, 这些存储器有着不同的特点,可以根据需要灵活选用。          外部存储器接口所支持的异步存储器接口、同步突发静态存储器接口和同步动态存储器接口都支持程序代码访问以及 32 位宽、 16 位宽和 8 位宽数据访问。外部存储器的 4 个片选空间都可以单独进行设置,设置的内容包括存储器类型、存储器宽度、读写时序参数等内容。           AM29LV320D 是一种大容量的闪存存储器,存储容量可以达到 2M /4M 字节,数据总线宽度可以是 8 位或 16 位,下面给出 AM29LV320D DSP 的连接关系示意图。                     从图中可以看到 C55x 处理器与 AM29LV320D 的连接用了数据线 D7-D0 ,在这种 连接方式下 AM29LV320D DQ15/A-1 引脚应当作为地址线 A-1 来使用,处理器 的地址总线 A[21:0] 接到 AM29LV320D A[20:-1] AM29LV320D BYTE# 号接地, RESET# 接到系统复位信号,写保护 / 快速编程 WP#/ACC 引脚接高电 平。          AM29LV320D 的读写时序,如图 5-5 和图 5-6 所示,从时序图中可以看到该 芯片的一个读写周期最短为 90ns 120ns ,而数字信号处理器的 CLKOUT 时钟 DSP 主时钟的 1/1 1/2 1/3 1/4 1/5 1/6 1/7 1/8 ,如果 DSP 运行在 200MHz ,则 DSP 一个时钟周期为 5ns ,如果不能让 DSP 的读写时序同 AM29LV320D 的读写时序相匹配,就无法实现正确的读写。调整 DSP 的读写时 序有两种方法,一种是将 AM29LV320D RY/BY 信号接到 DSP ARDY 信号上 ,通过硬件等待信号实现二者读写时序的同步,另外一种方法是通过软件设置 外部存储器接口寄存器实现正确读写。方法 1 使用简单,但灵活性不强,如果 DSP 通过外部存储器接口连接多个芯片,这种方法就不能使用,软件设置的方 法灵活、方便,推荐使用该种方法设置外部存储器接口的读写时序。 CLKOUT 4 分频时,设置建立时间为 1 个时钟周期,选通时间为 4 个时钟周期,保持时间为 2 个时钟周期就可以正确读取 AM29LV320D 存储器。 外部存储器接口为每个片选空间都提供了独立的片选控制寄存器,通过这些寄存器可以设置寄存器类型,读 / 写时序以及超时时钟周期数,具体可参见下表 片选控制寄存器 1 CEx_1
字段 数值 说明
15~13 Reserved

 

保留
14~12 MTYPE 000b 001b 010b 011b 100b 101b~111b 存储器类型 8 位宽异步存储器 16 位宽异步存储器 32 位宽异步存储器 32 位宽同步动态存储器 (SDRAM) 32 位宽同步静态突发存储器 (SBSRAM) 保留
11~8 READ SETUP 1~15 读建立时间
7~2 READ STROBE 1~63 读选通时间
1~0 READ HOLD 0~3 读保持时间
片选控制寄存器 2 CEx_2
字段 数值 说明
15~14 EXTENED HOLD READ 0~3 读延长保持时间
13~12 EXTENED HOLD WRITE 0~3 写延长保持时间
11~8 WRITE SETUP 1~15 写建立时间
7~2 WRITE STROBE 1~63 写选通时间
1~0 WRITE HOLD 0~3 写保持时间
片选控制寄存器 3 CEx_3
字段 数值 说明
15~8 Reserved

 

保留
7~0 TIMEOUT 0 1 N 255 超时字段(同步存储器超时字段无效) 超时功能被禁止 ARDY信号为低超过N个时钟周期,则发生超时错误
  因此,使用异步存储器要注意的问题是: 1 外部存储器连接信号 2 EMIF对异步存储器的配置 3 EMIF异步读操作 4 EMIF异步写操作 5 随就绪信号(ARDY)插入的额外周期   2 .同步突发静态存储器 (SBSRAM)        同步突发静态存储器是一种高密度、高速的存储器,同同步动态存储器相比,同步静态存储器不需要刷新,访问更加方便、快捷。 TMS320C55x 外部存储器接 支持 32 位宽无校验同步突发管道型静态存储器,同步突发静态存储器的工作频率在与 CPU 时钟同频或 CPU 时钟频率的 1/2         SBSRAM有流水和流通两种类型,但EMIF只支持流水型,在相同吞吐量的情况下,可以工作在更高的频率。         同步突发静态存储器所使用的信号包括数据总线 D[0..31] 、地 址总线 A[21..0] 、片选信号 CE0-CE3 、字节使能信号 BE0-BE3 ,此 外还有 SBSRAM 地址选通信号 SSADS 、输出使能信号 SSOE 、写 使能信号 SSWE 和存储器接口时钟 CLKMEM        接下来给出 C55x 外部存储器接口同 32 位无校验管道型 SBSRAM 的连接图。图中 SBSRAM 占用 CE0 空间, SBSRAM MODE 信号接到低电平使 SBSRAM 工作在 线性突发模式,其他未用的 SBSRAM 信号如 ZZ ADV ADSP GW 信号都接 成非活动状态。        如果所用的 SBSRAM 是有校验型存储器,连接时则应注意 SBSRAM 的校验 信号 DQP[d:a] 应当接地以减少功率消耗。       如果要使用 SBSRAM 的电源关闭模式,可以将 SBSRAM ZZ 引脚 C55x 的通用输入输出引脚相连接,通过通用输入输出引脚控制 SBSRAM 是否进入电源关闭模式。          控制 SBSRAM 接口的寄存器包括 EMIF 全局控制寄存器和片选 控制寄存器 CEx_1 ,接下来给出 SBSRAM 所需设置字段表。 SBSRAM 需要设置字段
所在寄存器 字段名称 数值 说明
片选控制寄存器 14~12 MTYPE 100b 32 位宽 SBSRAM
全局控制寄存器 11~9 MEMFRE Q 000b 001b CLKMEM 频率 CLKOUT 频率 CLKOUT 频率除 2
全局控制寄存器 7 WPE 0 1 后写使能 禁止后写 后写使能
全局控制寄存器 5 MEMCEN 0 1 存储器时钟使能 CLKMEM 保持高电平 CLKMEM 输出使能
全局控制寄存器 0 NOHOLD 0 1 外部保持控制 允许外部保持 禁止外部保持
  3 .同步突发动态存储器 (SDRAM)   TMS320C55x 外部存储器接口支持 16 位、 32 位宽, 64M 位和 128M SDRAM SDRAM 可以工作在 C55x 频率的 1/2 1/1 SDRAM 的引脚映射和寄存器配置表
SDRAM 及排列方式 使用芯 数量 配置位 占用 CE 空间数 边界 / 行地址 列地址
SDACC SDSIZE SDWID SDRAM EMIF SDRAM EMIF
64M 4M x16 1 0             0              0 2 BA[1:0] [11:0] A[14:12] SDA10 A[10:1] A[7:0] A[8:1]
64M 4M x16 2     1              0              0 4 BA[1:0] [11:0] A[15:13] SDA10 A[11:2] A[7:0] A[9:2]
64M 2M x32 1     1              0              1 2 BA[1:0 [10:0] A[14:13] SDA10 A[11:2] A[7:0] A[9:2]
64M 2M x32 2     1              0              1 4 BA[1:0 [10:0] A[14:13] SDA10 A[11:2] A[7:0] A[9:2]
128M 8M x16

以上是关于DSP之外部设备连接接口之EMIF的主要内容,如果未能解决你的问题,请参考以下文章

DSP和FPGA之间EMIF连接,使用外部中断上升沿触发,持续时间是多少?

TMS320DM642的emif(外部存储器接口)的设置结构

请教DSP与FPGA的连接问题

求助,C6747 EMIFB SDRAM工作不正常

dsp28335 是否没有emif这个接口,那怎么传送数给fpga,通过GPIO口就行吗

Linux SPI总线和设备驱动架构之二:SPI通用接口层

(c)2006-2024 SYSTEM All Rights Reserved IT常识