如何让单片机与远程PC机间实现通信建立一个远程数据采集系统?

控制/MCU

1820人已加入

描述

引言

随着工业控制网络化的发展, 要求现场终端设备的实时数据资料能够通过已经存在的局域网甚至广域网传输成为工业自动化的普遍需要。串口服务器是一种协议转换模块,它通过提供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) 延时模块。本模块完成的功能为延时1 s。利用定时器0 溢出中断完成。

2) 数据采集模块。每隔一秒对ADC0809 中的一路数据进行采样,然后将其保存在数据缓冲区中。

3) 数码显示模块。当ADC0809 中与一路数据被采集完毕后,共阴级八段数码管显示当前ADC0809 中通道路数,以及当前路数的数据值。

4)十六进制转ASCII 码模块。本子程序完成的功能是把十六进制数转换为ASCII 码。

5) 数据协议模块。本程序完成的功能是将要发送的ASCII 码数据实现帧封装,定义数据包的头和尾,以及中间分隔符,起始字符为“! ”,结束字符为“#”。中间分隔符号为“+”,为方便上位机接收和存储单片机发送的采集数据。

6) 数据发送模块。本程序完成的功能是将数据包发送到串口服务器上。

2.3 软件流程图

系统的工作原理是系统上电后的, 首先进行初始化,包括设置波特率为9600bps,定时器工作方式,串行口工作方式, 开定时中断等。然后对八路通道进行循环采集、显示,最后进行数据处理,将处理后的数据存入缓冲区, 然后由串行口发送数据。流程图如图5所示。

单片机

3 结束语

本文所设计的方案,采用单片机和串口服务器,既可以完成数据采集, 又可以将数据封装向Internet 发送,电路结构简单,实用性强,非常适用于远距离、偏远地点的数据终端采集工作, 是数据网络连接的一种可行性解决方案。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分