產業標準組織JEDEC定義了一種串列重置協定,用以取代專用重置接腳。

今天的嵌入式系統,例如智慧設備和物聯網終端,通常都要求在實現高性能與低功耗的同時提供即時啟動功能,所有電子系統還要具備從瞬態故障引起的狀況中恢復的能力。這些故障通常與訊號完整性密切相關,這使得當今的高速系統設計更具挑戰性。

從運作時出現的故障中恢復通常需要能夠對系統的全部或部分進行受控重置。極端情況下,若尚未提供軟重置(soft reset)功能,此時就可能會提示需要重新開機設備。而對於遠端的物聯網終端來說,重啟可能存在困難而且成本高昂,這只是說明嵌入式設計中重置功能重要性的一個示例。

串列周邊介面(SPI)廣泛應用於將周邊和記憶體連接到嵌入式系統中的微控制器或處理器中。重置串列快閃記憶體是初始化或恢復的重要部分,為使主機處理器能夠更容易地重置SPI記憶體,產業標準組織JEDEC定義了一種串列重置協定,替代了使用專用重置接腳來進行重置。本文介紹該重置協議及其用法,特別參考了擴展SPI(xSPI)和串列非揮發性記憶體的執行程式碼。

SPI快閃記憶體的作用

序列介面相對於平行匯流排的主要優點是減少了所需訊號數量。在大多數情況下,較少的訊號和I/O接腳可降低元件成本與功耗,因為驅動片外訊號所需的功率是總功率消耗的主要「兇手」。

最初的SPI規範包括四種訊號:一個串列時脈(SCLK)訊號,用於同步資料傳輸;一個或多個晶片選擇(SS)訊號用於實現定址多個目標,以及兩個資料訊號(MOSI和MISO),用於在每個方向上傳輸資料。該標準目前已經以各種方式進行了擴展以實現更高的性能,現在更拓展了透過SPI介面執行軟重置的功能。

20190816TA31P1 SPI執行軟重置功能。(資料來源:Adesto Technologies)

SPI介面不斷演變和發展以擴大頻寬,其變體現在包括雙線SPI(dual SPI),它使用半雙工配置中的兩個資料接腳在每時脈週期內發送2bit的資料;還有四線SPI(quad SPI)和八線SPI(octal SPI),它們增加了更多資料線,使得每個時脈週期可以傳輸更多位數。此外,這些SPI都可在雙倍數據速率(DDR)模式下使用,且支援在兩個時脈邊緣傳輸資料。

Quad和Octal SPI介面由JEDEC的擴展SPI標準JESD251定義,該標準提供的硬體指導可以實現系統中高輸送量xSPI元件的無故障整合。

最近,JEDEC還定義並發佈了一個標準,規定了透過序列介面重置設備。該重置協定在JEDEC標準JESD252中定義,它取消了在串列快閃記憶體中使用專用重置接腳來進行重置的需求。

該標準定義了晶片選擇訊號、時脈訊號和輸入資料訊號需要遵循的特定順序,以使元件執行硬體重置。使用該模式使得由串列資料線上雜訊引起的偽轉換不會導致意外重置,在重置期間,時脈訊號保持低電平,進一步確保了接腳轉換不會被解釋為資料傳輸,而晶片選擇接腳則用於確保重置特定的元件。

20190816TA31P2 重置協議。(資料來源:Adesto Technologies)

SPI快閃記憶體被廣泛應用於嵌入式產品,特別是用於其程式碼。這使得它對系統整體功能而言顯得至關重要,因此必須保持可靠的運作,包括具備必要時發起重置的能力。

利用重置進行初始化和恢復

系統通常在通電時使用重置功能來確保系統中所有元件都以已知狀態啟動。重置還可用於在運作期間從可能由硬體問題引起的嚴重故障中恢復,其中包括訊號完整性問題和時序問題、電磁干擾或由背景輻射引起的隨機記憶體損壞(另請參見《Mitigating Metastability》這篇文章),還可用於由軟體錯誤可能導致的程式崩潰和無回應。

這些偶發的錯誤對於消費者可能是僅僅造成不便,但對於具有數千個節點需要高可用性的物聯網而言,卻是一個嚴重的問題。在越來越多的情況下,手動重置或重啟這些物聯網設備變得越來越不可能。嵌入式系統通常使用看門狗計時器和其他自檢機制來檢測故障並採取糾正措施,這就可能意味執行了「軟」重置,其中只有必要的子系統在處理器的控制下被重置。

SPI介面是有狀態的(stateful)。例如,在接收到命令之後,快閃記憶體將期望有一定數量的位址或資料傳輸,導致主機和記憶體之間失去同步的任何錯誤都將引起不可預測的行為。要從中恢復,主機需要能夠透過執行軟重置將串列記憶體重置為已知狀態。這種重置有助於保持系統穩定,而且是在沒有看到任何外部故障指示的情況下進行,也因為如此,軟重置現在被認為是嵌入式系統操作的一個標準特性。

有些串列快閃記憶體可能有一個專用的重置接腳;但另一些則使用多工以減少接腳數,此時,重置接腳同時也是一個I/O接腳;但有時候,製造商可能根本不提供重置功能。即使有重置接腳,專門指定微控制器的一個輸出去控制它也不實際。JESD252規範的產生使得串列快閃記憶體設備無需專用或物理重置接腳仍然可以支援重置功能。除了故障恢復之外,還可以在上電啟動時使用串列重置機制,以確保電源穩定後串列記憶體也能正確啟動。

晶片內執行(XiP)

傳統的串列快閃記憶體利用低速SPI連接,這意味著如果這些元件用於儲存程式記憶體,則處理器在執行程式碼之前必須先將程式碼複製到片上SRAM中。而晶片內執行,即XiP,是透過提供更快更寬的介面省去了程式碼複製步驟的串列快閃記憶體。反過來,這減少了對片上SRAM的需求,從而降低了主機微控制器或處理器的價格。

與其他八通道元件相比,Adesto的EcoXiP採用octal SPI介面,具有高性能和極低功耗,並且具有比quad-SPI記憶體高得多的性能。

20190816TA31P3 執行模式。(資料來源: Adesto Technologies)

對於現代嵌入式設備來說,XiP的開發極具價值,不僅僅是因為片上快閃記憶體的昂貴和尺寸上的限制。微控制器通常最多具有1MB的記憶體,但現代物聯網節點通常需要更多的程式碼空間用於通訊堆疊、無線介面、音訊處理、機器視覺和應用軟體等功能。利用XiP的外部快閃記憶體可以實現更大的程式碼儲存空間。而且由於減去了程式碼傳輸階段,啟動時間也縮短了。

XiP的使用使得SRAM無需儲存程式碼而是僅用於儲存資料,從而減少了所需的SRAM數量。因為削減了對外部SRAM的需求或允許微控制器使用較少的片上SRAM,系統成本也相應降低。由於NOR快閃記憶體(非揮發性快閃記憶體)允許隨機訪問,而微控制器需要將序列介面映射到其自己的儲存空間,因此它被視為另一個儲存區域,從而支援XiP。為了進一步提高性能,EcoXiP還針對程式碼執行進行了最佳化。

標準SPI介面設計都支援隨機訪問;每次讀取都包含命令、位址和返回的資料。資料返回後,才可以進行再次請求,但是,指令通常從連續位址中獲取。

EcoXiP介面充分利用了這一點,為每個讀取請求提供連續位元組,直到具有新位址的命令被發送為止。這使得匯流排輸送量加倍,因為消除了為每次提取發送新位址的延遲,EcoXiP可以持續以156MBps(峰值速率為266MBps)的速率發送指令。

傳統NOR快閃記憶體的另一個問題是寫入比讀取慢幾個數量級。這意味著當程式碼在快閃記憶體中執行時無法將資料寫入快閃記憶體,因為這樣會對性能產生重大影響。EcoXiP透過靈活地將記憶體劃分為獨立的儲存體來支援併發讀寫。這使得採用XiP可以在執行程式碼的同時,將資料保存到記憶體並執行空中介面 (Over-the-air,OTA)更新。

對JEDEC標準的支援,包括遠端重置的支援,使業界採用XiP串列快閃記憶體變得更加簡單。

結論

在主處理器的控制下能夠重置串列快閃記憶體是嵌入式系統的重要需求。JEDEC JESD252串列重置協定可實現該功能,而無需記憶體上的重置接腳或來自微控制器或主機處理器的專門訊號。

儘管使用串列重置和XiP會影響主機和記憶體的設計,還是有越來越多的微控制器正在增加對這些標準的支持。Adesto是第一家提供串列NOR快閃記憶體的製造商,其產品支援串列快閃記憶體重置訊令協定和xSPI標準。EcoXiP可在提供所需執行能力的同時降低系統功耗與成本,它還相容串列快閃記憶體發現標準,並具有改善能效和安全的其他特性。

擁有上述技術,嵌入式工程師可以更好地應對開發物聯網產品時所面臨的挑戰。

(參考原文: JEDEC’s Soft Reset Offers Significant Benefits to Embedded Developers,by Paul Hill)