自己學驅動12 儲存控制器

2021-06-28 17:00:23 字數 1592 閱讀 7112

1.2440的bank

2440一共提供給外部8個bank(bank0~bank7),每個bank均為128mb的位址空間,一共1gb位址空間。2440對外引出了27根位址線addr0~addr26,這27根位址線的訪問位址大小為128mb,2440對外還引出了8根片選訊號ngcs0~ngcs7,對應於bank0~bank7,當訪問bankx的位址空間時,ngcsx引腳輸出低電平,27根位址線與8根片選訊號(相當於多出3根位址線)共同完成1gb空間的訪問操作。

2440作為32位的cpu,可以使用的位址範圍理論上為4gb,除去上述用於連線外設的1gb的位址空間外,還有一部分是cpu內部暫存器的位址,剩下的位址空間沒有使用。

2.2440為sdram提供的訊號

bank0~bank5的連線方式都是相似的,bank6連線sdram時複雜一點,2440提供了一組用於sdram的訊號如下:

>> sdram時鐘有效訊號scke;

>> sdram時鐘訊號sclk0/sclk1;

>> 資料掩碼訊號dqm0/dqm1/dqm2/dqm3;

>> sdram片選訊號nscs0(它與ngcs6是同一引腳的兩個功能);

>> sdram行位址選通脈衝訊號nsras;

>> sdram列位址選通脈衝訊號nscas;

>> 寫允許訊號nwe(這個訊號並非專用於sdram)。

3.sdram內部儲存結構

sdram內部是乙個儲存陣列,陣列就如同**一樣,先指定乙個行(row),再指定乙個列(column),就可以準確地找到所需要的單元格,這就是sdram定址的基本原理。這個單元格被稱為儲存單元,這個儲存矩陣就是邏輯bank(以下簡稱l-bank),sdram一般含有4個l-bank。

4.sdram的訪問步驟

(1)cpu發出片選訊號nscs0有效,選中sdram晶元。

(2)sdram中有4個l-bank,需要兩根位址訊號來選中其中乙個,假設為addr24、addr25作為l-bank的選擇訊號。

(3)對被選中的晶元進行統一的行/列定址。

根據sdram晶元的列位址線數目設定cpu的相關暫存器之後,cpu就會從32位位址中自動分出l-bank選擇訊號、行位址訊號以及列位址訊號,然後先後發出行位址訊號和列位址訊號。l-bank選擇訊號在發出行位址訊號的同時發出,並維持到列位址訊號結束。

32位寬度時2440的addr0與addr1均不使用,2440的addr2連線sdram的addr0,實現4位元組對齊訪問。

(4)找到儲存單元之後,被選中的晶元就要進行統一的資料傳輸。

5.儲存控制器的相關暫存器

(1)位寬和等待控制暫存器bwscon

(2)bank控制暫存器bankconx(x為0~5)

用來控制bank0~bank5外接裝置的訪問時序。

(3)bank控制暫存器bankconx(x為6~7)

用來控制bank6~bank7外接裝置的訪問時序。

(4)重新整理控制暫存器refresh

(5)banksize暫存器

(6)sdram模式設定暫存器mrsrbx(x為6~7)

儲存控制器

嵌入式linux學習筆記 三 儲存控制器 一 使用儲存控制器訪問外設的原理 1 s3c2440的位址空間 s3c2440對外引出27根位址線addr0 addr26,訪問範圍只有128mb,cpu對外還引出8根片選訊號ngcs0 ngcs7,對應bank0 bank7,當訪問bankx的位址空間時,...

儲存控制器

在s3c2410 s3c2440中,儲存控制器提供了訪問外設 所需的訊號。其中,位址線addr0 addr26的訪問範圍為128m,此外cpu還對外引出了8根片選訊號,ngsc0 ngsc7,對應於bank0 bank7,如此一來,位址空間達到了1g。每乙個bank其實可以對應一種外設。比如 ban...

儲存控制器

個人看資料的理解,可能有誤,歡迎指正 這一部件是用於擴充套件的外設的,它所產生引導出的rom的8個bank是應用於擴充套件的外設 如網絡卡,sdram等 使得這些擴充套件外設可以通過匯流排形式來訪問擴充套件的外設。對於32位cpu,它可使用的位址範圍達到4gb。其中的1gb就是該部件所引申對應的,另...