MCU是許多嵌入式子系統(tǒng)設(shè)計(jì)中的關(guān)鍵元素,但實(shí)現(xiàn)必要的系統(tǒng)功能通常需要額外的功能。也許基于MCU的設(shè)計(jì)中最受限制的元素之一是片上存儲(chǔ)器。越來(lái)越多的應(yīng)用程序需要比MCU可用的系統(tǒng)內(nèi)存更多的系統(tǒng)內(nèi)存。特別是,先進(jìn)的人機(jī)界面(HMI)設(shè)計(jì)可能需要大量的只讀圖像和音頻信息,這些信息不容易存儲(chǔ)在MCU片上閃存中。此外,越來(lái)越多的應(yīng)用發(fā)現(xiàn)片上RAM過(guò)度限制了需要大量數(shù)據(jù)緩沖和存儲(chǔ)的高級(jí)通信通道。
本文將快速回顧現(xiàn)代MCU上可用的一些外部存儲(chǔ)器接口。這將有助于設(shè)計(jì)人員更有效地實(shí)現(xiàn)需要額外外部存儲(chǔ)的基于MCU的系統(tǒng) - 無(wú)論是NVM閃存還是易失性SRAM/DRAM。
SDRAM的外部存儲(chǔ)器接口
也許最多擴(kuò)展存儲(chǔ)能力所需的明顯外部存儲(chǔ)器接口適用于大型工作SRAM。通常,MCU具有相對(duì)少量的片上SRAM,并且通常應(yīng)用將需要比片上可用的更多的工作存儲(chǔ)器。例如,高級(jí)用戶界面可能需要大量緩沖存儲(chǔ)器來(lái)處理圖形用戶界面(GUI)和創(chuàng)建視頻或音頻提示。通常,在存儲(chǔ)或傳輸這些數(shù)據(jù)文件時(shí)使用壓縮技術(shù)以降低本地存儲(chǔ)要求或系統(tǒng)帶寬要求。這意味著可能需要大量的工作存儲(chǔ)來(lái)解壓縮這些文件。通常,通信應(yīng)用或數(shù)字信號(hào)處理應(yīng)用中需要大量工作存儲(chǔ)器作為緩沖存儲(chǔ)器。
許多MCU為外部存儲(chǔ)器接口控制器提供了用于控制外部SDRAM器件的特殊電路。強(qiáng)調(diào)支持SDRAM接口的關(guān)鍵硬件元件的示例MCU是恩智浦LPC1787 MCU。外部存儲(chǔ)器控制器外設(shè),如圖1所示,具有幾個(gè)可編程延遲元件,用于調(diào)整關(guān)鍵SDRAM信號(hào)中使用的關(guān)鍵接口信號(hào)的時(shí)序。例如,可以調(diào)整兩個(gè)潛在SDRAM時(shí)鐘(CLKOUT1和CLKOUT2)的延遲值,以根據(jù)存儲(chǔ)器的要求定位轉(zhuǎn)換。此外,另一個(gè)可編程延遲調(diào)整從存儲(chǔ)器讀取的數(shù)據(jù)被采樣的時(shí)間。這種時(shí)序調(diào)整及其范圍和精度對(duì)于簡(jiǎn)化存儲(chǔ)器接口,電路板布局和相關(guān)的信號(hào)時(shí)序檢查至關(guān)重要。
圖1 :恩智浦LPC1787 MCU外部存儲(chǔ)器控制器。 (恩智浦提供)
恩智浦LPC1787外部存儲(chǔ)器接口還包括幾個(gè)其他重要的硬件功能,使外部SDRAM接口更高效。例如,框圖頂部顯示的數(shù)據(jù)緩沖區(qū)可用作讀緩沖區(qū),寫緩沖區(qū)或組合使用。作為寫入緩沖區(qū),它們?cè)试S對(duì)事務(wù)進(jìn)行分組,以最大限度地減少外部寫入操作的數(shù)量,從而提高系統(tǒng)帶寬并降低功耗。作為讀緩沖器,它們充當(dāng)本地?cái)?shù)據(jù)副本,因此對(duì)相同位置的進(jìn)一步訪問(wèn)可以使用片上緩沖器版本。這減少了外部讀取操作的數(shù)量,從而提高了系統(tǒng)帶寬并降低了功耗。
請(qǐng)注意,NXP內(nèi)存控制器還支持RAM,ROM和Flash的靜態(tài)存儲(chǔ)器接口。這是大多數(shù)現(xiàn)代MCU存儲(chǔ)器 - 控制器外設(shè)中使用的典型方法,因?yàn)榇蠖鄶?shù)硬件在兩個(gè)應(yīng)用程序之間都很常見(jiàn),并且應(yīng)用程序通常不需要同時(shí)使用這兩種類型的存儲(chǔ)器。
配置外部存儲(chǔ)器
外部存儲(chǔ)器通常用于多種用途 - 應(yīng)用程序不會(huì)將其視為存儲(chǔ)的單塊“塊”。用于配置片外存儲(chǔ)器塊以簡(jiǎn)化存儲(chǔ)器訪問(wèn)的方法有助于簡(jiǎn)化應(yīng)用程序編碼。 Silicon Labs C8051F70x/71x MCU系列使用了這種技術(shù)的一個(gè)例子。在該MCU中,使用特殊的MOVX指令訪問(wèn)外部存儲(chǔ)器。為了便于將訪問(wèn)組合到片上和片外存儲(chǔ)器,可以將片上存儲(chǔ)器的一部分映射到外部存儲(chǔ)器空間。圖2顯示了可用于將內(nèi)部和外部存儲(chǔ)器映射到外部存儲(chǔ)器地址空間的四種配置模式。在模式1中,如圖2的最左側(cè)所示,內(nèi)部XRAM映射到完整的外部存儲(chǔ)器空間,當(dāng)片上XRAM存儲(chǔ)器地址超過(guò)片上存儲(chǔ)器的數(shù)量時(shí),地址“包裹”。當(dāng)芯片退出復(fù)位時(shí),這可能是一種有用的模式,以避免未初始化外部存儲(chǔ)器的啟動(dòng)問(wèn)題。成功配置和測(cè)試存儲(chǔ)器接口后,可以啟用外部存儲(chǔ)器空間。如果不使用外部存儲(chǔ)器,也可以使用該模式。
圖2:Silicon Labs C8051F70x/71x外部存儲(chǔ)器配置。 (由Silicon Labs提供)
在模式2和3中,圖2中左起第二個(gè)和第三個(gè),地址空間在片上和片外訪問(wèn)之間分配。在模式2中,存儲(chǔ)體選擇不用于將高階地址位驅(qū)動(dòng)到地址總線上;用戶可以控制這些地址值,以提供額外的靈活性。在模式3中,片上存儲(chǔ)體地址自動(dòng)用于驅(qū)動(dòng)外部地址總線,從而提供更簡(jiǎn)單但不太靈活的方法。在模式4中,在圖2的最右側(cè),片外存儲(chǔ)器完全映射到外部地址空間。這使得可以訪問(wèn)在其他地址模式中可能無(wú)法訪問(wèn)的外部數(shù)據(jù),以充分利用可用內(nèi)存。如果您的應(yīng)用程序具有多種不同類型的外部存儲(chǔ)器要求 - 代碼,數(shù)據(jù)緩沖區(qū),轉(zhuǎn)換表或音頻/視頻處理,則可以簡(jiǎn)化設(shè)計(jì),以使用具有地址映射和塊訪問(wèn)功能的外部存儲(chǔ)器控制器。
外部存儲(chǔ)器接口靈活性
在某些應(yīng)用中,MCU外部存儲(chǔ)器接口支持多種存儲(chǔ)器類型同時(shí)最小化器件引腳數(shù)量至關(guān)重要。常見(jiàn)的組合是用于程序存儲(chǔ)的Flash和用作工作存儲(chǔ)器的SRAM。如果MCU上使用多個(gè)存儲(chǔ)器接口,則可能會(huì)在封裝中添加20個(gè)或更多引腳,從而增加了成本,功耗和電路板空間要求。一些MCU在外部存儲(chǔ)器控制器中提供了額外的靈活性,可以輕松適應(yīng)各種存儲(chǔ)器設(shè)備。例如,流行的Microchip PIC18F MCU系列提供了靈活的存儲(chǔ)器接口,可以擴(kuò)展到多種器件類型。圖3顯示了使用單個(gè)外部總線連接標(biāo)準(zhǔn)閃存和標(biāo)準(zhǔn)SRAM的一種方法。在這種情況下,使用一些外部組件(兩個(gè)373鎖存器和一個(gè)138解碼器)來(lái)最小化MCU上使用的引腳數(shù)量。 (對(duì)于只需要一個(gè)373鎖存器的8位接口,也可以實(shí)現(xiàn)更簡(jiǎn)單的實(shí)現(xiàn))。具有這種靈活性的外部存儲(chǔ)器接口允許“保存的”IO用于其他功能,最大化引腳效率,這是基于MCU的設(shè)計(jì)中最重要的元素之一。
圖3:Microchip PIC18F MCU外部存儲(chǔ)器接口框圖。 (由Microchip Technology提供)
接口時(shí)序靈活性
除IO互連靈活性外,外部接口通常還需要一定的時(shí)序靈活性。例如,如果內(nèi)存慢于MCU時(shí)鐘周期,則可能需要插入等待狀態(tài)。理想情況下,可以為不同的外部存儲(chǔ)器塊分配不同的等待狀態(tài)特性。當(dāng)外部接口不僅可用于標(biāo)準(zhǔn)存儲(chǔ)器而且可用于存儲(chǔ)器映射器外設(shè)(如液晶顯示器,模數(shù)轉(zhuǎn)換器和數(shù)模轉(zhuǎn)換器)時(shí),此功能更為重要。 Atmel ATmega MCU系列可以為外部存儲(chǔ)器空間分配兩個(gè)不同的等待狀態(tài)值。如下面的圖4所示,存儲(chǔ)器配置A允許外部存儲(chǔ)器被分成兩個(gè)扇區(qū) - 上部扇區(qū)和下部扇區(qū)。扇區(qū)大小可以有八個(gè)不同的值之一,以0x2000為增量從0x2000到0xE000調(diào)整上段和下段之間的分界線。
圖4:Atmel ATmega64外部存儲(chǔ)空間。 (由Atmel提供)
將外部存儲(chǔ)器空間劃分為兩個(gè)扇區(qū)可以輕松地將具有較大等待狀態(tài)值的設(shè)備和具有較小等待狀態(tài)值的設(shè)備組合在一起。也許最重要的是,如果零等待狀態(tài)存儲(chǔ)器用于頻繁訪問(wèn)的程序數(shù)據(jù),即使較慢的設(shè)備共享相同的存儲(chǔ)器總線,也可以使用零等待狀態(tài)值。這樣可以最大限度地降低MCU引腳要求,同時(shí)提高性能并節(jié)省功耗。
結(jié)論
MCU有時(shí)需要使用外部存儲(chǔ)器接口擴(kuò)展可用的片上存儲(chǔ)器。了解這些接口的功能可以縮短設(shè)計(jì)時(shí)間,降低成本并提高系統(tǒng)性能。
-
mcu
+關(guān)注
關(guān)注
146文章
17199瀏覽量
351927 -
嵌入式
+關(guān)注
關(guān)注
5087文章
19153瀏覽量
306428 -
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7518瀏覽量
164083
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論