• <noframes id="6fok0"><bdo id="6fok0"><listing id="6fok0"></listing></bdo>
    <ruby id="6fok0"></ruby>

    <progress id="6fok0"></progress>
  • <progress id="6fok0"></progress>
    <ruby id="6fok0"><table id="6fok0"></table></ruby>
  • <progress id="6fok0"><u id="6fok0"><form id="6fok0"></form></u></progress>

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

    中文

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

    行業(yè)資訊

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


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

    一、數字量輸入輸出中的軟件抗于擾 

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

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

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

    二、程序履行進(jìn)程中的軟件抗于擾 

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

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

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

    NOP 

    NOP

    JR   ER

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

        WATCHDOG有如下特征: 

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

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

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

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

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

    確定
    色鲁99热99re超碰精品_91精品一区二区三区无码吞精_亚洲国产欧洲综合997久久_一级a性色生活片久久无
  • <noframes id="6fok0"><bdo id="6fok0"><listing id="6fok0"></listing></bdo>
    <ruby id="6fok0"></ruby>

    <progress id="6fok0"></progress>
  • <progress id="6fok0"></progress>
    <ruby id="6fok0"><table id="6fok0"></table></ruby>
  • <progress id="6fok0"><u id="6fok0"><form id="6fok0"></form></u></progress>