當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]介紹一種用休眠-復(fù)位運(yùn)行方式提高單片機(jī)抗干擾能力的方法。

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

    關(guān)鍵詞:單片機(jī) 復(fù)位/休眠抗干擾

引 言

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

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

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

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

    1.2 外部條件復(fù)位法

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

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

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

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

    2.2 外部條件復(fù)位

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

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

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

    2.4 輸出端子的處理

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

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

??(2)容 錯(cuò)

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

    2.5 上電檢測(cè)與手動(dòng)復(fù)位

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

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

    3.1 輸出恢復(fù)與不清零RAM

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

    3.2 實(shí)現(xiàn)跨越定時(shí)復(fù)位間隔的時(shí)序控制

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

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

圖5 變壓器保護(hù)器部分程序流程

結(jié) 語(yǔ)

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉