音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

S3C2410外圍存儲系統的研究與設計

出處:揚欣電子 發(fā)布于:2008-08-29 14:55:24

 ?。啊∫?/FONT>

  Samsung公司推出的基于ARM920T內核的16/32位RISC微處理器S3C2410,為手持設備和一般類型應用提供了低價格、低功耗、高性能小型微控制器的解決方案。為了降低整個系統的成本,S3C2410提供了豐富的內部設備。其中加強的ARM體系結構MMU用于支持WinCE,EPOC32和Linux。隨著技術的進步和發(fā)展,電子產品的功能日益強大,而嵌入式操作系統可以有效地管理各項功能,并且能夠縮短產品開發(fā)周期,因此將微處理器與嵌入式操作系統進行聯合開發(fā)成為一種趨勢,然而微處理器的片內存儲資源有限,若要進行嵌入式系統的移植,必須擴展其存儲系統。對于嵌入式系統的開發(fā)人員來說,深入理解其存儲系統原理和有效地管理存儲系統對正確高效地設計嵌入式系統的硬件和底層軟件編程具有重要的意義[1]。

 ?。薄。樱常茫玻矗保暗膶ぶ吩?/FONT>

 ?。粒遥停梗玻埃詢群颂峁┝耍常参坏牡刂房偩€,可以訪問4G(232)的線性地址空間,而S3C2410的內部地址總線是30bit(HADDR[29:0]),能夠訪問的外部地址空間是230,即1G的地址空間0x00000000~0x3FFFFFFFF,可見S3C2410僅利用了ARM920T的32位地址總線的低30位,并且是一一對應相連的[1]。由表1可知S3C2410將1G的外部地址空間分成了8個存儲器組,每個組的大小為128M,其中6個用于ROM、SRAM等存儲器,2個用于ROM、SRAM、SDRAM等存儲器。基于芯片體積及成本的考慮,當S3C2410對外尋址時,采用了部分譯碼的方式,即低位地址線用于外圍存儲器的片內尋址,而高位地址線用于外圍存儲器的片外尋址。如表1所示,由于每個存儲器組的起始地址及空間大小固定,對于系統要訪問的任意外部地址,S3C2410可以方便地利用內部地址總線的高3位HADDR[29:27]來選擇該地址屬于哪一個存儲器組(Bank),從而激活相應的Bank選擇信號,并且使用外部地址總線A[26:0]來實現相應Bank的內部尋址,尋址范圍為128M(227),從而使得其外圍地址訪問空間為1GB(128MB×8)。S3C2410正是通過這種機制來完成外部地址空間的尋址全過程。

  ?。樱常茫玻矗保霸L問SDRAM地址空間的過程比較難理解,這主要和SDRAM的存儲結構有關。為了更深入地理解其尋址機制,筆者以SDRAM芯片HY57V561620B(32MB)為例進行詳細地說明。該芯片的內部存儲結構是4Banks×4M×16Bit,即共有4個Bank,每個Bank中有4M個半字(16Bit)。Bank地址可以通過BA[1:0]與地址總線的高位相連來確定,具體BA[1:0]與哪個地址位相連,不同的SDRAM存儲系統有不同的方案,詳見參考文獻[3]。而每個Bank中的存儲單元由行地址和列地址來標識[1],該芯片通過行地址鎖存引腳nRAS和列地址鎖存引腳nCAS分別與S3C2410的引腳nSRAS(SDRAM行地址選通信號)和nSCAS(SDRAM列地址選通信號)連接,從地址總線獲得行地址和列地址。而且列地址的位數可以在BANKCONn(n=6,7)的中的SCAN——BANKCONn?。郏保海埃輥砼渲茫埃埃剑福猓椋?,01=9-bit,10=10-bit,其復位值為00,即8bit。

  在實際工作中,如圖1所示,在第3個總線時鐘,nSCS為低電平,表示SDRAM被選中,并且地址線的Bank地址與相應的行地址同時發(fā)出,這個命令稱之為“行有效”或“行激活”(Row Active)。此時SDRAM將行地址鎖存(nSRAS有效),但還沒有執(zhí)行寫命令(nWE為高電平),因為沒有列地址(nSCAS為高電平),存儲單元無法確定。經過Trcd(RAS至CAS延遲)后,SDRAM再次被選中(nSCS為低電平),此時nSCAS為低電平,指示SDRAM此時地址線上的地址為列地址,同時nWE有效,寫操作被執(zhí)行??梢姲l(fā)送列地址尋址命令與具體的操作命令(是讀還是寫),這兩個命令也是同時發(fā)出的,所以一般都會以“讀/寫命令”來表示列尋址,相關的列地址被選中之后,將會觸發(fā)數據傳輸。至此,S3C2410對SDRAM的尋址就完成了??梢?,S3C2410將地址總線上的地址分成行地址和列地址并分開傳輸給SDRAM。基于上述的尋址機制,由BA[1:0]和12根地址線就可以尋址32M或更大的地址空間了。

  圖 1?。樱常茫玻矗保啊。樱模遥粒蜁r序圖

 ?。病〈鎯ζ骺刂破骱拖嚓P引腳介紹

 ?。玻奔拇嫫鹘榻B

 ?。樱常茫玻矗保按鎯ζ骺刂破髦饕校嚎偩€帶寬和等待控制寄存器(BWSCON);總線控制寄存器(BANKCONN:nGCS0-nGCS5);BANK控制寄存器(BANKCONn:nGCS6-nGCS7);刷新控制寄存器(REFRESH);BANKSIZE寄存器;SDRAM模式寄存器集寄存器(MRSR)等,詳情請見參考文獻[3]。

  2.2相關引腳

 ?。樱常茫玻矗保疤峁┝讼嚓P的引腳來控制存儲器訪問:

  組選擇信號:nGCS0-nGCS5,nGCS6(nSCS0),nGCS7(nSCS1)引腳用來選擇相應的存儲器組。

  訪問控制信號:為了實現ARM存儲器訪問指令LDR/STR字節(jié)、半字和字訪問的三種方式,在S3C2410的存儲器組中,除了Bank0以外的所有地址空間都可以通過編程設置為8位、16位或32位對準訪問,Bank0可以設置為16位或32位。引腳nWBE[3:0](寫字節(jié)使能)實現8bit?。遥希托酒M的三種訪問方式,或者SRAM不使用UB/LB(在BWSCON中設置)的情況下,與UB/LB連接。引腳nBE[3:0](在使用SRAM情況下的字節(jié)允許信號)在SRAM使用UB/LB(是否使用可在BWSCON中設置)的情況下與UB/LB連接。DQM[3:0](SDRAM數據屏蔽信號)引腳實現對SDRAM的三種訪問。還有nWAIT、nXBREQ/nXBACK引腳。

 ?。场∮布娐吩O計

  在本嵌入式系統開發(fā)實驗中,S3C2410擴展的存儲系統采用了英國Intel公司的16M?。牛玻福疲保玻福剩常粒保担啊。危希摇。疲欤幔螅栊酒?,以及Hynix公司的32M?。龋伲担罚郑担叮保叮玻埃隆。樱模遥粒托酒5刂房臻g分配如下:Flash為Bank0中的0x00000000~0x07FFFFFF地址段,而SDRAM為Bank6中的0x30000000~0x37FFFFFF地址段,具體的電路連接如圖2。

  圖?。病。樱常茫玻矗保啊∨cFlash、SDRAM的電路連接圖

 ?。础〈鎯ο到y初始化

 ?。眨拢铮铮羰堑聡模牛危匦〗M的開發(fā)用于多種嵌入式CPU的開放源代碼bootloader程序,目前版本是1.1.6,本實驗使用的是U-Boot-1.1.4。U-Boot是在ppcboot以及armboot的基礎上發(fā)展而來,現已非常成熟和穩(wěn)定,已經在許多嵌入式系統開發(fā)過程中被采用。其支持多種目標操作系統,其中對Linux的支持完善,是嵌入式Linux Bootloader的選擇。

  由于本實驗Linux要移植的開發(fā)板是基于s3c2410的開發(fā)板,在U-Boot中已有移植成功的smdk2410開發(fā)板,故以smdk2410開發(fā)板上運行的U-Boot為模板設計適合本實驗的U-Boot。有關存儲系統的初始化修改如下:

  (1)Flash驅動程序采用了board/Cmi/Flash.c,由于cmi中的flash.c在寫入時要交換字節(jié),因而刪除了它的write_short()和write_buff()函數,利用board/ep7312/Flash.c中的write_word()和write_buff()函數,并且把flash.c中的FLASH_BASE0_PRELIM改為CFG_FLASH_BASE。把FLASH_BLOCK_SIZE改為0x20000,(E28F128J3A?。妫欤幔螅柚袎K的大小是128K)。

  (2)Board/?。螅恚洌耄玻矗保埃螅恚洌耄玻矗保埃阒泻瘮担洌颍幔恚撸椋睿椋簦ǎ┒x了SDRAM的真實地址和實際大小。由于本實驗中,SDRAM的大小為32M,所以修改Include/configs/Smdk2410.h中的PHYS_SDRAM_1_SIZE,改為0x02000000。

 ?。ǎ常⑷缦麓a替代原來在Include/configs/Smdk2410.h的/*FLASH and environment?。铮颍纾幔睿椋幔簦椋铮睿粰谥械膬热?。

 ?。#洌澹妫椋睿濉。校龋伲樱撸疲蹋粒樱龋撸薄。埃埃埃埃埃埃埃埃啊               。。疲欤幔螅琛。拢幔睿搿。#薄。?/FONT>

 ?。#洌澹妫椋睿濉。校龋伲樱撸疲蹋粒樱龋撸樱桑冢拧。埃埃保埃埃埃埃埃啊          。。保丁。停隆。?/FONT>

 ?。#洌澹妫椋睿濉。茫疲牵撸疲蹋粒樱龋撸校遥希裕牛茫裕桑希?/FONT>

 ?。#洌澹妫椋睿濉。茫疲牵撸疲蹋粒樱龋撸拢粒樱拧。校龋伲樱撸疲蹋粒樱龋撸?/FONT>

 ?。#洌澹妫椋睿濉。茫疲牵撸停希危桑裕希遥撸拢粒樱拧。校龋伲樱撸疲蹋粒樱龋撸?/FONT>

 ?。#洌澹妫椋睿濉。茫疲牵撸停粒兀撸疲蹋粒樱龋撸拢粒危耍印。薄       。。恚幔。睿酰恚猓澹颉。铮妗。恚澹恚铮颍。猓幔睿耄蟆。?/FONT>

 ?。#洌澹妫椋睿濉。茫疲牵撸停粒兀撸疲蹋粒樱龋撸樱牛茫浴。保玻浮             。。恚幔。睿酰恚猓澹颉。铮妗。螅澹悖簦铮颍蟆。铮睢。铮睿濉。悖瑁椋稹。?/FONT>

 ?。#洌澹妫椋睿濉。茫疲牵撸疲蹋粒樱龋撸牛遥粒樱牛撸裕希眨浴。ǎ玻茫疲牵撸龋冢   。。裕椋恚澹铮酰簟。妫铮颉。疲欤幔螅琛。牛颍幔螅濉。?/FONT>

  #define?。茫疲牵撸疲蹋粒樱龋撸祝遥桑裕牛撸裕希眨浴。ǎ玻茫疲牵撸龋冢  。。裕椋恚澹铮酰簟。妫铮颉。疲欤幔螅琛。祝颍椋簦濉。?/FONT>

 ?。#洌澹妫椋睿濉。茫疲牵撸牛危郑撸桑樱撸桑危撸疲蹋粒樱取。?/FONT>

 ?。#洌澹妫椋睿濉。茫疲牵撸牛危郑撸粒模模摇。ǎ校龋伲樱撸疲蹋粒樱龋撸薄。。埃叮埃埃埃埃?/FONT>

 ?。#洌澹妫椋睿濉。茫疲牵撸牛危郑撸樱桑冢拧。埃玻埃埃埃啊                    。。裕铮簦幔臁。樱椋濉。铮妗。牛睿觯椋颍铮睿恚澹睿簟。樱澹悖簦铮颉。?/FONT>

  如上分析,SDRAM和Flash的初始化信息分別在smdk2410.c和flash.c文件中定義了,是通過lib_arm/board.c文件的display_dram_config()和display_flash_config()函數來顯示的。

  5 結束語

  本文結合實際實驗,分析了S3C2410的存儲系統原理,完成了其外圍存儲系統的硬件電路設計和軟件初始化,成功實現了對S3C2410存儲系統的存取訪問。開發(fā)人員可以根據筆者的研究和設計思路,同時結合所需的存儲容量和類型進行高效的存儲系統設計。


  
關鍵詞:S3C2410外圍存儲系統的研究與設計存儲

版權與免責聲明

凡本網注明“出處:維庫電子市場網”的所有作品,版權均屬于維庫電子市場網,轉載請必須注明維庫電子市場網,http://m.58mhw.cn,違反者本網將追究相關法律責任。

本網轉載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品出處,并自負版權等法律責任。

如涉及作品內容、版權等問題,請在作品發(fā)表之日起一周內與本網聯系,否則視為放棄相關權利。

OEM清單文件: OEM清單文件
*公司名:
*聯系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務:
賣家服務:
技術客服:

0571-85317607

網站技術支持

13606545031

客服在線時間周一至周五
9:00-17:30

關注官方微信號,
第一時間獲取資訊。

建議反饋

聯系人:

聯系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務的動力!意見一經采納,將有感恩紅包奉上哦!