數十年來,感測器節點一直採用由控制器、感測器、本機儲存記憶體、網路連結和電池組成的基本架構。每一個從類比環境採集資料的系統都採用了該架構的某種變體,每個系統都必須解決資料擷取、關鍵資料儲存等根本問題,然後在資料分析的基礎上採取相應的對策。

過往資料擷取系統的感測器節點都會採集資料,如果有本機記憶體,就會在本地儲存了數百個樣本之後再傳送至一個中樞進行處理;該中樞對資料進行處理並採取相應對策。資料通訊通常以有線形式進行,一般是乙太網路或類似的工業匯流排。

物聯網環境下,所有裝置都會透過網路互相通訊。保守估計,截至2020年將有超過100億台連網裝置,包括汽車、工業自動化設備、醫療植入裝置,以及可穿戴裝置、智慧家庭裝置等新興應用。全球某些區域已經開始佈署下一代5G網路,以處理上述裝置即將產生的資料流量。但是,目前資料科學家和系統設計師還面臨幾個未解決的問題:哪些裝置需要連接到雲端?需要傳遞的資料量有多少?有多少能在本地處理?雲端成本又該由誰負擔?

20190513_IoTnode_TA31P1

圖1:傳統的感測器節點。
(圖片來源:Cypress)

一種簡單的物聯網架構是把所有資料上傳至雲端,然後進行遠端處理;這種架構或許適合小型、隔離的系統,一旦全球連網裝置增加就會有大量系統同時嘗試上傳資料,系統設計師必須在連網成本和本機儲存/處理之間做出取捨,他們需要分析哪些情境可以減少連網頻率,執行本機儲存及處理,然後定期批量上傳資料。

「工業4.0」一詞就是對充滿連網裝置之未來的簡單形容。為了確保能夠以低成本、低功耗的最佳策略佈署系統,系統的每個零組件都需要謹慎分析。在這篇文章中,我們將探討最為重要、卻常常被忽視的感測器節點部分——也就是本機記憶體。

20190513_IoTnode_TA31P2

圖2:工業4.0中的感測器節點。
(圖片來源:Cypress)

感測器節點

感測器節點之間、以及感測器與中央處理中樞之間的連結日漸增加,透過包括Wi-Fi、藍牙與其他一種或多種無線技術;這些無線通訊協議使得感測器能被佈署在傳統裝置因為有線網路佈線之限制或成本問題而無法進入的地方。無線感測器節點的網狀網路可以分佈在整個自動化廠房內,持續對重要系統參數進行監控。

要轉向無線技術仍有需要克服的一些挑戰,例如採用傳統系統無需擔憂電力耗盡,但是對於無線感測器節點來說,電池續航力就是大問題;同時,感測器節點的功耗水準受到嚴格限制。功耗上的任何改善都會對電池續航力產生重大影響,並能因此減少維護頻率。

很多情況下,由於成本限制,系統設計師不得不採用初期成本較低的解決方案,但是隨著時間推移,高昂的維護成本會讓整體方案變得昂貴。遠端佈署感測器節點的最大成本之一就是替換電池;經過最佳化能而降低30%功耗的系統,能直接讓替換電池的維護成本也降低30%。

影響感測器節點功耗的主要因素有哪些?針對一個典型藍牙低功耗(BLE)感測器節點的詳細系統功耗分析結果顯示,影響電池續航力的最大關鍵參數是:

  1. 資料上傳時的天線功耗;
  2. 資料擷取過程中的控制器功耗;
  3. 資料登錄過程中的本機記憶體功耗。

BLE系統的天線功耗直接取決於感測器節點與中樞連結並向後者上傳資料的頻率,儘管BLE系統能夠支援每10ms最多500位元組(B)的上傳速率,但是很少有感測器節點需要以這種50KB/s速率採集資料。根據感測元素的不同,環境參數感測系統的一般資料擷取速率為100~500B/s,因此設計師可將BLE系統設置為較長的連接間隔時間,以提高電池續航力。

與隨時可上傳資料的系統相比,較長連接間隔時間的系統需要儲存更多資料點紀錄檔。典型的物聯網控制器內建記憶體容量從64KB到256KB不等,大部分容量都用於執行ADC及節點內其他任務所需的BLE堆疊和使用者API。因而當系統需要儲存資料記檔錄時,就會耗盡內部記憶體容量;為此,記錄檔必須經常儲存到外部記憶體。

自從物聯網感測器節點採用電池驅動供電以來,外部記憶體必須具備非揮發性,以確保資料的可靠性。儘管市場中有很多非揮發性技術,系統設計師還是傾向採用介面簡單、可靠性高的記憶體。最常用的外部非揮發性記憶體包括EEPROM、快閃記憶體和鐵電記憶體(F-RAM)。然而,由於快閃記憶體/EEPROM技術的設計初衷側重於提高讀取性能,因此在連續寫入的情況下會出現嚴重缺陷。

如果一個快閃記憶體單元提前被抹除,那麼它就可以在「程式化」(programmed)後儲存新資料。將快閃記憶體單元程式化能使其狀態從邏輯「1」變為邏輯「0」。下次更新過程中,如果快閃記憶體單元需要賦值邏輯「1」,則需要首先將其抹除。為了加快抹除速度、與程式化時間,快閃記憶體製造商採用了不同的分頁(page)、分段(block)和分區(sector)等架構。

分頁是一次能在快閃記憶體內部進行程式化的最小資料單位;快閃記憶體元件內部有一個分頁大小的緩衝區,用以暫時儲存資料;一旦來自外部介面的資料傳輸結束,設備將對一個已經在主陣列被抹除的分頁啟動一次程式化運作,如果該分頁包含舊資料,就必須在程式化執行前將其抹除。

每執行一次抹除,快閃記憶體單元都會退化,在快閃記憶體產品規格表中會被量化為耐久性(endurance)。品質最好的快閃記憶體裝置擁有高達10萬次的抹除-寫入耐久性,但之後就不再保證資料儲存的可靠性;儘管這個數字看起來很龐大,我們將證明這樣的耐久性對於最低階的資料登錄系統來說也遠遠不夠。

某些製造商從緩衝區到快閃記憶體都採用了位元組程式化(byte programming)和延遲程式化(delayed programming)技術,雖然這些技術的確能簡化裝置內的程式化,卻無法從根本上突破快閃記憶體的耐久性侷限。為了彌補此一侷限,系統設計者被迫採用複雜的檔案系統來解決儲存單元的耗損平衡(wear leveling)問題,這不僅增加開支(overhead)還會降低系統速度,EEPROM也具有類似的缺陷。

我們各自以F-RAM、EEPROM和快閃記憶體為基礎設計了三種系統,藉由採集溫度、濕度、壓力和加速度數據,模擬物聯網感測器的典型資料記錄行為。三種系統均採用最佳化的BLE連接間隔,和完全一致的本機儲存演算法。為了從簡,我們選擇了4秒的慢速BLE連接間隔時間,100B/s的資料取樣速率。每個樣本均包含所有感測器資料快照和幾個標記位元組,能讓接收中書解析資訊並向營運人員提供回饋。

20190513_IoTnode_TA31P3

圖3:採用F-RAM的物聯網感測器節點。
(圖片來源:Cypress)

20190513_IoTnode_TA31P4

圖4:採用快閃記憶體的物聯網感測器節點。
(圖片來源:Cypress)

20190513_IoTnode_TA31P5

圖5: 採用EEPROM的物聯網感測器節點。
(圖片來源:Cypress)

此外這三種系統採用了電路板上電流監測技術,精確記錄以下三個階段中的系統電流消耗:

  1. 資料擷取(ADC擷取和讀取感測器資料);
  2. 對外部記憶體寫入/編程資料;
  3. 每4秒將資料上傳至中樞。

為了分析,我們使用了一個64Mb快閃記憶體、一個256Kb EEPROM記憶體和一個Cypress的4Mb Excelon F-RAM記憶體。快閃記憶體支援512B/page的速率,並在實驗開始時做了預先抹除;EEPROM支援 60B/page的速率。該F-RAM支援位元組定址(byte-addressable)、低功耗,無需預抹除及分頁寫入(page write)。圖6展示了一個採用F-RAM的典型系統運作情況。

20190513_IoTnode_TA31P6

圖6:採用F-RAM的物聯網感測器電流消耗。
(圖片來源:Cypress)

20190513_IoTnode_TA31T1

表1:物聯網感測器節點的系統功耗。

表1總結了三種感測器節點類型的系統功耗。系統被設置為每4秒上傳大約500位元組資料,電流監控時長為120秒。所有三種系統的資料輸送量均相同,唯一區別在於寫入記憶體的演算法不同:

  • 因為F-RAM支援位元組定址,因此採用F-RAM的系統可立即寫入被擷取的樣本。
  • 基於EEPROM的系統僅可寫入分頁大小的資料(每頁64位元組),並且具備2ms的保壓時間(soak time)以完成寫入操作。因此,每次寫入1個分頁時,系統將在2ms的額外時間內處於開啟狀態。
  • 採用快閃記憶體的系統只可寫入512位元組的分頁。該裝置在20ms的程式化時間內,功耗為13mA,還需額外20ms時間用於狀態暫存器更新。這使得系統總開啟時間達到45ms。

可見,基於EEPROM的系統功耗比採用F-RAM的系統高22%,而基於快閃記憶體的感測器節點功耗則會基於F-RAM的系統高140%。圖7的功耗模式分析揭示了快閃記憶體裝置功耗表現有差異的原因:程式化時間導致系統功耗加倍。

20190513_IoTnode_TA31P7

圖7:物聯網感測器節點快閃記憶體處理器電流消耗(mA)與時間(ms)的關係曲線。
(圖片來源:Cypress)

除了功耗大,採用快閃記憶體或EEPROM的系統還存在其他技術缺陷,尤其是基於快閃記憶體系統的耐久性和抹除功耗問題。快閃記憶體裝置的耐久性有限,只有10萬次左右的讀寫週期,使得產品生命週期有限;此外因為快閃記憶體設備執行晶片抹除耗費不少時間,系統會因此處於停機狀態。抹除所需的功耗會導致總功耗提高,進一步削弱其省電性能。

感測器節點都是採用電池供電,如果出現意外斷電,採用快閃記憶體或EEPROM的系統就可能遭遇喪失資料完整性的狀況。快閃記憶體裝置只能分次為每個分頁程式化,因此系統必須在本機儲存每個分頁的資料,直至該資料成功寫入記憶體,過程中出現斷電將會至少丟失一個分頁的資料。

F-RAM能解決上述問題,使其成為物聯網資料登錄的理想選擇。F-RAM耐久性可達1014次讀寫週期,並支援非揮發性與位元組定址,讀寫電流為2.4mA,待機電流2.3μA,休眠電流0.1μA,低功耗特性適用電池供電的物聯網裝置。

本文同步刊登於電子工程專輯雜誌2019年5月號;責編:Judith Cheng

(原文出自EE Times姊妹刊,ASPENCORE旗下Embedded.com;參考連結: Ensuring fail-safe data storage in battery-powered IoT sensor nodes,by Nilesh Badodekar & Girija virupaxi Chougala)