隨著現(xiàn)代電子技術(shù)的發(fā)展,,帶有各種微處理的現(xiàn)代電子設(shè)備已廣泛應(yīng)用于國(guó)民生產(chǎn)的各行各業(yè)中,。但隨著設(shè)備功能越來越強(qiáng)大,,程序結(jié)構(gòu)越來越復(fù)雜,,指令代碼越來越長(zhǎng),,加之現(xiàn)場(chǎng)工作環(huán)境的干擾,設(shè)備失控,,程序“走飛”,,各功能模塊“死機(jī)”的概率也同樣成倍地增加。對(duì)此,,常見的解決方法是在電路設(shè)計(jì)時(shí)放置一片硬件看門狗(Watchdog)電路,,其目的是在系統(tǒng)“走死”后能強(qiáng)制系統(tǒng)復(fù)位并返回初始化程序。隨著CPLD器件被廣泛應(yīng)用于各種儀器,、儀表設(shè)備的設(shè)計(jì)中,,而且CPLD幾乎可模擬任何一種邏輯電路,所以,,現(xiàn)在在設(shè)計(jì)時(shí)已完全沒有必要再放置一片獨(dú)立的看門狗器件,,而完全可以將硬件看門狗電路整合于CPLD器件中,從而節(jié)省成本,,降低系統(tǒng)的設(shè)計(jì)風(fēng)險(xiǎn),。下面具體介紹這種基于CPLD技術(shù)的看門狗電路的設(shè)計(jì)。
2 工作原理
CPLD是英文Complex Programmable LogicDevice的縮寫,,中文名稱為復(fù)雜可編程邏輯器件,,因其具有工作效率高、內(nèi)部延時(shí)小,、可預(yù)測(cè)延時(shí)等特點(diǎn),,而被廣泛應(yīng)用于計(jì)數(shù)器、邏輯電路,、控制電路和復(fù)雜的狀態(tài)機(jī)等功能的實(shí)現(xiàn),,而看門狗電路的核心就是一個(gè)計(jì)數(shù)定時(shí)電路,所以,,利用CPLD特點(diǎn)將能很好地實(shí)現(xiàn)看門狗電路的功能,。看門狗電路的原理框圖如圖1所示,。它在結(jié)構(gòu)上可分為分頻電路,、計(jì)數(shù)定時(shí)電路和復(fù)位電路三大部分,其工作方式是將一個(gè)32768Hz的方波時(shí)鐘輸入分頻電路,分頻后的方波再輸入到計(jì)數(shù)定時(shí)電路中進(jìn)行計(jì)數(shù),,同時(shí)與已設(shè)置好的計(jì)數(shù)時(shí)間常數(shù)相比較,,當(dāng)CPU在指定的時(shí)間內(nèi)沒有通過改變CS端狀態(tài)來將計(jì)數(shù)定時(shí)器清零,一旦計(jì)數(shù)值與預(yù)先設(shè)定的值相一致,,計(jì)數(shù)定時(shí)電路將產(chǎn)生一個(gè)高電平給復(fù)位電路,,復(fù)位電路將產(chǎn)生一個(gè)復(fù)位信號(hào)給CPU的REST端。例如,,對(duì)于MCS51系列單片機(jī)來說,,將產(chǎn)生一個(gè)大于10ms的高電平以保證CPU可靠地復(fù)位。
復(fù)雜可編程邏輯器件
3 電路設(shè)計(jì)
目前,,XILINX公司的可編程器件,,因其良好的設(shè)計(jì)平臺(tái)、安全的加密方法,、完整的產(chǎn)品線,,而被廣泛地應(yīng)用于各種產(chǎn)品中。下面,,以其產(chǎn)品線中的X95系列CPLD為例,,具體介紹看門狗電路的設(shè)計(jì)。
3.1 分頻電路
該電路是由圖1中的U1 COUNT5宏單元來完成的,,該宏單元的目的是將32768kHz的矩形脈沖通過一個(gè)5位的二進(jìn)制計(jì)數(shù)器,,經(jīng)32級(jí)分頻,得到一個(gè)1024Hz的方波,,也就是周期約為1ms的方波,,其仿真波形如圖2所示。
分頻電路
看門狗電路的設(shè)計(jì)
其中,,CLKIN為32762Hz方波信號(hào),,CLR為分頻器清零端,TIMECLK為32分頻器的輸出端,。由該圖可見,,當(dāng)CLR為低電平時(shí),分頻器工作,,CLR為高電平時(shí),,分頻器清零。
3.2 計(jì)數(shù)定時(shí)電路
該電路是看門狗的核心電路,,其功能由圖1中的U5 COMP宏單元來完成,,該宏單元由一個(gè)8位的二進(jìn)制計(jì)數(shù)器、一個(gè)8位的寄存器和一個(gè)8位的比較器組成,。其中8位寄存器的初始值為0FFH,,也可通過AD BUS的8位數(shù)據(jù)口和WR DOG片選口進(jìn)行置數(shù),。當(dāng)1024Hz方波進(jìn)入8位計(jì)數(shù)器進(jìn)行計(jì)數(shù)時(shí),比較器同時(shí)會(huì)將計(jì)數(shù)器的計(jì)數(shù)值與寄存器相比較,,一旦兩者相等,,比較器將產(chǎn)生一個(gè)REST高電平,禁止計(jì)數(shù)脈沖輸入同時(shí)打開復(fù)位電路中的計(jì)數(shù)器,。仿真波形如圖3所示。
計(jì)數(shù)定時(shí)電路
其中RESTCLKIN為1024Hz基準(zhǔn)時(shí)鐘輸入端,。CLR為8位計(jì)數(shù)器清零端,。WR為8位寄存器的片選鎖存端(上升沿鎖存)。DATA7為8位數(shù)據(jù)總線,,用于預(yù)置8位寄存器,。REST為復(fù)位輸出端,提供高電平以保證系統(tǒng)復(fù)位,。
3.3 復(fù)位延時(shí)電路
該電路的功能由U3 DELAY12MS宏單元來完成,,目的是在REST信號(hào)產(chǎn)生后,使其保持在10ms以上的穩(wěn)定高電平,,以保證可以實(shí)現(xiàn)系統(tǒng)可靠地復(fù)位,,并在延時(shí)結(jié)束后產(chǎn)生一個(gè)高電平將所有宏單元計(jì)數(shù)器清零。仿真波形如圖4所示,。
復(fù)位延時(shí)電路
其中,,CLKIN為1024Hz基準(zhǔn)時(shí)鐘脈沖,當(dāng)U5_COMP宏單元REST輸出為高電平時(shí)被允許輸入U(xiǎn)3_DELAY12MS宏單元,。當(dāng)計(jì)數(shù)器計(jì)為12時(shí),,U3_DELAY12MS宏單元CLRALL端產(chǎn)生一個(gè)高電平,通過32768Hz的脈沖鎖存到D型寄存器中,,D型寄存器的輸出端將會(huì)把所有計(jì)數(shù)器清零,,使U5_COMP宏單元中比較器的輸出端為“0”,從而結(jié)束復(fù)位,。
4 結(jié)束語
目前,,本人在所設(shè)計(jì)的產(chǎn)品中都采用了這種設(shè)計(jì),實(shí)踐證明,,通過CPLD器件來整合看門狗電路,,將能有效地保證系統(tǒng)正常工作,同時(shí)減小單獨(dú)放置看門狗器件帶來的設(shè)計(jì)風(fēng)險(xiǎn)和額外的費(fèi)用,。