随着电子产品的广泛应用,各种电源设备被使用,而电源设备运行可靠与否直接关系到系统运行的安全性和准确性,因此对这些电源设备的检验非常重要。电子负载即针对电源系统中输出电能的设备或转换装置,如发电机、AC/DC、DC/AC变换器、蓄电池、整流器及电感、电容等部件的输出特性、可靠性(老化放电)进行全面测试的设备。现在广泛应用的电子负载存在许多不足,如只能工作在单机面板操作模式下,缺乏上位机监控功能,数据显示缺乏图形界面,显示不直观,人性化;测试过程必须全程有人员进行操作,无法进行编程控制测试;没有以太网络接口,无法进行远程通讯与控制。而基于网络的电子负载系统相对于传统电子负载系统有以下突出优点:
(1)测试工作在上位机集中进行,通过自动测试降低测试人员劳动强度,减少冗余人员,提高测试效率;
(2)便于及时、准确、全面直观、高效、连续地反映电源测试状态,利于科学管理;
(3)远程监控可长期保存大量工作数据,并以此为依据进行科学的测试分析。
目前,传统电子负载通常利用RS232,RS485或CAN等总线进行网络通讯。但这些网络的有效半径较短,并且孤立于Internet网络以外,无法采用现代化网络管理实现大范围高效率的远程监控。针对以上不足,文中采用三星公司高性能的ARM处理器S3C2440作为核心,开发了基于以太网电子负载监控系统,对于实现电源设备远程自动化测试有着重要意义。
1 监控系统的总体结构
电子负载监控系统是一个以ARM为核心的通讯网络。系统结构,如图1所示。
ARM在以太网通讯中作为服务器端构成网络上的一个节点,具有独立的IP地址,上位机作为客户端通过对不同IP地址的访问实现与网络上不同节点的ARM服务器通讯,连接或监控某个节点上的电子负载。上位机通过以太网发送给负载的控制命令由ARM网络控制器接收,再通过ARM网络控制器由RS232总线发送给电子负载。电子负载根据接收到的控制命令将被测电源的各种数据和负载工作的各个参数通过RS232总线上传给ARM。ARM将来自负载的数据采用TCP/IP协议通过以太网上传给上位机,ARM可以通过扩张串口连接多个负载,同时通过路由器扩展网络,实现多个ARM系统并行工作,提高整个监控系统的负载能力。
2 ARM网络控制器硬件设计
ARM系统硬件部分采用三星公司的ARM芯片S3C2440,S3C2440基于32 bit ARM920T内核,标称工作频率为400 MHz,配置一片64 MBytes Nand Flash和两片32 MBtyes SDRAM,网络芯片采用DM9000A,配置了MAX3232扩展串口与电子负载进行连接。结构图,如图2所示。
3 ARM网络控制器软件设计
ARM嵌入式网络控制器的操作系统采用WindowsCE 5.0,Windows CE 5.0是一个32位、多线程、多任务的操作系统,同时也是模块型的操作系统,可选择、组合和配置windows CE 5.0的模块和组件来创建用户版的操作系统。windows CE 5.0通过中断嵌套与优先级处理机制满足了测控系统的实时性要求,同时具有类似于桌面系统的人机界面和应用程序开发工具。
在windows CE 5.0的开发中。有两个重要的方面,一是内核定制,二是应用程序的开发。
3.1 Windows CE内核定制
由于应用环境的多样性,需要对Windows CE系统做不同的内核定制。采用微软公司的PlatformBuilder集成开发环境,针对电子负载网络监控的特点,添加、删除和修改某些系统模块,包括添加串口通信支持,以太网通讯支持,ActiveSync支持(软件调试时的通信支持)等。此外,注册表模式修改为HIVE模式,使掉电后数据的存放到Flash中保存实现程序的自启动,参数掉电保存等功能。
3.2 ARM端通讯软件开发
ARM网络控制器作为负载和上位机连接的桥梁,实现RS232总线和以太网的互联完成电子负载的远程网络监控功能。因此,ARM端通讯软件功能包括:与多个电子负载的串行通信;与上位机基于TCP/IP协议的通信,提供可视化界面显示当前网络连接参数和状态,用户可以通过触摸屏设置网络连接参数如波特率和IP地址等,系统提供连接日志供用户查阅。其中的核心功能是实现RS232总线和以太网的通讯互联,互联模块采用多线程的调用方式,保证了系统通讯的实时性。
通讯帧格式定义为长度26位,格式为:同步头,负载地址,命令字,4~25 bit为相关信息内容,校验码。
(1)同步头为AAH,占l bit;
(2)负载地址范围为0~FE,占1 bit,确定该帧发送的目标负载或接收源负载;
(3)命令字占1 bit,标示了该帧的功能;
(4)4~25 bit为命令参数和反馈参数。
套接字即Socket是支持TCP/IP协议的网络通信的基本操作单元。通过Socket编程,可以方便的访问TCP/IP开发以太网通讯程序。Embedded VC++中基于TCP的Socket编程的服务器端程序工作流程如下:
(1)创建套接字Socket();
(2)将套接字绑定到一个本地地址和端口上bind();
(3)将套接字设置为监听模式,接收上位机的请求(listen);
(4)等待上位机请求,当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字accept();
(5)用返回的套接字于上位机进行通信(send/reev);
(6)关闭套接字。
串口通讯在Windows CE环境下与桌面Windows环境下类似,通过CreateFile函数打开串口,ReadFile和WriteFile函数读写串口数据。
修改注册表使ARM系统上电后自动运行通讯软件:首先进行串口和以太网的初始化,对每个串口创建单独的接收线程和发送线程,Socket监听到上位机连接后,创建与上位机连接的数据收发线程。当串口的接收线程接收到数据时,触发相应的回调函数,调用Socket的发送线程把数据发送给上位机。当上位机发送数据给ARM服务器时,Socket的接收线程触发相应的回调函数,根据帧中负载地址,调用对应的串口发送线程向指定的目标负载转发数据。工作流程,如图3所示。
用户界面提供了各项通讯参数设置,服务器控制,系统连接状态显示,日志记录显示功能。使用Embedded VC++中的Remote Zoomin抓取的软件界面,如图4所示。
4 上位机监控软件设计
上位机监控软件采用Delphi作为开发环境,控制电子负载在不同的工作模式下运行如恒电流模式,恒电阻模式,恒功率模式等。依据电子负载的实时反馈数据,将整个工作过程中负载的电压、电流、功率等参数的变化以图像、文本等多种形式显示和记录,同时对负载瞬态运行数据进行综合分析,计算相关的性能指标。上位机作为监控网络中的客户端,采用Intelnet Direct(Indy)控件,Indy是一组开放源代码的Internet组件,采用阻塞通讯方式,为避免通讯环节中阻塞主线程工作,所以创建单独的接收线程实现网络通讯,软件工作流程,如图5所示。
上位机在初始化过程中按照设置的IP地址和端口范围对网络进行扫描,得到网络中ARM服务器的运行状态,将可用ARM服务器IP地址和端口返回。用户选择可用的目标ARM服务器完成负载监控系统的网络连接,实现上位机对负载的监控。上位机监控软件按照设定时间间隔向目标负载发送控制命令,如状态参数查询命令,负载接收到命令后发送返回数据,监控软件根据返回数据得到负载当前运行状态信息。
上位机监控软件采用多页面,对每个负载动态生成单独的监控界面,保证系统资源的有效利用。保留公共控制区域负载全局运行状态的显示和全局控制功能按钮,便于对全体负载运行状态进行观察并且完成多负载同步操作。监控软件工作状态;如图6所示。
5 结束语
文中提出了一种基于ARM的电子负载网络监控系统,给出了系统软硬件的结构,充分利用以太网的优势,实现灵活、可靠的通讯。本系统可以完成对整个电子负载系统的运行监控,弥补了当前市场上电子负载监控系统的不足。本系统已成功应用于某科研单位电源实验室的电源测试系统中,与传统系统相比,扩展了监控范围,提高了电源测试效率。