国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于S3C2440的存儲器接口設(shè)計與初始化分析

2016-03-30 23:01:50黃飛翔蔡啟仲
科技視界 2016年1期
關(guān)鍵詞:存儲器

黃飛翔 蔡啟仲

【摘 要】在嵌入式系統(tǒng)設(shè)計中,SDRAM的工作原理、控制時序及相關(guān)寄存器配置方法,相對較難。本文基于三星公司的S3C2440微處理器,設(shè)計外接美光內(nèi)存芯片MT48LC16M16A2,并詳細分析了初始化代碼,目的是加深初學(xué)者對SDRAM的基礎(chǔ)知識的了解,能有助于今后的嵌入式學(xué)習(xí)以及設(shè)計提供參考。

【關(guān)鍵詞】SDRAM;存儲器;S3C2440

0 引言

制造商所生產(chǎn)的MCU片內(nèi)存儲器空間往往不可能完全滿足所有的嵌入式系統(tǒng)應(yīng)用設(shè)計,例如,AT89S51單片機的內(nèi)部RAM大小為128字節(jié)。因此,對于需要較大片內(nèi)存儲空間的應(yīng)用設(shè)計來說,擴展片內(nèi)存儲器空間是非常重要的。

1 硬件設(shè)計

1.1 三星S3C2440微處理器

1.1.1 S3C2440硬件資源

S3C2440是三星公司開發(fā)的一款基于ARM920T內(nèi)核的16/32位RISC微處理器,集成的系統(tǒng)外設(shè)和接口有:1.8V內(nèi)核電壓,3.3V存儲電壓,3.3V I/O電壓;16KB的指令高速緩存、16KB的數(shù)據(jù)高速緩存和存儲管理單元;外部的存儲控制器(SDRAM控制器和片選邏輯);LCD控制器,包括一個LCD DMA;4個帶外部請求管腳的DMA;3個UART,2個SPI;1個I2C總線控制器,1個I2S-BUS控制器;SD主機接口;4個PWM時鐘和1個內(nèi)部時鐘;看門狗時鐘;117個GPIO,24個外部中斷源; 8路10位 ADC和觸摸屏接口;帶ALARM功能的RTC;帶PLL的片上時鐘發(fā)生器;NAND Flash控制器。

1.1.2 存儲器系統(tǒng)

ARM存儲器系統(tǒng)由各種類型的存儲器按照一定的層次結(jié)構(gòu)組合成[3],如圖1所示。

SDRAM在存儲結(jié)構(gòu)中用做程序的運行空間,它在響應(yīng)控制輸入前會等待一個時鐘周期,將CPU和RAM之間的速度進行匹配,加快了數(shù)據(jù)傳輸速度。

1.1.3 S3C2440的地址空間

S3C2440是一款具有32位的地址總線和數(shù)據(jù)總線寬度的CPU,實際上只指引出了27根地址線,最大尋址空間為128MB。8個Bank分別對應(yīng)S3C2440的8個片選信號線nGCS0~ nGCS7相互區(qū)別,可以做到總的尋址空間為8*128Mb=1GB。

S3C2440地址空間[4]如圖2所示,SDRAM需接在S3C2440的Bank6或Bank7上。

1.2 SDRAM存儲器MT48LC16M16A2

1.2.1 MT48LC16M16A2概述及特性[5]

MT48LC16M16A2是一款256Mb高速CMOS SDRAM,容量為256Mb,結(jié)構(gòu)為4 x 4M x 16bits,16位位寬,兼容PC100、PC133,3.3V供電電壓,自動預(yù)充電,刷新時間為8192/64ms。

1.2.2 SDRAM讀寫時序

S3C2440對SDRAM的基本讀操作和寫操作均需要控制線與地址線相互配合。

SDRAM基本讀操作過程如下:

(1)發(fā)出Bank激活命令(必須大于RAS到CAS的延遲指標(biāo)Trcd),并鎖存響應(yīng)Bank的行地址與列地址;

(2)CL(CAS延遲值)個時鐘周期后,先指定行地址再指定列地址數(shù)據(jù)即可出現(xiàn)在數(shù)據(jù)總線上;

(3)向SDRAM預(yù)充電命令(PRECHAREG)以關(guān)閉激活頁,等待Trp時間,即可進行下一次讀、寫操作。

SDRAM基本寫操作過程如下:

(1)發(fā)出Bank激活命令(要求同前),并鎖存響應(yīng)Bank的行地址與列地址;

(2)寫入數(shù)據(jù)依次出現(xiàn)在數(shù)據(jù)總線上;

(3)寫入最后一數(shù)據(jù)后延時Twr時間,向SDRAM預(yù)充電命令(PRECHAREG)以關(guān)閉激活頁,等待Trp時間后即可進行下一次讀、寫操作。

1.3 接口電路設(shè)計

采用兩片MT48LC16M16A2并聯(lián)組成32位的位寬,它們與S3C2440的接口電路設(shè)計如圖3所示。

2 寄存器配置及SDRAM初始化分析

2.1 寄存器配置

Bank7不僅可以像Bank0~Bank5一樣支持ROM和SRAM,還可以外接SDRAM,因此除了需要像Bank0~Bank5一樣設(shè)置相應(yīng)的總線帶寬\等待控制寄存器BWSCON和總線控制寄存器BANKCON7外,還需要根據(jù)MT48LC16M16A2數(shù)據(jù)手冊中的參數(shù)(例如Trp、Trc、Trcd和Trp等)來對刷新控制寄存器、存儲塊大小控制寄存器和模式設(shè)置寄存器的相應(yīng)位進行配置,從而使得內(nèi)存控制器可以產(chǎn)生相應(yīng)的時序。假設(shè)系統(tǒng)的HCLK為100MHz(即時鐘周期為10ns),則各寄存器概述及根據(jù)SDRAM芯片時序的配置(未配置的位保持默認)如下:

(1)總線帶寬\等待控制寄存器(BWSCON)各位如下:

ST 啟動/禁止SDRAM的數(shù)據(jù)掩碼引腳,對于SDRAM,該位置0;

WS 是否使用存儲器的WAIT信號,通常置0為不使用;

DW 兩位,設(shè)置位寬(00=8bit、01=16bit、10=32bit、11=保留)。

(2)總線控制寄存器BANKCON7各位如下:

MT([16:15]):配置為0x03將Bank7映射的物理內(nèi)存為SDRAM;

Trcd([3:2]):行地址到列地址的延遲時間設(shè)置為0x0,因為Trcd[5]=20ns(即2倍時鐘周期);

SCAN([1:0]):SDRAM列地址位數(shù)設(shè)置為0x01,因為本設(shè)計所采用MT48LC16M16A2的列地址數(shù)為9。

(3)刷新控制寄存器REFRESH

REFEN([23])設(shè)置為1,即啟用SDRAM刷新功能;TREFMD([22])設(shè)置為0,即選用自刷新模式;TRP([21:20])根據(jù)Trp[5]=20ns設(shè)置為0x00,即兩個時鐘周期;Tsrc[19:18](SDRAM半行周期運行時間),SDRAM的行周期運行時間滿足Trc=Tsrc+Trp,因為Trp[5]=20ns(2個時鐘周期),Trc[5]=66ns(7個時鐘周期),所以Tsrc為5個時鐘周期,即將Tsr([19:18])設(shè)置為0x01;MT48LC16M16A2刷新8192行的總時間為64ms,則單行刷新時間為7.81μs(64ms/8192),再由公式(單行刷新時間=211-SDRAM工作頻率(MHz)×刷新計數(shù)器值+1)計算得Refresh Counter([10:0])=0x4f4。

(4)存儲塊大小控制寄存器BANKSIZE

BK76MAP([2:0])配置為0x001,因為本設(shè)計外接64MB的SDRAM。

(5)SDRAM模式設(shè)置寄存器MRSRB7

CL[6:4] 配置為0x011,因為Tcl[5]=2.5ns(需3倍時鐘周期)。

2.2 設(shè)計并分析SDRAM啟動代碼

首先在xxx.inc文件中對下列常量進行定義。

其次,初始化文件中包含了xxx.inc文件,就可以在其中使用上述變量了,如下:

通過以上部分代碼,即可完成對SDRAM存儲器的初始化。

3 總結(jié)

本次設(shè)計介紹了S3C2440與SDRAM硬件接口的設(shè)計及相關(guān)寄存器的配置過程,為嵌入式系統(tǒng)設(shè)計提供了一定的學(xué)習(xí)和設(shè)計參考。

【參考文獻】

[1]王波波,王琤,等.ARM完全學(xué)習(xí)手冊[M].北京:化學(xué)工業(yè)出版社,2012.

[2]黃智偉,鄧月明,王彥.ARM9嵌入式系統(tǒng)設(shè)計基礎(chǔ)教程[M].北京航空航天大學(xué)出版社,2008.

[3]奚海蛟,諶利,呂鐵軍.ARM體系結(jié)構(gòu)與外設(shè)接口實戰(zhàn)開發(fā)[M].北京航空航天大學(xué)出版社,2012.

[4]王小強,方鵬,粟思科.ARM處理器裸機開發(fā)實戰(zhàn)—機制而非策略[M].電子工業(yè)出版社,2012.

[5]MT48LC16M16A2說明書[S].

[6]S3C2440數(shù)據(jù)手冊[S].

[7]陳學(xué)立,邱兆坤,陳志勇.嵌入式處理器與SDRAM的接口設(shè)計與實現(xiàn)[J],現(xiàn)代電子技術(shù),2010(2).

[責(zé)任編輯:湯靜]

猜你喜歡
存儲器
靜態(tài)隨機存儲器在軌自檢算法
Xilinx新型FPGA將存儲器帶寬提升20倍
任意2~k點存儲器結(jié)構(gòu)傅里葉處理器
非易失性納米晶存儲器的研究
構(gòu)建基于24XX系列存儲器通用函數(shù)庫的研究
Altera演示FPGA中高性能DDR4存儲器數(shù)據(jù)速率
高維固態(tài)量子存儲器研制成功
存儲器——安格爾(墨西哥)▲
基于Nand Flash的高速存儲器結(jié)構(gòu)設(shè)計
Buffalo推出四硬盤網(wǎng)絡(luò)存儲器 主打Soho一族
揭西县| 琼结县| 江北区| 任丘市| 琼中| 乌鲁木齐市| 镇雄县| 金坛市| 四川省| 崇礼县| 冷水江市| 盐津县| 当雄县| 安顺市| 布拖县| 巫溪县| 海宁市| 保德县| 明星| 安多县| 固始县| 斗六市| 儋州市| 徐州市| 永年县| 都江堰市| 齐齐哈尔市| 富民县| 农安县| 钟山县| 绥滨县| 崇仁县| 丹棱县| 苗栗市| 凤台县| 富源县| 共和县| 江口县| 洞口县| 庆安县| 紫云|