自在自线亚洲а∨天堂在线-中文字幕一区视频播放-扒开双腿猛进入喷水高潮叫声-欧美日本亚洲一区二区-老熟妇高潮偷拍一区二区-国产精品高清一区二区不卡-午夜色福利视频一区二区三区-亚洲国产成人精品福利在线观看-亚洲欧美成人一区二区在线电影

機電之家資源網(wǎng)
單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
單片機抗干擾技術及應用
單片機抗干擾技術及應用
 更新時間:2008-7-26 20:53:42  點擊數(shù):4
【字體: 字體顏色

引言

隨著單片微機在各個領域中的應用越來越廣泛 , 對其可靠性要求也越來越高。單片機系統(tǒng)的可靠性由多種因素決定,其中系統(tǒng)抗干擾性能是可靠性的重要指標。工業(yè)環(huán)境有強烈的電磁干擾,因此必須采取抗干擾措施,否則難以穩(wěn)定、可靠運行。

工業(yè)環(huán)境中的干擾一般是以脈沖形式進入微機系統(tǒng),渠道主要有三條,如圖 1 所示。

空間干擾 ( 場干擾 ) ,電磁信號通過空間輻射進入系統(tǒng)。

過程通道干擾,干擾通過與系統(tǒng)相連的前向通道、后向通道及與其它系統(tǒng)的相互通道進入。

供電系統(tǒng)干擾,電磁信號通過供電線路進入系統(tǒng)。

一般情況下空間干擾在強度上遠小于其它兩種,故微機系統(tǒng)中應重點防止過程通道與供電系統(tǒng)的干擾。

抗干擾措施有硬件措施和軟件措施。硬件措施如果得當,可將絕大部分干擾拒之門外,但仍然會有少數(shù)干擾進入微機系統(tǒng),故軟件措施作為第二道防線必不可少。由于軟件抗干擾措施是以 CPU 為代價的,如果沒有硬件消除絕大多數(shù)干擾, CPU 將疲于奔命,無暇顧及正常工作,嚴重影響系統(tǒng)的工作效率和實時性。因此,一個成功的抗干擾系統(tǒng)是由硬件和軟件相結(jié)合構(gòu)成的。

筆者設計的激光打標控制系統(tǒng)由于現(xiàn)場使用環(huán)境較惡劣,各種干擾因素較多,如交流噪聲、電網(wǎng)干擾及其它電磁干擾等,因此必須采取有效的抗干擾措施以確保系統(tǒng)穩(wěn)定工作,下面介紹我們在該系統(tǒng)硬件、軟件和 CPU 上采取的抗干擾措施。

硬件措施

光電隔離

在輸入和輸出通道上采用光電隔離器來進行信息傳輸是很有好處的,它將微機系統(tǒng)與各種傳感器、開關、執(zhí)行機構(gòu)從電氣上隔離開來,很大一部分干擾將被阻擋。本系統(tǒng)中步進電機驅(qū)動電路采用了光電隔離器 4N33 。電路如圖 2 所示。

過壓保護電路

在輸入輸出通道上應采用一過壓保護電路,以防引入高電壓,傷害微機系統(tǒng)。過壓保護電路由限流電阻和穩(wěn)壓管組成,限流電阻選擇要適宜,太大會引起信號衰減,太小起不到保護穩(wěn)壓管的作用。穩(wěn)壓管的選擇也要適宜,其穩(wěn)壓值以略高于最高傳送信號電壓為宜,太低將對有效信號起限幅效果,使信號失真。步進電機驅(qū)動電路即采用過壓保護電路。

抗干擾電源

微機系統(tǒng)供電線路是干擾的主要來源,電源采用隔離變壓器接入電網(wǎng),可以防止電網(wǎng)的干擾侵入微機系統(tǒng)。隔離變壓器與普通變壓器的不同之處在于它在初級和次級之間加了一層屏蔽層,并將它和鐵芯一起接地。

配置去耦電容

原則上每個集成電路芯片都應安置一個 0.01mF 的陶瓷電容器,可以消除大部分高頻干擾。

良好接地

本系統(tǒng)既有模擬電路又有數(shù)字電路,因此數(shù)字地與模擬地要分開,最后只在一點相連,如果兩者不分,則會互相干擾。

軟件措施

單片機在輸出信號時,外部干擾有可能使信號出錯。本系統(tǒng)中單片機發(fā)出的驅(qū)動步進電機的信號經(jīng)鎖存器鎖存后傳送給驅(qū)動電路,鎖存器對干擾非常敏感,當鎖存線上出現(xiàn)干擾時,會盲目鎖存當前數(shù)據(jù),而不管是否有效。因此首先應將鎖存器與單片機安裝在同一電路板上,使傳輸線上傳送的是已經(jīng)鎖存好的控制信號。在軟件上,最有效的方法就是重復輸出同一個信號,只要重復周期盡可能短,鎖存器接收到一個被干擾的錯誤信號后還來不及作出有效的反應,一個正確的輸出信號又來到,就可以及時防止錯誤動作的產(chǎn)生。

CPU 抗干擾措施

前面幾項抗干擾措施是針對 I/O 通道,干擾還未作用到單片機本身,這時單片機還能正確無誤地執(zhí)行各種抗干擾程序,當干擾作用到單片機本身時(通過干擾三總線等),單片機將不能按正常狀態(tài)執(zhí)行程序,從而引起混亂。如何發(fā)現(xiàn)單片機受到干擾,如何攔截失去控制的程序流向,如何使系統(tǒng)的損失減小,如何恢復系統(tǒng)的正常運行,這些就是 CPU 抗干擾需要解決的問題。我們采用了以下幾種方法。

人工復位

對于失控的 CPU ,最簡單的方法是使其復位,程序自動從 0000H 開始執(zhí)行。為此只要在單片機的 RESET 端加上一個高電平信號,并持續(xù) 10ms 以上即可。

掉電保護

電網(wǎng)瞬間斷電或電壓突然下降將使微機系統(tǒng)陷入混亂狀態(tài),電網(wǎng)電壓恢復正常后,微機系統(tǒng)難以恢復正常。對付這一類事故的有效方法就是掉電保護。掉電信號由硬件電路檢測到,加到單片機的外部中斷輸入端。軟件中斷將掉電中斷規(guī)定為高級中斷,使系統(tǒng)及時對掉電作出反應。在掉電中斷子程序中,首先進行現(xiàn)場保護,保存當時重要的狀態(tài)參數(shù),當電源恢復正常時, CPU 重新復位,恢復現(xiàn)場,繼續(xù)未完成的工作 。

睡眠抗干擾

CMOS 型的 51 系列單片機具有睡眠狀態(tài),此時只有定時 / 計數(shù)系統(tǒng)和中斷系統(tǒng)處于工作狀態(tài)。這時 CPU 對系統(tǒng)三總線上出現(xiàn)的干擾不會作出任何反應,從而大大降低系統(tǒng)對干擾的敏感程度。

我們仔細分析系統(tǒng)軟件后發(fā)現(xiàn), CPU 很多情況下是在執(zhí)行一些等待指令和循環(huán)檢查程序,由于這時 CPU 雖沒有重要工作,但卻是清醒的,很容易受干擾。讓 CPU 在沒有正常工作時休眠,必要時再由中斷系統(tǒng)來喚醒它,之后又處于休眠。采用這種安排之后,大多數(shù) CPU 可以有 50~95% 的時間用于睡眠,從而使 CPU 受到隨機干擾的威脅大大降低,同時降低了 CPU 的功耗。

指令冗余

當 CPU 受到干擾后,往往將一些操作數(shù)當作指令碼來執(zhí)行,引起程序混亂。這時我們首先要盡快將程序納入正軌 ( 執(zhí)行真正的指令系列 ) 。 MCS-51 系統(tǒng)中所有指令都不超過3個字節(jié),而且有很多單字節(jié)指令。當程序彈飛到某一條單字節(jié)指令上時,便自動納入正軌。當彈飛到某一雙字節(jié)或三字書指令上時,有可能落到其操作數(shù)上,從而繼續(xù)出錯。因此,我們應多采用單字節(jié)指令,并在關鍵的地方人為地插入一些單字節(jié)指令( NOP ),或?qū)⒂行巫謺噶钪貜蜁鴮,這便是指令冗余。

在雙字節(jié)和三字節(jié)指令之后插入兩條 NOP 指令,可保護其后的指令不被拆散;蛘哒f,某指令前如果插入兩條 NOP 指令,則這條指令就不會被前面沖下來的失控程序拆散,并將被完整執(zhí)行,從而使程序走上正軌。但不能加入太多的冗余指令,以免明顯降低程序正常運行的效率。因此,常在一些對程序流向起決定作用的指令之前插入兩條 NOP 指令,以保證彈飛的程序迅速納入正確的控制軌道。此類指令有: RET 、 RETI 、 LCALL 、 SJMP 、 JZ 、 CJNE 等。在某些對系統(tǒng)工作狀態(tài)至關重要的指令 ( 如 SETB EA 之類 ) 前也可插人兩條 NOP 指令,以保證被正確執(zhí)行。上述關鍵指令中, RET 和 RETI 本身即為單字書指令,可以直接用其本身來代替 NOP 指令,但有可能增加潛在危險,不如 NOP 指令安全。

軟件陷阱

指令冗余使彈飛的程序安定下來是有條件的,首先彈飛的程序必須落到程序區(qū),其次必須執(zhí)行到冗余指令。當彈飛的程序落到非程序區(qū) ( 如 EPROM 中未使用的空間、程序中的數(shù)據(jù)表格區(qū) ) 時前一個條件即不滿足,當彈飛的程序在沒有碰到冗余指令之前,已經(jīng)自動形成一個死循環(huán),這時第二個條件也不滿足。對付前一種情況采取的措施就是設立軟件陷阱,對于后一種情況采取的措施是建立程序運行監(jiān)視系統(tǒng) (WATCHDOG) 。

所謂軟件陷阱,就是一條引導指令,強行將捕獲的程序引向?qū)Τ绦虺鲥e進行處理的程序。如果我們把這段程序的入口標號稱為 ERR 的話,軟件陷阱即為一條 LJMP ERR 指令,為加強其捕捉效果,一般還在它前面加兩條 NOP 指令,因此,真正的軟件陷阱由三條指令構(gòu)成:

NOP

NOP

LJIMP ERR

軟件陷阱安排在下列四種地方:

(1) 未使用的中斷向量區(qū)。當干擾使未使用的中斷開放,并激活這些中斷時,就會進一步引起混亂。如果在這些地方布上陷阱,就能及時捕捉到錯誤中斷。

(2) 未使用的大片 ROM 空間。現(xiàn)在使用 EPROM 都很少將其全部用完。對于剩余的大片未編程的 ROM 空間,一般均維持原狀 (0FFH) , 0FFH 對于指令系統(tǒng),是一條單字節(jié)指令 (MOV R7 , A) ,程序彈飛到這一區(qū)域后將順流而下,不再跳躍 ( 除非受到新的干擾 ) 我們只要每隔一段設置一個陷阱,就一定能捕捉到彈飛的程序。軟件陷阱一定要指向出錯處理過程 ERR 。我們可以將 ERR 字排在 0030H 開始的地方,程序不管怎樣修改,編譯后 ERR 的地址總是固定的 ( 因為它前面的中斷向量區(qū)是固定的 ) 。這樣我們就可以用 00 00 02 00 30 五個字節(jié)作為陷阱來填充 ROM 中的未使用空間,或者每隔一段設置一個陷阱 (02 00 30) ,其它單元保持 0FFH 不變。

(3)表格。有兩類表格,一類是數(shù)據(jù)表格,供MOVC A,@A+PC指令或MOVC A,@A+DPTR指令使用,其內(nèi)容完全不是指令。另一類是散轉(zhuǎn)表格,供JMP @A+DPTR指令使用,其內(nèi)容為一系列的三字節(jié)指令 LJMP或兩字節(jié)指令 AJMP。由于表格內(nèi)容和檢索值有一一對應關系,在表格中間安排陷阱將會破壞其連續(xù)性和對應關系,只能在表格的最后安排五字節(jié)陷阱(NOP NOP LJMP ERR)。

(4)程序區(qū)。程序區(qū)是由一串串執(zhí)行指令構(gòu)成的,在這些指令串之間常有一些斷裂點,正常執(zhí)行的程序到此便不會繼續(xù)往下執(zhí)行了,這類指令有JMP、RET等。這時PC的值應發(fā)生正常跳變。如果還要順次往下執(zhí)行,必然就出錯了。當然,彈飛來的程序剛好落到斷裂點的操作數(shù)上或落到前面指令的操作數(shù)上(又沒有在這條指令之前使用冗余指令),則程序就會越過斷裂點,繼續(xù)往前沖。我們在這種地方安排陷阱之后,就能有效地捕捉住它,而又不影響正常執(zhí)行的程序流程。例如:

……

AJMP ABC

NOP

NOP

LJMP ERR

……

ABC:MOV A,R2

RET

NOP

NOP

LJMP ERR

ERR: ……

由于軟件陷阱都安排在程序正常執(zhí)行不到的地方,故不會影響程序執(zhí)行效率。

 

結(jié)語

綜上所述,通過對單片機應用系統(tǒng)的軟硬件全面考慮,并針對不同的情況采取不同的技術措施,保證了系統(tǒng)準確、可靠運行。激光打標控制系統(tǒng)采用了上述抗干擾措施后,系統(tǒng)可靠性大大增強,運行穩(wěn)定,效果理想,現(xiàn)已批量生產(chǎn),取得了良好的經(jīng)濟效益!

 

參考文獻

1.陳光東,趙性初,單片微型計算機原理與接口技術,華中理工大學出版社,1995:150。

2.邵貝貝,單片機系統(tǒng)可靠性技術及發(fā)展,電子產(chǎn)品世界,1998;8:20-21。

 

  • 上一篇: AT89C2051的智能型汽車防撞報警器的設計
  • 下一篇: 利用單片機實現(xiàn)有源功率因數(shù)校正
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網(wǎng)友評論:(只顯示最新5條。)
    關于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內(nèi)容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1