摘要:介紹了USB接口單片機(jī)SL11R進(jìn)行外部存儲(chǔ)器擴(kuò)展的方法和實(shí)例,并測試了外部SRAM及EDO DRAM的工作速度。
關(guān)鍵詞:單片機(jī) SL11R 存儲(chǔ)器 USB
SL11R是Scanlogic公司生產(chǎn)的一種帶有USB接口的16位RISC單片機(jī),內(nèi)核處理速度達(dá)到48MIPS,有豐富的硬件資源及32位可編程I/O口,可以靈活擴(kuò)展外圍芯片。本文主要討論其外部存儲(chǔ)器的擴(kuò)展。
1 SL11R存儲(chǔ)器空間
SL11R內(nèi)部有3K字節(jié)的SRAM,可以用作指令存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器,但有些應(yīng)用場合需要擴(kuò)展存儲(chǔ)器。SL11R可擴(kuò)展I2C串行E2PROM、通用并行EPROM及RAM,還能夠直接擴(kuò)展大容量的EDO DRAM。
SL11R采用統(tǒng)一地址編碼方式對(duì)外尋址,程序代碼、數(shù)據(jù)區(qū)、I/O地址均安排在64K字節(jié)空間中,各自有獨(dú)立的尋址空間并有相應(yīng)的選通信號(hào)輸出。硬件設(shè)計(jì)時(shí)不需另加解碼電路,只要把擴(kuò)展芯片的片選引腳與對(duì)應(yīng)的控制信號(hào)相連就可以。SL11R對(duì)EDO DRAM的尋址采用頁尋址方式,可尋址高達(dá)2M字節(jié)的空間,以滿足圖像采集等需要大量數(shù)據(jù)存儲(chǔ)器的場合。SL11R存儲(chǔ)器空間具體安排見表1。
表1 SL11R存儲(chǔ)器空間
| 功 能 區(qū) | 地址空間 |
| 內(nèi)部RAM 外部RAM 外部DRAM 外部DRAM 內(nèi)部寄存器 外部ROM 內(nèi)部ROM | 0x0000~0x0BFF 0x0C00~0x7FFF 0x8000~0x9FFF 0xA000~0xBFFF 0xC000~0xC0FF 0xC100~0xE7FF 0xE800~0xFFFF |
外部RAM的0x0000~0x0BFF地址空間被內(nèi)部RAM占用,故不能使用。
外部ROM的默認(rèn)地址空間為0xC100~0xE7FF,通過軟件設(shè)定,也可以占用0x8000~0xBFFF地址空間。
2 SL11R存儲(chǔ)器擴(kuò)展
SL11R的外部存儲(chǔ)器包括串行E2PROM存儲(chǔ)器、外部SRAM數(shù)據(jù)存儲(chǔ)器、外部EPROM程序存儲(chǔ)器及動(dòng)態(tài)存儲(chǔ)器。
2.1 串行I2C E2PROM的擴(kuò)展
串行E2PROM的擴(kuò)展比較簡單,只要根據(jù)I2C E2PROM的容量選擇相應(yīng)的電路即可。圖1為擴(kuò)展2K字節(jié)E2PROM電路圖,圖2為擴(kuò)展16K字節(jié)E2PROM電路圖。值得注意的是,如果用串行E2PROM作程序存儲(chǔ)器,最好選用圖1所示的接線。由于SL11R內(nèi)部RAM只有3K字節(jié),啟動(dòng)時(shí)BIOS首先從2K字節(jié)的串行E2PROM中加載指令代碼。
讀寫I2C E2PROM可以直接調(diào)用BIOS中斷實(shí)現(xiàn),不需要另編程序,比較方便。
2.2 外部數(shù)據(jù)存儲(chǔ)器及EPROM的擴(kuò)展
SL11R的數(shù)據(jù)總線是16位,提供了兩種存儲(chǔ)器擴(kuò)展模式供用戶選擇,可以通過軟件設(shè)定外部存儲(chǔ)器工作在8位模式或16位模式。圖3是SL11R擴(kuò)展32K×16位SRAM的實(shí)例。圖3所示狀態(tài)下外部SRAM工作在16位模式;當(dāng)開關(guān)SW接地,則SRAM工作在8位模式,IC2不使用。SL11R的引腳XRAMSEL和XROMSEL可以分別作為外部數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器片選信號(hào)CS。
2.3 動(dòng)態(tài)存儲(chǔ)器的擴(kuò)展
SL11R擴(kuò)展動(dòng)態(tài)存儲(chǔ)器非常簡單。因?yàn)樗呀?jīng)內(nèi)置了動(dòng)態(tài)存儲(chǔ)器控制電路,與EDO DRAM直接連接就可以,不需要另加電路,而且自動(dòng)刷新,用戶使用動(dòng)態(tài)存儲(chǔ)器負(fù)使用SRAM一樣方便。SL11R擴(kuò)展DRAM的電路見圖4。
擴(kuò)展DRAM時(shí)要選擇3.3V的EDO DRAM,盡量使用1M×16位的內(nèi)存芯片如GM71V18163CJ、IS41LV16100、HY51V18164等,這樣電路設(shè)計(jì)較簡單。筆者在使用過程中發(fā)現(xiàn),某些DRAM與SL11R存在兼容性問題,有時(shí)工作不穩(wěn)定,但換另一批次的芯片后又正常工作,所以設(shè)計(jì)者在使用時(shí)應(yīng)注意篩選。
SL11R對(duì)DRAM的尋址空間為0x8000~0x9FFF和0xA000~0xBFFFF。這個(gè)地址值控制尋址的低位地址(A0~A12),另外有2個(gè)對(duì)應(yīng)的頁面寄存器控制尋址的高位地址,每個(gè)頁面都能完成對(duì)1M×16位空間的尋址。這兩個(gè)16位的頁面寄存器是0xC018和0xC01A,以頁面1寄存器0xC018具體說明如下:
| D15~D9 | D8 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
| 0 | A21 | A20 | A19 | A18 | A17 | A16 | A15 | A14 | A13 |
如果A21=1,則對(duì)0x8000~0x9FFF空間的讀寫操作是針對(duì)DRAM,由DRAMOE和DRAMWT引腳選通DRAM,參見圖4。
如果A21=0,則對(duì)0x8000~0x9FFF空間的讀寫操作是針其它外設(shè),由nXMEMSEL引腳選通。這種方式使SL11R另外增加了1M×16位的尋址空間,但這個(gè)空間DMA方式不能直接尋址。
A13~A20則是頁面1的高位地址,加上08000~0x9FFF的低位(A0~A12)實(shí)現(xiàn)頁面1的尋址。
頁面2的尋址與頁面1的尋址完全一樣,只是由0xC01A和對(duì)0xA000~0xBFFF的尋址實(shí)現(xiàn)。
頁面1和頁面2的尋址空間是重疊的,一般可以使用一個(gè)頁面對(duì)DRAM尋址,另一個(gè)頁面對(duì)其它外設(shè)尋址。
3 存儲(chǔ)器速度的影響
SL11R的工作頻率較高,必須要考慮存儲(chǔ)器的速度,否則可能工作不正常。
3.1 靜態(tài)存儲(chǔ)器速度
讀取外部靜態(tài)存儲(chǔ)器的時(shí)序見圖5,具體參數(shù)見表2。表2中的參數(shù)是SL11R的內(nèi)部工作時(shí)鐘PCLK工作36MHz,等待周期設(shè)定為0時(shí)的數(shù)據(jù)。
表2 SL11R讀周期參數(shù)





