<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è) > 嵌入式系統 > 設計應用 > MCU需要改進(jìn)

MCU需要改進(jìn)

作者: 時(shí)間:2008-09-11 來(lái)源:網(wǎng)絡(luò ) 收藏
長(cháng)久以來(lái),計算機系統的抗干擾一直是人們關(guān)心的重要問(wèn)題,因為計算機用得越來(lái)越廣,可靠性越來(lái)越重要,而抗干擾本身就是可靠性的重要組成部分。為了汽車(chē)、飛機、衛星、反應堆的安全,人們在抗干擾問(wèn)題上花費了大量精力與金錢(qián),盡管已經(jīng)取得了長(cháng)足的進(jìn)展,但在性?xún)r(jià)比上遠不能滿(mǎn)足要求,以致高抗干擾的要求只是在高技術(shù)領(lǐng)域才加以考慮。本文討論了干擾對錯誤的形成機制,提出了對MCU改進(jìn)的建議。這個(gè)建議如果實(shí)施,不僅有利于高技術(shù)領(lǐng)域的應用,也會(huì )惠及一般的民用領(lǐng)域。


1 干擾源的討論
很久以前,還在“8031+2764+14433”的年代,我們做了一批過(guò)程監控儀表,用于滅菌過(guò)程F0的監控,遇到了強烈的干擾問(wèn)題。滅菌過(guò)程約30 min,由電觸點(diǎn)壓力表控制進(jìn)氣電磁閥,間接控制溫度。F0是一個(gè)溫度函數的積分值,可以反映滅菌的效果,它綜合考慮了溫度波動(dòng)的影響。當時(shí)采取了一些抗干擾措施,例如,硬件上對信號線(xiàn)屏蔽,信號濾波;軟件上的智能濾波,程序復執,程序分段保護,數據后備,端口等重復初始化,ROM的定時(shí)校驗和檢驗,多種出錯報警,出錯時(shí)重新熱啟動(dòng)(可使問(wèn)題有所緩和,但偶然會(huì )有判為ROM校驗和錯而停機的情況出現)。由于當時(shí)F0只是用作參考,問(wèn)題尚不嚴重,如要掩蓋,也可以用熱啟動(dòng)代替停機;但很快F0要作為產(chǎn)品工藝參數,用記錄紙備案,于是就重新設計了監控儀。新的監控儀用89C51+14433,再加上光耦和T15617 D/A轉換器,將溫度和F0變?yōu)槟M量后送到雙筆記錄儀,實(shí)現產(chǎn)品工藝過(guò)程的記錄與存檔。硬件上,光耦隔離后部分是D/A和模擬電路,軟件在原有基礎上添加與T15617有關(guān)的串行通信部分。T15617的串行通信類(lèi)似I2C,由CS、DIN和SCLK三條線(xiàn)構成,SCLK數據位時(shí)鐘可達到25 ns,速度很高。用于計算的周期是6 s,儀表用定點(diǎn)算法配以查表,所以留出了充足的時(shí)間做許多抗干擾的工作。在D/A用的串行通信中甚至考慮了多次重復發(fā)送的子程序,希望減少通信錯誤的影響;但結果卻很壞,記錄紙上是一片墨帶。由于不知道通信對錯,很可能最后一次傳送就是錯的,于是不得不重新處理抗干擾問(wèn)題。
經(jīng)查干擾主要發(fā)生在電磁閥動(dòng)作的時(shí)候,由于不可能在現場(chǎng)為每一個(gè)簡(jiǎn)單的小表制作一個(gè)良好的地線(xiàn),一般的市售電源濾波器件根本不起作用?,F場(chǎng)用的是220 V交流電磁閥,無(wú)法設計緩沖線(xiàn)路。分析認為,電磁閥斷開(kāi)時(shí)會(huì )在電源上產(chǎn)生很大的反向電壓。交流電源的示波器受到干擾,在無(wú)法看清干擾的情況下,就用數字萬(wàn)用表觀(guān)察,可以觀(guān)察到1 300 V以上的讀數??紤]到數字萬(wàn)用表輸入的濾波效果,真正的峰值還要大,因此推想,高頻的干擾穿越了變壓器繞組間電容,造成變壓器次級交流電壓瞬間反向。盡管反向波幅的衰減很大,但因方向已改變,整流二極管來(lái)不及響應,已不供電,而濾波的電解電容器動(dòng)態(tài)上來(lái)不及反應,也不供電,造成穩壓前直流電源瞬間下降。同時(shí)它通過(guò)整流二極管,78L15、78L05等低頻器件到達二組隔離的電源,造成直流電源跌落。循此思路,發(fā)現TI5617的SCLK可能出現不正確的時(shí)鐘信號,造成數據傳送的錯誤。TI5617的讀數發(fā)生在SCLK的下降沿,說(shuō)明書(shū)上強調,在非傳送時(shí)減少饋通應使SCLK=LOW,為節省電流消耗,SCLK是從光耦的基極輸出的。因此若光耦次級電源跌落,確實(shí)會(huì )造成SCLK下降而誤讀。然后我們在基極電阻(20 kΩ)上并聯(lián)0.1μF電容,在光耦次級電源上串接高頻二極管,以防0.1μF電容器通過(guò)光耦反向放電。采取此措施后,記錄曲線(xiàn)不再有墨帶。對本應用而言,干擾問(wèn)題初步解決,但仍不徹底。干擾得到解決本身證實(shí)了分析是正確的――來(lái)自電源的干擾有可能進(jìn)到直流電源部分。
國際標準ISO7637是針對汽車(chē)電子領(lǐng)域電源的傳導干擾問(wèn)題的。它規定有#1、#2a/b、#3a/b、#4、#5a/b等多種測試波形,反映實(shí)際應用中會(huì )遇到的情形。其中,關(guān)斷感性負載(例如雨刮器的馬達)引起的電壓升高,在12 V系統中可達50 V,雖有瞬間超過(guò)元器件耐壓而引起損傷的可能性,但不會(huì )直接引起誤動(dòng)作。而在波形#1中,關(guān)斷感性負載(例如電動(dòng)座椅的馬達和座椅的加熱系統)產(chǎn)生的脈沖,在電源為12 V的系統中1 μs可達到一100 V,衰減到10%的時(shí)間為2 ms。在波形#3a中,電源為12 V的系統里5 ns可達到-138 V,回到0 V的時(shí)間大約為100 ns。這些是典型數據,實(shí)際上電源線(xiàn)不是匹配的傳輸線(xiàn),干擾波還要來(lái)回反射,情況更為復雜。在這些場(chǎng)合,也可能發(fā)生直流電源的跌落干擾。
空間的幅射干擾也是經(jīng)常遇到的問(wèn)題,例如在太空或反應堆附近,電子器件會(huì )受到重離子的轟擊而產(chǎn)生故障;又如在空港區或大電流、高電壓區域,電子器件也會(huì )受到強電磁輻射而發(fā)生故障。在這些場(chǎng)合,干擾也會(huì )引起MCU的基本門(mén)電路工作失誤。

2 Watchdog不能解決軟件可靠性問(wèn)題
Vcc的跌落會(huì )引起MCU的誤動(dòng)作。MCU里每一個(gè)讀/寫(xiě)操作都是由門(mén)電路實(shí)現的,門(mén)的開(kāi)關(guān)依賴(lài)于門(mén)的閾值和信號的時(shí)序。電源跌落時(shí)閾值發(fā)生變化,振蕩器產(chǎn)生的信號時(shí)序也會(huì )變形。下面以8051單片機為例,考察如果干擾發(fā)生在執行指令“MOV dirl,dir2”時(shí)會(huì )產(chǎn)生什么后果。假定錯誤發(fā)生在指令的第1字節,最壞的情形是每個(gè)bit都反轉,而最大的概率是只有一個(gè)bit發(fā)生反轉。一個(gè)bit發(fā)生反轉的情況如表1所列。

從表1可見(jiàn),一個(gè)bit的變化完全改變了指令的意義,程序流或數據產(chǎn)生不可預測的變化。例如,表中的跳轉部分(bit 0,2或5發(fā)生變化)可能不轉入死循環(huán),不引起Watchdog動(dòng)作,也有可能跳到非正常指令處,直至死循環(huán)。表中非跳轉指令則有可能改變累加器(bit 0,1,3,4,6或7發(fā)生變化),數據RAM(bit 1,3,6或7發(fā)生變化)或狀態(tài)寄存器(bit 0,1,3,4,6或7發(fā)生變化)。如果錯誤發(fā)生在指令的第2或第3字節,數據的源或目的地址就錯了。因此,即使Watchdog沒(méi)動(dòng)作,也不表示程序運行正常。對8051其他指令作分析可得到類(lèi)似的結果。由此可見(jiàn),Watchdog至多保證系統不死機,卻有可能掩蓋了數據的錯誤。
F0設計中,在關(guān)鍵點(diǎn)大量采用了“MOV dirl,tmp’,“MOV tmp,dir2”的形式將數據從dirl送到dir2,而不采用“MOV A,@R1”類(lèi)指令,以減小對原始數據破壞的可能性,從而為程序復執創(chuàng )造條件。例如在備份數據Treh到Tbkh時(shí),先將Treh送tmp1,然后將數據由tmp1送到備份Tbkh,再校驗Tbkh與Treh是否一樣。若不一樣,就重作備份。采用的部分程序如下:

其中“MOV A,tmp1”仍有破壞tmp1的可能性,但tmp1是Treh的拷貝,壞了可重做;“XRL A,Treh'’有可能破壞Treh,但已無(wú)法作其他選擇。
在硬件抗干擾方面,有許多專(zhuān)用的電源監控芯片,如TL7705等,但是它們只適合在較慢的電源擾動(dòng)下使用。對于直流電源的跌落干擾,MCU根本來(lái)不及作現場(chǎng)的保護工作,所以它不是解決快速干擾問(wèn)題的辦法。
在F0中使用的辦法也不盡完善,一般單片機線(xiàn)路中還有很多外圍線(xiàn)路,例如F0中的光耦,3個(gè)光耦同時(shí)導通時(shí)要消耗約50 mA的電流,它們形成的動(dòng)態(tài)電阻很小,發(fā)生電源跌落時(shí),并聯(lián)于MCU的解耦電容對此電阻放電,無(wú)法保證MCU正常工作的額定電壓。如在MCU電源中串接高頻二極管,就會(huì )引起額外的電源消耗,在低功耗的應用中也會(huì )形成新的缺點(diǎn)。有些功能強大的MCU本身功耗就大,容許的電源變化范圍小,能否依靠解耦電容對抗電源跌落還需要檢驗。綜上所述,軟件解決辦法不徹底,硬件解決辦法也有很多缺點(diǎn)與限制。


3 MCU要增加的功能
由于干擾而使指令出錯的問(wèn)題不是watchdog能解決的,特別是造成源數據錯時(shí),程序復執也不能糾正錯誤的結果。程序設計者要在現成的指令體系中找到對源數據危害性概率最小的指令不容易。即使找到,也不能保證指令在有多bit跳變時(shí)源數據不錯。另外,有些指令錯誤也可能破壞其他處的數據。利用破壞數據概率最小的指令設計程序也不是好辦法,它既耗ROM空間,又費運行時(shí)間。
增大指令的Hamming距離可以改善這一情況。例如,給指令增加一到數位校驗位,一旦指令通不過(guò)校驗,就不執行,并重新取指。這樣,問(wèn)題就有可能在產(chǎn)生后果前解決。就目前MCU的設計與生產(chǎn)水平而言,在技術(shù)與成本上這種增加不會(huì )有很大困難。雖然這一辦法在添加的校驗位有限時(shí)仍會(huì )有一定出錯概率,但這種概率可以小到能接受的程度。
為了更為可靠,作校驗的線(xiàn)路可有某種冗余。連續重取指可能反映有其他故障,應通過(guò)某種方式通知應用層。為了不打擾程序設計者,這些指令的添加位應該在寫(xiě)入ROM時(shí)自動(dòng)生成,這樣就不會(huì )產(chǎn)生與現有產(chǎn)品的兼容性問(wèn)題。
在早期的MCU應用中,Watchdog是外置的,后來(lái)都集成到MCU里面去了。如果實(shí)現上述功能,MCU的抗干擾能力會(huì )更強,Watchdog可能就不需要了。軟件的可靠性分析就可以將程序走飛和數據的完整性問(wèn)題分割出來(lái)加以處理,軟件部分更專(zhuān)注于邏輯分析,意義深遠。



關(guān)鍵詞: 抗干擾 容錯 Watchdog 設計

評論


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