基于SPIFI外設(shè)的Cortex-M MCU嵌入式閃存選型解決方案
不同的串行閃存廠商和產(chǎn)品需要不同的命令和命令格式。SPIFI外設(shè)為此提供了足夠的支持,可兼容大部分SPI閃存及衍生產(chǎn)品,確保今后產(chǎn)品的兼容性。
小寄存器組
SPIFI外設(shè)小寄存器組既保證了接口的功能又簡(jiǎn)化了操作,通過8個(gè)寄存器控制SPIFI功能,連接外部SPI閃存,保存和檢索數(shù)據(jù)以及監(jiān)控操作。由于設(shè)置、編程、擦除等工作均由集成的ROM API處理,因此外部SPI內(nèi)存操作只需要幾個(gè)簡(jiǎn)單的調(diào)用命令。總體來看,SPIFI外設(shè)配置簡(jiǎn)單,應(yīng)用方便。
軟件命令
當(dāng)軟件讀取內(nèi)存映射的串行閃存內(nèi)容時(shí),外部閃存可以識(shí)別并接受微控制器軟件發(fā)送的和SPIFI外設(shè)自動(dòng)發(fā)送的命令。這些命令可分為操作代碼、地址、中間和數(shù)據(jù)等字段,其中。地址、中間和數(shù)據(jù)字段為可選字段,這主要取決于操作代碼。部分閃存支持“讀”命令解釋操作代碼模式,以提高系統(tǒng)性能。根據(jù)操作代碼不同,數(shù)據(jù)字段可進(jìn)一步分為輸入和輸出數(shù)據(jù)字段。所有發(fā)送到外部SPI閃存的命令都可以通過調(diào)用ROM API指令進(jìn)行處理。SPIFI ROM API驅(qū)動(dòng)器允許通過簡(jiǎn)單的加載命令訪問外部SPI閃存內(nèi)容,保證應(yīng)用操作代碼延續(xù)其緊湊和易寫的特點(diǎn)。
獨(dú)立于CPU的運(yùn)行
SPIFI軟件可讀取外部閃存數(shù)據(jù),并將其寫入RAM或外設(shè),無需CPU支持。比如,對(duì)于集成LCD控制器的微控制器,此功能可以提高系統(tǒng)性能,節(jié)約功耗。外部閃存可以保存圖像并通過LCD控制器讀取。由于LCD控制器大多數(shù)按地址順序讀取數(shù)據(jù),SPIFI外設(shè)可根據(jù)需要預(yù)先獲取地址,無需等待。整個(gè)操作無需CPU參與,也不用將圖像加載到片上RAM,而由LCD控制器直接獲取。因此,系統(tǒng)對(duì)微控制器片上RAM的容量要求不高,或者可將現(xiàn)有RAM釋放出來用于完成其他任務(wù)。由于LCD控制器直接獲取圖像,LCD顯示屏圖像刷新速度更快,簡(jiǎn)單的開關(guān)窗口等操作顯得更加平滑流暢。另外,為降低功耗,系統(tǒng)還可以使用低時(shí)鐘速率運(yùn)行,不會(huì)對(duì)顯示性能有太大影響。
直接執(zhí)行代碼
從軟件的角度看,微控制器可以直接執(zhí)行外部SPI閃存中的代碼。直接執(zhí)行代碼有利于在線升級(jí)或者更新片上閃存的出廠功能。外部閃存可以存放通過驗(yàn)證的升級(jí)代碼。例如,如果系統(tǒng)功能地址保存在片上閃存的表單中,通過外部閃存的例程地址即可對(duì)該表單重新編程?;蛘?,如果包含原始例程起始信息的內(nèi)存頁保存在片上閃存中,通過外部分支長(zhǎng)跳轉(zhuǎn)到外部閃存的新例程即可更新內(nèi)存頁。對(duì)于上述兩例,由于SPIFI外設(shè)可以實(shí)現(xiàn)外部閃存代碼直接執(zhí)行,因此新代碼無需加載到片上RAM。
通過外部閃存執(zhí)行代碼的速度遠(yuǎn)不及片上內(nèi)存。SPIFI外設(shè)設(shè)計(jì)并非針對(duì)需要峰值性能的實(shí)時(shí)運(yùn)行功能,但是對(duì)于執(zhí)行非關(guān)鍵代碼序列,SPIFI具有很大的吸引力。
寫/執(zhí)行并行操作功能
SPIFI支持寫功能和執(zhí)行功能同時(shí)進(jìn)行,換句話說,即使處理器正在執(zhí)行片上閃存代碼,也可以快速方便地對(duì)外部閃存進(jìn)行編程和擦除。由于SPIFI外設(shè)可以獨(dú)立運(yùn)行,不受CPU影響,因此在外部串行閃存編程的同時(shí),系統(tǒng)可以繼續(xù)執(zhí)行相關(guān)任務(wù)。
由于系統(tǒng)在執(zhí)行關(guān)鍵應(yīng)用代碼的同時(shí)可以對(duì)外部閃存進(jìn)行寫操作,因此該功能可用于在線軟件更新。例如,智能電表即使在更新軟件時(shí)也需要不間斷工作。利用SPIFI,公用工程公司可以配置系統(tǒng),向外部閃存寫入任何代碼,無需中斷智能電表的計(jì)量工作,最后再將新代碼集成到系統(tǒng)中。同樣,對(duì)于使用USB端口的系統(tǒng),新代碼可以先保存在便攜式USB驅(qū)動(dòng)器中,再傳輸?shù)酵獠块W存,無需中斷重要操作。
本文小結(jié)
恩智浦LPC1800 ARM Cortex-M3微控制器首次采用的SPI閃存接口技術(shù)可以將外部閃存映射到微控制器內(nèi)存中,實(shí)現(xiàn)片上內(nèi)存功能。此項(xiàng)技術(shù)為設(shè)計(jì)人員帶來更多的外置閃存選擇機(jī)會(huì),同時(shí)降低系統(tǒng)成本,縮小封裝尺寸。
SPIFI外設(shè)為設(shè)計(jì)人員提供了一種新的解決方案,可以利用低成本串行閃存替代昂貴的并行閃存,在縮小尺寸的同時(shí)仍能保證系統(tǒng)性能。串行閃存的低成本、小尺寸和簡(jiǎn)化配置等眾多優(yōu)勢(shì)從此得以應(yīng)用,而對(duì)系統(tǒng)性能的影響非常小。利用SPIFI,設(shè)計(jì)人員還可以選擇無并行接口的微控制器,以小型低成本設(shè)計(jì)實(shí)現(xiàn)所需性能。
恩智浦計(jì)劃將SPIFI技術(shù)推廣到其他Cortex-M產(chǎn)品上,包括低端Cortex-M0和即將上市的Cortex-M4數(shù)字信號(hào)控制器(DSC)。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論