陳桂鈞
摘要:PIC系列的單片機(jī)因?yàn)榭垢蓴_能力強(qiáng)、適用性佳、指令集簡潔、功能完備、功耗較低、體積較小以及成本低廉等優(yōu)勢,被廣泛地用于工業(yè)控制儀表、汽車電氣控制、電機(jī)控制、通信領(lǐng)域以及家電領(lǐng)域等。不管應(yīng)用于何種領(lǐng)域,高度的可靠性均是必需的條件之一。本文從增強(qiáng)PIC單片機(jī)自身的抗干擾作用和增設(shè)程序(指令)兩個方面分析和探討了PIC單片機(jī)應(yīng)用系統(tǒng)的可靠性技術(shù)問題。
關(guān)鍵詞:PIC單片機(jī)可靠性技術(shù)抗干擾程序后者指令
中圖分類號:TD679 文獻(xiàn)標(biāo)識碼:A 文章編號:1674-098X(2012)06(c)-0064-01
PIC單片機(jī)應(yīng)用系統(tǒng)的可靠性問題具有高度的系統(tǒng)性,我們應(yīng)該從多個角度來考慮和處理,單一解決某一個方面的問題,無法從根本上保證PIC單片機(jī)的可靠性。一般而言,我們需要綜合考慮硬件設(shè)計和軟件增強(qiáng)這兩個方面來保證PIC單片機(jī)的可靠性。尤其在硬件方面的可靠性設(shè)計是確保PIC單片機(jī)應(yīng)用系統(tǒng)具有高度可靠性的前提與基礎(chǔ)。
1 提高PIC單片機(jī)的抗干擾水平
1.1 啟用WDT
WDT,WatchdogTimer,監(jiān)視定時器,俗稱“看門狗”,它是一個內(nèi)部RC時鐘信號源的累加計數(shù)器,獨(dú)立于其它單元,其計時周期約為18ms左右。PIC單片機(jī)為了有效解決程序失控問題,才用了WDT解決方案。程序之所以出現(xiàn)失控問題,主要是因?yàn)镻IC單片機(jī)在實(shí)際應(yīng)用過程中,電磁干擾、軟件故障、電源電壓疊加噪聲以及電源電壓波動等因素均會對程序的正常運(yùn)行產(chǎn)生干擾作用,使之偏離預(yù)定的運(yùn)行線路。WDT發(fā)揮作用的原理是,PIC單片機(jī)處在休眠狀態(tài)時,如果WDT超時溢出,則會喚醒PIC單片機(jī)使其進(jìn)入正常的工作狀態(tài);PIC單片機(jī)執(zhí)行程序期間,如果WDT超時溢出,PIC單片機(jī)便會自動執(zhí)行復(fù)位動作。我們可以利用定義系統(tǒng)配置字CONFIG中WDTE位的形式來決定是否啟用WDT,設(shè)置“WDTE=1”時,則WDT處于開啟狀態(tài);設(shè)置“WDTE=0”,則WDT處于關(guān)閉狀態(tài)。
1.2 復(fù)位功能
PIC系列的單片機(jī)預(yù)設(shè)有多種的復(fù)位方式,合理設(shè)置復(fù)位功能,對于提高PIC單片機(jī)應(yīng)用系統(tǒng)的可靠性裨益良多。常見的復(fù)位功能主要有:
第一,手動式復(fù)位功能。只要將低電平信號加入到/MCLR復(fù)位端,便可以讓處于執(zhí)行程序狀態(tài)的PIC單片機(jī)實(shí)現(xiàn)復(fù)位。利用手動式的復(fù)位功能,可以讓處于死機(jī)狀態(tài)的PIC單片機(jī)的強(qiáng)制重啟,實(shí)現(xiàn)程序的重新運(yùn)行。
第二,上電復(fù)位功能。上電復(fù)位電路在PIC單片機(jī)每一次加電的同時都需要檢測電源電源VDD的上升過程,在VDD上升至預(yù)定數(shù)值(通常是1.6V至1.8V)便會產(chǎn)生一個有效的復(fù)位信號,該信號在經(jīng)過一定的延時(通常是“72ms+1024個時鐘周期”)之后,PIC單片機(jī)便會成功復(fù)位。如果情況特殊,單純依靠PIC單片機(jī)內(nèi)部的上電復(fù)位電路達(dá)不到要求,建議通過外接阻容延時電路的方式滿足要求,借此讓/MCLR引腳上的低電平的延時時間達(dá)到預(yù)定要求。
第三,掉電檢測復(fù)位功能。掉電檢測復(fù)位功能也稱之為電源電壓跌落復(fù)位功能。電源干擾和電源電壓波動會讓PIC單片機(jī)在執(zhí)行程序的過程中出現(xiàn)死機(jī)、程序錯亂等問題,通過掉電檢測復(fù)位功能可以有效保證PIC單片機(jī)應(yīng)用系統(tǒng)的正常工作。它的主要原理是,它通過為PIC單片機(jī)提供電源跌落預(yù)警信號的方式工作,如果輸入電壓VDD跌落至預(yù)定值時,它便會對PIC單片機(jī)進(jìn)行復(fù)位,借此來防止PIC單片機(jī)應(yīng)用系統(tǒng)失去控制;一旦輸入電壓VDD上升至安全值時,該復(fù)位狀態(tài)便會接觸。為了讓PIC單片機(jī)的掉電檢測復(fù)位電路充分發(fā)揮功用,應(yīng)該將系統(tǒng)配置字寄存器CONFIG的位6置1(置BODEN位為1),至此便可以讓掉電檢測復(fù)位功能發(fā)揮其作用。
1.3 時序設(shè)置
PIC單片機(jī)的時序也可以稱之為主時鐘。它的頻率在0至200MHz之間,其時基振蕩模式共有4中,不同的時基震蕩模式能夠設(shè)計成為不同的時基震蕩頻率。具體而言:(1)高頻晶體振蕩器/陶瓷諧振器振蕩模式HS,它的時基震蕩頻率是4MHZ至20MHz;(2)標(biāo)準(zhǔn)晶體振蕩器/陶瓷諧振器振蕩模式XT,它的時基震蕩頻率是0.2M~4MHz;(3)低頻晶體振蕩器/陶瓷諧振器振蕩模式LP,它的時基震蕩頻率是32.768M~200MHz;(4)外接電阻電容元件的阻容振蕩模式,它的時基震蕩頻率是0.03M~5MHz。如果按照接線方式和外接元件的不同,又可以將時基振蕩模式分為以下三種情況,即外接時鐘電路、外接RC以及外接晶體振蕩器/陶瓷諧振器。
在PIC單片機(jī)的時基振蕩模式以及外接方式的選擇方面,建議用戶依照PIC單片機(jī)應(yīng)用系統(tǒng)的使用環(huán)境、成本以及性能要求等因素進(jìn)行綜合性地考慮和選擇。如果單純從可靠性方面考慮,外接時鐘是高頻噪聲源,除了能對本應(yīng)用系統(tǒng)造成干擾之外,還可能對外界產(chǎn)生干擾。頻率越高越容易成為噪聲源,因此在符合系統(tǒng)性能要求的前提下應(yīng)盡量采用低頻率的系統(tǒng)時鐘。在對系統(tǒng)可靠性要求很高的應(yīng)用系統(tǒng)中,選用頻率低的PIC單片機(jī)是降低系統(tǒng)噪聲的方式之一。
2 增設(shè)PIC單片機(jī)的程序(指令)
2.1 輸出端口刷新
PIC單片機(jī)的I/O口很容易受到外部信號的干擾,輸出口的狀態(tài)可能發(fā)生改變。在應(yīng)用程序中周期性地添加輸出端口刷新指令,可以降低干擾對輸出端口狀態(tài)的影響。設(shè)置當(dāng)前輸出狀態(tài)寄存器,單片機(jī)不斷地查詢輸出狀態(tài)寄存器的狀態(tài)信息,一旦出錯及時糾正。在控制程序中,應(yīng)循環(huán)執(zhí)行控制外設(shè)的指令,在外設(shè)端口受到干擾而發(fā)生狀態(tài)變化時,重復(fù)執(zhí)行的控制指令能使設(shè)備恢復(fù)正常狀態(tài)。
2.2 存儲器中增加必要的指令和程序
在程序存儲器中總會有一些區(qū)域未使用,如果因干擾導(dǎo)致PIC單片機(jī)的指令計數(shù)器PC值被置錯,程序會跳到這些未用的程序存儲空間,系統(tǒng)就會出錯。在程序存儲器的未使用區(qū)域中加上若干條空操作和無條件跳轉(zhuǎn)指令,在程序跳到這些未用區(qū)域時,就會執(zhí)行空操作和無條件跳轉(zhuǎn)指令,轉(zhuǎn)入出錯處理程序。
3 結(jié)語
總之,從安全性可靠性和抗干擾兩個方面來提升PIC單片機(jī)應(yīng)用系統(tǒng)硬件設(shè)計的合理性;同時在軟件系統(tǒng)的增強(qiáng)方面,通過在應(yīng)用程序中增加某些必要的程序(指令集)來進(jìn)一步提升應(yīng)用系統(tǒng)的可靠程度。通過軟硬件方面的綜合考慮,來提升PIC單片機(jī)應(yīng)用系統(tǒng)的可靠性,在實(shí)際的開發(fā)過程中都得到了充分的驗(yàn)證。
參考文獻(xiàn)
[1] 黃世澤,曾萍,郭其一.PIC單片機(jī)的應(yīng)用設(shè)計技巧[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2006,(08):123-125.
[2] 郝海燕,張玉葉.單片機(jī)應(yīng)用系統(tǒng)中的可靠性技術(shù)研究[J].科技信息,2006(11):122-124.
[3] 朱敏,任俊新.單片機(jī)應(yīng)用系統(tǒng)的可靠性設(shè)計[J].測控技術(shù),2008(10):203-204.
[4] 劉建華.如何提高單片機(jī)應(yīng)用系統(tǒng)的可靠性[J].中國科技財富,2008(07):256-257.
[5] 鐘新平.單片機(jī)應(yīng)用系統(tǒng)可靠性研究[J].南寧職業(yè)技術(shù)學(xué)院學(xué)報,2005(03):233-234.