0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

变不可能为可能:如何实现DSP和SDRAM数据读取

电子工程师 来源:FPGA设计论坛 作者:FPGA设计论坛 2020-10-25 09:46 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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 中。

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 接口时,会有细微的区别,电路设计完毕后要进行认真而多方面的测试。

责任编辑:xj

原文标题:将FPGA作为接口芯片,如何实现DSP和SDRAM数据读取?

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dsp
    dsp
    +关注

    关注

    561

    文章

    8271

    浏览量

    368163
  • FPGA
    +关注

    关注

    1663

    文章

    22494

    浏览量

    638991
  • 芯片
    +关注

    关注

    463

    文章

    54389

    浏览量

    469054
  • SDRAM
    +关注

    关注

    7

    文章

    458

    浏览量

    57833

原文标题:将FPGA作为接口芯片,如何实现DSP和SDRAM数据读取?

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    为什么 RBS 位可能无法设置?

    设置状态,直到缓冲区被释放。 您能否解释一下为什么 RBS 位可能无法设置,或者在此设置中 LPC1768 CAN 是否存在任何已知问题? 感谢您的支持。
    发表于 04-21 07:22

    4Gb: x4, x8, x16 DDR3L SDRAM技术解析与设计要点

    , x16 DDR3L SDRAM的详细信息,希望能为各位电子工程师在设计过程中提供一些有价值的参考。 文件下载: MT41K256M16TW-107:PTR.pdf 一、DDR3L SDRAM简介
    的头像 发表于 04-08 15:20 247次阅读

    陶瓷天线的“不可能三角”:尺寸、增益、带宽的权衡与调试

    了,增益和带宽双双跳水;好不容易把增益调上去了,工作带宽又窄到踩线;好不容易拉宽了带宽,中心频点的性能又不达标。其实这背后,藏着陶瓷天线设计与调试中绕不开的「性能不可
    的头像 发表于 03-27 14:09 187次阅读
    陶瓷天线的“<b class='flag-5'>不可能</b>三角”:尺寸、增益、带宽的权衡与调试

    华南理工大学:超灵敏橡胶传感器,突破柔性传感“不可能三角”

    柔性传感器在医疗健康监测、机器人和可穿戴设备等领域具有广阔的应用前景,但长期以来,如何同时实现高灵敏度、宽应变响应范围和良好的线性度,一直是该领域难以攻克的“不可能三角”。传统柔性传感器受限于材料
    的头像 发表于 03-10 17:27 4721次阅读
    华南理工大学:超灵敏橡胶传感器,突破柔性传感“<b class='flag-5'>不可能</b>三角”

    破解园区能源“不可能三角”:安科瑞全栈式方案实现安全、绿色、经济的协同

    #1 园区微电网发展趋势:从“被动应对”走向“主动优化” 在“双碳”目标下,构建“安全清洁低碳、多元协同、智能普惠”的新型能源体系已成为能源转型的核心任务。尤其在新能源渗透率高的园区,风、光、储、充、热(冷)一体化微电网正在成为提升新能源消纳能力和系统能效的关键载体。 然而,风光出力的波动性、负荷需求的随机性,让园区能源规划和运行管理面临复杂性。传统的调度方式往往难以及时响应用户侧和电源侧的快速变化,造成
    的头像 发表于 03-04 15:17 148次阅读

    如何评估SDRAM的有效带宽

    在进行电子系统设计时,我们经常会用到SDRAM(SDR SDRAM或者DDRX SDRAM)作为缓冲单元,但是如何评估SDRAM的有效带宽呢(评估有效带宽才能够了解当前缓冲单元以及驱动
    的头像 发表于 01-12 09:17 534次阅读
    如何评估<b class='flag-5'>SDRAM</b>的有效带宽

    请问如何解决CW32L083系列微控制器在通信过程中可能出现的数据错误问题?

    如何解决CW32L083系列微控制器在通信过程中可能出现的数据错误问题?
    发表于 12-16 08:01

    配置文件损坏可能会带来哪些安全风险?

    配置文件损坏不仅会导致电能质量在线监测装置功能异常,还可能引发 数据安全、运维安全、设备安全、合规安全 四大类安全风险,尤其在电力系统、工业配电等关键场景中,风险可能传导至电网或生产系统,造成
    的头像 发表于 12-10 16:37 570次阅读
    配置文件损坏<b class='flag-5'>可能</b>会带来哪些安全风险?

    搭载新洁能NCE1216,解锁高效应用新可能

    在电子技术蓬勃发展的当下,功率半导体器件已成为推动电子系统高效运行的关键力量。搭载新洁能NCE1216,以其卓越的性能和广泛的应用场景,解锁高效应用新可能。技术亮点:赋能器件性能飞跃NCE1216
    的头像 发表于 10-25 16:05 803次阅读
    搭载新洁能NCE1216,解锁高效应用新<b class='flag-5'>可能</b>

    掌握NFC标签批量读取,轻松提升数据采集效率!

    NFC批量读取技术解决传统单点读取效率低、成本高、易出错等问题,实现高效、自动化数据采集。
    的头像 发表于 09-23 16:11 634次阅读
    掌握NFC标签批量<b class='flag-5'>读取</b>,轻松提升<b class='flag-5'>数据</b>采集效率!

    连接领域新突破:太空、量子新探索

    通过将连接器的性能推向传统极限之外,雷迪埃不仅使“不可能”成为可能,更使其具备可持续发展的能力。
    的头像 发表于 09-15 09:38 2011次阅读
    连接领域新突破:太空、量子新探索

    “iPhone 美国制造或许永远无法实现

    电子发烧友网综合报道 日前,彭博社记者 Mark Gurman 发文称,正如他一段时间以来一直在暗示的那样,苹果不可能在美国大规模生产 iPhone—— 至少短期内不可能。如果从成本、规模和工程角度
    的头像 发表于 08-13 09:23 3414次阅读

    如何使用QSPI模块读取特殊规则的数据(NCV7725B)?

    如何使用QSPI模块读取特殊规则的数据(NCV7725B)。在CS拉低时,如何获取CLK由低高之前的SO数据实现
    发表于 08-08 06:20

    解码磁集成与自动化生产的“不可能三角”

    磁集成通过将电感、变压器、滤波器等分立磁性元件的功能整合至单一组件中,显著提升了功率密度与系统效率,同时大幅缩小了磁性元件产品体积。 但同时磁集成也导致磁性元件的物理结构和电磁特性复杂化,这使得磁性元件传统自动化生产模式面临多重矛盾。 多位接受《磁性元件与电源》采访的权威专家指出,仅从生产维度评估,磁集成技术对磁性元件自动化生产并不“友好”。 本文将结合部分企业的观点,分析磁集成自动化难题产生的原因、具
    的头像 发表于 07-24 11:58 1020次阅读
    解码磁集成与自动化生产的“<b class='flag-5'>不可能</b>三角”

    FreeRTOS读取ADS1299数据有误

    您好,请问,用stm32的FreeRTOS的队列对ADS1299传感器读取数据,已设置采样率为2khz 在采集任务中:通过spi读取数据——滤波(-
    发表于 05-05 22:48