使用修改的監視計時器的安全系統的質問和響應的制作方法
【專利摘要】本公開內容的一些實施例涉及具有增強功能的監視計時器,所述增強功能使監視計時器能夠在一個任務接一個任務的基礎上監控微處理器的處理流程,其能夠使用簡單的輸出信號確定監視計時器是否發生故障。監視計時器具有狀態機,所述狀態機在監視周期上從初始值開始增加狀態變量。從微處理器接收的確定性的服務請求控制監視計時器的操作。所述確定性的服務請求具有待執行的監控操作的指示符、密碼以及估計的狀態變量。比較元件基于所述接收的密碼與預期的密碼的比較以及所述接收的估計的狀態變量與實際的狀態變量的比較來確定所述微處理器是否在適當地工作。
【專利說明】使用修改的監視計時器的安全系統的質問和響應
【背景技術】
[0001]現代的車輛包括用于諸如氣囊、動力方向盤、制動、引擎管理、變速箱控制和許多其它之類的系統的傳感器、電子控制單元和致動器的巨大陣列。通常,這些電子組件自身包含有具有微控制器的嵌入式系統,所述微控制器配置為通過有選擇地處理從傳感器接收的數據來控制致動器的操作。對于工作在安全關鍵系統和其它系統中的微控制器,這樣的微控制器必須能夠處理起因于硬件和軟件異常的穩定性問題。
[0002]因為嵌入式系統通常不讓用戶出面來重置微控制器,所以經常使用監視計時器來保證微控制器在適當地工作。監視計時器包含連續地增加它們的值的計數器。當正確地工作時,微控制器周期性地重置計數器以阻止其到達違反閾值的值。然而,當發生故障時(例如,在代碼崩潰的情況下),微控制器不重置計數器,并且它的值最終到達閾值。在到達閾值時,監視計時器將重置微控制器以更正錯誤。
【專利附圖】
【附圖說明】
[0003]圖1A是常規的監視計時器的框圖。
[0004]圖1B是圖示常規的監視計時器的操作的時序圖。
[0005]圖2A是配置為執行在計數器刷新的中間時間校驗的所公開的監視計時器的一些實施例的框圖。
[0006]圖2B是圖示圖2A的所公開的監視計時器的示例性操作的時序圖。
[0007]圖3A-3B圖示了配置為執行自動密碼排序的所公開的監視計時器的一些實施例。
[0008]圖4A-4B圖示了具有監視管腳的所公開的監視計時器的一些實施例,所述監視管腳配置為向外部監控設備提供簡單的輸出信號以保證監視計時器的適當的操作。
[0009]圖5A-5B圖示了包括多個監視計時器的微處理器的一些實施例,所述多個監視計時器由外部監控設備監控以保證監視計時器的適當的操作。
[0010]圖6A-6B圖示了包括監視計時器的微控制器的一些實施例,所述監視計時器配置為在一個任務接一個任務的基礎上監控微處理器的操作。
[0011]圖7是操作監視計時器的示例性方法的流程圖。
【具體實施方式】
[0012]現在參考附圖描述所要求的主題,其中,貫穿全文相似的附圖標記用來指代相似的元件。在以下的描述中,為了解釋的目的,提出許多具體的細節,以便提供對所要求的主題的透徹的理解。然而,可以明白的是,可以在沒有這些具體的細節的情況下實踐所要求的主題。
[0013]圖1A是常規的嵌入式系統100的框圖。嵌入式系統100包括具有監視計時器104a和104b以及微處理器106a和106b的微控制器102。每個監視計時器104配置為監控對應的微處理器106的操作以保證微處理器106在正確地工作。
[0014]圖1B圖示了流程圖112,所述流程圖112圖示了監視計時器104的操作以當它到達閾值Vth時重置微處理器106。將理解的是,雖然時序圖112將監視計時器104圖示為增加它的值,但是監視計時器可以替換地減少它的值以在零的閾值Vth處強制重置。
[0015]在第一監視周期WP1期間,監視計時器104內的計數器108在時間tQ處從初始值Cinit開始增加它的值。計數器108繼續增加它的值直至在時間處用來自微處理器106的刷新序列而被修正(serviced)。在用來自微處理器106的刷新序列而被修正時,從初始值Cinit開始重啟計數器108以避免重置微處理器106。
[0016]只要監視計時器104周期性地被修正,它就連續地增加它的值。然而,如果微處理器106遭遇難題(例如,代碼崩潰),則它將不能夠修正監視計時器104,并且監視計時器104當它到達閾值Vth時將重置微處理器106。例如,在第二監視周期WP2期間,計數器108在時間h處從初始值Cinit開始增加它的值。在時間t2處,微處理器106中出現阻止它刷新監視計時器104的錯誤。因為微處理器106不能夠刷新監視計時器104,所以計數器108繼續增加它的值,直至它違反閾值VTH。在違反閾值Vth時,監視計時器104向微處理器106發送重置信號,所述重置信號重置微處理器106。
[0017]因為監視計時器104和微處理器106包含在微控制器102內,所以監視計時器104不能夠檢測影響微控制器102內的組件的的故障的共同原因。所以,嵌入式系統100進一步包括位于微控制器102之外的外部監視計時器110。外部監視計時器110操作質問和響應功能,其中,它保證當它接收對已由它發給所述監視計時器104的質問的合適響應時監視計時器104在適當地工作。
[0018]對于具有單個微處理器的微控制器系統,外部監視計時器能夠適當地監控微控制器102。然而,許多現代的計算機系統利用具有多個微處理器(即,CPU核心)的多核心架構。具有多個微處理器的計算機系統使用多個監視計時器以適當地監控所述系統。這樣的系統是昂貴的,并且可能使用大量的硅面積以及開發成本。
[0019]由此,本公開內容涉及具有增強功能的監視計時器,所述增強功能使監視計時器能夠在一個任務接一個任務的基礎上監控一個或多個微處理器的操作。在一些實施例中,監視計時器包括狀態機,所述狀態機配置為在監視周期上從初始值開始確定性地修改狀態變量。從微處理器接收的確定性的服務請求控制監視計時器的操作。確定性的服務請求包括待執行的監控操作的指示符、密碼以及狀態變量的估計。比較元件配置為比較所述接收的密碼與預期的密碼,并且比較所述接收的估計的狀態變量與實際的狀態變量。通過在時間校驗的確定性的服務請求中包括估計的狀態變量,監視計時器可以在一個任務接一個任務的基礎上監控微處理器的處理流程,其使得簡單的輸出信號能被用于確定監視計時器是否發生故障。
[0020]圖2A圖示了包括監視計時器202的所公開的微控制器200的一些實施例,所述監視計時器202配置為通過執行在刷新狀態機206之間的中間時間校驗來監控微處理器204的操作。雖然關于嵌入式微控制器進行了描述,但是所公開的監視計時器不限于此。恰恰相反,所公開的監視計時器可以應用于任何高整合性系統(例如,銀行業(banking)、安保等)。
[0021]微控制器200包括與微處理器204通信的監視計時器202。如本文中提供的,微處理器204在一些實施例中可以包括多核心處理器的CPU核心。監視計時器202配置為使用質問和響應功能來監控微處理器204的操作。
[0022]監視計時器202包括狀態機206,所述狀態機206配置為在監視周期上從初始值開始確定性地修改狀態變量。例如,在一些實施例中,狀態機206包括計數器,所述計數器配置為在監視周期上從初始值Cinit開始周期性地增加計數器的值。在其它實施例中,狀態機206包括計數器,所述計數器配置為在監視周期上從初始值Cinit開始周期性地減少計數器的值。
[0023]微處理器204配置為借助確定性的服務請求來控制監視計時器202的操作,所述確定性的服務請求包括待執行的監控操作的指示符、密碼以及估計的狀態變量。在一些實施例中,監視計時器202可以包括寄存器208,所述寄存器208配置為基于確定性的服務請求控制監視計時器202的操作,所述確定性的服務請求包括寄存器寫入,所述寄存器寫入具有待執行的監控操作的指示符、密碼以及估計的計數器的值。在一些實施例中,寄存器208可以可選地包括配置為控制監視計時器202的操作的密碼保護的寄存器。在其它實施例中,確定性的服務請求可以包括指令和相反的工作模式。
[0024]監視計時器202配置為借助多服務機制來監控微處理器204的操作,所述多服務機制包括時間校驗和周期性的刷新操作。在監視周期內的任何時間處執行時間校驗,并且確定微處理器204是否在正確地工作,而沒有導致狀態機206被修改或被重啟。在監視周期的結尾,刷新操作以初始值重啟狀態變量(例如,計數器的值)以阻止重置微處理器204。
[0025]在一些實施例中,監視計時器202配置為通過向微處理器204發布質問來啟動包括中間時間校驗的監控操作,或者啟動刷新操作。響應所述質問,微處理器204發布包括提供給監視計時器202的確定性的服務請求的響應。在一些實施例中,確定性的服務請求識別待執行的監控操作,并且向監視計時器202提供密碼和估計的狀態變量(例如,計數器的當前值的估計)。在一些實施例中,微處理器204內的操作系統使用與微控制器200共同的系統時鐘以確定估計的計數器的值。比較元件210配置為比較接收的密碼與預期的密碼并比較接收的估計的狀態變量與實際的狀態變量,并且基于所述比較確定微處理器204是否在適當地工作。
[0026]例如,為了執行刷新操作,微處理器204可以向寄存器208發送確定性的服務請求,所述寄存器208包括具有密碼、估計的計數器的值和包括刷新命令的指示符的寄存器寫入。如果比較元件210確定密碼和計數器的值是可接受的,則沒有錯誤出現在微處理器204中,并且重啟狀態機206 (即,重置至初始值(;_)。如果比較元件210確定密碼或計數器的值是不可接受的,則錯誤出現在微處理器204中,并且監視計時器202工作以重置微處理器204。
[0027]或者,為了執行時間校驗操作,確定性的服務請求可以包括寄存器寫入,所述寄存器寫入包含密碼、計數器的值以及包括時間校驗命令的指示符。如果比較元件210確定密碼和計數器的值是可接受的,則沒有錯誤出現在微處理器204中,并且狀態機206繼續操作,而不改變(即,計數器繼續以確定性的方式修改它的值)。然而,如果比較元件210確定預期的密碼或估計的計數器的值是不正確的,則錯誤出現在系統中,并且產生警告信號以表示錯誤已經發生在微處理器中(即,已經沒有如預期的那樣執行任務)。在一些實施例中,一旦產生警告信號,就阻止進一步的確定性的服務請求,直至微處理器204已經被重置。
[0028]圖2B是圖示了具有狀態機206的監視計時器202的示例性操作的時序圖212,所述狀態機206包括配置為增加包括計數器的值的狀態變量的計數器。
[0029]在第一監視周期WP1期間,計數器在時間h處從初始值Cinit開始增加它的值。在第一時間ti處,執行第一確定性的服務請求SR1以進行時間校驗。在第一確定性的服務請求SR1期間,監視計時器202接收來自微處理器的包括時間校驗命令的指示符、密碼以及估計的計數器的值。因為密碼和估計的計數器的值是可接受的,所以監視計時器202不采取行動,并且計數器繼續增加它的值。
[0030]在第二時間t2處,執行第二確定性的服務請求SR2以進行時間校驗。在第二確定性的服務請求SR2期間,監視計時器202接收來自微處理器的包括時間校驗命令的指示符、密碼以及估計的計數器的值。因為密碼和估計的計數器的值是可接受的,所以監視計時器202不采取行動,并且計數器繼續增加它的值。
[0031]在第三時間t3處,執行第三確定性的服務請求SR3以進行刷新操作。在第三確定性的服務請求SR3期間,監視計時器202接收來自微處理器204的包括刷新命令的指示符、密碼以及估計的計數器的值。因為密碼和估計的計數器的值是可接受的,所以監視計時器202開始短的超時計數,在此期間,監視計時器202可以接收第四確定性的服務請求SR4以調整監視計時器202的一個或多個參數(例如,以便更新密碼、改變刷新周期等)。在超時計數的結尾,監視計時器202在時間t4處從初始值Cinit開始重啟計數器。通過重啟計數器,計數器的值不到達閾值VTH。
[0032]在第五時間丨5處,在第二監視周期WP2期間,在微處理器204中發生導致微處理器204故障的錯誤。在第六時間丨6處,執行第五確定性的服務請求SR5以進行時間校驗。在第五確定性的服務請求SR5期間,監視計時器202接收來自微處理器204的包括時間校驗命令的指示符以及錯誤的密碼或估計的計數器的值。因為密碼或估計的計數器的值是不可接受的,所以監視計時器202產生表示微處理器204已經發生故障的警告信號。
[0033]圖3A圖示了具有監視計時器302的微控制器300的一些實施例,所述監視計時器302配置為對成功的監控操作執行自動密碼排序。
[0034]雖然,下文關于包括計數器的監視計時器和微處理器對圖3A-6B進行了描述,但是將理解的是,所公開的實施例不限于這樣的系統,所述計數器配置為增加它的計數器的值,所述微處理器配置為向控制計數器的操作的寄存器提供寄存器寫入。例如,所公開的實施例可以應用于向上計數、向下計數或者具有狀態機的監視計時器,并且應用于包括寄存器寫入、指令、反向模式等的確定性的服務請求。
[0035]參考圖3,微控制器300包括與微處理器304通信的監視計時器302。監視計時器302配置為借助監控操作來監控微處理器304的操作,所述監控操作包括時間校驗和/或刷新。在完成成功的時間校驗或刷新操作時,監視計時器302配置為向微處理器304提供確認信號,所述確認信號表示已經完成了成功的監控操作。
[0036]微處理器304包括密碼再生元件310,所述密碼再生元件310配置為在每個成功的監控操作之后自動地重新產生提供給監視計時器302的密碼。重新產生密碼保證用于每個監控操作的密碼是不同的,由此保證通過微處理器304來執行復雜的計算以確定下一個密碼,并且由此阻止寄存器308的意外開鎖。
[0037]在一些實施例中,密碼包括從可變的種子值中產生的復雜的密碼。例如,可以對密碼進行編碼,使得它基于在成功的時間校驗或刷新操作處從種子產生器312 (例如,隨機數產生器)接收的種子值。在這樣的實施例中,密碼再生元件310配置為操縱種子以將其轉變為用在下一次監控操作(例如,時間校驗或刷新操作)中的密碼。在一些實施例中,微處理器304配置為在執行刷新操作之后重新寫入種子以迫使種子值回到初始值。在這樣的實施例中,微處理器304在每個監視周期期間可以重復相同的模式序列。
[0038]例如,圖3B圖示了監視計時器302的示例性操作的時序圖314。
[0039]在時間h處,計數器306從初始值Cinit開始計數。在第一時間h處,執行第一確定性的服務請求SR1以進行時間校驗。在第一確定性的服務請求SR1期間,監視計時器302接收來自微處理器304的時間校驗命令、第一密碼pWl以及估計的第一計數器的值cVl。因為第一密碼Pw1和估計的第一計數器的值Cv1是可接受的,監視計時器302將確認信號返回至微處理器304,表明執行了成功的時間校驗。響應所述確認信號,密碼再生元件310產生第二密碼pw2。
[0040]在第二時間t2處,執行第二確定性的服務請求SR2以進行時間校驗。在時間校驗期間,監視計時器302接收來自微處理器304的時間校驗命令、第二密碼Pw2以及第二估計的計數器的值cv2。因為第二密碼Pw2和第二估計的計數器的值CV2是可接受的,監視計時器302將確認信號返回至微處理器304,表明執行了成功的時間校驗。響應確認信號,密碼再生元件310產生第三密碼pw3。
[0041]在第三時間t3處,執行第三確定性的服務請求SR3以進行刷新操作。在第三確定性的服務請求SR3期間,監視計時器202接收來自微處理器304的刷新命令、第三密碼Pw3以及估計的第三計數器的值cv3。因為第三密碼Pw2和第三估計的計數器的值CV3是可接受的,監視計時器302開始短的超時計數,在所述超時計數的結尾,所述計數器306返回至初
值 Cinit ο
[0042]在第四時間t4處,在微處理器304的操作中發生錯誤,其導致微處理器304產生錯誤的密碼或計數器的值。
[0043]在第五時間t5處,執行第四確定性的服務請求SR4以進行時間校驗。在時間校驗期間,監視計時器302接收來自微處理器304的時間校驗命令、第四密碼Pw4以及第四估計的計數器的值cv4。由于錯誤,第四密碼PW4或估計的計數器的值CV4是錯誤的,導致監視計時器302發布警告信號。因為時間校驗是不成功的,所以不重新產生密碼。
[0044]在第六時間t6處,執行第五確定性的服務請求SR5以進行刷新操作。在刷新操作期間,監視計時器202接收來自微處理器的刷新命令、第四密碼Pw4以及第五估計的計數器的值cv4。因為在時間t5處沒有重新產生密碼,所以第四密碼Pw4不是預期的密碼,并且刷新是不成功的。所以,在微處理器304的處理流程中已經發生故障,并且重置微處理器304。
[0045]圖4A圖示了具有監視計時器402的微控制器400的一些實施例,所述監視計時器402具有配置為向外部監控設備410提供表示微控制器400中故障的共同原因的輸出信號的監視管腳408。
[0046]監視計時器402配置為使用質問和響應功能來監控微處理器404的操作。基于微處理器404對監視計時器402的響應,監視計時器402配置為控制表示微控制器中的錯誤的輸出信號的值。在監視管腳408處提供輸出信號,所述監視管腳408與配置為監控微控制器400的操作的外部監控設備410通信。
[0047]在一些實施例中,監視計時器402配置為根據是否已經執行了成功的監控操作(例如,時間校驗)來切換在監視管腳408處的輸出信號的值(例如,從高值至低值)。例如,在一些實施例中,當執行刷新操作時,將在監視管腳408處的輸出信號設定為高值。在成功的時間校驗時,將在監視管腳408處的輸出信號切換至低值,向外部監控設備410表示微處理器404在正確地工作。在不成功的時間校驗時,不將在監視管腳408處的輸出信號切換至低值,向外部監控設備410表示微處理器404不在正確地工作。
[0048]在一些實施例中,外部監控設備410包括配置為監控監視管腳408上的轉換的簡單窗口監視計時器。例如,在一些實施例中,窗口監視器配置為尋找在監視周期內的監視管腳408上的特定數目的轉換。如果窗口監視計時器沒有看到特定數目的轉換,則它確定在微處理器中沒有錯誤(例如,如果外部設備410沒有看到轉換或者看到太多的轉換,則它確定存在錯誤)。
[0049]圖4B圖示了監視計時器402的示例性操作的時序圖412。
[0050]在初始時間h處,將在監視管腳408處的值設定為高值。基于在時間h處成功地執行第一時間校驗TC1,在監視管腳408處的值從高值降低至低值。切換在監視管腳408處的值向外部監控設備410表示微控制器400在適當地工作(即,在微控制器400內沒有故障的共同原因)。在監視管腳408處的值保持為低值,直至在時間t2處執行刷新操作。刷新操作以初始值Cinit重啟計時器的值,并且將在監視管腳408處的值重置為高值。
[0051]在時間丨3處,在微處理器404中發生錯誤。該錯誤導致在時間丨4處,微處理器404在第二時間校驗TC2期間向寄存器406提供確定性的服務請求,所述寄存器406具有錯誤的密碼或計時器的值。因為第二時間校驗TC2是不成功的,所以監視管腳408的值保持為高,向外部監控設備410表明在微控制器400的操作中已經發生錯誤。
[0052]所以,與常規的監視計時器形成對比,外部監控設備410通過監控在監視管腳處的值來確定內部監視是否在適當地工作,所述常規的監視計時器包括利用質問和響應功能以監控微控制器的操作的外部監視。通過監控在監視管腳處的值,外部監控設備410具有可以用來保證微控制器400在適當地工作的簡化的功能。
[0053]圖5A圖不了包括多核心系統的微控制器500的一些實施例,所述多核心系統具有多個微處理器504a和504b (B卩,CPU核心)。微控制器500包括具有監視管腳508的系統監視計時器506,所述監視管腳508提供用來確定微控制器500內的任何元件是否發生故障的輸出信號。
[0054]特別地,微控制器500包括分別與多個內部監視計時器502a和502b通信的多個微處理器504a和504b (B卩,CPU核心)。通過執行質問和響應功能,第一監視計時器502a配置為監控第一微處理器504a (核心)的操作,并且第二監視計時器502b配置為監控第二微處理器504b (核心)的操作。
[0055]系統監視計時器506配置為通過執行質問和響應功能來監控每個內部監視計時器502的操作。系統監視計時器506包括監視管腳508,所述監視管腳508配置為提供簡單的輸出信號,所述輸出信號表不微控制器500內的任何兀件中的故障(即,系統監視計時器502將內部監視計時器502的輸出組合起來以產生在監視管腳508處的值,如果任何內部監視計時器502發生故障,則所述值將改變)。外部監控設備510 (例如,窗口監視器)配置為監控監視管腳508,并且基于輸出信號來確定微控制器500是否在適當地工作。
[0056]圖5B圖示了數據流程圖512,所述數據流程圖512示出了微控制器500內的監視計時器(502a、502b和506)的操作。
[0057]在第一時間處,系統監視計時器506向第一和第二監視計時器502a和502b發布質問。在第二和第三時間t2和t3處,第一和第二監視計時器502a和502b分別向系統監視計時器506提供包括確定性的服務請求SR1和SR2的響應,以表示第一和第二監視計時器502a和502b在適當地工作。
[0058]在第四時間t4處,系統監視計時器506向第一和第二監視計時器502a和502b發布質問。在第五時間t5處,第一監視計時器502a發布包括確定性的服務請求SR3的響應,所述響應表示第一監視計時器502a在適當地工作。然而,第二監視計時器502b沒有發布響應。由于第二監視計時器502b未能發布響應,所以系統監視計時器506產生表示微控制器500不在適當地工作的警告信號。一旦產生警告信號,就阻止進一步的確定性的服務請求,直至已經重置微處理器504a和504b。
[0059]圖6A-6B圖示了包括監視計時器的微控制器的一些實施例,所述監視計時器配置為在一個任務接一個任務的基礎上監控微處理器的操作。監視計時器配置為在一個任務接一個任務的基礎上執行質問和響應功能,其保證了在分配的時間周期內以正確的序列執行計劃的任務。
[0060]圖6A圖示了包括監視計時器602的微控制器600的框圖,所述監視計時器602配置為在一個任務接一個任務的基礎上監控微處理器604的操作。
[0061]在任務的執行時,監視計時器602配置為執行微處理器604的監控操作(例如,時間校驗或刷新操作)。監控操作包括確定性的服務請求SR,所述確定性的服務請求SR識別待執行的監控操作,并向寄存器608提供密碼和估計的計數器的值。在一些實施例中,確定性的服務請求進一步表示已經執行的或待執行的關聯的任務。在一些實施例中,可以將任務編碼為密碼。在其它實施例中,認為可作為確定性的服務請求中的單獨的組件被提供。
[0062]通過基于任務監控微處理器604的操作,監視計時器602將以比常規的監視計時器的刷新操作更高的頻率執行監控操作。例如,通常,監視計時器的刷新操作發生在30-100mS的監視周期中。然而,在這樣的監視周期中,微處理器604可以運行數百個任務。通過執行在刷新操作之間的時間校驗,監視計時器602保證任務在適當地運行(B卩,其監控微處理器的流程控制)。
[0063]在一些實施例中,微處理器604包括計劃表612,所述計劃表612包括待執行的任務的計劃以及任務待執行的關聯時間。例如,在第一時間周期期間(例如,在OmS處開始),計劃執行任務A、B、C和/或D,而在第二時間期間(例如,在5mS處開始),計劃執行任務E、F、G和/或H。在一些實施例中,微處理器604包括與計劃表612和種子產生器616通信的密碼再生元件614。在這樣的實施例中,密碼再生元件614配置為根據種子和存儲在計劃表612中的數據產生密碼。對于非常快或獨立的任務序列,初始的種子可以在每個任務的開始和結尾被操縱,并用作時間校驗。種子的操縱是確定性的,所以可以提前針對任何給定的流程計算所述種子的操縱。在一些實施例中,可以將執行任務的實際時間編碼為密碼。
[0064]監視計時器602包括配置為存儲執行預算610的存儲器元件,所述執行預算610包括分配給待執行的任務的時間。例如,在執行預算610中,分配給待執行的任務A的時間是2ms,分配給待執行的任務B的是1ms,等等。在一些實施例中,執行預算610用來確定容差值,所述容差值說明了實際的計數器的值與估計的計數器的值之間由于軟件執行時間起伏而導致的差異。當加入預期的計數器的值時,容差值設定執行任務的最終期限。在一些實施例中,微處理器604在處理期間可以重新給任務定計劃,從而在任務周期期間執行多個任務。在這樣的實施例中,微處理器604的操作系統可以基于怎樣重新給任務定計劃而調整最終期限和/或容差。
[0065]微處理器604包括密碼再生元件614,所述密碼再生元件614配置為在每個成功的密碼檢查之后自動地重新產生提供給監視計時器602的密碼。因為執行關于任務的時間校驗,監視計時器602能夠為發生在監視周期內的多個任務進行服務。例如,通過在任務的開始或結束處執行時間校驗,監視計時器602能夠精確地監控正在由微處理器604執行的任務,并且能夠確定是否已經發生錯誤和/或在哪一個任務期間發生錯誤。例如,如果跳過任何時間校驗,則密碼對于最終操縱密碼是不正確的,并且微控制器將重置。
[0066]此外,在成功地監控操作之后自動地重新產生密碼允許監視計時器602監控程序流程。這是因為在給定的監視周期內任務的每個模式是不同的。所以,通過檢查響應序列是否正確,可以檢查軟件任務序列的合理性(例如,如果接收到不正確的密碼,則監視計時器602能夠檢測錯的序列),或者軟件任務運行時間的合理性(例如,如果接收到不正確的估計的計數器的值,則監視計時器602能夠檢測運行時間錯誤)。例如,在一些實施例中,監視計時器602能夠精確地監控密碼檢查以正確的序列被執行,以保證實際上以正確的序列/正確的時間開始計劃的任務,和/或保證在預期的執行預算內完成計劃的任務。
[0067]圖6B圖不了時序圖618,所述時序圖618不出了在一個任務接一個任務的基礎上監控微處理器604的操作的監視計時器602的操作。
[0068]在時間tQ處,監視計時器602向微處理器604發布質問。在任務A的結尾,微處理器604配置為通過向監視計時器602返回第一確定性的服務請求來執行第一時間校驗TC115第一確定性的服務請求向監視計時器602提供密碼和估計的計數器的值。如果估計的計數器的值在預定的容差范圍內,則監視計時器602接受估計的計數器的值。在一些實施例中,使估計的計數器的值倒置以提供額外的復雜性。
[0069]在時間t2處開始任務B。在任務B的執行期間,微處理器為待操作的任務C重新定計劃(例如,當運行任務B時,子任務C運行以計算用在任務B中的值)。為了說明任務C的重新定計劃,監視計時器602可以基于不同任務的總和調整最終期限。例如,在一些實施例中,通過將種子和密碼傳遞通過任務來對任務的執行預算進行求和(例如,將第一種子從任務B傳遞至任務C,所述任務C在將所述種子傳遞回任務B之前加入執行預算,所述任務B加入執行預算以產生修改的種子,所述修改的種子變成下一個密碼)。
[0070]圖7是用于操作監視計時器的示例性方法700的流程圖。
[0071]將理解的是,雖然圖示并描述了以下作為一系列行動或事件的方法700,但是,這樣的行動或事件的圖示的順序不被理解為限制意義。例如,一些行動可以以不同的順序發生,和/或與除了本文中圖示和/或描述的行動或事件以外的其它行動或事件共同發生。此夕卜,可以不需要所有圖示的行動以實施本文中的公開內容的一個或多個方面或實施例。在一個或多個單獨的行動和/或階段中也可以執行本文中描繪的一個或多個行動。
[0072]在702處,提供了包括監視計時器和微處理器的微控制器。監視計時器配置為監控微處理器的操作。
[0073]在704處,監視計時器可操作用于增加監視計時器內狀態變量的值。在一些實施例中,狀態變量可以包括計數器的值。
[0074]在706處,將狀態變量與閾值比較以確定狀態變量是否違反閾值。如果狀態變量違反了閾值,則微處理器已經發生故障,并且在730處重置微處理器。如果狀態變量沒有違反閾值,則微處理器在運轉。連續地執行行動704和706,從而在監視周期上從初始值開始連續地確定性地修改狀態變量。
[0075]在708處,執行確定性的服務請求以進行包括時間校驗的監控操作。確定性的服務請求向監視計時器和/或監視計時器內的寄存器提供密碼、指示符和當前的狀態變量的估計(710)。所述指示符表示時間校驗待執行。如果密碼是不正確的(712)(即密碼與預期的密碼不相同)或者狀態變量不在容差值內(714),則從監視計時器中輸出警告信號(716)。如果密碼是正確的(712 )且狀態變量在容差值內(714 ),則時間校驗是成功的。
[0076]如果時間校驗是成功的,則在718處重新產生密碼。重新產生密碼使新的密碼用于后來的監控操作(例如,708或722)。如果時間校驗是成功的,則也可以在720處切換在監視管腳處的輸出信號的值。監視管腳的值表示微控制器是否在正確地工作。
[0077]在722處,執行確定性的服務請求以進行包括狀態變量刷新的監控操作。確定性的服務請求向監視計時器和/或監視計時器內的寄存器提供密碼、指示符和當前的狀態變量的估計(724)。所述指示符表示時間校驗待執行。如果密碼是不正確的(726)或者狀態變量不在容差值內(728),則在730處重置微處理器。如果密碼是正確的(726)且狀態變量在容差值內(728),則時間校驗是成功的且在732處以初始值重啟狀態變量。
[0078]將理解的是,對本領域技術人員而言,在閱讀和/或理解說明書和附圖時,等同替換和/或修改可以發生。本文中的公開內容包括所有這樣的修改和替換,并且通常不意在由此限制。例如,雖然本文中提供的附圖圖示并描述為具有特別的摻雜類型,但將理解的是,如本領域技術人員將理解的可以利用替換的摻雜類型。
[0079]此外,雖然已經僅關于數個實施方式之一公開了特別的特征和方面,但是這樣的特征或方面可以如期望的與其它實施方式的一個或多個其它特征和/或方面組合起來。此夕卜,對于本文中使用的術語“包含”、“具有”、“具備”、“帶有”和/或其變化形式的范圍,這樣的術語意在為含義上包含的一類似“包括”。“示例性”也僅僅本意為表示示例的意思,而非最好的意思。也理解的是,本文中描繪的特征、層和/或元件用相對于彼此的特別的尺寸和/或定向來圖示,其目的為了簡化且容易理解,并且實際的尺寸。
【權利要求】
1.一種監視計時器,包括: 狀態機,配置為在監視周期上確定性地修改狀態變量; 微處理器,配置為向所述監視計時器提供確定性的服務請求,以控制所述監視計時器的操作,其中,所述確定性的服務請求包括待執行的監控操作的指示符、密碼以及估計的狀態變量;以及 比較元件,配置為基于所述密碼與預期的密碼的比較以及所述估計的狀態變量與實際的狀態變量的比較來確定所述微處理器是否在適當地工作。
2.根據權利要求1所述的監視計時器,其中,所述比較元件配置為如果所述密碼等于所述預期的密碼且如果所述估計的狀態變量在所述實際的狀態變量的容差值內,則確定所述微處理器在適當地工作。
3.根據權利要求2所述的監視計時器, 其中,所述指示符包括時間校驗命令; 其中,所述監視計時器配置為在所述初始值的情況下如果所述密碼等于所述預期的密碼且如果所述估計的狀態變量在所述實際的狀態變量的所述容差值內,則不采取行動;以及 其中,所述監視計時器配置為如果所述密碼不等于所述預期的密碼或如果所述估計的狀態變量不在所述實際的狀態變量的容差值內,則產生警告信號。
4.根據權利要求3所述的監視計時器, 其中,所述指示符包括刷新命令; 其中,所述監視計時器配置為在所述初始值的情況下如果所述密碼等于所述預期的密碼且如果所述估計的狀態變量在所述實際的狀態變量的所述容差值內,則重啟所述狀態變量至所述初始值;以及 其中,所述監視計時器配置為如果所述密碼不等于所述預期的密碼或如果所述估計的狀態變量不在所述實際的狀態變量的容差值內,則產生重置信號,所述重置信號重置所述微處理器。
5.根據權利要求4所述的監視計時器,其中,所述警告信號阻止進一步的確定性的服務請求發生,直至重置所述微處理器。
6.根據權利要求3所述的監視計時器,進一步包括: 密碼再生元件,配置為如果所述密碼等于所述預期的密碼且如果所述估計的狀態變量在所述實際的狀態變量的所述容差值內,則接收來自所述監視計時器的確認信號, 其中,在接收確認信號時,所述密碼再生元件配置為產生具有與所述密碼不同的值的新的密碼。
7.根據權利要求1所述的監視計時器,進一步包括: 監視輸出管腳,配置為提供具有表示所述監視計時器是否在適當地工作的值的輸出信號。
8.一種嵌入式系統,包括: 微控制器,包括: 具有狀態機的監視計時器,所述狀態機配置為在監視周期上確定性地修改狀態變量;以及微處理器,配置為向所述監視計時器提供確定性的服務請求,其中,所述確定性的服務請求包括待執行的監控操作的指示符、密碼以及估計的狀態變量; 其中,所述監視計時器配置為基于所述密碼與預期的密碼的比較以及所述估計的狀態變量與實際的狀態變量的比較來確定所述微處理器是否在適當地工作。
9.根據權利要求8所述的嵌入式系統,進一步包括: 包含在所述微控制器內的系統監視計時器; 其中,所述系統監視計時器配置為向所述監視計時器提供質問,以接收來自所述監視計時器的響應,并且在監視管腳處產生表示所述微控制器是否在適當地工作的輸出值。
10.根據權利要求9所述的嵌入式系統,其中,所述微控制器包括多核心系統,包括: 多個微處理器;以及 多個監視計時器,其中,相應的監視計時器配置為監控所述多個微處理器之一的所述操作。
11.根據權利要求10所述的嵌入式系統, 其中,所述系統監視計時器配置為向所述多個監視計時器提供質問,以接收來自所述多個監視計時器的多個響應,并且基于所述多個響應產生所述輸出值, 其中,所述輸出值表示所述多個監視計時器中的任何一個的故障。
12.根據權利要求9所述的嵌入式系統,進一步包括: 外部監控設備,配置為監控所述`監視管腳并確定所述微控制器是否在適當地工作。
13.根據權利要求9所述的嵌入式系統,其中,所述輸出值配置為在第一值或第二值之間切換。
14.根據權利要求8所述的嵌入式系統, 其中,所述指示符包括時間校驗命令; 其中,所述監視計時器配置為在所述初始值的情況下如果所述密碼等于所述預期的密碼且如果所述估計的狀態變量在所述實際的狀態變量的容差值內,則不采取行動;以及其中,所述監視計時器配置為如果所述密碼不等于所述預期的密碼或如果所述估計的狀態變量不在所述實際的狀態變量的容差值內,則產生警告信號。
15.根據權利要求14所述的嵌入式系統,其中,微處理器配置為提供包括寄存器寫入的確定性的服務請求,所述寄存器寫入包括在由微處理器運行的任務的開始或結尾的所述時間校驗命令。
16.根據權利要求14所述的嵌入式系統, 其中,所述指示符包括刷新命令; 其中,所述監視計時器配置為在所述初始值的情況下如果所述密碼等于所述預期的密碼且如果所述估計的狀態變量在所述實際的狀態變量的所述容差值內,則重啟所述狀態變量至所述初始值;以及 其中,所述監視計時器配置為如果所述密碼不等于所述預期的密碼或如果所述估計的狀態變量不在所述實際的狀態變量的容差值內,則產生重置信號,所述重置信號重置所述微處理器。
17.根據權利要求8所述的嵌入式系統,進一步包括: 密碼再生元件,配置為如果所述密碼等于所述預期的密碼且如果所述估計的狀態變量在所述實際的狀態變量的容差值內,則接收來自所述監視計時器的確認信號, 其中,在接收確認信號時,所述密碼再生元件配置為產生具有與所述密碼不同的值的新的密碼。
18.—種方法,包括: 提供帶有監視計時器和微處理器的微控制器; 在監視周期期間從初始值開始周期性地增加所述監視計時器的狀態變量,所述監視周期從所述狀態變量具有初始值的時間開始延伸直至所述狀態變量被重啟至所述初始值;以及 在所述監視周期內的時間處執行確定性的服務請求以進行時間校驗,其中,所述確定性的服務請求包括監控操作的指示符、密碼以及估計的狀態變量。
19.根據權利要求18所述的方法, 接收包括時間校驗命令的指示符的值; 在所述初始值的情況下如果所述密碼等于預期的密碼且如果所述估計的狀態變量在實際的狀態變量的容差值內,則不采取行動;以及 如果所述密碼不等于所述預期的密碼或如果所述估計的狀態變量不在所述實際的狀態變量的所述容差值內,則產生警告信號。
20.根據權利要求 19所述的方法, 接收包括刷新命令 的指示符的值; 如果所述密碼等于所述預期的密碼且如果所述估計的狀態變量在所述實際的狀態變量的容差值內,則重啟所述狀態變量至所述初始值;以及 如果所述密碼不等于所述預期的密碼或如果所述估計的狀態變量不在所述實際的狀態變量的所述容差值內,則產生重置信號,所述重置信號重置所述微處理器。
21.根據權利要求18所述的方法,進一步包括: 如果所述密碼等于預期的密碼且如果所述估計的狀態變量在實際的狀態變量的容差值內,則產生具有與所述密碼不同的值的新的密碼。
22.根據權利要求18所述的方法,進一步包括: 如果所述密碼等于預期的密碼且如果所述估計的狀態變量在實際的狀態變量的容差值內,則切換具有輸出值的輸出信號的值,所述輸出值表示所述微控制器是否在適當地工作。
【文檔編號】G05B19/042GK103676722SQ201310417071
【公開日】2014年3月26日 申請日期:2013年9月13日 優先權日:2012年9月14日
【發明者】S.布魯韋頓, R.奈特 申請人:英飛凌科技股份有限公司