在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            關 閉

            新聞中心

            EEPW首頁 > 工控自動化 > 設計應用 > 利用FPGA實現MMC2107與SDRAM接口設計

            利用FPGA實現MMC2107與SDRAM接口設計

            作者: 時間:2004-12-08 來源:網絡 收藏

            摘要:介紹基于現場可編程門陣列(),利用VHDL語言設計實現2107與接口電路。文中包括2107組成結構、存儲接口結構和控制狀態(tài)機的設計。

            關鍵詞:現場可編程門陣列 SDRAM EBI VHDL 狀態(tài)機 K4S560832A

            引言

            在嵌入式系統中,微控制器中通常有一定容量的存儲器,用來存放程序和數據,但由于片內存儲器受器件規(guī)模和生產成本的制約,其容量通常不能滿足用戶實際需求,還需要使用半導體存儲器件來擴展存儲空間。如果采用SDRAM進行存儲擴展,可以大幅度地降低系統設計成本;但SDRAM控制時序比較復雜,給系統設計帶來很大困難。為了方便使用SDRAM,實現嵌入式系統中存儲的大容量擴展,本文介紹一種新穎的解決方案:采用技術和VHDL語言,實現2107微控制器與SDRAM的接口設計。

            1 SDRAM內部結構

            SDRAM是一種具有同步接口的高速動態(tài)隨機存儲器。本文語選用的是三星公司生產的32M8位SDRAM器件K4S560832A。K4S560832A存儲總容量256M位,內部分成4個全,每個體8M字節(jié),內部結構如圖1所示。

            K4S560832A為了能滿足各種系統的使用要求,提供了時鐘頻率、猝發(fā)長度、延時節(jié)拍等可編程參數。在芯片上電后可以通過地址線A12~A0配置,芯片只有在完成配置后才能進入正常工作狀態(tài)。在具體操作SDRAM時,首先,必須進行初始化配置,即寫模式寄存器,以便確定DRAM列選延遲節(jié)拍數、猝發(fā)類型、猝發(fā)長度等工作模式。然后通過ACT命令激活對應地址的組,同時輸入行地址。最后,通過RD或WR命令輸入列地址,將相應數據讀出或寫入到對應的地址。操作完成后,用相關命令中止讀或寫操作。在沒有操作的時候,每64ms必須對所有存儲單元刷新一遍(8192行),防止數據丟失。

            圖1 K4S560832A內部結構

            2 MMC2107組成結構及外部總線接口

            MMC2107是32位M-CORE系列MCU,是以M210microRISC核為CPU,最高系統時鐘可達33MHz;在MIPS。MMC2107是基于M210 CPU的、通用MCU系列中的第一個成員,具有很低的功耗;在主模式下,以最大系統時鐘運行,并且片內所有模塊全部處于運行狀態(tài)時,最大的工作電流為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發(fā)起一個外部數據傳送以后,EBI驅動并保持傳送所需的各種信號,直到該總線周期結束。使EBI結束現行總線周期的方法有兩種:EBI收到了由外邏輯發(fā)來的傳送響應信號TA或TEA,或者收到了內部傳送響應信號,片選模塊可以為4個片選通道分別選擇總線周期結束的方法。

            圖2 MMC2107組成框圖

            3 FLEX10K系列

            隨著深亞微米VLSI技術的迅速發(fā)展,FPGA/CPLD等可編程器件的資源有極大的發(fā)展。尤其是FPGA,器件的集成度已達到上千萬門,系統工作頻率已達到幾百MHz。FLEX10K系列FPGA是工業(yè)界第一個嵌入式的可編程邏輯器件。由于其具有高密度、低成本、低功率等特點,所以脫穎而出成為當今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總線規(guī)定,內帶JTAG邊界掃描測試電路;

            ④通過外部EPROM、集成控制器或JTAG接口實現在電路可重構(ICR);

            ⑤快速、可預測連線延時的快速通道連續(xù)式布線結構;

            ⑥實現高速、多輸入邏輯函數的專用級聯鏈;

            ⑦增強功能的I/O引腳,每個引腳都有一個獨立的三態(tài)輸出使能控制,都有漏極開路選擇;

            ⑧具有快速建立時間和時鐘到輸出延時的外部寄存器;

            ⑨多種封裝方式可任意選擇。

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

            圖3 SDRAM存儲系統基本結構 圖4 SDRAM存儲器初始化狀態(tài)機

            4 MMC2107微控制器SDRAM接口設計

            本文介紹MMC2107外部SDRAM存儲系統的實際存儲容量為32M32位,使用4片三星公司生產的K4S560832A存儲器芯片。系統MMC2107支持對存儲單元的讀寫和刷新。MMC2107對讀寫存儲器的讀寫以32位單位進行(數據寬度32位),每次讀寫由外部決定訪存周期。采用分散刷新方式,7.8μs執(zhí)行1次自動刷新命令;如果長時間沒有訪存操作,自動進入低功耗模式。

            4.1 SDRAM存儲接口結構

            本文使用了1片FPGA可編程器件來設計SDRAM控制接口(下文稱為SDRAM控制器),SDRAM控制器接受MCU的寫、讀命令。由于K4S560832A時鐘頻率為133MHz,SDRAM要求在64ms內刷新8192行數據,因此該器件每間隔7.8μs執(zhí)行一次自動刷新命令,計數器數值應小于7.8μs133MHz=1037.4。當計數器計滿1037次時,內部設置一個刷新定時器給出刷新命令,由SDRAM內部狀態(tài)控制器產生對K4S460832A的相應操作命令序列。數據線不通過SDRAM控制器,4片SDRAM各輸出1字節(jié)寬度的數據。SDRAM存儲系統基本結構如圖3所示。

            圖5 SDRAM存儲器讀狀態(tài)機及時序關系

            4.2 SDRAM控制狀態(tài)機設計

            SDRAM狀態(tài)機用來實現其初始化、命令仲裁、單字讀/寫、猝發(fā)讀/寫、自動刷新和自刷新操作。

            (1)存儲器器件初始化

            存儲器初始化過程嚴格按照K4S560832A上電順序要求,對器件完成初始化設置。上電后延時200μs后對所有體進行預充電,計數器數值=200μs133MHz=26 000次。然后,給出兩個自動刷新命令,進行模式設置,初始化結束后進入空閑狀態(tài)T0,等待對存儲器的訪問命令。其過程狀態(tài)如圖4所示。

            (2)命令仲裁

            完成存儲器上電初始化后,SDRAM進入空閑態(tài)T0,在該狀態(tài)進行命令仲裁。由于讀寫命令來自MCU,在同一時刻只能有一個有效,它們之間不需要仲裁。讀寫命令和刷新命令的仲裁原則為先來先服務,同時到達時讀寫優(yōu)先。若長時間沒有訪問請求(SDRAM控制狀態(tài)機內部定時器探測),則令存儲器進入低功耗模式。在存儲器進入低功耗模式后,讀寫命令可以把狀態(tài)從低功耗模式拉出,而自動刷新請求則被屏蔽。


            (3)存儲器讀

            由于嵌入式系統時鐘頻率較低,置存儲器讀延時節(jié)拍數(CL)為“2”,讀操作由四個狀態(tài)組成。由于存儲器件讀操作分為單字讀和猝發(fā)讀兩種方式,因此,設計一個計數器來區(qū)分兩種讀操作,并用該計數器定義猝發(fā)讀的長度。當計數器=0時,進行單字讀操作;當計數器≠0時,進行猝發(fā)讀操作,計數器在時鐘信號的觸發(fā)下遞減,連續(xù)讀出若干個數據,直至計數器=0,完成猝發(fā)讀操作。其狀態(tài)轉換及時序關系如圖5所示。

            (4)存儲器寫

            存儲器寫操作由三個狀態(tài)組成。其狀態(tài)轉換及時序關系如圖6所示。由于存儲器件寫操作分為單字寫和猝發(fā)寫兩種方式,因此設計一個計數器來區(qū)分兩種寫操作,并用該計數器來定義猝發(fā)寫的長度。當計數器=0時,進行單字節(jié)寫操作;當計數器≠0時,進行猝發(fā)寫操作。計數器在時鐘信號的觸發(fā)下遞減,連續(xù)寫入若干個數據直至計數器=0,完成猝發(fā)寫操作。

            圖7 自動刷新和自刷新狀態(tài)轉換

            (5)存儲器自動刷新和自刷新

            自動刷新操作由2個節(jié)拍組成,自刷新由11個節(jié)拍組成。進入自刷新模式之前和退出自刷新模式后各進行1次自動刷新操作。自動刷新和自刷新操作狀態(tài)轉換關系如圖7所示。

            SDRAM狀態(tài)機設計完成后,利用VHDL語言對SDRAM狀態(tài)機進行行為描述,然后編譯、模擬仿真和適配下協,并注意合理的引腳定義,充分利用芯片資源,由于FPGA通用、高速及價廉的特點,因此具有很好的應用前景,尤其適用于需要大容量存儲器擴展的嵌入式系統中。



            關鍵詞: SDRAM FPGA MMC

            評論


            相關推薦

            技術專區(qū)

            關閉