0 引言
随着工业控制网络化的发展,要求现场终端设备的实时数据资料能够通过已经存在的局域网甚至广域网传输成为工业自动化的普遍需要。串口服务器是一种协议转换模块,它通过提供1、2、4、8或16口的RS-232或RS-422/485串口界面,以及1个10/100M的以太网接口,可以将RS-232或RS-422/485串行设备接入TCP/IP网络中而不需要更改控制程序,主计算机使用TCP/IP协议通过以太网访问被接入的终端设备。上位机采用Socket编程。
1 系统总体设计
1.1 设计思路
将经过传感器或变压器转变的标准电压或电流信号,进行A/D转换,变成数字化的数据,把这些数据通过单片机串口传送到串口服务器上,串口服务器将单片机发出来的数据包转换为以太网数据报文格式,转发到Internet上,从而实现数据网上传输,可以方便地通过网络从上层PC机进行实时监控。
1.2 系统总体结构
该系统硬件采用模块化结构,其系统总体结构如图1所示。该存储转发上网系统采集终端主要是由传感器,放大电路,光电隔离电路,采集电路,近端LED显示电路,串口服务器等模块组成。
其中,该系统数据采集终端为一单片机控制系统,通信口为RS232/485可选接口。
本系统中采用的串口服务器是嵌入式串口服务器DNE-18。DNE-18用TCP server方式来实现串口数据到网络口的转换。给DNE-18配置了唯一的IP地址和相应的端口号后,DNE-18开始侦听,若网络中有主机发起联接DNE-18会接受联接请求,并将网络口收到的从串口发出并将串口收到的数据从网络口以TCP/IP协议包送出。DNE-18不对用户数据包做任何解析或更改,提供完全透明的数据通道。
2 系统的软硬件构成
2.1 系统硬件框图
本系统的硬件设计核心部分是远程数据采集、存储转发的终端。其硬件框图如图2所示。其工作原理是:对温度传感器得到的信号进行处理,即信号放大、滤波、量化等处理过程。在此过程中需要考虑干扰信号的抑制、转换精度及线性等诸多因素。为了对模拟量输入通道消除干扰,加入隔离放大器ISO100。单片机AT89C52控制ADC0809进行数据采集。将采集到的信号分为两路进行处理。一路进行LED显示:即当A/D转换完毕后,单片机内存中保存有A/D转换的通道数,以及A/D转换后的数据。当一路转换完毕后,单片机读到模数转换数据后,从8255A中读通道路数,完成通道路数的显示过程。同理,当显示通道路数完毕后,然后显示A/D转换数据。另一路用MAX232芯片实现TTL与RS232电平之间的转换,将转换的数据送给串口服务器DNE-18。串口服务器就是把单片机发出来的数据包转换为以太网数据报文格式,然后转发到Internet上,实现数据网上传输。本文,重点介绍光电隔离模块以及串口服务器的应用模块。
1)光电隔离模块。由于模拟量输入信号一般都要经过放大后才能进行A/D转换,因此采用兼有放大和隔离功能的隔离放大器。隔离放大器的输入与输出端在电气上完全隔离。所用的隔离方法有变压器隔离和光电隔离两种。在本系统中采用的是线性光电隔离放大器ISO100,ISO100是美国B-B公司生产的一种小型廉价光电隔离放大器。它利用发光二极管LED与两个光电二极管进行耦合,一路耦合到输出端,一路反馈到输入端,构成负反馈,以提高放大器的精度、线性度和温度稳定性。
ISO100的工作电源为+18V,隔离电压为2500V,输入电流为1A,输出电压Vout=RifnI ,改变Rf即能改变增益。当输入为电压量,应串联电阻Rin,使输入电流在要求范围内。
ISO100构成的热电偶放大器的连接图如图3所示:
图3 光电隔离抗干扰电路图
2)串口服务器的应用模块。串口服务器是把单片机发出来的数据包转换为以太网数据报文格式,然后转发到Internet上,实现数据网上传输。串口服务器的输入口是单片机经过MAX232转换后的信号,输出口是RJ45接口。当串口服务器加电时候,PLED就会发光;当输出口RJ45与交换机或是PC正确连接时,LLED就会发光,当串口服务器准备就绪时,RLED就会发光。当对串口服务器进行IP地址和端口号,串行口工作方式正确设置后,串口服务器方能正常工作,才能进行串行数据与以太网数据包进行转换,才能把数据发送到Internet上的某个主机上。
需要说明的是,如果串口服务器的RJ45与计算机直接相连,需要使用交叉双绞线,即网线一端用568A标准,另一端用568B标准。如果串口服务器RJ45连接的是以太网交换机或是集线器,则使用直通线,即网线两端都用568A标准。
2.2 系统软件设计
系统软件框图如图4所示。它是由延时、数据采集、数码显示、十六进制转ASCII码、数据协议、数据发送等6个模块组成。
下面将各个模块的功能进行简单概述:
1)延时模块。本模块完成的功能为延时1s。利用定时器0溢出中断完成。
2)数据采集模块。每隔一秒对ADC0809中的一路数据进行采样,然后将其保存在数据缓冲区中。
3)数码显示模块。当ADC0809中与一路数据被采集完毕后,共阴级八段数码管显示当前ADC0809中通道路数,以及当前路数的数据值。
4)十六进制转ASCII码模块。本子程序完成的功能是把十六进制数转换为ASCII码。
5)数据协议模块。本程序完成的功能是将要发送的ASCII码数据实现帧封装,定义数据包的头和尾,以及中间分隔符,起始字符为“!”,结束字符为“#”。中间分隔符号为“+”,为方便上位机接收和存储单片机发送的采集数据。
6)数据发送模块。本程序完成的功能是将数据包发送到串口服务器上。
2.3 软件流程图
系统的工作原理是系统上电后的,首先进行初始化,包括设置波特率为9600bps,定时器工作方式,串行口工作方式,开定时中断等。然后对八路通道进行循环采集、显示,最后进行数据处理,将处理后的数据存入缓冲区,然后由串行口发送数据。流程图如图5所示。
3 结束语
本文所设计的方案,采用单片机和串口服务器,既可以完成数据采集,又可以将数据封装向Internet发送,电路结构简单,实用性强,非常适用于远距离、偏远地点的数据终端采集工作,是数据网络连接的一种可行性解决方案。
作者:张建平 曾小玲 重庆科创职业学院 来源:《机械管理开发》2010年02期