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