解決工控系統(tǒng)高可靠性的有效技術(shù)
目前,在許多情況下設(shè)計人員會用軟件實現(xiàn)以往由硬件完成的電路功能,其原因是低成本的微處理器(up)為大家提供了廣泛的選擇。軟件常常是解決問題的成本最低、靈活性最高的方案,但它也帶來一些麻煩 那就是設(shè)計人員為了確保系統(tǒng)的可靠性,要進(jìn)行一些額外的軟件測試。如果軟件程序中沒有代碼錯誤,要求在10000條指令中出錯率不要超過10處,即其準(zhǔn)確率能夠保證千分之一左右,則系統(tǒng)的可靠性就有了保證,然而這實際上并非易事,從而系統(tǒng)可靠性就不能得到確保。
在臺式機系統(tǒng)中出現(xiàn)導(dǎo)致系統(tǒng)癱瘓的軟件錯誤并不可怕,因為用戶只需重新啟動系統(tǒng)即可,它只會造成少量數(shù)據(jù)的丟失。然而,對于運行在工控系統(tǒng)的軟件,系統(tǒng)必須能夠在沒有人為干預(yù)的條件下恢復(fù)故障。這一特性在兩種情況下是非常關(guān)鍵的,即一種是高有效性系統(tǒng),如服務(wù)器、電話系統(tǒng)以及生產(chǎn)線等,另一種是高可靠性系統(tǒng),一旦出現(xiàn)錯誤將造成傷害,如汽車、醫(yī)療設(shè)備、工業(yè)控制、機器人、自動門等。即使不考慮上述設(shè)備應(yīng)用上的嚴(yán)格要求,系統(tǒng)也應(yīng)在無需用戶干預(yù)(按下復(fù)位鍵或重新上電)的條件下能自動從故障狀態(tài)進(jìn)行恢復(fù),這是非常重要和有益的,因為只有這樣才能使用戶覺察不到設(shè)備內(nèi)部出現(xiàn)了問題。為改善并解決這類系統(tǒng)可靠性,人們迫切要尋求出一種簡單、有效的技術(shù)措施來以確保此要求的實現(xiàn),而應(yīng)用“看門狗”技術(shù)和電路,是一種最佳方案。
看門狗(Watchdog)技術(shù)
看門狗是一個計數(shù)器,它需要在一定的看門狗延時周期內(nèi)被清零,如果沒有清零動作,看門狗電路將產(chǎn)生一個復(fù)位信號使系統(tǒng)重新啟動或建立—個非屏蔽中斷(NMl)、執(zhí)行故障恢復(fù)子程序。大多數(shù)看門狗電路是沿觸發(fā),這樣,無論是上升沿還是下降沿觸發(fā)看門狗的輸入端(WDl)都能夠清計數(shù)器。WDI引腳連接在處理器的一個I/O口,這條口線由軟件觸發(fā)(圖1)。清看門狗計數(shù)器的命令必須在主程序內(nèi)(圖2)。如果看門狗沒有被清零,復(fù)位后軟件將從地址0000(啟動程序)開始運行。計算主程序的運行時間往往很困難,因為在此期間可能需要多次調(diào)用子程序,調(diào)用次數(shù)的多少與系統(tǒng)輸入有關(guān)。因此,設(shè)計人員常常選擇看門狗延時周期遠(yuǎn)遠(yuǎn)高于所測試到的循環(huán)時間或計算出的循環(huán)時間。圖3表示正常工作情況下(看門狗在延時周期內(nèi)被請零)的看門狗信號和復(fù)位信號。圖4中,在看門狗計數(shù)器溢出時發(fā)生了一次復(fù)位,工業(yè)標(biāo)準(zhǔn)的看門狗電路延時周期在lOOms至2s范圍內(nèi),當(dāng)然也有些可調(diào)節(jié)或定制的看門狗電路能夠覆蓋更寬的延時范圍 (30ms至幾分鐘)。如果主程序的執(zhí)行時間過長(指相對于看門狗電路而言),設(shè)計人員可以在主程序的不同部位多次執(zhí)行看門狗觸發(fā)命令,也可以選用看門狗延時周期更長的器件。
一種防止系統(tǒng)滯留在死循環(huán)的技術(shù)是在主程序的開始部分將相應(yīng)的I/O引腳置為高電平,而在主程序的另一部分將其置為低電平。如果軟件在主程序的起始部分進(jìn)入了死循環(huán), 由于WDI始終保持高電平(圖5),看門狗將產(chǎn)生延時輸出、系統(tǒng)被復(fù)位。如果采用一個低—高—低的脈沖(圖2所示),看門狗將被請零,但系統(tǒng)仍處于阻塞狀態(tài)。為解決這個問題,一種更老練的方法是對程序中的多項任務(wù)進(jìn)行監(jiān)視,每項任務(wù)設(shè)置一個標(biāo)志,只有當(dāng)全部標(biāo)志置位后看門狗電路才被觸發(fā)。執(zhí)行全部任務(wù)的時間要比看門狗延時周期短。雖然圖2和圖5對實際程序只作了一個最簡單的對比,但它表達(dá)了與此相應(yīng)的基本概念。在更復(fù)雜的系統(tǒng)中還存在一些潛在問題,如存儲器泄漏、堆棧溢出等,系統(tǒng)同樣需要對這些情況進(jìn)行監(jiān)視,只需通過合理的程序設(shè)計,認(rèn)真審核代碼或采用專門的軟件工具也可以解決上述問題(在此對這些超出了本文的范圍問題不作討論)。
看門狗電路的應(yīng)用與選擇
內(nèi)部看門狗與外部看門狗
許多μP(微處理器)集成了可編程看門狗功能,軟件控制可禁止其工作。內(nèi)置看門狗易受代碼錯誤的影響,它無法提供外部獨立看門狗電路所具有的保護(hù)能力。
在對安全性能要求較高的應(yīng)用中(如自動門、醫(yī)療設(shè)備、機器人等),內(nèi)置看門狗是無法接受的,管理層要求采用獨立的外部看門狗電路。使用外部看門狗電路降低關(guān)鍵系統(tǒng)的風(fēng)險是一個很好的習(xí)慣。
簡單的看門狗+復(fù)位
通??撮T狗延時將重新復(fù)位系統(tǒng),大多數(shù)看門狗電路與μP復(fù)位集成在一起,它同時可以監(jiān)視處理器的供電電壓(工廠預(yù)設(shè)監(jiān)視電壓為2.5V、3.0V、3.3V或5V)。在出現(xiàn)看門狗延時或電源電壓跌落的情況下均可產(chǎn)生復(fù)位動作(見圖6的 輸出)。 圖6所示的MAX823-MAX825系列產(chǎn)品就包含了這兩種功能,即看門狗和復(fù)位。它們可提供標(biāo)準(zhǔn)的復(fù)位電壓門限、標(biāo)準(zhǔn)的看門狗延時周期(最小為1.12s)和復(fù)位延遲(最小為140ms),僅消耗6uA電流。這些器件具有超小型SC70封裝。
工廠預(yù)置看門狗系列
MAX6316-MAX6322系列提供了26種工廠預(yù)置的復(fù)位電壓門限、4種看門狗延時周期(分別為4.3ms、 71ms、1.12s、17.9s)、4種復(fù)位延遲(分別為1ms、20ms、140ms、1.12s)以及4種輸出配置(推挽、開漏或雙向輸出)。
{{分頁}}
可用電容調(diào)節(jié)的看門狗
如果應(yīng)用中要求靈活的看門狗延時周期,設(shè)計人員可以選用可調(diào)節(jié)電路,MAX6746-MAX6753系列產(chǎn)品既提供了工廠預(yù)置的復(fù)位電壓門限,也提供了分壓編程的復(fù)位電壓門限(工廠預(yù)設(shè),或可用分壓器R1/R2在1.575V至5V間調(diào)節(jié)),另外,它們還可以利用外部電容調(diào)節(jié)看門狗延時周期(當(dāng)電容Cswt為100Pf至100Nf數(shù)值時,在700ms至70s范圍內(nèi)分兩段調(diào)節(jié))和復(fù)位延遲(預(yù)設(shè)或用電容Csrt在0.5ms至5s調(diào)節(jié))。
其中:復(fù)位電壓由分壓器R1/R2決定,復(fù)位延遲時間由電容Csrt設(shè)置,看門狗延時周期由電容Cswt設(shè)置。
設(shè)計人員利用如此寬范圍的看門狗延時周期可以為任何應(yīng)用提供解決方案。MAX6301-MAX6304系列基本與MAX6746-MAX6753系列相同,但可提供SO或DIP封裝。
較長啟動/延時周期、引腳可選的看門狗
對于啟動過程較長的應(yīng)用,希望提供兩個不同的延時周期:一個較長的初始化延時周期和一個較短的正常工作延時周期。MAX6369—MAX6374系列具有WDI引腳可編程的啟動延遲,可選范圍:200ms至60s,以及可在30ms至60s范圍內(nèi)編程的看門狗延時周期。一些版本還提供看門狗的首次邊沿激活功能,以滿足啟動過程更長的應(yīng)用。在這些芯片中,看門狗電路在啟動過程中被禁止,來自μP相關(guān)I/O引腳的第一個邊沿可激活看門狗電路。
多電壓監(jiān)控看門狗
對于雙電源供電系統(tǒng),MAX6358-MAX6360系列可以監(jiān)視兩路標(biāo)準(zhǔn)電壓,并提供長啟動周期和標(biāo)準(zhǔn)延時周期的看門狗;對于三組電源供電或需要高有效和低有效復(fù)位輸出的系統(tǒng),設(shè)計人員可以選用MAX6721-MAX6729系列產(chǎn)品,這些器件提供長啟動周期和標(biāo)準(zhǔn)延時周期的雙模式看門狗功能。它們可監(jiān)視兩路標(biāo)準(zhǔn)的電源電壓(MAX6721-MAX6722)或兩路標(biāo)準(zhǔn)電壓“+”一路可調(diào)電壓(MAX6723-MAX6724)。這些器件帶有手動復(fù)位輸入,電源失效比較器,雙復(fù)位輸出和 輸出。
窗式看門狗提供超高可靠性
為獲得超高的可靠性,設(shè)計人員可以利用MAX6323/MAX6324窗式看門狗電路,使用這些器件時必須在規(guī)定的窗口定時周期內(nèi)為看門狗提供清零脈沖,有效脈沖可以在上次觸發(fā)脈沖1.5ms后送達(dá),也可以在上次觸發(fā)脈沖10ms后到達(dá),利用MAX6323/MAX6324系統(tǒng)可以脫離離散循環(huán),如果清看門狗指令在循環(huán)內(nèi)執(zhí)行,它將發(fā)出一串高速脈沖,這些脈沖可以將常規(guī)的看門狗清零,而且不產(chǎn)生復(fù)位。如果利用窗式看門狗電路則避免了上述問題,因為這種器件在兩次看門狗觸發(fā)脈沖之間要求一定的時間間隔。這些器件的典型應(yīng)用包括防抱死(ABS)系統(tǒng)或其它汽車電路,工業(yè)控制、醫(yī)療產(chǎn)品等要求高安全性的應(yīng)用或?qū)ο到y(tǒng)有效性要求苛刻的應(yīng)用。
結(jié)論
各種軟件程序都會出現(xiàn)代碼錯誤,設(shè)計人員必須保證系統(tǒng)不出現(xiàn)死鎖。噪聲和EMI也會影響系統(tǒng)中的數(shù)據(jù),導(dǎo)致不可預(yù)測的系統(tǒng)動作,看門狗電路是提高系統(tǒng)可靠性的一種簡單、廉價方案。利用外部看門狗電路可以防止系統(tǒng)死鎖,如果WDI信號在規(guī)定的看門狗延時周期內(nèi)沒有被觸發(fā)將對μP進(jìn)行復(fù)位。在目前種類繁多的看門狗器件中,設(shè)計人員一定能夠找到一款與其需求相吻合的技術(shù)與器件。
“看門狗”抗干擾新技術(shù)經(jīng)在發(fā)電廠400噸工業(yè)鍋爐爐堂安全控制系統(tǒng)中得到了較好的應(yīng)用,在現(xiàn)場環(huán)境與電網(wǎng)干擾嚴(yán)重的情況下,計算機系統(tǒng)能對各種燃油噴嘴“關(guān)”與“開”進(jìn)行實時控制,從而保證燃油進(jìn)量的準(zhǔn)確性,極大的提高了工業(yè)鍋爐爐堂安全控制系統(tǒng)的可靠性和鍋爐燃燒效率。其最大的成功在于,一改以往一受干擾,計算機系統(tǒng)要人工復(fù)位(Reset)并重新啟動而突然造成燃油噴嘴“關(guān)”與“開”的失控。如今那種嚴(yán)重影響工業(yè)鍋爐正常運轉(zhuǎn)的現(xiàn)象己經(jīng)一去不復(fù)返了。實踐證明該“看門狗”技術(shù)不失為各類工控系統(tǒng)高可靠性有效新技術(shù)。
評論