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