关键词:以太网;W3100;智能终端
1 引言
TCP/IP协议是目前最流行的国际互联协议,它与以太网的结合称为以太网技术。以太网具有成本低廉、通信速率高、兼容性好[1]等特点,使以太网技术不仅在办公自动化领域得到应用,而且逐渐涉及管理网络、监控网络及现场网络等领域。
电力智能监控终端设备是对变电站和发电厂实现远程监视和控制的智能设备,其主要功能包括采集各种信息量和完成对设备的控制。为保证电网的状态真实、快速地反应开关量的变化,以太网被应用于电力系统调度自动化系统中以提高通讯速率,突破信道瓶颈是其中的一个趋势和必然要求。但目前的监控终端设备大多数为单片机系统,在实现以太网互联时存在一定的困难。解决这一问题有以下几种方案:一种方案是采用高档的MCU和RTOS,在嵌入式操作系统中完成TCP/IP协议的处理。采用高档的MCU可以实现很多复杂的处理,但价格较高,需要同时购买昂贵的RTOS软件,且开发周期长、难度大;另一种方案是采用第三方的以太网协议转换设备,通过RS232C与转换设备通讯,由转换器完成数据封装和协议转换,其缺点是通信速率受限,系统无法对以太网进行控制;第三种方案是在设备的基础上增加专用的网络协议转换芯片以实现以太网互联,即本文介绍的采用W3100和以太网控制芯片的方案,其特点是占用系统资源少、编程方便、开发周期短。
2 W3100简介
W3100是WIZnet公司专门为以太网互联和嵌入式设备推出的TCP/IP协议栈芯片。W3100能够实现TCP、UDP、IP Ver.4、DHCP、ARP 和ICMP 等协议,同时,网络接口层包括MAC子层和DLC子层,也在该芯片中实现。它能同时提供四路网络连接,内建16K双口RAM作为数据缓冲区,支持全双工模式,协议处理速度可达4~5Mbps,并且带有标准的MII接口,方便连接以太网接口芯片。WIZnet公司还提供了Socket API程序包,可以加速应用程序的开发。
3 硬件原理
3.1 系统硬件框图
基于以太网的电力智能终端设备[5]的基本功能包括开关量信号采集、模拟量数据采集、输出开关量及与上位机系统进行高速通讯。系统硬件框图如图1所示。
图中上半部分是主处理模块的实现原理框图,包含RAM、FLASH ROM、RTC、WatchDog、SJA1000、W3100及串口通讯转换等电路。系统采用了Philips公司生产的80C51 XA十六位微控制器中的S3系列,它对八位控制器的基本结构进行了彻底改进,具备执行速度快、支持C语言及多种RTOS(实时多任务操作系统)等特点[2]。图中RTC部分为配置的精度为10毫秒的时钟芯片,可以保证系统中的各种日志具备精确的时标,以便于调度自动化系统分析故障。WatchDog电路可以实现在强干扰的环境中,系统程序发生异常或电源波动时,对系统进行复位。本文3.2节将介绍以太网接口的设计。
DIM(数字量输入模块)负责采集变电站内各种开关设备的状态。其输入为空节点,可以实现单点、双点和瞬动信号处理。AIM(模拟量输入模块)负责采集站内各种模拟量,由于采用强隔离设计,其输入信号可兼容电压和电流两种形式。DOM(数字量输出模块)实现开关量输出功能,其空节点可以实现对站内可控的开关、刀闸或风机等的控制。以上各种功能模块内部均设计了现场总线接口电路,整个系统基于CAN BUS总线。CAN BUS总线具有通讯方式灵活、节点分优先级、采取“CSMA/CD”仲裁技术及通讯距离长、速度高、通讯介质灵活等特点,尤其适合应用于实时监控系统[3,4]。
3.2 W3100接口原理
系统中应用W3100作为以太网协议转换器,采用RTL8201作为以太网控制器,RTL8201能够实现所有的物理层功能,是一款应用最为广泛的以太网控制器。系统采用Direct Bus I/F的工作方式,并且可以通过设置改变网络速率,它们共同完成系统的以太网通讯功能。原理图如图2所示。
4 软件设计
4.1 W3100建立联接过程
W3100提供与Windows类似的Socket API接口函数,因此易于实现对其设置和收发操作。本设计中,TCP/IP为服务器端。图3为Socket的建立过程。
4.2 软件实现
1) 初始化W3100
初始化W3100时,应首先对其进行硬复位,然后设定MAC地址及IP,最后初始化SOCKET接口。
ResetEthernet(); //硬复位W3100
InitW3100A(); //初始化W3100
InitNetConfig(); //配置以太网卡参数
InitSocket(); //初始化SOCKET
2) 中断服务程序
根据W3100的使用手册,在系统中提供一个硬件中断作为W3100的中断输入,在中断服务程序中记录状态值。代码如下。
_interrupt(INT_PCA0) _using(INT_PCA0_PSW)
{
u_char status;
status = INT_STATUS;
while (status)
{
if (status & 0x01) {
S_STATUS[0] = STATUS(0);
INT_STATUS = 0x01;
}//第1、2、3类似处理
if (status & 0x10) {
S_STATUS[0] = STATUS(0);
INT_STATUS = 0x10;
}//第1、2、3类似处理
status = INT_STATUS;
}
INT_STATUS = 0xFF;
}
3) 收发数据
设计一个任务定时10毫秒进行数据收发处理,其过程如下。
SOCKET i;
INT len;
WORD TSCKNUM = 2404;
for (i = 0; SockNo < 4; SockNo++)
{
switch (Select(i, SEL_CONTROL))
{
case SOCK_ESTABLISHED:
if ((len = select(i, SEL_RECV)) > 0)
{
if (len > MAX_BUF_SIZE) len = MAX_BUF_SIZE;
len = recv(i, data_buf, len);
send(i, data_buf, len);
}
break;
case SOCK_CLOSE_WAIT: if ((len = select(i, SEL_RECV)) > 0)
{
if (len > MAX_BUF_SIZE) len = MAX_BUF_SIZE;
len = recv(i, data_buf, len);
}
close(i);
break;
case SOCK_CLOSED:
init_sock(i);
break;
}
}
5 结束语
在设计与实现电力智能监控终端过程中,应用W3100作为以太网协议栈转换器具有接口简单、编程方便、通讯速率高、工作稳定等特点,能够简化设计难度、加快设计进度,因此W3100在快速实现网络化的设计中具备良好的应用前景。本文以成熟的应用技术为基础,增加了硬件协议转换器,减少了开发风险,缩短了开发周期,提高了产品的应用水平。该电力智能监控终端系统已经产品化,累计创造了1000万元产值。
本文作者创新点:以成熟的应用技术为基础,增加硬件协议转换器,减少开发风险、缩短开发周期,提高了产品的应用水平。
参考文献
[1] 杨鹏等. 工业以太网的发展及其技术特点,微计算机信息[J],2006,22-4:32-24.
[2] 邬宽明. 80C51 XA十六位为控制器系统设计、器件和应用开发[M],北京航空航天大学出版社,1996.
[3] 王毅锋,李令奇. SJA1000在数据采集与控制系统中的应用,微计算机信息[J],2001, 17-4 7:16-18.
[4] 史久根,张培仁,陈真勇. CAN现场总线系统设计技术,国防工业出版社,2004.
[5] 刘家军.微机远动技术,中国水利水电出版社,2001.