傅靖毅,伍群英
(北京化工大学 信息科学与技术学院,北京100029)
目前国家对煤炭、矿产、石化等能源行业的生产安全要求越来越高,在这些行业中存在大量在野外、高危地区的电子监测设备,这些设备的长期稳定工作对保障生产安全起着至关重要的作用[1],一旦发生长时间系统死机现象,而维修人员又无法第一时间赶到,将带来不可估量的损失[2]。目前电子设备的复位方式一般采用看门狗芯片或555定时器复位。看门狗复位的前提是微控制器的RESET引脚的内部电路必须正常工作,而555定时器复位时间由RC常数决定,无法做到设置任意复位周期[3]。所以有必要设计一种远程复位周期可任意设置的定时断电复位系统,对MCU进行彻底的定时断电复位,以达到保障无人值守的电子检测设备长期正常运行的效果,从而提高重点行业的安全生产能力,带来社会效益[4]。
该系统采用3层设计思路,服务器端上位机软件发送复位周期参数设置命令,通过交换机将命令转发往目标设备IP,设备收到命令后对其进行解析,提取命令报文中的复位周期参数,写入DS1337芯片的相应字节中。本文设计的可程控定时断电复位系统主要由以太网转串口、MCU、电源、参数存储和断电复位5部分电路组成,整体硬件结构图如图1所示。
图1 系统硬件结构图
以太网转串口单元采用宇泰科技的UT450_M芯片,该芯片集成TCP/IP协议栈,可同时支持RS232和RS485双工模式,极大提高电路设计灵活性[5]。10M以太网的两对差分输入TX+、TX-、RX+、RX-经过透明传输后转换成RS232串口信号,再经过MAX3232芯片转换成PIC24系列单片机能接收的TTL 3.3V电平。图中MAX3232的9和10引脚连单片机的16和15引脚。通信部分需要注意的是,由于上位机软件是运行在Windows操作系统下,而 Windows的多任务处理机制有时会导致客户端长时间等待,所以有必要采用串口通信的握手机制,因此 UT450_M的RTS、CTS、DTR、DSR引脚需要和单片机的I/O口连接,用来传递握手信号,从而保证长时间的稳定通信。通信模块电路如图2所示。
图2 通信模块电路图
图3 MCU部分电路图
该系统选用了Microchip公司的16位单片机PIC24FJ128GA108[6],本设计中 MCU部分的电路如图3所示。
定时断电复位电路主要由DS1337S芯片和74HC193芯片构成。电路中DS1337S芯片的引脚SCL、SDL连接系统I2C总线,引脚SQW连接74HC193的UP引脚,74HC193芯片的QC引脚连MAX1626芯片的SHDN引脚,DS1337S可在设定时间触发计数器工作,控制电源关闭并在4s后重新开启,从而完成CPU断电复位。自动断电复位模块的电路图如图4所示。
嵌入式系统的软件采用MPLAB8.8IDE环境下C语言编程实现,主要实现的功能是串口通信数据接收、指令报文解析和DS1337S读写。串口通信程序设计了相应的错误检测机制,能检测出以下6种错误:超时错误、溢出错误、帧错误、奇偶校验错误、接收字节数超范围错误、LPC校验错误,当发现错误后会执行错误应答程序,向上位机返回相应的错误码。下面以读DS1337S为例介绍PIC24系列的I2C总线操作。
图4 自动断电复位模块
串口接收终端的流程图如图5所示。
图5 串口中断函数流程图
上位机软件部分采用VC++6.0编写,实现的功能是建立与目标设备的以太网连接,发送复位周期设计命令。软件的以太网通信程序使用的是流式套接字(SOCK_STREAM),利用 SOCKET API一些常用的API函数,实现了C/S通信模式。由于网络延时等问题,可能会出现字节错误或者丢失,影响对数据的正常解析[7]。为了解决这种问题,在程序中加强容错机制。通过对返回命令的命令码、长度位、校验位及结束位的验证,判断接收数据格式是否错误,若错误则重发命令,若重发三次命令之后返回数据格式仍然错误,则返回错误信息。若超过一定时间接收不到数据,返回相应的错误信息,避免程序陷入死循环。上位机软件流程图如图6所示。
图6 上位机软件流程图
此外,还按不同功能设计了6种上位机与定时断电复位系统之间的通信报文格式,包括设置复位周期、读取复位周期、设置系统时间、读取系统时间、设置ID号和读取ID号,其中设置复位周期的命令报文格式如表1和表2所列。
表2中命令码表示终端对参数调节命令的应答命令。RTAT值为0表示正常接收,0x01表示超时错误,0x02表示溢出错误,0x04表示帧错误,0x08表示奇偶校验错误,0x10表示接收字节数超出最大范围错误,0x20表示LPC校验错误。
表1 设置定时断电复位周期命令报文
表2 设置定时断电复位周期的应答命令报文
本文针对用传统的看门狗芯片和555定时器来实现电子设备复位功能存在较大的局限性这一问题,设计了一种基于PIC24FJ128GA108单片机的定时断电复位系统,实现了通过上位机软件远程发送复位周期指令来控制设备定时断电复位的功能。经过燕山石化项目实际现场测试,设备运行稳定,能有效保障重点行业的关键电子设备长时间正常运行,将带来巨大社会和经济效益。
[1]苏建元.一种实用的智能仪表防“死机”方法[J].国外电子测量技术,2006,25(4):51-52.
[2]李华.风扇双工作模式定时控制器设计[J].现代电子技术,2010,33(7)141-145.
[3]徐云峰.一种适用于农村配网的“看门狗”型远程用电管理终端的设计[J].电力系统保护与控制,2010,38(21):241-243.
[4]王首浩,刘俊琴.基于CPLD的系统硬件看门狗设计[J].单片机与嵌入式系统应用,2012,12(4):25-28.
[5]Microchip Technology Inc.PIC24FJ256GA110系列数据手册,2011.
[6]罗川,吴志军,冯平法.应用WatchDog技术提高测试系统的稳定性[J].仪器仪表学报,2006,27(z2):151-152.
[7]沈伟,谢拴勤.基于MAX706AT的DSP硬件看门狗与电源监控电路的设计与实现[J].电子技术应用,2008,34(3):55-58.