精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

你可能不知道單片機軟件抗干擾技術有多么優秀!

jf_35136247 ? 2023-05-13 18:00 ? 次閱讀

電子儀器設備的抗干擾技術是一門博大精深的領域。大部分的電子設備所在的工作環境往往比較惡劣,干擾嚴重,這些干擾會嚴重影響設備的正常工作,使其不能正常運行,比如空調就工作在高溫、大電流、強干擾(電機)的環境下。

因此,為了保證這些設備能在實際應用中可靠地工作,必須要周密考慮和解決抗干擾的問題。除了在硬件上考慮抗干擾的問題,我們也可以在軟件上做一些抗干擾的措施,來提高系統的抗干擾能力。

下面簡單介紹了幾個抗干擾的措施,起一個拋磚引玉的作用,希望各位同事可以在工作中加以應用和完善。

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

數字量輸入過程中的干擾,其作用時間較短,因此在采集數字信號時,可多次重復采集,直到若干次采樣結果一致時才認為其有效。例如通過A/D轉換器測量各種模擬量時,如果有干擾作用于模擬信號上,就會使A/D轉換結果偏離真實值。

這時如果只采樣一次A/D轉換結果,就無法知道其是否真實可靠,而必須進行多次采樣,得到一個A/D轉換結果的數據系列,對這一系列數據再作各種數字濾波處理,最后才能得到一個可信度較高的結果值。如果對于同一個數據點經多次采樣后得到的信號值變化不定,說明此時的干擾特別嚴重,已經超出允許的范圍,應該立即停止采樣并給出報警信號。

如果數字信號屬于開關量信號,如限位開關、操作按扭等,則不能用多次采樣取平均值的方法,而必須每次采樣結果絕對一致才行。這時可編寫一個采樣子程序,程序中設置有采樣成功和采樣失敗標志,如果對同一開關量信號進行若干次采樣,其采樣結果完全一致,則成功標志置位;否則失敗標志置位。后續程序可通過判別這些標志來決定程序的流向。

單片機控制的設備對外輸出的控制信號很多是以數字量的形式出現的。單片機給出一個正確的數據后,由于外部干擾的作用有可能使輸出裝置得到一個被改變了的錯誤數據,從而使輸出裝置發生誤動作。對于數字量輸出軟件抗干擾最有效的方法是重復輸出同一個數據,重復周期應盡量短。這樣輸出裝置在得到一個被干擾的錯誤信號后,還來不及反應,一個正確的信號又來到了,從而可以防止誤動作的產生。

在程序結構上,可將輸出過程安排在監控循環中。循環周期取得盡可能短,就能有效地防止輸出設備的錯誤動作。需要注意的是。經過這種安排后輸出功能是作為一個完整的模塊來執行的,與這種重復輸出措施相對應。

軟件設計中還必須為各個外部輸出設備建立一個輸出暫存單元,每次將應輸出的結果存入暫存單元中,然后再調用輸出功能模塊將各暫存單元的數據一一輸出,不管該數據是剛送來的,還是以前就有的。

這樣可以讓每個外部設備不斷得到控制數據,從而使干擾造成的錯誤狀態不能得以維持。在執行輸出功能模塊時,應將有關輸出接口芯片的初始狀態也一并重新設置。

因為由于干擾的作用可能使這些芯片的工作方式控制字發生變化,而不能實現正確的輸出功能,重新設置控制字就能避免這種錯誤.確保輸出功能的正確實現。

二、程序執行過程中的軟件抗于擾

前面述及的是針對輸入輸出通道而言的,干擾信號還未作用到CPU本身,CPU還能正確地執行各種抗干擾程序。如果干擾信號已經通過某種途徑作用到了CPU上,則CPU就不能按正常狀態執行程序,從而引起混亂,這就是通常所說的程序“跑飛”。

程序“跑飛”后使其恢復正常的一個最簡單的方法是使CPU復位,讓程序從頭開始重新運行。很多單片機控制的設備中都有設置人工復位電路。人工復位一般是在整個系統已經完全癱瘓,無計可施的情況下才不得已而為之的。因此在進行軟件設計時就要考慮到萬一程序“跑飛”,應讓其能夠自動恢復到正常狀態下運行。

程序“跑飛”后往往將一些操作數當作指令碼來執行,從而引起整個程序的混亂。采用“指令冗余”是使“跑飛”的程序恢復正常的一種措施。

所謂“指令冗余”,就是在一些關鍵的地方人為地插入一些單字節的空操作指令NOP。當程序“跑飛”到某條單字節指令上時,就不會發生將操作數當成指令來執行的錯誤。對于MCS51單片機來說,所有的指令都不會超過3個字節,因此在某條指令前面插入兩條NOP指令,則該條指令就不會被前面沖下來的失控程序拆散,而會得到完整的執行,從而使程序重新納入正常軌道。通常是在一些對程序的流向起關鍵作用的指令前面插入兩條NOP指令。應該注意的是在一個程序中“指令冗余”不能使用過多,否則會降低程序的執行效率。

采用“指令冗余”使“跑飛”的程序恢復正常是有條件的,首先“跑飛”的程序必須落到程序區,其次必須執行到所設置的冗余指令。如果“跑飛”的程序落到非程序區(如 EPROM中未用完的空間或某些數據表格等),或在執行到冗余指令之前已經形成了一個死循環,則“指令冗余”措施就不能使“跑飛”的程序恢復正常了。這時可以采用另一種軟件抗干擾措施,即腸胃“軟件陷阱”。

“軟件陷阱”是一條引導指令,強行將捕獲的程序引向一個指定的地址,在那里有一段專門處理錯誤的程序。假設這段處理錯誤的程序入口地址為ERR,則下面三條指令即組成一個“軟件陷阱”:

NOP

NOP

JR ERR

如果“跑飛”的程序落到一個臨時構成的死循環中時,冗余指令和軟件陷阱都將無能為力。這時可以采用人工復位的方法使系統恢復正常,實際上可以設計一種模仿人工監測的“程序運行監視器”,俗稱“看門狗”(WATCHDOG)。

WATCHDOG有如下特征:

(1)本身能獨立工作,基本上不依賴于 CPU。CPU只在一個固定的時間間隔內與之打一次交道,表明整個系統“目前尚屬正常”。

(2)當CPU落入死循環之后,能及時發現并使整個系統復位。

目前有很多單片機在內部已經集成了片內的硬件WATCHDOG電路,使用起來更為方便。也可以用軟件程序來形成WATCHDOG。

例如可以采用單片機一個多于不用的定時器來形成10ms的軟件WATCHDOG。軟件WATCHDOG啟動后,系統工作程序必須每隔小于10ms的時間重新設置定時器的計數初值。如果程序“跑飛”后執行不到這條指令,則在10ms之內即會產生一次定時器溢出中斷,則定時器中斷程序就可以處理系統“意外”的情況。

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6032

    文章

    44522

    瀏覽量

    633203
收藏 人收藏

    評論

    相關推薦

    XD08M3232紅外感應單片機在智能垃圾桶抗干擾性分析

    %)和16KHz低功耗振蕩器LRC(精度±10%),可以為單片機提供穩定的時鐘信號,減少因時鐘信號不穩定而受到的電源干擾影響,因為時鐘信號的穩定對于單片機正常運行和抗干擾至關重要,特別
    發表于 11-13 19:00

    XD08M3232接近感應單片機在智能垃圾桶抗干擾性分析

    %)和16KHz低功耗振蕩器LRC(精度±10%),可以為單片機提供穩定的時鐘信號,減少因時鐘信號不穩定而受到的電源干擾影響,因為時鐘信號的穩定對于單片機正常運行和抗干擾至關重要,特別
    發表于 11-04 13:42

    關于陶瓷電路板不知道的事

    陶瓷電路板(Ceramic Circuit Board),又稱陶瓷基板,是一種以陶瓷材料為基體,通過精密的制造工藝在表面形成電路圖形的高技術產品,快來看看哪些是您還不知道的事?
    的頭像 發表于 10-21 11:55 ?180次閱讀
    關于陶瓷電路板<b class='flag-5'>你</b><b class='flag-5'>不知道</b>的事

    又一電工不知道,施耐德變頻器怎么復位,如果不告訴知道怎么復位嗎?

    維修 我給他說,可能以前沒接觸過施耐德的變頻器,就不知道它還有一個蓋子,要復位的話,就要把蓋子打開,第一次找不到也正常,要是經常斷電重啟的話,對設備不好。 變頻器修理 之所以分享給大家,就是想告訴那些沒接觸過施耐
    的頭像 發表于 10-12 15:15 ?187次閱讀
    又一電工<b class='flag-5'>不知道</b>,施耐德變頻器怎么復位,如果不告訴<b class='flag-5'>你</b>,<b class='flag-5'>你</b><b class='flag-5'>知道</b>怎么復位嗎?

    十天學會單片機可能嗎?單片機入門需要多久?

    學習單片機的過程,就像學習任何其他技能一樣,不僅在于書本上的知識,更在于實踐和應用的能力。許多人可能會問:十天能學會單片機嗎?答案是:可以,但這取決于所定義的“學會”到什么程度。首先
    的頭像 發表于 09-05 08:00 ?871次閱讀
    十天學會<b class='flag-5'>單片機</b><b class='flag-5'>可能</b>嗎?<b class='flag-5'>單片機</b>入門需要多久?

    單片機圖形化編程軟件哪些

    單片機圖形化編程軟件為開發者提供了一種更加直觀、易于上手的編程方式,尤其適合初學者和教育領域。以下是一些常見的單片機圖形化編程軟件: Arduino IDE : 雖然是基于文本的編程環
    的頭像 發表于 09-02 10:14 ?962次閱讀

    做emwin應用,圖片太大,單片機ROM存不下怎么解決?

    在做emwin應用,圖片太大,單片機ROM存不下! 開發板上有QSPI FLASH,想下載到這個存儲體里,但是不知道用什么樣的軟件 不知道ST有沒有相應的
    發表于 05-09 06:23

    這些不知道的臥式共模電感的選型依據

    這些不知道的臥式共模電感的選型依據 gujing 編輯:谷景電子 實際上關于臥式共模電感的選型已經討論過很多這方面的內容,但一直都還有人在討論這些問題。本篇我們換幾個角度來探討一下臥式共模電感
    的頭像 發表于 04-29 22:42 ?331次閱讀

    單片機抗干擾措施哪些?

    電磁干擾(EMI)問題日益成為影響單片機穩定性與可靠性的主要障礙。因此,探討和實施有效的抗干擾措施對于提高單片機系統的性能至關重要。下面為大家簡單介紹一種
    的頭像 發表于 03-15 16:36 ?2203次閱讀
    <b class='flag-5'>單片機</b><b class='flag-5'>抗干擾</b>措施<b class='flag-5'>有</b>哪些?

    輥壓機軸承位磨損修復不知道的那些事

    電子發燒友網站提供《輥壓機軸承位磨損修復不知道的那些事.docx》資料免費下載
    發表于 03-12 15:10 ?0次下載

    影響單片機硬件系統可靠運行的干擾因素

    影響單片機系統可靠安全運行的主要因素主要來自系統內部和外部的各種電氣干擾,并受系統結構設計、元器件選擇、安裝、制造工藝影響。這些都構成單片機系統的干擾因素,常會導致
    的頭像 發表于 02-20 13:50 ?450次閱讀

    ADuCM360運行例程程序,在手接觸到電路板或電源線的時候會導致單片機重啟是為什么?

    使用ADuCM360的評估套件,運行例程程序,在手接觸到電路板或電源線的時候會導致單片機重啟,而且非常容易。使用其他的單片機,51、msp430沒有出現這樣問題。這是不是說明ADuCM360的抗干擾性能不好,是因為arm核心的問
    發表于 01-12 07:22

    分享一下用ST-LINK Utility識別單片機程序是否跑飛

    最近有網友大概問了這樣的問題:單片機項目偶爾經常出現異常,不知道是程序跑飛了,還是進入某個死循環了。
    的頭像 發表于 01-09 11:40 ?3113次閱讀
    分享一下用ST-LINK Utility識別<b class='flag-5'>單片機</b>程序是否跑飛

    7種MOSFET柵極電路的常見作用,不看不知道

    7種MOSFET柵極電路的常見作用,不看不知道
    的頭像 發表于 12-15 09:46 ?1862次閱讀
    7種MOSFET柵極電路的常見作用,不看<b class='flag-5'>不知道</b>!

    揭秘pcb是什么物質:不知道的“化學戰士”

    揭秘pcb是什么物質:不知道的“化學戰士”
    的頭像 發表于 12-14 10:27 ?982次閱讀