原文地址::
一、 儲存空間映射
ADSP-BF531處理器把儲存空間視為一個統一的4GBytes的地址空間,使用32位地址。所有的資源,包括內部儲存空間、外部儲存空間和I/O控制寄存器,都佔據公用地址空間的各自獨立的部分,4-1所示。此地址空間的各部分儲存空間按分級結構排列,用於Cache和SRAM的快速、低延遲的儲存空間系統離處理器最近,其他部分離處理器較遠。
圖4-1 系統儲存空間映射
L1儲存空間系統是Blackfin DSP核心所用的效能最高的儲存空間。片外的儲存空間系統通過外部匯流排介面單元(EBIU)訪問,可以串連SDRAM、NORFLASH及SRAM等。
儲存空間DMA控制器 (MDMA)提供高頻寬的資料轉送能力。它能夠在內部儲存空間和外部儲存空間空間之間完成代碼或資料的塊傳輸,具體內容將在後面的章節中詳述。
1. 內部(片內)儲存空間
ADSP-BF531處理器片記憶體儲器如表4-1所示。
表4-1 儲存空間配置
類型 |
大小 |
位址範圍 |
指令SRAM/Cache |
16Kbytes |
0XFFA1 0000-0XFFA1 4000 |
指令SRAM |
16Kbytes |
0XFFA0 8000-0XFFA0 C000 |
資料SRAM/Cache |
16Kbytes |
0XFF80 4000-0XFF80 8000 |
中間資料存放區器 |
4Kbytes |
0XFFB0 0000-0XFFB0 1000 |
總計 |
52Kbytes |
|
(1) L1指令儲存空間, 由32Kbytes的SRAM組成,其中16Kbytes可以配置為一個4路聯合的Cache。L1指令儲存空間以處理器的最快速度訪問;
(2) L1資料存放區器,由16Kbytes的SRAM組成,可以配置成Cache或SRAM。
(3) 4Kbytes臨時資料SRAM,它和L1儲存空間有相同的運行速度,但只能作為資料SRAM,但不能配置成Cache。
2. 外部(片外)儲存空間
外部匯流排介面單元(EBIU)既可以用於非同步裝置(例如:FLASH、EPROM、ROM、SRAM以及儲存空間映射I/O裝置),也可以用於同步裝置(例如:SDRAM)。它們的匯流排寬度均為16位,8位的外圍裝置必須如同16位裝置一樣分配16位地址,但只使用其低8位元據。
與PC133完全相容的SDRAM控制器可以訪問16MByte 到128MByte的SDRAM。這可以為使用者提供廉價的大容量資料緩衝區。
非同步儲存空間控制器能夠通過編程式控制制多達4個塊非同步存放裝置。無論使用裝置的大小如何,每個bank的空間都佔據1MByets。這樣,只能裝滿4個1MByte的儲存空間時地址空間才能連續。
二、 Blackfin與SDRAM串連
ADI公司的Blackfin系列處理器提供了可以與SDRAM介面的外部匯流排介面單元(EBIU)。下面簡單介紹一下SDRAM硬體設計及初始化。
SDRAM 儲存空間是一種成熟的儲存技術,簡單地說,他利用定時重新整理技術來簡化單個儲存空間單元所佔用的絕對空間,使得在較小的矽片面積上,可以建立較大容量的儲存區。這樣不但降低了成本、降低了功耗,更使得大型存放區在嵌入式系統中成為可能。市面上,1MByte容量的SRAM生產廠家寥寥無幾,並且價格昂貴,功耗極大;而2MByte及以上的SDRAM,價格已經非常低廉了,MS-531一代和二代開發板都分別標配了32MByte的SDRAM,這樣我們就有足夠大的空間進行音頻、視頻緩衝及大容量資料存放區。
圖4-2 Blackfin處理器與SDRAM的串連
SDRAM初始化將影響應用程式的效能和SDRAM的功耗,為了使大家對SDRAM設定有更好的理解,本節通過設定外部匯流排介面單元(EBIU)寄存器來初始化SDRAM。根據所使用SDRAM晶片參數,分別對EBIU_SDRRC、EBIU_SDBCTL和EBIU_SDGCTL寄存器進行配置,下面是HY57V561620CLT的配置參數,僅供參考,具體配置參數大小,請參照HY57V561620CLT和ADSP-BF531晶片手冊。
三、 Blackfin與非同步存放裝置串連
第一節我們說到,Blackfin的EBIU模組包含4個非同步儲存空間塊空間,每塊包含1MByte位元組的定址空間;從應用的角度來講,這四個塊不但可以和SRAM/ ROM / Nor FLASH 等通用目的的儲存空間相連,也可以跟FPGA / CPLD 以及具有非同步介面的一些專用晶片相連,如MS531二代就是利用這個組件和高速乙太網路晶片DM9000A相連的。表4-3為四塊非同步空間的介面引腳。
表4-2 非同步存放裝置空間
引腳名稱 |
引腳類型 |
功能描述 |
DATA[15:0] |
I / O |
外部資料匯流排 |
ADDR[19:0] |
O |
外部地址匯流排 |
AMS[3:0] |
O |
塊片選,低電平有效 |
AWE |
O |
寫使能,低電平有效 |
ARE |
O |
讀使能,低電平有效 |
AOE |
O |
輸出使能,低電平有效 |
ARDY |
I |
匯流排準備好,用於等待串連慢速的外部裝置 |
ABE[1:0] |
O |
位元組使能,用於單位元組訪問屏蔽 |
這裡需要注意的是,我們需要把AOE與SRAM的OE相連,而不是ARE引腳。ARDY如果不用,可以直接接低電平,在寄存器配置裡,可以忽略檢測ARDY訊號。如果不需要單位元組訪問,ABE也可以不用串連。
AMS[3:0]是四組片選訊號,分別代表四個連續的獨立空間,表4-3為四個非同步儲存塊的映射地址。
表4-3 非同步儲存空間空間映射
片 選 |
大 小 |
位址範圍 |
AMS[0] |
1MByte |
0X2000 0000 - 0X200F FFFF |
AMS[1] |
1MByte |
0X2010 0000 - 0X201F FFFF |
AMS[2] |
1MByte |
0X2020 0000 - 0X202F FFFF |
AMS[3] |
1MByte |
0X2030 0000 - 0X203F FFFF |
非同步儲存空間空間包含了三組寄存器,
全域控制寄存器(EBIU_AMGCTL)、
塊控制寄存器0(EBIU_AMBCTL0)
塊控制寄存器1(EBIU_AMBCTL1)。
EBIU_AMGCTL控制全域的設定,EBIU_AMBCTL0和EBIU_AMBCTL1的高低16為分別控制四個塊的讀寫時序。
表4-4 EBIU_AMGCTL(地址:0XFFC0 0A00 複位值0x00F2)
位 |
名稱 |
描述 |
15:9 |
- |
未用 |
8 |
CDPRIO |
DMA 和核心訪問優先順序控制位。 0:核心訪問優先; 1:DMA訪問優先。 |
7:4 |
- |
未用 |
3:1 |
AMBEN |
使能非同步儲存空間模組。 000:所有塊禁止; 001:使能塊 0; 010:使能塊 0 和 塊 1; 011:使能塊 0 、塊 1 和塊 2; 1xx:全部使能。 |
0 |
AMCKEN |
CLKOUT時鐘使能。 0:時鐘禁止; 1:時鐘使能。 |
EBIU_AMBCTL0 和EBIU_AMBCTL1具有相同的屬性,我們僅通過一例控制說明每位的含義。
表4-5 EBIU_AMBCTL 描述
寄存器 |
位 |
描 述 |
AMBCTL0 |
15:0 |
控制非同步儲存空間塊 0 |
AMBCTL0 |
31:16 |
控制非同步儲存空間塊 1 |
AMBCTL1 |
15:0 |
控制非同步儲存空間塊 2 |
AMBCTL1 |
31:16 |
控制非同步儲存空間塊 3 |
表4-6EBIU_AMBCTL0 低16位(複位值0xFF2)
位 |
名稱 |
描 述 |
15:12 |
B0WAT |
塊0 寫訪問時間(周期數) 0000: 不支援; 0001 到 1111:1 到 15個周期。 |
11:8 |
B0RAT |
塊 0 讀訪問時間(周期數) 0000:不支援; 0001 到 1111:1到15個周期。 |
7:6 |
B0HT |
塊 0 訪問保持時間(周期數) 00:0周期; 01:1周期; 10:2周期; 11:3周期。 |
5:4 |
B0ST |
塊 0 訪問建立時間(周期數) 00:4周期; 01:1周期; 10:2周期; 11:3周期。 |
3:2 |
B0TT |
塊0 資料轉送時間,指的是讀訪問後和寫訪問前插入多少個刻度。 00:4周期; 01:1周期; 10:2周期; 11:3周期。 |
1 |
B0RDYPOL |
塊0 ARDY 極性。 0:低電平有效; 1:高電平有效。 |
0 |
B0RDYEN |
塊 0 ARDY 使能。 0:忽略ARDY 訊號; 1:使能ARDY 訊號。 |