- 相關推薦
利用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個片選通道分別選擇總線周期結束的方法。
圖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引腳器件。
圖3 SDRAM存儲系統基本結構 圖4 SDRAM存儲器初始化狀態機
4 MMC2107微控制器SDRAM接口設計
本文介紹MMC2107外部SDRAM存儲系統的實際存儲容量為32M×32位,使用4片三星公司生產的K4S560832A存儲器芯片。系統MMC2107支持對存儲單元的讀寫和刷新。MMC2107對讀寫存儲器的讀寫以32位單位進行(數據寬度32位),每次讀寫由外部決定訪存周期。采用分散刷新方式,7.8μs執行1次自動刷新命令;如果長時間沒有訪存操作,自動進入低功耗模式。
4.1 SDRAM存儲接口結構
本文使用了1片FPGA可編程
【利用FPGA實現MMC2107與SDRAM接口設計】相關文章:
MPC8272總線與DSP HPI總線接口的FPGA實現03-07
談DSP HPI總線與MPC8272總線接口的FPGA實現03-08
PCI總線協議的FPGA實現及驅動設計03-18