當(dāng)今的嵌入式系統(tǒng),例如物聯(lián)網(wǎng)中的智能設(shè)備和端點,通常需要即時啟動功能,同時將高性能與低功耗相結(jié)合。所有電子系統(tǒng)還應(yīng)具備從瞬態(tài)故障引起的條件中恢復(fù)的能力。此類故障通常與信號完整性密切相關(guān),這在當(dāng)今的高速設(shè)計中變得更具挑戰(zhàn)性。
從運行時故障中恢復(fù)通常需要能夠?qū)ο到y(tǒng)的全部或部分進行受控復(fù)位。在極端情況下,如果沒有提供軟復(fù)位,這可能表明需要對設(shè)備進行電源循環(huán)。對于遠程位置的物聯(lián)網(wǎng)端點,這可能是有問題且昂貴的,因此僅提供了一個示例,說明復(fù)位功能在嵌入式設(shè)計中變得多么重要。
串行外設(shè)接口 (SPI)廣泛用于將外設(shè)和內(nèi)存連接到嵌入式系統(tǒng)中的微控制器或處理器。復(fù)位串行閃存是初始化或恢復(fù)的重要部分。為了使主機處理器更容易復(fù)位 SPI 存儲器,行業(yè)標(biāo)準(zhǔn)機構(gòu) JEDEC 定義了一個串行復(fù)位協(xié)議,該協(xié)議避免了對專用復(fù)位引腳的需求。本文介紹了復(fù)位協(xié)議及其使用,特別是擴展 SPI (xSPI) 和從串行非易失性存儲器執(zhí)行代碼。
SPI 閃存的作用
相對于并行總線,串行接口的主要優(yōu)點是減少了所需的信號數(shù)量。在大多數(shù)情況下,更少的信號和 I/O 引腳可降低組件成本和功耗,因為驅(qū)動片外信號所需的功率可能是總功耗的重要因素。
最初的 SPI 規(guī)范有四個信號:用于同步數(shù)據(jù)傳輸?shù)拇?a href="http://www.www27dydycom.cn/tags/時鐘/" target="_blank">時鐘 (SCLK);一個或多個芯片選擇 (SS) 可實現(xiàn)對多個目標(biāo)的尋址,兩個數(shù)據(jù)信號(MOSI 和 MISO)可在每個方向傳輸數(shù)據(jù)。該標(biāo)準(zhǔn)已以各種方式擴展以支持更高的性能,現(xiàn)在包括通過 SPI 接口執(zhí)行軟復(fù)位的能力。
為了增加帶寬,SPI 接口得到了發(fā)展和發(fā)展,現(xiàn)在變體包括雙 SPI,它使用半雙工配置中的兩個數(shù)據(jù)引腳每個時鐘周期發(fā)送兩個位,以及四和八進制 SPI,它添加更多數(shù)據(jù)線到每個時鐘周期傳輸更多位。此外,它們都可以在雙倍數(shù)據(jù)速率 (DDR) 模式下使用,該模式在兩個時鐘沿傳輸數(shù)據(jù)。
四路和八路 SPI 接口由 JEDEC 擴展 SPI (xSPI) 標(biāo)準(zhǔn) JESD251 定義,該標(biāo)準(zhǔn)提供了硬件指南以實現(xiàn)系統(tǒng)中高吞吐量 xSPI 設(shè)備的無故障集成。
最近,JEDEC 還定義并發(fā)布了一個標(biāo)準(zhǔn),規(guī)定通過串行接口重置設(shè)備。該復(fù)位協(xié)議在 JEDEC 標(biāo)準(zhǔn) JESD252 中定義,無需串行閃存中的專用復(fù)位引腳。
該標(biāo)準(zhǔn)定義了芯片選擇、時鐘和輸入數(shù)據(jù)信號需要遵循的特定序列,以使設(shè)備執(zhí)行硬件復(fù)位。使用這種模式是為了避免由串行數(shù)據(jù)線上的噪聲引起的雜散轉(zhuǎn)換不會導(dǎo)致意外復(fù)位。在復(fù)位期間,時鐘信號保持低電平,進一步確保引腳轉(zhuǎn)換不會被解釋為數(shù)據(jù)傳輸,而片選引腳用于確保只有特定設(shè)備被復(fù)位。
SPI閃存廣泛用于嵌入式產(chǎn)品,尤其是代碼。這使得它對整體功能至關(guān)重要,因此保持可靠運行至關(guān)重要,包括在必要時發(fā)出重置的能力。
使用復(fù)位進行初始化和恢復(fù)
系統(tǒng)通常在上電時使用復(fù)位功能,以確保系統(tǒng)的所有部分都以已知狀態(tài)啟動。復(fù)位還可用于從運行期間可能由硬件問題引起的嚴(yán)重故障中恢復(fù),其中包括信號完整性和時序問題、電磁干擾或由背景輻射引起的隨機存儲器損壞(另請參見“緩解亞穩(wěn)態(tài)”)。軟件錯誤也可能導(dǎo)致程序崩潰和無響應(yīng)。
這些偶爾出現(xiàn)的錯誤可能只對消費者造成不便,但對于物聯(lián)網(wǎng)來說可能是一個嚴(yán)重的問題,其中成千上萬的節(jié)點需要具有高水平的可用性。越來越多地,這些設(shè)備可能無法輕松訪問以進行手動重置或電源循環(huán)。嵌入式系統(tǒng)通常會使用看門狗定時器和其他自檢機制來檢測故障并采取糾正措施。這可能意味著執(zhí)行“軟”重置,其中只有必要的子系統(tǒng)在處理器的控制下被重置。
SPI 接口是有狀態(tài)的。例如,在接收到命令后,閃存將期待一定數(shù)量的地址或數(shù)據(jù)傳輸。任何導(dǎo)致主機和內(nèi)存之間失去同步的錯誤都將導(dǎo)致不可預(yù)知的行為。要從這種情況中恢復(fù),主機需要能夠通過執(zhí)行軟復(fù)位將串行存儲器復(fù)位到已知狀態(tài)。這種復(fù)位有助于保持系統(tǒng)穩(wěn)定,并且在沒有任何外部故障指示的情況下進行。因此,它們現(xiàn)在可以被視為嵌入式系統(tǒng)操作的標(biāo)準(zhǔn)功能。
雖然一些串行閃存可能有一個專用的復(fù)位引腳,但其他的使用多路復(fù)用來減少引腳數(shù),在這種情況下,復(fù)位引腳也將是一個 I/O 引腳,在某些情況下,制造商可能不會在全部。即使有可用的復(fù)位引腳,將微控制器的輸出專用于控制它也可能不切實際。JESD252 規(guī)范已經(jīng)制定,因此串行閃存器件仍然可以支持復(fù)位功能,而無需專用或物理復(fù)位引腳。除了錯誤恢復(fù)之外,串行復(fù)位機制可以在啟動時使用,以確保在電源穩(wěn)定后正確啟動串行存儲器。
就地執(zhí)行
傳統(tǒng)的串行閃存通過低速 SPI 連接,這意味著如果這些設(shè)備用于存儲程序存儲器,處理器必須先將代碼復(fù)制到片上 SRAM 中才能執(zhí)行。就地執(zhí)行或 XiP 是串行閃存,它通過提供更快和更寬的接口消除了這一要求。反過來,這減少了對片上 SRAM 的需求,從而可以降低主機微控制器或處理器的價格。
Adesto 的 EcoXiP具有八通道 SPI 接口,與其他八通道器件相比,具有顯著降低的功耗和比四通道 SPI 存儲器更高的性能,可提供高性能。
對于現(xiàn)代嵌入式設(shè)備,XiP 是一項有價值的發(fā)展,尤其是因為片上閃存價格昂貴且尺寸有限。微控制器通常具有最大 1 MB 的內(nèi)部閃存,但現(xiàn)代物聯(lián)網(wǎng)節(jié)點通常需要更多的代碼空間來存儲通信堆棧、無線接口、音頻處理、機器視覺和應(yīng)用軟件等功能。將 XiP 與外部閃存結(jié)合使用可實現(xiàn)更大的代碼存儲空間。它還通過消除代碼傳輸階段來縮短啟動時間。
XiP 的使用使 SRAM 可自由用于數(shù)據(jù)存儲而不是代碼,從而減少了所需的 SRAM 數(shù)量。這可以通過消除對外部 SRAM 的需要或允許使用具有較少片上 SRAM 的微控制器來降低系統(tǒng)成本。雖然 NOR 閃存允許隨機訪問,但微控制器需要將串行接口映射到自己的內(nèi)存空間,因此它被視為內(nèi)存的另一個區(qū)域,因此可以支持 XiP。為了進一步提高性能,EcoXiP 針對代碼執(zhí)行進行了優(yōu)化。
標(biāo)準(zhǔn) SPI 接口專為隨機訪問而設(shè)計;每次讀取都包含一個命令、一個地址和返回的數(shù)據(jù)。數(shù)據(jù)返回后,可以再次請求。然而,指令通常是從連續(xù)的地址中獲取的。EcoXiP 接口通過為每個讀取請求提供連續(xù)字節(jié)來利用這一點,直到發(fā)送具有新地址的命令。這可以通過消除每次獲取發(fā)送新地址的延遲來使總線吞吐量翻倍。EcoXiP 可以以 156 MB/s(峰值 266 MB/s)的持續(xù)速率提供指令。
傳統(tǒng) NOR 閃存的另一個問題是寫入比讀取慢幾個數(shù)量級。這意味著在執(zhí)行代碼時無法將數(shù)據(jù)寫入閃存,因為這樣做會對性能產(chǎn)生重大影響。EcoXiP 通過靈活地將內(nèi)存劃分為獨立的 bank 來支持并發(fā)讀寫。這使得使用 XiP 執(zhí)行代碼成為可能,同時將數(shù)據(jù)保存到內(nèi)存并執(zhí)行無線 (OTA) 更新。
支持 JEDEC 標(biāo)準(zhǔn),包括遠程復(fù)位,使業(yè)界更容易采用帶有 XiP 的串行閃存。
結(jié)論
能夠在主機處理器的控制下復(fù)位串行閃存是嵌入式系統(tǒng)的一項重要要求。JEDEC JESD252 串行復(fù)位協(xié)議無需存儲器上的復(fù)位引腳或來自微控制器或主機處理器的專用信號即可實現(xiàn)這一點。
盡管使用串行復(fù)位和 XiP 會影響主機和內(nèi)存的設(shè)計,但越來越多的微控制器正在增加對這些標(biāo)準(zhǔn)的支持。Adesto 是第一家推出支持串行閃存復(fù)位信號協(xié)議和 xSPI 標(biāo)準(zhǔn)的串行 NOR 閃存的制造商。EcoXiP 提供所需的執(zhí)行性能,同時降低系統(tǒng)功耗和系統(tǒng)成本。它還實現(xiàn)了串行閃存發(fā)現(xiàn)的標(biāo)準(zhǔn),并具有提高電源效率和安全性的其他功能。
通過這些技術(shù),嵌入式工程師可以更好地應(yīng)對他們在開發(fā)面向物聯(lián)網(wǎng)的產(chǎn)品時面臨的挑戰(zhàn)。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19896瀏覽量
235282 -
嵌入式
+關(guān)注
關(guān)注
5152文章
19675瀏覽量
317640 -
存儲器
+關(guān)注
關(guān)注
38文章
7653瀏覽量
167424
發(fā)布評論請先 登錄
嵌入式開發(fā)就業(yè)還有前景嗎?
嵌入式開發(fā)入門指南:從零開始學(xué)習(xí)嵌入式
NanoEdge AI Studio 面向STM32開發(fā)人員機器學(xué)習(xí)(ML)技術(shù)

嵌入式開發(fā):高門檻的系統(tǒng)性工程與 996 的行業(yè)困局

嵌入式去哪個城市好?
IAR發(fā)布云端平臺,助力現(xiàn)代嵌入式軟件開發(fā)團隊
代碼+案例+生態(tài):武漢芯源半導(dǎo)體CW32嵌入式開發(fā)實戰(zhàn)正式出版
GoPoint嵌入式開發(fā)平臺 釋放i.MX潛力 簡化Linux開發(fā)

嵌入式開發(fā)必備-RK3562演示Linux常用系統(tǒng)查詢命令(上)觸覺智能出品

如何使用 RISC-V 進行嵌入式開發(fā)
MSPDebugStack開發(fā)人員指南

嵌入式開發(fā)常見問題排查

評論