傅靖毅,伍群英
(北京化工大學 信息科學與技術學院,北京100029)
目前國家對煤炭、礦產、石化等能源行業(yè)的生產安全要求越來越高,在這些行業(yè)中存在大量在野外、高危地區(qū)的電子監(jiān)測設備,這些設備的長期穩(wěn)定工作對保障生產安全起著至關重要的作用[1],一旦發(fā)生長時間系統(tǒng)死機現(xiàn)象,而維修人員又無法第一時間趕到,將帶來不可估量的損失[2]。目前電子設備的復位方式一般采用看門狗芯片或555定時器復位。看門狗復位的前提是微控制器的RESET引腳的內部電路必須正常工作,而555定時器復位時間由RC常數(shù)決定,無法做到設置任意復位周期[3]。所以有必要設計一種遠程復位周期可任意設置的定時斷電復位系統(tǒng),對MCU進行徹底的定時斷電復位,以達到保障無人值守的電子檢測設備長期正常運行的效果,從而提高重點行業(yè)的安全生產能力,帶來社會效益[4]。
該系統(tǒng)采用3層設計思路,服務器端上位機軟件發(fā)送復位周期參數(shù)設置命令,通過交換機將命令轉發(fā)往目標設備IP,設備收到命令后對其進行解析,提取命令報文中的復位周期參數(shù),寫入DS1337芯片的相應字節(jié)中。本文設計的可程控定時斷電復位系統(tǒng)主要由以太網轉串口、MCU、電源、參數(shù)存儲和斷電復位5部分電路組成,整體硬件結構圖如圖1所示。

圖1 系統(tǒng)硬件結構圖
以太網轉串口單元采用宇泰科技的UT450_M芯片,該芯片集成TCP/IP協(xié)議棧,可同時支持RS232和RS485雙工模式,極大提高電路設計靈活性[5]。10M以太網的兩對差分輸入TX+、TX-、RX+、RX-經過透明傳輸后轉換成RS232串口信號,再經過MAX3232芯片轉換成PIC24系列單片機能接收的TTL 3.3V電平。圖中MAX3232的9和10引腳連單片機的16和15引腳。通信部分需要注意的是,由于上位機軟件是運行在Windows操作系統(tǒng)下,而 Windows的多任務處理機制有時會導致客戶端長時間等待,所以有必要采用串口通信的握手機制,因此 UT450_M的RTS、CTS、DTR、DSR引腳需要和單片機的I/O口連接,用來傳遞握手信號,從而保證長時間的穩(wěn)定通信。通信模塊電路如圖2所示。

圖2 通信模塊電路圖

圖3 MCU部分電路圖
該系統(tǒng)選用了Microchip公司的16位單片機PIC24FJ128GA108[6],本設計中 MCU部分的電路如圖3所示。
定時斷電復位電路主要由DS1337S芯片和74HC193芯片構成。電路中DS1337S芯片的引腳SCL、SDL連接系統(tǒng)I2C總線,引腳SQW連接74HC193的UP引腳,74HC193芯片的QC引腳連MAX1626芯片的SHDN引腳,DS1337S可在設定時間觸發(fā)計數(shù)器工作,控制電源關閉并在4s后重新開啟,從而完成CPU斷電復位。自動斷電復位模塊的電路圖如圖4所示。
嵌入式系統(tǒng)的軟件采用MPLAB8.8IDE環(huán)境下C語言編程實現(xiàn),主要實現(xiàn)的功能是串口通信數(shù)據(jù)接收、指令報文解析和DS1337S讀寫。串口通信程序設計了相應的錯誤檢測機制,能檢測出以下6種錯誤:超時錯誤、溢出錯誤、幀錯誤、奇偶校驗錯誤、接收字節(jié)數(shù)超范圍錯誤、LPC校驗錯誤,當發(fā)現(xiàn)錯誤后會執(zhí)行錯誤應答程序,向上位機返回相應的錯誤碼。下面以讀DS1337S為例介紹PIC24系列的I2C總線操作。


圖4 自動斷電復位模塊

串口接收終端的流程圖如圖5所示。

圖5 串口中斷函數(shù)流程圖
上位機軟件部分采用VC++6.0編寫,實現(xiàn)的功能是建立與目標設備的以太網連接,發(fā)送復位周期設計命令。軟件的以太網通信程序使用的是流式套接字(SOCK_STREAM),利用 SOCKET API一些常用的API函數(shù),實現(xiàn)了C/S通信模式。由于網絡延時等問題,可能會出現(xiàn)字節(jié)錯誤或者丟失,影響對數(shù)據(jù)的正常解析[7]。為了解決這種問題,在程序中加強容錯機制。通過對返回命令的命令碼、長度位、校驗位及結束位的驗證,判斷接收數(shù)據(jù)格式是否錯誤,若錯誤則重發(fā)命令,若重發(fā)三次命令之后返回數(shù)據(jù)格式仍然錯誤,則返回錯誤信息。若超過一定時間接收不到數(shù)據(jù),返回相應的錯誤信息,避免程序陷入死循環(huán)。上位機軟件流程圖如圖6所示。

圖6 上位機軟件流程圖
此外,還按不同功能設計了6種上位機與定時斷電復位系統(tǒng)之間的通信報文格式,包括設置復位周期、讀取復位周期、設置系統(tǒng)時間、讀取系統(tǒng)時間、設置ID號和讀取ID號,其中設置復位周期的命令報文格式如表1和表2所列。
表2中命令碼表示終端對參數(shù)調節(jié)命令的應答命令。RTAT值為0表示正常接收,0x01表示超時錯誤,0x02表示溢出錯誤,0x04表示幀錯誤,0x08表示奇偶校驗錯誤,0x10表示接收字節(jié)數(shù)超出最大范圍錯誤,0x20表示LPC校驗錯誤。

表1 設置定時斷電復位周期命令報文

表2 設置定時斷電復位周期的應答命令報文
本文針對用傳統(tǒng)的看門狗芯片和555定時器來實現(xiàn)電子設備復位功能存在較大的局限性這一問題,設計了一種基于PIC24FJ128GA108單片機的定時斷電復位系統(tǒng),實現(xiàn)了通過上位機軟件遠程發(fā)送復位周期指令來控制設備定時斷電復位的功能。經過燕山石化項目實際現(xiàn)場測試,設備運行穩(wěn)定,能有效保障重點行業(yè)的關鍵電子設備長時間正常運行,將帶來巨大社會和經濟效益。
[1]蘇建元.一種實用的智能儀表防“死機”方法[J].國外電子測量技術,2006,25(4):51-52.
[2]李華.風扇雙工作模式定時控制器設計[J].現(xiàn)代電子技術,2010,33(7)141-145.
[3]徐云峰.一種適用于農村配網的“看門狗”型遠程用電管理終端的設計[J].電力系統(tǒng)保護與控制,2010,38(21):241-243.
[4]王首浩,劉俊琴.基于CPLD的系統(tǒng)硬件看門狗設計[J].單片機與嵌入式系統(tǒng)應用,2012,12(4):25-28.
[5]Microchip Technology Inc.PIC24FJ256GA110系列數(shù)據(jù)手冊,2011.
[6]羅川,吳志軍,馮平法.應用WatchDog技術提高測試系統(tǒng)的穩(wěn)定性[J].儀器儀表學報,2006,27(z2):151-152.
[7]沈偉,謝拴勤.基于MAX706AT的DSP硬件看門狗與電源監(jiān)控電路的設計與實現(xiàn)[J].電子技術應用,2008,34(3):55-58.