利用FPGA实现MMC2107与SDRAM的接口设计
利用FPGA实现MMC2107与SDRAM的接口设计 介绍基于现场可编程门阵列(FPGA),利用VHDL语言设计实现MMC2107 与SDRAM接口电路。文中包括MMC2107组成结构、SDRAM存储接口结构和 SDRAM控制状态机的设计。引言 在嵌入式系统中,微控制器中通常有一定容量的存储器,用来存放程序和数 据,但由于片内存储器受器件规模和生产成本的制约,其容量通常不能满足用户实 际需求,还需要使用半导体存储器件来扩展存储空间。如果采用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行),防止数据丢失。
图1 K4S560832A内部结构 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个片选通道分别选择 总线周期结束的方法。