行業(yè)標(biāo)準(zhǔn)組織JEDEC定義了一種串行復(fù)位協(xié)議,用以取代專用復(fù)位引腳。
今天的嵌入式系統(tǒng),例如智能設(shè)備和物聯(lián)網(wǎng)終端,通常都要求在實現(xiàn)高性能與低功耗的同時提供實時啟動功能。所有電子系統(tǒng)還要具備從瞬態(tài)故障引起的狀況中恢復(fù)的能力。這些故障通常與信號完整性密切相關(guān),這使得當(dāng)今的高速系統(tǒng)設(shè)計更具挑戰(zhàn)性。
從運行時出現(xiàn)的故障中恢復(fù)通常需要能夠?qū)ο到y(tǒng)的全部或部分進(jìn)行受控復(fù)位。極端情況下,若尚未提供軟復(fù)位功能,此時就可能會提示需要重新啟動設(shè)備。而對于遠(yuǎn)程的物聯(lián)網(wǎng)終端來說,重啟可能存在困難而且成本高昂。這只是說明嵌入式設(shè)計中復(fù)位功能重要性的一個示例。
串行外設(shè)接口(SPI)廣泛應(yīng)用于將外設(shè)和存儲器連接到嵌入式系統(tǒng)中的微控制器或處理器中。復(fù)位串行閃存是初始化或恢復(fù)的重要部分。為使主機處理器能夠更容易地重置SPI存儲器,行業(yè)標(biāo)準(zhǔn)組織JEDEC定義了一種串行復(fù)位協(xié)議,替代了使用專用復(fù)位引腳來進(jìn)行復(fù)位。本文介紹了該復(fù)位協(xié)議及其用法,特別參考了擴展SPI(xSPI)和串行非易失性存儲器的執(zhí)行代碼。
SPI閃存的作用
串行接口相對于并行總線的主要優(yōu)點是減少了所需信號數(shù)量。在大多數(shù)情況下,較少的信號和I/O引腳可降低元件成本與功耗,因為驅(qū)動片外信號所需的功率是總功率消耗的主力軍。
最初的SPI規(guī)范包括四種信號:一個串行時鐘(SCLK)信號,用于同步數(shù)據(jù)傳輸;一個或多個芯片選擇(SS)信號用于實現(xiàn)尋址多個目標(biāo);以及兩個數(shù)據(jù)信號(MOSI和MISO),用于在每個方向上傳輸數(shù)據(jù)。該標(biāo)準(zhǔn)目前已經(jīng)以各種方式進(jìn)行了擴展以實現(xiàn)更高的性能,現(xiàn)在更拓展了通過SPI接口執(zhí)行軟復(fù)位的功能。
串行外設(shè)接口(SPI)(來源:Adesto Technologies)
SPI接口不斷演變和發(fā)展以擴大帶寬,其變體現(xiàn)在包括dual SPI(雙線SPI),它使用半雙工配置中的兩個數(shù)據(jù)引腳在每時鐘周期內(nèi)發(fā)送兩個bit的數(shù)據(jù);還有quad SPI(四線SPI)和octal SPI(八線SPI),它們增加了更多數(shù)據(jù)線,使得每個時鐘周期可以傳輸更多位數(shù)。此外,這些SPI都可在雙倍數(shù)據(jù)速率(DDR)模式下使用,且支持在兩個時鐘邊緣傳輸數(shù)據(jù)。
Quad和Octal SPI接口由JEDEC的擴展SPI(xSPI)標(biāo)準(zhǔn)JESD251定義,該標(biāo)準(zhǔn)提供的硬件指導(dǎo)可以實現(xiàn)系統(tǒng)中高吞吐量xSPI器件的無故障集成。
最近,JEDEC還定義并發(fā)布了一個標(biāo)準(zhǔn),規(guī)定了通過串行接口重置設(shè)備。該復(fù)位協(xié)議在JEDEC標(biāo)準(zhǔn)JESD252中定義,它取消了在串行閃存中使用專用復(fù)位引腳來進(jìn)行復(fù)位的需求。
該標(biāo)準(zhǔn)定義了芯片選擇信號、時鐘信號和輸入數(shù)據(jù)信號需要遵循的特定順序,以使器件執(zhí)行硬件復(fù)位。使用該模式使得由串行數(shù)據(jù)線上的噪聲引起的偽轉(zhuǎn)換不會導(dǎo)致意外復(fù)位。在復(fù)位期間,時鐘信號保持低電平,進(jìn)一步確保了引腳轉(zhuǎn)換不會被解釋為數(shù)據(jù)傳輸,而芯片選擇引腳則用于確保僅復(fù)位特定的器件。
復(fù)位協(xié)議(來源:Adesto Technologies)
SPI閃存被廣泛應(yīng)用于嵌入式產(chǎn)品,特別是用于其代碼。這使得它對系統(tǒng)整體功能而言顯得至關(guān)重要,因此必須保持可靠的運行,包括具備必要時發(fā)起復(fù)位的能力。
利用復(fù)位進(jìn)行初始化和恢復(fù)
系統(tǒng)通常在通電時使用復(fù)位功能來確保系統(tǒng)中所有器件都以已知狀態(tài)啟動。復(fù)位還可用于在運行期間從可能由硬件問題引起的嚴(yán)重故障中恢復(fù),其中包括信號完整性問題和時序問題、電磁干擾或由背景輻射引起的隨機存儲器損壞(另請參見《MiTIgating Metastability》這篇文章);還可用于由軟件錯誤可能導(dǎo)致的程序崩潰和無響應(yīng)。
這些偶發(fā)的錯誤對于消費者可能是僅僅造成不便,但對于具有數(shù)千個節(jié)點需要高可用性的物聯(lián)網(wǎng)而言,卻是一個嚴(yán)重的問題。在越來越多的情況下,手動復(fù)位或重啟這些物聯(lián)網(wǎng)設(shè)備變得越來越不可能。嵌入式系統(tǒng)通常使用看門狗定時器和其它自檢機制來檢測故障并采取糾正措施。這就可能意味著執(zhí)行“軟”復(fù)位,其中只有必要的子系統(tǒng)在處理器的控制下被復(fù)位。
SPI接口是有狀態(tài)的(stateful)。例如,在接收到命令之后,閃存將期望有一定數(shù)量的地址或數(shù)據(jù)傳輸。導(dǎo)致主機和內(nèi)存之間失去同步的任何錯誤都將引起不可預(yù)測的行為。要從中恢復(fù),主機需要能夠通過執(zhí)行軟復(fù)位將串行存儲器重置為已知狀態(tài)。這種復(fù)位有助于保持系統(tǒng)穩(wěn)定,而且是在沒有看到任何外部故障指示的情況下進(jìn)行的。也因為如此,軟復(fù)位現(xiàn)在被認(rèn)為是嵌入式系統(tǒng)操作的一個標(biāo)準(zhǔn)特性。
有些串行閃存可能有一個專用的復(fù)位引腳;但另一些則使用多路復(fù)用以減少引腳數(shù),此時,復(fù)位引腳同時也是一個I/O引腳;但有時候,制造商可能根本不提供復(fù)位功能。即使有復(fù)位引腳,專門指定微控制器的一個輸出去控制它也不實際。
JESD252規(guī)范的產(chǎn)生使得串行閃存設(shè)備無需專用或物理復(fù)位引腳仍然可以支持復(fù)位功能。除了故障恢復(fù)之外,還可以在上電啟動時使用串行復(fù)位機制,以確保電源穩(wěn)定后串行存儲器也能正確啟動。
芯片內(nèi)執(zhí)行(XiP)
傳統(tǒng)的串行閃存通過低速SPI連接,這意味著如果這些器件用于存儲程序存儲器,則處理器在執(zhí)行代碼之前必須先將代碼復(fù)制到片上SRAM中。而芯片內(nèi)執(zhí)行,即XiP,是通過提供更快更寬的接口省去了代碼復(fù)制步驟的串行閃存。反過來,這減少了對片上SRAM的需求,從而降低了主機微控制器或處理器的價格。
與其他八通道器件相比,Adesto的EcoXiP采用octal SPI接口,具有高性能和極低功耗,并且具有比quad-SPI存儲器高得多的性能。
Execution modes (Source: Adesto Technologies)
執(zhí)行模式 (來源: Adesto Technologies)
對于現(xiàn)代嵌入式設(shè)備來說,XiP的開發(fā)極具價值,不僅僅是因為片上閃存的昂貴和尺寸上的限制。微控制器通常最多具有1 MB的內(nèi)存,但現(xiàn)代物聯(lián)網(wǎng)節(jié)點通常需要更多的代碼空間用于通信堆棧、無線接口、音頻處理、機器視覺和應(yīng)用軟件等功能。利用XiP的外部閃存可以實現(xiàn)更大的代碼存儲空間。而且由于減去了代碼傳輸階段,啟動時間也縮短了。
XiP的使用使得SRAM無需存儲代碼而是僅用于存儲數(shù)據(jù),從而減少了所需的SRAM數(shù)量。因為削減了對外部SRAM的需求或允許微控制器使用較少的片上SRAM,系統(tǒng)成本也相應(yīng)降低。由于NOR閃存(非易失性閃存)允許隨機訪問,而微控制器需要將串行接口映射到其自己的存儲空間,因此它被視為另一個存儲區(qū)域,從而支持XiP。為了進(jìn)一步提高性能,EcoXiP還針對代碼執(zhí)行進(jìn)行了優(yōu)化。
標(biāo)準(zhǔn)SPI接口設(shè)計都支持隨機訪問;每次讀取都包含命令、地址和返回的數(shù)據(jù)。數(shù)據(jù)返回后,才可以進(jìn)行再次請求。但是,指令通常從連續(xù)地址中獲取。EcoXiP接口充分利用了這一點,為每個讀取請求提供連續(xù)字節(jié),直到具有新地址的命令被發(fā)送為止。這使得總線吞吐量加倍,因為消除了為每次提取發(fā)送新地址的延遲。
EcoXiP可以持續(xù)以156MB/s(峰值速率為266 MB/s)的速率發(fā)送指令。
傳統(tǒng)NOR閃存的另一個問題是寫入比讀取慢幾個數(shù)量級。這意味著當(dāng)代碼在閃存中執(zhí)行時無法將數(shù)據(jù)寫入閃存,因為這樣會對性能產(chǎn)生重大影響。EcoXiP通過靈活地將存儲器劃分為獨立的存儲體來支持并發(fā)讀寫。這使得采用XiP可以在執(zhí)行代碼的同時,將數(shù)據(jù)保存到存儲器并執(zhí)行(Over-the-AIr,OTA)空中更新。
對JEDEC標(biāo)準(zhǔn)的支持,包括遠(yuǎn)程復(fù)位的支持,使業(yè)界采用XiP串行閃存變得更加簡單。
結(jié)論
在主處理器的控制下能夠復(fù)位串行閃存是嵌入式系統(tǒng)的重要需求。JEDEC JESD252串行復(fù)位協(xié)議可實現(xiàn)該功能,而無需存儲器上的復(fù)位引腳或來自微控制器或主機處理器的專門信號。
盡管使用串行復(fù)位和XiP會影響主機和存儲器的設(shè)計,還是有越來越多的微控制器正在增加對這些標(biāo)準(zhǔn)的支持。Adesto是第一家提供串行NOR閃存的制造商,其產(chǎn)品支持串行閃存復(fù)位信令協(xié)議和xSPI標(biāo)準(zhǔn)。EcoXiP可在提供所需執(zhí)行能力的同時降低系統(tǒng)功耗與成本。它還兼容串行閃存發(fā)現(xiàn)標(biāo)準(zhǔn),并具有改善能效和安全的其它特性。
擁有上述技術(shù),嵌入式工程師可以更好地應(yīng)對開發(fā)物聯(lián)網(wǎng)產(chǎn)品時所面臨的挑戰(zhàn)。
-
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3551瀏覽量
129106 -
SPI
+關(guān)注
關(guān)注
17文章
1688瀏覽量
91213 -
JEDEC
+關(guān)注
關(guān)注
1文章
36瀏覽量
17414
原文標(biāo)題:JEDEC軟復(fù)位——嵌入式開發(fā)人員的福音
文章出處:【微信號:gh_bee81f890fc1,微信公眾號:面包板社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論