戴志威 王洋 吳洪玲



摘? 要:隨著工業(yè)控制計算機(jī)在工業(yè)生產(chǎn)控制領(lǐng)域應(yīng)用越來越廣,而且常工作在無人值守或條件惡劣的工作場合,要求具有抗震、防塵、防潮、防電磁干擾等特點,工業(yè)控制計算機(jī)受輸入電源不穩(wěn)定性干擾,容易出現(xiàn)掉電后無法自動開機(jī)的現(xiàn)象。文章提出一種工業(yè)控制計算機(jī)掉電自恢復(fù)運行方法,通過硬件設(shè)計、軟件復(fù)位等流程設(shè)計,解決當(dāng)前工業(yè)控制計算機(jī)掉電無法自動開機(jī)運行以及維護(hù)效率低下等問題。
關(guān)鍵詞:工業(yè)監(jiān)控系統(tǒng);主板;基板管理控制器;復(fù)位信號;RC復(fù)位電路
中圖分類號:TP311.52;TP273? ? ? ?文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2020)09-0138-04
The Method of Power-Off Self Recovery Operation of IPC
DAI Zhiwei1,WANG Yang2,WU Hongling1
(1.Nanning Yanxiang Special Computer Software Co.,Ltd.,Nanning? 530031,China;
2.Shenzhen Polytechnic,Shenzhen? 518055,China)
Abstract:With the widely application of IPC in the field of industrial production,and often work in unattended or poor working conditions,which requires seismic,dust,moisture,electromagnetic interference and other characteristics,IPC disturbed by the instability of input power supply,and its easy to fail to start automatically after power failure. In this paper,a method of power-off self recovery operation of industrial control computer is proposed. Through the design of hardware connection,software reset signal,the current problems of power-off failure of industrial control computer and low maintenance efficiency are solved.
Keywords:industrial monitoring system;motherboard;BMC;reset signal;RC reset circuit
0? 引? 言
基于裝備制造業(yè)轉(zhuǎn)型升級,設(shè)備可靠性運行及使用率的提高將更能讓制造商體會到智能制造的優(yōu)勢[1]。在實際工業(yè)生產(chǎn)應(yīng)用中,工業(yè)自動化設(shè)備一般都內(nèi)置了控制機(jī)械或智能化外設(shè)的工業(yè)計算機(jī),并且安裝在作業(yè)現(xiàn)場。而作業(yè)現(xiàn)場使用了很多的高功率設(shè)備,這些高功率設(shè)備的工作時間非常不確定,可能出現(xiàn)一臺設(shè)備加工完畢后暫停,另一臺設(shè)備需要連續(xù)工作,當(dāng)設(shè)備出現(xiàn)反復(fù)啟停的時候,工業(yè)計算機(jī)的輸入電源在某種情況下出現(xiàn)擾動,導(dǎo)致工業(yè)計算機(jī)主板掉電后無法開機(jī)。當(dāng)這類異常出現(xiàn)后,傳統(tǒng)做法是通過人工干預(yù)進(jìn)行開機(jī),目前缺少一種有效的追蹤異常的方法,無法找到出現(xiàn)異常的本質(zhì)原因。當(dāng)現(xiàn)場設(shè)備數(shù)量比較多的時候,無疑會給生產(chǎn)管理人員帶來問題,最終造成生產(chǎn)產(chǎn)能、生產(chǎn)效率大幅降低,人力成本及維護(hù)成本增加。
基于此,南寧市研祥特種計算機(jī)軟件有限公司與深圳市職業(yè)技術(shù)學(xué)院共同開展了工業(yè)控制計算機(jī)可靠性關(guān)鍵技術(shù)研究,提出一種工業(yè)自動化設(shè)備監(jiān)控系統(tǒng)可靠性管理方法和裝置,通過硬件連接、軟件復(fù)位信號、消息處理等流程設(shè)計,解決當(dāng)前工業(yè)控制計算機(jī)掉電無法自動開機(jī)運行以及監(jiān)控系統(tǒng)硬件昂貴、維護(hù)效率低下、人力成本高等問題[2]。
1? 硬件設(shè)計
在硬件層面主要設(shè)計了主板和微控制器,如圖1所示。其中,主板由CPU、PCH、SIO和溫度傳感器構(gòu)成。微控制器作為一個主處理單元,獨立于主板運行,通過和主板上的擴(kuò)展接口如SIO、PCH上的信號線I2C、SMBus1進(jìn)行連接,且連接有PCH的RESET引腳、Reload Default引腳、PLT_RST引腳,并與主板的模擬輸出信號引腳AIN1、AIN2、AIN3相連。相關(guān)術(shù)語解釋如表1所示。
根據(jù)實際要求,給主板工作模式定義了三個狀態(tài),即欠電壓狀態(tài)、初始化狀態(tài)、正常狀態(tài)。主板正常啟動后,默認(rèn)進(jìn)入到正常狀態(tài);當(dāng)外部電壓出現(xiàn)掉電等異常事件后產(chǎn)生中斷,進(jìn)入中斷服務(wù)程序,切換當(dāng)前的狀態(tài)為欠電壓狀態(tài),進(jìn)行監(jiān)控處理;監(jiān)控處理完畢后,將當(dāng)前的狀態(tài)切換為初始化狀態(tài),然后恢復(fù)異常前的環(huán)境變量,隨后再切換到正常狀態(tài),按照上述切換邏輯進(jìn)行狀態(tài)切換,確保主板的正常運行。
微控制器可根據(jù)需要設(shè)置不同的掉電電壓閾值,如4.5 V、3.7 V和3.0 V,構(gòu)成一個個電壓檔。當(dāng)電壓掉到其中任意一個檔,會自動產(chǎn)生一個中斷,這時程序?qū)⑻霎?dāng)前執(zhí)行的任務(wù),轉(zhuǎn)而執(zhí)行低電壓檢測主板的工作狀態(tài)。如果此次電壓異常事件導(dǎo)致了主板掉電且沒有正常開機(jī),那么該微控制器將會采取三種方式:第一,給PCH的RESET信號輸出一次低脈沖;第二,給Power Button信號輸出一次低脈沖;第三,給清CMOS信號輸出一個低脈沖,從而保證主板可以正常開機(jī)[3]。
2? 軟件復(fù)位方法設(shè)計
在軟件層面主要設(shè)計了掉電檢測模塊、判斷模塊和切換模塊[4]。其中掉電檢測模塊,用于檢測到外部中斷信號以及工業(yè)自動化設(shè)備的主板處于欠電壓狀態(tài);判斷模塊,用于判斷PLT_RST是否為低電平;切換模塊,用于在設(shè)置CMOS信號為高電平后,或用于檢測到工業(yè)自動化設(shè)備的主板處于欠電壓狀態(tài)即判斷PLT_RST不為低電平時,切換主板的工作模式為初始化狀態(tài),以及在主板進(jìn)行初始化后再切換主板的工作模式為正常狀態(tài)。
2.1? 主板掉電自恢復(fù)運行檢測實現(xiàn)方法
微控制器能夠自動偵測主板的當(dāng)前運行狀態(tài),通過設(shè)置好的流程邏輯達(dá)到控制主板自主運行能力的目的[5]。如圖2所示,主要執(zhí)行步驟如下:
第一步,掉電檢測模塊檢測到外部中斷信號以及工業(yè)設(shè)備的主板處于欠電壓狀態(tài)[6]。
第二步,判斷模塊判斷PLT_RST是否為低電平,若是,則延時第一預(yù)設(shè)時間。
第三步,再次判斷PLT_RST是否為低電平,若是,則輸出Power Button為低電平,并延時第二預(yù)設(shè)時間后設(shè)置Power Button為高電平;若否,則輸出RESET為低電平,并延時第三預(yù)設(shè)時間后設(shè)置RESET為高電平。若檢測到工業(yè)自動化設(shè)備的主板處于欠電壓狀態(tài),判斷PLT_RST不為低電平時,切換模塊切換主板的工作模式為初始化狀態(tài),將主板進(jìn)行初始化,再切換主板的工作模式為正常狀態(tài)。
第四步,設(shè)置Power Button或RESET為高電平后,延時第四預(yù)設(shè)時間。
第五步,再判斷PLT_RST是否為低電平,若是,則輸出清CMOS信號為低電平,并延時第五預(yù)設(shè)時間,設(shè)置CMOS信號為高電平,再由切換模塊切換主板的工作模式為初始化狀態(tài),將主板進(jìn)行初始化,再切換主板的工作模式為正常狀態(tài);若否,則直接切換主板的工作模式為初始化狀態(tài),將主板進(jìn)行初始化,再切換主板的工作模式為正常狀態(tài)。
其中預(yù)設(shè)的時間可根據(jù)需要設(shè)定,并通過開啟定時器進(jìn)行計時。第一/四預(yù)設(shè)時間可設(shè)定為2.0 s或5.0 s等,第二/三/五預(yù)設(shè)時間可設(shè)定為0.4 s、0.5 s、1.0 s等。
2.2? 主板對接收的消息進(jìn)行校驗和處理
如圖3所示,當(dāng)主板的工作模式為正常狀態(tài)時,對接收的消息進(jìn)行校驗,然后處理接收的消息。其中,消息通訊的協(xié)議包括消息頭、長度、命令、操作碼、數(shù)據(jù)字段、校驗碼等。消息頭可為固定的字符,如“s”“t”。長度是指長度字段,最大為255。命令為與上位機(jī)之間進(jìn)行通訊的命令碼;數(shù)據(jù)字段為對應(yīng)的每個命令所需要的數(shù)據(jù)字段。校驗碼由長度、命令碼、操作碼、數(shù)據(jù)字段累加所得。例如,上位機(jī)通過CMD_GET_TEMP_VAL可以獲取系統(tǒng)溫度、CPU溫度等。上位機(jī)發(fā)送獲取溫度命令請求‘s' - 't' - 0x03 - 0x03 - 0x00 - 0x00 – CheckSum。微控制器對上位機(jī)響應(yīng)命令:‘s' - 't' - 0x12 - 0x03 - 0x00 -data[0..15] – CheckSum。
具體執(zhí)行步驟如下:
第一步,將消息字段校驗序號初始化為零。
第二步,判斷串口是否接收到消息,若是,分別檢測校驗序號為0、1、2、3、4、5的消息字段,然后再分別判斷消息字段校驗序號0、1、2、3、4所對應(yīng)的字節(jié)是否為第一預(yù)設(shè)頭字節(jié)、字節(jié)是否為第二預(yù)設(shè)頭字節(jié)、字節(jié)是否為有效長度、字節(jié)是否為有效的命令、字節(jié)是否為有效操作碼。若是,則將消息字段校驗序號加1,返回到判斷串口是否接收到消息的步驟;否則,重新將消息字段校驗序號置0,返回到判斷串口是否接收到消息的步驟。若檢測的消息字段校驗序號為5,則判斷消息字段校驗序號為5對應(yīng)的字節(jié)所表示的數(shù)據(jù)字段是否大于預(yù)設(shè)值,若是,進(jìn)一步判斷接收數(shù)據(jù)是否完畢,若接收完畢,則將消息字段校驗序號加1返回到判斷串口是否接收到消息的步驟;若未接收完畢,返回到判斷串口是否接收到消息的步驟。
第三步,若判斷消息字段校驗序號為5所對應(yīng)的字節(jié)所表示的數(shù)據(jù)字段小于或等于預(yù)設(shè)值時,則判斷校驗和是否正確,若是,執(zhí)行該消息,執(zhí)行完后將消息字段校驗序號置0;否則,將消息字段校驗序號置0,然后結(jié)束。
2.3? 對外部輸入信號接收并處理
對外部輸入信號進(jìn)行處理,實現(xiàn)按鍵被觸發(fā)時間長短產(chǎn)生不同的命令。具體執(zhí)行步驟如圖4所示:
第一步,接收外部輸入信號。初始化外部中斷引腳下降沿觸發(fā),且中斷標(biāo)志位為0。FP_RST為外部輸入信號,具有兩個功能:一是負(fù)責(zé)復(fù)位主板,二是負(fù)責(zé)清除CMOS參數(shù)為默認(rèn)值。兩個功能的執(zhí)行是通過被按下的時間長度決定的。例如設(shè)置按下FP_RST后,主板可能會復(fù)位,連續(xù)按下超過指定時間,則會執(zhí)行清除CMOS的動作。
第二步,判斷接收外部輸入信號(FP_RST)所產(chǎn)生的中斷標(biāo)志位是否為0,若是,則清除中斷標(biāo)志位,將外部中斷管腳設(shè)置為上升沿觸發(fā),輸出復(fù)位信號為低電平,然后設(shè)置中斷標(biāo)志位為1,且維持復(fù)位信號為低電平超過指定時間,再設(shè)置清除CMOS信號為低電平[7,8],指定時間為被設(shè)置按下后執(zhí)行清除CMOS動作的時間,如4.0 s;否則,清除中斷標(biāo)志位,將外部中斷管腳設(shè)置為下降沿觸發(fā),輸出復(fù)位信號為高電平,延時第六預(yù)設(shè)時間,再設(shè)置清除CMOS信號為高電平。
3? 結(jié)? 論
本文研究的工業(yè)控制計算機(jī)掉電自恢復(fù)運行方法,還可應(yīng)用于BIOS運行階段,檢測到BIOS沒有運行完畢,則記錄事件日志,并進(jìn)行欠電壓狀態(tài)處理;也可應(yīng)用于操作系統(tǒng)運行階段,在操作系統(tǒng)運行階段,在上位機(jī)上安裝一個應(yīng)用程序,并通過該應(yīng)用程序發(fā)送心跳報文,若主板在規(guī)定的時間內(nèi)沒有接收到心跳報文,則認(rèn)為操作系統(tǒng)出現(xiàn)異常,將操作系統(tǒng)進(jìn)行復(fù)位。通過硬件邏輯來捕獲該掉電異常,然后觸發(fā)主板的中斷,進(jìn)入到欠電壓模式,處理異常狀態(tài),實現(xiàn)了基板管理控制器的部分控制功能,可以監(jiān)控主板的狀態(tài),保證主板異常恢復(fù),提升自主運行能力;支持對主板的固件升級達(dá)到柔性擴(kuò)展功能,且通用性強(qiáng);通過延時預(yù)設(shè)時間為主板進(jìn)行緩沖和響應(yīng)提供足夠時間,確保檢測的準(zhǔn)確性。
參考文獻(xiàn):
[1] 吳占軍.工業(yè)設(shè)備遠(yuǎn)程監(jiān)控系統(tǒng)關(guān)鍵技術(shù) [J].電子世界,2018(18):202+204.
[2] 張光.基于物聯(lián)網(wǎng)與計算機(jī)技術(shù)的工業(yè)設(shè)備監(jiān)控系統(tǒng) [J].計算機(jī)與數(shù)字工程,2016,44(10):1944-1947+1956.
[3] 楊帆.系統(tǒng)控制單元及自動化復(fù)位技術(shù)的設(shè)計與驗證 [D].西安:西安電子科技大學(xué),2014.
[4] 高希棟.一種智能電能表掉電檢測模塊的電路設(shè)計 [J].機(jī)電信息,2018(15):141+143.
[5] 劉云翔,姚文斌.一種智能工業(yè)設(shè)備報修方法及系統(tǒng) [J].現(xiàn)代電子技術(shù),2018,41(10):157-160.
[6] 馬陸玲.主板掉電時自動恢復(fù)CMOS的方法 [J].實驗技術(shù)與管理,2001(1):78.
[7] 楊鈞,余章平.直流開關(guān)電源欠壓保護(hù)電路 [J].電源世界,2006(6):12-13+42.
[8] 孫華,陳宇,任廣軍,等.開關(guān)電源瞬態(tài)掉電恢復(fù)報故障分析 [J].硅谷,2011(12):185.
作者簡介:戴志威(1992—),男,漢族,湖南婁底人,工程師,碩士,主要研究方向:計算機(jī)應(yīng)用。