• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于X25045的新型看門狗電路

    基于X25045的新型看門狗電路

    ——
    作者:重慶三峽學(xué)院應(yīng)用技術(shù)學(xué)院 謝輝 時間:2006-12-27 來源:今日電子 收藏

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

    前言

    工控系統(tǒng)在運(yùn)行時,通常都會遇到各種各樣的現(xiàn)場干擾,抗干擾能力是衡量工控系統(tǒng)性能的一個重要指標(biāo)。看門狗(Watchdog)電路是自行監(jiān)測系統(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)需要出讓一個定時器資源,這在許多系統(tǒng)中很難辦到,而且若系統(tǒng)軟件運(yùn)行不正常,可能導(dǎo)致看門狗系統(tǒng)也癱瘓。硬件看門狗是真正意義上的“程序運(yùn)行監(jiān)視器”,如計(jì)數(shù)型的看門狗電路通常由555多諧振蕩器、計(jì)數(shù)器以及一些電阻、電容等組成,分立元件組成的系統(tǒng)電路較為復(fù)雜,運(yùn)行不夠可靠。

    芯片簡介

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


    圖1 X25045引腳圖

    其引腳功能如下。

    CS:片選擇輸入;
    SO:串行輸出,數(shù)據(jù)由此引腳逐位輸出;
    SI:串行輸入,數(shù)據(jù)或命令由此引腳逐位寫入X25045;
    SCK:串行時鐘輸入,其上升沿將數(shù)據(jù)或命令寫入,下降沿將數(shù)據(jù)輸出;
    WP:寫保護(hù)輸入。當(dāng)它低電平時,寫操作被禁止;
    Vss:地;
    Vcc:電源電壓;
    RESET:復(fù)位輸出。
    X25045在讀寫操作之前,需要先向它發(fā)出指令,指令名及指令格式如表1所示。


    表1 X25045指令及其含義

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

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


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

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


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

    WD1=0,WD0=0,預(yù)置時間為1.4s。
    WD1=0,WD0=1,預(yù)置時間為0.6s。
    WD1=1,WD0=0,預(yù)置時間為0.2s。
    WD1=1,WD0=1,禁止看門狗工作。

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

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

    #include "reg51.h"
    sbit cs=P1^2;/*片選信號由P1.2產(chǎn)生*/
    sbit sck=P1^3; /*時鐘信號由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)生一個上跳變*/
    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; /*定時1.4s*/
    tran();
    cs=1;
    ...;系統(tǒng)正常運(yùn)行的程序部分
    }

    需要注意的是,在程序正常運(yùn)行的時候,應(yīng)該在適當(dāng)?shù)牡胤郊右粭l喂狗指令,使系統(tǒng)正常運(yùn)行時的定時時間達(dá)不到預(yù)置時間。系統(tǒng)就不會復(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程序時間及應(yīng)用實(shí)例.人民郵電出版社,2003

    3、美國Xicor公司x25045資料



    評論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 肥城市| 莆田市| 伊川县| 昭觉县| 凤城市| 房产| 新昌县| 磐安县| 台山市| 灌阳县| 泗阳县| 济源市| 兴海县| 当阳市| 津南区| 阿巴嘎旗| 油尖旺区| 枞阳县| 博客| 黄冈市| 商都县| 宁明县| 仪征市| 岗巴县| 买车| 永济市| 土默特右旗| 溆浦县| 娄底市| 汕头市| 新田县| 江口县| 富川| 广宁县| 张掖市| 广南县| 嘉义市| 靖江市| 安顺市| 互助| 开江县|