1.1. S3C2440處理器結構
S3C2440處理器的結構如下圖所示,其核心單元為ARM9TDMI處理器核,主要包括16K的指令Cache和16K的數據Cache,以及分開的指令和數據MMU單元等。CP15為一個協處理器(Co-Processor)。通過AMBA2.0(Advanced Microcontroller Bus Architecture)總線接口與外部設備相連。
圖 1 S3C2440處理器框圖
IVA指Instruction Virtual Address,指令虛擬地址;DVA指Data Virtual Address,數據虛擬地址。IPA指Instruction Physical Address,指令物理地址;DPA指Data Physical Address,指數據物理地址。
S3C2440處理器的封裝大小為14mmx14mm,289-FBGA封裝類型。工作頻率最高為400MHz。
2.0版AMBA總線標准定義了三組總線,如下表所示:
表 1 AMBA總線標准中的三組總線
總線名稱 |
全稱 |
說明 |
AHB |
the Advanced High-performance Bus 高性能總線 |
應用於高性能、高時鍾頻率的系統模塊,它構成了高性能的系統骨干總線。 |
ASB |
the Advanced System Bus 系統總線 |
是第一代AMBA系統總線,同AHB相比,它數據寬度要小一些,它支持的典型數據寬度為8位、16位、32位。 |
APB |
the Advanced Peripheral Bus 外設總線 |
是本地二級總線(local secondary bus),通過橋和AHB/ASB相連。它主要是為了滿足不需要高性能流水線接口或不需要高帶寬接口的設備的互連。 |
S3C2440處理器的外設與AMBA總線的連接如下圖所示。
圖 2 S3C2440外部設備連接圖
MPLL鎖相環產生時鍾,供給AMBA總線上的各個設備使用。AHB總線上,主要包括LCD控制器、LCD的DMA模塊,USB Host控制器,ExtMaster(允許外部設備作為總線的Master),NAND 控制器、NAND Flash啟動的裝載器,總線控制器、仲裁器和譯碼器,中斷控制器,電源管理模塊,攝像頭接口模塊,內存控制器(包括SRAM、NOR Flash和SDRAM三種)。
APB總線上掛載各種外設,包括3個UART,USB設備,SDI/MMC卡,看門狗定制器,總線控制器、仲裁器和譯碼器,2個SPI總線,I2C總線,I2S總線,GPIO接口,RTC實時時鍾,ADC模數轉換器,定時器/PWM發生器,AC97音頻編解碼器。
1.2. S3C2440的內存地址空間
S3C2440的地址空間如下所示:
圖 3 S3C2440復位后的內存映射
從圖中可以看到,S3C2440的內存控制器將可訪問的內存划分為8個Bank,每個Bank通過nGCS[0~7]引腳選通,占用空間為128MB,總計可訪問1GB的內存空間。前6個Bank可訪問SROM(包括ROM和SRAM),后兩個Bank可訪問ROM、SRAM和SDRAM。
根據OM[1:0]引腳的不同,可選擇是否使用Nand Flash作為啟動ROM,這時內存在地址空間的映射不同。具體地說,是Bank0和內部4K的啟動SRAM(Boot Internal SRAM)的映射不同。Boot Internal SRAM是處理器內部的一塊專用的SRAM存儲區,大小為4K,專門用於系統的啟動。
當OM[1:0]的值為01或者10時,Bank0可訪問SROM,內部的4KB啟動SRAM位於0x4000_0000處;當OM[1:0]的值為00時,選擇Nand Flash為啟動RAM,此時Bank0不能訪問SROM,內部的4KB啟動SRAM位於Bank0的地址0x0000_0000處。
選擇Nand Flash為啟動ROM時,Nand Flash Boot Loader模塊會自動將Nand Flash的前4K數據讀取到啟動RAM,然后復位從啟動RAM處的指令開始執行。
圖 4 S3C2440的Bank6和Bank7地址
Bank6和Bank7用於連接SDRAM,其起始地址和結束地址是可配置的,如上圖所示。Bank6地址一定是從0x3000_0000開始,根據SDRAM內存大小的不同,Bank6的地址結束,然后Bank7直接從Bank6結束的地方開始,使Bank6和Bank7形成物理上連續的地址空間。具體的配置需要設置BANKSIZE專用寄存器。如下圖所示。
BANKSIZE寄存器的地址為0x4800_0028,其bit[2:0]可是只Bank6/7的映射方式,表示Bank的內存空間大小。
S3C2440使用外部SDRAM的頻率為133MHz左右。
BANKSIZE寄存器的地址為0x4800_0028,其bit[2:0]可是只Bank6/7的映射方式,表示Bank的內存空間大小。
S3C2440使用外部SDRAM的頻率為133MHz左右。
1.3. TQ2440開發板的Memory連接
前面講述了S3C2440芯片的內存地址空間的划分,這里我們通過TQ2440開發板上的設計給出一個實際的例子。TQ2440是廣州天嵌計算機技術有限公司提供的一款基於S3C2440處理器的開發板,其Memory連接結構如下圖所示:
圖 6 TQ2440開發板的Memory連接
從圖中可以看出,TQ2440僅使用了S3C2440處理器中8個Memory Bank中的2個,即Bank0和Bank6。Bank0連接2MB的Nor Flash,數據寬度為16bit;Bank6連接2個數據寬度為16bit的SDRAM顆粒,每個顆粒內存容量32MB,組成總容量為64MB數據寬度為32bit的DDR主存。通過Nand Flash控制器,連接8bit數據寬度的Nand Flash,容量為256MB。
Nand Flash控制器的相關配置主要通過引腳完成,相關引腳包括:
在TQ2440上,OM[0]可通過撥碼開關選擇,OM[1]接地。OM[1:0]只能選擇為00或01,為00時表示Nand Flash啟動,為01時表示nGCS0的Bank為16bit模式。nGCS0連接在Nor Flash上,即從16bit數據總線寬度的Nor Flash啟動。
TQ2440上對Nand Flash控制器的配置引腳連接如下,在開發板上使用的Nand Flash型號為K9F2G08U0A,故NR5電阻不焊接。
圖 7 TQ2440開發板的Nand Flash控制器配置
從圖中可以看出,NCON引腳的值為1,GPG13引腳的值為1,GPG14的引腳值為1,GPG15的引腳值為0。這些值分別與K9F2G08U0A芯片的特征對應——內存容量為256MB(2Gbit),Page Size為2KB,需要5個Address Cyle,數據寬度為8bit。