中文字幕DVD波多野结衣专区_亚洲老妇老熟妇_国产果冻豆传媒麻婆精东影视_国产精品久久久久免费A∨_久精品国产欧美亚洲色aⅴ大片

24小時聯(lián)系電話:18217114652、13661815404

中文

您當前的位置:
首頁>
電子資訊>
行業(yè)資訊>
單片機軟件抗干擾技術(shù)...

行業(yè)資訊

單片機軟件抗干擾技術(shù)都有哪些


電子儀器設(shè)備的抗攪擾技術(shù)是一門博大精深的領(lǐng)域。大部分的電子設(shè)備地點的作業(yè)環(huán)境往往比較惡劣,攪擾嚴重,這些攪擾會嚴重影響設(shè)備的正常作業(yè),使其不能正常運行,比方空調(diào)就作業(yè)在高溫、大電流、強攪擾(電機)的環(huán)境下。因而,為了確保這些設(shè)備能在實際運用中可靠地作業(yè),必需求縝密考慮和解決抗攪擾的問題。除了在硬件上考慮抗攪擾的問題,咱們也能夠在軟件上做一些抗攪擾的辦法,來進步體系的抗攪擾才干。下面簡略介紹了幾個抗攪擾的辦法,起一個拋磚引玉的效果,希望各位同事能夠在作業(yè)中加以運用和完善。 

一、數(shù)字量輸入輸出中的軟件抗于擾 

數(shù)字量輸入進程中的攪擾,其效果時刻較短,因而在收集數(shù)字信號時,可屢次重復(fù)收集,直到若干次采樣成果共同時才以為其有用。例如經(jīng)過A/D轉(zhuǎn)化器丈量各種模擬量時,假如有攪擾效果于模擬信號上,就會使A/D轉(zhuǎn)化成果違背實在值。這時假如只采樣一次A/D轉(zhuǎn)化成果,就無法知道其是否實在可靠,而有必要進行屢次采樣,得到一個A/D轉(zhuǎn)化成果的數(shù)據(jù)系列,對這一系列數(shù)據(jù)再作各種數(shù)字濾波處理,最終才干得到一個可信度較高的成果值。假如對于同一個數(shù)據(jù)點經(jīng)屢次采樣后得到的信號值變化不定,闡明此刻的攪擾特別嚴重,現(xiàn)已超出允許的范圍,應(yīng)該當即中止采樣并給出報警信號。假如數(shù)字信號歸于開關(guān)量信號,如限位開關(guān)、操作按扭等,則不能用屢次采樣取平均值的辦法,而有必要每次采樣成果必須共同才行。這時可編寫一個采樣子程序,程序中設(shè)置有采樣成功和采樣失利標志,假如對同一開關(guān)量信號進行若干次采樣,其采樣成果完全共同,則成功標志置位;否則失利標志置位。后續(xù)程序可經(jīng)過判別這些標志來決定程序的流向。

單片機操控的設(shè)備對外輸出的操控信號許多是以數(shù)字量的方式呈現(xiàn)的。單片機給出一個正確的數(shù)據(jù)后,由于外部攪擾的效果有可能使輸出設(shè)備得到一個被改變了的過錯數(shù)據(jù),然后使輸出設(shè)備產(chǎn)生誤動作。對于數(shù)字量輸出軟件抗攪擾最有用的辦法是重復(fù)輸出同一個數(shù)據(jù),重復(fù)周期應(yīng)盡量短。這樣輸出設(shè)備在得到一個被攪擾的過錯信號后,還來不及反應(yīng),一個正確的信號又來到了,然后能夠避免誤動作的產(chǎn)生。 

        在程序結(jié)構(gòu)上,可將輸出進程安排在監(jiān)控循環(huán)中。循環(huán)周期獲得盡可能短,就能有用地避免輸出設(shè)備的過錯動作。需求留意的是。經(jīng)過這種安排后輸出功用是作為一個完好的模塊來履行的,與這種重復(fù)輸出辦法相對應(yīng)。軟件規(guī)劃中還有必要為各個外部輸出設(shè)備樹立一個輸出暫存單元,每次將應(yīng)輸出的成果存入暫存單元中,然后再調(diào)用輸出功用模塊將各暫存單元的數(shù)據(jù)逐個輸出,不管該數(shù)據(jù)是剛送來的,仍是曾經(jīng)就有的。這樣能夠讓每個外部設(shè)備不斷得到操控數(shù)據(jù),然后使攪擾形成的過錯狀況不能得以維持。在履行輸出功用模塊時,應(yīng)將有關(guān)輸出接口芯片的初始狀況也同時從頭設(shè)置。因為由于攪擾的效果可能使這些芯片的作業(yè)方式操控字產(chǎn)生變化,而不能實現(xiàn)正確的輸出功用,從頭設(shè)置操控字就能避免這種過錯.確保輸出功用的正確實現(xiàn)。 

二、程序履行進程中的軟件抗于擾 

        前面述及的是針對輸入輸出通道而言的,攪擾信號還未效果到CPU自身,CPU還能正確地履行各種抗攪擾程序。假如攪擾信號現(xiàn)現(xiàn)已過某種途徑效果到了CPU上,則CPU就不能按正常狀況履行程序,然后引起紊亂,這便是一般所說的程序“跑飛”。程序“跑飛”后使其康復(fù)正常的一個最簡略的辦法是使CPU復(fù)位,讓程序從頭開始從頭運行。許多單片機操控的設(shè)備中都有設(shè)置人工復(fù)位電路。人工復(fù)位一般是在整個體系現(xiàn)已完全癱瘓,無計可施的情況下才不得已而為之的。因而在進行軟件規(guī)劃時就要考慮到萬一程序“跑飛”,應(yīng)讓其能夠自動康復(fù)到正常狀況下運行。 

         程序“跑飛”后往往將一些操作數(shù)當作指令碼來履行,然后引起整個程序的紊亂。采用“指令冗余”是使“跑飛”的程序康復(fù)正常的一種辦法。所謂“指令冗余”,便是在一些關(guān)鍵的當?shù)厝藶榈卮踢M一些單字節(jié)的空操作指令NOP。當程序“跑飛”到某條單字節(jié)指令上時,就不會產(chǎn)生將操作數(shù)當成指令來履行的過錯。對于MCS51單片機來說,一切的指令都不會超過3個字節(jié),因而在某條指令前面刺進兩條NOP指令,則該條指令就不會被前面沖下來的失控程序拆散,而會得到完好的履行,然后使程序從頭歸入正常軌道。一般是在一些對程序的流向起關(guān)鍵效果的指令前面刺進兩條NOP指令。應(yīng)該留意的是在一個程序中“指令冗余”不能運用過多,否則會降低程序的履行效率。 

 采用“指令冗余”使“跑飛”的程序康復(fù)正常是有條件的,首要“跑飛”的程序有必要落到程序區(qū),其次有必要履行到所設(shè)置的冗余指令。假如“跑飛”的程序落到非程序區(qū)(如 EPROM中未用完的空間或某些數(shù)據(jù)表格等),或在履行到冗余指令之前現(xiàn)已形成了一個死循環(huán),則“指令冗余”辦法就不能使“跑飛”的程序康復(fù)正常了。這時能夠采用另一種軟件抗攪擾辦法,即腸胃“軟件圈套”?!败浖μ住笔且粭l引導(dǎo)指令,強即將捕獲的程序引向一個指定的地址,在那里有一段專門處理過錯的程序。假定這段處理過錯的程序入口地址為ERR,則下面三條指令即組成一個“軟件圈套”:

NOP 

NOP

JR   ER

        假如“跑飛”的程序落到一個暫時構(gòu)成的死循環(huán)中時,冗余指令和軟件圈套都將無能為力。這時能夠采用人工復(fù)位的辦法使體系康復(fù)正常,實際上能夠規(guī)劃一種仿照人工監(jiān)測的“程序運行監(jiān)視器”,俗稱“看門狗”(WATCHDOG)。 

    WATCHDOG有如下特征: 

     1)自身能獨立作業(yè),基本上不依賴于 CPU。CPU只在一個固定的時刻間隔內(nèi)與之打一次交道,標明整個體系“現(xiàn)在尚屬正?!?。 

     2)當CPU落入死循環(huán)之后,能及時發(fā)現(xiàn)并使整個體系復(fù)位。 

      現(xiàn)在有許多單片機在內(nèi)部現(xiàn)已集成了片內(nèi)的硬件WATCHDOG電路,運用起來更為方便。也能夠用軟件程序來形成WATCHDOG。例如能夠采用單片機一個多于不必的定時器來形成10ms的軟件WATCHDOG。軟件WATCHDOG啟動后,體系作業(yè)程序有必要每隔小于10ms的時刻從頭設(shè)置定時器的計數(shù)初值。假如程序“跑飛”后履行不到這條指令,則在10ms之內(nèi)即會產(chǎn)生一次定時器溢出中止,則定時器中止程序就能夠處理體系“意外”的情況。 

       采用軟件WATCHDOG有一個弱點,便是假如“跑飛”的程序使某些操作數(shù)變形成為了修改定時器功用的指令,則履行這種指令后軟件WATCHDOG就會失效。因而軟件WATCHDOG的可靠性不如硬件高。

請輸入搜索關(guān)鍵字

確定