MSP430單片機(jī)中的WDT研究
技術(shù)資料發(fā)布時(shí)間:2022-11-24
MAXQ61H是一款低功耗、16位MAXQ?微控制器,設(shè)計(jì)用于通用遙控器、消費(fèi)類(lèi)電子和白色家電等低功耗產(chǎn)品。 MAXQ61H結(jié)合了強(qiáng)大的16位RISC微控制器和集成外設(shè),包括能夠產(chǎn)生載波頻率的IR模塊和靈活的復(fù)用鍵盤(pán)控制I/O。
MAXQ61H包含36KB ROM存儲(chǔ)器和閃存引 言
軟件的可靠性一直是一個(gè)關(guān)鍵問(wèn)題。任何使用軟件的人都可能會(huì)經(jīng)歷計(jì)算機(jī)死機(jī)或程序跑飛的問(wèn)題,這種情況在嵌入式系統(tǒng)中也同樣存在。由于單片機(jī)的抗干擾能力有限,在工業(yè)現(xiàn)場(chǎng)的儀器儀表中,常會(huì)由于電壓不穩(wěn)、電弧干擾等造成死機(jī)。在水表、電表等無(wú)人看守的情況下,也會(huì)因系統(tǒng)遭受干擾而無(wú)法重啟。為了保證系統(tǒng)在干擾后能自動(dòng)恢復(fù)正常,看門(mén)狗定時(shí)器(Watchdog TImer)的利用是很有價(jià)值的。
1 看門(mén)狗的作用
看門(mén)狗定時(shí)器是一個(gè)計(jì)數(shù)器,基本功能是在發(fā)生軟件問(wèn)題和程序跑飛后使系統(tǒng)重新啟動(dòng)。看門(mén)狗計(jì)數(shù)器正常工作時(shí)自動(dòng)計(jì)數(shù),程序流程定期將其復(fù)位清零,如果系統(tǒng)在某處卡死或跑飛,該定時(shí)器將溢出,并將進(jìn)入中斷。在定時(shí)器中斷中執(zhí)行一些復(fù)位操作,使系統(tǒng)恢復(fù)正常的工作狀態(tài),即在程序沒(méi)有正常運(yùn)行期間,如期復(fù)位看門(mén)狗以保證所選擇的定時(shí)溢出歸零,使處理器重新啟動(dòng)。
2 看門(mén)狗問(wèn)題及相關(guān)實(shí)驗(yàn)
現(xiàn)今市面上流行的一些單片機(jī),多嵌有內(nèi)部WDT,如TI的MSP430系列,Philips的P87XXX和P89XXX系列,Microchip的 PIC列,Atmel的AT89SXX系列和Holtek公司的Htxxx系列。但是這些內(nèi)部看門(mén)狗在工作時(shí),多存在一定的誤差。一些工程師在設(shè)計(jì)的過(guò)程中,由于忽略了這一點(diǎn),導(dǎo)致系統(tǒng)出現(xiàn)異常。MSP430系列單片機(jī)是美國(guó)德州儀器公司(TI)近幾年開(kāi)發(fā)的新一代單片機(jī),該系列是一款16位、具有精簡(jiǎn)指令集、超低功耗的全新概念混合型單片機(jī)。在眾多單片機(jī)系列中,由于它具有極低的功耗、豐富的片內(nèi)外設(shè)和方便靈活的開(kāi)發(fā)手段,已成為一顆耀眼的新星。其內(nèi)部自帶看門(mén)狗及復(fù)位電路,理論上如果程序跑飛,可用看門(mén)狗將其復(fù)位。但在實(shí)際使用過(guò)程中,發(fā)現(xiàn)看門(mén)狗的作用并非萬(wàn)無(wú)一失,以下實(shí)驗(yàn)證明了這一點(diǎn)。
實(shí)驗(yàn)電路如圖1所示。
實(shí)驗(yàn)程序清單:
#include
void main(void){
P1DIR l=OxOf; //設(shè)置P1.2~P1.O為輸出
for(;;){
volaTIle unsigned int i;
WDTCTL=WDTPW+ WDTCNTCL;
//復(fù)位WDT計(jì)數(shù)器
PIOUT==OxOt; //P1.0~P1.2相互異或
i=5000; //延時(shí)
d0(i--);
while(i!=O);
}
}
上述實(shí)驗(yàn)啟動(dòng)后,如果程序正常運(yùn)行,LED會(huì)閃爍。缺省時(shí),MSP430的看門(mén)狗是允許狀態(tài),所運(yùn)行的程序會(huì)不斷地訪問(wèn)看門(mén)狗。理論上,這個(gè)系統(tǒng)是不會(huì)發(fā)生啟動(dòng)失敗的,因?yàn)榧词箚?dòng)失敗,看門(mén)狗也應(yīng)該在數(shù)百毫秒內(nèi)啟動(dòng),復(fù)位整個(gè)系統(tǒng)。基于這種思想,對(duì)單片機(jī)的復(fù)位進(jìn)行測(cè)試。K2斷開(kāi),用K1連續(xù)產(chǎn)生。 Reset信號(hào),測(cè)試看門(mén)狗使系統(tǒng)重啟的成功率。K2閉合,則reset端高電平,理論上K1不能有效產(chǎn)生復(fù)位脈沖,觀察看門(mén)狗是否起作用。
3 實(shí)驗(yàn)結(jié)果與分析
實(shí)驗(yàn)結(jié)果如下:K2斷開(kāi),連續(xù)開(kāi)關(guān)K1,上電重啟系統(tǒng),平均155次失敗1次(LED不閃),即看門(mén)狗失效概率0.6%;K2閉合,連續(xù)開(kāi)關(guān)K1,平均18次失敗1次(LED不閃),且一旦失敗,將連續(xù)失敗下去,看門(mén)狗無(wú)效率占到了約5.5%。
另外,當(dāng)采用同樣具有內(nèi)置看門(mén)狗的其他系列單片機(jī)替代實(shí)驗(yàn)中的MSP430,啟動(dòng)程序段作相應(yīng)修改時(shí),實(shí)驗(yàn)結(jié)果仍大致相同,這說(shuō)明具有內(nèi)置看門(mén)狗的單片機(jī)面臨的問(wèn)題是相同的。經(jīng)分析可能有如下原因:
①由于看門(mén)狗的時(shí)鐘不獨(dú)立,計(jì)數(shù)時(shí)鐘與系統(tǒng)為同一分頻鏈路,因此看門(mén)狗不能在系統(tǒng)出現(xiàn)問(wèn)題時(shí)有效運(yùn)作。
②由于時(shí)鐘可用軟件設(shè)置,啟動(dòng)失敗時(shí),開(kāi)機(jī)時(shí)鐘可能處于空檔,沒(méi)有時(shí)鐘看門(mén)狗不能生效。
③有些看門(mén)狗需要用軟件設(shè)置或啟動(dòng),因此啟動(dòng)失敗后,初始化程序沒(méi)有激活,CPU可能跳轉(zhuǎn)到隨機(jī)代碼,使看門(mén)狗被禁止。這樣的看門(mén)狗是需要有可靠的上電復(fù)位作保證的,因此,從理論上講,原設(shè)計(jì)存在著不合理性。基于上述分析,采用片外看門(mén)狗專(zhuān)用芯片TPS3823由獨(dú)立的分頻振蕩電路提供計(jì)數(shù)脈沖。實(shí)驗(yàn)電路如圖2所示。
上述電路中,TPS3823輸出定時(shí)溢出信號(hào)給Reset端。程序段中,CPU要不斷地通過(guò)I/O口輸出喂狗信號(hào),使看門(mén)狗計(jì)數(shù)器清零。在此電路中重復(fù)上述試驗(yàn)中K1、K2的相同動(dòng)作,系統(tǒng)重啟成功率達(dá)到100%。
結(jié) 語(yǔ)
未來(lái)的內(nèi)置看門(mén)狗必須有獨(dú)立可靠的時(shí)鐘。系統(tǒng)上電后,看門(mén)狗即為允許狀態(tài),無(wú)需軟件設(shè)置,它只能被外部硬件跳線或內(nèi)部熔絲(fuse)所禁止。目前,如果要求設(shè)計(jì)可靠性較高的嵌入式系統(tǒng),外置看門(mén)狗是必須考慮的。內(nèi)置看門(mén)狗的另一問(wèn)題是系統(tǒng)復(fù)位后,程序應(yīng)判斷是由Reset端正常上電復(fù)位,還是程序跑飛看門(mén)狗所致,由此確定現(xiàn)場(chǎng)數(shù)據(jù)是否應(yīng)該保留。這也是在看門(mén)狗應(yīng)用中所應(yīng)考慮的。和1.28KB數(shù)據(jù)SRAM。
為了在低功耗電池供電產(chǎn)品中維持有效狀態(tài),MAXQ61H包括一個(gè)超低功耗停止模式(0.2μA,典型值)。該模式下,只有少數(shù)電路保持供電。喚醒源包括外部中斷、電源失效中斷以及定時(shí)器中斷。微控制器工作在1.70V至3.6V寬工作電壓范圍內(nèi)。
關(guān)鍵特性
高性能、低功耗16位RISC核
工作在直流至12MHz整個(gè)范圍
1.70V至3.6V工作電壓范圍
總共33條指令簡(jiǎn)化編程
3個(gè)獨(dú)立的數(shù)據(jù)指針帶有自動(dòng)增/減,加速數(shù)據(jù)轉(zhuǎn)移
專(zhuān)用指針能夠直接讀取程序空間
16位指令字、16位數(shù)據(jù)總線
16 x 16位通用工作寄存器
存儲(chǔ)器特性
36KB ROM
1.28KB數(shù)據(jù)SRAM
附加外設(shè)
電源失效報(bào)警
上電復(fù)位/電源失效復(fù)位
IR載波頻率發(fā)生器和調(diào)制器
兩個(gè)16位、可編程定時(shí)器/計(jì)數(shù)器,可重新調(diào)整、捕獲/比較
可編程看門(mén)狗定時(shí)器
8kHz超低功耗環(huán)型振蕩器用于喚醒定時(shí)
多達(dá)24個(gè)通用I/O (MAXQ61HA)
低功耗
停止模式下耗電0.2μA (典型值)、2.0μA (最大值)
TA = +25°C,電源失效監(jiān)測(cè)器禁止工作
工作模式下,12MHz時(shí)耗電2.0mA (典型值)
文中所述為作者獨(dú)立觀點(diǎn),不代表icspec立場(chǎng)。