<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 單片機休眠-復位運行方式可提高抗干擾能力

單片機休眠-復位運行方式可提高抗干擾能力

作者: 時(shí)間:2011-12-28 來(lái)源:網(wǎng)絡(luò ) 收藏

引 言

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

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

1.1 無(wú)條件定時(shí)復位法

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

1.2 外部條件復位法

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

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

2.1 無(wú)條件定時(shí)復位

一般有2種方法。① 使用定時(shí)器或專(zhuān)用時(shí)鐘芯片復位。圖1為使用555電路組成的定時(shí)電路;也可以使用X1126之類(lèi)的時(shí)鐘芯片,設置報警時(shí)間后用報警信號喚醒CPU。這種方法適用于長(cháng)間隔定時(shí),還可以根據本次運算的結果,臨時(shí)決定下一次的報警喚醒時(shí)間,非常靈活方便。② 使用系統固有的信號作為定時(shí)復位脈沖。例如使用50Hz工頻電源整形后作復位,既省略了定時(shí)器,同時(shí)又為檢測電流信號的相位采集了相應的信號,如圖2所示。

2.2 外部條件復位

??把外部條件脈沖整形后送到復位端子。對于上述水輪或電表度盤(pán)產(chǎn)生的脈沖,可以使用施密特觸發(fā)器整形;對于記錄最大或最小值的儀器,可使用窗口比較器。為了實(shí)現調節的電子化,可以使用電子電位器,用單片機指令設定上下限。

2.3 復位周期與復位高電平時(shí)間

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

2.4 輸出端子的處理

(1)復位期間的正脈沖

復位期間單片機的全部I/O口變成高電平。也就是說(shuō),正常輸出為低的引腳,會(huì )按照復位周期出現寬度為T(mén)r的正脈沖。這個(gè)正脈沖會(huì )影響正常的輸出,有2個(gè)辦法處理:① 在端子上并聯(lián)電容加以抑制,容量根據復位的Tr時(shí)間確定。減小Tr可以減小并聯(lián)電容。② 把外圍電路設計成高電平無(wú)效。

(2)容 錯

適當選取輸出端并聯(lián)電容的容量,可以實(shí)現容錯控制。在某個(gè)復位周期,因干擾輸出了錯誤電平。由于電容的保持作用,在本周期內尚不能使輸出變化到有效的電平;在下個(gè)周期,錯誤被糾正。因此,只要不是連續2個(gè)周期出錯,輸出是可容錯的。當然,這種方法會(huì )使正常的輸出變化滯后一個(gè)周期,才真正反映到輸出端子。

2.5 上電檢測與手動(dòng)復位

有些系統在初上電時(shí)要做一些初始化操作。采用復位方式運行時(shí),每次復位已經(jīng)成為正常運行的開(kāi)始條件,無(wú)法辨別是否初上電。在某引腳對地接一個(gè)1μF的電容,復位后檢測該引腳,如果是低電平就是初上電。如果給系統設立一個(gè)復位按鈕,也就是常見(jiàn)的手動(dòng)復位,這個(gè)按鈕不是連接在復位端,而是并聯(lián)在上述引腳對地的電容兩端。

3 軟件實(shí)現要點(diǎn)

3.1 輸出恢復與不清零RAM

定時(shí)復位后全部引腳變成高電平,使得本應為低的引腳發(fā)生了不應有的變化,因此,復位后要立即恢復所有引腳的狀態(tài)。有2種方法:① 本次復位后立即進(jìn)行分析判斷,根據需要給出引腳狀態(tài);② 根據RAM中上一次留存下來(lái)的狀態(tài),這些RAM在定時(shí)復位時(shí)是不能清零的;而在初上電或手動(dòng)復位按下時(shí)應清零,在軟件編制時(shí)要體現出來(lái)。如果計算時(shí)間允許,盡量采取方法1。因為連續2次復位周期都計算出錯的概率很小,按照2.4敘述的輸出端子并聯(lián)電容的處理方法,可以達到很好的抗干擾效果。

3.2 實(shí)現跨越定時(shí)復位間隔的時(shí)序控制

現在用復位方式工作,每次從頭開(kāi)始反復執行同一程序??煞譃?種情況:① 對于單純顯示儀表,每次復位后進(jìn)行測量、送顯示,兩次復位之間沒(méi)有因果關(guān)系,只需把原來(lái)的等待改為休眠即可。要注意的是,測量、送顯示用的總時(shí)間要小于復位低電平時(shí)間,否則會(huì )出現永遠不能完整執行程序的錯誤。② 對于有時(shí)序控制的應用,每次復位后,先要查看上個(gè)周期留下的標志,以決定本周期做什么。也就是說(shuō),凡是跨過(guò)復位周期的操作,都是靠標志傳遞的,這些標志存放在內部RAM中,只有初上電時(shí)才清零。例如,前面提到的變壓器綜合保護器,按照20ms的間隔定時(shí)復位。它在上電后,經(jīng)過(guò)一定的動(dòng)作順序達到正常工作狀態(tài),如圖4;根據這個(gè)動(dòng)作編寫(xiě)軟件流程的一部分,如圖5。

在圖4中,當保護器初上電時(shí),首先試送電0.5s,提示馬上就要送電;等待30s后正式送電。送電后的1s內為啟動(dòng)時(shí)間,不進(jìn)行過(guò)電流檢測。啟動(dòng)完成后,如果一切正常,則把“正常標志”置位,保護器在下一個(gè)復位周期進(jìn)入正常運行。試送電的0.5s延時(shí)是對復位進(jìn)行25次計數實(shí)現的,因為每次復位時(shí)間是20ms。初上電時(shí),對內部RAM做全部清零,令試送電計時(shí)Ts=25后休眠。下一次被復位后,再檢測上電引腳已不是初上電,于是進(jìn)行到試送電計時(shí)Ts的檢測。如果Ts≠0,說(shuō)明在送電延時(shí)期間,把Ts減1后進(jìn)入休眠。當Ts-1=0時(shí),應該進(jìn)入停電等待30s的過(guò)程了。就在Ts遞減到0的時(shí)候,令停電等待標志Td=1500。當程序再次由復位開(kāi)始時(shí),檢測到Ts=0但是Td≠0,表明已經(jīng)越過(guò)了試送電,現在正處于停電等待30s的過(guò)程中。這樣,整個(gè)進(jìn)程由Tr、Td、Ts等這些參數相互傳遞著(zhù),一步步進(jìn)行下去。



結 語(yǔ)

抗干擾是電子設計中的重要問(wèn)題,在單片機中尤其重要。這是因為單片機有程序跑飛的特殊性,它受到干擾的后果可能是死機,也可能在死機前發(fā)出各種錯誤或非法動(dòng)作,使整個(gè)系統產(chǎn)生致命性錯誤。因此,僅僅保證單片機不死機還不夠,還要研究如何減少受干擾的風(fēng)險,以及出錯后如何能夠容錯。本文力圖從這兩方面作些探索,希望這些粗淺見(jiàn)解能夠起些拋磚引玉的作用,對大家有所幫助;也希望各位同仁一起探索,共同提高我們的設計水平。

電度表相關(guān)文章:電度表原理


電機保護器相關(guān)文章:電機保護器原理


關(guān)鍵詞: 單片機 復位 休眠 抗干擾

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>