首先,我們還是看乙個電路圖:
這只是儲存晶元的讀資料時的訪問過程,在讀資料過程中,儲存晶元不需要知道arm在某個時刻訪問的是高位元組還是低位元組,只需要把指定位址空間處的16位資料送到資料匯流排即可。但是,對於寫過程,就不是這麼簡單了。
顯然,對於向儲存晶元中寫資料的情況,儲存晶元是需要知道當前arm晶元到底是寫的是低位元組,還是高位元組,還是整個字。那麼,這一項資訊arm靠什麼方式通知儲存晶元呢?
縱觀16位的儲存晶元(無論是sram、sdram還是ddr),我們可以發現,晶元一般都提供兩個表徵著寫遮蔽的引腳。例如 sram晶元一般是(nlb,nub),ddr2晶元一般是(ldm,udm),一般,nlb、ldm標識低位元組,而 nub 、udm 一般標識高位元組。例如,對於 sram晶元而言,在寫時序中,只有 nlb 有效,才允許寫低位元組;只有 nub 有效,才允許寫高位元組。
另外,有的8位儲存晶元也有這樣的寫遮蔽引腳,用於多片8位儲存晶元的擴充套件,由於8位資料寬的晶元不存在高低位元組,故寫遮蔽引腳一般只有乙個,例如有的8位ddr2晶元的寫遮蔽引腳為dm。
相應地,arm端一般也會有一些引腳,用於標識當前寫時序中,正在寫的是低位元組、高位元組還是整個字。例如,s3c2440 的相關引腳如下:
針對不同的儲存晶元,使用的是不同的寫遮蔽引腳,如 sdram/ddr2 則使用 dqm[3:0],sram則使用nbe[3:0],而 nwbe[3:0]則是用來連線多個8位儲存器擴充套件系統的,由於一般8位儲存器只有nwe引腳,對於選通那一片進行寫,則由nwbe[3:0]來決定。
將 arm 端的寫遮蔽引腳與對應的儲存晶元的寫遮蔽引腳相連即可,一般arm端都會設計多組寫遮蔽引腳,例如s3c2440的dqm引腳有4個,用於多片儲存晶元擴充套件的情況。
下面再講講儲存晶元的擴充套件,一般都是進行資料位寬的擴充套件,即使用2片8位儲存晶元擴充套件位16位儲存系統,或者是2片16位儲存晶元擴充套件位32位儲存系統。
乙個典型的儲存晶元擴充套件電路圖如下:
由圖可以看出,該電路將兩片16位寬的sram晶元擴充套件位了乙個32位寬的儲存系統,兩片sram晶元的引腳連線幾乎相同,那麼,究竟是什麼決定著左邊這一片sram作為低位元組,而右邊那一片作為高位元組呢?由上面的寫遮蔽的知識我們知道,就是寫遮蔽位決定的,左邊這片sram晶元連線的是nbe0~nbe1,決定了其為低2位元組,而右邊的nbe2~nbe3決定了其為高2位元組。
原文出處:
攻克儲存 儲存晶元的寫遮蔽及擴充套件
首先,我們還是看乙個電路圖 這只是儲存晶元的讀資料時的訪問過程,在讀資料過程中,儲存晶元不需要知道arm在某個時刻訪問的是高位元組還是低位元組,只需要把指定位址空間處的16位資料送到資料匯流排即可。但是,對於寫過程,就不是這麼簡單了。顯然,對於向儲存晶元中寫資料的情況,儲存晶元是需要知道當前arm晶...
攻克儲存 SRAM位址線的連線
在嵌入式系統設計過程中,由於主控晶元 如arm ppc mips等 片上的儲存空間不夠大,經常需要外接儲存器晶元 如rom sram sdram ddr2 nand flash等 因此,弄清楚主控晶元與外界儲存晶元的引腳連線原理至關重要,由於nand flash的引腳連線比較簡單,不涉及位址線的連線...
攻克儲存 SRAM位址線的連線
在嵌入式系統設計過程中,由於主控晶元 如arm ppc mips等 片上的儲存空間不夠大,經常需要外接儲存器晶元 如rom sram sdram ddr2 nand flash等 因此,弄清楚主控晶元與外界儲存晶元的引腳連線原理至關重要,由於nand flash的引腳連線比較簡單,不涉及位址線的連線...