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