《基于TCPIP协议的远程配置与监控系统.pdf》由会员分享,可在线阅读,更多相关《基于TCPIP协议的远程配置与监控系统.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 收稿日期:2002206219 作者简介:王利华(19782),女,湖北人,华中科技大学电子与信息工程系硕士研究生,研究方向:网络通信。文章编号:100622475(2003)0120018204基于TCPIP协议的远程配置与监控系统王利华,李青侠(华中科技大学电子与信息工程系,湖北 武汉 430074)摘要:主要介绍了一种基于TCPIP协议的远程配置与监控系统,包括它的功能和特点以及该系统的软、硬件实现方法。该系统采用服务器 客户端模式,利用TCPIP协议通过Internet网络实现设备工作参数的远程配置和设备运行状态的远程监视和控制。将该系统用于全IP移动通信系统基站的远程配置和监控,结
2、果显示该系统能够很好地完成基站的远程配置和监控功能。关键词:网络通信;单片机;传输控制协议TCP;串口通信中图分类号:TP393 文献标识码:AThe Remote Surveillance and Control System Based on TCPIP ProtocolWANGLi2hua,LI Qing2xia(Department of Electronic and Information Engineering,Huazhong University of Science and Technology,Wuhan430074,China)Abstract:Mainly introd
3、uces the remote surveillance and control system based on TCPIP protocol,including the systems functions andcharacteristics,as well as the approach to the realization of the hard&soft wares.This system adopts serverclient mode and uses TCPIP protocol to remotely control and surveille the working para
4、meters and running state of the equipment through Internet network.Thissystem has been applied in the base station of a whole IP mobile communication system,it can perform these functions stably.Keywords:network communication;singlechip;transmission control protocol TCP;serial port communication0 引
5、言在一些重要工业部门中的很多岗位和设施,例如通信系统的基站设备,为减少技术支持的需要,要实行全天候24小时无人值守,通过Internet网络完成远程实时监测基站设备的运行状况以及工作模式、工作参数等的远程实时配置,对于这种分布广、持续工作时间长的应用场合,这套基于TCPIP协议的远程监控与配置系统为此提供了参考。另外,在一些重要机构如银行、电力等分布式管理的行业,为实现准确、及时地处理报警等突发事件,采用自动的远距离网络配置与监控是行业管理的必要手段。气象局通过气象采集点定时采集雨量数据,如果通过电话线每天定时采集数据,由于气象采集点基本上是在室外,拖电话线很不方便,而且用电话线每月的通信费用
6、也比较高,所以采用此远程监控也是比较合适的解决方案。1 系统的功能与特点1.1 系统的功能1.远程配置功能:无人值守的设备,其工作模式、参数(诸如:设置工作频率、功率等)能被Internet网上的任一台计算机进行实时远程配置,进而对其工作状态及工作参数进行调整以及系统初始化处理。该部分主要由以下功能组成:(1)监控点配置管理;(2)设备配置管理;(3)系统监控命令配置;(4)系统初始化。2.远程监控功能:能够远程实时监测设备的工作状态、工作参数(诸如:温度、电源等),将监测结果通过Internet网络送给监控中心主控微机,以确定其当前的工作状态是否正常并获得当前的工作参数,若当前工作状态失常会
7、给予提示或警告,减少了对技术支持的需要。该部分主要由以下功能组成:(1)监控模块初始化;(2)监测数据采集;(3)告警数据采集。1.2 系统的特点本系统的采用丝毫不影响被监控设备的正常工作;具有错误自诊断功能;具有故障重启动能力(看门狗能力);具有同时处理各事件告警能力;所采用的模块化结构使用户可根据实际情况随意改变监控对象。2 系统的硬件组成系统的硬件组成框图如图1所示。主要由监控点的终端机、监控中心主控微机和两块监控板组成。其中监控点的终端机是本地机,监控中心主控微机是远程机,两块监控板放在本地机那端。2003年第1期计 算 机 与 现 代 化JISUANJIY UXIANDAIHUA 总
8、第89期 1995-2005 Tsinghua Tongfang Optical Disc Co.,Ltd.All rights reserved.图1 系统硬件组成框图监控板对监控点实施数据采集与命令控制,本地机将监控板采集的数据以及监控板执行命令后返回的数据按一定格式进行打包处理之后,通过Internet网发送到远程机。远程机通过Internet网络向本地机发送控制命令,再通过串口线送与监控板执行此命令。监控板1和监控板2可同时分别监控设备的两个物理位置相距较远的部分,例如监控基站射频分系统时,由于基站射频分系统由室内和室外两个部分组成且实际使用时这两个部分物理位置相隔较远,因此基站射频分
9、系统监控电路就可采用两块监控板分别监控基站射频分系统的室外和室内部分。两块监控板都采用Atmel公司的单片机89C52作为主控芯片。2.1 监控板1该监控电路的组成框图如图2所示。图2 监控板1的电路组成框图2.1.1 监测原理该电路采用轮循工作方式,将采集到的24路模拟电压量(标准的05V电压),送到模 数转换器转换成相应的数字电压值,再送入单片机,单片机再将这些数据通过接口芯片转换为标准RS2422接口,经过传输线,再通过一个RS422RS232转换器转换成标准RS2232接口与另一块监控板相连,这块监控板再将数据通过RS-232接口送入本地机,远程机通过网线直接读取这些数据。2.1.2
10、控制原理该电路还负责电源的打开或关闭工作,单片机接到控制命令后通过继电器控制电源的开关动作。2.1.3 主要芯片主控芯片:主控芯片选用Atmel公司的AT89C52,内部有8kB字节的Flash程序存储器,免去了扩展外部存储器的麻烦,在系统开发过程中可以十分容易地进行程序的修改,缩短了系统开发的周期,而且还可以随用户的需要和发展对程序进行修改或升级,使系统不断地满足用户的最新要求。AD转换:AD转换选用的是转换较快、精度较高的ADC0809。片内含有8路模拟开关,可以允许8路模拟量分时输入。看门狗:为提高系统的可靠性,该系统设计了由硬件 与 软 件 组 成 的“看 门 狗”。硬 件 看 门 狗
11、 由IMP813L及其外围电路组成,同时还具有看门狗定时器、电源监控和复位功能。继电器:选用的是北京科通的固态继电器JGX5FA型,输入回路与输出(负载)回路之间光隔离,并且输出端具有反接保护功能。串行通信:为了对所采集数据实时传送或连接远距离计算机,利用89C52的串行通信接口的标准异步通信方式,通过接口芯片SN75176转换为标准RS-422接口,经过传输线,再通过一个RS422RS232转换器转换成标准RS2232接口与计算机相连。2.2 监控板2该监控电路的组成框图如图3所示。图3 监控板2的电路组成框图2.2.1 监测原理该监控电路采用轮询方式,将采集到8路模拟电压量(标准的05V电
12、压)送到模 数转换器AD7824转换成相应的数字电压值后,与采集到的28路数字信号一起送入单片机,本地机通过串口读取这些数据,远程机再通过网线直接读取数据。2.2.2 控制原理本地机接收到监控中心主控微机的命令后,将命令转换成合适的信号形式去控制被监控设备。2.2.3 主要芯片主控 芯 片:主 控 芯 片 仍 选 用Atmel公 司 的AT89C52。IO扩展:鉴于单片机的IO资源比较有限,所以在实际应用时不得不使用扩展的方法,以增加IO口的数量,提高IO口的功能。本监控板选用的是Intel公司的微处理器配套的通用可编程的并行IO扩展接口芯片8255A。8255A通用性强且使用灵活,工作方式的
13、确定和改变用程序以软件方法实现,可与MCS-51单片机系统总线直接接口。扩展EEPROM:主控芯片89C52片内的8kB程序存储器容量尚未能满足要求,因此选用了Intel公司的EEPROM2864A作为外部扩展的程序存储器。EE2PROM2864A是8kB8位电可擦电可编程的只读存912003年第1期 王利华等:基于TCPIP协议的远程配置与监控系统 1995-2005 Tsinghua Tongfang Optical Disc Co.,Ltd.All rights reserved.储器,在写入时能自动完成擦除,且不需要专门的编程电源,可直接用系统的+5V电源。AD转换:选用的是四通道LC
14、2MOS高速8位AD转换器AD7824。看门狗:看门狗仍选用IMP813L芯片。3 系统的软件组成远程机发出控制命令,本地机通过网络接收此控制命令,然后将此命令通过串口线传送给监控板1,监控板1的单片机根据命令进行判断,如果是监控板2的,就将此命令发送给监控板2,否则自己执行命令。本地机还要将接收的两块监控板采样的数据以及执行命令后返回的数据发送给远程机,远程机接收到这些数据之后就可以得知设备当前的工作状态和工作参数,并可以判断单片机是否执行了此命令。因为本系统采用的是ServerClient模式,所以软件分为两个部分,即本地机Server部分和远程机Cli2ent部分。3.1 本地机部分采用
15、的是Linux操作系统下的C语言编程,并作为服务器Server端。Linux系统网络服务器模型主要有两种,即并发服务器和循环服务器。所谓并发服务器是指服务器在同一时刻可以响应多个客户端的请求;循环服务器是指服务器在同一时刻只可以响应一个客户端的请求。本系统选用的是多路复用IO并发服务器。一般来说,当向文件读写时,进程有可能在读写出阻塞,直到一定的条件满足。比如从一个套接字读数据时,可能缓冲区里面没有数据可读(通信的对方还没有发送数据过来),这个时候读调用就会等待(阻塞)直到有数据可读。如果不希望阻塞,可以选择用select系统调用。只要设置好select的各个参数,那么当文件可以读写的时候,s
16、elect会“通知”说可以读写了。有了IO复用,就可以在进程睡眠的状态下实现对多个套接字描述符的检测,任何一个套接字描述符上发生事件时,由Linux系统去唤醒进程,这样就节省了大量的CPU资源。算法流程如下:socket(.);创建一个TCP套接字bind(.);绑定公认的端口号listen(.);倾听客户端连接signal(SIGCHLD,sig child);处理僵尸进程while(1)开始并发接收客户端连接accept(.);接收一个客户端连接if(pid=fork()=0)创建子进程fd3=open(.);打开读写串口,并设置监听读写文件描述(fd3)while(TRUE);子进程开始
17、处理某个客户端的连接retval=select(.);调用select函数if(retval 0)如果有数据要读if(.)如果数据来自远程机端read(.);process(.);write(.);if(.)如果数据来自监控板端read(.);process(.);write(.);else if(retval 0)如果select错误perror(.);exit(.);else 没有数据可读.close(.);关闭子进程处理的客户端连接exit(.);终止该子进程close(.);父进程关闭连接套接字描述符,准备 接收下一个客户端连接其中几个重要的模块有:僵尸进程处理:void sig ch
18、ild(int signo)僵尸进程处理:调用的子进程在终止时不会变成僵尸进 程,调用进程也不用等待子进程返回并做相应处理pid t pid;int stat;pid=wait(&stat);return;打开串口:open serial port for readingread ttys fd=open(SERIALPATH,SERIAL MODE READ);if(read ttys fd 0)perror(open error);exit(SOMETHING ERROR);setattr ttys(read ttys fd,TRUE);调用函数 setattr ttys()open se
19、rial port for writingwrite ttys fd=open(SERIALPATH,SERIAL MODE WRITE);if(writettys fd 0)perror(open error);exit(SOMETHING ERROR);02计 算 机 与 现 代 化2003年第1期 1995-2005 Tsinghua Tongfang Optical Disc Co.,Ltd.All rights reserved.setattr ttys(writettys fd,FALSE);调用函数调用的函数setattrttys()如下:setattr ttys(int tty
20、s fd,int rw)struct termios oldtio,newtio,oldstdtio,newstdtio;if(rw)set attribute for readingtcgetattr(ttys fd,&oldtio);保存目前设置bzero(&newtio,sizeof(newtio);设置波特率,硬件流控和8 n 1(8 bit,no parity,1 stopbit)newtio.ccflag=B9600|CRTSCTS|CS8|CLOCAL|CREAD;newtio.c iflag=IG NPAR;newtio.c oflag=0;newtio.c lflag=0;n
21、ewtio.cccVMIN=UNIT SIZE;设置控制字符newtio.cccVTIME=0;tcflush(ttys fd,TCIFLUSH);tcsetattr(ttys fd,TCSANOW,&newtio);else set attribute for writingtcgetattr(ttys fd,&oldtio);bzero(&newtio,sizeof(newtio);newtio.ccflag=B9600|CS8|CLOCAL|CREAD;newtio.c iflag=IG NPAR;newtio.c oflag=0;newtio.c lflag=0;newtio.cccV
22、MIN=UNIT SIZE;newtio.cccVTIME=0;tcflush(ttys fd,TCIFLUSH);tcsetattr(ttys fd,TCSANOW,&newtio);return 0;3.2 远程机部分采用Windows操作系统下的VB6.0语言编程,并作为客户Client端。远程机作为客户端,选用Winsock控件与Linux系统网络服务器建立连接,并通过传输控制协议(TCP)进行数据交换。最后将此应用程序作为一个Web文档使用,即建立ActiveX文档。此应用程序采用的是多文档界面(MDI),创建了三个窗体模块,分别为:MDIForm1.frm,change.frm以及
23、manager.frm。MDIForm1.frm模块:是设置用户界面的,允许同时打开多个文档,每个文档都显示在自己的窗口中。Change.frm模块:是进行远程配置的,利用Win2Sock控件与Linux系统网络服务器建立连接,并通过TCP协议发送命令。其程序的实现过程如下:(1)设置Remotehost(Linux系统服务器)的属性,以便指定运行服务器程序主机的IP地址;(2)设置RemotePort属性,以便指定服务器程序的监听端口;(3)使用Connect方法,向服务器提出连接请求;(4)服务器接受客户机程序的请求,客户机程序产生Connect事件,就可用SendData方法发送数据了;
24、(5)如果接收到Close事件,则用Close方法关闭连接。Manager.frm模块:用来接收Linux系统网络服务器发送的数据,这些数据包括室外单元监控器和TRX监控器两块监控板采样的数据以及监控板执行完命令后返回的数据,利用WinSock控件与Linux系统网络服务器建立连接,并通过TCP协议接收数据。4 系统的验证将该系统应用于武汉汉网高技术有限公司的全IP移动通信系统中远程监控基站的工作状态和运行情况,并远程实时配置基站的工作参数,发现本系统稳定可靠,并且执行命令迅速。5 结束语本系统可以方便灵活地满足不同情况的需求,如果被监控设备需要监控两个部分,且两个部分物理位置相隔较远,可以两
25、块监控板都采用,而如果需要采集的数据不多,可以酌情只用监控板1或者监控板2,此时软件部分是毋须任何变动的,并且可以通过采用或去掉RS232RS422转换器来选用不同的接口(RS422或RS232标准接口)。本系统不仅可以应用在基站、银行或仓库等重要部门中,还可应用于远程医疗、维护和教学以及家庭监控等场合,因此这种基于TCPIP的远程配置与监控系统有着广泛的实用价值和社会效益。参考文献:1 徐维祥,刘旭敏.单片微型机原理及应用M.大连:大连理工大学出版社,1998.2 李大友,姜秀芳.单片微型机硬件、软件及应用M.北京:高等教育出版社,1994.3 邹思轶.嵌入式Linux设计与应用M.北京:清华大学出版社,2002.4 毛曙福.Linux C高级程序员指南M.北京:国防工业出版社,2001.5 天夜创作室.Linux网络编程技术M.北京:人民邮电出版社,2001.6 钱培德.中文Visual Basic 6.0傻瓜书M.北京:清华大学出版社,2000.122003年第1期 王利华等:基于TCPIP协议的远程配置与监控系统 1995-2005 Tsinghua Tongfang Optical Disc Co.,Ltd.All rights reserved.