S3C2410外圍存儲(chǔ)系統(tǒng)的研究與設(shè)計(jì)
發(fā)布時(shí)間:2008/8/30 0:00:00 訪問次數(shù):560
。啊∫
。螅幔恚螅酰睿绻就瞥龅幕冢幔颍恚梗玻埃魞(nèi)核的16/32位risc微處理器s3c2410,為手持設(shè)備和一般類型應(yīng)用提供了低價(jià)格、低功耗、高性能小型微控制器的解決方案。為了降低整個(gè)系統(tǒng)的成本,s3c2410提供了豐富的內(nèi)部設(shè)備。其中加強(qiáng)的arm體系結(jié)構(gòu)mmu用于支持wince,epoc32和linux。隨著技術(shù)的進(jìn)步和發(fā)展,電子產(chǎn)品的功能日益強(qiáng)大,而嵌入式操作系統(tǒng)可以有效地管理各項(xiàng)功能,并且能夠縮短產(chǎn)品開發(fā)周期,因此將微處理器與嵌入式操作系統(tǒng)進(jìn)行聯(lián)合開發(fā)成為一種趨勢,然而微處理器的片內(nèi)存儲(chǔ)資源有限,若要進(jìn)行嵌入式系統(tǒng)的移植,必須擴(kuò)展其存儲(chǔ)系統(tǒng)。對于嵌入式系統(tǒng)的開發(fā)人員來說,深入理解其存儲(chǔ)系統(tǒng)原理和有效地管理存儲(chǔ)系統(tǒng)對正確高效地設(shè)計(jì)嵌入式系統(tǒng)的硬件和底層軟件編程具有重要的意義[1]。
。薄。螅常悖玻矗保暗膶ぶ吩
arm920t內(nèi)核提供了32位的地址總線,可以訪問4g(232)的線性地址空間,而s3c2410的內(nèi)部地址總線是30bit(haddr[29:0]),能夠訪問的最大外部地址空間是230,即1g的地址空間0x00000000~0x3ffffffff,可見s3c2410僅利用了arm920t的32位地址總線的低30位,并且是一一對應(yīng)相連的[1]。由表1可知s3c2410將1g的外部地址空間分成了8個(gè)存儲(chǔ)器組,每個(gè)組的大小為128m,其中6個(gè)用于rom、sram等存儲(chǔ)器,2個(gè)用于rom、sram、sdram等存儲(chǔ)器;谛酒w積及成本的考慮,當(dāng)s3c2410對外尋址時(shí),采用了部分譯碼的方式,即低位地址線用于外圍存儲(chǔ)器的片內(nèi)尋址,而高位地址線用于外圍存儲(chǔ)器的片外尋址。如表1所示,由于每個(gè)存儲(chǔ)器組的起始地址及空間大小固定,對于系統(tǒng)要訪問的任意外部地址,s3c2410可以方便地利用內(nèi)部地址總線的高3位haddr[29:27]來選擇該地址屬于哪一個(gè)存儲(chǔ)器組(bank),從而激活相應(yīng)的bank選擇信號,并且使用外部地址總線a[26:0]來實(shí)現(xiàn)相應(yīng)bank的內(nèi)部尋址,尋址范圍為128m(227),從而使得其外圍地址訪問空間為1gb(128mb×8)。s3c2410正是通過這種機(jī)制來完成外部地址空間的尋址全過程。
。螅常悖玻矗保霸L問sdram地址空間的過程比較難理解,這主要和sdram的存儲(chǔ)結(jié)構(gòu)有關(guān)。為了更深入地理解其尋址機(jī)制,筆者以sdram芯片hy57v561620b(32mb)為例進(jìn)行詳細(xì)地說明。該芯片的內(nèi)部存儲(chǔ)結(jié)構(gòu)是4banks×4m×16bit,即共有4個(gè)bank,每個(gè)bank中有4m個(gè)半字(16bit)。bank地址可以通過ba[1:0]與地址總線的高位相連來確定,具體ba[1:0]與哪個(gè)地址位相連,不同的sdram存儲(chǔ)系統(tǒng)有不同的方案,詳見參考文獻(xiàn)[3]。而每個(gè)bank中的存儲(chǔ)單元由行地址和列地址來唯一標(biāo)識(shí)[1],該芯片通過行地址鎖存引腳nras和列地址鎖存引腳ncas分別與s3c2410的引腳nsras(sdram行地址選通信號)和nscas(sdram列地址選通信號)連接,從地址總線獲得行地址和列地址。而且列地址的位數(shù)可以在bankconn(n=6,7)的中的scan——bankconn。郏保海埃輥砼渲,00=8-bit,01=9-bit,10=10-bit,其復(fù)位值為00,即8bit。
在實(shí)際工作中,如圖1所示,在第3個(gè)總線時(shí)鐘,nscs為低電平,表示sdram被選中,并且地址線的bank地址與相應(yīng)的行地址同時(shí)發(fā)出,這個(gè)命令稱之為“行有效”或“行激活”(row。幔悖簦椋觯澹4藭r(shí)sdram將行地址鎖存(nsras有效),但還沒有執(zhí)行寫命令(nwe為高電平),因?yàn)闆]有列地址(nscas為高電平),存儲(chǔ)單元無法確定。經(jīng)過trcd(ras至cas延遲)后,sdram再次被選中(nscs為低電平),此時(shí)nscas為低電平,指示sdram此時(shí)地址線上的地址為列地址,同時(shí)nwe有效,寫操作被執(zhí)行?梢姲l(fā)送列地址尋址命令與具體的操作命令(是讀還是寫),這兩個(gè)命令也是同時(shí)發(fā)出的,所以一般都會(huì)以“讀/寫命令”來表示列尋址,相關(guān)的列地址被選中之后,將會(huì)觸發(fā)數(shù)據(jù)傳輸。至此,s3c2410對sdram的尋址就完成了?梢姡螅常悖玻矗保皩⒌刂房偩上的地址分成行地址和列地址并分開傳輸給sdram;谏鲜龅膶ぶ窓C(jī)制,由ba[1:0]和12根地址線就可以尋址32m或更大的地址空間了。
圖。薄。螅常悖玻矗保啊。螅洌颍幔頃r(shí)序圖
。病〈鎯(chǔ)器控制器和相關(guān)引腳介紹
。玻奔拇嫫鹘榻B
。螅常悖玻矗保按鎯(chǔ)器控制器主要有:總線帶寬和等待控制寄存器
。啊∫
samsung公司推出的基于arm920t內(nèi)核的16/32位risc微處理器s3c2410,為手持設(shè)備和一般類型應(yīng)用提供了低價(jià)格、低功耗、高性能小型微控制器的解決方案。為了降低整個(gè)系統(tǒng)的成本,s3c2410提供了豐富的內(nèi)部設(shè)備。其中加強(qiáng)的arm體系結(jié)構(gòu)mmu用于支持wince,epoc32和linux。隨著技術(shù)的進(jìn)步和發(fā)展,電子產(chǎn)品的功能日益強(qiáng)大,而嵌入式操作系統(tǒng)可以有效地管理各項(xiàng)功能,并且能夠縮短產(chǎn)品開發(fā)周期,因此將微處理器與嵌入式操作系統(tǒng)進(jìn)行聯(lián)合開發(fā)成為一種趨勢,然而微處理器的片內(nèi)存儲(chǔ)資源有限,若要進(jìn)行嵌入式系統(tǒng)的移植,必須擴(kuò)展其存儲(chǔ)系統(tǒng)。對于嵌入式系統(tǒng)的開發(fā)人員來說,深入理解其存儲(chǔ)系統(tǒng)原理和有效地管理存儲(chǔ)系統(tǒng)對正確高效地設(shè)計(jì)嵌入式系統(tǒng)的硬件和底層軟件編程具有重要的意義[1]。
1。螅常悖玻矗保暗膶ぶ吩
arm920t內(nèi)核提供了32位的地址總線,可以訪問4g(232)的線性地址空間,而s3c2410的內(nèi)部地址總線是30bit(haddr[29:0]),能夠訪問的最大外部地址空間是230,即1g的地址空間0x00000000~0x3ffffffff,可見s3c2410僅利用了arm920t的32位地址總線的低30位,并且是一一對應(yīng)相連的[1]。由表1可知s3c2410將1g的外部地址空間分成了8個(gè)存儲(chǔ)器組,每個(gè)組的大小為128m,其中6個(gè)用于rom、sram等存儲(chǔ)器,2個(gè)用于rom、sram、sdram等存儲(chǔ)器;谛酒w積及成本的考慮,當(dāng)s3c2410對外尋址時(shí),采用了部分譯碼的方式,即低位地址線用于外圍存儲(chǔ)器的片內(nèi)尋址,而高位地址線用于外圍存儲(chǔ)器的片外尋址。如表1所示,由于每個(gè)存儲(chǔ)器組的起始地址及空間大小固定,對于系統(tǒng)要訪問的任意外部地址,s3c2410可以方便地利用內(nèi)部地址總線的高3位haddr[29:27]來選擇該地址屬于哪一個(gè)存儲(chǔ)器組(bank),從而激活相應(yīng)的bank選擇信號,并且使用外部地址總線a[26:0]來實(shí)現(xiàn)相應(yīng)bank的內(nèi)部尋址,尋址范圍為128m(227),從而使得其外圍地址訪問空間為1gb(128mb×8)。s3c2410正是通過這種機(jī)制來完成外部地址空間的尋址全過程。
。螅常悖玻矗保霸L問sdram地址空間的過程比較難理解,這主要和sdram的存儲(chǔ)結(jié)構(gòu)有關(guān)。為了更深入地理解其尋址機(jī)制,筆者以sdram芯片hy57v561620b(32mb)為例進(jìn)行詳細(xì)地說明。該芯片的內(nèi)部存儲(chǔ)結(jié)構(gòu)是4banks×4m×16bit,即共有4個(gè)bank,每個(gè)bank中有4m個(gè)半字(16bit)。bank地址可以通過ba[1:0]與地址總線的高位相連來確定,具體ba[1:0]與哪個(gè)地址位相連,不同的sdram存儲(chǔ)系統(tǒng)有不同的方案,詳見參考文獻(xiàn)[3]。而每個(gè)bank中的存儲(chǔ)單元由行地址和列地址來唯一標(biāo)識(shí)[1],該芯片通過行地址鎖存引腳nras和列地址鎖存引腳ncas分別與s3c2410的引腳nsras(sdram行地址選通信號)和nscas(sdram列地址選通信號)連接,從地址總線獲得行地址和列地址。而且列地址的位數(shù)可以在bankconn(n=6,7)的中的scan——bankconn。郏保海埃輥砼渲,00=8-bit,01=9-bit,10=10-bit,其復(fù)位值為00,即8bit。
在實(shí)際工作中,如圖1所示,在第3個(gè)總線時(shí)鐘,nscs為低電平,表示sdram被選中,并且地址線的bank地址與相應(yīng)的行地址同時(shí)發(fā)出,這個(gè)命令稱之為“行有效”或“行激活”(row。幔悖簦椋觯澹4藭r(shí)sdram將行地址鎖存(nsras有效),但還沒有執(zhí)行寫命令(nwe為高電平),因?yàn)闆]有列地址(nscas為高電平),存儲(chǔ)單元無法確定。經(jīng)過trcd(ras至cas延遲)后,sdram再次被選中(nscs為低電平),此時(shí)nscas為低電平,指示sdram此時(shí)地址線上的地址為列地址,同時(shí)nwe有效,寫操作被執(zhí)行?梢姲l(fā)送列地址尋址命令與具體的操作命令(是讀還是寫),這兩個(gè)命令也是同時(shí)發(fā)出的,所以一般都會(huì)以“讀/寫命令”來表示列尋址,相關(guān)的列地址被選中之后,將會(huì)觸發(fā)數(shù)據(jù)傳輸。至此,s3c2410對sdram的尋址就完成了。可見,s3c2410將地址總線上的地址分成行地址和列地址并分開傳輸給sdram;谏鲜龅膶ぶ窓C(jī)制,由ba[1:0]和12根地址線就可以尋址32m或更大的地址空間了。
圖。薄。螅常悖玻矗保啊。螅洌颍幔頃r(shí)序圖
。病〈鎯(chǔ)器控制器和相關(guān)引腳介紹
2.1寄存器介紹
。螅常悖玻矗保按鎯(chǔ)器控制器主要有:總線帶寬和等待控制寄存器
熱門點(diǎn)擊
- 什么是PS/2接口 USB(Universa
- ACTEL發(fā)布兩款實(shí)現(xiàn)人機(jī)接口(HMI)和微
- 揭密DRAM陣列架構(gòu) — 8F2 vs. 6
- 慧榮科技新款固態(tài)驅(qū)動(dòng)器控制芯片支持MLC F
- 通用串行總線USB及其應(yīng)用
- 基于VC的USB接口通信程序設(shè)計(jì)
- USB接口研究與硬件電路設(shè)計(jì)
- 什么是RS232接口
- 什么是PCI總線
- CAN和CANopen相關(guān)技術(shù)
推薦技術(shù)資料
- 扇出型面板級封裝(FOPLP)
- 全球首款無掩模光刻系統(tǒng)—DSP
- 紫光閃存E5200 PCIe 5.0 企業(yè)級
- NAND Flash 技術(shù)和系
- 高性能DIMM 內(nèi)存數(shù)據(jù)技術(shù)封
- PCIe Gen4 SSD主控
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究