"); //-->
本文的创新点就是用微处理器实现了在科研试验当中对前端网关的智能复位控制,消除了几年来HIRFL-CSR试验阶段由于前端网关死机迫使科研工作人员到
|
在束流调节的过程中因为控制系统操作平凡,实时性要求高,网络上的数据量大大增加,致使前端网关要吞吐电源控制模块的大量数据;另外,前端网关和电源控制模块与强电控制系统在电器上发生连接,前端网关和电源控制模块微系统有时受到强电控制系统影响,这样就增加了前端网关死机的可能。中心控制室的束流调节人员在调节束流的过程中如果发现前端网关死机,就必须到现场复位网关后调节束流的工作才能顺利进行,这样对于调节人员来说,既费时又费力,工作效率受到影响。为了提高调束效率,减轻调节人员的体力劳动,我们设计并实现了HIRFL-CSR 束流注入线网关远程复位系统,使束流调节人员在中心控制室的计算机上用鼠标很快就可以复位前端网关,提高了束流调节效率。
图1
该网关远程复位系统主要由AT89C51单片机硬件电路、复位网关、AT89C51单片机信号处理程序、控制室界面应用程序组成,其系统结构示意图如图1。
1 硬件结构与原理
1.1 单片机硬件电路
单片机硬件电路分为:信号转换电路、AT89C51单片机、隔离电路、继电器电路等。
信号转换电路是全双工工作的,其功能主要有两个:一是用来将复位网关发送过来的MAX485信号转成AT89C51单片机P3口可接收的RS232信号,然后由AT89C51根据信号进行处理再通过P2口选择相应的继电器复位相应的网关;二是由另外一片MAX485把AT89C51的P3口送来的信号转换成复位网关接收的MAX485总线信号。
|
AT89C51是一种低功耗,高性能CMOS8位微控制器,具有4K字节闪存,可编程可擦除存储器。该微控制器采用Atmel高密度,非易失性存储器制造技术,与工业标准的MSC-51指令集和I/O管脚相兼容,其编程开发软件可用Keil uVision2,编程方便、效率高。AT89C51为很多嵌入式控制应用提供了非常灵活而又价格便宜的方案,它的主要性能有:4K字节的闪存,128字节的RAM,32个I/O口,2个16位的定时器,5个两极中断源结构,1个全双工串行口,片内振荡器和时钟电路。由于AT89C51性价比高,因此我们用AT89C51来实现复位硬件电路的微处理器。
本系统中的AT89C51单片机主要对接收到的信号实现智能处理,然后通过向P2口传送信号选择继电器完成复位操作。因为单片机P2口外部输出隔离电路采用集电极开路的光电隔离器件,继电器电路采用上拉电阻和光电隔离器件串接,所以内部P2 口寄存器某位置0时外部相应继电器电路不导通,前端网关处于正常工作状态,当内部P2口寄存器某位置1时外部相应的继电器电路导通,继电器导通3秒,相应的网关断电3秒复位,复位成功后单片机通过P3口向网络返回复位成功信息。
1.2 复位网关
复位网关的主要功能是完成中心控制室应用程序和AT89C51单片机硬件电路模块的连接。因为该网关与AT89C51电路模块之间的数据吞吐量非常小,而且AT89C51电路模块与电源之间没有在电器上连接,避免了强电控制电路对单片机系统的严重干扰,从而复位电路的稳定性和可靠性得以保证。一块复位网关可以扇出数块复位电路,一块复位电路至少可以复位8块网关,所以一块复位网关可以管理数十块前端网关的复位工作,同时复位网关和AT89C51电路之间采用MAX485总线,因此AT89C51单片机硬件电路可以分布在较大范围的位置来复位分散布局的网关。
2 软件描述
2.1 AT89C51单片机程序
AT89C51单片机信号处理程序是用Keil uVision2编写,程序主要采用查询方式工作,可消除乱麻,被消除乱麻位数可以自己定义,输入命令出错时可重新输入,单片机操作成功后可返回成功信息。整个程序的流程图如图2所示。
该单片机的程序首先加入“stdio.h”、“at89x51.h”头文件,主要用来定义AT89C51的寄存器和调用系统库函数,其次声明一个延时函数和寻址函数,延时函数主要用来控制复位时间的长短,寻址函数主要用来识别网络上单片机电路馍块编号,当AT89C51程序检测到网络上出现自己的命令时,就继续执行程序进行相应的复位操作,否则当逐个识别到不是自己的命令时,就会马上消除缓冲区的字符,重新获取网络上的命令。采用这种查询方式工作的单片机当总线上出现乱码数据的时候,不会发生误操作,因为只有输入命令的字符和顺序都符合被定义的命令格式时才能够成功输入命令,完成相应的复位操作,错一个字符就得重新输入,这样的程序结构比起单纯的查询输入不仅能够消除网络上传送过来的乱码,而且当输入命令错误时,立即可以重新输入,避免了单纯查询方式的输入命令出错还必须得输完规定的字符才能重新输入的方式,提高了操作效率。
图2
2.2 控制室界面应用程序
控制室界面应用程序主要由VC 编写,核心是Socket编程。Socket是建立在传输层协议(主要是TCP和UDP)上的一种套接字规范,最初是由美国加州Berkley大学提出的,它定义两台计算机间进行通信的规范(也是一种编程规范),两台计算机之间利用一个“通道”进行通信,这个通道就是由通信两端的套接字组成。Socket屏蔽了底层通信软件和具体操作系统的差异,使得任何安装了TCP协议软件和实现了套接字规范的两台计算机之间通信成为可能。
大多数网络通信程序可分为两类:服务器端和客户端。由于复位网关是基于Linux操作系统的服务器端,所以本应用程序用Stream Socket创建基于Windows的中心控制室客户端服务应用程序。Stream Socket是面向连接的编程方式,它提供了一系列的数据纠错功能,可以保证在网络上传送的数据及时、无误地到达对方。本界面客户端应用程序的Socket编程模型如图3。
图3
本程应用程序首先用MFCAppWizard建立一个单文本对话框,其次在对话框里加入IP编辑框、端口编辑框、连接按钮用来连接复位网关;加入一些单选按钮,用来选择要复位的前端网关;加入一个编辑对话框,用来显示接收到的返回信息;加入复位按钮,给AT89C51发送复位命令。然后,给应用程序加入相应的CSocket类、函数、变量。程序编译完成后,就可以生成Win32 Release可执行文件,然后安装到中心控制室实现复位操作。应用程序操作步骤非常简单,当工作人员发现前端网关死机时,打开本应用程序,输入复位网关的IP和端口号,进行连接,复位网关连接成功后,可选择前端网关号,点击复位按钮,如果复位成功,编辑对话框出现复位成功的信息,工作人员很快可以继续调束。
参考文献:
何立民,单片机应用系统设计,北京航空航天大学出版社,1990.
李大有,姜秀芳。单片微型机硬件、软件及应用,高等教育出版社,1992
周荷琴、吴秀清,微型计算机原理与接口技术(第2版), 中国科学技术大学出版社.,2001
张硕成、等,光纤通信在HIRFL-CSR控制系统中的应用,微机算计信息,2005-9-1,25~26
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。