當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]以MSP430F2274為例。其中匯編實現(xiàn)采用的是IAR匯編,CCE匯編實現(xiàn)稍作修改即可。1. 看門狗有三種工作模式:停止模式,計時器模式,看門狗模式。2. 其中后兩種模式可以選擇的時鐘源有:SMCLK和ACLK。3. 在使用后兩種模式

以MSP430F2274為例。其中匯編實現(xiàn)采用的是IAR匯編,CCE匯編實現(xiàn)稍作修改即可。

1. 看門狗有三種工作模式:停止模式,計時器模式,看門狗模式。

2. 其中后兩種模式可以選擇的時鐘源有:SMCLK和ACLK。

3. 在使用后兩種模式時候要注意單片機所處的狀態(tài)下看門狗能否工作,如單片機處在LPM3時候只有ACLK時鐘,處在LPM4下,沒有時鐘可以使用。

4. 看門狗模式的使用方法:當(dāng)看門狗計數(shù)溢出時,程序復(fù)位。在程序中開啟看門狗,在計數(shù)溢出前清空看門狗,或重置看門狗,以使其重新計數(shù)。若程序跑飛,看門狗可能沒有被清空或重置,就會溢,使程序復(fù)位。

5. 在MSP430F2274中,看門狗模式下可以計時最長為1s,若需要以更長的時間復(fù)位,可采取的方法,使用其他計數(shù)器,計數(shù)滿后執(zhí)行((void (*)())RESET_VECTOR)();或計數(shù)滿后往看門狗控制寄存器寫個錯誤值或執(zhí)行一條無效命令:如((void (*)())0x170)();0x170是外圍模塊的一個地址,不可能是一個函數(shù)地址,所以執(zhí)行此句將使程序復(fù)位。

停止模式:關(guān)閉看門狗

C語言實現(xiàn):WDTCTL = WDTPW + WDTHOLD

匯編語言實現(xiàn):mov.w #WDTPW+WDTHOLD,&WDTCTL

計時器模式:作為一個計時器使用,計數(shù)器滿產(chǎn)生中斷時執(zhí)行看門狗中斷函數(shù)。

C語言實現(xiàn):

主程序中:開啟看門狗計時器,如:WDTCTL = WDT_MDLY_8;或WDTCTL = WDT_ADLY_250;等

看門狗中斷函數(shù)為:

#pragma vector=WDT_VECTOR

__interrupt void wATchdog_timer(void)

{

//..................................

}

匯編語言實現(xiàn):

開啟看門狗計時器,如:

mov.w #WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0 ,&WDTCTL

或 mov.w #WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0 ,&WDTCTL等

中斷向量表中的看門狗中斷向量:

ORG 0FFF4h ;msp430f2274的看門狗中斷地址

DW RESET ;程序開始處以REST作為標(biāo)號

看門狗中斷函數(shù):

WDT_ISR

;....................

reti

看門狗模式:計數(shù)溢出時,執(zhí)行復(fù)位中斷函數(shù)。

C語言實現(xiàn):

清看門狗:WDTCTL = WDTPW+WDTCNCTL;

設(shè)置看門狗:WDTCTL = WDT_MRST_0_5;

或WDTCTL = WDT_ARST_1000;等

匯編語言實現(xiàn):

中斷向量表中的復(fù)位向量:

ORG 0FFFEh ;msp430f2274的復(fù)位地址

DW RESET ;程序開始處以REST作為標(biāo)號

清看門狗:mov.w #WDTPW+WDTCNCTL,&WDTCTL

設(shè)置看門狗:

mov.w # WDTPW+WDTCNTCL+WDTIS1 ,&WDTCTL

mov.w # WDTPW+WDTCNTCL+WDTSSEL,&WDTCTL;等

————————————————————————————————————————————

關(guān)于喂狗

喂狗,也就是在看門狗定時器溢出之前對其進行清零的操作。

網(wǎng)上和書里對喂狗的介紹不多,大部分都只說使用“WDTCTL = WDTPW + WDTCNTCL;”即可。一般使用起來沒什么問題,但是當(dāng)不使用默認的看門狗時鐘源和分頻系數(shù)之后,問題就來了。(以G2XXX系列,SMCLK=1M,ACLK=32K為例)直接使用“WDTCTL = WDTPW + WDTCNTCL;”喂狗之后,看門狗就被重置成復(fù)位狀態(tài),看門狗復(fù)位時間就變成了32ms,如果遠小于你的喂狗時間,程序就沒法正常工作了,典型表現(xiàn)為定時重新啟動。仔細查看WDTCTL寄存器之后,就能發(fā)現(xiàn)問題。

要正確喂狗最好的辦法就是不改變原有看門狗配置的情況下將WDTCNTCL置1。這樣看來,簡單的就是“WDTCTL |= WDTPW + WDTCNTCL;”,其中需要注意的是WDTPW位讀出來是0x69,而需要寫入的是0x5A,實際上0x69|0x5A=0x7B,這就造成了在喂狗的時候,密碼錯誤造成單片機重啟。所以正確的喂狗語句就初始化看門狗的語句。當(dāng)然如果想使用通用的喂狗語句,“WDTCTL = WDTPW + WDTCNTCL + (WDTCTL & 0x00FF);”應(yīng)該是最正確的(其中(WDTCTL & 0x00FF)是用來獲取看門狗配置的)。

不過430頭文件已經(jīng)很清新了,喂狗一般直接加上時間(頭文件里面都處理過了)。

————————————————————————————————————————————

MSP430單片機之看門狗的作用

看門狗定時器是一個計數(shù)器,基本功能是在發(fā)生軟件問題和程序跑飛后使系統(tǒng)重新啟動??撮T狗計數(shù)器正常工作時自動計數(shù),程序流程定期將其復(fù)位清零,如果系統(tǒng)在某處卡死或跑飛,該定時器將溢出,并將進入中斷。在定時器中斷中執(zhí)行一些復(fù)位操作,使系統(tǒng)恢復(fù)正常的工作狀態(tài),即在程序沒有正常運行期間,如期復(fù)位看門狗以保證所選擇的定時溢出歸零,使處理器重新啟動。

1. 看門狗問題及相關(guān)實驗

現(xiàn)今市面上流行的一些單片機,多嵌有內(nèi)部WDT,如TI的MSP430系列,Philips的P87XXX和P89XXX系列,Microchip的PIC列,Atmel的AT89SXX系列和Holtek公司的Htxxx系列。但是這些內(nèi)部看門狗在工作時,多存在一定的誤差。一些工程師在設(shè)計的過程中,由于忽略了這一點,導(dǎo)致系統(tǒng)出現(xiàn)異常。MSP430系列單片機是美國德州儀器公司(TI)近幾年開發(fā)的新一代單片機,該系列是一款16位、具有精簡指令集、超低功耗的全新概念混合型單片機。在眾多單片機系列中,由于它具有極低的功耗、豐富的片內(nèi)外設(shè)和方便靈活的開發(fā)手段,已成為一顆耀眼的新星。其內(nèi)部自帶看門狗及復(fù)位電路,理論上如果程序跑飛,可用看門狗將其復(fù)位。但在實際使用過程中,發(fā)現(xiàn)看門狗的作用并非萬無一失,以下實驗證明了這一點。

實驗電路如圖1所示。

實驗程序清單:

#include

void main(void){

P1DIR l=0x07; //設(shè)置P1.0~P1.2為輸出

for(;;){

volatile unsigned int i;

WDTCTL = WDTPW + WDTCNTCL; //復(fù)位WDT計數(shù)器

P1OUT ^= 0x07; //P1.0~P1.2相互異或

i=5000; //延時

do(i--);

while(i != 0);

}

}

上述實驗啟動后,如果程序正常運行,LED會閃爍。缺省時,MSP430的看門狗是允許狀態(tài),所運行的程序會不斷地訪問看門狗。理論上,這個系統(tǒng)是不會發(fā)生啟動失敗的,因為即使啟動失敗,看門狗也應(yīng)該在數(shù)百毫秒內(nèi)啟動,復(fù)位整個系統(tǒng)?;谶@種思想,對單片機的復(fù)位進行測試。K2斷開,用K1連續(xù)產(chǎn)生。Reset信號,測試看門狗使系統(tǒng)重啟的成功率。K2閉合,則reset端高電平,理論上K1不能有效產(chǎn)生復(fù)位脈沖,觀察看門狗是否起作用。

2. 實驗結(jié)果與分析

實驗結(jié)果如下:K2斷開,連續(xù)開關(guān)K1,上電重啟系統(tǒng),平均155次失敗1次(LED不閃),即看門狗失效概率0.6%;K2閉合,連續(xù)開關(guān)K1,平均18次失敗1次(LED不閃),且一旦失敗,將連續(xù)失敗下去,看門狗無效率占到了約5.5%。

另外,當(dāng)采用同樣具有內(nèi)置看門狗的其他系列單片機替代實驗中的MSP430,啟動程序段作相應(yīng)修改時,實驗結(jié)果仍大致相同,這說明具有內(nèi)置看門狗的單片機面臨的問題是相同的。經(jīng)分析可能有如下原因:

① 由于看門狗的時鐘不獨立,計數(shù)時鐘與系統(tǒng)為同一分頻鏈路,因此看門狗不能在系統(tǒng)出現(xiàn)問題時有效運作。

② 由于時鐘可用軟件設(shè)置,啟動失敗時,開機時鐘可能處于空檔,沒有時鐘看門狗不能生效。

③ 有些看門狗需要用軟件設(shè)置或啟動,因此啟動失敗后,初始化程序沒有激活,CPU可能跳轉(zhuǎn)到隨機代碼,使看門狗被禁止。這樣的看門狗是需要有可靠的上電復(fù)位作保證的,因此,從理論上講,原設(shè)計存在著不合理性?;谏鲜龇治?,采用片外看門狗專用芯片TPS3823由獨立的分頻振蕩電路提供計數(shù)脈沖。實驗電路如圖2所示。

上述電路中,TPS3823輸出定時溢出信號給Reset端。程序段中,CPU要不斷地通過I/O口輸出喂狗信號,使看門狗計數(shù)器清零。在此電路中重復(fù)上述試驗中K1、K2的相同動作,系統(tǒng)重啟成功率達到100%。

結(jié) 語

未來的內(nèi)置看門狗必須有獨立可靠的時鐘。系統(tǒng)上電后,看門狗即為允許狀態(tài),無需軟件設(shè)置,它只能被外部硬件跳線或內(nèi)部熔絲(fuse)所禁止。目前,如果要求設(shè)計可靠性較高的嵌入式系統(tǒng),外置看門狗是必須考慮的。內(nèi)置看門狗的另一問題是系統(tǒng)復(fù)位后,程序應(yīng)判斷是由Reset端正常上電復(fù)位,還是程序跑飛看門狗所致,由此確定現(xiàn)場數(shù)據(jù)是否應(yīng)該保留。這也是在看門狗應(yīng)用中所應(yīng)考慮的。

擴展閱讀:看門狗定時器是什么?

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉