《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于X25045的新型看門狗電路
基于X25045的新型看門狗電路
摘要: 看門狗電路是嵌入式系統(tǒng)需要的抗干擾措施之一,。本文用X25045芯片設(shè)計(jì)了一種新的看門狗電路,,具有體積小,、占用I/O口線少和編程方便的特點(diǎn),,可廣泛應(yīng)用于儀器儀表和各種工控系統(tǒng)中。
關(guān)鍵詞: 軟件 X25045 看門狗 嵌入式
Abstract:
Key words :

  看門狗(Watchdog)電路是嵌入式系統(tǒng)需要的抗干擾措施之一,。本文用X25045芯片設(shè)計(jì)了一種新的看門狗電路,,具有體積小、占用I/O口線少和編程方便的特點(diǎn),,可廣泛應(yīng)用于儀器儀表和各種工控系統(tǒng)中,。

  前言

  工控系統(tǒng)在運(yùn)行時(shí),通常都會(huì)遇到各種各樣的現(xiàn)場(chǎng)干擾,,抗干擾能力是衡量工控系統(tǒng)性能的一個(gè)重要指標(biāo),。看門狗(Watchdog)電路是自行監(jiān)測(cè)系統(tǒng)運(yùn)行的重要保證,,幾乎所有的工控系統(tǒng)都包含看門狗電路,。在8096系列單片機(jī)和增強(qiáng)型8051系列單片機(jī)中,該系統(tǒng)已經(jīng)做在芯片內(nèi)部,,用戶只要用軟件開放它就可以,,使用很方便。但目前工控系統(tǒng)仍在使用廉價(jià)的普通型8051系列單片機(jī),,則看門狗電路必須由用戶自己建立,。

  看門狗電路一般有軟件看門狗和硬件看門狗兩種。軟件看門狗不需外接硬件電路,,但系統(tǒng)需要出讓一個(gè)定時(shí)器資源,,這在許多系統(tǒng)中很難辦到,而且若系統(tǒng)軟件運(yùn)行不正常,,可能導(dǎo)致看門狗系統(tǒng)也癱瘓,。硬件看門狗是真正意義上的“程序運(yùn)行監(jiān)視器”,如計(jì)數(shù)型的看門狗電路通常由555多諧振蕩器,、計(jì)數(shù)器以及一些電阻,、電容等組成,,分立元件組成的系統(tǒng)電路較為復(fù)雜,運(yùn)行不夠可靠,。

  X25045芯片簡(jiǎn)介

 X25045是美國Xicor公司的生產(chǎn)的標(biāo)準(zhǔn)化8腳集成電路,,它將EEPROM、看門狗定時(shí)器,、電壓監(jiān)控三種功能組合在單個(gè)芯片之內(nèi),,大大簡(jiǎn)化了硬件設(shè)計(jì),提高了系統(tǒng)的可靠性,,減少了對(duì)印制電路板的空間要求,,降低了成本和系統(tǒng)功耗,是一種理想的單片機(jī)外圍芯片,。X25045引腳如圖1所示,。

X25045引腳圖

圖1 X25045引腳圖

  其引腳功能如下。

  CS:片選擇輸入,;

  SO:串行輸出,,數(shù)據(jù)由此引腳逐位輸出;

  SI:串行輸入,,數(shù)據(jù)或命令由此引腳逐位寫入X25045,;

  SCK:串行時(shí)鐘輸入,其上升沿將數(shù)據(jù)或命令寫入,,下降沿將數(shù)據(jù)輸出,;

  WP:寫保護(hù)輸入。當(dāng)它低電平時(shí),寫操作被禁止;

  Vss:地,;

  Vcc:電源電壓;

  RESET:復(fù)位輸出,。

  X25045在讀寫操作之前,需要先向它發(fā)出指令,,指令名及指令格式如表1所示,。

X25045指令及其含義

表1 X25045指令及其含義

  X25045看門狗電路設(shè)計(jì)及編程

  X25045硬件連接圖如圖2所示。X25045芯片內(nèi)包含有一個(gè)看門狗定時(shí)器,,可通過軟件預(yù)置系統(tǒng)的監(jiān)控時(shí)間,。在看門狗定時(shí)器預(yù)置的時(shí)間內(nèi)若沒有總線活動(dòng),則X25045將從RESET輸出一個(gè)高電平信號(hào),,經(jīng)過微分電路C2,、R3輸出一個(gè)正脈沖,使CPU復(fù)位,。圖2電路中,,CPU的復(fù)位信號(hào)共有3個(gè):上電復(fù)位(C1,、R2),人工復(fù)位(S,、R1,、R2)和Watchdog復(fù)位(C2、R3),,通過或門綜合后加到RESET端,。C2、R3的時(shí)間常數(shù)不必太大,,有數(shù)百微秒即可,,因?yàn)檫@時(shí)CPU的振蕩器已經(jīng)在工作。

X25045看門狗電路硬件連接圖

圖2 X25045看門狗電路硬件連接圖

  看門狗定時(shí)器的預(yù)置時(shí)間是通過X25045的狀態(tài)寄存器的相應(yīng)位來設(shè)定的,。如表2所示,X25045狀態(tài)寄存器共有6位有含義,,其中WD1,、WD0和看門狗電路有關(guān),其余位和EEPROM的工作設(shè)置有關(guān),。

X25045狀態(tài)寄存器

表2 X25045狀態(tài)寄存器

  WD1=0,,WD0=0,預(yù)置時(shí)間為1.4s,。

  WD1=0,,WD0=1,預(yù)置時(shí)間為0.6s,。

  WD1=1,,WD0=0,預(yù)置時(shí)間為0.2s,。

  WD1=1,,WD0=1,禁止看門狗工作,。

 

  看門狗電路的定時(shí)時(shí)間長(zhǎng)短可由具體應(yīng)用程序的循環(huán)周期決定,,通常比系統(tǒng)正常工作時(shí)最大循環(huán)周期的時(shí)間略長(zhǎng)即可。編程時(shí),,可在軟件的合適地方加一條喂狗指令,,使看門狗的定時(shí)時(shí)間永遠(yuǎn)達(dá)不到預(yù)置時(shí)間,系統(tǒng)就不會(huì)復(fù)位而正常工作,。當(dāng)系統(tǒng)跑飛,,用軟件陷阱等別的方法無法捕捉回程序時(shí),則看門狗定時(shí)時(shí)間很快增長(zhǎng)到預(yù)置時(shí)間,,迫使系統(tǒng)復(fù)位,。

  以下是C語言編寫的看門狗程序部分,。

  #include "reg51.h"

  sbit cs="P1"^2;/*片選信號(hào)由P1.2產(chǎn)生*/

  sbit sck="P1"^3; /*時(shí)鐘信號(hào)由P1.3 產(chǎn)生*/

  sbit si="P1"^0; /*SI由P1.0產(chǎn)生*/

  sbit so="P1"^1; /*SO由P1.1產(chǎn)生*/

  sbit c="ACC"^7; /*定義位變量*/

  bdata unsigned char com;

  void tran() /*發(fā)送一字節(jié)數(shù)據(jù)子函數(shù)*/

  {

  unsigned char i;

  for(i=0; i<8; i++)

  { ACC="com"; /*將數(shù)據(jù)放入a中*/

  si=c;

  sck=0; /*sck產(chǎn)生一個(gè)上跳變*/

  sck=1;

  com=com<<1; /*左移一位*/

  }

  return;

  }

 

  main()

  {

  com=0x06; /*發(fā)寫讀使能命令*/

  cs=0;

  tran();

  cs=1;

  com=0x01; /*發(fā)寫狀態(tài)字命令*/

  cs=0;

  tran();

  com=0x00; /*定時(shí)1.4s*/

  tran();

  cs=1;

  ...;系統(tǒng)正常運(yùn)行的程序部分

  }

  需要注意的是,在程序正常運(yùn)行的時(shí)候,,應(yīng)該在適當(dāng)?shù)牡胤郊右粭l喂狗指令,,使系統(tǒng)正常運(yùn)行時(shí)的定時(shí)時(shí)間達(dá)不到預(yù)置時(shí)間。系統(tǒng)就不會(huì)復(fù)位,。喂狗指令如下,。

  main()

  {

  ...;系統(tǒng)正常運(yùn)行的程序部分

  {

  cs=0; /*產(chǎn)生cs脈沖*/

  cs=1;

  }

  }

  X25045的看門狗電路使用十分方便。X25045內(nèi)部還集成了512BEEPROM和電壓運(yùn)行監(jiān)視系統(tǒng),,只需這樣一塊芯片,,外加晶振和復(fù)位電路就可以組成單片機(jī)的

 

應(yīng)用系統(tǒng),非常適合于便攜式儀器和嵌入式系統(tǒng)的設(shè)計(jì),。

 

  參考文獻(xiàn)

  1,、李朝青. 單片機(jī)原理與控制技術(shù). 北京航空航天大學(xué)出版社,2001

  2、胡偉,季曉衡.單片機(jī)C程序時(shí)間及應(yīng)用實(shí)例.人民郵電出版社,2003

  3,、美國Xicor公司x25045資料

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。