第8章+單片機(jī)系統(tǒng)的可靠性與抗干擾技術(shù).ppt_第1頁(yè)
第8章+單片機(jī)系統(tǒng)的可靠性與抗干擾技術(shù).ppt_第2頁(yè)
第8章+單片機(jī)系統(tǒng)的可靠性與抗干擾技術(shù).ppt_第3頁(yè)
第8章+單片機(jī)系統(tǒng)的可靠性與抗干擾技術(shù).ppt_第4頁(yè)
第8章+單片機(jī)系統(tǒng)的可靠性與抗干擾技術(shù).ppt_第5頁(yè)
已閱讀5頁(yè),還剩86頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、主 編 范立南 謝子殿 副主編 劉 彤 尹授遠(yuǎn) 李雪飛,單片機(jī)原理及應(yīng)用教程 第8章 單片機(jī)系統(tǒng)的可靠性 與抗干擾技術(shù),8.1 可靠性與抗干擾技術(shù)概述 8.2 單片機(jī)系統(tǒng)的硬件抗干擾技術(shù) 8.3 單片機(jī)系統(tǒng)的軟件抗干擾技術(shù) 8.4 Watchdog技術(shù),第8章 單片機(jī)系統(tǒng)的可靠性 與抗干擾技術(shù),8.1 可靠性與抗干擾技術(shù)概述,近年來(lái),隨著單片機(jī)在智能化儀器、自動(dòng)檢測(cè)、工業(yè)控制以及火箭導(dǎo)航尖端技術(shù)等領(lǐng)域的廣泛應(yīng)用,有效地提高了生產(chǎn)效率,改善了工作條件,大大提高了控制質(zhì)量與經(jīng)濟(jì)效益。但是,單片機(jī)系統(tǒng)的工作環(huán)境往往是比較惡劣和復(fù)雜的,其必須長(zhǎng)期可靠、安全、穩(wěn)定地運(yùn)行,否則將導(dǎo)致控制誤差加大,嚴(yán)重時(shí)會(huì)

2、使系統(tǒng)失靈,造成巨大的經(jīng)濟(jì)損失,甚至危及人們的生命安全。所以,人們?cè)诓粩嗤晟茊纹瑱C(jī)系統(tǒng)硬件配置過(guò)程中,分析系統(tǒng)受干擾的原因,探討和提高系統(tǒng)的抗干擾能力,這不僅具有一定的科學(xué)理論意義,并且具有很高的工程實(shí)用價(jià)值。,8.1.1 干擾竄入單片機(jī)系統(tǒng)的主要途徑,干擾竄入單片機(jī)系統(tǒng)的主要途徑如圖8.1所示。,圖8.1 干擾竄入單片機(jī)系統(tǒng)主要途徑示意圖,(1)空間感應(yīng);(2)過(guò)程通道竄入的干擾;(3)電源系統(tǒng)竄入的干擾; (4)地電位波動(dòng)竄入的干擾;(5)反射波干擾,8.1.1 干擾竄入單片機(jī)系統(tǒng)的主要途徑,1. 空間感應(yīng)的干擾,2. 過(guò)程通道的干擾 過(guò)程通道的干擾一般分為串模干擾和共模干擾。,(a)內(nèi)部

3、串?dāng)_ (b)外部串?dāng)_,圖8.2 串模干擾示意圖,8.1.1 干擾竄入單片機(jī)系統(tǒng)的主要途徑,(a)單端輸入 (b)雙端輸入,圖8.3 共模干擾示意圖,8.1.1 干擾竄入單片機(jī)系統(tǒng)的主要途徑,3. 交流電源的干擾,4. 地電位波動(dòng)的干擾,5. 反射波的干擾,8.1.2 干擾的耦合方式,1. 直接耦合方式,2. 公共阻抗耦合方式,3. 電容耦合方式,4. 電磁感應(yīng)耦合方式,5. 輻射耦合方式,6. 漏電耦合方式,8.1.3 抗干擾原則,所謂抗干擾,就是針對(duì)干擾的產(chǎn)生、性質(zhì)、傳播途徑、侵入的位置和侵入的形式,采取適當(dāng)?shù)姆椒ㄏ蓴_源,抑制耦合通道,減弱電路對(duì)噪聲干擾的敏感性。,1. 消除干擾源,2.

4、 抑制耦合通道,3. 減弱電路對(duì)噪聲干擾的敏感性,8.2 單片機(jī)系統(tǒng)的硬件抗干擾技術(shù)8.2.1 過(guò)程通道干擾的抑制,1. 光電隔離,光電隔離是由光電耦合器來(lái)完成的。光電耦合器的結(jié)構(gòu)如圖8.4所示。,圖8.4 光電耦合器結(jié)構(gòu),8.2.1 過(guò)程通道干擾的抑制,圖8.5 光電隔離基本配置,8.2.1 過(guò)程通道干擾的抑制,光電耦合器的幾個(gè)特點(diǎn): (1) 輸入和輸出在電氣上是隔離的。 (2) 光電耦合器的光電耦合部分不會(huì)受到外界光的干擾。 (3) 光電耦合器的輸入阻抗很低(一般為1001K),而干擾源內(nèi)阻一般都很大(105106)。按分壓原理,傳送到光電耦合器輸入端的干擾電壓就變得很小了。 (4) 光電

5、耦合器的發(fā)光二極管只有通過(guò)一定的電流才發(fā)光,因此,即使電壓幅值很高的干擾,若沒(méi)有足夠的能量,也不能使二極管發(fā)光,顯然,干擾就被抑制掉了。 (5) 輸入回路與輸出回路之間分布電容極小,因此,在回路中,一端的干擾很難通過(guò)光電耦合器饋送到另一端去。,8.2.1 過(guò)程通道干擾的抑制,圖8.6 長(zhǎng)線傳輸光電耦合浮置處理,8.2.1 過(guò)程通道干擾的抑制,2. 繼電器隔離,圖8.7 繼電器隔離,8.2.1 過(guò)程通道干擾的抑制,3. 變壓器隔離,圖8.8 脈沖變壓器隔離法,脈沖變壓器隔離法傳遞脈沖輸入/輸出信號(hào)時(shí),不能傳遞直流分量。,8.2.1 過(guò)程通道干擾的抑制,對(duì)于一般的交流信號(hào),可以用普通變壓器實(shí)現(xiàn)隔離

6、。,圖8.9 交流信號(hào)的幅度檢測(cè),8.2.1 過(guò)程通道干擾的抑制,4. 采用雙絞線作信號(hào)線,使雙絞線中一根用作屏蔽線,另一根用作信號(hào)傳輸線;這樣可以抑制電磁感應(yīng)干擾。在使用過(guò)程中,把信號(hào)輸出線和返回線兩根導(dǎo)線擰和,其扭絞節(jié)距與該導(dǎo)線的線徑有關(guān)。線徑越細(xì),節(jié)距越短,抑制感應(yīng)噪聲的效果越明顯。實(shí)際上,節(jié)距越短,所用的導(dǎo)線長(zhǎng)度就越長(zhǎng),從而增加了導(dǎo)線的成本。一般節(jié)距以5cm左右為宜。表8.1列出了雙絞線節(jié)距與噪聲衰減率的關(guān)系。,8.2.1 過(guò)程通道干擾的抑制,表8.1 雙絞線的節(jié)距與噪聲衰減率,8.2.1 過(guò)程通道干擾的抑制,(a),圖8.10所示為傳送的距離不同時(shí),雙絞線的不同使用方法。,8.2.1

7、 過(guò)程通道干擾的抑制,(b),(c),圖8.10 雙絞線數(shù)字信號(hào)的傳送,8.2.1 過(guò)程通道干擾的抑制,為了增強(qiáng)其抗干擾能力,可以將雙絞線與光電耦合器聯(lián)合使用,如圖8.11所示。,(a),8.2.1 過(guò)程通道干擾的抑制,(b),(c),圖8.11 光電耦合器與雙絞線聯(lián)合使用,8.2.2 反射波干擾的抑制,影響反射波干擾的因素有兩個(gè):其一是信號(hào)頻率,傳輸信號(hào)頻率越高,越容易產(chǎn)生反射波干擾,因此在滿足系統(tǒng)功能的前提下,盡量降低傳輸信號(hào)的頻率;其二是傳輸線的阻抗,合理配置傳輸線的阻抗,可以抑制反射波干擾或大大削弱反射次數(shù)。,8.2.2 反射波干擾的抑制,1. 傳輸線的特性阻抗Rp的測(cè)定,根據(jù)反射理論

8、,當(dāng)傳輸線的特性阻抗Rp與負(fù)載電阻R相等(匹配)時(shí),將不發(fā)生反射。特性阻抗的測(cè)定方法如圖8.12所示。調(diào)節(jié)可變電阻R,當(dāng)R=Rp時(shí),A門的輸出波形畸變最小,反射波幾乎消失,這時(shí)的R值可以認(rèn)為該傳輸線的特性阻抗Rp。,圖8.12 傳輸線的特性阻抗Rp的測(cè)定,8.2.2 反射波干擾的抑制,2. 阻抗匹配的方法,(1) 始端串聯(lián)阻抗匹配,(a),如果傳輸線的波阻抗是Rp,則當(dāng)R=Rp時(shí),便實(shí)現(xiàn)了始端串聯(lián)阻抗匹配,基本上消除了波反射。考慮到門A輸出低電平時(shí)的輸出阻抗Rsc,一般選擇始端匹配電阻R為R=Rp-Rsc。這種匹配方法會(huì)使終端的低電平抬高,相當(dāng)于增加了輸出阻抗,降低了低電平的抗干擾能力。,8.

9、2.2 反射波干擾的抑制,(2) 終端并聯(lián)阻抗匹配,(b),適當(dāng)調(diào)整R1和R2的阻值,可使R=Rp。為了同時(shí)兼顧高電平和低電平兩種情況,可選取R1=R2=2Rp。這種匹配方法由于終端阻值低,相當(dāng)于加重負(fù)載,使高電平有所下降,故高電平的抗干擾能力有所下降。,按式(8-1)選取等效電阻R:,(8-1),8.2.2 反射波干擾的抑制,(3) 終端并聯(lián)隔直阻抗匹配,(c),把電容C串入匹配電路中,當(dāng)C較大時(shí),其阻抗接近于零,只起隔直流作用,不會(huì)影響阻抗匹配,只要使R=Rp就可以了。它不會(huì)引起輸出高電平的降低,故增加了高電平的抗干擾能力。,8.2.2 反射波干擾的抑制,(4) 終端鉗位二極管匹配,(d)

10、,利用二極管D把B門輸入端低電平鉗位在0.3V以下,可以減少波的反射和振蕩,提高動(dòng)態(tài)抗干擾能力。,8.2.2 反射波干擾的抑制,3. 輸入/輸出驅(qū)動(dòng)法,圖8.14 應(yīng)用雙驅(qū)動(dòng)器的反射波抑制方法,當(dāng)A點(diǎn)為低電平時(shí),電壓波從B向A傳輸。由于此時(shí)驅(qū)動(dòng)器SN7406的輸出呈現(xiàn)近于零的低阻抗,反射信號(hào)一到達(dá)該門的輸出端就有相當(dāng)部分被吸收掉,只剩下很少部分繼續(xù)反射。這就是說(shuō),由于反射信號(hào)遇到的是低阻抗,它的衰減速度很快,反射能力大大地減弱了。當(dāng)A點(diǎn)為高電平時(shí),發(fā)送器T1的輸出端對(duì)地阻抗很大,可視為開路。為了降低接收器T2的輸入阻抗,接入一個(gè)負(fù)載電阻R1k,這樣大大削弱了反射波的干擾。,8.2.2 反射波干

11、擾的抑制,4. 降低輸入阻抗法,圖8.15 降低輸入電阻的反射波抑制方法,當(dāng)驅(qū)動(dòng)器輸出低電平時(shí),A點(diǎn)對(duì)地阻抗很低;當(dāng)驅(qū)動(dòng)器輸出高電平時(shí),B點(diǎn)對(duì)地阻抗也很低。由此可見(jiàn),無(wú)論是輸出高電平還是低電平,反射波都將很快衰減。,8.2.2 反射波干擾的抑制,5. 光電耦合器,圖8.16 光電耦合器的反射波抑制方法,該方法除了有效抑制反射波干擾外,還有效地實(shí)現(xiàn)了信號(hào)的隔離。,8.2.3 空間干擾的抑制,抗空間干擾的主要措施就是采取屏蔽措施。屏蔽是指用屏蔽體把通過(guò)空間進(jìn)行電場(chǎng)、磁場(chǎng)或電磁場(chǎng)耦合的部分隔離開來(lái),隔斷其空間場(chǎng)的耦合通道。良好的屏蔽是和接地緊密相連的,因而可以大大降低噪聲耦合,取得較好的抗干擾效果。

12、,在單片機(jī)系統(tǒng)中,通常是把數(shù)字電子裝置和模擬電子裝置的工作基準(zhǔn)地浮空,而設(shè)備外殼或機(jī)箱采用屏蔽接地。,圖8.17所示為一種浮空保護(hù)屏蔽層機(jī)殼接地方案。,圖8.17 浮空保護(hù)屏蔽層機(jī)殼接地方案,8.2.3 空間干擾的抑制,這種方案的特點(diǎn)是將電子部件外圍附加保護(hù)屏蔽層,且與機(jī)殼浮空;信號(hào)采用三線傳輸方式,即屏蔽電纜中的兩根芯線和電纜屏蔽外皮線;機(jī)殼接地。圖中信號(hào)線的屏蔽外皮A點(diǎn)接附加保護(hù)屏蔽層的G點(diǎn),但不接機(jī)殼B。假設(shè)系統(tǒng)采用差動(dòng)測(cè)量放大器,信號(hào)源信號(hào)采用雙芯信號(hào)屏蔽線傳送,r3為電纜屏蔽外皮的電阻,Z3為附加保護(hù)屏蔽層相對(duì)機(jī)殼的絕緣電阻,Z1、Z2為二信號(hào)線對(duì)保護(hù)層的阻抗,則有,(8-2),顯然

13、,只要增大附加保護(hù)屏蔽層對(duì)機(jī)殼的絕緣電阻,減小相應(yīng)的分布電容,則有r3/Z3遠(yuǎn)遠(yuǎn)小于1,干擾電壓Uin可顯著減小。,8.2.4 單片機(jī)系統(tǒng)的接地技術(shù),接地技術(shù)對(duì)單片機(jī)系統(tǒng)是極為重要的,不恰當(dāng)?shù)慕拥貢?huì)造成極其嚴(yán)重的干擾,而正確接地卻是單片機(jī)系統(tǒng)抑制干擾的重要手段。接地的目的有兩個(gè),一是保護(hù)單片機(jī)、電器設(shè)備和操作人員的安全。二是為了抑制干擾,使單片機(jī)工作穩(wěn)定。通常接地可分為工作接地和保護(hù)接地兩大類。保護(hù)接地主要是為了避免操作人員因設(shè)備的絕緣損壞或下降時(shí)遭受觸電危險(xiǎn)和保證設(shè)備的安全。而工作接地則主要是為了保證單片機(jī)系統(tǒng)穩(wěn)定可靠地運(yùn)行,防止地環(huán)路引起的干擾。 在單片機(jī)系統(tǒng)中,大致有交流地、系統(tǒng)地、安全

14、地、數(shù)字地(邏輯地)和模擬地等幾種。,8.2.4 單片機(jī)系統(tǒng)的接地技術(shù),1. 交流地 交流地是單片機(jī)交流供電電源地,即動(dòng)力線地。 2. 系統(tǒng)地 是指信號(hào)回路的基準(zhǔn)導(dǎo)體(如控制電源的零電位)。 3. 安全地 其目的是使設(shè)備機(jī)殼與大地等電位,以避免機(jī)殼帶電而影響人身及設(shè)備安全。通常安全地又稱為保護(hù)地或機(jī)殼地。 4. 數(shù)字地 作為單片機(jī)系統(tǒng)中各種數(shù)字電路的零電位,應(yīng)該與模擬地分開,避免模擬信號(hào)受數(shù)字脈沖的干擾。 5. 模擬地 作為傳感器、變送器、放大器、A/D轉(zhuǎn)換器和D/A轉(zhuǎn)換器中模擬地的零電位。,8.2.4 單片機(jī)系統(tǒng)的接地技術(shù),在單片機(jī)系統(tǒng)中一般應(yīng)該遵循如下的接地原則。 (1) 數(shù)字地與模擬地要

15、分開。 (2) 單點(diǎn)接地與多點(diǎn)接地的選擇。 (3) 傳感器、變送器和放大器等通常采用屏蔽罩,而信號(hào)的傳送往往使用屏蔽線。對(duì)于這些屏蔽層的接地要十分謹(jǐn)慎,應(yīng)該遵循單點(diǎn)接地原則。 (4) 接地線要盡量加粗。 (5) 在交流地上任意兩點(diǎn)之間,往往很容易就有幾伏至幾十伏的電位差存在。另外,交流地也很容易帶來(lái)各種干擾。因此,交流地絕對(duì)不允許與其他幾種地相連,而且交流電源變壓器的絕緣性能要好,絕對(duì)避免漏電現(xiàn)象。,8.2.5 單片機(jī)系統(tǒng)的掉電保護(hù)技術(shù),進(jìn)行掉電保護(hù)有兩種方法:一是在系統(tǒng)的電源發(fā)生變化時(shí),即上電或掉電時(shí),保證SRAM芯片的數(shù)據(jù)不丟失;二是永久保護(hù),即直接把要保護(hù)的SRAM區(qū)加上備用電源或整個(gè)系

16、統(tǒng)用可靠的不間斷電源UPS供電。,8.2.5 單片機(jī)系統(tǒng)的掉電保護(hù)技術(shù),仔細(xì)調(diào)節(jié)圖中的R1、R2的兩個(gè)電阻值,使電壓小于等于4.5V時(shí)就使開關(guān)斷開,線上拉至“1”,這樣,RAM中的數(shù)據(jù)就不會(huì)沖失;當(dāng)電壓大于4.5V時(shí),4060開關(guān)應(yīng)接通,使RAM能正常進(jìn)行讀寫。,圖8.18 利用4060開關(guān)實(shí)現(xiàn)的RAM掉電保護(hù)電路,1. 掉電保護(hù)基本電路,8.2.5 單片機(jī)系統(tǒng)的掉電保護(hù)技術(shù),例8-1 如圖8.19所示電路為一種RAM掉電保護(hù)電路,試分析其工作原理。,圖8.19 RAM掉電保護(hù)電路,8.2.5 單片機(jī)系統(tǒng)的掉電保護(hù)技術(shù),解:由圖可見(jiàn),系統(tǒng)在正常工作時(shí),+5V電源除了給6264提供電源以外,同時(shí)

17、也給電池BAT供電;當(dāng)系統(tǒng)電源掉電時(shí)將由電池BAT給SRAM供電。只要在上電和斷電期間保證使CE2立即變?yōu)榈碗娖剑蛄⒓醋優(yōu)楦唠娖骄涂梢允筍RAM中的數(shù)據(jù)保持不變。在圖中上電時(shí),系統(tǒng)電源對(duì)C1進(jìn)行充電,在此期間,CE2的輸入要經(jīng)過(guò)一定的延時(shí)后才能變?yōu)楦唠娖?,同時(shí),由于U1、U2的電源也是由系統(tǒng)電源對(duì)C2充電來(lái)建立的,這就保證了在上電時(shí)SRAM處于寫禁止?fàn)顟B(tài)。在系統(tǒng)電源掉電瞬間,U1的輸入立刻變低,而端為高電平,從而禁止對(duì)SRAM進(jìn)行寫入。同時(shí)C1也通過(guò)D2和R2放電從而使CE2的電平變低。因此,在掉電瞬間和掉電后,SRAM也處于禁止?fàn)顟B(tài)。,8.2.5 單片機(jī)系統(tǒng)的掉電保護(hù)技術(shù),當(dāng)?shù)綦姲l(fā)生時(shí),僅

18、由電池在電壓下降到一定值時(shí)接替供電是不夠的。一個(gè)完善的保護(hù)電路,必須具備以下功能:,(1) 掉電時(shí)在CPU的失效電壓到達(dá)以前,存儲(chǔ)器的寫信號(hào)線應(yīng)被封鎖。CPU失效電壓約在4.54.65V之間。 (2) 在存儲(chǔ)器失效電壓到達(dá)以前,備用電池應(yīng)立即接替供電。 (3) 在掉電保護(hù)期間,電池電壓不得低于存儲(chǔ)器電壓。 (4) 上電時(shí),電壓升到存儲(chǔ)器有效工作電壓以上時(shí)才允許電源接替電池供電。 (5) 電源電壓升到CPU有效工作電壓以上,且CPU已處在穩(wěn)定狀態(tài)時(shí),才允許將存儲(chǔ)器的寫信號(hào)線開鎖。,8.2.5 單片機(jī)系統(tǒng)的掉電保護(hù)技術(shù),2. 不間斷電源UPS,不間斷電源UPS(Uninterruptible Po

19、wer System)的基本結(jié)構(gòu)分為兩大類:一部分是將交流市電變?yōu)橹绷麟姷恼?充電裝置,另一部分是把直流電再度轉(zhuǎn)變?yōu)榻涣麟姷腜WM逆變器。蓄電池在交流電壓正常供電時(shí)儲(chǔ)存能量,此時(shí)它一直維持在一個(gè)正常的充電電壓上。一旦市電供應(yīng)中斷,蓄電池立即對(duì)逆變器供電,從而保護(hù)UPS電源交流輸出電壓的連續(xù)性。,UPS電源按其操作方式可分為后備式和在線式的UPS電源。,8.2.5 單片機(jī)系統(tǒng)的掉電保護(hù)技術(shù),(1) 后備式UPS電源的原理圖如圖8.20所示。電網(wǎng)正常時(shí),由市電直接向單片機(jī)供電。UPS系統(tǒng)使蓄電池保持滿電量,蓄電池只提供DC-AC逆變器的空載電流。當(dāng)市電不正常時(shí),由故障檢測(cè)器發(fā)出信號(hào),通過(guò)靜態(tài)開關(guān)

20、,由DC-AC逆變器提供交流電源,即UPS電源的逆變器總是處于對(duì)單片機(jī)提供后備供電狀態(tài)。,圖8.20 后備式UPS電源方框圖,8.2.5 單片機(jī)系統(tǒng)的掉電保護(hù)技術(shù),(2) 在線式UPS電源的原理圖如圖8.21所示。它平時(shí)由交流整流逆變器方式對(duì)單片機(jī)提供交流電源,使負(fù)載的交流供電不受影響。一旦市電中斷時(shí),UPS該由蓄電池逆變器方式對(duì)單片機(jī)提供電源。當(dāng)市電恢復(fù)供電后,UPS又重新切換到由整流器逆變器方式對(duì)單片機(jī)提供電源。,圖8.21 在線式UPS電源框圖,8.3 單片機(jī)系統(tǒng)的軟件抗干擾技術(shù)8.3.1 指令冗余技術(shù),所謂指令冗余技術(shù)是指在程序的關(guān)鍵地方人為地加入一些單字節(jié)指令NOP,或?qū)⒂行巫止?jié)指

21、令重寫,當(dāng)程序“跑飛”到某條單字節(jié)指令上,就不會(huì)發(fā)生將操作數(shù)當(dāng)作指令來(lái)執(zhí)行的錯(cuò)誤,使程序迅速納入正軌。常用的指令冗余技術(shù)有兩種:NOP指令的使用和重要指令冗余。,1. NOP指令的使用,通常是在雙字節(jié)指令和3字節(jié)指令之后插入兩個(gè)單字節(jié)NOP指令。這樣,即使因?yàn)椤芭茱w”使程序落到操作數(shù)上,由于兩個(gè)空操作指令NOP的存在,不會(huì)將其后的指令當(dāng)操作數(shù)執(zhí)行,從而使程序納入正軌。,8.3.1 指令冗余技術(shù),通常,一些對(duì)程序流向起重要作用的指令(如RET、RETI、ACALL、LCALL、LJMP、SJMP、JZ、JNZ、JC、JNC、JB、JBC、DJNZ等)和某些對(duì)系統(tǒng)工作狀態(tài)起重要作用的指令(如SET

22、B等)的前面插入兩條NOP指令,以保證跑飛的程序迅速納入軌道,確保這些指令的正確執(zhí)行。,8.3.2 軟件陷阱技術(shù),1. 軟件陷阱,所謂軟件陷阱,就是當(dāng)PC失控,造成程序“亂飛”而進(jìn)入非程序區(qū)時(shí),在非程序區(qū)設(shè)置一些攔截程序,將失控的程序引至復(fù)位入口地址0000H或處理錯(cuò)誤程序的入口地址ERR,在此處將程序轉(zhuǎn)向?qū)iT對(duì)程序出錯(cuò)進(jìn)行處理的程序,使程序納入正軌。軟件陷阱可以采用3種形式如表8.2所示。,8.3.2 軟件陷阱技術(shù),表8.2 軟件陷阱形式,8.3.2 軟件陷阱技術(shù),2. 軟件陷阱的安排,(1) 未使用的中斷向量區(qū) MSC-51單片機(jī)的中斷向量區(qū)為0003H002FH,當(dāng)未使用的中斷因干擾而開

23、放時(shí),在對(duì)應(yīng)的中斷服務(wù)程序中設(shè)置軟件陷阱,就能及時(shí)截獲錯(cuò)誤的中斷。在中斷服務(wù)程序中返回指令用RETI也可以用LJMP。,8.3.2 軟件陷阱技術(shù),例8-2 某系統(tǒng)未使用兩個(gè)外部中斷和,它們的中斷服務(wù)子程序入口地址分別為SINT0和SINT1,試編制其軟件陷阱程序。,ORG 0000H 0000HSTART:LJMP MAIN;引向主程序入口 ORG 0003H LJMP SINT0;中斷服務(wù)程序入口 ORG 0013H LJMP SINT1;中斷服務(wù)程序入口 ORG 0080H 0080HMAIN: ;主程序 SINT0:NOP NOP POP direct1;將斷點(diǎn)彈出堆棧區(qū) POP dir

24、ect2 LJMP 0000H;轉(zhuǎn)到0000H處,8.3.2 軟件陷阱技術(shù),SINT1:NOP NOP POP direct1;將原先的斷點(diǎn)彈出 POP direct2 PUSH 00H;斷點(diǎn)地址改0000H PUSH 00H RETI,注:中斷服務(wù)程序中的direct1和direct2為主程序中非使用單元。,8.3.2 軟件陷阱技術(shù),(2) 未使用的EPROM空間,程序一般都不會(huì)占用EPROM芯片的全部空間,對(duì)于未使用完的EPROM空間,一般都維持原狀,即其內(nèi)容為0FFH,0FFH對(duì)于MSC-51單片機(jī)來(lái)說(shuō)是一條單字節(jié)指令“MOV R7, A”。如果程序“跑飛”到這一區(qū)域,則將順利向下執(zhí)行,

25、不再跳躍(除非又受到新的干擾),因此在非程序區(qū)內(nèi)用0000020000或020202020000數(shù)據(jù)填滿。注意,最后一條填入數(shù)據(jù)必須為020000。當(dāng)“亂飛”程序進(jìn)入此區(qū)后,讀到的數(shù)據(jù)為0202H,這是一條轉(zhuǎn)移指令,使PC轉(zhuǎn)入0202H入口,在主程序0202H設(shè)有出錯(cuò)處理程序,或轉(zhuǎn)到程序的入口地址0000H執(zhí)行程序。,8.3.2 軟件陷阱技術(shù),(3) 表格,單片機(jī)程序設(shè)計(jì)中一般會(huì)遇到兩種表格:一類是數(shù)據(jù)表格,供“MOV A, APC”指令或“MOVC A, ADPTR”指令使用;另一類是散轉(zhuǎn)表格,供“JMP ADPTR”指令使用。由于表格的內(nèi)容與檢索值是一一對(duì)應(yīng)的關(guān)系,在表格中安排陷阱會(huì)破壞表

26、格的連續(xù)性和對(duì)應(yīng)關(guān)系,因此只能在表格的最后安排陷阱。如果表格區(qū)較長(zhǎng),則安排的陷阱不能保證一定能夠捕捉到“跑飛”的程序,這時(shí)只能借助于別的軟件陷阱或冗余指令來(lái)使程序恢復(fù)正常。,8.3.2 軟件陷阱技術(shù),(4) 運(yùn)行程序區(qū),在進(jìn)行單片機(jī)系統(tǒng)程序設(shè)計(jì)時(shí)常采用模塊化設(shè)計(jì),單片機(jī)按照程序的要求一個(gè)模塊、一個(gè)模塊地執(zhí)行。所以可以將陷阱指令組分散放置在用戶程序各模塊之間空余的單元里。在正常程序中不執(zhí)行這些陷阱指令,保證用戶程序正常運(yùn)行。但當(dāng)程序“跑飛”一旦落入這些陷阱區(qū),馬上將“跑飛”的程序拉到正確軌道。這個(gè)方法很有效,陷阱的多少一般依據(jù)用戶程序大小而定,一般每1K字節(jié)有幾個(gè)陷阱就夠了。,8.3.2 軟件陷

27、阱技術(shù),(5) RAM數(shù)據(jù)保護(hù)的條件陷阱,單片機(jī)受到嚴(yán)重的干擾時(shí),可能不能正確地讀寫外部的RAM區(qū)。為解決這個(gè)問(wèn)題,可以在進(jìn)行RAM的數(shù)據(jù)讀寫之前,測(cè)試RAM讀寫通道的暢通性,這可以通過(guò)編寫陷阱實(shí)現(xiàn),當(dāng)讀寫正常時(shí),不會(huì)進(jìn)入陷阱,若不正常,則會(huì)進(jìn)入陷阱,且形成死循環(huán)。實(shí)現(xiàn)程序?yàn)椋?MOV A, #NNH;NN是任意的 MOV DPTR, #XXXXH MOV 6EH, #55H MOV 6FH, #0AAH NOP NOP CJNE 6EH, #55H, XJ;6EH中不為55H則落入死循環(huán) CJNE 6FH, #0AAH, XJ;6FH中不為AAH則落入死循環(huán) MOVX DPTR, A;A中數(shù)

28、據(jù)寫入RAM的XXXXH單元中,8.3.2 軟件陷阱技術(shù),NOP NOP MOV 6EH, #00H MOV 6FH, #00H RET XJ:NOP;死循環(huán) NOP SJMP XJ 落入死循環(huán)以后,可以通過(guò)后面將要介紹的“看門狗”技術(shù)來(lái)復(fù)位系統(tǒng)。,8.3.3 數(shù)字濾波技術(shù),所謂數(shù)字濾波,就是在單片機(jī)中用某種計(jì)算方法對(duì)輸入的信號(hào)進(jìn)行數(shù)學(xué)處理,以便減少干擾在有用信號(hào)中的比重,提高信號(hào)的真實(shí)性。這種濾波方法不需要增加硬件設(shè)備,只需根據(jù)預(yù)定的濾波算法編制相應(yīng)的程序即可達(dá)到信號(hào)濾波的目的。,下面介紹幾種常用的數(shù)字濾波方法:程序判斷濾波、算術(shù)平均值濾波、加權(quán)平均值濾波、滑動(dòng)平均值濾波、中值濾波、一階滯后

29、濾波和復(fù)合數(shù)字濾波法。,8.3.3 數(shù)字濾波技術(shù),1.程序判斷濾波,程序判斷濾波的方法,是根據(jù)生產(chǎn)經(jīng)驗(yàn),確定出兩次采樣輸入信號(hào)可能出現(xiàn)的最大偏差Y。若實(shí)際先后兩次采樣值大于Y,則表明本次輸入信號(hào)是干擾信號(hào),取上次采樣值作為本次采樣值;若小于Y,則本次采樣值有效,即: 當(dāng)|Yn-Yn-1|Y時(shí),則取Yn=Yn 當(dāng)|Yn-Yn-1|Y時(shí),則取Yn=Yn-1 (8-3) 式中,Yn第n次采樣值; Yn-1第(n-1)次采樣值;Y為相鄰兩次采樣值所允許的最大偏差,它的大小取決于采樣周期T及被測(cè)參數(shù)Y應(yīng)有的正常變化率。因此,一定要按照實(shí)際情況來(lái)確定Y,否則非但達(dá)不到濾波效果,反而會(huì)降低控制品質(zhì)。Y通???/p>

30、根據(jù)經(jīng)驗(yàn)數(shù)據(jù)獲得,必要時(shí),也可由實(shí)驗(yàn)得出。這種程序判斷濾波方法,主要用于變化比較緩慢的參數(shù),如溫度、物理位置等測(cè)試系統(tǒng)。,8.3.3 數(shù)字濾波技術(shù),2. 算術(shù)平均值濾波,算術(shù)平均值法濾波的實(shí)質(zhì)即把連續(xù)采樣的N個(gè)值進(jìn)行算術(shù)平均,作為本次的輸出 ,即:,(8-4),N值決定了信號(hào)平滑度和靈敏度。隨著N的增大,平滑度提高,靈敏度降低。應(yīng)視具體情況選取N,以便得到滿意的濾波效果。為方便求平均值,N值一般取4、8、16之類的2的整數(shù)冪,以使用移位來(lái)代替除法。通常流量信號(hào)取12項(xiàng),壓力信號(hào)取6項(xiàng),溫度、成分等緩慢變化的信號(hào)取2項(xiàng)甚至不平均。這種濾波方法主要用于對(duì)壓力、流量等周期脈動(dòng)的采樣值進(jìn)行平滑加工,但

31、對(duì)偶然出現(xiàn)的脈沖性于擾的平滑作用尚不理想,因而它不適用于脈沖性干擾比較嚴(yán)重的場(chǎng)合。,8.3.3 數(shù)字濾波技術(shù),3. 加權(quán)平均值濾波,算術(shù)平均值濾波法對(duì)每次采樣值給出相同的加權(quán)系數(shù),即1/N。實(shí)際上某些場(chǎng)合需要增加新采樣值在平均值中的比重,可采用加權(quán)平均值濾波法,濾波公式為:,(8-5),其中,K1、K2、Kn為加權(quán)系數(shù),且應(yīng)滿足K1、K2、Kn均大于0,且它們的和為1。加權(quán)系數(shù)體現(xiàn)了各次采樣值在平均值中所占的比例,可根據(jù)具體情況決定,一般采樣次數(shù)愈靠后,取的比例愈大,這樣可增加新的采樣值在平均值中的比例。這種濾波方法可以根據(jù)需要突出信號(hào)的某一部分,抑制信號(hào)的另一部分。,8.3.3 數(shù)字濾波技術(shù)

32、,4. 滑動(dòng)平均值濾波,先在RAM中建立一個(gè)數(shù)據(jù)緩沖區(qū),依順序存放N個(gè)采樣數(shù)據(jù),每采樣進(jìn)一個(gè)新數(shù)據(jù),就將最早采集的那個(gè)數(shù)據(jù)丟掉,而后求包括新數(shù)據(jù)在內(nèi)的N個(gè)數(shù)據(jù)的算數(shù)平均值或加權(quán)平均值。這樣,每進(jìn)行一次采樣,就可計(jì)算出一個(gè)新的平均值,從而加快了數(shù)據(jù)處理的速度。,滑動(dòng)平均值濾波對(duì)周期性干擾有良好的抑制作用,平滑度高,靈敏度低;但對(duì)偶然出現(xiàn)的脈沖性干擾的抑制作用差,不易消除由于脈沖干擾引起的采樣值的偏差,因此它不適用于脈沖干擾比較嚴(yán)重的場(chǎng)合,而適用于高頻振蕩系統(tǒng)。通過(guò)觀察不同N值下滑動(dòng)平均的輸出響應(yīng)來(lái)選取N值,以便既少占有時(shí)間,又能達(dá)到最好濾波效果。通常對(duì)流量信號(hào),N取12,壓力信號(hào)N取4,液面參數(shù)

33、N取412,溫度信號(hào)N取14。,8.3.3 數(shù)字濾波技術(shù),5.中值濾波,中值濾波法就是對(duì)某一被測(cè)參數(shù)連續(xù)采樣N次(一般N取奇數(shù)),然后把N次采樣值按大小排列,取中間值為本次采樣值。中值濾波能有效地克服因偶然因素引起的波動(dòng)干擾。對(duì)溫度、液位等變化緩慢的被測(cè)參數(shù)采用此法能收到良好的濾波效果。但對(duì)于流量、速度等快速變化的參數(shù)一般不宜采用中值濾波法。,8.3.3 數(shù)字濾波技術(shù),6.一階滯后濾波,在單片機(jī)系統(tǒng)中,常用一階滯后RC模擬濾波器來(lái)抑制干擾。當(dāng)用這種方法對(duì)低頻干擾濾波時(shí),要求濾波器有大的時(shí)間常數(shù)和高精度的RC網(wǎng)絡(luò)。濾波時(shí)間常數(shù)越大,要求R、C值越大,其漏電流也必然加大,從而使RC網(wǎng)絡(luò)的精度降低了

34、。采用一階滯后的數(shù)字濾波程序,能很好克服上述這種模擬量濾波器的缺點(diǎn),在濾波常數(shù)要求大的場(chǎng)合,此法更合適。一階滯后濾波算法為: Yn=(1-)Yn-1+Xn (8-6) 式中:Xn第n次采樣值; Yn-1第n-1次濾波結(jié)果輸出值; Yn第n次濾波結(jié)果輸出值; 濾波平滑系數(shù),濾波時(shí)間常數(shù); T采樣周期;,8.3.3 數(shù)字濾波技術(shù),對(duì)于一個(gè)確定的采樣系統(tǒng)而言,T為已知量,所以由 ,可得:,(8-7),當(dāng)1時(shí), ,則式(8-7)可簡(jiǎn)化為:,(8-8),從式(8-8)中可清楚地看出,采樣周期T與RC濾波器的時(shí)間常數(shù)及相應(yīng)的數(shù)字濾波器的濾波平滑系數(shù)之間的關(guān)系。,一階滯后濾波算法對(duì)周期性干擾具有良好的抑制作

35、用,適用于波動(dòng)頻率較高參數(shù)的濾波。其不足之處是帶來(lái)了相位滯后,靈敏度低。滯后的程度取決于的大小。同時(shí),它不能濾除高于采樣頻率二分之一的干擾信號(hào)。,8.3.3 數(shù)字濾波技術(shù),7.復(fù)合數(shù)字濾波,為了進(jìn)一步提高濾波效果,有時(shí)可以把兩種或兩種以上不同濾波功能的數(shù)字濾波器組合起來(lái),組成復(fù)合數(shù)字濾波器,或稱多級(jí)數(shù)字濾波器。,例如,算術(shù)平均值濾波和加權(quán)平均值濾波,都只能對(duì)周期性的脈動(dòng)采樣值進(jìn)行平滑加工,但對(duì)于隨機(jī)的脈沖干擾,如電網(wǎng)的波動(dòng),變送器的臨時(shí)故障等,則無(wú)法消除。然而,中值濾波即可以解決這個(gè)問(wèn)題。因此,可以將算術(shù)平均值濾波和加權(quán)平均值濾波組合起來(lái),形成多功能的復(fù)合濾波。即把采樣值按序排列,然后將最大值

36、和最小值去掉,再把余下的部分求和并取其平均值。這種濾波方法的原理可由下式表示: 若X(1)X(2)X(N), 3N14,則:,(8-9),8.3.4 故障自動(dòng)恢復(fù)處理程序,1.辨別上電方式,所謂辨別上電方式,就是根據(jù)某些信息來(lái)確定是以何種方式進(jìn)入0000H單元的,是上電復(fù)位還是故障復(fù)位。通常以軟件設(shè)置上電標(biāo)志的方式來(lái)判定。,軟件設(shè)置上電標(biāo)志是以單片機(jī)上電復(fù)位后某些寄存器的值、RAM中預(yù)先設(shè)定的標(biāo)志位或程序計(jì)數(shù)器PC的值作為上電標(biāo)志。在程序開始處檢測(cè)這些標(biāo)志位,若改變了,即可認(rèn)為是上電復(fù)位;若未改變,則認(rèn)為是故障復(fù)位。 可以利用PSW、SP、和RAM中特定的單元設(shè)置軟件上電標(biāo)志。PSW中的第5位

37、PSW.5可以由用戶自行設(shè)定,若系統(tǒng)是上電復(fù)位,則PSW的內(nèi)容為00H,程序開始后,通過(guò)將PSW.5置1來(lái)作為上電標(biāo)志;SP的上電復(fù)位值是07H,可以將SP設(shè)置為其他大于07H的值作為上電標(biāo)志;利用RAM與此類似。,8.3.4 故障自動(dòng)恢復(fù)處理程序,例8-3 PSW.5是用戶設(shè)定標(biāo)志,它可以置位和清0,也可供測(cè)試。試用PSW.5作為上電標(biāo)志,編制出相應(yīng)的程序。 解:相應(yīng)的程序清單如下: ORG0000H AJMPSTART START:MOVC, PSW.5;判別標(biāo)志位PSW.5 JCLOOP;PSW.51轉(zhuǎn)向出錯(cuò)程序處理 SETBPSW.5;置PSW.51 LJMPSTART0;轉(zhuǎn)向系統(tǒng)初始

38、化入口 LOOP:LJMPERR;轉(zhuǎn)向出錯(cuò)程序處理,應(yīng)注意,PSW.5標(biāo)志判定僅適合于軟件復(fù)位方式(在RESET為低電平情況下,由軟件控制轉(zhuǎn)到0000H)。,8.3.4 故障自動(dòng)恢復(fù)處理程序,例8-4 單片機(jī)內(nèi)部RAM單元上電復(fù)位時(shí)其狀態(tài)是隨機(jī)的,可以選取內(nèi)部RAM中某個(gè)單元為上電標(biāo)志。如果選用50H、51H單元為上電標(biāo)志單元,上電標(biāo)志字為55H和AAH。試編制相應(yīng)的程序。,ORG0000H AJMPSTART START:MOVA, 50H CJNEA, 55H, LOOP;50H中不為55H則轉(zhuǎn) MOVA, 51H CJNEA, 0AAH, LOOP;51H中不為AAH則轉(zhuǎn) LJMPERR

39、;轉(zhuǎn)向出錯(cuò)程序處理 LOOP:MOV50H, #55H MOV51H, 0AAH LJMPSTART0;轉(zhuǎn)向系統(tǒng)初始化入口,應(yīng)注意,RAM單元上電標(biāo)志適用于硬件、軟件復(fù)位方式。,8.3.4 故障自動(dòng)恢復(fù)處理程序,2.系統(tǒng)的復(fù)位處理,用軟件抗干擾措施來(lái)使失控的系統(tǒng)恢復(fù)到正常狀態(tài),重新進(jìn)行徹底的初始化使系統(tǒng)的狀態(tài)進(jìn)行修復(fù)或有選擇地進(jìn)行部分初始化,這種操作也被稱之為“熱啟動(dòng)”。熱啟動(dòng)首先要對(duì)系統(tǒng)進(jìn)行復(fù)位,也就是執(zhí)行一系列指令來(lái)使各種專用寄存器達(dá)到與硬件復(fù)位時(shí)同樣的狀態(tài),但是需要注意的是還有中斷激活標(biāo)志。因?yàn)镸CS51單片機(jī)系統(tǒng)響應(yīng)中斷后會(huì)自動(dòng)把相應(yīng)的中斷激活標(biāo)志置位,阻止同級(jí)的中斷響應(yīng)。若系統(tǒng)受到干

40、擾后,很可能是在執(zhí)行中斷服務(wù)程序過(guò)程中而導(dǎo)致程序“跑飛”,沒(méi)有執(zhí)行RETI指令而跳出中斷服務(wù)程序,這時(shí)不可能清除該中斷的激活標(biāo)志。這樣,系統(tǒng)熱啟動(dòng)時(shí),不管中斷允許標(biāo)志是否置位,都不予響應(yīng)同級(jí)中斷的請(qǐng)求。由此可見(jiàn),清除中斷激活標(biāo)志是非常重要的。下面給出了一段系統(tǒng)復(fù)位處理的程序。,8.3.4 故障自動(dòng)恢復(fù)處理程序,ORG0080H ERR:CLREA;關(guān)中斷 MOVDPTR, #ERR1;準(zhǔn)備返回地址 PUSHDPL PUSHDPH RETI;清除高優(yōu)先級(jí)中斷激活標(biāo)志 ERR1:MOV50H, #0AAH;重置上電復(fù)位標(biāo)志 MOV51H, #55H MOVDPTR, #ERR2;返回出錯(cuò)處理程序入

41、口地址 PUSHDPL PUSHDPH RETI;清除低優(yōu)先級(jí)中斷激活標(biāo)志,8.3.4 故障自動(dòng)恢復(fù)處理程序,3.RAM數(shù)據(jù)的備份與糾錯(cuò),實(shí)踐表明,在單片機(jī)系統(tǒng)遭受干擾后,儲(chǔ)存在其RAM中的數(shù)據(jù)通常是局部單元會(huì)遭到破壞或值被更改,不可能將RAM區(qū)所有的數(shù)據(jù)都沖掉。因此,在編程時(shí),應(yīng)將一些重要的數(shù)據(jù)多作備份。備份時(shí),各備份數(shù)據(jù)間應(yīng)遠(yuǎn)離且分散設(shè)置,以防同時(shí)被破壞,此外備份數(shù)據(jù)區(qū)應(yīng)遠(yuǎn)離堆棧,避免堆棧操作對(duì)數(shù)據(jù)的更改。對(duì)于重要的數(shù)據(jù),在條件允許的情況下,應(yīng)多作備份。,糾錯(cuò)是根據(jù)備份的數(shù)據(jù)來(lái)進(jìn)行的。將原始數(shù)據(jù)與各備份數(shù)據(jù)的對(duì)應(yīng)單元逐一比較,若這一組單元數(shù)據(jù)中大多數(shù)都是同一個(gè)值,只有少數(shù)單元的值顯示了較大

42、的差異,說(shuō)明某些單元遭到破壞,則把同一值的數(shù)據(jù)作為正確數(shù)據(jù),并將那些存在差異的單元存儲(chǔ)值設(shè)置成與大多數(shù)單元相同的值,完成數(shù)據(jù)的糾錯(cuò),這樣幾份數(shù)據(jù)又保持一致,從而避免了數(shù)據(jù)的丟失。因此,對(duì)RAM中重要的數(shù)據(jù)做備份對(duì)提高RAM數(shù)據(jù)抗干擾能力是很重要的。,8.3.4 故障自動(dòng)恢復(fù)處理程序,4.程序失控后系統(tǒng)信息的恢復(fù),一般來(lái)說(shuō),主程序總是由若干功能模塊組成,每個(gè)功能模塊入口設(shè)置一個(gè)標(biāo)志。系統(tǒng)故障復(fù)位后,可根據(jù)這些標(biāo)志選擇進(jìn)入相應(yīng)的功能模塊。例如,某系統(tǒng)有兩個(gè)功能模塊,當(dāng)系統(tǒng)進(jìn)入第一個(gè)模塊時(shí)。在該單元寫上該模塊的編碼值0AAH,系統(tǒng)退出該模塊、進(jìn)入第二個(gè)模塊后,即將該單元寫上第二個(gè)模塊的編碼值55H。

43、這樣,故障后通過(guò)直接讀取該單元就可以知道故障前程序運(yùn)行至何處。,8.4 Watchdog技術(shù),“看門狗”技術(shù)就是不斷監(jiān)視程序循環(huán)運(yùn)行時(shí)間,若發(fā)現(xiàn)時(shí)間超過(guò)已知的循環(huán)設(shè)定時(shí)間,則認(rèn)為系統(tǒng)陷入了“死循環(huán)”,然后強(qiáng)迫程序返回到0000H入口,在0000H處安排一段出錯(cuò)處理程序,使系統(tǒng)運(yùn)行納入正軌。WDT可以由硬件實(shí)現(xiàn),也可以由軟件實(shí)現(xiàn)。,MCS-51單片機(jī)的片內(nèi)沒(méi)有監(jiān)視定時(shí)器(WDT),但可利用片內(nèi)定時(shí)器與中斷程序,或者片外定時(shí)器與中斷程序來(lái)作為WDT。這種方法要求定時(shí)器的定時(shí)時(shí)間稍大于主程序正常運(yùn)行一個(gè)循環(huán)的時(shí)間,若程序正常運(yùn)行時(shí)間為T,則定時(shí)器的定時(shí)時(shí)間應(yīng)為1.1Ttw2T。注:程序每循環(huán)一次,就

44、要刷新一次定時(shí)器的定時(shí)常數(shù)。只要程序正常運(yùn)行,就不會(huì)出現(xiàn)定時(shí)中斷;只有在程序失常時(shí),不能刷新定時(shí)常數(shù)才產(chǎn)生中斷。此時(shí),在中斷服務(wù)程序中使系統(tǒng)程序從頭開始執(zhí)行,或使程序從失常處重新執(zhí)行。,8.4.1 硬件Watchdog電路,1. 單穩(wěn)態(tài)型Watchdog電路,用雙可再觸發(fā)單穩(wěn)態(tài)多諧振蕩器74LS123構(gòu)成的“看門狗”電路如圖8.22所示。,圖8.22 單穩(wěn)態(tài)“看門狗”電路,8.4.1 硬件Watchdog電路,圖8.22中的雙可再觸發(fā)單穩(wěn)態(tài)多諧振蕩器74LS123在清除端為高電平,B端為高電平的情況下,若A端輸入負(fù)跳變,則單穩(wěn)態(tài)觸發(fā)器脫離原來(lái)的穩(wěn)態(tài)(Q為低電平)進(jìn)入暫態(tài),即Q端變?yōu)楦唠娖?。在?jīng)

45、過(guò)一段延時(shí)后,Q端重新回到穩(wěn)定狀態(tài)。這就使Q端輸出一個(gè)正脈沖,其脈沖寬度由定時(shí)元件R、C決定。當(dāng)C1000pF時(shí),輸出脈沖寬度計(jì)算如下: tw0.45RC (8-10) 式中,R的單位為,C的單位為F,tw的單位為s。,圖8.22中,若R1100k,C10F,則單穩(wěn)態(tài)1#的暫態(tài)時(shí)間tw1為450ms。若R22k,C21F,則單穩(wěn)態(tài)2#的暫態(tài)時(shí)間tw2為0.9s。,8.4.1 硬件Watchdog電路,第一個(gè)單穩(wěn)態(tài)電路的工作狀態(tài)由單片機(jī)的P1.0控制。在系統(tǒng)開始工作時(shí),P1.0向1A端輸入一個(gè)負(fù)脈沖,使1Q端產(chǎn)生正跳變,但并不能觸發(fā)單穩(wěn)2#動(dòng)作,2Q仍為低電平。P1.0負(fù)觸發(fā)脈沖的時(shí)間間隔取決于

46、系統(tǒng)控制主程序運(yùn)行周期的大小。考慮系統(tǒng)參數(shù)的變化及中斷、干擾等因素,必須留有足夠的余量。本系統(tǒng)最大運(yùn)行周期為0.3s。單穩(wěn)1#的輸出脈沖寬度為450ms,若此期間內(nèi)1A端再有負(fù)脈沖輸入,則1Q端高電平就會(huì)在此刻重新實(shí)現(xiàn)450ms的延時(shí)。因此只要在1A端連續(xù)不斷地輸入間隔小于450ms的負(fù)脈沖,則1Q輸出將始終維持在高電平上。這時(shí)2A保持高電平,2#單穩(wěn)不動(dòng)作,2Q端始終維持在低電平。 一旦程序由于干擾而進(jìn)入“死循環(huán)”,“看門狗”脈沖不能正常觸發(fā),經(jīng)過(guò)450ms后單穩(wěn)態(tài)1#脫離暫態(tài),1Q端回到低電平,并觸發(fā)單穩(wěn)態(tài)2#翻轉(zhuǎn)到暫態(tài),在2Q端產(chǎn)生足夠?qū)挼恼}沖(0.9ms),使單片機(jī)可靠復(fù)位。一旦系統(tǒng)

47、復(fù)位后程序就可重新進(jìn)入正常的工作循環(huán)中,使系統(tǒng)的運(yùn)行可靠性大大提高了。,8.4.1 硬件Watchdog電路,例8-5 如圖8.23所示電路為由定時(shí)器/計(jì)數(shù)器8253和可再觸發(fā)單穩(wěn)態(tài)多諧振蕩器74LS123組成的硬件“看門狗”電路,將8253計(jì)數(shù)器0設(shè)置成方式0計(jì)數(shù)結(jié)束中斷方式,試分析其工作原理,8.4.1 硬件Watchdog電路,解:將8253計(jì)數(shù)器0設(shè)置成方式0計(jì)數(shù)結(jié)束中斷方式,寫入控制字后,輸出端OUT為低電平作為初始狀態(tài)。因GATE位始終為高電平,則允許計(jì)數(shù)。對(duì)計(jì)數(shù)器0的計(jì)數(shù)器高字節(jié)和低字節(jié)連續(xù)兩次寫操作(由方式控制字的D5D4確定為11)以啟動(dòng)計(jì)數(shù)器工作。因通常選8253的定時(shí)時(shí)間

48、稍大于正常程序循環(huán)一次運(yùn)行的時(shí)間,所以,若程序正常運(yùn)行,則在計(jì)數(shù)值減到0以前,CPU又重寫計(jì)數(shù)值,將重新啟動(dòng)計(jì)數(shù)器,所以O(shè)UT端仍為低電平,74LS123的 端一直為高電平,不能復(fù)位8051單片機(jī)。但若在計(jì)數(shù)器減到0時(shí)CPU未刷新計(jì)數(shù)值,說(shuō)明程序飛掉或死循環(huán),將產(chǎn)生溢出,則GATE變?yōu)楦唠娖健?”,相當(dāng)于74LS123的A端輸入一個(gè)負(fù)跳變信號(hào),則其進(jìn)入暫穩(wěn)態(tài), 變?yōu)榈碗娖健?”,取反后變?yōu)楦唠娖?,即可?fù)位8051單片機(jī),使程序進(jìn)入0000H重新執(zhí)行程序。,8.4.1 硬件Watchdog電路,2. 由MAX813L構(gòu)成的Watchdog電路,MAX813L是一款帶有WDT和電壓監(jiān)控功能的芯片,

49、其輸入在1.6s內(nèi)沒(méi)有變化時(shí),就會(huì)有復(fù)位輸出,同時(shí),電壓監(jiān)控功能可以保證當(dāng)電源電壓低于1.25V時(shí),產(chǎn)生掉電輸出。此外,MAX813L還具有上電時(shí)自動(dòng)產(chǎn)生200ms寬的復(fù)位脈沖、人工復(fù)位功能,是一款能對(duì)CPU提供良好保護(hù)的芯片。 MAX813L芯片的各引腳功能描述如表8.3所示。,8.4.1 硬件Watchdog電路,表8.3 MAX813L引腳功能,8.4.1 硬件Watchdog電路,例8-6 圖8.24所示為MAX813L與80C51單片機(jī)的接口電路,該電路可以很好地實(shí)現(xiàn)“看門狗”、電源故障監(jiān)控即復(fù)位單片機(jī)的功能。試分析其工作原理。,圖8.24 MAX813L與80C51單片機(jī)的連接圖,

50、8.4.1 硬件Watchdog電路,8.4.2 軟件Watchdog技術(shù),1. 系統(tǒng)復(fù)位的WDT,這種WDT要求片內(nèi)定時(shí)器T0(或T1)工作在定時(shí)器方式,并允許中斷。程序運(yùn)行時(shí),對(duì)T0初始化,使其定時(shí)時(shí)間稍大于程序運(yùn)行時(shí)間,使之不會(huì)溢出。一旦程序因?yàn)楦蓴_或故障出現(xiàn)死循環(huán)時(shí),T0不再被定時(shí)初始化,經(jīng)過(guò)一段時(shí)間便會(huì)溢出,從而激活中斷服務(wù)程序,中斷服務(wù)程序調(diào)節(jié)PC值為0000H,使系統(tǒng)重新運(yùn)行。,8.4.2 軟件Watchdog技術(shù),下面是修改PC值為0000H的中斷服務(wù)程序WDT0和片內(nèi)定時(shí)器T0的初始化子程序SETT0。 ORG0000H LJMPMAIN ORG000BH WDT0:MOVA, 00H POPR0;彈出CPU響應(yīng)中斷時(shí)壓入堆棧內(nèi)的 POPR0故障發(fā)生處的PC值 PUSHA;把PC值換成累加器的內(nèi)容,在此 PUSHA PC=0000H RETI,8.4.2 軟件Watchdog技術(shù),ORG0080H MAIN: ACALL SETT0 ;運(yùn)行正常程序 SETT0:MOVTMOD, 01H;置T0為定時(shí)方式,方式1 MOVIE, #82H;開

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論