12.1內(nèi)存控制器與SDRAM_內(nèi)存接口概念
輔線1_硬件知識_內(nèi)存接口概念
首先來分析下操作GPIO控制器和操作UART控制器兩者的區(qū)別。
如圖是S3C2440是個片上系統(tǒng),有GPIO控制器(接有GPIO管腳),有串口控制器 (接有TXD RXD引腳)。

配置GPIO控制器相應(yīng)的寄存器,即可讓引腳輸出高低電平;配置UART控制器相應(yīng)的寄存器,即可讓引腳輸出波形。前者相對簡單,類似門電路,后者相對復(fù)雜,屬于協(xié)議類接口。類似的協(xié)議類接口還有iic、iis、spi等。
對于CPU是不管什么接口的,它只寫相應(yīng)的寄存器,由控制器根據(jù)寄存器的配置去控制具體的引腳。
那么CPU是如何訪問各個不同的寄存器的呢?
CPU只管發(fā)出一個地址,內(nèi)存控制器根據(jù)該地址選擇不同的模塊,然后從模塊中得到數(shù)據(jù)或者發(fā)送數(shù)據(jù)到模塊中。
前面的GPIO/門電路接口、協(xié)議類接口,都不會把地址輸出到外部,接下來的內(nèi)存類接口,會把地址輸出到外部,比如Nor Flash、網(wǎng)卡、SDRAM。
如圖,SDRAM、DM9000網(wǎng)卡、Nor Flash都接在JZ2440的數(shù)據(jù)總線和地址總線上,CPU把數(shù)據(jù)和地址發(fā)送出去,然后內(nèi)存控制器根據(jù)片選信號選擇相應(yīng)的設(shè)備接收地址和數(shù)據(jù)信號,互不干擾。

片選信號和地址的關(guān)系怎么確定?
這個是由2440芯片特性決定的。

當(dāng)選擇Nor Flash啟動時,CPU發(fā)出的指令的地址范圍處于0x0000000 - 0x08000000,內(nèi)存控制器就會使nGCS0處于低電平(片選引腳被選中),Nor Flash被選中。
當(dāng)CPU發(fā)出的指令的地址范圍處于0x20000000 - 0x28000000,內(nèi)存控制器就會使nGCS4處于低電平(片選引腳被選中),網(wǎng)卡被選中。
當(dāng)CPU發(fā)出的指令的地址范圍處于0x30000000 - 0x38000000,內(nèi)存控制器就會使nGCS6處于低電平(片選引腳被選中),SDRAM被選中。
內(nèi)存控制器根據(jù)不同的地址地址范圍,發(fā)出不同的片選引腳,只有被片選引腳選中的芯片才能正常工作,不被選中的芯片就像不存在一樣,不工作。
GPIO/門電路接口、協(xié)議類接口、內(nèi)存類接口都屬于CPU的統(tǒng)一編址。對于Nand Flash,在原理圖上它的地址線并沒有連接到CPU,因此它不參與CPU的統(tǒng)一編址。但它的數(shù)據(jù)線也接到了數(shù)據(jù)總線上,為了防止干擾,它也有一個片選信號(CE)。當(dāng)CPU訪問Nand Flash時,Nand Flash控制器才會片選Nand Flash,讓其接收數(shù)據(jù)總線上的數(shù)據(jù)。

再來看下Nor Flash的空間,0x00000000 * 0x08000000,為128M,即每一個片選信號可以選擇的空間是128M=2^27,也就需要A0、A1……A26,共27根地址線。CPU發(fā)出的32位地址線,內(nèi)存控制器根據(jù)地址范圍,片選上相應(yīng)的bank,并將地址轉(zhuǎn)化為27位。

入門視頻教程??
