SPIFI概述
SPIFI(SPI FLASH INTERFACE)是SPI快閃記憶體接口專利技術的縮寫,可以幫助32位嵌入式微片器使用小尺寸、低成本的串列快閃記憶體替代大尺寸、高成本的並行快閃記憶體。利用SPIFI技術,外部串列快閃記憶體可以映射到微控制器記憶體中,達到片上記憶體讀取效果。SPIFI為設計人員提供了一種創新解決方案,在保持系統性能的同時達到簡化配置、縮小封裝體積、減少板載空間占用和節約系統成本的目的。
SPIFI工作原理
SPIFI功能塊與微控制器套用的高速匯流排(AHB)矩陣連線,後者主要用於處理器核心和片上記憶體。SPIFI將外部SPI快閃記憶體內容映射到微控制器記憶體中。當片上ROM啟動代碼激活SPIFI接口後,外部SPI記憶體與核心處理單元上的片上記憶體功能完全相似。
初始化序列SPFI接口的所有驅動程式全部保存在ROM中。對於讀取操作,只需一個例程調用指令即可啟動SPIFI外設。初始化序列結束後,整個SPI快閃記憶體可以象正常記憶體一樣由處理器和/或DMA通道按位元組、半字、整字訪問。擦除和編程通過簡單的API指令訪問ROM命令調用即可,因此,使用外部SPI快閃記憶體與片上記憶體幾乎沒有差別。
從SPIFI啟動對於需要微控制器從外部串列快閃記憶體啟動的系統,恩智浦LPC1800微控制器已配置了SPIFI啟動功能。啟動源的選擇有兩種方法:第一種是使用微控制器引腳確定啟動源的接口;第二種由用戶在非易失性記憶體中編程選擇啟動接口。使用非易失性記憶體編程可保留引腳的雙重功能。
獨立於CPU的運行SPIFI軟體可讀取外部快閃記憶體數據,並將其寫入RAM或外設,無需CPU支持。比如,對於集成LCD控制器的微控制器,此功能可以提高系統性能,節約功耗。外部快閃記憶體可以保存圖像並通過LCD控制器讀取。由於LCD控制器大多數按地址順序讀取數據,SPIFI外設可根據需要預先獲取地址,無需等待。整個操作無需CPU參與,也不用將圖像載入到片上RAM,而由LCD控制器直接獲取。因此,系統對微控制器片上RAM的容量要求不高,或者可將現有RAM釋放出來用於完成其他任務。由於LCD控制器直接獲取圖像,LCD顯示屏圖像刷新速度更快,簡單的開關視窗等操作顯得更加平滑流暢。另外,為降低功耗,系統還可以使用低時鐘速率運行,不會對顯示性能有太大影響。
直接執行代碼從軟體的角度看,微控制器可以直接執行外部SPI快閃記憶體中的代碼。直接執行代碼有利於線上升級或者更新片上快閃記憶體的出廠功能。外部快閃記憶體可以存放通過驗證的升級代碼。例如,如果系統功能地址保存在片上快閃記憶體的表單中,通過外部快閃記憶體的例程地址即可對該表單重新編程。或者,如果包含原始例程起始信息的記憶體頁保存在片上快閃記憶體中,通過外部分支長跳轉到外部快閃記憶體的新例程即可更新記憶體頁。對於上述兩例,由於SPIFI外設可以實現外部快閃記憶體代碼直接執行,因此新代碼無需載入到片上RAM。
通過外部快閃記憶體執行代碼的速度遠不及片上記憶體。SPIFI外設設計並非針對需要峰值性能的實時運行功能,但是對於執行非關鍵代碼序列,SPIFI具有很大的吸引力。
SPIFI支持寫功能和執行功能同時進行,換句話說,即使處理器正在執行片上快閃記憶體代碼,也可以快速方便地對外部快閃記憶體進行編程和擦除。由於SPIFI外設可以獨立運行,不受CPU影響,因此在外部串列快閃記憶體編程的同時,系統可以繼續執行相關任務。
由於系統在執行關鍵套用代碼的同時可以對外部快閃記憶體進行寫操作,因此該功能可用於線上軟體更新。例如,智慧型電錶即使在更新軟體時也需要不間斷工作。利用SPIFI,公用工程公司可以配置系統,向外部快閃記憶體寫入任何代碼,無需中斷智慧型電錶的計量工作,最後再將新代碼集成到系統中。同樣,對於使用USB連線埠的系統,新代碼可以先保存在攜帶型USB驅動器中,再傳輸到外部快閃記憶體,無需中斷重要操作。
驅動接口命令
不同的串列快閃記憶體廠商和產品需要不同的命令和命令格式。SPIFI外設為此提供了足夠的支持,可兼容大部分SPI快閃記憶體及衍生產品,確保今後產品的兼容性。
小暫存器組SPIFI外設小暫存器組既保證了接口的功能又簡化了操作,通過8個暫存器控制SPIFI功能,連線外部SPI快閃記憶體,保存和檢索數據以及監控操作。由於設定、編程、擦除等工作均由集成的ROM API處理,因此外部SPI記憶體操作只需要幾個簡單的調用命令。總體來看,SPIFI外設配置簡單,套用方便。
軟體命令當軟體讀取記憶體映射的串列快閃記憶體內容時,外部快閃記憶體可以識別並接受微控制器軟體傳送的和SPIFI外設自動傳送的命令。這些命令可分為操作代碼、地址、中間和數據等欄位,其中。地址、中間和數據欄位為可選欄位,這主要取決於操作代碼。部分快閃記憶體支持“讀”命令解釋操作代碼模式,以提高系統性能。根據操作代碼不同,數據欄位可進一步分為輸入和輸出數據欄位。所有傳送到外部SPI快閃記憶體的命令都可以通過調用ROM API指令進行處理。SPIFI ROM API驅動器允許通過簡單的載入命令訪問外部SPI快閃記憶體內容,保證套用操作代碼延續其緊湊和易寫的特點。
小結
SPIFI外設為設計人員提供了一種新的解決方案,可以利用低成本串列快閃記憶體替代昂貴的並行快閃記憶體,在縮小尺寸的同時仍能保證系統性能。串列快閃記憶體的低成本、小尺寸和簡化配置等眾多優勢從此得以套用,而對系統性能的影響非常小。利用SPIFI,設計人員還可以選擇無並行接口的微控制器,以小型低成本設計實現所需性能。