利用FPGA解决TMS320C54x与SDRAM的接口问题

发布者:cwm6269310最新更新时间:2006-11-02 来源: 电子技术应用关键字:存储器  DSP  定时 手机看文章 扫描二维码
随时随地手机看文章

在DSP应用系统中,需要大量外扩存储器的情况经常遇到。例如,在数码相机和摄像机中,为了将现场拍摄的诸多图片或图像暂存下来,需要将DSP处理后的数据转移到外存中以备后用。从目前的存储器市场看,SDRAM由于其性能价格比的优势,而被DSP开发者所青睐。DSP与SDRAM直接接口是不可能的。FPGA(现场可编程门阵列)由于其具有使用灵活、执行速度快、开发工具丰富的特点而越来越多地出现在现场电路设计中。本文用FPGA作为接口芯片,提供控制信号和定时信号,来实现DSP到SDRAM的数据存取。

1 SDRAM介绍

本文采用的SDRAM为TMS626812A,图1为其功能框图。它内部分为两条,每条1M字节,数据宽度为8位,故存储总容量为2M字节。

所有输入和输出操作都是在时钟CLK上升沿的作用下进行的,刷新时钟交替刷新内部的两条RAM。TMS626812A主要有六条控制命令,它们是:条激尖/行地址入口、列地址入口/写操作、列地址入口/读操作、条无效、自动刷新、自动刷新。SDRAM与TMS320C54x接口中用到的命令主要有:MRS、DEAC、ACTV、WRT-P、READ-P和REFR。这里,设计目的就是产生控制信号来满足这些命令的时序要求。关于TMS626812A的具体说明可以查看其数据手册。

2 SDRAM与TMS320C54x之间的通用接口

图2是DSP与SDRAM的通用接口框图,图中DSP I/F代表TMS320C54x端接口单元,SDRAM CNTL代表SDRAM端接口控制单元。SDRAM被设置成一次性读写128个字节,而DSP一次只读写一个字节,因而建立了两个缓冲区B0、B1来缓存和中转数据。B0、B1大小都为128字节,而且映射到DSP中的同一地址空间。

尽管B0、B1对应于同一地址空间,但对两个缓冲区不能在同一时刻进行合法访问。实际上,当B0被DSP访问时,B1就被SDRAM访问,反之也成立。若DSP向B1写数据,SDRAM就从B0读数据;而当SDRAM的数据写到B0中时,DSP就从B1读数据。两者同时从同一缓冲区读或写都将激发错误。上边所述的数据转移方式有两种好处:一是加速了TMS320C54x的访问速度,二是解决了二者之间的时钟不同步问题。

3 FPGA中的硬件设计

TMS320C54x为外部存储器的扩展提供了下列信号:CLK、CS、AO~A15、D0~D15、RW、MATRB、ISTRB、IS,而SDRAM接收下列信号:CLK、CKE、CS、CQM、W、RAS、CAS、A0~A11。由于两端控制信号不同,需要在DSP与SDRAM之间加上控制逻辑,以便将从DSP过来的信号解释成SDRAM能够接收的信号,图3是用FPGA设计的顶层硬件接口图。

图中主要由三个模块:DSP-IQ、DMA-BUF和SD-CMD。其中DSP-IO是DSP端的接口,用来解码TMS320C54x发送的SDRAM地址和命令。DMA-BUF代表缓冲区BO、B1。SD_CMD模块用来产生SDRAM访问所需的各种信号。

DSP_IO模块又包括IO_DMA、DSP_BUF和DSP_READ。IO_DMA产生SDRAM的命令信号,即图3中的DSP_RDY、DSP_SD_RW、DSP_SD_BANK_SW、DSP_SD_ADDR[20..0]、DSP_SD_ADDR_RESET、DSP_SD_START。DSP_BUF产生访问B0、B1的地址、数据和控制信号,图3中指DSP_SD_BUFCLKI、DSP_SD_BUFCLKO、DSP_SD_BUFWE、DSP_SD_BUFADDR[6..0]、DSP_SD_BUFIN[7..0]。DSP-READ子模块用来控制DSP的读写方向。

DMA_BUF分为B0、B1两个缓冲区,用来进行数据传送,每个缓冲区的输入输出信号包括:CLKI、CLKO、WE、ADDR[6-0]、DATA_IN[7-0]、DATA_OUT[7-0]。BANK_SW是一个开关信号,用于DSP和SDRAM对B0、B1的切换访问。

SD_CMD模块包括刷新、读、写功能。当DSP芯片发出SDRAM读命令时,128字节的数据从SDRAM中读出来并被存储到B0或B1中,当DSP发出写命令之时,128字节的数据传到B0或B1之中并被最终写到SDRAM中。

图3 用FPGA设计的顶层硬件接口图

4 软件设计

TMS626812A SDRAM有两兆字节的存储容量。所以DSP用两个I/O地址向FPGA传送访问SDRAM的高低地址。此文中,该两个I/O地址对应用图4中的03h(DMA_ADDH)和04h(DMA_ADDL)。另外,还有一个I/O地址(图4中的05h)用来向FPGA传送命令产生SDRAM访问的信号。

DSP向SDRAM写数据时的操作步骤如下:

(1)数据先被写到B0或B1。

(2)SDRAM的访问地址经由DSP的I/O地址DMA_ADDH和DMA_ADDL发送到FPGA中。

(3)DSP向FPGA发出一个命令(I/O地址为DMA_CTL)产生控制信号,使SDRAM从B0或B1中读取数值。

DSP从SDRAM读数据的操作步骤如下:

(1)DSP传送访问SDRAM的地址。

(2)DSP经由FPGA传送一个命令,使得数据从SDRAM中读到FPGA中。

(3)DSP从B0或B1中读得数据。

  图4为DSP中与数据传送相关的各类存储器的分配情况。

具体设计时,应参考相关资料进行补充。不同的DSP与不同类型的SDRAM接口时,会有细微的区别,电路设计完毕后要进行认真而多方面的测试。

关键字:存储器  DSP  定时 引用地址:利用FPGA解决TMS320C54x与SDRAM的接口问题

上一篇:基于DSP平台的USB接口设计
下一篇:ST-BUS总线接口模块的Verilog HDL设计

推荐阅读最新更新时间:2024-05-13 18:15

基于DSP+μC/OS-Ⅱ的励磁系统的研究
同步电动机的磁场采用直流励磁,功率因数可以超前、滞后或单位功率因数,运行中可以向电网馈送无功功率,改善电网功率因数,并且具有运行稳定性好、转速不随负载变化而改变和运行效率高等特点,因此在煤矿等工业现场应用广泛。而同步电动机励磁对于同步电动机的运行起到重要作用,传统励磁系统采用晶闸管移相全桥电路实现励磁。该励磁系统需要用到同步变压器定相,涉及器件较多,维护复杂,影响了励磁系统的安全运行,而且传统的嵌入式设计在软件管理上采用单任务的顺序机制,系统稳定性实时性差。   本文提出采用美国德州仪器公司(TI)的数字信号处理器芯片TMS320LF2812作为控制核心,将实时操作系统DSP+μC/OS-Ⅱ,应用于DSP的程序设计中,以
[嵌入式]
PC104总线与DSP数据通信接口设计
 从1982年世界上诞生了首枚DSP芯片后,经过20多年的发展,现在的DSP属于第五代DSP器件。其系统集成度更高,已将DSP芯核及外围器件综合集成到单一芯片上,DSP逐渐成为数字信号处理器的代名词。同时,数字信号处理技术在理论和算法上也取得了突破性进展,他本身也形成了比较完善的理论体系,包括数据采集、离散信号与离散系统分析、信号估计、信号建模、信号处理算法等内容。DSP技术已在航空航天、遥测遥感、生物医学、自动控制、振动工程、通讯雷达、水文科学等许多领域有着十分广泛的应用。通过数据采集系统将原始数据传送到DSP,DSP完成算法的处理是工程上的一种应用模式,数据的传送可以通过各种计算机总线来实现。   PC104是一种专门为嵌
[电源管理]
PC104总线与<font color='red'>DSP</font>数据通信接口设计
E2ROM存储器读写器的制作和使用
随着总线控制技术的应用,彩电上大多采用串行非易失存储器作为数据的存储这种存储器目前常用的有24C××、93C××两种系列,24C××系列有等型号,93C××系列有93C46/56/66/76/86等型号。对于存储器损坏或数据丢失引发一些奇怪的故障已成为维修中一个棘手的问题。特别是存储器的更换,大家知道,市面上出售的存储器芯片都是空白的,需要使用专门的读写器来写入数据。不过串行存储器的接口电路简单,大家可利用电脑的打印机并行接口制作一个读写器,下面介绍其制作和使用方法。   一、制作方法   制作材料:在电子市场上购买可拆卸打印头,发光二极管LED,二极管电阻R1:1kΩ、R2:2kΩ,电解电容C:47μF/16V各一只,两个8
[模拟电子]
E2ROM<font color='red'>存储器</font>读写器的制作和使用
基于DSP的液晶显示若干问题的探讨
1 引言 信息时代,信息的获取最终要通过显示来实现人机交换,随着电子产品集成化的发展趋势,液晶显示屏在便携式仪器中实现图形和文本混合显示应用愈加广泛 。DSP作为控制处理器以其高速、高精度性能广泛应用于数据采集系统。因此采用DSP控制器实现液晶显示越来越普遍。但是在实际应用中常会出现电压匹配、抗干扰、PCB布线和响应速度、时序匹配等诸多问题,本文针对出现的这些问题提出具体解决方案,并给出编程实例。 2 硬件结构 TMS320LF2407A是TI公司推出的一款高性能定点DSP控制器。液晶显示模块采用的驱动控制器为KS0108B及其兼容显示控制驱动器。图1为液晶显示模块与DSP的硬件电路,系统主要由DSP控制器、隔离缓冲电路和液
[电源管理]
基于<font color='red'>DSP</font>的液晶显示若干问题的探讨
浅析PIC单片机定时
什么是定时器? 定时器顾名思义就是用来定时的。在单片机应用中常常用于各种各样的定时。比如让LED灯每隔 1S 亮一次。 这个1S 就是由定时器做到的。 指令周期 指令周期就是单片机执行一个指令所花费的时间。这也是定时器定时的最小时间单位。时钟频率/4=指令频率。1/指令频率=指令周期。 假设现在的时钟是4MHZ ,4MHz的时钟经过4分频后变成了 1MHz 其周期为0.0000001s也就是1us,这个1us就是指令周期,这1us也就是定时器定时的最小单位。 定时器与预分频器 假设在没有预分频器情况下。开启定时器 每隔一个指令周期定时器就加一。假设时钟是4MHz 也就是每隔 1us 定时器加一。 如果有了预分频器假设
[单片机]
浅析PIC单片机<font color='red'>定时</font>器
STM32F4-浮点DSP库的MDK开发环境的设置
在网上看了一下关于DSP的库的开发环境设置,写的有些乱,现在来整理一下,做一下MARK吧! 步骤如下: 1 . 建立工程,添加相关必要的文件到工程中。 2. 打开 option for target 选择 Target 标签,在code generatio中,将floating point hardware 选择 USE FPU。 3. 编译你的工程,保证通过。当然也不一定需要编译通过,先做编译是为了后面添加浮点库做准备,这样发现问题和知道哪里出问题。 4. 打开 option for target 选择 C/C++ 标签, 在define中添加:USE_HAL_DRIVER,STM32F407xx,__TARGET_FPU
[单片机]
STM32系统学习——TIM(基本定时器)
一、定时器分类 STM32F1 系列中,除了互联型的产品,共有 8 个定时器,分为基本定时器,通用定时器和高级定时器。基本定时器 TIM6 和 TIM7 是一个 16 位的只能向上计数的定时器,只能定时,没有外部 IO。通用定时器 TIM2/3/4/5 是一个 16 位的可以向上/下计数的定时器,可以定时,可以输出比较,可以输入捕捉,每个定时器有四个外部 IO。高级定时器 TIM1/8是一个 16 位的可以向上/下计数的定时器,可以定时,可以输出比较,可以输入捕捉,还可以有三相电机互补输出信号,每个定时器有 8 个外部 IO。 二、功能框图剖析 基本定时器的核心是时基,通用计时器和高级定时器也有。
[单片机]
STM32系统学习——TIM(基本<font color='red'>定时</font>器)
便携式应用中的音频接口规格概述
针对不同的数字音频子系统,催生出几种微处理器或DSP(数字信号处理器)与音频器件间用于数字转换的接口。受系统实际性能的限制,通常情况下接口的选择取决于音频通道数目、数据处理及采样率等参数。对便携式系统来说,功率耗散与物理器件的尺寸通常是同等重要的。本文将介绍目前市场中存在的几种音频接口规格。 PCM规格 最简单的音频接口之一是所谓的PCM(脉冲编码调制)接口。严格地说,所有数字信号进行传输都要经过PCM,并且需要仔细参照用于数字电话的单声道机制。PCM接口由时钟脉冲(BCLK)、帧同步信号(FS)及数据队列组成,每个PCM对应一个将要接收或将要发送的数据。 在FS信号的上升沿,数据传输从MSB(Most Signifi
[嵌入式]
小广播
最新应用文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved