一種微控制器異常強制復位的看門狗電路的制作方法
【技術領域】
[0001]本發明涉及嵌入式系統中微控制器(MCU)軟件跑飛時的復位和硬件死鎖情況下的強制復位電路。
【背景技術】
[0002]在嵌入式系統中微控制器(MCU)因受到外界干擾或其它原因影響,常會出現死機或程序跑飛的現象,造成產品不能正常工作。業界使用看門狗技術來解決這一問題,通過看門狗將死機或跑飛的系統復位并使其正常工作。看門狗分為微控制器內部看門狗和外部看門狗。內部看門狗是利用MCU內部資源實現的,包括內部專用看門狗或使用內部定時器實現看門狗功能。開啟看門狗功能后,MCU要通過軟件定期的對定時器重新賦初值或清零(喂狗),一旦MCU異常,定時器將溢出,內部硬件會自動對MCU進行復位操作。外部看門狗是指在MCU外部增加看門狗芯片或電路實現看門狗功能的情況。目前基本上都使用外部專用看門狗芯片,極個別產品會使用外部自行設計的看門狗電路。因為看門狗芯片已經能滿足常規的MCU異常時的復位需求。外部看門狗在上電時即開啟,MCU需要通過1引腳的電平變化來實現喂狗功能,一旦MCU異常,喂狗控制腳變化超時,外部看門狗將產生復位信號,復位信號加到MCU的外部復位腳,使系統復位。
[0003]外置的專用看門狗芯片或電路實際上是一個特殊的定時器,當定時時間到時,發出溢出脈沖,該脈沖輸入到單片機的外部復位引腳上,從而實現系統復位。軟件在主程序循環中適時地執行喂狗操作(通過控制引腳變化來清除外部看門狗),保證系統正常運行時看門狗不溢出;而當系統運行異常時,看門狗超時發出溢出脈沖,通過單片機的RESET引腳使單片機復位。這種方式相比內部硬件看門狗及軟件看門狗更加可靠,不存在因為上電復位失敗而導致內部看門狗及軟件看門狗失效的可能,缺點是需要外配芯片或電路。目前常用的集成看門狗電路很多,如DS1232、MAX705?708、MAX791等。圖1是DS1232芯片與AT89C52芯片的電路圖,單片機通過P3.3腳控制DS1232的喂狗信號,該喂狗信號在主程序的適當時機給出,保證DS1232芯片不溢出,RST腳則保持為低電平;當單片機死機時,P3.3腳不再給出喂狗脈沖,則DS1232定時到時后RST腳輸出高電平脈沖將單片機復位。
[0004]現有的看門狗電路,存在如下缺陷:
KMCU內部看門狗在軟件未將該功能開啟時將不起作用。內部看門狗在MCU死鎖時將失效。
[0005]2、外部看門狗喂狗引腳設計為低電平有效或高電平有效,當MCU死機時喂狗腳的狀態是不定的。如果與外部看門狗喂狗引腳的有效電平一致,將導致外部看門狗失效。
[0006]3、外部看門狗喂狗條件簡單,一般為高低電平變化即可,在系統受到干擾或MCU軟件異常時容易錯誤的產生喂狗條件,使外部看門狗不能正常工作。
[0007]4、外部看門狗復位信號直接連接到MCU的復位腳上,在MCU死鎖時,MCU已經內部保護起來,通過該引腳已經不能正常復位MCU。
[0008]5、外部看門狗為與MCU復位腳配合使用,復位電平有效時間都比較短,一般在毫秒級,不適合用于進行斷電復位。系統中都含有較大的電容,毫秒級的停電不能有效的將存儲的電量消耗掉,因此不能實現斷電復位。
【發明內容】
[0009]本發明的目的在于提供一種可靠的微控制器異常強制復位的看門狗電路,使MCU不管在軟件跑飛和死鎖情況下,均能有效的對系統進行復位,從而保證系統、產品的可靠運行。
[0010]本發明所述的微控制器異常強制復位的看門狗電路,包括第一 CD4017計數器模塊,第二 CD4017計數器模塊,555振蕩器電路模塊和電平轉換電路模塊;
所述電平轉換電路,用于將MCU輸入的喂狗信號的電壓轉換成與第一 CD4017計數器相匹配的電壓,其輸入端連接MCU喂狗信號的輸出腳,其輸出端連接第一 CD4017計數器模塊的脈沖輸入腳(CLK腳),將經電平轉換電路轉換后的喂狗信號輸入到第一⑶4017計數器模塊;
所述555振蕩器電路模塊,用于生成周期性的脈沖信號,并將生成的脈沖信號輸送到第一⑶4017計數器模塊的復位腳(RST腳)和第二⑶4017計數器模塊的脈沖輸入腳(CLK腳);
所述第一 CD4017計數器模塊,其脈沖輸入腳(CLK腳)連接電平轉換模塊的輸出端,復位腳(RST腳)則與555振蕩器電路模塊的輸出端連接,其數據輸出腳Q8腳則連接到第二CD4017計數器模塊的復位腳(RST腳);其將十個喂狗脈沖,轉成一個脈沖信號提供給第二計數器作為復位信號;
第二⑶4017計數器模塊,其頻率輸入腳(CLK腳)連接555振蕩器電路模塊的輸出端,其復位腳(RST腳)連接第一 CD4017技術器模塊的數據輸出腳Q8,其數據輸出腳Q9則連接到控制MCU工作的電源電路,通過電源電路控制對MCU的供電和停電;其接收555振動器電路模塊的脈沖信號和第一 CD4017計數器模塊的復位信號,控制MCU的供電和停電。
[0011]555振蕩器電路模塊,可以產生任意占空比和周期的脈沖信號,該脈沖信號為第二⑶4017計數器模塊提供脈沖輸入,同時每個脈沖的高電平將第一⑶4017計數器模塊復位,第一⑶4017計數器模塊的RST腳高電平有效。
[0012]當第二⑶4017計數器模塊的復位腳(RST)始終保持低電平,即未執行有效的喂狗時,555振蕩器電路模塊產生的連續9個脈沖可使第二 CD4017計數器模塊的數據輸出腳Q9從低電平變為高電平,此時MCU電源電路可關斷MCU的供電,看門狗執行斷電功能。延時到555振蕩器電路模塊的一個周期后,產生的第10個脈沖可使第二⑶4017計數器模塊的數據輸出腳Q9從高電平變為低電平,此時MCU電源電路對MCU及其它元件將重新上電,此時看門狗執行完斷電復位功能。MCU正常運行時要在555振蕩器電路模塊輸出低電平的時間內連續通過喂狗信號輸入腳(WatchDog)向看門狗電路輸入10個脈沖,使第一⑶4017計數器模塊的數據輸出腳Q8產生I個高電平脈沖,該高電平脈沖施加到第二 CD4017計數器模塊的復位腳(RST)使第二⑶4017計數器模塊復位(