Watchdog在Philips 8XC552系列單片機系統(tǒng)中的應用
出處:國外電子元器件 發(fā)布于:2007-09-30 14:05:31
Philips公司的8XC552單片機以其體積小、功能強、價格低等優(yōu)勢而廣泛地使用在工業(yè)控制、DCS控制和智能儀器等領域。筆者在智能配電監(jiān)測儀的研制過程中,雖然采取了相應的抗干擾措施,但由于工業(yè)現場環(huán)境中電磁場、電網尖峰、諧波、浪涌及雷電輻射等影響,仍有可能出現程序死循環(huán)、跑飛等失控現象。為此,筆者采用Watchdog技術保證了系統(tǒng)的正常運行,通常Watchdog技術在單片機應用系統(tǒng)中可分為軟件Watchdog和硬件Watchdog。Philips公司的8XC552、Intel的8098、Motorala的68C05以及Microchip的16C5X系列單片機本身已帶有軟件Watchdog功能,因此,只要硬件接法正確,在軟件設計中調用相應語句進行啟動即可。
2 硬件組成原理
2.1系統(tǒng)工作原理
圖1所示是87C522單片機用于智能型配電儀的連接電路,本智能配電儀中的87C552為主控芯片,該芯片除具有三個16位定時器T0、T1及T2外,還有一個專作監(jiān)視8位定時器、簡稱WDT(WatchdogTimer)的T3定時器。因為微控制器有時會受噪音、射頻干擾等環(huán)境因素的影響而導入錯誤的運行狀態(tài)。監(jiān)視定時器的功能就是在某特定的時限內使微控制器復位,從而將其從錯誤的狀態(tài)中恢復過來以重新開始正常運行。當T3用作Watchdog定時器并由軟件啟動計時后,如果系統(tǒng)已達到所設定的預定時間而仍沒有重新啟動定時器,此時就會產生溢出信號并停止計時,表明系統(tǒng)出現異常。CPU可以對定時器重新啟動、清零、設定計時值等操作。系統(tǒng)正常運行時,CPU將周期性地重新啟動定時器,當然其啟動周期應小于定時器的設定值,以保證定時器始終不能產生溢出信號。而當系統(tǒng)運行不正常時,由于CPU不能周期性地啟動定時器,因而定時器將產生溢出信號,以強迫CPU恢復系統(tǒng)的正常運行。
![]() |
|---|
2.2 Watchdog的內部結構原理
監(jiān)視定時器的結構原理如圖2所示。它的為一8位定時器,其前級是一個11位定標器。后者的輸入信號為fosc/12,即定標器對機器周期進行遞增計數。這樣,每過2個機器周期,定時器T3的值便增加1000次。若用16MHz或24MHz晶體振蕩器,則監(jiān)視定時器的增值間隔將分別為1.536ms和1.024ms;其相應的溢出周期分別為393.216ms和262.144ms。
當監(jiān)視定時器溢出時,系統(tǒng)將產生一個內部復位脈沖以使8XC552復位。由圖2可以看出,T3溢出時,RST引腳內側的晶體管因柵極出現一個負脈沖而瞬時導通,從而在RST引腳上輸出一個復位正脈沖,其寬度為3個機器周期。如果RST引腳外接電容,則這么窄的輸出脈沖可能遭到破壞,因為電容不允許RST引腳電壓產生突變,但這不會影響到內部復位操作。
如果將8XC552的
引腳接至低電平,則輸入信號至定標器的通路將暢通無阻,于是監(jiān)視定時器便正常運作。但若將
引腳接高電平,輸入信號則會因與門被封鎖而不能通過,這時監(jiān)視定時器處于關閉狀態(tài)。應當指出,一旦T3被
開啟,則無法用軟件使之關閉;同時如果T3被EW禁止,也無法用軟件啟動。
如果
=0,那么PCON寄存器的PD位便不可寫入,其初值為0,無法置l,即不可進入掉電方式。故監(jiān)視定時器和掉電方式兩者不可兼得。
![]() |
|---|
3 調試中的常見問題及其解決方法
在對系統(tǒng)進行調試時,有可能出現閃屏、無法顯示以及顯示雜亂等現象,現將這些問題的解決方法介紹如下:
(1)LCD出現閃屏,無法翻屏顯示現象
筆者在用仿真器運行編程時,LCD能夠翻屏并不斷顯示采集來的三相用電參數,但離開仿真器處于脫機運行狀態(tài)時,LCD只能顯示屏數據。經查仿真器的
引腳接高電平,而脫機時
腳懸空,從而引起了
腳的狀態(tài)不固定,并不斷產生內部復位信號使單片機復位而出現了上述現象。后來把
腳接低電平,仍然出現上述現象。而把
腳接高電平后(即禁用Watchdog功能),則LCD顯示正常。因此,
引腳應嚴格禁止懸空以避免出現不穩(wěn)定的狀態(tài),同時在未載入Watchdog程序之前,其
引腳也不能接低電平。
(2)LCD無顯示
RST端的電容應確保連接正確,否則在高電平時將無法加到復位端而使CPU不能運行程序,從而出現LCD無顯示的現象。
(3)LCD顯示數據雜
亂無章、數據死鎖
把
腳接低電平,可能會出現LCD顯示的數據雜亂無章、數據死鎖現象。其原因是源程序中未載入Watchdog程序,因此應保證在源程序中加入Watchdog程序,以消除數據的死鎖或顯示雜亂無章等問題。
4 軟件設計
4.1軟件設計
編寫監(jiān)視定時器運行軟件時,程序員首先應當確定系統(tǒng)能夠在錯誤狀態(tài)下支持的時間,也就是設定溢出周期的依據。例如能維持16ms,則把T3的初值設定為10,這樣,在16MHz晶振的情況下,溢出周期為15.36ms。此時程序員就可對其軟件進行劃分,以確定把重寫T3值的指令插在什么地方,才能使相鄰兩次重寫操作間隔不超過監(jiān)視定時器的溢出周期,以保證正常運作時T3不溢出。因此,程序員應當了解所有軟件模塊的執(zhí)行時間,同時也要考慮到出現條件跳轉、子程序及內外中斷等因素所帶來的影響。對于那些很難估算其執(zhí)行時間的程序段落,應按壞情況估算。為防止誤寫,監(jiān)視定時器值的重寫可分兩步進行。首先將PCON.4(監(jiān)視定時器裝入允許位WLE)置1,以允許對T3進行寫入;第二步向T3寫入新值。由圖2可知,對T3的寫信號同時也會加到WLE的清0端,于是每當T3被寫入新值時,WLE位便自動復位。因此,當該值為00H時,溢出間隔;而FFH值則對應溢出周期。若采用12MHz晶振,這兩值則分別為524ms和2ms。和溢出周期的計算公式分別為:
|
|
|---|
由于在空閑方式下,監(jiān)視定時器照常運行。因此,該方式與掉電方式是矛盾的,因為前者需要時鐘,后者凍結時鐘。故當
=0而開啟T3工作時,8XC552將無法進入掉電方式,此時向PCON.1寫l的操作無效,因而它將保持為0。在軟件開發(fā)調試的早期階段,可將
引腳接高電平以關閉監(jiān)視定時器,而在后期改接低電平以完成調試過程。
4.2定時間隔和訪問時間的設定
數據采集及處理是程序中的關鍵部分,也是決定儀器的關鍵所在。本儀器采用電壓、電流、頻率、相位為主要采集參數,且這些參數是連續(xù)變化的,因此采樣時間不宜設置得過長,否則會影響儀器的。筆者將電流與電壓的采樣時間定為5ms,頻率與相位的采集時間為20ms,這樣,Watchdog的定時間隔設置較佳,具體如圖3所示。圖3中,Watchdog在WDT1時間內完成對采集頻率數據的監(jiān)控,而在WDT2、WDT3、WDT4內分別負責對電壓、電流、相位數據采集的監(jiān)控。在設計程序時,一般取1.1Ts<Tw<2Ts,其中Ts為采樣周期,Tw為Watchdog的定時時間,Ts分別為T1、T2、T3、T4的大小,Tw分別為WDT1、WDT2、WDT3、WDT4的大小。Tw設置太小會增加訪問頻率,影響程序執(zhí)行效率;而設置太大則會干擾程序的正常運行,且需等待很長時間才可以恢復運行,而采集或控制對象可能已在這一步偏離過大。因此,CPU訪問時間原則上小于Tw就可以了,為防止時間估計不準,設計時應小些為好,這樣可以防止系統(tǒng)異常而處于每經過Tw時間啟動的死循環(huán)中。
![]() |
|---|
4.3軟件程序
本智能監(jiān)控儀用C語言編寫程序,并采用12MHz晶振時,其溢出時間應分別設置為6ms、20ms、524ms…,這樣,在源程序中應適時加入的各Watchdog程序如下:
![]() |
|---|
5結束語
在智能配電儀的源程序中加入Watchdog后,其整個系統(tǒng)運行將更加穩(wěn)定、可靠,從而有效地克服了來自工業(yè)用電現場的各種干擾。
(梁永明 干敏梁)
版權與免責聲明
凡本網注明“出處:維庫電子市場網”的所有作品,版權均屬于維庫電子市場網,轉載請必須注明維庫電子市場網,http://m.58mhw.cn,違反者本網將追究相關法律責任。
本網轉載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品出處,并自負版權等法律責任。
如涉及作品內容、版權等問題,請在作品發(fā)表之日起一周內與本網聯系,否則視為放棄相關權利。
- 單片機技術特性與嵌入式開發(fā)實踐指南2026/1/7 10:00:02
- 單片機(MCU)與數字信號處理器(DSP)分類及選型技術指南2025/12/30 10:02:37
- 工業(yè)級DSP信號處理系統(tǒng):硬件適配與抗干擾工程方案2025/12/15 14:41:00
- HOLTEK推出HT32F65533G/733G內建N/N預驅電機專用SoC單片機2025/11/26 14:11:41
- 什么是C51數據類型擴充定義2025/10/27 13:59:22













