《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > MSP430單片機中的看門狗定時器研究
MSP430單片機中的看門狗定時器研究
上海電機學院 章銳
摘要: 軟件的可靠性一直是一個關鍵問題。任何使用軟件的人都可能會經歷計算機死機或程序跑飛的問題,這種情況在嵌入式系統(tǒng)中也同樣存在。由于單片機的抗干擾能力有限,在工業(yè)現場的儀器儀表中,常會由于電壓不穩(wěn)、電弧干擾等造成死機。
Abstract:
Key words :

  引 言

  軟件的可靠性一直是一個關鍵問題。任何使用軟件的人都可能會經歷計算機死機或程序跑飛的問題,這種情況在嵌入式系統(tǒng)中也同樣存在。由于單片機的抗干擾能力有限,在工業(yè)現場的儀器儀表中,常會由于電壓不穩(wěn)、電弧干擾等造成死機。在水表、電表等無人看守的情況下,也會因系統(tǒng)遭受干擾而無法重啟。為了保證系統(tǒng)在干擾后能自動恢復正常,看門狗定時器(Watchdog Timer)的利用是很有價值的。

  1 看門狗的作用

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

  2 看門狗問題及相關實驗

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

  實驗電路如圖1所示。

 

  

 

  實驗程序清單:

  #include

  void main(void){

  P1DIR l=0x0f; //設置P1.2~P1.0為輸出

  for(;;){

  volatile unsigned int i;

  WDTCTL=WDTPW+ WDTCNTCL;

  //復位WDT計數器

  PIOUT==0x0t; //P1.0~P1.2相互異或

  i=5000; //延時

  d0(i--);

  while(i!=0);

  }

  }

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

 

  3 實驗結果與分析

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

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

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

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

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

 

  

 

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

 

  結 語

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

  作者:上海電機學院 章銳

此內容為AET網站原創(chuàng),未經授權禁止轉載。
主站蜘蛛池模板: 在线观看av片| 三级波多野结衣护士三级 | 国产区图片区小说区亚洲区| 国产免费私拍一区二区三区| 四虎国产精品免费久久影院| 亚洲色偷偷色噜噜狠狠99| 九九视频在线观看6| 三级视频在线播放线观看| 91精品久久久久久久久久 | 影音先锋亚洲资源| 国产精品自在线拍国产电影| 国产大片91精品免费观看男同 | 国产欧美日产激情视频| 午夜视频体验区| 亚洲啪啪AV无码片| 中文字幕一区二区三区日韩精品| 99re在线视频观看| 达达兔午夜起神影院在线观看麻烦| 秋葵视频在线观看在线下载| 欧美xxxx狂喷水| 妞干网视频在线观看| 国产欧美一区二区三区在线看| 午夜男女爽爽影院网站| 亚洲中文字幕无码av在线| 中文天堂最新版www官网在线| **毛片免费观看久久精品| 老外毛片免费视频播放| 欧美亚洲国产日韩| 好男人视频社区www在线观看| 国产成人无码区免费A∨视频网站| 免费在线色视频| 久久国产精品久久精品国产| 99久久99久久精品国产片| 色噜噜亚洲男人的天堂| 欧美巨大xxxx做受中文字幕| 婷婷综合激情网| 国产乱子伦手机在线| 亚洲国产高清美女在线观看| 一本久久综合亚洲鲁鲁五月天| 黄色片一级毛片| 欧美精品一区二区久久|