抗干擾技術(shù)及舉例_第1頁
抗干擾技術(shù)及舉例_第2頁
抗干擾技術(shù)及舉例_第3頁
抗干擾技術(shù)及舉例_第4頁
抗干擾技術(shù)及舉例_第5頁
已閱讀5頁,還剩108頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第10章章 單片機(jī)系統(tǒng)的抗干擾技術(shù)單片機(jī)系統(tǒng)的抗干擾技術(shù) 10.1 干擾源及其分類干擾源及其分類10.2 干擾對(duì)單片機(jī)系統(tǒng)的影響干擾對(duì)單片機(jī)系統(tǒng)的影響 10.3 硬件抗干擾技術(shù)硬件抗干擾技術(shù)10.4 軟件抗干擾技術(shù)軟件抗干擾技術(shù)10.5 數(shù)字濾波數(shù)字濾波10.1 干擾源及其分類干擾源及其分類 一、一、 干擾的含義干擾的含義 所謂干擾所謂干擾, 一般是指有用信號(hào)以外的噪聲一般是指有用信號(hào)以外的噪聲, 在信號(hào)輸入、在信號(hào)輸入、 傳輸和輸出過程中出現(xiàn)的一些有害的電氣變化現(xiàn)象。這些變傳輸和輸出過程中出現(xiàn)的一些有害的電氣變化現(xiàn)象。這些變化迫使信號(hào)的傳輸值、化迫使信號(hào)的傳輸值、 指示值或輸出值出現(xiàn)誤差指

2、示值或輸出值出現(xiàn)誤差, 出現(xiàn)假像。出現(xiàn)假像。 干擾對(duì)電路的影響干擾對(duì)電路的影響, 輕則降低信號(hào)的質(zhì)量輕則降低信號(hào)的質(zhì)量, 影響系統(tǒng)的穩(wěn)影響系統(tǒng)的穩(wěn)定性定性; 重則破壞電路的正常功能重則破壞電路的正常功能, 造成邏輯關(guān)系混亂造成邏輯關(guān)系混亂, 控制失控制失靈。靈。 二、二、 干擾源的分類干擾源的分類 1. 從干擾的來源劃分從干擾的來源劃分 1) 內(nèi)部干擾內(nèi)部干擾 內(nèi)部干擾是應(yīng)用系統(tǒng)本身引起的各種干擾內(nèi)部干擾是應(yīng)用系統(tǒng)本身引起的各種干擾, 包括固定干包括固定干擾和過渡干擾兩種。固定干擾是指信號(hào)間的相互串?dāng)_、長(zhǎng)擾和過渡干擾兩種。固定干擾是指信號(hào)間的相互串?dāng)_、長(zhǎng)線傳輸阻抗失配時(shí)反射噪聲、負(fù)載突變?cè)肼曇?/p>

3、及饋電系線傳輸阻抗失配時(shí)反射噪聲、負(fù)載突變?cè)肼曇约梆侂娤到y(tǒng)統(tǒng)的浪涌噪聲等。過渡干擾是指電路在動(dòng)態(tài)工作時(shí)引起的干的浪涌噪聲等。過渡干擾是指電路在動(dòng)態(tài)工作時(shí)引起的干擾。擾。 2) 外部干擾外部干擾 外部干擾是由系統(tǒng)外部竄入到系統(tǒng)內(nèi)部的各種干擾。外部干擾是由系統(tǒng)外部竄入到系統(tǒng)內(nèi)部的各種干擾。包括某些自然現(xiàn)象(如閃電、包括某些自然現(xiàn)象(如閃電、 雷擊、地球或宇宙輻射等)雷擊、地球或宇宙輻射等)引起的自然干擾和人為干擾(如電臺(tái)、車輛、家用電器、引起的自然干擾和人為干擾(如電臺(tái)、車輛、家用電器、電器設(shè)備等發(fā)出的電磁干擾電器設(shè)備等發(fā)出的電磁干擾, 以及電源的工頻干擾)。以及電源的工頻干擾)。 一一般來說般來

4、說, 自然干擾對(duì)系統(tǒng)影響不大自然干擾對(duì)系統(tǒng)影響不大, 而人為干而人為干擾則是外部干擾則是外部干擾的關(guān)鍵。擾的關(guān)鍵。 圖 10.1 內(nèi)部和外部干擾示意圖 裝置開口或隙縫處進(jìn)入的輻射干擾裝置開口或隙縫處進(jìn)入的輻射干擾(輻射輻射) 電網(wǎng)變化干擾電網(wǎng)變化干擾(傳輸傳輸) 周圍環(huán)境用電干擾(輻射、 傳輸、 感應(yīng)) 傳輸線上的反射干擾(傳輸) 系統(tǒng)接地不妥引入的干擾(傳輸、 感應(yīng)) 外部線間串?dāng)_(傳輸、 感應(yīng)) 邏輯線路不妥造成的過渡干擾(傳輸) 線間串?dāng)_(感應(yīng)、 傳輸) 電源干擾(傳輸)10 強(qiáng)電器引入的接觸電弧和反電動(dòng)勢(shì)干擾(輻射、 傳輸、 感應(yīng))11 內(nèi)部接地不妥引入的干擾(傳輸)12 漏磁感應(yīng)(感

5、應(yīng))13傳輸線反射干擾(傳輸)14 漏電干擾(傳輸)圖10。2干擾竄入單片機(jī)系統(tǒng)主要途徑示意圖(1)空間感應(yīng);空間感應(yīng);(2)過程通道竄入的干擾;過程通道竄入的干擾;(3)電源系統(tǒng)竄入的干擾;電源系統(tǒng)竄入的干擾;(4)地電位波動(dòng)竄入的干擾;地電位波動(dòng)竄入的干擾;(5)反射波干擾反射波干擾過程通道的干擾:過程通道的干擾: 過程通道的干擾一般分為串模干擾和共模干擾。過程通道的干擾一般分為串模干擾和共模干擾。 (a)內(nèi)部串?dāng)_ (b)外部串?dāng)_串模干擾示意圖 (a)單端輸入 (b)雙端輸入 共模干擾示意圖圖圖10.3 串模干擾與共模干擾波形串模干擾與共模干擾波形(a) 直流信號(hào); (b) 串模干擾; (

6、c) 共模干擾; (d) 串模干擾與共模干擾共同作用2. 按干擾出現(xiàn)的規(guī)律劃分按干擾出現(xiàn)的規(guī)律劃分 1) 固定干擾 2) 半固定干擾 3) 隨機(jī)干擾 表 10.1 常見干擾的種類 三、干擾的耦合方式三、干擾的耦合方式1. 直接耦合方式2. 公共阻抗耦合方式3. 電容耦合方式4. 電磁感應(yīng)耦合方式5. 輻射耦合方式6. 漏電耦合方式四四 抗干擾原則抗干擾原則 所謂抗干擾,就是針對(duì)干擾的產(chǎn)生、性質(zhì)、傳播途徑、所謂抗干擾,就是針對(duì)干擾的產(chǎn)生、性質(zhì)、傳播途徑、侵入的位置和侵入的形式,采取適當(dāng)?shù)姆椒ㄏ蓴_源,抑制侵入的位置和侵入的形式,采取適當(dāng)?shù)姆椒ㄏ蓴_源,抑制耦合通道,減弱電路對(duì)噪聲干擾的敏感性

7、。耦合通道,減弱電路對(duì)噪聲干擾的敏感性。1. 消除干擾源2. 抑制耦合通道3. 減弱電路對(duì)噪聲干擾的敏感性10.2 干擾對(duì)單片機(jī)系統(tǒng)的影響干擾對(duì)單片機(jī)系統(tǒng)的影響 圖 10.4 干擾入侵單片機(jī)系統(tǒng)的途徑 10.3 硬件抗干擾技術(shù)硬件抗干擾技術(shù) 10.3.1 串模干擾的抑制方法串模干擾的抑制方法 一、一、 光電隔離光電隔離 圖圖 10.5 二極管、三極管光電耦合器 1. 輸入輸出隔離輸入輸出隔離 1) 脈沖電路的應(yīng)用 門電路將不同電位的信號(hào), 加到光電耦合器上, 構(gòu)成簡(jiǎn)單的邏輯電路, 可方便地用于各種邏輯電路相連的輸入端, 能把信號(hào)送到輸出端, 而輸入端的噪聲不會(huì)送出。 2) 整形放大 在測(cè)量微弱

8、電流時(shí), 常常采用由光電耦合器構(gòu)成的整形放大器。若放大器中使用機(jī)械換流器(或場(chǎng)效應(yīng)管)時(shí), 響應(yīng)速度慢, 有尖峰干擾, 影響電路工作。采用光電耦合器就沒有這樣的問題, 尖峰噪聲可以去掉。 光電耦合器的幾個(gè)特點(diǎn):光電耦合器的幾個(gè)特點(diǎn):(1) 輸入和輸出在電氣上是隔離的。輸入和輸出在電氣上是隔離的。(2) 光電耦合器的光電耦合部分不會(huì)受到外界光的干擾。光電耦合器的光電耦合部分不會(huì)受到外界光的干擾。(3) 光電耦合器的輸入阻抗很低光電耦合器的輸入阻抗很低(一般為一般為1001K),而干,而干擾源內(nèi)阻一般都很大擾源內(nèi)阻一般都很大(105106)。按分壓原理,傳送到光。按分壓原理,傳送到光電耦合器輸入端

9、的干擾電壓就變得很小了。電耦合器輸入端的干擾電壓就變得很小了。(4) 光電耦合器的發(fā)光二極管只有通過一定的電流才發(fā)光,光電耦合器的發(fā)光二極管只有通過一定的電流才發(fā)光,因此,即使電壓幅值很高的干擾,若沒有足夠的能量,也因此,即使電壓幅值很高的干擾,若沒有足夠的能量,也不能使二極管發(fā)光,顯然,干擾就被抑制掉了。不能使二極管發(fā)光,顯然,干擾就被抑制掉了。(5) 輸入回路與輸出回路之間分布電容極小,因此,在回路輸入回路與輸出回路之間分布電容極小,因此,在回路中,一端的干擾很難通過光電耦合器饋送到另一端去。中,一端的干擾很難通過光電耦合器饋送到另一端去。長(zhǎng)線傳輸光電耦合浮置處理圖 10.6 可控硅感性負(fù)

10、載開關(guān)電路繼電器隔離脈沖變壓器隔離法脈沖變壓器隔離法傳遞脈沖輸入/輸出信號(hào)時(shí),不能傳遞直流分量。 對(duì)于一般的交流信號(hào),可以用普通變壓器實(shí)現(xiàn)隔離。 交流信號(hào)的幅度檢測(cè)二、二、 硬件濾波電路硬件濾波電路 圖 10.7 四種濾波器的結(jié)構(gòu)圖 三、三、 過壓保護(hù)電路過壓保護(hù)電路 在輸入通道上采用一定的過壓保護(hù)電路, 以防引入高壓, 損壞系統(tǒng)電路。 過壓保護(hù)電路由限流電阻和穩(wěn)壓管組成, 穩(wěn)壓值以略高于最高傳送信號(hào)電壓為宜。對(duì)于微弱信號(hào)(0.2 V 以下), 采用兩支反并聯(lián)的二極管, 也可起到過壓保護(hù)作用。 四、四、 調(diào)制解調(diào)技術(shù)調(diào)制解調(diào)技術(shù) 有時(shí), 有效信號(hào)的頻譜與干擾的頻譜相互交錯(cuò), 使用一般硬件濾波很

11、難分離, 可采用調(diào)制解調(diào)技術(shù)。先用已知頻率的信號(hào)對(duì)有效信號(hào)進(jìn)行調(diào)制, 調(diào)制后的信號(hào)頻譜應(yīng)遠(yuǎn)離干擾信號(hào)的頻譜區(qū)域。傳輸中各種干擾信號(hào)很容易被濾波器濾除, 被調(diào)制的有效信號(hào)經(jīng)解調(diào)器解調(diào)后,恢復(fù)原狀。有時(shí), 不用硬件解調(diào), 運(yùn)用軟件中的相關(guān)算法, 也可達(dá)到解調(diào)的目的。 五、五、 抗干擾穩(wěn)壓電源抗干擾穩(wěn)壓電源 (1) 應(yīng)用系統(tǒng)的供電線路和產(chǎn)生干擾的用電設(shè)備分開供電。 (2) 通過低通濾波器和隔離變壓器接入電網(wǎng), 如圖 5.8 所示。 (3) 整流組件上并接濾波電容。濾波電容選用1 000 pF 0.01 F的瓷片電容, 接法參見圖 5.8。 (4) 采用高質(zhì)量的穩(wěn)壓電源。 圖 10.8 抗干擾穩(wěn)壓電源

12、 六、六、 數(shù)字信號(hào)采用負(fù)邏輯傳輸數(shù)字信號(hào)采用負(fù)邏輯傳輸 干擾源作用于高阻線路上, 容易形成較大幅度的干擾信號(hào), 而對(duì)低阻線路影響要小一些。在數(shù)字系統(tǒng)中, 輸出低電平時(shí)內(nèi)阻較小, 輸出高電平時(shí)內(nèi)阻較大。如果我們采用負(fù)邏輯傳輸, 就可以減少干擾引起的誤動(dòng)作, 提高數(shù)字信號(hào)傳輸?shù)目煽啃浴?10.3.2 共模干擾的抑制方法共模干擾的抑制方法 一、一、 平衡對(duì)稱輸入平衡對(duì)稱輸入 在設(shè)計(jì)信號(hào)源時(shí)盡可能做到平衡和對(duì)稱,否則會(huì)產(chǎn)生附加的共模干擾。 二、二、 選用高質(zhì)量的差動(dòng)放大器選用高質(zhì)量的差動(dòng)放大器 要求差動(dòng)放大器具有高增益、低噪聲、低漂移、寬頻帶等特點(diǎn), 以便獲得足夠高的共模抑制比。 三、三、 良好的接

13、地系統(tǒng)良好的接地系統(tǒng) 接地不良時(shí)將形成較明顯的共模干擾。如沒有條件進(jìn)行良好接地, 不如將系統(tǒng)浮置起來, 再配合采用合適的屏蔽措施, 效果也不錯(cuò)。 1. 交流地 交流地是單片機(jī)交流供電電源地,即動(dòng)力線地。交流地是單片機(jī)交流供電電源地,即動(dòng)力線地。2. 系統(tǒng)地 是指信號(hào)回路的基準(zhǔn)導(dǎo)體是指信號(hào)回路的基準(zhǔn)導(dǎo)體(如控制電源的零電位如控制電源的零電位)。3. 安全地 其目的是使設(shè)備機(jī)殼與大地等電位,以避免機(jī)殼帶電而其目的是使設(shè)備機(jī)殼與大地等電位,以避免機(jī)殼帶電而影響人身及設(shè)備安全。通常安全地又稱為保護(hù)地或機(jī)殼地。影響人身及設(shè)備安全。通常安全地又稱為保護(hù)地或機(jī)殼地。4. 數(shù)字地 作為單片機(jī)系統(tǒng)中各種數(shù)字電路

14、的零電位,應(yīng)該與模擬作為單片機(jī)系統(tǒng)中各種數(shù)字電路的零電位,應(yīng)該與模擬地分開,避免模擬信號(hào)受數(shù)字脈沖的干擾。地分開,避免模擬信號(hào)受數(shù)字脈沖的干擾。5. 模擬地 作為傳感器、變送器、放大器、作為傳感器、變送器、放大器、A/D轉(zhuǎn)換器和轉(zhuǎn)換器和D/A轉(zhuǎn)換轉(zhuǎn)換器中模擬地的零電位。器中模擬地的零電位。單片機(jī)中多種地的含義:?jiǎn)纹瑱C(jī)中多種地的含義: 四、四、 系統(tǒng)接地點(diǎn)的正確連接系統(tǒng)接地點(diǎn)的正確連接 1. 一點(diǎn)接地和多點(diǎn)接地的應(yīng)用原則一點(diǎn)接地和多點(diǎn)接地的應(yīng)用原則 (1) 一般高頻電路應(yīng)就近多點(diǎn)接地, 低頻電路應(yīng)一點(diǎn)接地。在高頻電路中, 地線上具有電感, 因而增加了地線阻抗, 而且地線變成了天線, 向外輻射噪聲

15、信號(hào), 因此, 要多點(diǎn)就近接地。在低頻電路中, 接地電路若形成環(huán)路, 對(duì)系統(tǒng)影響很大, 因此應(yīng)一點(diǎn)接地。 (2) 交流地、功率地與信號(hào)地不能公用。 流過交流地和功率地的電流較大, 會(huì)造成數(shù)毫伏、甚至幾伏電壓, 這會(huì)嚴(yán)重地干擾低電平信號(hào)的電路, 因此信號(hào)地與交流地、功率地分開。 (3) 信號(hào)地與屏蔽地的連接不能形成死循環(huán)回路。 否則會(huì)感生出電壓, 形成干擾信號(hào)。 (4) 傳感器、變送器和放大器等通常采用屏蔽罩,而信號(hào)的傳送往往使用屏蔽線。對(duì)于這些屏蔽層的接地要十分謹(jǐn)慎,應(yīng)該遵循單點(diǎn)接地原則。 (5) 數(shù)字地與模擬地應(yīng)分開, 最后單點(diǎn)相連。 2. 印制板的地線布置印制板的地線布置 圖 10.9 導(dǎo)

16、線的長(zhǎng)度寬度與電流關(guān)系 圖10.10 芯片的布置 五、五、 屏蔽屏蔽 用金屬外殼將整機(jī)或部分元器件包圍起來, 再將金屬外殼接地, 就能起到屏蔽的作用, 對(duì)于各種通過電磁感應(yīng)引起的干擾特別有效。 屏蔽外殼的接地點(diǎn)要與系統(tǒng)的信號(hào)參考點(diǎn)相接,而且只能單點(diǎn)接地, 所有具有同參考點(diǎn)的電路必須裝在同一屏蔽盒內(nèi)。如有引出線, 應(yīng)采用屏蔽線, 其屏蔽層應(yīng)和外殼在同一點(diǎn)接系統(tǒng)參考點(diǎn)。參考點(diǎn)不同的系統(tǒng)應(yīng)分別屏蔽, 不可共處一個(gè)屏蔽盒內(nèi)。 10.4 軟件抗干擾技術(shù)軟件抗干擾技術(shù) 10.4.1 數(shù)字量數(shù)字量I/O通道中的軟件抗干擾通道中的軟件抗干擾 一、一、 數(shù)字量輸入方法數(shù)字量輸入方法二、二、 數(shù)字量輸出方法數(shù)字量

17、輸出方法 圖 10.11 開關(guān)量信號(hào)采樣流程 10.4.2 程序執(zhí)行過程中的軟件抗干擾程序執(zhí)行過程中的軟件抗干擾 一、一、 程序程序“跑飛跑飛”二、二、 指令冗余指令冗余 所謂指令冗余技術(shù)是指在程序的關(guān)鍵地方人為所謂指令冗余技術(shù)是指在程序的關(guān)鍵地方人為地加入一些單字節(jié)指令地加入一些單字節(jié)指令NOP,或?qū)⒂行巫止?jié)指令,或?qū)⒂行巫止?jié)指令重寫,當(dāng)程序重寫,當(dāng)程序“跑飛跑飛”到某條單字節(jié)指令上,就不到某條單字節(jié)指令上,就不會(huì)發(fā)生將操作數(shù)當(dāng)作指令來執(zhí)行的錯(cuò)誤,使程序迅會(huì)發(fā)生將操作數(shù)當(dāng)作指令來執(zhí)行的錯(cuò)誤,使程序迅速納入正軌。常用的指令冗余技術(shù)有兩種:速納入正軌。常用的指令冗余技術(shù)有兩種:NOP指指令和

18、重要指令冗余。令和重要指令冗余。三、三、 軟件陷阱軟件陷阱 所謂軟件陷阱,就是當(dāng)所謂軟件陷阱,就是當(dāng)PC失控,造成程序失控,造成程序“亂亂飛飛”而進(jìn)入非程序區(qū)時(shí),在非程序區(qū)設(shè)置一些攔截程而進(jìn)入非程序區(qū)時(shí),在非程序區(qū)設(shè)置一些攔截程序,將失控的程序引至復(fù)位入口地址序,將失控的程序引至復(fù)位入口地址0000H或處理錯(cuò)或處理錯(cuò)誤程序的入口地址誤程序的入口地址ERR,在此處將程序轉(zhuǎn)向?qū)iT對(duì)程,在此處將程序轉(zhuǎn)向?qū)iT對(duì)程序出錯(cuò)進(jìn)行處理的程序,使程序納入正軌。軟件陷阱序出錯(cuò)進(jìn)行處理的程序,使程序納入正軌。軟件陷阱可以采用可以采用3種形式如下表所示。種形式如下表所示。軟件陷阱形式程序形式軟件陷阱形式對(duì)應(yīng)入口形式形

19、式之一NOPNOPLJMP 0000H0000H:LJMP MAIN;運(yùn)行程序形式之二LJMP 0202HLJMP 0000H0000H:LJMP MAIN;運(yùn)行主程序0202H:LJMP 0000H形式之三LJMP ERRERR:;錯(cuò)誤處理程序 “軟件陷阱軟件陷阱”一般安排在下列四種地方。一般安排在下列四種地方。 1. 未使用的中斷向量區(qū)未使用的中斷向量區(qū) MCS - 51 單片機(jī)的中斷向量區(qū)為單片機(jī)的中斷向量區(qū)為 0003H002FH, 如果系如果系統(tǒng)程序未使用完全部中斷向量區(qū)統(tǒng)程序未使用完全部中斷向量區(qū), 則可在剩余的中斷向量區(qū)安則可在剩余的中斷向量區(qū)安排排“軟件陷阱軟件陷阱”, 以便能

20、捕捉到錯(cuò)誤的中斷。以便能捕捉到錯(cuò)誤的中斷。 如某系統(tǒng)使用如某系統(tǒng)使用了兩個(gè)外部中斷了兩個(gè)外部中斷INT0、INT1和一個(gè)定時(shí)器溢出中斷和一個(gè)定時(shí)器溢出中斷T0, 它們它們的中斷服務(wù)子程序入口地址分別的中斷服務(wù)子程序入口地址分別為為FUINT0、 FUINT1和和 FUT0, 即可按下面的方式來設(shè)置中斷向量區(qū)即可按下面的方式來設(shè)置中斷向量區(qū): ORG 0000H 0000H START: LJMP MAIN ; 引向主程序入口引向主程序入口0003H LJMP FUINT0 ; INT0中斷服務(wù)程序入口中斷服務(wù)程序入口006H NOP ; 冗余指令冗余指令007H NOP 008H LJMP E

21、RR ; 陷阱陷阱0013H LJMP FUT0 ; T0中斷服務(wù)程序入口中斷服務(wù)程序入口00EH NOP ; 冗余指令冗余指令 00FH NOP ; 0010H LJMP ERR ; 陷阱陷阱0013H LJMP FUINT1 ; INT1中斷服務(wù)程序入口中斷服務(wù)程序入口0016H NOP ; 冗余指令冗余指令0017H NOP 0018H LJMP ERR ; 陷阱陷阱001BH LJMP ERR ; 未使用未使用T1中斷中斷, 設(shè)陷阱設(shè)陷阱001EH NOP ; 冗余指令冗余指令001FH NOP 0020H LJMP ERR ; 陷阱陷阱 0023H LJMP ERR ; 未使用串口中

22、斷未使用串口中斷, 設(shè)陷阱設(shè)陷阱0026H NOP ; 冗余指令冗余指令0027H NOP 0028H LJMP ERR ; 陷阱陷阱002BH LJMP ERR ; 未使用未使用T2中斷中斷, 設(shè)陷阱設(shè)陷阱002EH NOP ; 冗余指令冗余指令002FH NOP 0030H MAIN: ; 主程序主程序 2. 未使用的大片未使用的大片EPROM空間空間 程序一般都不會(huì)占用程序一般都不會(huì)占用EPROM芯片的全部空間芯片的全部空間, 對(duì)于剩對(duì)于剩余未編程的余未編程的EPROM空間空間, 一般都維持原狀一般都維持原狀, 即其內(nèi)容為即其內(nèi)容為 0FFH。 0FFH對(duì)于對(duì)于MCS - 51 單片機(jī)的

23、指令系統(tǒng)來說是一條單片機(jī)的指令系統(tǒng)來說是一條單字節(jié)的指令單字節(jié)的指令: MOV R7, A。 如果程序如果程序“跑飛跑飛”到這一區(qū)域到這一區(qū)域, 則將順則將順利向后執(zhí)行利向后執(zhí)行, 不再跳躍(除非又受到新的干擾)。因此在這不再跳躍(除非又受到新的干擾)。因此在這段區(qū)域內(nèi)每隔一段地址設(shè)一個(gè)陷阱段區(qū)域內(nèi)每隔一段地址設(shè)一個(gè)陷阱, 就一定能捕捉到就一定能捕捉到“跑飛跑飛”的程序的程序。 3. 表格表格 有兩種表格有兩種表格: 一類是數(shù)據(jù)表格一類是數(shù)據(jù)表格, 供供MOVC A, A+PC 指指令或令或MOVC A, A+DPTR指令使用指令使用, 其內(nèi)容完全不是指令。其內(nèi)容完全不是指令。另一類是散轉(zhuǎn)表格

24、另一類是散轉(zhuǎn)表格, 供供JMP A+DPTR指令使用指令使用, 其內(nèi)容為一其內(nèi)容為一系列的系列的 3 字節(jié)指令字節(jié)指令LJMP或或 2 字節(jié)指令字節(jié)指令A(yù)JMP。 由于表格的由于表格的內(nèi)容與檢索值有一一對(duì)應(yīng)的關(guān)系內(nèi)容與檢索值有一一對(duì)應(yīng)的關(guān)系, 在表格中間安排陷阱會(huì)破壞在表格中間安排陷阱會(huì)破壞其連續(xù)性和對(duì)應(yīng)關(guān)系其連續(xù)性和對(duì)應(yīng)關(guān)系, 因此只能在表格的最后安排陷阱。如果因此只能在表格的最后安排陷阱。如果表格區(qū)較長(zhǎng)表格區(qū)較長(zhǎng), 則安排在最后的陷阱不能保證一定能捕捉則安排在最后的陷阱不能保證一定能捕捉“跑飛跑飛”來的程序來的程序, 有可能在中途再次有可能在中途再次“跑飛跑飛”, 這時(shí)只好指望別處的這時(shí)只

25、好指望別處的陷阱或冗余指令來捕捉。陷阱或冗余指令來捕捉。 4. 程序區(qū)程序區(qū) 程序區(qū)是由一系列的指令構(gòu)成的程序區(qū)是由一系列的指令構(gòu)成的, 不能在這些指令中間不能在這些指令中間任意安排陷阱任意安排陷阱, 否則會(huì)破壞正常的程序流程。但是否則會(huì)破壞正常的程序流程。但是, 在這些在這些指令中間常常有一些斷點(diǎn)指令中間常常有一些斷點(diǎn), 正常的程序執(zhí)行到斷點(diǎn)處就不再正常的程序執(zhí)行到斷點(diǎn)處就不再往下執(zhí)行了往下執(zhí)行了, 這類指令有這類指令有LJMP、 SJMP、 AJMP、 RET、 RETI, 這時(shí)這時(shí)PC的值應(yīng)發(fā)生正常跳變。的值應(yīng)發(fā)生正常跳變。 如果在這些地方設(shè)置如果在這些地方設(shè)置陷阱就有可能捕捉到陷阱就有

26、可能捕捉到“跑飛跑飛”的程序。的程序。 例如例如, 對(duì)一個(gè)累加對(duì)一個(gè)累加器器A的內(nèi)容的正、負(fù)的內(nèi)容的正、負(fù)和零的情況進(jìn)行三分支的程序和零的情況進(jìn)行三分支的程序, 軟件陷軟件陷阱安排如下阱安排如下: JNZ XYZ ; 零處理零處理 AJMP ABC ; 斷點(diǎn)斷點(diǎn)NOPNOPLJMP ERR ; 陷阱陷阱XYZ: JB ACC.7, UVW ; 正處理正處理 AJMP ABC ; 斷點(diǎn)斷點(diǎn) NOP NOP LJMP ERR ; 陷阱陷阱UVW: ; 負(fù)處理負(fù)處理ABC: MOV A, R2 ; 取結(jié)果取結(jié)果 RET ; 斷點(diǎn)斷點(diǎn) NOP NOP LJMP ERR ; 陷阱陷阱 RAM數(shù)據(jù)保護(hù)的條

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

28、#0AAHNOPNOPCJNE 6EH, #55H, XJ ;6EH中不為中不為55H則落入死循環(huán)則落入死循環(huán)CJNE 6FH, #0AAH, XJ ;6FH中不為中不為AAH則落入死循環(huán)則落入死循環(huán)MOVX DPTR, A ;A中數(shù)據(jù)寫入中數(shù)據(jù)寫入RAM的的XXXXH單元中單元中NOPNOPMOV 6EH, #00HMOV 6FH, #00HRETXJ:NOP;死循環(huán)死循環(huán)NOPSJMP XJ 落入死循環(huán)以后,可以通過后面將要介紹的落入死循環(huán)以后,可以通過后面將要介紹的“看門狗看門狗”技術(shù)來復(fù)位系統(tǒng)。技術(shù)來復(fù)位系統(tǒng)。 四、四、 WATCHDOG 如果如果“跑飛跑飛”的程序落到一個(gè)臨時(shí)構(gòu)成的死

29、循環(huán)中的程序落到一個(gè)臨時(shí)構(gòu)成的死循環(huán)中, 冗冗余指令和軟件陷阱都將無能為力余指令和軟件陷阱都將無能為力, 這時(shí)可采取這時(shí)可采取WATCHDOG(俗稱(俗稱“看門狗看門狗”)措施。)措施。 WATCHDOG有如下特性有如下特性: (1) 本身能獨(dú)立工作本身能獨(dú)立工作, 基本上不依賴于基本上不依賴于CPU。 CPU只在一只在一個(gè)固定的時(shí)間間隔內(nèi)與之打一次交道個(gè)固定的時(shí)間間隔內(nèi)與之打一次交道, 表明整個(gè)系統(tǒng)表明整個(gè)系統(tǒng)“目前目前尚屬正常尚屬正常”。 (2) 當(dāng)當(dāng)CPU落入死循環(huán)后落入死循環(huán)后, 能及時(shí)發(fā)現(xiàn)并使整個(gè)系統(tǒng)復(fù)位。能及時(shí)發(fā)現(xiàn)并使整個(gè)系統(tǒng)復(fù)位。 圖 10.12 硬件WATCHDOG電路 也可以

30、用軟件程序來形成也可以用軟件程序來形成WATCHDOG。例如。例如, 可以采用可以采用 8031的定時(shí)器的定時(shí)器T0來形成來形成WATCHDOG。將。將T0的溢出中斷設(shè)為高的溢出中斷設(shè)為高優(yōu)先級(jí)中斷優(yōu)先級(jí)中斷, 其它中斷均設(shè)置為低優(yōu)先級(jí)中斷其它中斷均設(shè)置為低優(yōu)先級(jí)中斷,若采用若采用6MHz的的時(shí) 鐘時(shí) 鐘 , 則 可 用 以 下 程 序 使則 可 用 以 下 程 序 使 T0定 時(shí) 約定 時(shí) 約 1 0 m s 來 形 成 軟 件來 形 成 軟 件WATCHDOG: MOV TMOD, 01H ; 置置T0為定時(shí)器為定時(shí)器 SETB ET0 ; 允許允許T0中斷中斷 SETB PT0 ; 設(shè)置

31、設(shè)置T0為高優(yōu)先級(jí)中斷為高優(yōu)先級(jí)中斷 MOV TH0, 0E0H ; 定時(shí)約定時(shí)約 10 ms SETB TR0 ; 啟動(dòng)啟動(dòng)T0 SETB EA ; 開中斷開中斷 WATCHDOG啟動(dòng)后,主程序要每隔小于啟動(dòng)后,主程序要每隔小于10ms執(zhí)行一次。執(zhí)行一次。 MOV TH0, 0E0H。使得。使得T0不會(huì)溢出中不會(huì)溢出中斷。斷。 如果如果T0中斷,則在中斷向量區(qū)安放一條轉(zhuǎn)移到中斷,則在中斷向量區(qū)安放一條轉(zhuǎn)移到出錯(cuò)處理的轉(zhuǎn)移指令。出錯(cuò)處理的轉(zhuǎn)移指令。 也可以在中斷服務(wù)程序中使系統(tǒng)程序從頭開始執(zhí)也可以在中斷服務(wù)程序中使系統(tǒng)程序從頭開始執(zhí)行,或使程序從失常處重新執(zhí)行。行,或使程序從失常處重新執(zhí)行。

32、ORG 0000H LJMP MAIN ORG 000BHWDT0: MOV A, 00H POP R0 ;彈出彈出CPU響應(yīng)中斷時(shí)壓入堆棧內(nèi)的響應(yīng)中斷時(shí)壓入堆棧內(nèi)的 POP R0 故障發(fā)生處的故障發(fā)生處的PC值值 PUSH A ;把把PC值換成累加器的內(nèi)容,在此值換成累加器的內(nèi)容,在此 PUSH A PC=0000H RETI中斷使中斷使系統(tǒng)程序從頭開始執(zhí)行程序:系統(tǒng)程序從頭開始執(zhí)行程序:10.4.3 系統(tǒng)的恢復(fù)系統(tǒng)的恢復(fù) 一、一、 系統(tǒng)的復(fù)位系統(tǒng)的復(fù)位 如用軟件如用軟件WATCHDOG使系統(tǒng)復(fù)位時(shí)使系統(tǒng)復(fù)位時(shí), 程序出錯(cuò)有可能程序出錯(cuò)有可能發(fā)生在中斷子程序中發(fā)生在中斷子程序中, 中斷激活標(biāo)

33、志已經(jīng)置位中斷激活標(biāo)志已經(jīng)置位, 它將阻止同級(jí)它將阻止同級(jí)的中斷響應(yīng)的中斷響應(yīng), 由于軟件由于軟件WATCHDOG是高級(jí)中斷是高級(jí)中斷, 它將阻止所它將阻止所有的中斷響應(yīng)。由此可見清除中斷激活標(biāo)志的重要性。有的中斷響應(yīng)。由此可見清除中斷激活標(biāo)志的重要性。 在在所有的指令中所有的指令中, 只有只有RETI指令能清指令能清除中斷激活標(biāo)志。前面提除中斷激活標(biāo)志。前面提到的出錯(cuò)處理程序到的出錯(cuò)處理程序ERR主要是完成這一功能。主要是完成這一功能。 這部分程序這部分程序如下如下: ORG 3000H ERR: CLR EA ; 關(guān)中斷關(guān)中斷 MOV DPTR, ERR1 ; 準(zhǔn)備返回地址準(zhǔn)備返回地址 P

34、USH DPL PUSH DPH RETI ; 清除高優(yōu)先級(jí)中斷激活標(biāo)志清除高優(yōu)先級(jí)中斷激活標(biāo)志ERR1: MOV 66H, 0AAH ; 重建上電標(biāo)志重建上電標(biāo)志 MOV 67H, 55H CLR A ; 準(zhǔn)備復(fù)位地址準(zhǔn)備復(fù)位地址 PUSH ACC ; 壓入復(fù)位地址壓入復(fù)位地址 PUSH ACC RETI ; 清除低級(jí)中斷激活標(biāo)志清除低級(jí)中斷激活標(biāo)志 圖 10.13 系統(tǒng)復(fù)位策略 二、二、 熱啟動(dòng)的過程熱啟動(dòng)的過程 在進(jìn)行熱啟動(dòng)時(shí)在進(jìn)行熱啟動(dòng)時(shí), 為使啟動(dòng)過程能順利進(jìn)行為使啟動(dòng)過程能順利進(jìn)行, 首先關(guān)中斷首先關(guān)中斷并重新設(shè)置堆棧。并重新設(shè)置堆棧。 即使系統(tǒng)復(fù)位的第一條指令應(yīng)為關(guān)中斷指即使系統(tǒng)

35、復(fù)位的第一條指令應(yīng)為關(guān)中斷指令。令。 因?yàn)闊釂?dòng)過程是由軟件復(fù)位(如軟件因?yàn)闊釂?dòng)過程是由軟件復(fù)位(如軟件WATCHDOG等)等)引起的引起的, 這時(shí)中斷系統(tǒng)未被關(guān)閉這時(shí)中斷系統(tǒng)未被關(guān)閉, 有些中斷請(qǐng)求允許正在排隊(duì)有些中斷請(qǐng)求允許正在排隊(duì)等待響應(yīng)等待響應(yīng); 再者,在熱啟動(dòng)過程中要執(zhí)行各種子程序再者,在熱啟動(dòng)過程中要執(zhí)行各種子程序, 而子程而子程序的工作需要堆棧的配合序的工作需要堆棧的配合, 在系統(tǒng)得到正確恢復(fù)之前堆棧指針在系統(tǒng)得到正確恢復(fù)之前堆棧指針的值是無法確定的的值是無法確定的, 所以在正式恢復(fù)之前要先設(shè)置好棧底,即所以在正式恢復(fù)之前要先設(shè)置好棧底,即第二條指令應(yīng)為重新設(shè)置棧底指令。然后第

36、二條指令應(yīng)為重新設(shè)置棧底指令。然后,將所有的將所有的I/O設(shè)備設(shè)備都設(shè)置成安全狀態(tài)都設(shè)置成安全狀態(tài), 封鎖封鎖I/O操作操作, 以免干擾造成的破壞進(jìn)一步以免干擾造成的破壞進(jìn)一步擴(kuò)大。擴(kuò)大。 接著接著, 根據(jù)系統(tǒng)中殘留的信息進(jìn)行恢復(fù)工作。根據(jù)系統(tǒng)中殘留的信息進(jìn)行恢復(fù)工作。 圖 10.14 三中取二表決流程 三、三、 系統(tǒng)信息的恢復(fù)系統(tǒng)信息的恢復(fù) 首先將要恢復(fù)的單字節(jié)信息及它的兩個(gè)備份信息分別存首先將要恢復(fù)的單字節(jié)信息及它的兩個(gè)備份信息分別存放到工作寄存器放到工作寄存器R2、R3 和和R4 中中, 再調(diào)用表決子程序。子程再調(diào)用表決子程序。子程序出口時(shí)序出口時(shí), 若若F0=0, 表示表決成功表示表決

37、成功, 即三個(gè)數(shù)據(jù)中有兩個(gè)是相即三個(gè)數(shù)據(jù)中有兩個(gè)是相同的同的; 若若F0=1, 表示表決失敗表示表決失敗, 即三即三個(gè)數(shù)據(jù)互不相同。表決結(jié)個(gè)數(shù)據(jù)互不相同。表決結(jié)果存放在累加器果存放在累加器A中中, 程序如下程序如下: VOTE3: MOV A, R3 ; 第一數(shù)據(jù)與第二數(shù)據(jù)比較第一數(shù)據(jù)與第二數(shù)據(jù)比較 XRL A, R3 ; JZ VOTE32 MOV A, R2 ; 第一數(shù)據(jù)與第三數(shù)據(jù)比較第一數(shù)據(jù)與第三數(shù)據(jù)比較 XRL A, R4 JZ VOTE32 MOV A, R3 ; 第一數(shù)據(jù)與第三數(shù)據(jù)比較第一數(shù)據(jù)與第三數(shù)據(jù)比較 XRL A, R4 ; JZ VOTE31 SETB F0 ; 失敗失敗

38、RET VOTE31: MOV A, R3; 以第二數(shù)據(jù)為準(zhǔn)以第二數(shù)據(jù)為準(zhǔn) MOV R2, AVOTE32: CLR F0 ; 成功成功 MOV A, R2 ; 取結(jié)果取結(jié)果 RET 對(duì)于雙字節(jié)數(shù)據(jù)對(duì)于雙字節(jié)數(shù)據(jù), 表決前將三份數(shù)據(jù)分別存入表決前將三份數(shù)據(jù)分別存入R2R3、 R4R5、 R6R7中中, 表決成功后表決成功后, 結(jié)果在結(jié)果在R2R3中。中。 程序如下程序如下: VOTE2: MOV A , R2 ; 第一數(shù)據(jù)與第二數(shù)據(jù)比較第一數(shù)據(jù)與第二數(shù)據(jù)比較 XRL A, R4 JNZ VOTE21 MOV A, R3 XRL A, R5 JZ VOTE25VOTE21: MOV A, R2

39、; 第一數(shù)據(jù)與第三數(shù)據(jù)比較第一數(shù)據(jù)與第三數(shù)據(jù)比較 XRL A, R6 JNZ VOTE22 MOV A, R3 XRL A, R7 JZ VOTE25 VOTE22: MOV A, R4; 第二數(shù)據(jù)與第三數(shù)據(jù)比較第二數(shù)據(jù)與第三數(shù)據(jù)比較 XRL A, R6 JNZ VOTE23 MOV A, R5 XRL A, R7 JZ VOTE24VOTE23: SETB F0 ; 失敗失敗 RET VOTE24: MOV A, R4; 以第二數(shù)據(jù)為準(zhǔn)以第二數(shù)據(jù)為準(zhǔn) MOV R2, A MOV A, R5 MOV R3, AVOTE25: CLR F0 ; 成功成功 RET 硬件硬件“看門狗看門狗”技術(shù)能有

40、效監(jiān)視程序陷入死循環(huán)故障,技術(shù)能有效監(jiān)視程序陷入死循環(huán)故障,但對(duì)中斷關(guān)閉故障無能為力;軟件但對(duì)中斷關(guān)閉故障無能為力;軟件“看門狗看門狗”技術(shù)對(duì)高級(jí)技術(shù)對(duì)高級(jí)中斷服務(wù)程序陷入死循環(huán)無能為力。在實(shí)際應(yīng)用中,可以中斷服務(wù)程序陷入死循環(huán)無能為力。在實(shí)際應(yīng)用中,可以將硬件將硬件“看門狗看門狗”與軟件與軟件“看門狗看門狗”同時(shí)使用。實(shí)踐證明,同時(shí)使用。實(shí)踐證明,將兩者結(jié)合起來后,程序的可靠性會(huì)大大提高。將兩者結(jié)合起來后,程序的可靠性會(huì)大大提高。 綜上所述,單片機(jī)系統(tǒng)由于受到嚴(yán)重干擾而使程序綜上所述,單片機(jī)系統(tǒng)由于受到嚴(yán)重干擾而使程序“跑飛跑飛”、陷入、陷入“死循環(huán)死循環(huán)”或中斷關(guān)閉等故障時(shí),可以通或中斷關(guān)

41、閉等故障時(shí),可以通過指令冗余技術(shù)、軟件陷阱技術(shù)和過指令冗余技術(shù)、軟件陷阱技術(shù)和“看門狗看門狗”技術(shù)等,使技術(shù)等,使程序納入正軌。若因故障而復(fù)位進(jìn)入程序納入正軌。若因故障而復(fù)位進(jìn)入0000H后,系統(tǒng)要執(zhí)后,系統(tǒng)要執(zhí)行辨別上電方式、行辨別上電方式、RAM數(shù)據(jù)的檢查與恢復(fù)和清除中斷激活數(shù)據(jù)的檢查與恢復(fù)和清除中斷激活標(biāo)志等一系列操作,然后根據(jù)功能模塊的運(yùn)行標(biāo)志,確定標(biāo)志等一系列操作,然后根據(jù)功能模塊的運(yùn)行標(biāo)志,確定入口地址。入口地址。10.5 數(shù)數(shù) 字字 濾濾 波波 所謂數(shù)字濾波,就是在單片機(jī)中用某種計(jì)算方法所謂數(shù)字濾波,就是在單片機(jī)中用某種計(jì)算方法對(duì)輸入的信號(hào)進(jìn)行數(shù)學(xué)處理,以便減少干擾在有用信對(duì)輸入

42、的信號(hào)進(jìn)行數(shù)學(xué)處理,以便減少干擾在有用信號(hào)中的比重,提高信號(hào)的真實(shí)性。這種濾波方法不需號(hào)中的比重,提高信號(hào)的真實(shí)性。這種濾波方法不需要增加硬件設(shè)備,只需根據(jù)預(yù)定的濾波算法編制相應(yīng)要增加硬件設(shè)備,只需根據(jù)預(yù)定的濾波算法編制相應(yīng)的程序即可達(dá)到信號(hào)濾波的目的。的程序即可達(dá)到信號(hào)濾波的目的。 下面介紹幾種常用的數(shù)字濾波方法:程序判斷下面介紹幾種常用的數(shù)字濾波方法:程序判斷濾波、算術(shù)平均值濾波、加權(quán)平均值濾波、滑動(dòng)平濾波、算術(shù)平均值濾波、加權(quán)平均值濾波、滑動(dòng)平均值濾波、中值濾波、一階滯后濾波和復(fù)合數(shù)字濾均值濾波、中值濾波、一階滯后濾波和復(fù)合數(shù)字濾波法。波法。 數(shù)字濾波有如下優(yōu)點(diǎn)數(shù)字濾波有如下優(yōu)點(diǎn): (1

43、) 數(shù)字濾波是由軟件程序?qū)崿F(xiàn)的數(shù)字濾波是由軟件程序?qū)崿F(xiàn)的, 不需要硬件不需要硬件, 因此不因此不存在阻抗匹配的問題。存在阻抗匹配的問題。 (2) 對(duì)于多路信號(hào)輸入通道對(duì)于多路信號(hào)輸入通道, 可以共用一個(gè)軟件可以共用一個(gè)軟件“濾波濾波器器”, 從而降低設(shè)備的硬件成本。從而降低設(shè)備的硬件成本。 (3) 只要適當(dāng)改變?yōu)V波器程序或運(yùn)算參數(shù)只要適當(dāng)改變?yōu)V波器程序或運(yùn)算參數(shù), 就能方便地改就能方便地改變?yōu)V波特性變?yōu)V波特性, 這對(duì)于低頻脈沖干擾和隨機(jī)噪聲的克服特別有這對(duì)于低頻脈沖干擾和隨機(jī)噪聲的克服特別有效。效。 一、一、 低通濾波低通濾波 若一階RC模擬低通濾波器的輸入電壓為X(t), 輸出為Y(t),

44、它們之間存在如下關(guān)系: )()()(tXtYdtTdYRC為了進(jìn)行數(shù)字化, 必須應(yīng)用它們的采樣值, 即 tnXXtnYYnn)(,)(如果采樣間隔t足夠小, 則式( 5 - 1 )的離散值近似為 tnXtnYttnYtnYRC)()() 1()(( 5 - 1 )即 11nnnYtRCXYtRC令 ,1/1tRCa則式(5 - 3)可化為 (5-3)1)1 (nnnYaaXY若采樣間隔t足夠小, 則 , 濾波器的截止頻率為 RCtataRCfc221式中:式中:Xn第第n次采樣值;次采樣值; Yn-1第第n-1次濾波結(jié)果輸出值;次濾波結(jié)果輸出值; Yn第第n次濾波結(jié)果輸出值;次濾波結(jié)果輸出值;

45、 濾波平滑系數(shù),濾波平滑系數(shù), 1)1 (nnnYaaXY 一階滯后濾波算法對(duì)周期性干擾具有良好的抑制作一階滯后濾波算法對(duì)周期性干擾具有良好的抑制作用,適用于波動(dòng)頻率較高參數(shù)的濾波。其不足之處是帶來用,適用于波動(dòng)頻率較高參數(shù)的濾波。其不足之處是帶來了相位滯后,靈敏度低。滯后的程度取決于了相位滯后,靈敏度低。滯后的程度取決于的大小。同的大小。同時(shí),它不能濾除高于采樣頻率二分之一的干擾信號(hào)。時(shí),它不能濾除高于采樣頻率二分之一的干擾信號(hào)。 圖 10.15 低通濾波器程序流程圖 為計(jì)算方便, a取一整數(shù), (1-a)用256-a來代替。 計(jì)算結(jié)果舍去最低字節(jié)即可, 設(shè)Yn-1存放在 30H(整數(shù))和

46、31H(小數(shù))兩單元中, Yn存放在 32H(整數(shù))和 33H(小數(shù))中。 程序如下: F1: MOV 30H, 32H ; 更新Yn-1 MOV 31H, 33H ACALL INPUT ; 采樣Xn MOV B, 8 ; 計(jì)算aXn MUL AB MOV 32H , B ; 臨時(shí)存入Yn中 MOV 33H , A MOV B, 248 ; 計(jì)算(1-a)Yn-1 MOV A, 31H MUL AB RLC A MOV A, B ADDC A, 33H ; 累加到Y(jié)n中 MOV 33H , A INC F11 INC 32HF11: MOV B, 248 MOV A, 30H MUL AB

47、ADD A, 33H MOV 33H, A MOV A, B ADDC A, 32H MOV 32, A RET 二、二、 限幅濾波限幅濾波 圖 10.16 限幅濾波程序流程圖 當(dāng)當(dāng)|Yn-Yn-1|Y時(shí),則取時(shí),則取Yn=Yn當(dāng)當(dāng)|Yn-Yn-1|Y時(shí),則取時(shí),則取Yn=Yn-1 確定出兩次采樣輸入信號(hào)可確定出兩次采樣輸入信號(hào)可能出現(xiàn)的最大偏差能出現(xiàn)的最大偏差Y。若實(shí)際先。若實(shí)際先后兩次采樣值大于后兩次采樣值大于Y,則表明本,則表明本次輸入信號(hào)是干擾信號(hào),取上次采次輸入信號(hào)是干擾信號(hào),取上次采樣值作為本次采樣值;若小于樣值作為本次采樣值;若小于Y,則本次采樣值有效,即:則本次采樣值有效,即:

48、主要用于變化比較緩慢的參數(shù)主要用于變化比較緩慢的參數(shù) PUSH ACC ; 保護(hù)現(xiàn)場(chǎng)保護(hù)現(xiàn)場(chǎng) PUSH PSW MOV A, 30H ; YnA CLR C SUBB A, 31H ; 求求Yn-Yn-1-1 INC LP0 ; Yn-Yn-10嗎?嗎? CPL A ; YnY?LP1 : MOV 32H, 30H ; 等于等于Y, 本次采樣值有效本次采樣值有效 SJMP LP3 LP2: JC LP1 ; 小于小于Y, 本次采樣值有效本次采樣值有效 MOV 32H, 31H ; 大于大于Y, Yn =Yn-1LP3: POP PSW POP ACC RET 三、三、 中值濾波中值濾波 中值濾

49、波是對(duì)某一被測(cè)參數(shù)連續(xù)采樣中值濾波是對(duì)某一被測(cè)參數(shù)連續(xù)采樣n次(一般次(一般n取奇取奇數(shù))數(shù)), 然后把然后把n次采樣值按大小排列次采樣值按大小排列, 取中間值為本次采樣值取中間值為本次采樣值, 中值濾波能有效地克服偶然因素引起的波動(dòng)或采樣器不穩(wěn)定中值濾波能有效地克服偶然因素引起的波動(dòng)或采樣器不穩(wěn)定引起的誤碼等脈沖干擾。引起的誤碼等脈沖干擾。 設(shè)設(shè)SAMP為存放采樣值的內(nèi)存單元首地址為存放采樣值的內(nèi)存單元首地址, DATA為存放為存放濾波值的內(nèi)存單元地址濾波值的內(nèi)存單元地址, N為采為采樣值個(gè)數(shù)樣值個(gè)數(shù), 中值濾波程序如下中值濾波程序如下: F3: MOV R3, N-1 ; 置循環(huán)初值置循環(huán)

50、初值SORT: MOV R2, R3 ; 循環(huán)次數(shù)送循環(huán)次數(shù)送R2 MOV R0, SAMP ; 采樣值首地址采樣值首地址R0LOP: MOV A, R0 INC R0 CLR C SUBB A, R0 ; Yn-Yn-1A JC DONE ; YnYn-1轉(zhuǎn)轉(zhuǎn)DONE ADD A, R0 ; 恢復(fù)恢復(fù)A XCH A, R0 ; Yn Yn-1, 交換數(shù)據(jù)交換數(shù)據(jù) DEC R0 MOV R0, A INC R0DONE: DJNE R2, LOP ; R20, 繼續(xù)比較繼續(xù)比較 DJNE R3, SORT ; R30, 繼續(xù)循環(huán)繼續(xù)循環(huán) MOV A, R0 ADD A, SAMP ; 計(jì)算中值

51、地址計(jì)算中值地址 CLR C RRC A MOV R0, A MOV DPTA, R0 ; 存放濾波值存放濾波值 RET 四、四、 算術(shù)平均濾波算術(shù)平均濾波 對(duì)目標(biāo)參數(shù)進(jìn)行連續(xù)采樣對(duì)目標(biāo)參數(shù)進(jìn)行連續(xù)采樣, 然后求取算術(shù)平均值作為有效然后求取算術(shù)平均值作為有效采樣值采樣值, 該算法適用于抑制隨機(jī)干擾。該算法適用于抑制隨機(jī)干擾。 按輸入的按輸入的N個(gè)采樣數(shù)據(jù)個(gè)采樣數(shù)據(jù)Xi(i=1N), 尋找一個(gè)尋找一個(gè)Y, 使使Y與各與各采樣值之間的偏差的平方和最采樣值之間的偏差的平方和最小小, 即即 )(min12NiiXYE由一元函數(shù)求極值原理由一元函數(shù)求極值原理, 可得可得 NiiXNY11 設(shè)第設(shè)第 i

52、次測(cè)量的采樣值包含信號(hào)成分次測(cè)量的采樣值包含信號(hào)成分Si和噪聲成分和噪聲成分ni, 則進(jìn)則進(jìn)行行N次測(cè)量的信號(hào)成分之和次測(cè)量的信號(hào)成分之和為為 NiiSNS1 噪聲的強(qiáng)度是用均方根來衡量的噪聲的強(qiáng)度是用均方根來衡量的, 當(dāng)噪聲為隨機(jī)信號(hào)時(shí)當(dāng)噪聲為隨機(jī)信號(hào)時(shí), 進(jìn)行進(jìn)行N次測(cè)量的噪聲強(qiáng)度之次測(cè)量的噪聲強(qiáng)度之和為和為 nNnNii12nSNnNNS程序如下程序如下: F4: CLR A ; 清累加器清累加器 MOV R2, A MOV R3, A MOV R0, 30H; 指向第一個(gè)采樣值指向第一個(gè)采樣值FL40: MOV A, R0 ; 取一個(gè)采樣值取一個(gè)采樣值A(chǔ)DD A, R3 ; 累加到累加

53、到R2、 R3中中MOV R3, ACLR AADDC A, R2MOV R2, AJNC R0 CJNC R0, 38H, FL40 ; 累加完累加完8次次FL41: SWAP A ; (R2R3)/8RL AXCH A, R3SWAP ARL AADD A, 80H; 四舍五入四舍五入ANL A, 1FHADDC A, R3RET 算術(shù)平均值法濾波的實(shí)質(zhì)即把連續(xù)采樣的算術(shù)平均值法濾波的實(shí)質(zhì)即把連續(xù)采樣的N個(gè)值進(jìn)行算術(shù)個(gè)值進(jìn)行算術(shù)平均,作為本次的輸出平均,作為本次的輸出 ,即:,即:YNiiXNY11 N值決定了信號(hào)平滑度和靈敏度。隨著值決定了信號(hào)平滑度和靈敏度。隨著N的增大,平滑度提的增大

54、,平滑度提高,靈敏度降低。應(yīng)視具體情況選取高,靈敏度降低。應(yīng)視具體情況選取N,以便得到滿意的濾波效,以便得到滿意的濾波效果。為方便求平均值,果。為方便求平均值,N值一般取值一般取4、8、16之類的之類的2的整數(shù)冪,的整數(shù)冪,以使用移位來代替除法。通常流量信號(hào)取以使用移位來代替除法。通常流量信號(hào)取12項(xiàng),壓力信號(hào)取項(xiàng),壓力信號(hào)取6項(xiàng),項(xiàng),溫度、成分等緩慢變化的信號(hào)取溫度、成分等緩慢變化的信號(hào)取2項(xiàng)甚至不平均。這種濾波方法項(xiàng)甚至不平均。這種濾波方法主要用于對(duì)壓力、流量等周期脈動(dòng)的采樣值進(jìn)行平滑加工,但主要用于對(duì)壓力、流量等周期脈動(dòng)的采樣值進(jìn)行平滑加工,但對(duì)偶然出現(xiàn)的脈沖性于擾的平滑作用尚不理想,因

55、而它不適用對(duì)偶然出現(xiàn)的脈沖性于擾的平滑作用尚不理想,因而它不適用于脈沖性干擾比較嚴(yán)重的場(chǎng)合。于脈沖性干擾比較嚴(yán)重的場(chǎng)合。五、滑動(dòng)平均值濾波五、滑動(dòng)平均值濾波 先在先在RAM中建立一個(gè)數(shù)據(jù)緩沖區(qū),依順序存放中建立一個(gè)數(shù)據(jù)緩沖區(qū),依順序存放N個(gè)個(gè)采樣數(shù)據(jù),每采樣進(jìn)一個(gè)新數(shù)據(jù),就將最早采集的那個(gè)數(shù)采樣數(shù)據(jù),每采樣進(jìn)一個(gè)新數(shù)據(jù),就將最早采集的那個(gè)數(shù)據(jù)丟掉,而后求包括新數(shù)據(jù)在內(nèi)的據(jù)丟掉,而后求包括新數(shù)據(jù)在內(nèi)的N個(gè)數(shù)據(jù)的算數(shù)平均值個(gè)數(shù)據(jù)的算數(shù)平均值或加權(quán)平均值。這樣,每進(jìn)行一次采樣,就可計(jì)算出一個(gè)或加權(quán)平均值。這樣,每進(jìn)行一次采樣,就可計(jì)算出一個(gè)新的平均值,從而加快了數(shù)據(jù)處理的速度。新的平均值,從而加快了

56、數(shù)據(jù)處理的速度。 滑動(dòng)平均值濾波對(duì)周期性干擾有良好的抑制作用,滑動(dòng)平均值濾波對(duì)周期性干擾有良好的抑制作用,平滑度高,靈敏度低;但對(duì)偶然出現(xiàn)的脈沖性干擾的平滑度高,靈敏度低;但對(duì)偶然出現(xiàn)的脈沖性干擾的抑制作用差,不易消除由于脈沖干擾引起的采樣值的抑制作用差,不易消除由于脈沖干擾引起的采樣值的偏差,因此它不適用于脈沖干擾比較嚴(yán)重的場(chǎng)合,而偏差,因此它不適用于脈沖干擾比較嚴(yán)重的場(chǎng)合,而適用于高頻振蕩系統(tǒng)。通過觀察不同適用于高頻振蕩系統(tǒng)。通過觀察不同N值下滑動(dòng)平均值下滑動(dòng)平均的輸出響應(yīng)來選取的輸出響應(yīng)來選取N值,以便既少占有時(shí)間,又能達(dá)值,以便既少占有時(shí)間,又能達(dá)到最好濾波效果。通常對(duì)流量信號(hào),到最好

57、濾波效果。通常對(duì)流量信號(hào),N取取12,壓力信,壓力信號(hào)號(hào)N取取4,液面參數(shù),液面參數(shù)N取取412,溫度信號(hào),溫度信號(hào)N取取14。六、加權(quán)平均值濾波六、加權(quán)平均值濾波 算術(shù)平均值濾波法對(duì)每次采樣值給出相同的加權(quán)算術(shù)平均值濾波法對(duì)每次采樣值給出相同的加權(quán)系數(shù),即系數(shù),即1/N。實(shí)際上某些場(chǎng)合需要增加新采樣值在平。實(shí)際上某些場(chǎng)合需要增加新采樣值在平均值中的比重,可采用加權(quán)平均值濾波法,濾波公式均值中的比重,可采用加權(quán)平均值濾波法,濾波公式為:為:N1iiiYKY 其中,其中,K1、K2、Kn為加權(quán)系數(shù),且應(yīng)滿足為加權(quán)系數(shù),且應(yīng)滿足K1、K2、Kn均大于均大于0,且它們的和為,且它們的和為1。加權(quán)系數(shù)

58、體現(xiàn)了。加權(quán)系數(shù)體現(xiàn)了各次采樣值在平均值中所占的比例,可根據(jù)具體情況決各次采樣值在平均值中所占的比例,可根據(jù)具體情況決定,一般采樣次數(shù)愈靠后,取的比例愈大,這樣可增加定,一般采樣次數(shù)愈靠后,取的比例愈大,這樣可增加新的采樣值在平均值中的比例。這種濾波方法可以根據(jù)新的采樣值在平均值中的比例。這種濾波方法可以根據(jù)需要突出信號(hào)的某一部分,抑制信號(hào)的另一部分。需要突出信號(hào)的某一部分,抑制信號(hào)的另一部分。七、復(fù)合數(shù)字濾波七、復(fù)合數(shù)字濾波 為了進(jìn)一步提高濾波效果,有時(shí)可以把兩種或兩種以為了進(jìn)一步提高濾波效果,有時(shí)可以把兩種或兩種以上不同濾波功能的數(shù)字濾波器組合起來,組成復(fù)合數(shù)字濾上不同濾波功能的數(shù)字濾波器

59、組合起來,組成復(fù)合數(shù)字濾波器,或稱多級(jí)數(shù)字濾波器。波器,或稱多級(jí)數(shù)字濾波器。 例如,算術(shù)平均值濾波和加權(quán)平均值濾波,都只能對(duì)周期例如,算術(shù)平均值濾波和加權(quán)平均值濾波,都只能對(duì)周期性的脈動(dòng)采樣值進(jìn)行平滑加工,但對(duì)于隨機(jī)的脈沖干擾,如電性的脈動(dòng)采樣值進(jìn)行平滑加工,但對(duì)于隨機(jī)的脈沖干擾,如電網(wǎng)的波動(dòng),變送器的臨時(shí)故障等,則無法消除。然而,中值濾網(wǎng)的波動(dòng),變送器的臨時(shí)故障等,則無法消除。然而,中值濾波即可以解決這個(gè)問題。因此,可以將算術(shù)平均值濾波和加權(quán)波即可以解決這個(gè)問題。因此,可以將算術(shù)平均值濾波和加權(quán)平均值濾波組合起來,形成多功能的復(fù)合濾波。即把采樣值按平均值濾波組合起來,形成多功能的復(fù)合濾波。即

60、把采樣值按序排列,然后將最大值和最小值去掉,再把余下的部分求和并序排列,然后將最大值和最小值去掉,再把余下的部分求和并取其平均值。這種濾波方法的原理可由下式表示:取其平均值。這種濾波方法的原理可由下式表示:若若X(1)X(2)X(N), 3N14,則:,則:1N2in) i (X2N12N)1N(X)3(X)2(XY例10.1 求兩個(gè)輸入數(shù)據(jù)中較大者的C51源程序.XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論