<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í)間:2016-12-02 來(lái)源:網(wǎng)絡(luò ) 收藏

③ 時(shí)間監視器
時(shí)間監視器(Watch-Dog Timer),也稱(chēng)“看門(mén)狗”技術(shù),用于設立軟件陷阱失效的情況下,讓系統從故障中恢復過(guò)來(lái)。因為因干擾而失控的程序不一定都會(huì )掉到陷阱中去,比如程序的死循環(huán)就是如此。所謂死循環(huán),就是由于某種原因使程序陷入某個(gè)應用程序或中斷服務(wù)子程序中做無(wú)休止的循環(huán)。這樣,CPU及其他系統資源被其占用而別的任務(wù)程序都無(wú)法執行。也就是說(shuō),死循環(huán)使程序失去正??刂?,但它不會(huì )使程序控制轉入陷阱區,因而軟件陷阱無(wú)法捕捉它。
時(shí)間監視器由兩個(gè)計數器組成,計數器靠系統時(shí)鐘(或分頻后的脈沖信號)進(jìn)行計數。當計數器記滿(mǎn)時(shí),將由計數器產(chǎn)生一個(gè)復位信號,強迫系統復位,使系統重新執行程序。在正常情況下,每隔一定的時(shí)間(根據系統應用程序執行的長(cháng)短來(lái)確定),程序使計數器清零。這樣,計數器就不會(huì )記滿(mǎn),因而不會(huì )產(chǎn)生復位。

本文引用地址:http://dyxdggzs.com/article/201612/324745.htm


圖2 SPCE061A 看門(mén)狗結構與時(shí)序
例如,凌陽(yáng)單片機SPCE061A的WatchDog的清除時(shí)間周期為0.75s。因為WatchDog的溢出復位信號WatchDog_Reset是由4Hz時(shí)基信號經(jīng)4分頻之后產(chǎn)生的,即每4個(gè)4Hz時(shí)基信號(1s)將會(huì )產(chǎn)生一個(gè)WatchDog_Reset信號。而清除WatchDog的WatchDog_Clear信號卻可以發(fā)生在4Hz信號(0.25s)之間的任意一個(gè)時(shí)刻點(diǎn)上。假如WatchDog_Clear信號發(fā)生在4Hz信號尾端的0.01s即第0.25s時(shí)刻,此時(shí)雖然WatchDog被清除掉,但由于它發(fā)生在4Hz信號之后,再經(jīng)3個(gè)4Hz信號即0.75s,如果一直沒(méi)有WatchDog_Clear信號,便會(huì )產(chǎn)生出一個(gè)WatchDog_Reset信號。如圖2所示,如果程序運行不正常,例如陷入死循環(huán)等,計數器將記滿(mǎn)而產(chǎn)生溢出此溢出信號用來(lái)產(chǎn)生復位信號,使程序重新開(kāi)始啟動(dòng)。在編程中,我們只需將0X0001H寫(xiě)入P_WatchDog_Clear單元即可完成清除WatchDog操作,如果在0.75秒內沒(méi)有將0X0001H寫(xiě)入P_WatchDog_Clear單元,則CPU將進(jìn)行系統復位操作,即平常我們說(shuō)的重啟系統??撮T(mén)狗經(jīng)常用于延時(shí)程序中,如
void Delay()
{
unsigned int j;
for(j=0x7fff;j>0;j--);
*P_Watchdog_Clear = 0x0001;//清看門(mén)狗
}
④ 加入空操作NOP
在ROM或RAM的若干區域內,存放若干個(gè)空操作組,空操作的個(gè)數等于所選CPU芯片最長(cháng)指令節數??詹僮髦噶頝OP除了占用一個(gè)存儲單元和執行時(shí)間外,對CPU的工作狀態(tài)沒(méi)有影響。如有選擇地在程序某地方插進(jìn)1~2個(gè)NOP指令,也能使PC中的內容得到調整,使程序在受到干擾后回到正確的順序。插入的位置要在程序調試過(guò)程中摸索、分析和實(shí)驗。一般來(lái)說(shuō),在對外設端口的操作指令、多字節指令、轉移指令、堆棧操作指令前插入NOP指令會(huì )得到好的效果。此外,還可以在空操作組之后,再增加處理跑飛的程序,而且讓CPU在執行正常程序時(shí),不執行這些指令組。只有當跑飛時(shí)才有可能遇到這些指令組。例如:
NOP
NOP
NOP
LJMP FF
FF:ACALL FLY
MOV A,FLG
CJNE A,#11H,RSM
……
⑤ 分段式軟件抗干擾
某些時(shí)候,控制系統要順序執行幾個(gè)不同的主循環(huán)通道以完成不同的功能。這時(shí)可在不同主環(huán)路內編制抗干擾判別及自恢復功能。這樣做可以避免不必要的重復執行,以保證順序的完整性。
⑥ 數字濾波
數字濾波是通過(guò)程序設計對單片機數據采集部分輸入的信號進(jìn)行加工處理,以達到抗干擾的目的。當干擾疊加輸入通道的模擬信號時(shí),使數據采集誤差加大,特別當輸入通道模擬信號較弱時(shí),此現象更加嚴重。為了消除數據采集的誤差,常用算術(shù)平均法、比較取舍法、一階滯后濾波法和中值法,可根據信號和干擾的規律,采用最優(yōu)的設計方法。
不同的單片機應用系統都有自己的系統要求和特點(diǎn),在硬件和軟件抗干擾設計上也各有自己的特色。軟件抗干擾技術(shù)作為硬件抗干擾的補充,以其靈活性、實(shí)用性和可靠性在擾方面起著(zhù)舉足輕重的作用。在工程實(shí)踐中通常都是幾種抗干擾技術(shù)并用,互相補充,才能取得良好的抗干擾效果。我們在設計單片機應用系統時(shí),要仔細分析干擾源,軟硬件抗干擾技術(shù)相結合,完善系統監控程序,則可以保證系統準確、可靠地運行。


上一頁(yè) 1 2 下一頁(yè)

關(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>