祝奕冰
摘 要 通過(guò)對(duì)單片機(jī)實(shí)際應(yīng)用中遇到的、與可靠性技術(shù)有關(guān)的問(wèn)題的討論,提出了一些解決辦法。只有細(xì)致周到地分析干擾源,硬件與軟件抗干擾相結(jié)合,完善系統(tǒng)監(jiān)控程序,設(shè)計(jì)一套穩(wěn)定可靠的單片機(jī)系統(tǒng)是完全可以實(shí)現(xiàn)的。
關(guān)鍵詞 單片機(jī) 抗干擾 可靠性 穩(wěn)定性
中圖分類號(hào):TP3 文獻(xiàn)標(biāo)識(shí)碼:A
1單片機(jī)選型
1.1低功耗單片機(jī)
CHMOS芯片是專為低功耗系統(tǒng)設(shè)計(jì)的芯片類型,通過(guò)對(duì)單片機(jī)的特殊功能寄存器 PCON編程,使單片機(jī)工作在待機(jī)或掉電工作方式。在設(shè)計(jì)低功耗應(yīng)用系統(tǒng)時(shí),不僅要選用低功耗型單片機(jī),在外圍擴(kuò)展電路中也應(yīng)選擇低功耗的芯片和器件。
1.2低噪聲單片機(jī)
使用低噪聲單片機(jī)可實(shí)現(xiàn)單片機(jī)系統(tǒng)噪聲的降低。而大功率的驅(qū)動(dòng)電路集成到單片機(jī)內(nèi)部無(wú)疑增加了噪聲源,一般采用跳變沿軟化技術(shù)可降低此類系統(tǒng)噪聲。
1.3高速度單片機(jī)
單片機(jī)外部時(shí)鐘是高頻的噪聲源,除了能引起單片機(jī)應(yīng)用系統(tǒng)本身的干擾之外,還可能對(duì)外界其他設(shè)備造成干擾,使電磁兼容檢測(cè)不能達(dá)標(biāo)。在對(duì)系統(tǒng)可靠性要求很高的應(yīng)用系統(tǒng)中,通??蛇x用時(shí)鐘頻率低、指令運(yùn)行速度快的單片機(jī)來(lái)降低系統(tǒng)噪聲干擾。
2單片機(jī)硬件抗干擾
2.1接地
給單片機(jī)系統(tǒng)提供良好的保護(hù)地線,提高系統(tǒng)的抗干擾能力。
2.2隔離與屏蔽
隔離一般是通過(guò)使用光電隔離器件將單片機(jī)的輸入輸出隔離開(kāi),從而有效地抑制尖峰脈沖及各種噪聲干擾,使傳輸通道的信噪比大大提高。屏蔽則是用來(lái)隔離空間輻射的,對(duì)噪聲特別大的部件,如開(kāi)關(guān)電源用金屬盒罩起來(lái),可減少對(duì)單片機(jī)系統(tǒng)的干擾。
2.3PCB綜合布局和布線
PCB電路板的設(shè)計(jì)要本著盡量控制噪聲源、盡量減小噪聲的傳播與耦合和盡量減少敏感元件對(duì)干擾噪聲的拾取這三大原則進(jìn)行。具體設(shè)計(jì)時(shí),應(yīng)結(jié)合PCB設(shè)計(jì)的相關(guān)規(guī)則進(jìn)行合理的布局和布線。
2.4硬件“看門(mén)狗”技術(shù)
若失控的程序進(jìn)入“死循環(huán)”,一般采用“看門(mén)狗”技術(shù)使程序脫離“死循環(huán)”。通過(guò)硬件“看門(mén)狗”電路不斷檢測(cè)程序循環(huán)運(yùn)行時(shí)間,當(dāng)發(fā)現(xiàn)程序循環(huán)時(shí)間超過(guò)最大循環(huán)運(yùn)行時(shí)間,則認(rèn)為系統(tǒng)陷入“死循環(huán)”,對(duì)單片機(jī)進(jìn)行復(fù)位操作,脫離“死循環(huán)”。
3單片機(jī)軟件抗干擾
3.1指令冗余技術(shù)
單片機(jī)CPU取指令過(guò)程是先取操作碼,再取操作數(shù)。當(dāng)PC受干擾出現(xiàn)錯(cuò)誤,程序便脫離正常軌道“亂飛”,當(dāng)亂飛到某雙字節(jié)指令,若取指令時(shí)刻落在操作數(shù)上,誤將操作數(shù)當(dāng)作操作碼,程序?qū)⒊鲥e(cuò)。若“飛” 到了三字節(jié)指令,出錯(cuò)機(jī)率更大。
在關(guān)鍵地方人為插入一些單字節(jié)指令,或?qū)⒂行巫止?jié)指令重寫(xiě)稱為指令冗余。通常是在雙字節(jié)指令和三字節(jié)指令后插入兩個(gè)字節(jié)以上的NOP。這樣即使亂飛程序飛到操作數(shù)上,由于空操作指令NOP的存在,避免了后面的指令被當(dāng)作操作數(shù)執(zhí)行,程序自動(dòng)納入正軌。
此外,對(duì)系統(tǒng)流向起重要作用的指令如RET、 RETI、LCALL、LJMP、JC等指令之前插入兩條NOP,也可將亂飛程序納入正軌,確保這些重要指令的執(zhí)行。
3.2軟件陷阱技術(shù)
當(dāng)亂飛程序進(jìn)入非程序區(qū),冗余指令便無(wú)法起作用。通過(guò)設(shè)置軟件陷阱,攔截亂飛程序,將其引向指定位置,再進(jìn)行出錯(cuò)處理。軟件陷阱是指用來(lái)將捕獲的亂飛程序引向復(fù)位入口地址0000H的指令。
3.3軟件“看門(mén)狗”技術(shù)
若失控的程序進(jìn)入“死循環(huán)”,通常采用“看門(mén)狗”技術(shù)使程序脫離“死循環(huán)”。通過(guò)不斷檢測(cè)程序循環(huán)運(yùn)行時(shí)間,若發(fā)現(xiàn)程序循環(huán)時(shí)間超過(guò)最大循環(huán)運(yùn)行時(shí)間,則認(rèn)為系統(tǒng)陷入“死循環(huán)”,需進(jìn)行出錯(cuò)處理?!翱撮T(mén)狗”技術(shù)可由硬件實(shí)現(xiàn),也可由軟件實(shí)現(xiàn)。 在工業(yè)應(yīng)用中,嚴(yán)重的干擾有時(shí)會(huì)破壞中斷方式控制字,關(guān)閉中斷。則系統(tǒng)無(wú)法定時(shí)“喂狗”,硬件“看門(mén)狗”電路失效。而軟件“看門(mén)狗”可有效地解決這類問(wèn)題。
軟件看門(mén)狗通常是使用定時(shí)器中斷來(lái)監(jiān)視程序運(yùn)行狀態(tài)。定時(shí)器的定時(shí)時(shí)間稍大于主程序正常運(yùn)行一個(gè)循環(huán)的時(shí)間,在主程序運(yùn)行中執(zhí)行一次定時(shí)器時(shí)間常數(shù)刷新操作,這樣只要程序正常運(yùn)行,定時(shí)器不會(huì)出現(xiàn)定時(shí)中斷。當(dāng)程序失常時(shí),就不能及時(shí)刷新定時(shí)器時(shí)間常數(shù)而導(dǎo)致定時(shí)中斷時(shí),利用定時(shí)中斷服務(wù)程序?qū)⑾到y(tǒng)復(fù)位。
4單片機(jī)復(fù)位
一般來(lái)說(shuō)不同的單片機(jī)的復(fù)位電路稍有不同,單片機(jī)廠商都會(huì)提供標(biāo)準(zhǔn)的復(fù)位電路資料,可根據(jù)資料合理設(shè)計(jì)復(fù)位電路。
5單片機(jī)系統(tǒng)可靠性測(cè)試
5.1測(cè)試單片機(jī)軟件功能的完善性
這是針對(duì)所有單片機(jī)系統(tǒng)功能的測(cè)試,根據(jù)生產(chǎn)要求和控制要求測(cè)試軟件是否正確完整。
5.2上電掉電測(cè)試
在使用中,用戶必然會(huì)遇到上電和掉電的情況,通過(guò)多次開(kāi)關(guān)電源來(lái)測(cè)試單片機(jī)系統(tǒng)的可靠性。
5.3老化測(cè)試
測(cè)試長(zhǎng)時(shí)間工作情況下,單片機(jī)系統(tǒng)的可靠性。必要的話可以放置在高溫、高壓以及強(qiáng)電磁干擾的環(huán)境下測(cè)試。
5.4ESD和 EFT等測(cè)試
可以使用各種干擾模擬器來(lái)測(cè)試單片機(jī)系統(tǒng)的可靠性。例如使用靜電模擬器測(cè)試單片機(jī)系統(tǒng)的抗靜電ESD能力;使用突波雜訊模擬器進(jìn)行快速脈沖抗干擾 EFT測(cè)試等等。
5.5人為模擬測(cè)試
即人為模擬使用中可能發(fā)生的破壞情況。例如用人體或者衣物故意摩擦單片機(jī)系統(tǒng)的接觸端口,由此測(cè)試抗靜電的能力。用大功率電鉆靠近單片機(jī)系統(tǒng)工作,由此測(cè)試抗電磁干擾能力等。
參考文獻(xiàn)
[1] 馮江,溫如春,易見(jiàn)兵. MCS-51單片機(jī)走飛的軟件抗干擾方法研究[J].南方冶金學(xué)院學(xué)報(bào),2006(01).
[2] 李精華,陳勝權(quán).單片機(jī)系統(tǒng)中的抗干擾分析及措施[J].信息技術(shù),2005(08).