• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      軟硬件看門狗技術(shù)研究

      2012-07-12 07:05:56廣州正力通用電氣有限公司趙洪軍
      電子世界 2012年8期
      關(guān)鍵詞:看門狗主程序死機(jī)

      廣州正力通用電氣有限公司 趙洪軍

      1.引言

      隨著單片機(jī)技術(shù)不斷發(fā)展和制造工藝的日益成熟,單片機(jī)以其強(qiáng)大的處理能力及低廉的價(jià)格使其被廣泛的應(yīng)用于工業(yè)、商業(yè)等領(lǐng)域。但由于單片機(jī)自身的抗干擾能力不強(qiáng),尤其是在一些條件比較惡劣、電磁干擾較強(qiáng)的場合,常會出現(xiàn)單片機(jī)因受外界干擾而導(dǎo)致死機(jī)或程序跑飛的現(xiàn)象,造成系統(tǒng)不能正常工作。業(yè)界使用看門狗技術(shù)來解決這一問題,通過看門狗的使用防止單片機(jī)死機(jī),將死機(jī)的系統(tǒng)重新復(fù)位并使其正常工作??撮T狗技術(shù)是提高單片機(jī)系統(tǒng)抗干擾能力的一種重要途徑,看門狗技術(shù)分為軟件看門狗及硬件看門狗,本文分析了幾種常用的軟硬件看門狗技術(shù),并提出了一種高可靠的硬件斷電復(fù)位看門狗措施,供大家參考。

      2.軟件看門狗

      軟件看門狗因其只使用了單片機(jī)內(nèi)部的定時(shí)器/計(jì)數(shù)器單元實(shí)現(xiàn)看門狗功能,不必外加元器件,因而被普遍的應(yīng)用于單片機(jī)系統(tǒng)中,常與硬件看門狗一起使用。

      軟件看門狗一般采用高級中斷的方式執(zhí)行,通過在中斷程序中設(shè)置系統(tǒng)復(fù)位寄存器或?qū)Τ绦蛴?jì)數(shù)器PC賦予初始值的方式進(jìn)行系統(tǒng)復(fù)位??筛鶕?jù)系統(tǒng)的需要自行確定看門狗動作的時(shí)間,該時(shí)間通過設(shè)置定時(shí)器的計(jì)數(shù)值來確定。在系統(tǒng)正常的主循環(huán)中適當(dāng)?shù)夭迦搿拔构贰敝噶顏碇刂枚〞r(shí)器值,當(dāng)程序跑飛或進(jìn)入死循環(huán)時(shí),定時(shí)器因計(jì)時(shí)到而中斷,從而執(zhí)行中斷復(fù)位程序,將系統(tǒng)復(fù)位。下面以新唐公司的ARM Cortex-M0核的NUC120芯片為例介紹一下具體實(shí)現(xiàn)方法。晶振頻率為12 MHz,采用TIMER0為軟件看門狗定時(shí)器。

      1)首先在初始化程序中設(shè)置好定時(shí)器/計(jì)數(shù)器的工作方式、定時(shí)時(shí)間和中斷優(yōu)先級別,并開中斷。

      2)根據(jù)定時(shí)器的定時(shí)時(shí)間,在主程序循環(huán)中按一定的間隔插入軟件看門狗喂狗指令,即插入“喂狗”指令,兩條“喂狗”指令間的時(shí)間間隔應(yīng)小于定時(shí)時(shí)間,否則看門狗將發(fā)生誤動作。

      3)在定時(shí)器的中斷服務(wù)程序中判斷比較是否到達(dá)軟件看門狗的動作時(shí)間,如果條件成立則通過設(shè)置系統(tǒng)寄存器的方式實(shí)現(xiàn)系統(tǒng)復(fù)位。

      軟件如下:

      3.硬件看門狗

      圖1 DS1232與AT89C52聯(lián)接電路圖

      硬件看門狗通常指集成在單片機(jī)內(nèi)部的看門狗定時(shí)器或外置的專用看門狗芯片或電路。

      3.1 集成在單片機(jī)內(nèi)部的看門狗定時(shí)器

      現(xiàn)在生產(chǎn)的新型號的單片機(jī)基本都含有內(nèi)部硬件看門狗。這種內(nèi)部硬件看門狗的使能有兩種方式:一種是通過在程序燒錄時(shí)配置相應(yīng)的熔絲位來使能內(nèi)部看門狗,這種看門狗一旦開啟將不能通過軟件關(guān)閉,相對來說更加可靠,例如:Atmel公司AVR系列的ATmega128芯片。另一種是更加廣泛的通過軟件來控制內(nèi)部硬件看門狗的開啟及關(guān)閉的方式。這種硬件看門狗需要在主程序開始時(shí)初始化并開啟看門狗功能,然后在主循環(huán)中適時(shí)地執(zhí)行喂狗操作,一旦程序跑飛或死機(jī),內(nèi)部硬件看門狗定時(shí)器溢出,則執(zhí)行內(nèi)部復(fù)位操作使系統(tǒng)復(fù)位。下面仍以新唐公司的NUC120芯片為例介紹一下軟件設(shè)置方法。

      主程序見上文軟件看門狗部分的“int32_t main()”程序。主程序中調(diào)用了“InitWDT()初始化內(nèi)部硬件WDT”程序,該程序初始化并開啟看門狗功能;并在主循環(huán)中調(diào)用了“Clr_WDT()內(nèi)部硬件看門狗喂狗程序”已執(zhí)行正常的喂狗功能。軟件如下:

      圖2 硬件斷電復(fù)位看門狗電路圖

      3.2 外置的專用看門狗芯片或電路

      外置的專用看門狗芯片或電路實(shí)際上是一個(gè)特殊的定時(shí)器,當(dāng)定時(shí)時(shí)間到時(shí),發(fā)出溢出脈沖,該脈沖輸入到單片機(jī)的外部復(fù)位引腳上,從而實(shí)現(xiàn)系統(tǒng)復(fù)位。軟件在主程序循環(huán)中適時(shí)地執(zhí)行喂狗操作(通過控制引腳變化來清除外部看門狗),保證系統(tǒng)正常運(yùn)行時(shí)看門狗不溢出;而當(dāng)系統(tǒng)運(yùn)行異常時(shí),看門狗超時(shí)發(fā)出溢出脈沖,通過單片機(jī)的RESET引腳使單片機(jī)復(fù)位。這種方式相比內(nèi)部硬件看門狗及軟件看門狗更加可靠,不存在因?yàn)樯想姀?fù)位失敗而導(dǎo)致內(nèi)部看門狗及軟件看門狗失效的可能,缺點(diǎn)是需要外配芯片或電路。

      目前常用的集成看門狗電路很多,如DS1232、MAX705~708、MAX791等。圖1是DS1232芯片與AT89C52芯片的電路圖,單片機(jī)通過P3.3腳控制DS1232的喂狗信號,該喂狗信號在主程序的適當(dāng)時(shí)機(jī)給出,保證DS1232芯片不溢出,RST腳則保持為低電平;當(dāng)單片機(jī)死機(jī)時(shí),P3.3腳不再給出喂狗脈沖,則DS1232定時(shí)到時(shí)后RST腳輸出高電平脈沖將單片機(jī)復(fù)位。

      4.硬件斷電復(fù)位看門狗

      將以上的軟件看門狗、內(nèi)部硬件看門狗及外部專用看門狗芯片都應(yīng)用到實(shí)際的產(chǎn)品中將使系統(tǒng)的抗干擾性能得到極大的提升,并且可以滿足普通的商業(yè)需要。但是在存在較強(qiáng)外部干擾的工業(yè)環(huán)境下是否萬無一失呢?答案是否定的,作者在工作中就遇到了以上三種方式均不能解決的問題。問題如下,作者采用上文圖一的看門狗電路制作了一款產(chǎn)品,完成后進(jìn)行測試,再反復(fù)施加極強(qiáng)的電磁干擾后,出現(xiàn)了死機(jī)現(xiàn)象,并且一直不能復(fù)位。經(jīng)過測量,發(fā)現(xiàn)AT89C52單片機(jī)的所有引腳都為低電平,并且芯片發(fā)熱嚴(yán)重;DS1232的工作狀態(tài)仍然正常,仍能定期的輸出復(fù)位脈沖到單片機(jī),但是無論復(fù)位脈沖如何施加,單片機(jī)就是不能復(fù)位。這就是單片機(jī)出現(xiàn)了“死鎖”現(xiàn)象,針對這一現(xiàn)象以上的看門狗措施都將無計(jì)可施了,那么如何解決呢?作者提出一種高可靠的硬件斷電復(fù)位看門狗措施來解決該問題,簡單地說就是在單片機(jī)出現(xiàn)死鎖的現(xiàn)象時(shí)通過:斷電、延時(shí)、再重新上電的方式來解決該問題。實(shí)際應(yīng)用電路如圖2所示。

      單片機(jī)主程序的循環(huán)中適時(shí)地通過控制看門狗引腳(WatchDog)輸出連續(xù)多個(gè)脈沖以使U1的第1腳輸出一個(gè)高電平脈沖來復(fù)位U2芯片,使U2計(jì)數(shù)器清0,從而保證Q1始終不導(dǎo)通,而Q2則導(dǎo)通,以便為單片機(jī)提供電源VCC。當(dāng)單片機(jī)死機(jī)時(shí),單片機(jī)的看門狗引腳不再輸出脈沖來復(fù)位U2芯片,U2芯片收到U3產(chǎn)生的第3個(gè)脈沖時(shí),U2的第7腳將輸出高電平,此時(shí)Q1導(dǎo)通,則Q2截止,停止位單片機(jī)提供電源VCC。當(dāng)U3的下一個(gè)脈沖來臨時(shí),U2的第7腳輸出低電平,從而讓Q2導(dǎo)通,重新為單片機(jī)供電。系統(tǒng)則實(shí)現(xiàn)了死機(jī)—斷電—延時(shí)—重新上電的高可靠復(fù)位方式,而從解決了單片機(jī)死鎖的問題。

      5.結(jié)束語

      看門狗技術(shù)已經(jīng)廣泛的應(yīng)用于單片機(jī)系統(tǒng)中,并且成為嵌入式系統(tǒng)不可缺少的一部分。深入的對看門狗技術(shù)進(jìn)行研究并應(yīng)用到實(shí)踐中可以切實(shí)的提高產(chǎn)品的抗干擾能力,而從使系統(tǒng)更加穩(wěn)定、可靠。在具體實(shí)施方面,設(shè)計(jì)者應(yīng)綜合考慮系統(tǒng)資源、經(jīng)濟(jì)性、可靠性等多方面因素,合理制定看門狗的控制方案,提高系統(tǒng)的性能價(jià)格比。

      [1]王幸之等編著.單片機(jī)應(yīng)用系統(tǒng)電磁干擾與抗干擾技術(shù)[M].北京航天航空大學(xué)出版社,2006年2月

      [2]李寧編著.ARM開發(fā)工具RealView MDK使用入門[M].北京航天航空大學(xué)出版社,2008年3月

      猜你喜歡
      看門狗主程序死機(jī)
      電腦死機(jī)時(shí)在干什么
      提醒
      淺談數(shù)控銑削技術(shù)代碼程序的嵌套方式研究
      把他叫醒
      電控冰箱軟件模塊化設(shè)計(jì)
      日用電器(2019年12期)2019-02-26 01:53:06
      時(shí)光倒流 換回PotPlayer老圖標(biāo)
      臉?biāo)罊C(jī)了
      一種采用FPGA實(shí)現(xiàn)的通用看門狗電路
      大眾科技(2015年11期)2015-11-24 01:57:16
      把它叫醒
      把它叫醒
      宁乡县| 万山特区| 靖江市| 兴山县| 高雄县| 万源市| 海南省| 盐山县| 本溪| 宁都县| 仲巴县| 安国市| 云梦县| 康乐县| 禹城市| 平乐县| 米脂县| 宣化县| 扶余县| 泰来县| 昌乐县| 望城县| 元氏县| 旌德县| 德化县| 池州市| 瑞金市| 盱眙县| 永安市| 宿州市| 临沭县| 蒙山县| 古丈县| 民权县| 沂水县| 阿拉善左旗| 北宁市| 杂多县| 垫江县| 菏泽市| 岱山县|