日韩欧美视频第二区,秋霞成人午夜鲁丝一区二区三区,美女日批视频在线观看,av在线不卡免费

電子開發(fā)網(wǎng)

電子開發(fā)網(wǎng)電子設(shè)計(jì) | 電子開發(fā)網(wǎng)Rss 2.0 會員中心 會員注冊
搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 電子開發(fā) >> 單片機(jī) >> 正文

單片機(jī)休眠-復(fù)位運(yùn)行方式提高抗干擾能力

作者:佚名    文章來源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時(shí)間:2011/5/14

摘要:介紹一種用休眠-復(fù)位運(yùn)行方式提高單片機(jī)抗干擾能力的方法;分析其適用范圍,給出具體應(yīng)用電路;結(jié)合實(shí)例,分析這種運(yùn)行方式下硬件和軟件設(shè)計(jì)的特點(diǎn)。
關(guān)鍵詞:單片機(jī) 復(fù)位/休眠抗干擾

引言
?牐犓孀盼⒌繾蛹際醯姆傷俜⒄梗?單片機(jī)的性能迅速提高,在運(yùn)算、邏輯控制、智能化方面顯示出非凡的優(yōu)勢,在很大程度上取代了原來由數(shù)字邏輯電路、運(yùn)算放大電路組成的檢測、控制電路,應(yīng)用非常廣泛。但由于它存在著死機(jī)、程序跑飛等致命缺陷,使它在許多重要場合的應(yīng)用受到限制。在抗干擾方面的許多技術(shù),比如設(shè)軟件陷阱、加硬件看門狗電路等,可使這一問題有較好的解決,但仍然存在問題:① 看門狗動作時(shí),意味著已經(jīng)出現(xiàn)了錯(cuò)誤,且運(yùn)行了一段時(shí)間,這在有些場合是不允許的;② 有時(shí)程序出現(xiàn)死循環(huán)錯(cuò)誤,但是剛好把看門狗控制環(huán)節(jié)包含進(jìn)去,對于這樣的錯(cuò)誤采用看門狗無法識別;③ 在檢測控制周期比較長的系統(tǒng)中,單片機(jī)花大量時(shí)間等待外設(shè),執(zhí)行等待命令時(shí)同樣會受到干擾。針對這些情況,我們在實(shí)踐中嘗試了主動復(fù)位的辦法,采用等間隔的脈沖或根據(jù)外部條件對單片機(jī)進(jìn)行復(fù)位喚醒。每次復(fù)位后,單片機(jī)執(zhí)行相應(yīng)的程序,執(zhí)行完任務(wù)后及時(shí)進(jìn)入休眠,等待下次復(fù)位。用此方法較好地解決了上述問題,并在農(nóng)用變壓器綜合保護(hù)器實(shí)驗(yàn)中得到了較好的效果。下面以51系列單片機(jī)為例探討具體原理與實(shí)現(xiàn)方法,復(fù)位信號為高電平。

1 原理與實(shí)現(xiàn)方法

1.1 無條件定時(shí)復(fù)位法

?牐犛枚ㄊ逼鰲⒆ㄓ檬敝有酒?或其它脈沖產(chǎn)生器,按照設(shè)定的間隔定時(shí)產(chǎn)生復(fù)位信號。這種方法特別適合監(jiān)測儀表。在實(shí)際運(yùn)行中,往往是用A/D轉(zhuǎn)換器采樣輸入的模擬量,然后進(jìn)行存儲顯示。這一過程很快,但為了讀數(shù)穩(wěn)定,每秒數(shù)據(jù)更新不過1~2次,CPU的大量時(shí)間用于等待。如果讓CPU執(zhí)行完任務(wù)后直接進(jìn)入休眠,然后由外界復(fù)位喚醒它去執(zhí)行下一次操作,這就是定時(shí)復(fù)位法。這樣會使抗干擾能力大大增強(qiáng),主要有2點(diǎn):① 休眠時(shí),程序停止運(yùn)行,不會出現(xiàn)PC指針紊亂引起的程序跑飛。如果工作與休眠的時(shí)間比例為1:9,也就是說,1s內(nèi)有0.1s的時(shí)間用來檢測、送顯示,有0.9s的時(shí)間休眠,程序受干擾的概率是全速運(yùn)行時(shí)的1/10,整體抗干擾能力提高了10倍。② 由于每1s無條件復(fù)位1次,一旦某次工作期間出現(xiàn)死機(jī),在下次復(fù)位時(shí)肯定得以恢復(fù)。對于只是顯示的儀表,某1s偶然出現(xiàn)的讀數(shù)錯(cuò)誤對下一次測量并沒有記憶,是可以承受的,屬“一過性”錯(cuò)誤。這種定時(shí)復(fù)位相對于看門狗電路的優(yōu)點(diǎn),一是把等待時(shí)間改為休眠狀態(tài) ,縮短可能受干擾的時(shí)間;二是避免了恰好包含看門狗控制環(huán)節(jié)的死循環(huán)。
 
1.2 外部條件復(fù)位法

?牐犛行┦涑齷蠆飭康鈉舳?是由外部控制的。如暖氣熱表,靠熱水水輪旋轉(zhuǎn)產(chǎn)生的脈沖計(jì)算熱量,沒有熱水流動,就沒有熱量輸出,CPU只要保持原來數(shù)值即可,不需要計(jì)數(shù)?梢韵胂,停暖時(shí)熱水水輪不轉(zhuǎn),CPU在春夏秋三季則無事可做;如果讓其休眠,而不是時(shí)刻檢測有無水輪脈沖,抗干擾能力會大大增強(qiáng)。因此,只要把水輪脈沖與CPU的復(fù)位聯(lián)系起來,水輪每旋轉(zhuǎn)1周,CPU復(fù)位1次,熱表就可以正常工作了,這就是外部條件復(fù)位法。類似的應(yīng)用還有半電子式電度表,當(dāng)機(jī)械度盤旋轉(zhuǎn)1周時(shí)才進(jìn)行1個(gè)計(jì)數(shù),用戶不用電,CPU會一直休眠。這種方法的復(fù)位間隔不是固定的,而是根據(jù)外部條件確定的。在有些場合,休眠的時(shí)間會很長,對提高抗干擾能力非常有效。

2 硬件實(shí)現(xiàn)要點(diǎn)

2.1 無條件定時(shí)復(fù)位

?牐犚話閿?2種方法。① 使用定時(shí)器或?qū)S脮r(shí)鐘芯片復(fù)位。圖1為使用555電路組成的定時(shí)電路;也可以使用X1126之類的時(shí)鐘芯片,設(shè)置報(bào)警時(shí)間后用報(bào)警信號喚醒CPU。這種方法適用于長間隔定時(shí),還可以根據(jù)本次運(yùn)算的結(jié)果,臨時(shí)決定下一次的報(bào)警喚醒時(shí)間,非常靈活方便。② 使用系統(tǒng)固有的信號作為定時(shí)復(fù)位脈沖。例如使用50Hz工頻電源整形后作復(fù)位,既省略了定時(shí)器,同時(shí)又為檢測電流信號的相位采集了相應(yīng)的信號,如圖2所示。
 
 
2.2 外部條件復(fù)位

?牐牥淹獠刻跫?脈沖整形后送到復(fù)位端子。對于上述水輪或電表度盤產(chǎn)生的脈沖,可以使用施密特觸發(fā)器整形;對于記錄最大或最小值的儀器,可使用窗口比較器。為了實(shí)現(xiàn)調(diào)節(jié)的電子化,可以使用電子電位器,用單片機(jī)指令設(shè)定上下限。
 
2.3 復(fù)位周期與復(fù)位高電平時(shí)間

?牐犕?3中,復(fù)位信號在高電平Tr期間,單片機(jī)處在復(fù)位狀態(tài),程序不運(yùn)行,抗干擾能力最強(qiáng);高電平過后,單片機(jī)開始執(zhí)行程序。也就是說,復(fù)位信號的低電平Td期間是可供程序執(zhí)行的時(shí)間,這個(gè)時(shí)間要大于每次程序的執(zhí)行周期。合理選擇復(fù)位周期和復(fù)位信號的高電平占空比非常重要。對于單純顯示儀表,復(fù)位周期決定數(shù)據(jù)刷新周期,低電平時(shí)間要大于檢測、送顯示的全部時(shí)間;否則,會出現(xiàn)永遠(yuǎn)不能完整執(zhí)行程序的錯(cuò)誤。單片機(jī)在Ts和Tr期間都能有效地抗干擾,但是最好還是把多余時(shí)間安排在Tr內(nèi)。當(dāng)程序執(zhí)行時(shí)間較長,要求盡量縮短Tr時(shí),可加入微分電路,如圖1中的C30、R26、D9。
 

2.4 輸出端子的處理

?牐?(1)復(fù)位期間的正脈沖

?牐牳次黃詡淶テ?機(jī)的全部I/O口變成高電平。也就是說,正常輸出為低的引腳,會按照復(fù)位周期出現(xiàn)寬度為Tr的正脈沖。這個(gè)正脈沖會影響正常的輸出,有2個(gè)辦法處理:① 在端子上并聯(lián)電容加以抑制,容量根據(jù)復(fù)位的Tr時(shí)間確定。減小Tr可以減小并聯(lián)電容。② 把外圍電路設(shè)計(jì)成高電平無效。

?牐?(2)容錯(cuò)

?牐犑實(shí)毖∪∈涑齠瞬⒘?電容的容量,可以實(shí)現(xiàn)容錯(cuò)控制。在某個(gè)復(fù)位周期,因干擾輸出了錯(cuò)誤電平。由于電容的保持作用,在本周期內(nèi)尚不能使輸出變化到有效的電平;在下個(gè)周期,錯(cuò)誤被糾正。因此,只要不是連續(xù)2個(gè)周期出錯(cuò),輸出是可容錯(cuò)的。當(dāng)然,這種方法會使正常的輸出變化滯后一個(gè)周期,才真正反映到輸出端子。

2.5 上電檢測與手動復(fù)位

?牐犛行┫低吃誄跎系縭幣?做一些初始化操作。采用復(fù)位方式運(yùn)行時(shí),每次復(fù)位已經(jīng)成為正常運(yùn)行的開始條件,無法辨別是否初上電。在某引腳對地接一個(gè)1μF的電容,復(fù)位后檢測該引腳,如果是低電平就是初上電。如果給系統(tǒng)設(shè)立一個(gè)復(fù)位按鈕,也就是常見的手動復(fù)位,這個(gè)按鈕不是連接在復(fù)位端,而是并聯(lián)在上述引腳對地的電容兩端。

Tags:單片機(jī),復(fù)位,抗干擾解決方法  
責(zé)任編輯:admin
相關(guān)文章列表
基于AT89C52單片機(jī)控制的雙軸太陽自動跟蹤系統(tǒng)設(shè)計(jì)
三菱plc置位與復(fù)位指令的使用方法圖解 RST  SET,三菱PLC成批復(fù)位
ESP32單片機(jī)入門篇
超聲波測距+溫度+報(bào)警的單片機(jī)代碼_51單片機(jī)超聲波測距C語言程序
“起保!被芈罚琍LC的置位與復(fù)位指令 西門子PLC和三菱PLC置位和
七段數(shù)碼管顯示原理研究_數(shù)碼管顯示0~9對應(yīng)的段碼
單片機(jī)C語言編程入門教程  流水燈程序示例
基于51單片機(jī)—多功能秒表,多功能計(jì)時(shí)器C語言程序
STC89C52單片機(jī)數(shù)字電流表電壓表源碼與電路圖  51單片機(jī)電流電壓
自學(xué)stm32單片機(jī)四個(gè)步驟,實(shí)用又高效!
先學(xué)51還是先學(xué)STM32?STM32和51單片機(jī)的區(qū)別
單片機(jī)最小系統(tǒng)介紹及電路設(shè)計(jì) STM32單片機(jī)最小系統(tǒng)
西門子plc置位與復(fù)位指令的功能說明
什么是PIC單片機(jī)
西門子PLC置位、復(fù)位指令
為什么51單片機(jī)的晶振一般使用11.0592? 51單片機(jī)常用波特率初值表
51單片機(jī)寄存器功能一覽表
單片機(jī)寫延時(shí)程序的幾種方法
自學(xué)單片機(jī)編程之中斷與時(shí)鐘程序
哈佛結(jié)構(gòu)與馮·諾伊曼結(jié)構(gòu)區(qū)別以及X86體系
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個(gè)字
[ 查看全部 ] 網(wǎng)友評論
最新推薦
關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
主站蜘蛛池模板: 安西县| 临漳县| 建德市| 山东省| 商水县| 渭源县| 潮州市| 石嘴山市| 东乌珠穆沁旗| 温泉县| 南投县| 江门市| 定陶县| 满城县| 延川县| 莱西市| 个旧市| 磐石市| 志丹县| 马公市| 淮南市| 康马县| 肃北| 潍坊市| 湄潭县| 通化市| 霸州市| 英德市| 易门县| 堆龙德庆县| 永嘉县| 呼伦贝尔市| 崇左市| 嘉黎县| 麻江县| 巩留县| 龙南县| 密山市| 托里县| 延吉市| 泸水县|