隨著嵌入式產品的發(fā)展,各種嵌入式操作系統(tǒng),以及嵌入式上層應用軟件層出不窮。國內普遍認同的嵌入式系統(tǒng)定義為:以應用為中心,以計算機技術為基礎,軟硬件可裁剪,適應應用系統(tǒng)對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統(tǒng)??梢赃@樣認為,嵌入式系統(tǒng)是一種專用的計算機系統(tǒng),作為裝置或設備的一部分。通常,嵌入式系統(tǒng)是一個控制程序存儲在ROM中的嵌入式處理器控制板。事實上,所有帶有數字接口的設備,如手表、微波爐、錄像機、汽車等,都使用嵌入式系統(tǒng),有些嵌入式系統(tǒng)還包含操作系統(tǒng),但大多數嵌入式系統(tǒng)都是是由單個程序實現(xiàn)整個控制邏輯。一個嵌入式系統(tǒng)裝置一般都由嵌入式計算機系統(tǒng)和執(zhí)行裝置組成,嵌入式計算機系統(tǒng)是整個嵌入式系統(tǒng)的核心,由硬件層、中間層、系統(tǒng)軟件層和應用軟件層組成。執(zhí)行裝置也稱為被控對象,它可以接受嵌入式計算機系統(tǒng)發(fā)出的控制命令,執(zhí)行所規(guī)定的操作或任務。執(zhí)行裝置可以很簡單,如手機上的一個微小型的電機,當手機處于震動接收狀態(tài)時打開;也可以很復雜,如SONY 智能機器狗,上面集成了多個微小型控制電機和多種傳感器,從而可以執(zhí)行各種復雜的動作和感受各種狀態(tài)信息。
1 隨機存儲器介紹
隨機存儲器主要分為靜態(tài)隨機存儲器(SRAM)、動態(tài)隨機存儲器(DRAM)及SDRAM。1個SRAM單元通常由4~6個晶體管組成,當這個SRAM單元被賦予O或者1的狀態(tài)之后,它會保持這個狀態(tài)直到下次被賦予新的狀態(tài)或者斷電之后才會更改或者消失。SRAM的讀寫速度相對比較快,而且比較省電,但是存儲1 b的信息需要4~6只晶體管。DRAM和SDRAM必須在一定的時間內不停地刷新才能保持其中存儲的數據,但存儲1 b的信息只要1只晶體管就可以實現(xiàn)。RAM(隨機存取存儲器)RAM -random access memory 隨機存儲器。存儲單元的內容可按需隨意取出或存入,且存取的速度與存儲單元的位置無關的存儲器。這種存儲器在斷電時將丟失其存儲內容,故主要用于存儲短時間使用的程序。 按照存儲信息的不同,隨機存儲器又分為靜態(tài)隨機存儲器(Static RAM,SRAM)和動態(tài)隨機存儲器(Dynamic RAM,DRAM)。在計算機的組成結構中,有一個很重要的部分,就是存儲器。存儲器是用來存儲程序和數據的部件,對于計算機來說,有了存儲器,才有記憶功能,才能保證正常工作。存儲器的種類很多,按其用途可分為主存儲器和輔助存儲器,主存儲器又稱內存儲器(簡稱內存),輔助存儲器又稱外存儲器(簡稱外存)。外存通常是磁性介質或光盤,像硬盤,軟盤,磁帶,CD等,能長期保存信息,并且不依賴于電來保存信息,但是由機械部件帶動,速度與CPU相比就顯得慢的多。
2 硬件設計方案
2.1 SDRAM工作原理
SDRAM本身是由多個Bank區(qū)域構成,對SDRAM的操作實際上是通過區(qū)域片選信號對單獨Bank進行的操作。SDRAM中單個Bank的讀取過程如圖1所示。
(1)通過地址總線將行地址傳輸到地址引腳;
(2)RAS(行地址使能信號)被激活,這樣行地址被傳送到行地址門閂線路中;
(3)行地址解碼器根據接收到的數據選擇相應的行;
(4)wE(寫使能信號)引腳確定不被激活,所以SDRAM知道它不會進行寫操作;
(5)列地址通過地址總線傳輸到地址引腳;
(6)CAS(列地址使能信號)引腳被激活,這樣地址被傳送到列地址門閂線路中;
(7)DQM(輸出使能)引腳被激活,數據向外輸出。
這就完成了一個單Bank的讀操作,在讀取數據的過程中行列地址的尋址過程是通過兩個時鐘周期實現(xiàn)的,在第一個時鐘周期使能行地址,下一個時鐘周期使能列地址。
SDRAM寫入的過程和讀取過程是基本一樣的,只需要將wE信號激活。
2.2 硬件設計
對于SDRAM的硬件設計需要確定3個方面的內容:通過處理器的特性選擇SDRAM的型號;確定SDRAM地址線、數據線的連接方式;確定SDRAM控制信號線的連接方式。
2.2.1 SDRAM的選擇
該平臺處理器選擇Intel公司XSCALE架構的PXA255,它針對于SDRAM有4根專用的動態(tài)片選信號,能夠支持4塊內存區(qū)域,如圖2所示。
其中每塊區(qū)域所能支持到的最大物理地址為64 MB。并且每一塊內存區(qū)域均可使用16 b或32 b的SDRAM。
在硬件設計過程中考慮到硬件使用的可調節(jié)性,采用8片16 b×4 MB×4 Bank的SDRAM,共搭建了256 MB的極限存儲空間。其中,SDRAM選擇型號為三星公司的K4S561632E。
2.2.2 數據線、地址線的分配
PXA255處理器共有32位數據線和26位地址線。故在硬件設計時需要并行處理2塊16 b的SDRAM,分別連接高位和低位的16根數據線。
對于地址線的連接,首先需要參考SDRAM的數據手冊,確定SDRAM行列地址線的個數。其次根據處理器數據手冊確定具體地址線的連接方式。
在三星K4S561632E的數據手冊中是這樣給出的,如表1所示。
從表1中可以得出行列復用13根地址線,其中行地址13根,列地址9根,共組成22根地址線的尋址空間。在處理器PXA255中,給SDRAM分配的地址線空間是從A10~A22。這樣就可以完全確定地址線和數據線的連接方式,如圖3所示。
2.2.3 控制信號線的連接方式
對于SDRAM需要確定的控制線包括時鐘信號線、區(qū)域片選信號線及Bank片選信號線。對于這三類信號線PXA255處理器是這樣給出的,即:
(1)每兩組內存區(qū)域使用同一組時鐘信號線,即每128 MB的內存空間使用同一根時鐘信號線,故在設計中使用了2組時鐘信號線。
(2)共有4根區(qū)域片選信號,分別控制64 MB的物理地址空間。最大支持到256 MB的物理地址空間。
(3)地址線的23,24位用來實現(xiàn)對SDRAM內部Bank的選擇。
2.3 硬件的移植
針對于PXA27x系列的高端處理器,Intel并沒有對SDRAM部分做本質上的改動,仍然是4根動態(tài)片選信號,故硬件方面的設計可以完全移植到PXA27x系列的處理器中。
3 軟件設計方案
Windows CE操作系統(tǒng)下對內存的驅動代碼主要分為兩個部分,首先在BootLoader中對SDRAM進行底層初始化;其次在系統(tǒng)BSP包內需要將SDRAM所對應的物理地址映射為Windows CE下能夠識別的虛擬地址。
控制線的連接方式如圖4所示。
3.1 BootLoader代碼的買現(xiàn)
BootLoader是系統(tǒng)運行的起始點,它包含著系統(tǒng)運行的第一行代碼。BootLoader本身也是一個功能完整的微型操作系統(tǒng),在內部需要實現(xiàn)任務調度、內存管理、文件系統(tǒng),以及各種必要設備驅動程序的配置??刂凭€的連接方式如圖4所示。
(1)頻率設置
完成寄存器的復值,其中r3的選擇為F即就是0x1111,打開4片內存區(qū)域。
(3) 刷新間隔設置。關于刷新間隔值(DIR)的計算在手冊中是這樣給出的:
目前公認的標準是,存儲體中電容的數據有效保存期上限是64 ms,也就是說每一行刷新的循環(huán)周期是64 ms。這樣刷新速度為:64 ms/行數量。由于行地址有13位(在MDCNFG寄存器的DRACO[1:0]中設置,需要與硬件一致)。
(4) 潛伏期的設置。潛伏期是指SDRAM在讀寫過程中所存在的延遲,潛伏期的時間長度是由以下幾個參數共同決定的:
CL:在選定列地址后,就已經確定了具體的存儲單元,剩下的事情就是數據通過數據I/O通道(數據總線)輸出到內存總線上。但是在CAS發(fā)出之后,仍要經過一定的時間才能有數據輸出,從CAS與讀取命令發(fā)出到第一筆數據輸出的這段時間被稱為讀取潛伏期。tRP:在發(fā)出預充電命令之后,要經過一段時間才能允許發(fā)送行有效命令打開新的工作行,這個間隔被稱為預充電有效周期(Precharge command Period)。tRCD:在發(fā)送列讀寫命令時必須要與行有效命令有一個間隔,這個間隔被定義為tRCD,即RAS to CASDelay(RAS至CAS延遲),也可以理解為行選通周期。tRAS:行有效至預充電命令間隔周期。tRC:包括行單元開啟和行單元刷新在內的整個過程所需要的時間。
所有參數可以從SDRAM數據手冊得到,計算出理論潛伏期時長為200/μs。
(5)其他設置
設置操作系統(tǒng)的入口點,這里用到的虛擬地址需要與系統(tǒng)中建立的映射表相對應。
3.2 BSP內代碼的實現(xiàn)
Windows cE系統(tǒng)啟動中,對SDRAM的操作分為兩個部分:首先對SDRAM的物理空間進行分配;其次將SDRAM所對應的物理地址轉換為虛擬地址。
3.2.1 地址的分配
地址的分配和系統(tǒng)加載的順序有著密切的關系。首先要在內存中開辟一段空間用來存放啟動代碼BootLoader,它被存放在sDRAM的第一個區(qū)域空間內。當發(fā)生外部復位中斷時系統(tǒng)會從這里重新開始運行。其次分配操作系統(tǒng)內核空間,它被存放在SDRAM的第二個區(qū)域,以便使BootLoader能夠順利加載操作系統(tǒng)內核。
3.2.2 地址的映射
在操作系統(tǒng)中,需要把SDRAM的空間連續(xù)起來并作為首地址,不僅方便內存管理,而且當應用程序申請大塊內存時,操作系統(tǒng)內核也可方便的分配。這就引入了將不連續(xù)的物理地址空間映射為連續(xù)的虛擬地址空間。PXA255的SDRAM起始物理地址OxA0000000,可將其映射為0x80000000,這里0x80000000將作為系統(tǒng)虛擬空間的起始地址,當有IRQ中斷發(fā)生時,系統(tǒng)PC指針會重新指向這個地址。
3.2.3 軟件的移植
針對于PXA27x系列的高端處理器,微軟在Plat-Build 5.0中給出了相對應的內核代碼雖然在內核代碼的架構上有了很大的變化,但對于擴展SDRAM的思想并沒有改變,首先在BootLoader中初始化所使用的SDRAM,其次在BSP內建立地址映射表。
4 結 語
介紹了在嵌入式Windows CE系統(tǒng)平臺上,使用大容量SDRAM作為動態(tài)存儲設備的方案。詳細介紹了sDRAM硬件連接方案以及軟件接口的實現(xiàn)。該方案已經在工程設計中投入使用,其可以在同類的嵌入式高端產品中推廣使用。
評論
查看更多