使用監控設備計時器提升 IoT 系統耐用性

資料提供者:DigiKey 北美編輯群

進行物聯網 (IoT) 設計時,耐用性的重要程度不亞於安全性,但往往卻被忽略。系統必須夠堅固耐用才可在無人為介入下從故障狀態中復原。 為了確保堅固耐用性,設計人員應仔細研究不起眼的監控設備計時器 (WDT),且目前有各式各樣的選擇,從簡易計時器乃至智慧型整合監控設備應有盡有。

本文首先將回顧內部與外部 WDT 的基本知識,然後再介紹一些最新的 WDT 裝置,以及如何使用這些裝置確保系統耐用性。

監控設備計時器對 IoT 的重要性何在

目前在現場部署的 IoT 裝置數量已多達數十億部,因此一旦出現故障根本無法要求技師及時前來維修。 因此,IoT 系統必須能在無任何人為介入下,自行偵測故障並進行復原。

監控設備具有眾多不同的外型與大小,但一般而言可歸類為以下幾種類型:簡易型計時器、視窗型計時器以及智慧型監控設備。 監控設備能以硬體和軟體形式內建在微控制器中,或以硬體形式外接,甚至能以獨立的微控制器形式提供,且含有軟硬體元件。 總而言之,無論採用何種監控設備解決方案,唯一的用途就是進行系統的監測和復原。 為了達到此目標,開發人員必須考量每部監控設備的獨特特性與設計挑戰,以達到堅固耐用的 IoT 系統設計。

內部監控設備基礎知識

內部監控設備計時器幾乎是每一個微控制器皆會內建的硬體周邊,能與板載周邊和系統時脈進行互動(圖 1)。 在預設情況下,內部監控設備計時器會停用,而開發人員在啟用監控設備前必須預先指定一段週期。 若軟體已鎖定,或是發生硬體故障而影響軟體執行,監控設備計時器將失效並強制重設微控制器。 在此過程中,監控設備將會清除錯誤,讓微控制器重新初始化系統。

Texas Instruments 的 MSP430G2210 監控設備計時器示意圖

1:監控設備計時器內建於絕大多數微控制器中(例如 Texas Instruments 的 MSP430G2210),並可在軟體鎖定時重置處理器。 (圖片來源:Texas Instruments)

內部監控設備計時器的原理非常簡單,但需要花費大量心思才能正確實作。 舉例而言,針對監控設備所研發的軟體不能逕行將監控設備計時器清除。 軟體在將監控設備清除之前,應先執行系統檢查,確認所有工作和硬體皆正常運作。

開發人員在開發內部監控設備解決方案時,應嘗試遵循以下數項要點:

  • 無論基於任何原因皆不得停用監控設備。 實際上,在選擇微控制器時,應確保監控設備一旦啟用就不能再停用。
  • 在定期中斷期間,切勿在未進行軟體功能檢查前就將監控設備清除。
  • 確認監控設備計時器為獨立的監控設備。 獨立型監控設備具備單獨時脈,可偵測系統時脈是否停止。
  • 使用具有視窗型監控設備功能的監控設備。 這類監控設備必須在等待一段最短時間之後才能被清除。 若在視窗啟動前嘗試清除,監控設備即會重置系統。 此做法可預防任何失控的軟體超控監控設備計時器。

內部監控設備是打造堅固耐用嵌入式系統的良好基礎,但單靠其本身並無法提供一套極為穩固的解決方案。 為了真正提升堅固耐用性,開發人員必須考量採用外部監控設備。

運用外部監控設備提升堅固耐用性

無論開發人員在實作內部監控設備的過程當中如何小心謹慎,內部監控設備終究並非萬無一失。 許多實作情況皆有缺失,共用系統時脈以及具有停用選項就是其中兩個例子。

若系統必須在現場獨立運作,使用外部監控設備就可提供眾多優點,例如:

  • 執行系統硬重置作業,確保重新啟動微控制器電源,進而重新啟動內部周邊裝置電源。 
  • 將監控設備自微控制器振盪器電路隔離。
  • 提供完全獨立的系統監測流程。

以上這些優點皆有助於提升系統的堅固耐用性,但採用外部 WDT 仍有少許缺點。 這些缺點包括使用額外 IC 導致硬體成本增加,且會提高系統的複雜度。 不過正如我們所見,納入一切考量後,這些缺點則顯得微不足道。 讓我們一起深入探究如何開發出簡易、堅固耐用的外部監控設備電路(圖 2)。

外部監控設備電路範例圖

2:外部監控設備電路範例會監測微控制器的行為和狀態,而微控制器則具有其專屬的內部監控設備計時器。 (使用 Digi-Key Scheme-it® 繪製的示意圖)

此電路是由微控制器和外部監控設備電路組成,其中微控制器運行專屬的內部監控設備計時器。 在此範例中,監控設備電路為 Texas InstrumentsTPL5010 奈功率系統計時器(具監控設備功能)。 外部監控設備具有輸出重置引腳,會直接連至微控制器重置引腳。 當 WAKE 引腳觸發後,TPL5010 會在 DONE 引腳上發出活動訊號 (heart-beat),等待微控制器回應。 若微控制器未回應,則會將重置線路拉低,以重置微控制器。 系統會調整 R2 以設定監控設備週期。

在設計當中添加以下這種簡易的低成本電路,是提升系統堅固耐用性的絕佳作法。 開發人員甚至無須等待板件製作完成即可開始測試。 TPL5010 開發套件可搭配其他開發套件輕鬆進行設定,即可測試監控設備的功能,無需等待硬體就緒(圖 3)。

Texas Instruments 的 TPL5010 開發板圖片

3:Texas Instruments 的 TPL5010 開發板費用不到 30 美元,且其排針座不僅能連接微處理器進行測試,更可用於設定和測量 TPL5010 的電流消耗量。 (圖片來源:Texas Instruments)

選擇外部監控設備時,開發人員需要考量以下數項因素:

  • 最短與最長逾時週期
  • 視窗型監控設備的支援
  • 電流消耗量
  • 最少引腳數
  • 潛在故障模式(若存在)

設計智慧型監控設備解決方案

智慧型監控設備是最適合 IoT 裝置的監控設備。 智慧型監控設備是一種監控式微控制器,除了執行基本的活動訊號監測外,還可監測系統通訊(圖 4)。 在某些情況下,微控制器會停止回應網際網路,但仍可順利將外部監控設備清空。 若發生此狀況,則會透過網際網路傳送命令以重置微控制器。 智慧型監控設備會監測通訊線路,例如 UART 發送和接收線路,偵測是否有要求重啟系統的特殊命令。

在此範例中,通訊模組同時連接至微控制器和智慧型監控設備。 請注意,智慧型監控設備亦具有外部 TPL5010。 這是因為智慧型監控設備是一種執行軟體的微控制器,為了達到堅固耐用,就必須具備專屬的外部監控設備。

智慧型監控設備系統架構範例示意圖

4:智慧型監控設備系統架構範例。 (示意圖使用 Digi-Key Scheme-it 繪製)

開發人員在設計智慧型監控設備時,必須考量以下數項重要因素:

  • 活動訊號特性
  • 輸入/輸出可用性
  • 成本
  • 可用快閃記憶體
  • 能源消耗
  • 故障模式
  • 最小的實體覆蓋區

目前已有數種微控制器,可當作良好的智慧型監控設備。 首先是 Texas Instruments 的 MSP430G2xx,具有 2 kB 快閃記憶體和 4 條 I/O 線路。 此微控制器具有剛好足夠的程式碼空間以及足夠的引腳,可開發超簡易的智慧型監控設備實作。

對於需要通訊監測功能的應用,可考慮增加一些 I/O 線路及記憶體。 若有需要,MSP430G2231IPW14RMSP430G2553IPW20R 是不錯的選擇。

即便如此,讓監控設備真正達到「智慧」運作的其實是智慧型監控設備軟體,這才是開發人員必須關注的項目,也必須在此編寫一些程式碼。 請注意,程式碼無需太複雜,實際上越簡單越好! 小巧、簡易且可靠的軟體,才是適合監控設備的最佳選擇。 以下列出依據 TPL5010 評估模組說明文件所建立的 MSP430 簡易程式碼範例(程式碼列表):

static volatile bool Reset = true;

void main(void)

{

WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer

P1OUT |= BIT0; // Set P1.0 to high

P1DIR |= BIT0; // Set P1.0 to output direction

P1DIR &= ~BIT1; // Set P1.1 to input direction

P2IES &= ~BIT0; // P2.0 Lo/Hi edge

P2IFG &= ~BIT0; // P2.0 IFG Cleared

P2IE |= BIT0; // P2.0 Interrupt Enabled

while(1)

{

   __delay_cycles(500000); // Set Delay

  

   // If true then the heartbeat was not received

   if(Reset == true)

   {

     // The heartbeat was not received. Reset the processor

      P1OUT &=~ BIT0;

      __delay_cycles(100); // Set Delay

      P1OUT |= BIT0;

      Reset = false;

   }

   else

   {

      Reset = true;

   }

}

}

// Port 2 interrupt service routine

#pragma vector=PORT2_VECTOR

__interrupt void Port_2(void)

{

   P2IFG &= ~BIT0; // P2.0 IFG Cleared

   P2IE |= BIT0; // P2.0 Interrupt Enabled

   Reset = false;

}

程式碼列表:監測微控制器活動訊號的 MSP430 軟體範例。 若未在預計週期內收到活動訊號,即會重置微控制器。 (來源:依據 Texas Instruments 的 SNAU173 應用說明所建立)。

此程式碼範例指出,智慧型監控設備進行初始化,接著等待一段特定時間,再檢查是否應重新啟動微控制器。 此智慧型監控設備假定微控制器已故障,因此將 Reset 變數設為 true。 微控制器有權決定是否要傳送活動訊號脈衝,進而觸發中斷並將 Reset 變數設回 false。 有許多功能可添加到此程式碼範例中,例如:

  • 視窗型監控設備
  • 進入低功率狀態
  • 將監視智慧型監控設備的 TPL5010 清除
  • 監測通訊線路
  • 追蹤重置的次數

只要能用於確保堅固耐用的設計,添加的功能不受限制。

結論

IoT 的安全性固然重要,但開發人員也不應該忽視系統的堅固耐用性。 為了達成此目標,監控設備在 IoT 領域中扮演關鍵角色,不僅是因為裝置部署在難以觸及的位置,也由於人們期望這些裝置能夠近乎全年無休地完美運作。 內部監控設備能讓開發人員進行最少量的復原作業,而外部監控設備和智慧型監控設備則具有一些額外軟體,以便達到堅固耐用且可復原的設計。

DigiKey logo

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。

關於出版者

DigiKey 北美編輯群