天天看點

許己範晶片摘錄--(基于MCU系統的外部存儲器接口配置)

作者:許己範晶片摘錄

作者|Warren Miller 來源:電子産品/電子發燒友

MCU 是許多嵌入式子系統設計中的關鍵元素,但通常需要額外的功能來實作必要的系統功能。在基于 MCU 的設計中,最受限制的元素之一可能是片上存儲器。越來越多的應用程式需要比 MCU 可用得更多的系統記憶體。特别是,進階人機界面 (HMI) 設計可能需要大量隻讀圖像和音頻資訊,這些資訊不容易存儲在 MCU 片上閃存中。此外,越來越多的應用發現片上 RAM 過度限制了需要大量資料緩沖和存儲的進階通信通道。

本文将快速回顧現代 MCU 上可用的一些外部存儲器接口。這将幫助設計人員更有效地實作需要額外外部存儲(如 NVM 閃存或易失性 SRAM/DRAM)的基于 MCU 的系統。

(一)到 SDRAM 的外部存儲器接口

擴充存儲能力所需的最明顯的外部存儲器接口可能是大型工作 SRAM。通常,MCU 的片上 SRAM 數量相對較少,而且應用程式需要的工作記憶體通常比片上可用記憶體多。例如,進階使用者界面可能需要大量緩沖存儲器來處理圖形使用者界面 (GUI) 和建立視訊或音頻提示。通常,在存儲或傳輸這些資料檔案時會使用壓縮技術來降低本地存儲需求或系統帶寬需求。這意味着解壓縮這些檔案可能需要大量的工作存儲空間。通常,在通信應用或數字信号處理應用中也需要大的工作存儲器作為緩沖存儲器。

許多 MCU 提供帶有特殊電路的外部存儲器接口控制器,用于控制外部 SDRAM 裝置。NXP LPC1787是一個突出用于支援 SDRAM 接口的關鍵硬體元素的示例 MCU單片機。外部存儲器控制器外設,如圖 1 所示,具有幾個可程式設計延遲元件,用于調整關鍵 SDRAM 信号中使用的關鍵接口信号的時序。例如,可以調整兩個潛在 SDRAM 時鐘(CLKOUT1 和 CLKOUT2)的延遲值,以根據存儲器的要求定位轉換。此外,另一個可程式設計延遲調整從存儲器讀取的資料被采樣的時間。這種時序調整及其範圍和精度對于簡化存儲器接口、電路闆布局和相關的信号時序檢查至關重要。

NXP LPC1787 外部存儲器接口還包括其他幾個重要的硬體特性,使外部 SDRAM 接口更加高效。例如,框圖頂部顯示的資料緩沖區可用作讀取緩沖區、寫入緩沖區或組合使用。作為寫緩沖器,它們允許對事務進行分組,以最大限度地減少外部寫操作的數量,提高系統帶寬并降低功耗。作為讀取緩沖區,它們充當本地資料副本,是以對同一位置的進一步通路可以使用片上緩沖區版本。這減少了外部讀取操作的數量,進而提高了系統帶寬并降低了功耗。

請注意,NXP 記憶體控制器還支援 RAM、ROM 和閃存的靜态記憶體接口。這是大多數現代 MCU 記憶體控制器外設中使用的典型方法,因為大部分硬體在兩個應用程式之間是通用的,而且應用程式通常不需要同時使用兩種類型的記憶體。

(二)配置外部存儲器

外部存儲器通常有多種用途——應用程式不會将其視為單一的存儲“塊”。一種配置片外存儲器塊以簡化存儲器通路的方法有助于簡化應用程式編碼。Silicon Labs C8051F70x/71x使用了這種技術的一個示例MCU 系列。在這個 MCU 中,使用特殊的 MOVX 指令通路外部存儲器。為了友善組合對片上和片外存儲器的通路,可以将一部分片上存儲器映射到外部存儲器空間。圖 2 顯示了可用于将内部和外部存儲器映射到外部存儲器位址空間的四種配置模式。在模式 1 中,如圖 2 的最左側所示,内部 XRAM 被映射到完整的外部存儲器空間,當片上 XRAM 存儲器位址超過片上存儲器量時,位址“回繞”。當使晶片退出複位以避免未初始化外部存儲器的啟動問題時,這可能是一種有用的模式。成功配置和測試記憶體接口後,即可啟用外部記憶體空間。

在模式 2 和 3(圖 2 中從左數第二個和第三個)中,位址空間在片上和片外通路之間劃分。在模式 2 中,組選擇不用于将高位位址位驅動到位址總線上;使用者可以控制這些位址值以提供額外的靈活性。在模式 3 中,片上存儲體位址自動用于驅動外部位址總線,提供了一種更簡單但不太靈活的方法。在模式 4 中,在圖 2 的最右側,片外存儲器完全映射到外部位址空間。這使得通路在其他位址模式下可能無法通路的外部資料成為可能,以充分利用可用記憶體。如果您的應用程式有幾種不同類型的外部存儲器需求——代碼、資料緩沖區、轉換表、

(三)外部存儲器接口靈活性

在某些應用中,MCU 外部存儲器接口支援多種存儲器類型同時最大限度地減少器件引腳數至關重要。一個常見的組合是用于程式存儲的閃存和用作工作存儲器的 SRAM。如果在 MCU 上面使用多個存儲器接口,這可能會在封裝中增加 20 個或更多引腳,進而增加成本、功耗和電路闆空間要求。一些 MCU 在外部存儲控制器中提供了額外的靈活性,可以輕松适應各種儲存設備。例如,流行的Microchip PIC18FMCU 系列提供靈活的存儲器接口,可擴充到多種裝置類型。

圖 3 顯示了一種将标準閃存和标準 SRAM 與單個外部總線接口的方法。在這種情況下,一些外部元件(兩個 373 鎖存器和一個 138 解碼器)用于最大限度地減少 MCU 上使用的引腳數量。(對于隻需要一個 373 鎖存器的 8 位接口,也可以實作更簡單的實作)。具有這種靈活性的外部存儲器接口允許“儲存”的 IO 用于其他功能,最大限度地提高引腳效率,這是基于 MCU 這是設計中最重要的元素之一。

(四)接口時序靈活性

除了 IO 互連靈活性之外,外部接口通常需要一定的時序靈活性。例如,如果記憶體慢于 MCU 時鐘周期,則可能需要插入等待狀态。理想情況下,可以為不同的外部存儲器塊配置設定不同的等待狀态特性。當外部接口不僅可用于标準存儲器,還可用于存儲器映射器外圍裝置(如液晶顯示器、模數轉換器和數模轉換器)時,這種能力就更加重要。愛特梅爾 ATmega _MCU 系列可以為外部存儲器空間配置設定兩個不同的等待狀态值。如下圖 4 所示,存儲器配置 A 允許将外部存儲器分為兩個扇區——上扇區和下扇區。扇區大小可以有八個不同的值之一,以 0x2000 的增量從 0x2000 到 0xE000 調整上段和下段之間的分界線。

将外部存儲器空間劃分為兩個扇區可以很容易地将具有較大等待狀态值的裝置和具有較小等待狀态值的裝置組合在一起。也許最重要的是,如果零等待狀态存儲器用于頻繁通路的程式資料,即使較慢的裝置共享相同的存儲器總線,也可以使用零等待狀态值。這最大限度地減少了 MCU 引腳要求,同時提高了性能并節省了功耗。

(五)結論

MCU 有時需要通過使用外部存儲器接口來擴充可用的片上存儲器。了解這些接口的功能可以縮短設計時間、降低成本并提高系統性能。

繼續閱讀