??? 摘? 要: 介紹了USB接口單片機SL11R進行外部存儲器擴展的方法和實例,并測試了外部SRAM及EDO DRAM的工作速度。?
??? 關(guān)鍵詞: 單片機? SL11R? 存儲器? USB?
?
??? SL11R是Scanlogic公司生產(chǎn)的一種帶有USB接口的16位RISC單片機,內(nèi)核處理速度達到48MIPS,有豐富的硬件資源及32位可編程I/O" title="I/O">I/O口,可以靈活擴展外圍芯片。本文主要討論其外部存儲器的擴展。?
1 SL11R存儲器空間?
??? SL11R內(nèi)部有3K字節(jié)的SRAM,可以用作指令存儲器和數(shù)據(jù)存儲器" title="數(shù)據(jù)存儲器">數(shù)據(jù)存儲器,但有些應(yīng)用場合需要擴展存儲器。SL11R可擴展I2C串行E2PROM、通用并行EPROM及RAM,還能夠直接擴展大容量的EDO DRAM。?
??? SL11R采用統(tǒng)一地址編碼方式對外尋址,程序代碼、數(shù)據(jù)區(qū)、I/O地址均安排在64K字節(jié)空間中,各自有獨立的尋址空間并有相應(yīng)的選通信號輸出。硬件設(shè)計時不需另加解碼電路,只要把擴展芯片的片選引腳與對應(yīng)的控制信號相連就可以。SL11R對EDO DRAM的尋址采用頁尋址方式,可尋址高達2M字節(jié)的空間,以滿足圖像采集等需要大量數(shù)據(jù)存儲器的場合。SL11R存儲器空間具體安排見表1。?
?
?
??? 外部RAM的0x0000~0x0BFF地址空間被內(nèi)部RAM占用,故不能使用。?
??? 外部ROM的默認地址空間為0xC100~0xE7FF,通過軟件設(shè)定,也可以占用0x8000~0xBFFF地址空間。?
2 SL11R存儲器擴展?
??? SL11R的外部存儲器包括串行E2PROM存儲器、外部SRAM數(shù)據(jù)存儲器、外部EPROM程序存儲器" title="程序存儲器">程序存儲器及動態(tài)存儲器" title="動態(tài)存儲器">動態(tài)存儲器。?
2.1 串行I2C E2PROM的擴展?
??? 串行E2PROM的擴展比較簡單,只要根據(jù)I2C E2PROM的容量選擇相應(yīng)的電路即可。圖1為擴展2K字節(jié)E2PROM電路圖,圖2為擴展16K字節(jié)E2PROM電路圖。值得注意的是,如果用串行E2PROM作程序存儲器,最好選用圖1所示的接線。由于SL11R內(nèi)部RAM只有3K字節(jié),啟動時BIOS首先從2K字節(jié)的串行E2PROM中加載指令代碼。
?
?
??? 讀寫I2C E2PROM可以直接調(diào)用BIOS中斷實現(xiàn),不需要另編程序,比較方便。?
2.2 外部數(shù)據(jù)存儲器及EPROM的擴展?
??? SL11R的數(shù)據(jù)總線是16位,提供了兩種存儲器擴展模式供用戶選擇,可以通過軟件設(shè)定外部存儲器工作在8位模式或16位模式。圖3是SL11R擴展32K×16位SRAM的實例。圖3所示狀態(tài)下外部SRAM工作在16位模式;當開關(guān)SW接地,則SRAM工作在8位模式,IC2不使用。SL11R的引腳XRAMSEL和XROMSEL可以分別作為外部數(shù)據(jù)存儲器和程序存儲器的片選信號CS。?
?
?
2.3 動態(tài)存儲器的擴展?
??? SL11R擴展動態(tài)存儲器非常簡單。因為它已經(jīng)內(nèi)置了動態(tài)存儲器控制電路,與EDO DRAM直接連接就可以,不需要另加電路,而且自動刷新,用戶使用動態(tài)存儲器象使用SRAM一樣方便。SL11R擴展DRAM的電路見圖4。?
?
?
??? 擴展DRAM時要選擇3.3V的EDO DRAM,盡量使用1M×16位的內(nèi)存芯片如GM71V18163CJ、IS41LV16100、HY51V18164等,這樣電路設(shè)計較簡單。筆者在使用過程中發(fā)現(xiàn),某些DRAM與SL11R存在兼容性問題,有時工作不穩(wěn)定,但換另一批次的芯片后又正常工作,所以設(shè)計者在使用時應(yīng)注意篩選。?
??? SL11R對DRAM的尋址空間為0x8000~0x9FFF和0xA000~0xBFFFF。這個地址值控制尋址的低位地址(A0~A12),另外有2個對應(yīng)的頁面寄存器控制尋址的高位地址,每個頁面都能完成對1M×16位空間的尋址。這兩個16位的頁面寄存器是0xC018和0xC01A,以頁面1寄存器0xC018具體說明如下:?
???
??? 如果A21=1,則對0x8000~0x9FFF空間的讀寫操作是針對DRAM,由DRAMOE和DRAMWT引腳選通DRAM,參見圖4。?
??? 如果A21=0,則對0x8000~0x9FFF空間的讀寫操作是針對其它外設(shè),由nXMEMSEL引腳選通。這種方式使SL11R另外增加了1M×16位的尋址空間,但這個空間DMA方式不能直接尋址。?
??? A13~A20則是頁面1的高位地址,加上0x8000~0x9FFF的低位(A0~A12)實現(xiàn)頁面1的尋址。?
??? 頁面2的尋址與頁面1的尋址完全一樣,只是由0xC01A和對0xA000~0xBFFF的尋址實現(xiàn)。?
??? 頁面1和頁面2的尋址空間是重疊的,一般可以使用一個頁面對DRAM尋址,另一個頁面對其它外設(shè)尋址。?
3 存儲器速度的影響?
??? SL11R的工作頻率較高,必須要考慮存儲器的速度,否則可能工作不正常。?
3.1 靜態(tài)存儲器" title="靜態(tài)存儲器">靜態(tài)存儲器速度?
??? 讀取外部靜態(tài)存儲器的時序見圖5,具體參數(shù)見表2。表2中的參數(shù)是在SL11R的內(nèi)部工作時鐘PCLK工作在36MHz,等待周期設(shè)定為0時的數(shù)據(jù)。?
?
?
?
??? SL11R擴展外部SRAM或EPROM時,可以設(shè)定等待周期,最長可設(shè)定7個等待周期,每個等待周期時間為31ns(PCLK=32MHz時),這樣SL11R就可以擴展價格低廉的低速EPROM和SRAM存儲器。?
??? 選擇SRAM的速度主要應(yīng)該由CS的低電平脈沖寬度決定:?
??? tAC=tCR+tRPW+tRDH-tCDH+等待周期時間?
??? 筆者經(jīng)實驗得到常見的SRAM需要設(shè)定的等待周期數(shù),見表3。從表3的數(shù)據(jù)可知,一般SRAM的速度可以達到標稱值,如PCLK為32MHz,100ns SRAM的等待周期為2,這時tAC=1+28+5-3+2×31=93ns。?
?
?
3.2 動態(tài)存儲器的速度?
??? EDO DRAM的讀寫速度有兩種情況:一種是隨機讀寫;另一種是快速頁面讀寫。SL11R隨機讀寫DRAM的時序見圖6,參數(shù)見表4。?
?
?
?
??? 影響DRAM速度的參數(shù)較多,但選擇DRAM主要是根據(jù)tRAS。一般選擇50ns或60ns的DRAM就可以滿足要求。?
??? SL11R隨機讀寫DRAM的周期時間tRC在PCLK為32MHz時為150ns;PCLK為48MHz時為100ns。經(jīng)測試,DMA方式下,DRAM的讀寫速度可以達到6MHz,滿足常用的數(shù)據(jù)采集要求。?
??? DRAM的快速頁面讀寫是指在DRAM的同一個頁面下,即行地址相同時,DRAM保持行地址不變,只尋址列地址,這樣可以減少發(fā)送行地址的時間。使用快速頁面讀寫必須十分小心,因為在數(shù)據(jù)采集等場合,寫數(shù)據(jù)時頁面發(fā)生變化會影響DRAM的讀寫時間,很可能會丟失數(shù)據(jù)。?
??? SL11R擴展外部存儲器的能力較強,可以方便地擴展I2C接口的串行存儲器、各種速度的靜態(tài)存儲器以及大容量的DRAM。配合SL11R的USB接口和快速的處理能力,可以滿足各種應(yīng)用的需要。?
參考文獻?
1 SL11R技術(shù)資料.http://www.scanlogic.com?
2 竇振中.單片機外圍器件實用手冊存儲器分冊.北京:北京航空航天大學出版社?
3 SRAM、DRAM資料.http://www.issi.com/index.html