0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用安全微控制器看門狗定時(shí)器

星星科技指導(dǎo)員 ? 來源:ADI ? 作者:ADI ? 2023-03-01 14:14 ? 次閱讀

安全微控制器系列(DS5000FP、DS5001FP、DS5002FP和相關(guān)模塊)集成了內(nèi)部看門狗定時(shí)器,以防止代碼執(zhí)行錯(cuò)誤。看門狗定時(shí)器使用微控制器也使用的高精度晶體振蕩器。這消除了對(duì)RC振蕩器的需求,同時(shí)提供了更高的精度。

概述

微控制器通常用于電源瞬變、電磁干擾 (EMI) 和靜電放電 (ESD) 豐富的惡劣環(huán)境中??偩€損壞和電磁放電引起的程序損壞可能導(dǎo)致微處理器執(zhí)行錯(cuò)誤的指令。在這些環(huán)境中,看門狗定時(shí)器是一種有用的外設(shè),可以幫助捕獲和重置已“失控”的微控制器。

看門狗定時(shí)器是一個(gè)簡(jiǎn)單的倒數(shù)定時(shí)器,用于在特定時(shí)間間隔后重置微處理器。在正常運(yùn)行的系統(tǒng)中,軟件將定期“寵愛”或重新啟動(dòng)看門狗定時(shí)器。重新啟動(dòng)后,看門狗將開始計(jì)時(shí)另一個(gè)預(yù)定間隔。當(dāng)軟件或設(shè)備無法正常運(yùn)行時(shí),軟件不會(huì)在超時(shí)之前重新啟動(dòng)看門狗計(jì)時(shí)器。當(dāng)看門狗定時(shí)器超時(shí)時(shí),將導(dǎo)致微控制器復(fù)位。如果系統(tǒng)軟件設(shè)計(jì)正確且沒有硬件故障,則重置將導(dǎo)致系統(tǒng)再次正常運(yùn)行。重置條件必須是“安全”狀態(tài)。例如,讓磁條讀卡器的復(fù)位狀態(tài)啟用寫入磁頭是不明智的。

許多系統(tǒng)都是使用外部看門狗定時(shí)器設(shè)計(jì)的。安全微控制器系列通過集成內(nèi)部看門狗定時(shí)器,無需外部元件。通過在微控制器內(nèi)移動(dòng)看門狗定時(shí)器,可以減少系統(tǒng)中的器件數(shù)量,從而提高整體系統(tǒng)可靠性??撮T狗定時(shí)器可以利用微控制器使用的高精度晶體振蕩器,而不是大多數(shù)獨(dú)立看門狗定時(shí)器使用的不精確的RC振蕩器。看門狗定時(shí)器的操作與微控制器無關(guān),除非通過定時(shí)訪問程序?qū)iT解決。失控的微控制器意外禁用看門狗定時(shí)器的可能性小于 1/7.2 ×1016.本應(yīng)用筆記介紹了安全微控制器看門狗定時(shí)器的特性和用途。

看門狗定時(shí)器的一般用途

看門狗定時(shí)器的主要應(yīng)用是作為系統(tǒng)監(jiān)視器來檢測(cè)和復(fù)位“失控”微處理器。當(dāng)程序執(zhí)行出錯(cuò)時(shí),它將無法正確執(zhí)行重新啟動(dòng)看門狗的代碼。在這種情況下,看門狗定時(shí)器將超時(shí)并導(dǎo)致微控制器復(fù)位。在正確設(shè)計(jì)的系統(tǒng)中,復(fù)位將糾正錯(cuò)誤。

無論看門狗定時(shí)器的功能如何,都存在無法通過復(fù)位來糾正的某些故障。例如,看門狗定時(shí)器無法防止或檢測(cè)數(shù)據(jù)存儲(chǔ)器的損壞。除非數(shù)據(jù)損壞影響程序流,或者采取了一些額外的措施,否則數(shù)據(jù)損壞不會(huì)導(dǎo)致監(jiān)視器超時(shí)。當(dāng)然,自診斷軟件可以編寫成這樣一種方式,即重新啟動(dòng)看門狗取決于數(shù)據(jù)存儲(chǔ)器的驗(yàn)證。雖然許多應(yīng)用程序?qū)崿F(xiàn)了此類數(shù)據(jù)驗(yàn)證方案,但它超出了本文檔的范圍。

應(yīng)該記住,看門狗定時(shí)器無法立即檢測(cè)到故障。根據(jù)定義,監(jiān)視程序計(jì)時(shí)器必須達(dá)到其超時(shí)間隔的末尾,然后才能重置處理器。系統(tǒng)設(shè)計(jì)人員應(yīng)注意執(zhí)行錯(cuò)誤指令和看門狗定時(shí)器復(fù)位之間可能發(fā)生的最大時(shí)間間隔。

放置重新啟動(dòng)說明

在安全微控制器系列中,看門狗定時(shí)器由主系統(tǒng)時(shí)鐘驅(qū)動(dòng)。超時(shí)間隔固定為 122,800 個(gè)計(jì)算機(jī)周期(1,473,600 個(gè)外部時(shí)鐘周期)。當(dāng)達(dá)到超時(shí)時(shí),將進(jìn)行重置。表1顯示了與不同晶體頻率相關(guān)的復(fù)位時(shí)間間隔。

時(shí)鐘頻率 超時(shí)間隔
16.0000兆赫 92 毫秒
14.7456兆赫 100 毫秒
11.0592兆赫 133 毫秒
7.73280兆赫 191 毫秒
5.52960兆赫 266 毫秒
1.84320兆赫 800 毫秒

主要問題是看門狗定時(shí)器復(fù)位命令(設(shè)置 RWT 位)在軟件中的位置。最理想的方法是在系統(tǒng)軟件的主回路中有一個(gè)位置,定期重新啟動(dòng)看門狗計(jì)時(shí)器。通過主程序循環(huán)所需的時(shí)間必須小于超時(shí)間隔,否則設(shè)備將在正常運(yùn)行期間自行復(fù)位。然而,在某些系統(tǒng)中,程序流不夠線性,無法放置單個(gè)看門狗定時(shí)器復(fù)位功能。代碼中應(yīng)放置多個(gè)復(fù)位功能,對(duì)應(yīng)于最長(zhǎng)的軟件路徑。

通常,系統(tǒng)需要知道是否發(fā)生了看門狗定時(shí)器復(fù)位。WTR 位 (PCON.4) 將在發(fā)生這種情況時(shí)進(jìn)行設(shè)置,如果發(fā)生系統(tǒng)故障,軟件可以在復(fù)位序列的早期對(duì)此進(jìn)行測(cè)試。如果是這樣,系統(tǒng)可能會(huì)決定進(jìn)入“安全”模式并提醒用戶注意錯(cuò)誤情況。

看門狗復(fù)位示例

下面顯示了一個(gè)簡(jiǎn)短的程序,說明了看門狗定時(shí)器的初始化和基本功能。它說明了定時(shí)訪問功能,該功能可防止意外修改看門狗控制位。定時(shí)訪問操作是必須按順序一起執(zhí)行的一系列步驟;否則,訪問將失敗。示例程序顯示了用于重新啟動(dòng)監(jiān)視器并啟用其重置的定時(shí)訪問。有關(guān)定時(shí)訪問操作的更多詳細(xì)信息,請(qǐng)參閱安全微控制器用戶指南。受定時(shí)訪問過程保護(hù)的看門狗定時(shí)器位是使能看門狗定時(shí)器復(fù)位 (EWT;PCON.2) 并重新啟動(dòng)看門狗定時(shí)器 (RWT;IP.7) 位。

; WD_RST.ASM Program
;
; This program demonstrates the use of the watchdog timer.
; When running, the program counts on port 1 to indicate the device is
; running and periodically resetting the watchdog timer. After counting
; to 16, it stops resetting the watchdog timer, simulating a system fault.
;
; The program begins by checking to see if the WTR bit is set. If so, the
; reset was caused by the watchdog timer, and the program will execute
; the FAULT subroutine. Port 1 is set to F0h to indicate this condition.
; If the WTR bit is not set, the reset was caused by another source and
; execution should continue normally.
;************************************
RWT    EQU    0BFh            ;Reset Watchdog Timer bit
TA     EQU    0C7h            ;Timed Access Register
PCON   EQU    87h             ;Power Control Register
ACC    EQU    0E0h            ;Accumulator
P1     EQU    090h            ;Port 1

       ORG    00h             ;Reset Vector
       SJMP   START

;************************************
       ORG    080h            ;Program starts at 80h in this example.
START: MOV    A, PCON         ;If reset was caused by watchdog timeout,
       JB     ACC.4, FAULT    ; (WTR bit =1) execute fault subroutine.

;**********************************
;A normal power-on reset has occurred. Start initialization sequence.
       MOV    P1, #00h        ;Clear P1 to signal start of program.

;Watchdog timer initialization sequence
       MOV    TA, #0AAh       ;First restart the Watchdog timer
       MOV    TA, #055h       ; using timed
       SETB   RWT             ; access.

       MOV    TA, #0AAh       ;Next enable the Watchdog timer reset
       MOV    TA, #055h       ; function using timed
       ORL    PCON, #04h      ; access.

;**********************************
;Main program loop. This simulates a program that is operating
; correctly and then goes awry. After the program has counted to 16
; on Port 1 it will skip over the watchdog timer reset function. This
; will simulate a fault and allow the watchdog timer reset to be asserted.
;**********************************
MAIN:  MOV    R1, #0FFh       ;Create a delay loop. This simulates
LOOP1: MOV    R2, #0FFh       ; a device actually "doing something."

LOOP2: JB     P1.4, SKIP_WD_RST   ;Have we been through loop 16 times?

       MOV    TA, #0AAh       ;Watchdog timer reset. In a user application it
       MOV    TA, #055h       ; should be placed at strategic locations
       SETB   RWT             ; where it will be executed periodically.

SKIP_WD_RST:
       DJNZ   R2, LOOP2
       JNZ    R1, LOOP1

       INC    P1              ;Increment counter.
       SJMP   MAIN            ;Go back to main program loop.
;************************************
;Watchdog timeout fault. This subroutine would normally have special
; routines to be executed in the event of a system fault. In this example,
; it disables the watchdog reset and sets Port 1 to F0h to indicate a fault.
; In a real application, this routine could either clear the fault and
; restart the software, or signal a fault and halt further operation.
;************************************
FAULT: MOV    P1, #0F0h       ;Signal a fault
       MOV    TA, #0AAh       ;Disable watchdog timer reset
       MOV    TA, #55h        ; using timed
       ANL    PCON, #0FBh     ; access.
       SJMP   $               ;Halt further operation.

總結(jié)

任何使用看門狗作為監(jiān)視器的設(shè)計(jì)都必須考慮許多因素。確定超時(shí)期限后,必須分析系統(tǒng)軟件以確定看門狗重新啟動(dòng)指令的位置。為了進(jìn)行有效的設(shè)計(jì),應(yīng)將監(jiān)視程序重新啟動(dòng)的次數(shù)保持在最低限度,并應(yīng)考慮錯(cuò)誤執(zhí)行重新啟動(dòng)的可能性。如前所述,某些系統(tǒng)軟件過于復(fù)雜或依賴于數(shù)據(jù),無法確??撮T狗重新啟動(dòng)涵蓋所有軟件流路徑。這可能要求可能需要自診斷軟件方法。如果存在預(yù)期的故障機(jī)制,例如周期性EMI突發(fā)或電源毛刺,則看門狗超時(shí)應(yīng)考慮此時(shí)間段。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7337

    瀏覽量

    150138
  • ESD
    ESD
    +關(guān)注

    關(guān)注

    48

    文章

    1978

    瀏覽量

    172239
  • 電磁干擾
    +關(guān)注

    關(guān)注

    36

    文章

    2232

    瀏覽量

    105138
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于安全微控制器看門狗定時(shí)器

    本應(yīng)用指南描述了采用Dallas半導(dǎo)體公司安全微控制器系列產(chǎn)品的看門狗定時(shí)器的特性和用途
    發(fā)表于 09-23 10:47

    看門狗定時(shí)器硬件外設(shè)參考設(shè)計(jì)

    內(nèi)部看門狗定時(shí)器屬于硬件外設(shè),幾乎是所有單片微控制器的一個(gè)組成部分,可與板載外設(shè)和系統(tǒng)時(shí)鐘進(jìn)行交互(圖 1)。 默認(rèn)情況下,內(nèi)部看門狗定時(shí)器
    發(fā)表于 07-23 09:32

    看門狗定時(shí)器WDT是什么

    看門狗定時(shí)器WDT,是微控制器運(yùn)行狀態(tài)的監(jiān)控系統(tǒng),在微控制器內(nèi)部程序跑飛后,微控制器控制功能將
    發(fā)表于 02-15 07:07

    內(nèi)部與外部看門狗定時(shí)器的比較

    摘要:本文對(duì)內(nèi)部(集成在處理內(nèi)部)看門狗定時(shí)器(WTD)與外部(基于硬件) WDT的優(yōu)勢(shì)和劣勢(shì)進(jìn)行了對(duì)比。內(nèi)部看門狗便于設(shè)計(jì),但容易失效。MAXQ2000
    發(fā)表于 05-02 10:34 ?4506次閱讀

    看門狗定時(shí)器的設(shè)計(jì)、工作原理及看門狗定時(shí)器的操作

    看門狗定時(shí)器(WDT,Watch Dog Timer)是單片機(jī)的一個(gè)組成部分,它實(shí)際上是一個(gè)計(jì)數(shù),一般給看門狗一個(gè)數(shù)字,程序開始運(yùn)行后看門狗
    發(fā)表于 05-23 09:14 ?7508次閱讀
    <b class='flag-5'>看門狗</b><b class='flag-5'>定時(shí)器</b>的設(shè)計(jì)、工作原理及<b class='flag-5'>看門狗</b><b class='flag-5'>定時(shí)器</b>的操作

    看門狗定時(shí)器的作用

    看門狗定時(shí)器(WDT,Watch Dog Timer)是單片機(jī)的一個(gè)組成部分,它實(shí)際上是一個(gè)計(jì)數(shù),一般給看門狗一個(gè)數(shù)字,程序開始運(yùn)行后看門狗
    發(fā)表于 10-20 14:41 ?6568次閱讀

    TB3123 - PIC?單片機(jī)的窗口看門狗定時(shí)器

    窗口看門狗定時(shí)器(Windowed Watchdog Timer,WWDT)是PIC單片機(jī)的增強(qiáng)型看門狗定時(shí)器。該定時(shí)器是PIC單片機(jī)現(xiàn)有
    發(fā)表于 03-26 14:35 ?0次下載
    TB3123 - PIC?單片機(jī)的窗口<b class='flag-5'>看門狗</b><b class='flag-5'>定時(shí)器</b>

    什么是看門狗定時(shí)器?為何看門狗定時(shí)器如此重要?

    ---使用具有整合看門狗功能的處理。許多微控制器如MSP430F5529系列具有整合看門狗的功能。它的價(jià)值在于非常容易實(shí)作,且不需要使用其他IC。然而,有一個(gè)重要的告誡:由于程序代碼
    的頭像 發(fā)表于 08-29 08:13 ?2.3w次閱讀
    什么是<b class='flag-5'>看門狗</b><b class='flag-5'>定時(shí)器</b>?為何<b class='flag-5'>看門狗</b><b class='flag-5'>定時(shí)器</b>如此重要?

    PCB設(shè)計(jì)技巧:您是否應(yīng)在電路板設(shè)計(jì)中包含外部看門狗定時(shí)器?

    看門狗定時(shí)器(WDT)是一種電子功能,用于檢測(cè)嵌入式系統(tǒng)中的異常并重置微控制器。它通常由預(yù)先加載的計(jì)時(shí)組成,計(jì)時(shí)倒計(jì)時(shí)到零。當(dāng)預(yù)加載的
    的頭像 發(fā)表于 07-25 11:41 ?3129次閱讀

    LPC2294看門狗定時(shí)器

    導(dǎo)致復(fù)位/中斷5.指示看門狗復(fù)位的標(biāo)志6.可編程的32位定時(shí)器與內(nèi)部預(yù)分頻。7.可選擇時(shí)間段,從(T PCLK x 256 x 4)到(TPCLK x 232 x4)應(yīng)用看門狗的目的是在微控制
    發(fā)表于 12-04 10:36 ?8次下載
    LPC2294<b class='flag-5'>看門狗</b><b class='flag-5'>定時(shí)器</b>

    一文詳解微控制器中的看門狗定時(shí)器

    本文介紹看門狗定時(shí)器,通??s寫為 WDT,也稱為計(jì)算機(jī)正常運(yùn)行定時(shí)器或 COP。有外部看門狗設(shè)備和內(nèi)部看門狗功能。本文僅介紹內(nèi)部
    的頭像 發(fā)表于 04-25 17:26 ?4761次閱讀
    一文詳解<b class='flag-5'>微控制器</b>中的<b class='flag-5'>看門狗</b><b class='flag-5'>定時(shí)器</b>

    看門狗定時(shí)器電路的功能和操作及局限性解決方案

    看門狗定時(shí)器提高了基于微控制器的系統(tǒng)的可靠性。但是,它們并非萬無一失。在本設(shè)計(jì)解決方案中,我們回顧了看門狗定時(shí)器電路的功能和操作,探討了它們
    的頭像 發(fā)表于 12-19 15:03 ?4057次閱讀
    <b class='flag-5'>看門狗</b><b class='flag-5'>定時(shí)器</b>電路的功能和操作及局限性解決方案

    使用高速微型看門狗定時(shí)器

    在惡劣環(huán)境中使用的高速微控制器應(yīng)用的設(shè)計(jì)人員將使用看門狗定時(shí)器來防止軟件失控。DS80C320高速微控制器集成了看門狗
    的頭像 發(fā)表于 02-09 11:54 ?731次閱讀

    內(nèi)部和外部看門狗定時(shí)器的比較

    本文比較了內(nèi)部(與微處理集成)和外部(基于硬件)看門狗定時(shí)器(WDT)的優(yōu)缺點(diǎn)。它解釋了內(nèi)部看門狗定時(shí)器易于實(shí)現(xiàn),但容易發(fā)生故障。MAXQ
    的頭像 發(fā)表于 04-03 11:15 ?2716次閱讀

    AXI時(shí)基看門狗定時(shí)器(WDT)概述

    XilinxLogiCORE IP AXI4-Lite時(shí)基看門狗定時(shí)器(WDT)是一個(gè)32位外設(shè),提供32位自由運(yùn)行時(shí)基和看門狗定時(shí)器。
    的頭像 發(fā)表于 10-16 11:10 ?995次閱讀
    AXI時(shí)基<b class='flag-5'>看門狗</b><b class='flag-5'>定時(shí)器</b>(WDT)概述