日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機(jī)站
  • 小程序

    汽車測試網(wǎng)

  • 公眾號
    • 汽車測試網(wǎng)

    • 在線課堂

    • 電車測試

一文了解汽車ECU的看門狗

2025-05-27 09:46:44·  來源:汽車電子與軟件  
 

工作中頻繁碰到reset,一會聽說是內(nèi)狗reset了,又一會聽說是外狗reset了。到底什么是看門狗,又到底什么是內(nèi)狗,什么是外狗呢?接下來本文將你了解看門狗的基礎(chǔ)知識和基礎(chǔ)原理。

01 、什么是看門狗?

汽車控制器的看門狗與我們以前學(xué)習(xí)單片機(jī)所了解的看門狗其實是一個東西,即看門狗(Watchdog Timer,WDT)是一種特殊的定時器。它就像一個 “監(jiān)督者”,用于監(jiān)測微控制器系統(tǒng)的運(yùn)行狀態(tài)。當(dāng)微控制器由于軟件故障(如程序陷入死循環(huán))、外部干擾(如電磁干擾導(dǎo)致程序跑飛)等原因不能正常運(yùn)行時,看門狗會在設(shè)定的時間內(nèi)沒有被 “喂狗”(即沒有執(zhí)行復(fù)位操作)后,產(chǎn)生一個復(fù)位信號,使控制器重新啟動,從而恢復(fù)系統(tǒng)的正常運(yùn)行。

圖片

source: https://blog.csdn.net/zerothpower/article/details/108616557

看門狗通常有一個計數(shù)器,它會按照一定的時鐘源進(jìn)行遞增或遞減計數(shù)。在正常情況下,程序需要在看門狗計數(shù)器溢出(達(dá)到設(shè)定的時間限制)之前對其進(jìn)行復(fù)位操作(喂狗),這樣計數(shù)器就會重新開始計數(shù),避免產(chǎn)生復(fù)位信號。如果程序因為故障無法在規(guī)定時間內(nèi)喂狗,計數(shù)器溢出就會觸發(fā)復(fù)位。

以TI TPS3851為例,它是一個帶有集成看門狗計時器的監(jiān)控器,這使得它既能監(jiān)控微控制器的供電,又能以外部方式監(jiān)控來自微控制器的數(shù)字脈沖。一種實現(xiàn)方式是通過微控制器的數(shù)字信號輸出(GPIO)接入到外部看門狗計時器的看門狗輸入(WDI),如下圖所示:

圖片

Source: TI

微控制器定期向看門狗計時器發(fā)送脈沖,以表明系統(tǒng)軟件運(yùn)行正常。如果看門狗計時器在規(guī)定的時間范圍內(nèi)(稱為看門狗超時)未接收到此脈沖,看門狗計時器就會斷言一個復(fù)位輸出。該復(fù)位輸出可用于通知微控制器已出現(xiàn)卡頓或凍結(jié),或用于復(fù)位微控制器本身。

下圖描述了在看門狗超時內(nèi)接收到的脈沖和在看門狗超時過后接收到的脈沖的兩種情況:

圖片

Source: TI

02、什么是硬件看門狗與軟件看門狗?

看門狗通常分為硬件看門狗和軟件看門狗,下面介紹下它們的主要類型及其工作原理。

2.1 硬件看門狗 

常見的硬件看門狗有三種:獨立看門狗、窗口看門狗和問答型看門狗。

1) 獨立看門狗

獨立看門狗通常使用一個獨立的定時器,比如STM32的獨立看門狗,其時鐘源為內(nèi)部的獨立40kHz的RC振蕩器,計數(shù)器位寬為12位。當(dāng)正常運(yùn)行時,主控制器需在計數(shù)器減到0之前通過喂狗操作重置計數(shù)器;若未及時喂狗,計數(shù)器計數(shù)到末尾則會產(chǎn)生復(fù)位信號,使系統(tǒng)復(fù)位。

獨立看門狗獨立于CPU之外,有自己的時鐘源和計數(shù)器,可在系統(tǒng)低功耗模式下運(yùn)行,硬件成本低,軟件配置簡單,可靠性高,適用于對硬件可靠性要求不是特別嚴(yán)格的場合。

2)窗口看門狗

窗口看門狗除了有遞減計數(shù)器外,還有上下窗口值的設(shè)定,喂狗操作必須在設(shè)定的窗口時間內(nèi)進(jìn)行,即要求喂狗的時間點必須落在窗口期內(nèi),否則就會觸發(fā)復(fù)位信號。

我們可以通過下圖來做了解:

圖片

Source: https://www.allaboutcircuits.com/technical-articles/watchdog-timers

  • 從A開始,啟動后不久,軟件使用計數(shù)器的上限初始化看門狗并啟用計數(shù)。

  • 在B 和 C ,軟件在計數(shù)器達(dá)到上限之后成功為計數(shù)器提供服務(wù),喂狗后,計數(shù)器重置為 0 并再次開始計數(shù)。

  • 當(dāng)達(dá)到D ,軟件不為計數(shù)器提供服務(wù),并且計數(shù)達(dá)到上限,看門狗重置微控制器。

  • 從D 到 E,微控制器啟動并初始化并啟用看門狗。

  • 從E開始,又開始計數(shù),到F喂狗又重新開始計數(shù)。

  • 當(dāng)?shù)紾,程序在計數(shù)達(dá)到下限之前為計數(shù)器提供服務(wù),到G就喂狗,被認(rèn)為計數(shù)未達(dá)到下限,看門狗重置微控制器。

再比如英飛凌低壓差穩(wěn)壓器TLE7273-2中的窗口看門狗,其每個看門狗窗口由一個打開的窗口和一個關(guān)閉的窗口組成,只有在打開的窗口期內(nèi)接收服務(wù)才有效,否則報錯。

總的來說,窗口看門狗對喂狗時間和系統(tǒng)運(yùn)行邏輯有更嚴(yán)格的限制,能更精確地檢測出系統(tǒng)異常,適用于時序要求嚴(yán)格的應(yīng)用場景,比如工業(yè)控制等領(lǐng)域。

3)問答型看門狗

問答型看門狗要求微控制器按照要求執(zhí)行一系列固定的對令牌值的算術(shù)運(yùn)算,并將生成的令牌值返回給看門狗設(shè)備,設(shè)備驗證微控制器是否在指定時間窗口內(nèi)返回正確計算的響應(yīng),若不符合要求則視為異常事件,當(dāng)異常事件計數(shù)達(dá)到預(yù)先定義的限制時,觸發(fā)失敗。

問答型看門狗必須每半個看門狗周期維護(hù)一次,這段時間由 WD_TIMER 和 WD_PRE 寄存器位配置的窗口時間定義。看門狗周期分為兩個響應(yīng)窗口,每個窗口占看門狗周期時間的 一半。在第一個窗口期間,控制器 1 讀取問題并發(fā)送前三個答案。然后控制器等待在第二個窗口中發(fā)送第四個也是最后一個答案,在第二個窗口結(jié)束時,一個新的看門狗周期開始,該過程重復(fù)進(jìn)行,如下所示:

圖片

Source:


https://www.ti.com/lit/ug/slla546/slla546.pdf?ts=1747578322629&ref_url

問答型看門狗通過這種方式不僅監(jiān)控微控制器是否在規(guī)定時間內(nèi)響應(yīng),還對響應(yīng)內(nèi)容的正確性進(jìn)行驗證,進(jìn)一步提高了系統(tǒng)可靠性,但同時也增加了控制軟件的復(fù)雜度和硬件成本,常用于對功能安全等級要求較高的汽車系統(tǒng),如驅(qū)動系統(tǒng)和制動系統(tǒng)等。

2.2軟件看門狗

軟件看門狗使用處理器的內(nèi)部定時器來模擬實現(xiàn)定時器功能。在系統(tǒng)中,通過軟件編程設(shè)定定時時間,在系統(tǒng)正常運(yùn)行時,應(yīng)用程序需在定時時間到達(dá)前進(jìn)行喂狗操作,若未及時喂狗則觸發(fā)相應(yīng)的復(fù)位或處理機(jī)制。

比如采用外部看門狗監(jiān)測單個CPU檢測線程是否正常調(diào)度,這里假設(shè)軟狗觸發(fā)的時間為20s,那么一般軟件看門狗的正常流程如下圖示意:

圖片

Source: 看門狗機(jī)制解析-CSDN博客

總的來說,軟件看門狗無需額外的硬件支持,降低了硬件成本,簡化了硬件電路設(shè)計,但可靠性相對較差,因為一旦系統(tǒng)內(nèi)部定時器自身發(fā)生故障或CPU完全崩潰,軟件看門狗可能無法正常工作。

03、什么內(nèi)部看門狗與外部看門狗?

在汽車控制器應(yīng)用工程中,經(jīng)常采用內(nèi)部看門狗和外部看門狗共同執(zhí)行的方案,通常外部看門狗置于電源管理芯片的內(nèi)部,而內(nèi)部看門狗置于微控制器中,如下示意:

圖片

Source: https://blog.csdn.net/usstmiracle/article/details/130950912

3.1 內(nèi)部看門狗

內(nèi)部看門狗是指集成在微控制器或SoC內(nèi)部的硬件看門狗模塊,其工作原理與獨立看門狗類似,一般是基于內(nèi)部的定時器和相關(guān)邏輯電路。在系統(tǒng)運(yùn)行過程中,需要由軟件進(jìn)行喂狗操作,若未及時操作則觸發(fā)復(fù)位。

內(nèi)部看門狗屬于硬件看門狗的一種,利用處理器內(nèi)部資源實現(xiàn),與其他內(nèi)部模塊協(xié)同工作更緊密,但若微控制器器內(nèi)部出現(xiàn)嚴(yán)重故障,可能會導(dǎo)致內(nèi)部看門狗失效。

3.2 外部看門狗

外部看門狗是一個獨立于微控制器器的外部硬件設(shè)備,通過GPIO、I2C等接口形式與微控制器相連。外部看門狗通常有獨立的電源和時鐘,微控制器器需要在規(guī)定的時間內(nèi)通過接口向外部看門狗發(fā)送喂狗信號,否則外部看門狗將認(rèn)為系統(tǒng)出現(xiàn)故障,從而觸發(fā)復(fù)位信號,使整個系統(tǒng)重啟。

外部看門狗完全獨立于主系統(tǒng),不受主處理器和內(nèi)部硬件的影響,可靠性極高,能夠監(jiān)控整個硬件平臺,適用于對可靠性要求極高的場合,如服務(wù)器、工業(yè)設(shè)備等。

#04 小結(jié)

以上我們就介紹各類看門狗的基本概念與原理,從它們的邏輯關(guān)系來說,可以做如下小結(jié):

首先,我們可以從硬件依賴程度來做劃分,即:

1)硬件看門狗 :獨立于處理器或系統(tǒng)的主要處理單元之外,擁有自己的時鐘源、計數(shù)器等硬件資源,其工作原理基于硬件電路和定時器,通過外部硬件的獨立運(yùn)行來實現(xiàn)系統(tǒng)監(jiān)控,可靠性高,不會因處理器內(nèi)部故障而完全失效。比如獨立看門狗、窗口看門狗、問答型看門狗。

2)軟件看門狗 :完全依賴處理器的內(nèi)部資源和軟件編程來實現(xiàn)定時和監(jiān)控功能,沒有獨立的硬件支持,其工作原理依賴于處理器內(nèi)部的定時器或其他軟件機(jī)制。在系統(tǒng)正常運(yùn)行時通過軟件邏輯進(jìn)行喂狗操作,若系統(tǒng)出現(xiàn)嚴(yán)重故障,如處理器內(nèi)部時鐘故障或軟件完全崩潰,則可能無法正常工作。

然后我們還可以從看門狗在系統(tǒng)中的位置來做劃分,即:

1)外部看門狗 :作為一個獨立的硬件設(shè)備存在于系統(tǒng)外部,與微控制器通過接口相連。它獨立于主系統(tǒng),有自己的電源和時鐘,可以監(jiān)控整個硬件平臺的運(yùn)行狀態(tài),不受主處理器內(nèi)部故障的影響,具有最高的可靠性,適用于對可靠性要求極高的場合。

2)內(nèi)部看門狗 :集成在微控制器器或 SoC 內(nèi)部,作為處理器內(nèi)部的一個模塊,它與微控制器的其他內(nèi)部模塊緊密協(xié)作,利用微控制器內(nèi)部的資源實現(xiàn)定時和監(jiān)控功能。內(nèi)部看門狗的優(yōu)點是與系統(tǒng)內(nèi)部架構(gòu)高度集成,能夠更直接地與內(nèi)部模塊進(jìn)行交互,但若處理器內(nèi)部出現(xiàn)嚴(yán)重故障,可能會導(dǎo)致內(nèi)部看門狗失效。

總的來說,這些分類之間并不是完全獨立的,而是相互關(guān)聯(lián)、相互補(bǔ)充的。比如硬件看門狗中的獨立看門狗可以是外部看門狗或內(nèi)部看門狗,具體取決于其在系統(tǒng)中的位置。


分享到:
 
反對 0 舉報 0 收藏 0 評論 0
滬ICP備11026917號-25