Watchdog在8XC552系列單片機系統中的應用
1引言
本文引用地址:http://dyxdggzs.com/article/172012.htmPhilips公司的8XC552單片機以其體積小、功能強、價(jià)格低等優(yōu)勢而廣泛地使用在工業(yè)控制、DCS控制和智能儀器等領(lǐng)域。筆者在智能配電監測儀的研制過(guò)程中,雖然采取了相應的抗干擾措施,但由于工業(yè)現場(chǎng)環(huán)境中電磁場(chǎng)、電網(wǎng)尖峰、諧波、浪涌及雷電輻射等影響,仍有可能出現程序死循環(huán)、跑飛等失控現象。為此,筆者采用Watchdog技術(shù)保證了系統的正常運行,通常 Watchdog技術(shù)在單片機應用系統中可分為軟件Watchdog和硬件Watchdog。Philips公司的8XC552、Intel的8098、 Motorala的68C05以及Microchip的16C5X系列單片機本身已帶有軟件Watchdog功能,因此,只要硬件接法正確,在軟件設計中調用相應語(yǔ)句進(jìn)行啟動(dòng)即可。
2硬件組成原理
2.1系統工作原理
圖1所示是87C522單片機用于智能型配電儀的連接電路,本智能配電儀中的87C552為主控芯片,該芯片除具有三個(gè)16位定時(shí)器T0、T1及T2 外,還有一個(gè)專(zhuān)作監視8位定時(shí)器、簡(jiǎn)稱(chēng) WDT(WatchdogTimer)的T3定時(shí)器。因為微控制器有時(shí)會(huì )受噪音、射頻干擾等環(huán)境因素的影響而導入錯誤的運行狀態(tài)。監視定時(shí)器的功能就是在某特定的時(shí)限內使微控制器復位,從而將其從錯誤的狀態(tài)中恢復過(guò)來(lái)以重新開(kāi)始正常運行。當T3用作Watchdog定時(shí)器并由軟件啟動(dòng)計時(shí)后,如果系統已達到所設定的預定時(shí)間而仍沒(méi)有重新啟動(dòng)定時(shí)器,此時(shí)就會(huì )產(chǎn)生溢出信號并停止計時(shí),表明系統出現異常。CPU可以對定時(shí)器重新啟動(dòng)、清零、設定計時(shí)值等操作。系統正常運行時(shí),CPU將周期性地重新啟動(dòng)定時(shí)器,當然其啟動(dòng)周期應小于定時(shí)器的設定值,以保證定時(shí)器始終不能產(chǎn)生溢出信號。而當系統運行不正常時(shí),由于 CPU不能周期性地啟動(dòng)定時(shí)器,因而定時(shí)器將產(chǎn)生溢出信號,以強迫CPU恢復系統的正常運行。
2.2 Watchdog的內部結構原理
監視定時(shí)器的結構原理如圖2所示。它的核心為一8位定時(shí)器,其前級是一個(gè)11位定標器。后者的輸入信號為fosc/12,即定標器對機器周期進(jìn)行遞增計數。這樣,每過(guò)2個(gè)機器周期,定時(shí)器T3的值便增加1000次。若用16MHz或24MHz晶體振蕩器,則監視定時(shí)器的增值間隔將分別為1.536ms 和1.024ms;其相應的最大溢出周期分別為393.216ms和262.144ms。
當監視定時(shí)器溢出時(shí),系統將產(chǎn)生一個(gè)內部復位脈沖以使8XC552復位。由圖2可以看出,T3溢出時(shí),RST引腳內側的晶體管因柵極出現一個(gè)負脈沖而瞬時(shí)導通,從而在RST引腳上輸出一個(gè)復位正脈沖,其寬度為3個(gè)機器周期。如果RST引腳外接電容,則這么窄的輸出脈沖可能遭到破壞,因為電容不允許 RST引腳電壓產(chǎn)生突變,但這不會(huì )影響到內部復位操作。
3調試中的常見(jiàn)問(wèn)題及其解決方法
在對系統進(jìn)行調試時(shí),有可能出現閃屏、無(wú)法顯示以及顯示雜亂等現象,現將這些問(wèn)題的解決方法介紹如下:
評論