物聯網 (IoT) 和工業物聯網 (IIoT) 節點正逐漸應用于安全性越來越高的系統中。在這些系統中,整個網絡的安全保障比網絡上單個設備的功能更為重要。這意味著,如果一個物聯網節點發現自身遭到入侵,或者將會發生不可恢復的固件錯誤,則最安全的措施可能是該節點在可行的情況下盡快關閉電源,以避免節點和網絡可能出現危險后果。 然而,一旦節點斷電,所有易失性存儲器的內容都將丟失。若將調試數據存儲在 EEPROM 或閃存等非易失性存儲器中,則會耗時耗電,增加潛在損壞的風險。此外,如果上電序列也遭到入侵,則系統遭到入侵的程度可能已經達到上電時回讀數據無法再提供可信數據。 本文介紹了如何將電子紙顯示屏 (EPD) 輕松連接至物聯網或工業物聯網節點,以顯示最后的已知錯誤,從而提供斷電事件原因的可視化指示,以便技術人員采取適當的措施。然后,本文以 Pervasive Displays 和 Display Visions 的電子紙顯示屏為例,討論了如何能將這些顯示屏與微控制器連接,并配置為在極少耗電或不耗電的情況下提供診斷信息。
高安全性物聯網和工業物聯網節點
物聯網和工業物聯網節點設計人員的責任越來越大,需要采用越來越復雜的安全方法,保證主機微控制器的正常運行。一般來說,必須防范三種安全威脅:
微控制器固件故障
來自傳感器、鍵盤、串行外設或其他設備的無效輸入數據
惡意攻擊者的行為
微控制器固件故障可能由多種原因引起:安裝的固件中編碼錯誤;導致故障的無效計算;或者,在極其罕見的情況下,微控制器的硬件故障。通常,編寫良好的固件可通過清理對子例程和函數的輸入來檢測故障。在固件被鎖定或陷入循環的極端情況下,看門狗超時將通過跳轉至錯誤控制子例程或執行微控制器硬復位來恢復固件。 在輸入數據無效的情況下,如外部傳感器發生故障或被篡改,可能會導致超限數據,且這些數據可能未在應用程序代碼中給予適當考慮。例如,如果在一個有人的控制室中,環境溫度傳感器錯誤地記錄了 250°F 的高溫,這可能是傳感器故障或遭到惡意篡改。粗心的固件程序員可能沒有對如此高的溫度讀數編碼,這可能導致諸如不正確的數據記錄之類的小事,或諸如允許入侵者進入安全區域之類的嚴重事故,也可能導致會造成設備故障或嚴重人身傷害的關鍵性控制算法計算錯誤。潛在的負面結果很多。 惡意攻擊者的不同之處在于,他們可能有意造成物聯網節點故障。黑客攻擊嘗試造成的故障可能會被安全例程檢測為入侵;但是,也可能偽裝成固件故障或無效的外部輸入數據。在示例中,250°F 的環境溫度讀數可能是由于惡意攻擊者在如此高的讀數下測試固件行為,意圖測試入侵方法;例如,如果 250°F 的環境溫度讀數被錯誤地評估為火災,門可能會自動解鎖。
對固件故障作出反應
無論錯誤來源是什么,在高安全性物聯網和工業物聯網節點中,微控制器固件都不能容許出錯。任何及所有故障均必須進行編碼并加以捕獲。子例程和函數的輸入必須進行清理,所有傳感器輸入數據必須進行驗證。看門狗定時器必須進行編程,以根據已知的運行時間檢測耗時過長的鎖定或循環代碼。 當在高安全性物聯網或工業物聯網節點中檢測到固件故障時,無論該故障是意外的還是故意的,固件都必須盡快捕獲該事件。常見的操作包括嘗試對故障進行補償。對于始終超出范圍的故障傳感器,固件可能會對該傳感器設置“跛行模式”,以補償不良數據,直至可以更換傳感器。若固件例程返回錯誤結果,則可能會重新進行初始化。通常,在網絡上發送錯誤代碼,以將問題通知網絡主機。 不過,在一些高安全性物聯網或工業物聯網節點中,存在一類特殊的故障,對于這些故障不能或不應進行補償或采取對策。這可能包括物理篡改檢測、內部校驗和失敗、一些內置自檢 (BIST) 失敗,以及任何可能由受損的固件或黑客入侵系統引起的故障。對于這些高安全性的情況,唯一的選擇可能是立即安全地關閉節點的電源。當節點未能響應網絡請求時,網絡主機將確定節點已斷電。如果節點在未向主機發送錯誤報告的情況下斷電,并且如果節點忽略重新啟動的網絡命令,則表示發生了致命故障,必須派遣技術人員對節點進行物理檢查以查明原因。 然而,一旦節點斷電,所有易失性存儲器和狀態數據將立即擦除。這使得就算有可能診斷關機原因,也會非常困難。或者,在關閉節點電源之前,可以將診斷數據存儲至非易失性存儲器,例如 EEPROM 或閃存。而問題是寫入這些類型的內存需要時間,在此期間節點必須保持活動狀態,可能導致額外的損壞。
用電子紙診斷致命錯誤
EPD 耗電極少,可用于在節點即將斷電前存儲并顯示錯誤和診斷信息。節點斷電后,EPD 可在沒有任何電源的情況下維持其顯示圖像達數天或數星期之久。通過顯示屏上的信息,技術人員可以直觀地了解關斷的原因,從而確定是否可以安全地給物聯網節點上電,或者是否應將其從網絡中取出以進行詳細分析。 Pervasive Displays 的 E2271CS091 EPD 模塊就是一個適用于顯示診斷信息的 EPD 示例。該模塊可通過 SPI 串行接口連接至任何兼容微控制器,并且帶有一塊 2.71 英寸 (in.) 高對比度顯示屏(圖 1)。
E2271CS091 EPD 模塊使用有源矩陣薄膜晶體管 (TFT) 顯示屏,原生分辨率為 264 x 176 像素,每英寸 117 個像素點 (dpi)。這允許顯示屏包含大量信息,以協助技術人員進行診斷。防眩光屏幕具有近 180? 的寬視角,方便在不尋常的安裝位置輕松查看顯示內容。該 EPD 需要 3.0 V 的電源。 主機微控制器通過顯示屏的 24 針帶狀連接器上的 SPI 接口向 EPD 發送數據。這種 SPI 數據通信僅僅是單向的,即從主機微控制器到 EPD。若要從 EPD 傳送回主機微控制器,唯一通信方式是帶狀連接器上的“設備忙”引腳,這大大簡化了接口,并提高了所顯示診斷數據的可信度。 如果檢測到錯誤或黑客攻擊,并且錯誤嚴重到需要關閉節點,則必須首先通過固件、看門狗或其他方法捕獲錯誤。然后,必須將控制權移交給向 EPD 發送數據的錯誤日志記錄例程。該錯誤日志記錄例程應該是最高優先級的任務,以防止數據中斷或損壞。為了實現最大的可靠性,建議該錯誤日志記錄例程應為完全自足式,不調用外部子例程或函數。理想情況下,錯誤日志記錄例程應位于永久寫保護閃存中,以確保代碼的完整性,即使是在固件更新之后。 在用錯誤數據更新 EPD 之前,主機微控制器應先通過 SPI 接口向 EPD 發送軟復位命令,以清除顯示內容。然后,它以一系列字節序列發送黑白顯示信息,字節中的每一位都代表 EPD 上的像素。序列完成后,錯誤日志記錄例程即可關閉微控制器。不同制造商的微控制器有不同的關閉方式,因為這取決于架構和制造商。在某些情況下,出于安全考慮,制造商可能會有未說明的微控制器關閉方式,只能應請求提供。或者,可以使用外部電路來中斷微控制器的電源;但是,這會增加系統的復雜性,從而導致可靠性降低。因此,微控制器的固件關斷控制是最佳選擇。 為了幫助使用 EPD 進行開發,Pervasive Displays 提供了 B3000MS034 EPD 擴展套件(圖 2)。該套件有一個擴展板,帶有一個用于該 24 針 EPD 顯示屏的連接器,并且還有一些連接器可用于其他需要 40 針和 26 針連接器的 Pervasive Displays EPD。該擴展板兼容 Texas Instruments 的 LaunchPad 開發和評估工具套件,但也可以與其他開發工具套件搭配使用。20 針橋接電纜可以連接到 20 針 90? 針座連接器,而當焊接到擴展板時,可在開發期間監測發送至 EPD 的控制信號。
另一個 EPD 選擇是 Display Visions 的 EA EPA20-A(圖 3)。
該 EPD 帶有一塊 172 x 72 灰階顯示屏,并且同樣使用 SPI 接口與主機微控制器通信。該 EPD 的功耗極低,需要一個 3.3 V 單電源,并且在顯示內容變換期間僅消耗 40 毫瓦 (mW) 的功率。Display Visions 的 EA EPA20-A EPD 也可以不加電而保持顯示內容。
總結
高安全性物聯網和工業物聯網節點有時必須關閉電源,以應對致命的固件錯誤或檢測到的威脅。這可能導致丟失所有易失性數據,包括主機微控制器的內部狀態。但是,狀態和診斷數據可以在關斷前發送至連接的 EPD,并顯示數天或數周時間。這樣便可為技術人員提供所需的信息,讓他們能夠確定關斷的原因并在必要時采取未來的預防措施,以保護和確保節點及網絡的安全。 作者:Bill Giovino 來源:Digi-Key
原文標題:使用電子紙顯示屏,指示關鍵物聯網節點中的致命錯誤和安全受損情況
文章出處:【微信公眾號:電子發燒友網】歡迎添加關注!文章轉載請注明出處。
-
微控制器
+關注
關注
48文章
7490瀏覽量
151058 -
電子紙顯示器
+關注
關注
0文章
7瀏覽量
6684
原文標題:使用電子紙顯示屏,指示關鍵物聯網節點中的致命錯誤和安全受損情況
文章出處:【微信號:elecfans,微信公眾號:電子發燒友網】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論