本發(fā)明涉及芯片處理技術(shù),具體是一種用于MCU芯片的看門狗定時(shí)器。
背景技術(shù):
在MCU芯片中,看門狗定時(shí)器(Watch Dog Timer)模塊在MCU芯片中是常用的一個(gè)功能模塊。它實(shí)際上是一個(gè)定時(shí)器,在用戶程序運(yùn)行正常的時(shí)候,過一段時(shí)間用戶程序就應(yīng)發(fā)一條清除看門狗定時(shí)器的指令,讓看門狗定時(shí)器重新開始計(jì)數(shù)。否則,當(dāng)看門狗定時(shí)器溢出時(shí),即認(rèn)為程序沒有工常工作,強(qiáng)制對(duì)整個(gè)系統(tǒng)復(fù)位,用戶程序重新開始運(yùn)行,從而實(shí)現(xiàn)用戶程序運(yùn)行監(jiān)測功能。
本發(fā)明提出一種用于MCU芯片的看門狗定時(shí)器的設(shè)計(jì)方案與裝置。在本方案中,看門狗定時(shí)器有兩種功能模式。當(dāng)看門狗定時(shí)器處于復(fù)位模式時(shí),即實(shí)現(xiàn)上述用戶程序運(yùn)行監(jiān)測功能。除了上述的功能之外,還附加了一種新的功能模式——看門狗定時(shí)器定時(shí)喚醒模式。當(dāng)看門狗定時(shí)器工作在看門狗定時(shí)器定時(shí)喚醒模式時(shí),在MCU內(nèi)核進(jìn)入低功耗的休眠狀態(tài)后,看門狗定時(shí)器依然工作,當(dāng)看門狗定時(shí)器溢出時(shí),將產(chǎn)生喚醒信號(hào),將MCU內(nèi)核由低功耗的休眠模式喚醒,然后用戶程序繼續(xù)運(yùn)行。通過使用看門狗定時(shí)器的定時(shí)喚醒模式,可以使MCU芯片適用于某些對(duì)功耗要求較高的應(yīng)用場景。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種用于MCU芯片的看門狗定時(shí)器,以解決上述背景技術(shù)中提出的問題。
為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
一種用于MCU芯片的看門狗定時(shí)器,包括看門狗定時(shí)器模塊、復(fù)位模塊、時(shí)鐘模塊、時(shí)鐘門控單元、喚醒控制模塊和MCU控制器,所述喚醒控制模塊分別連接時(shí)鐘門控單元、看門狗定時(shí)器模塊和MCU控制器,所述看門狗定時(shí)器模塊還連接復(fù)位模塊,所述時(shí)鐘門控單元還分別連接時(shí)鐘模塊和MC控制器。
作為本發(fā)明的進(jìn)一步方案:所述喚醒控制模塊包括寄存器R1、寄存器R2、與門AND、或門OR、反相器INV1和反相器INV2。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:當(dāng)看門狗定時(shí)器工作于定時(shí)喚醒模式時(shí),可以使MCU芯片適用于某些對(duì)功耗要求較高的應(yīng)用場景。并且,當(dāng)MCU芯片從休眠狀態(tài)中被工作于低頻工作時(shí)鐘的看門狗定時(shí)器喚醒之后,能夠立刻響應(yīng)接下來的休眠請(qǐng)求,而不是需要等等至少2個(gè)低頻的看門狗定時(shí)器工作時(shí)鐘才能再次休眠。藉此使得MCU內(nèi)核才能夠及時(shí)重新進(jìn)入休眠狀態(tài),從而使MCU芯片能夠適用于對(duì)功耗要求更加嚴(yán)格的應(yīng)用場合。最后,重復(fù)利用了看門狗定時(shí)器正常工作模式的資源來實(shí)現(xiàn)看門狗定時(shí)器的定時(shí)喚醒模式,基本上不需要增加額外的資源,不會(huì)增加芯片成本。
附圖說明:
圖1為本發(fā)明的整體框圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
一種用于MCU芯片的看門狗定時(shí)器,包括看門狗定時(shí)器模塊、復(fù)位模塊、時(shí)鐘模塊、時(shí)鐘門控單元、喚醒控制模塊和MCU控制器,所述喚醒控制模塊分別連接時(shí)鐘門控單元、看門狗定時(shí)器模塊和MCU控制器,所述看門狗定時(shí)器模塊還連接復(fù)位模塊,所述時(shí)鐘門控單元還分別連接時(shí)鐘模塊和MC控制器。
所述喚醒控制模塊包括寄存器R1、寄存器R2、與門AND、或門OR、反相器INV1和反相器INV2。
本發(fā)明的工作原理是:
復(fù)位模塊負(fù)責(zé)產(chǎn)生芯片的主要復(fù)位信號(hào):看門狗定時(shí)器復(fù)位信號(hào)(rstn_wdt),MCU內(nèi)核復(fù)位信號(hào)(rstn_core)。在芯片中,復(fù)位信號(hào)為低電平有效。當(dāng)看門狗定時(shí)器工作于復(fù)位模式時(shí)并且看門狗定時(shí)發(fā)生溢出時(shí),看門狗定時(shí)器輸出的看門狗復(fù)位請(qǐng)求信號(hào)(rst_by_wdt)為高有效。復(fù)位模塊在檢測到看門狗定時(shí)器輸出的看門狗復(fù)位請(qǐng)求信號(hào)(rst_by_wdt)為高有效的時(shí)候,將MCU內(nèi)核復(fù)位信號(hào)(rstn_core)置為低有效狀態(tài),從而復(fù)位整個(gè)系統(tǒng)。
時(shí)鐘模塊負(fù)責(zé)產(chǎn)生芯片的內(nèi)核工作時(shí)鐘(clk_core)和低頻的看門狗定時(shí)器工作時(shí)鐘(clk_wdt)
看門狗定時(shí)器工作于低頻的時(shí)鐘clk_wdt。看門狗定時(shí)器有兩種功能模式。當(dāng)看門狗定時(shí)器處于復(fù)位模式時(shí),若看門狗定時(shí)發(fā)生溢出,即看門狗定時(shí)器輸出的看門狗復(fù)位請(qǐng)求信號(hào)(rst_by_wdt)為高有效。從而復(fù)位整個(gè)系統(tǒng),實(shí)現(xiàn)上述用戶程序運(yùn)行監(jiān)測功能。當(dāng)看門狗定時(shí)器工作在看門狗定時(shí)器定時(shí)喚醒模式,若MCU內(nèi)核進(jìn)入低功耗的休眠狀態(tài)后,且看門狗定時(shí)器溢出時(shí),將產(chǎn)生喚醒信號(hào),將MCU內(nèi)核由低功耗的休眠模式喚醒,然后用戶程序繼續(xù)運(yùn)行。
時(shí)鐘門控單元根據(jù)喚醒控制模塊(WAKE_CTRL)輸出的時(shí)鐘門控信號(hào)(GC)對(duì)輸入時(shí)鐘clk_core做門控控制,得到處理后的時(shí)鐘信號(hào)(clk_core_gc)。通過在MCU內(nèi)核在休眠狀態(tài)時(shí)關(guān)閉相關(guān)邏輯的工作時(shí)鐘,從而達(dá)到更低的功耗的目的。
喚醒控制模塊負(fù)責(zé)對(duì)芯片的內(nèi)核工作時(shí)鐘(clk_core)進(jìn)行門控,門控后的時(shí)鐘(clk_core)作為MCU內(nèi)核的工作時(shí)鐘。為了使MCU芯片能夠適用于對(duì)功耗要求更加嚴(yán)格的應(yīng)用場合,用戶應(yīng)用會(huì)讓MCU芯片長時(shí)間置于低功耗的睡眠模式(Sleep Mode)。當(dāng)MCU芯片處于休眠狀態(tài),可以通過MCU芯片中的實(shí)時(shí)時(shí)鐘模塊(WDT)進(jìn)行精確的定時(shí),在到達(dá)定時(shí)時(shí)間以后,看門狗定時(shí)器模塊產(chǎn)生喚醒請(qǐng)求信號(hào),將MCU芯片由睡眠模式喚醒。
喚醒控制模塊接受MCU內(nèi)核的休眠請(qǐng)求(sleep_req),產(chǎn)生時(shí)鐘使能信號(hào)clk_enable(低電平輸出表示關(guān)閉MCU內(nèi)核工作時(shí)鐘)輸出至?xí)r鐘門控單元(GC),從而將MCU內(nèi)核工作時(shí)鐘(clk_core_gc)關(guān)閉。喚醒控制模塊接受看門狗定時(shí)器模塊(WDT)的喚醒請(qǐng)求(wake_req),產(chǎn)生時(shí)鐘使能信號(hào)clk_enable(高電平輸出表示開啟MCU內(nèi)核工作時(shí)鐘)輸出至?xí)r鐘門控單元(GC),從而將MCU內(nèi)核工作時(shí)鐘(clk_core_gc)開啟。
喚醒控制模塊的工作原理如圖1所示。喚醒控制模塊接收到MCU內(nèi)核的休眠請(qǐng)求信號(hào)(sleep_req),選擇器MUX2選擇高電平輸出,寄存器R2被置位,輸出信號(hào)sleep_en為高有效,反相器INV2的輸出為低電平,連接至或門OR的輸入端?;蜷TOR的另一個(gè)輸入端連接至喚醒門控信號(hào)(wake_en)。在無有效的喚醒的情況下,喚醒門控信號(hào)(wake_en)為低電平,所以時(shí)鐘使能信號(hào)clk_enable為低電平狀態(tài)輸入至?xí)r鐘門控單元(GC),從而將MCU內(nèi)核工作時(shí)鐘(clk_core_gc)關(guān)閉,實(shí)現(xiàn)休眠情況下節(jié)省功耗。如果看門狗定時(shí)器工作于看門狗定時(shí)器定時(shí)喚醒模式時(shí),當(dāng)看門狗定時(shí)器模塊到達(dá)用戶設(shè)置的溢出時(shí)間以后,看門狗定時(shí)器模塊將會(huì)產(chǎn)生喚醒請(qǐng)求信號(hào)(wake_by_wdt),與喚醒相應(yīng)的邏輯電路會(huì)使到寄存器R1的輸出信號(hào)wake_en為高電平輸出狀態(tài),然后或門OR的輸出信號(hào)也由此變化高電平輸出狀態(tài),輸出至?xí)r鐘門控單元(GC),從而將MCU內(nèi)核工作時(shí)鐘(clk_core_gc)開啟。內(nèi)核喚醒反饋信號(hào)(wake_rps)為低電平表示MCU內(nèi)核處于休眠狀態(tài)時(shí),為高電平表示MCU內(nèi)核處于工作狀態(tài)時(shí)。當(dāng)MCU內(nèi)核在喚醒門控信號(hào)(wake_en)的作用下被喚醒后,由MCU內(nèi)核輸入至喚醒控制模塊(WAKE_CTRL)的內(nèi)核喚醒反饋信號(hào)(wake_rps)為高有效電平,經(jīng)過反相器INV1之后變化低電平。反相器INV1的輸出連接至寄存器R1的異步復(fù)位輸入端,因而將寄存器R1復(fù)位。寄存器R1復(fù)位后,喚醒門控信號(hào)(wake_en)將立刻由高有效狀態(tài)切換至低電平輸出狀態(tài)。通過上述邏輯的作用,可以在MCU內(nèi)核被喚醒后,及時(shí)將喚醒門控信號(hào)(wake_en)將由高有效狀態(tài)切換至低電平輸出狀態(tài)。因此,當(dāng)MCU內(nèi)核從休眠模式中被喚醒之后,能夠立刻響應(yīng)接下來的休眠請(qǐng)求,重新進(jìn)入低功耗模式。而在一般的通過時(shí)鐘門控進(jìn)行的低功耗邏輯設(shè)計(jì)中,當(dāng)MCU內(nèi)核被工作于低頻率的喚醒邏輯喚醒之后,還需要等待低頻率時(shí)鐘周期后,MCU內(nèi)核才能重新進(jìn)入低功耗模式。因此,本設(shè)計(jì)方案能夠?qū)崿F(xiàn)更低的功耗,適用于對(duì)功耗要求更加苛刻的應(yīng)用場合。