积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> 接口设计 >> 应用论文
  相关分类: 相关文章 | 应用论文 | 新产品 | 下载 |
利用FPGA实现MMC2107与SDRAM接口设计
 
作者:陈 琳 蒋烈辉 马鸣锦 周 超   来源:单片机及嵌入式系统应用    点击数:140   更新时间:2008-3-3
您可以添加到网摘 让更多人关注此文章:

    

摘要:介绍基于现场可编程门阵列(FPGA),利用VHDL语言设计实现MMC2107与SDRAM接口电路。文中包括MMC2107组成结构、SDRAM存储接口结构和SDRAM控制状态机的设计。

关键词:现场可编程门阵列 SDRAM EBI VHDL 状态机 K4S560832A


引言


在嵌入式系统中,微控制器中通常有一定容量的存储器,用来存放程序和数据,但由于片内存储器受器件规模和生产成本的制约,其容量通常不能满足用户实际需求,还需要使用半导体存储器件来扩展存储空间。如果采用SDRAM进行存储扩展,可以大幅度地降低系统设计成本;但SDRAM控制时序比较复杂,给系统设计带来很大困难。为了方便使用SDRAM,实现嵌入式系统中存储的大容量扩展,本文介绍一种新颖的解决方案:采用FPGA技术和VHDL语言,实现MMC2107微控制器与SDRAM的接口设计。


1 SDRAM内部结构


SDRAM是一种具有同步接口的高速动态随机存储器。本文语选用的是三星公司生产的32M×8位SDRAM器件K4S560832A。K4S560832A存储总容量256M位,内部分成4个全,每个体8M字节,内部结构如图1所示。


K4S560832A为了能满足各种系统的使用要求,提供了时钟频率、猝发长度、延时节拍等可编程参数。在芯片上电后可以通过地址线A12~A0配置,芯片只有在完成配置后才能进入正常工作状态。在具体操作SDRAM时,首先,必须进行初始化配置,即写模式寄存器,以便确定DRAM列选延迟节拍数、猝发类型、猝发长度等工作模式。然后通过ACT命令激活对应地址的组,同时输入行地址。最后,通过RD或WR命令输入列地址,将相应数据读出或写入到对应的地址。操作完成后,用相关命令中止读或写操作。在没有操作的时候,每64ms必须对所有存储单元刷新一遍(8192行),防止数据丢失。


2 MMC2107组成结构及外部总线接口


MMC2107是32位M-CORE系列MCU,是以M210microRISC核为CPU,最高系统时钟可达33MHz;在MIPS。MMC2107是基于M210 CPU的、通用MCU系列中的第一个成员,具有很低的功耗;在主模式下,以最大系统时钟运行,并且片内所有模块全部处于运行状态时,最大的工作电流为200mA,特别适合于由电池供电的应用场合。MMC2107的组成框图如图2所示。


从图2可以看出,MMC2107片内除了M210核以外,主要还有128KB Flash、8KB SRAM、外部总线接口、时钟模块、复位模块、M-CORE到IPBUS之间的接口、中断控制器模块、8位边沿端口苇、2个可编程间隔定时器(PIT1和PIT2)、看门狗定时器WDT、2个定时器模块(TIM1和TIM2)、串行外围接口SPI、2个串行通信接口(SCI1和SCI2)、ADC模块、多个通用的输入/输出信号、TAP控制器等功能及模块。


MMC2107在主模式和仿真模式下,支持MCORE访问外部的存储器或设备。这时,M-CORE的本地总线(内部总线)扩展到片外,由外部总线接口(EBI)负责控制M-CORE局部总线和外地址空间之间的信息传送。EBI有23位地址总线A[22:0]和4个片选信号CS[3:0],使M-CORE的外部存储存储器地址空间可达32MB。EBI的数据传送宽度可以是32位的,也可以是16位的,可以由片选模块按4个片选通道分别予以设定,即片选通道0~3可各自编程选定。为了便于与各种速度的外设备相连,EB1在片选模块的控制下,可以形成所需长度的外总线周期。在EBI发起一个外部数据传送以后,EBI驱动并保持传送所需的各种信号,直到该总线周期结束。使EBI结束现行总线周期的方法有两种:EBI收到了由外逻辑发来的传送响应信号TA或TEA,或者收到了内部传送响应信号,片选模块可以为4个片选通道分别选择总线周期结束的方法。

图2 MMC2107组成框图

3 FLEX10K系列FPGA


随着深亚微米VLSI技术的迅速发展,FPGA/CPLD等可编程器件的资源有极大的发展。尤其是FPGA,器件的集成度已达到上千万门,系统工作频率已达到几百MHz。FLEX10K系列FPGA是工业界第一个嵌入式的可编程逻辑器件。由于其具有高密度、低成本、低功率等特点,所以脱颖而出成为当今Altera CPLD中应用前景最好的器件系列。到目前为止,FLEX 10K系列已经推出了FLEX10K、FLEX10KA、FLEX10KB、FLEX 10KV和FLEX10KE等5种分支系列,其集成度也达到前所未有的250 000门。FLEX10K主要由嵌入式阵列块(EAB)、逻辑阵列块(LAB)、快速布线通道(FastTrack)和I/O单元组成,具有如下特点:


①片上集成了实现宏函数的嵌入式阵列和实现普通函数的逻辑阵列;


②高密度,具有10 000~250 000个可用门;


③支持多电压(multivolt)I/O接口,低功耗,遵守全PCI总线规定,内带JTAG边界扫描测试电路;


④通过外部EPROM、集成控制器或JTAG接口实现在电路可重构(ICR);


⑤快速、可预测连线延时的快速通道连续式布线结构;


⑥实现高速、多输入逻辑函数的专用级联链;


⑦增强功能的I/O引脚,每个引脚都有一个独立的三态输出使能控制,都有漏极开路选择;


⑧具有快速建立时间和时钟到输出延时的外部寄存器;


⑨多种封装方式可任意选择。


本文所采用的FLEX 10K系列器件是FLEX 10KA EPF10K30AQC240引脚器件。


4 MMC2107微控制器SDRAM接口设计


本文介绍MMC2107外部SDRAM存储系统的实际存储容量为32M×32位,使用4片三星公司生产的K4S560832A存储器芯片。系统MMC2107支持对存储单元的读写和刷新。MMC2107对读写存储器的读写以32位单位进行(数据宽度32位),每次读写由外部决定访存周期。采用分散刷新方式,7.8μs执行1次自动刷新命令;如果长时间没有访存操作,自动进入低功耗模式。


4.1 SDRAM存储接口结构


本文使用了1片FPGA可编程器件来设计SDRAM控制接口(下文称为SDRAM控制器),SDRAM控制器接受MCU的写、读命令。由于K4S560832A时钟频率为133MHz,SDRAM要求在64ms内刷新8192行数据,因此该器件每间隔7.8μs执行一次自动刷新命令,计数器数值应小于7.8μs×133MHz=1037.4。当计数器计满1037次时,内部设置一个刷新定时器给出刷新命令,由SDRAM内部状态控制器产生对K4S460832A的相应操作命令序列。数据线不通过SDRAM控制器,4片SDRAM各输出1字节宽度的数据。SDRAM存储系统基本结构如图3所示。

图5 SDRAM存储器读状态机及时序关系

    4.2 SDRAM控制状态机设计


SDRAM状态机用来实现其初始化、命令仲裁、单字读/写、猝发读/写、自动刷新和自刷新操作。


(1)存储器器件初始化


存储器初始化过程严格按照K4S560832A上电顺序要求,对器件完成初始化设置。上电后延时200μs后对所有体进行预充电,计数器数值=200μs×133MHz=26 000次。然后,给出两个自动刷新命令,进行模式设置,初始化结束后进入空闲状态T0,等待对存储器的访问命令。其过程状态如图4所示。


(2)命令仲裁


完成存储器上电初始化后,SDRAM进入空闲态T0,在该状态进行命令仲裁。由于读写命令来自MCU,在同一时刻只能有一个有效,它们之间不需要仲裁。读写命令和刷新命令的仲裁原则为先来先服务,同时到达时读写优先。若长时间没有访问请求(SDRAM控制状态机内部定时器探测),则令存储器进入低功耗模式。在存储器进入低功耗模式后,读写命令可以把状态从低功耗模式拉出,而自动刷新请求则被屏蔽。


    (3)存储器读


由于嵌入式系统时钟频率较低,置存储器读延时节拍数(CL)为“2”,读操作由四个状态组成。由于存储器件读操作分为单字读和猝发读两种方式,因此,设计一个计数器来区分两种读操作,并用该计数器定义猝发读的长度。当计数器=0时,进行单字读操作;当计数器≠0时,进行猝发读操作,计数器在时钟信号的触发下递减,连续读出若干个数据,直至计数器=0,完成猝发读操作。其状态转换及时序关系如图5所示。


(4)存储器写


存储器写操作由三个状态组成。其状态转换及时序关系如图6所示。由于存储器件写操作分为单字写和猝发写两种方式,因此设计一个计数器来区分两种写操作,并用该计数器来定义猝发写的长度。当计数器=0时,进行单字节写操作;当计数器≠0时,进行猝发写操作。计数器在时钟信号的触发下递减,连续写入若干个数据直至计数器=0,完成猝发写操作。

图7 自动刷新和自刷新状态转换

    (5)存储器自动刷新和自刷新


自动刷新操作由2个节拍组成,自刷新由11个节拍组成。进入自刷新模式之前和退出自刷新模式后各进行1次自动刷新操作。自动刷新和自刷新操作状态转换关系如图7所示。


SDRAM状态机设计完成后,利用VHDL语言对SDRAM状态机进行行为描述,然后编译、模拟仿真和适配下协,并注意合理的引脚定义,充分利用芯片资源,由于FPGA通用、高速及价廉的特点,因此具有很好的应用前景,尤其适用于需要大容量存储器扩展的嵌入式系统中。


[1]



相关文章
· 一种基于FPGA实现层析重建的加速方法[20]
· 基于FPGA的FFT处理器设计[20]
· 数字拷贝机的FPGA设计[26]
· 利用视频套件加速FPGA上的视频开发[11]
· ARM7与FPGA在工业控制的结合[40]
热门评论排行
·VHDL设计中电路简化问题的
·江苏嵌入式Linux教育培训
·锐极LINUX驱动培训班定于
·基于实时操作系统μC/OS-
·ARM处理器应用开发4步骤

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
各种冲值卡批发销售!独家特价!
特价销售GPS车载导航系统!
数字电视批发销售!你想不到的价格!
品牌相机批发销售!你想不到的价格!
品牌手机批发销售!你想不到的价格!
笔记本电脑批发销售!你想不到的价格!
那一年我做了鸭子2
那一年我做了鸭子1
等你十年(下)
等你十年(上)
 
热门下载 [更多]
 
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
[ ] 实用电源电路集锦
 
论坛新帖 [更多]
 
新店开业,部分开发板&元器件特...
[原创]VB编程RS232串口...
红外摄像机控制故障分析与处理方...
红外防水摄像机在智能视频监控中...
步进电机不用驱动芯片能驱动吗?...
我要选一块双串口,带AD的单片...
[分享]运放和功放的区别是什么...
4×4矩阵式键盘的课程设计...
做过高速信号滤波的高手帮忙...
做视频信号放大器,各位有什么好...

 
赞助商 [更多]
 


ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网