基于W5100的远程控制器设计
扫描二维码
随时随地手机看文章
摘要:设计了一种基于硬件TCP/IP协议栈芯片W5100的嵌入式以太网远程控制器,给出了其详细的系统设计方案,实现了对核测量以及粒子加速器控制领域的RS 232/RS 485串行接口设备的远程控制。采用该控制器可灵活、稳定、可靠地构建分布式控制系统,而且可以根据实际需要进行系统扩展。
关键词:W5100;TCP/IP硬件协议栈;串行接口
0 引言
在核测量以及粒子加速器控制领域,经常用到的都是带有标准RS 232/RS 485串行接口的设备。比如在国家大科学工程——兰州重离子加速器冷却存储环(HIRFL-CSR)的真空控制系统中,沿着束流管道排满了各种真空支持设备,有粒子泵电源、分子泵、钛升华泵、阀门、真空计等,这些设备一般带有标准的RS 232/RS.485串行接口,以便于同计算机接口通信来实现自动控制,并且能在环境辐射、无人监护的情况下长期工作。为了使这些设备能够在统一的管理下正常工作,传统的方法是在工作现场安置工控机,通过外加PCI形式的多串口卡,并通过工控机的网络接口实现TCP/IP组网,实现现场所有设备的统一管理。但是这种方法不仅成本太高,而且维护工作量也很大。为此设计了一种
基于硬件TCP/IP协议栈芯片W5100的通用型远程控制器,可以简单、快捷、低成本地完成远程测控任务。
1 总体设计
作为一个大型的测控系统,通常由多个子系统来构成。为了实现统一的远程设备管理,应该采用分布式控制系统来设计,使用户通过TCP/IP协议集中远程访问和控制各个现场分散的运行设备。因此,设计了一种基于W5100的TCP/IP远程控制器,它能够完成TCP/IP协议与现场RS 485总线之间的协议转换,同时利用嵌入式MCU自身硬件资源可本地控制一路标准的RS 232接口设备,而且可以通过温度传感器对工作环境温度实施监测。控制系统的总体设计方案如图1所示。在控制中心放置一台计算机作为子系统的控制终端,通过交换机与每一个W5100网络控制器相连接。W5100网络控制器都设置有惟一的IP地址,不仅可以连接一台标准的RS 232串行接口设备,同时也可以完成现场RS 485串行接口总线之间的协议转换。
1.1 控制器的硬件设计
传统的嵌入式Internet系统设备基本上全部是采用软件方法来实现TCP/IP协议栈。用软件设计TCP/IP协议栈对开发人员软件能力要求很高,要求对操作系统和TCP/IP协议有一定程度的熟悉,并且高档微控制器和实时操作系统的价格也很高;另外,由于网络协议都比较大而且复杂,写入软件后稳定性欠佳。因此直接采用硬件TCP/IP协议芯片(W5100)实现组网方案,具有设计简单、灵活的特点,并且不需要实时操作系统的支持。
W5100高度集成了成熟的TCP/IP协议栈、以太网MAC层,PHY层等,支持TCP,UDP,IPv4,ICMP,ARP,IGMP和PPPoE等协议,这些协议已经在很多领域经过了多年的验证。它支持4个独立的socket通信,内部16KB的发送/接收缓冲区可快速进行数据交换,最大有效通信率可达到25 Mb/s。使用W5100不需要考虑以太网的控制,只需进行简单的端口(socket)编程,同访问外部存储器一样简单。它提供两种并行总线接口(直接总线和间接总线)以及串行SPI接口,W5100大大减少了硬件接口设计和网络编程的工作量,并且可以实现可靠稳定运行的远程数据通信系统。
基于W5100的远程控制器主要由微控制器ARM7,温度传感器DS18B20,W5100网络接口芯片,RS 232,RS 485以及RJ-45接口等芯片组成。微控制器ARM7采用的是飞利浦的LPC2131,它是32位微处理器,采用冯·诺依曼结构(数据和指令混合编址),并且内核采用的是ARM7TDMI-S核。LPC2131具有如下特性:8 KB片内SRAM;32 KB片内FLASH,128位宽度接口/加速器实现高达60 MHz的操作频率;8路10位A/D转换器;2个32位定时器(带4路捕获和4路比较通道),PWM单元(6路输出)和看门狗;2个UART,2个高速I2C接口(400 Kb/s),SPI,SSP;通过向量中断控制器,可配置优先级和向量地址。
由于LPC2131所具有的特性以及它较小的封装(LQFP64)和极低的功耗使LPC2131可以理想的应用于小型系统中,如通信网关、协议转换器和工业控制等。远程控制器的硬件设计原理框图如图2所示。在设计中,LPC2131与W5100通过SPI接口进行连接,LPC2131作为SPI主设备,W5 100作为从设备,并由LPC2131为W5100提供时钟信号。LPC2131通过RS 232接口与本地的设备实现通信和控制,同时通过RS 485接口实现TCP /IP协议与现场RS 485总线之间的协议转换。DS18B20温度传感器可以实时监控本地工作环境的温度变化,如果现场工作环境温度过高或者过低,则可以通过TCP/IP网络向远程的控制中心报警。
1.2 控制器的软件设计
本系统基于ADS 1.2平台开发,采用C语言和汇编语言混合编程完成固件程序的编写,并完成了在现场环境下的调试,最终实现了基于W5100的远程控制器软件设计。系统软件采用模块化的设计思想,把程序化繁为简,便于程序的设计、调试及维护。整个软件系统主要包括初始化模块、TCP/IP模块和RS 232/RS 485接口处理模块等。
1.2.1 初始化模块
初始化模块主要对控制器LPC2131和W5100进行初始化。LPC2131初始化主要包括启动初始化、时钟、I/O、串口以及SPI接口的初始化设置等,使LPC2131工作在SPI主设备状态,W5100工作在从设备状态。W5100初始化包括W5100工作模式、中断向量、IP地址、网关地址、子网掩码、物理地址、超时值等相关设置,并通过对套接字寄存器初始化来设置W5100的4个独立的网络通道。在该控制器设计中,采用的是客户端/服务器模式,通过初始化设置,使W5100工作在服务器模式下,等待远端控制终端的连接。
所以,通过设置W5100内部的控制寄存器,完全可以像在局域网中配置IP地址一样简单地配置设计的系统,通过灵活创建和选择TCP或者UDP套接字来完成网上的数据交换。
1.2.2 TCP/IP网络模块
TCP服务器模式程序流程图如图3所示。首先通过初始化模块初始化W5100,并创建一个socket,把socket和本机的IP地址和TCP端口绑定,然后侦听端口;下一步进入循环等待状态,如有客户端连接请求,则接受客户端连接要求;同时接受客户机发来的数据,产生系统中断,进入到接收中断处理进程;如果在发送缓冲区有数据要发送,则在客户端连接成功后,进入发送数据处理进程;最后如果接收和发送数据均已经完成,就进入关闭端口进程,关闭socket,通信终止;在整个的TCP网络通信过程中,如果产生超时中断,则直接关闭通信端口。 TCP/IP模块的主要功能是对网络数据的接收和发送。通过初始化模块的设置,将W5100设置为服务器模式,通过socket编程,实现了远程控制器的客户端/服务器工作模式。
1.2.3 RS 232/RS 485接口处理模块
RS 232/RS 485接口处理模块由数据编码/解析子模块和RS 232/RS 485接口子模块组成。数据编码/解析子模块的主要任务是完成对网络接收来的数据进行解析并按设备通信格式进行编码,同时将从RS 232/RS 485接口设备获得的数据解析并编码成为标准的TCP/IP信息包,传送给远程的控制终端。RS 232/RS 485接口模块实现了与本地RS 232标准接口设备数据的交换功能以及完成了TCP/IP协议与现场RS 485接口总线之间的协议转换。
依托W5100完善的TCP/IP协议处理功能,使LPC2131在没有操作系统的支持下可介入Internet网络,实现了对RS 232接口和RS 485接口总线数据转换的功能。
2 结语
基于LPC2131微控制器和W5100网络芯片设计的带有标准RS 232/RS 485接口和标准以太网接口的远程设备控制器,它通过标准RS 232/RS 485接口与被控设备进行连接,并通过以太网接口接入到控制网络中去,从而实现了分布式控制系统的网络远程控制。采用该控制器构建的分布式控制系统具有灵活、廉价、稳定、可靠、且容易进行系统扩展的特点。