基于RS485通信的远程数据采集与控制系统设计

2016-10-21 07:50张明星唐文涛马雪芬
无线互联科技 2016年18期
关键词:通信协议模拟量总线

邓 鹏,张明星,唐文涛,马雪芬

(荆楚理工学院 电子信息工程学院,湖北 荆门 448000)

基于RS485通信的远程数据采集与控制系统设计

邓鹏,张明星,唐文涛,马雪芬

(荆楚理工学院 电子信息工程学院,湖北 荆门 448000)

文章设计了基于RS485通信的远程数据采集与控制系统。系统采用1个主机和3个从机的总线型主从式结构,主从机都采用STC89C52单片机为主控制器,主从机之间的通信电路通过1对双绞线连接,3个从机把温度、湿度、压力信号通过RS485总线传输给主机,主机对数据进行相应的处理。各从机都有唯一的地址字节,主机可通过寻址的方式查询从机设备并发送相应的命令,实现了对多路现场数据的实时采集和现场设备的控制,系统具有较强的拓展性和实用性,且造价较低。

RS485;远程数据采集;主从式结构;单片机

近年来,随着科学技术的进步和发展,数据采集和控制技术正在向全新的阶段发展,信息的采集与传输更加智能化、数字化和远距离化;在一些环境条件恶劣、异常危险的工业生产现场,如深井、对人体危害极大的强辐射空间,远程数据采集与控制系统能很好地取代人到现场进行数据采集的工作。RS485通信标准是工业生产中应用最为广泛的标准,以半双工方式进行通信,通信线路上允许接入的标准节点数为32个,某些收发器芯片允许接入128个节点,如MAX487等,传输距离可达1200m,且数据交换速率可达10Mbps。因此基于RS485通信的远程数据采集与控制系统的设计具有非常重要的现实意义。

1 系统的基本组成

主控机和从设备都以STC89C52为微控制器,从设备采集各路模拟信号并转换为数字量信号通过RS485总线发送给主控机,主控机接收各从设备采集的模拟量进行数据处理并进行显示,显示单元采用LCD12864液晶屏作为显示器。三路模拟量的采集分别用数字温度传感器DS18B20、数字湿度传感器DHT11和HL-8型电阻应变式压力传感器实现。按键单元由独立按键组成,实现对从设备选择以及继电器的控制。RS485总线由MAX485收发器芯片搭建。MAX485将TTL电平转换为RS485电平,这种以差分信号传输的方式,再加上差分放大器的作用,使得传输过程中的干扰和噪声相互抵消,传输距离和传输速率得到了很大的提升。系统的总体框架如图1所示。

图1 系统总体框架

2 系统硬件设计

2.1 RS485通信电路设计

系统中各从设备与主控机之间通过一对双绞线连接。在通信速率大于19.2Kbps或通信距离大于500m时,为了减少信号反射,一般在传输线终端连接120Ω的匹配电阻。MAX485与单片机接口电路如图2所示。

图2 MAX485与单片机接口电路

MAX485芯片的RO和DI引脚分别为接收器输出和接收器输入端,与单片机连接时需要与串口数据接收端RXD和串口数据发送端TXD相连;RE和DE分别为接收器和发送器的使能端,当RE为逻辑电平0时,芯片处于接收状态,当DE为逻辑电平1时,芯片处于发送状态;由于MAX485的半双工工作特性,使能端RE和DE的控制只需要单片机分配一个I/ O口进行控制;芯片的A和B两个引脚分别为差分信号接收和发送端,当逻辑电平A高于B时,代表发送的数据为1,当逻辑电平A低于B时,代表发送的数据为0。

2.2 LCD12864液晶显示电路设计

液晶显示单元在整个系统中实现简单的人机交互功能,可实现数字、字母、汉字以及各种图形的显示。D0—D7为指令和数据的输入输出端口,对应STC89C52单片机的P0端的8位I/O口。由于STC89C52单片机运行速度比液晶的反应速度慢,因此对液晶控制器进行读写操作之前可以不对液晶进行读写检测,但要注意的是必须在程序中进行简短的延时,保证读写操作使能状态位STA7为0。

2.3 模拟量检测电路设计

随着现代仪器的发展,微型化、集成化、数字化正成为传感器发展的一个新方向。本系统包括三路模拟量的检测,其中温湿度信号直接被转换为数字量,以单总线的形式串行输出,而压力信号经24位A/D转换芯片HX711转换并放大后才能对数据进行处理。

2.3.1 温度检测电路设计

温度检测采用DS18B20传感器,数据的输入和输出都通过DQ脚进行,为了保证数据传输的正确性,必须在数据脚DQ外接上拉电阻。当电源极性接反时,其负压特性可以保证芯片不会因过热而烧坏。

2.3.2 湿度检测电路设计

湿度检测采用DHT11传感器,它包括一个电阻式感湿元件和一个NTC测温元件,能同时采集温度和湿度两种模拟信号,系统只对湿度信号进行处理。为了保证数据的准确性,采样周期设置为2s。DATA为微处理器与DHT11之间的数据通信接口,采用单总线数据传输格式,一次传送40位数据,高位先出,数据传输格式(其中温湿度小数部分为0)为:8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验和。

2.3.3 压力信号检测电路设计

压力传感器是利用惠斯通电桥原理而设计的,当弹性元件受力而发生形变时,应变片电阻变化被转换为电势变化,由于此时电压差信号比较小,需要经过放大之后才能进行模拟量的采集。系统采用24位A/D转换芯片HX711对模拟量进行放大和采集。HX711有两路差分输入通道,可选增益分别为32,64和128倍,输出数据速率可选。系统模拟输入通道选择A通道,增益128倍,使用内部时钟振荡器,输出数据速率为10Hz。

3 系统软件设计

系统主机和从设备之间的通信模式采用异步串行方式1。方式1传送一个字符帧数据需要10位,其中1位起始位,8位数据位,1位停止位。对于STC89C52单片机来说,波特率可根据定时器1的溢出率设定。此串行方式下系统的通信波特率必须完全一致,才能保证主从设备之间的正常通信。整个系统的软件设计采用模块化的设计思想,即把程序分模块封装起来,方便主程序的调用,增加程序的可读性和移植性。

3.1 串口通信协议的设计

对于整个RS485远程数据通信系统,通信协议的设计是软件设计的前提和关键,对于通信协议来说,数据帧格式的设计是最重要的一部分,数据帧格式如表1所示。

表1 RS485远程数据通信系统数据帧格式

主控机的通信协议规则:系统初始化中设置RS485总线为发送状态,做好发送数据的准备;当按键扫描程序检测到按键被按下时,发送相应的地址字节和命令字节,当数据帧发送完之后,进行适当的延时并设置RS485总线为接收状态,做好接收数据的准备;进入接收状态以后,与从设备协议规则相同,在串口接收中断程序中完成数据的接收任务;退出中断服务程序之后,按键扫描程序继续检测按键是否被按下,如果被按下则设置RS485总线为发送状态,并发送相应的地址字节和命令字节,发送完数据帧以后,进行适当的延时并设置RS485总线为接收状态,继续接收数据。

从设备的通信协议规则:系统初始化中设置RS485总线为接收状态,做好接收数据的准备;从设备不断检测接收中断标志位RI的值,如果RI=1,立即进入串口接收中断程序,把接收到的所有数据进行缓存,并对接收到的字节数进行计数;接着判断接收到的首字节是否为帧头“0xaa”,如果是则继续接收数据帧,判断接收到的字节数是否大于6个字节,计算校验和并判断是否正确;如果没有接收到帧头,置RI=0,清除所有数据,退出中断接收程序;如果本机被呼叫,即主机发送的地址是本机地址,从机根据所接收到的命令,判断是继电器控制命令还是数据采集命令,如果是数据采集命令,设置RS485总线为发送状态,并把本机所采集到的数据发送给主机;数据发送完毕之后,进行适当的延时并设置RS485总线为接收状态,保证从设备能够继续接收下次命令,如果接下来主控机一直没发送命令,则从设备会不间断地把数据发送给主机,直到下次命令的到来。

3.2 主控机程序设计

系统主控机的程序设计是整个通信系统的核心,主要任务是选择设备并发送命令,对接收的数据进行处理和显示。主控机程序设计流程如图3所示。

图3 主控机程序设计流程

3.3 从设备程序设计

系统从设备程序设计包括数据采集程序、继电器控制程序、RS485通信程序和串口接收、发送程序。而模拟信号的采集即A/D转换部分的程序在设计中封装成模块,在主程序中调用即可。主要任务是接收主控机发送的命令,完成各路模拟信号的采集,并把数据发送给主机。从设备程序设计流程如图4所示。

4 系统调试

4.1 硬件调试

系统的硬件调试在整个设计中有着至关重要的作用,硬件调试的内容有:液晶显示屏模块、RS485通信接口模块、异步串行通信模块等。

4.2 软件调试

软件的调试是在硬件的基础上进行的,包括主控机和从设备的调试。软件的调试相比较硬件来说是比较繁琐和困难的,这方面的调试主要是编写程序烧录到单片机当中,根据观察到的现象逐步对程序进行修改。软件调试的难点是通信协议的调试,但在此之前,要对各个传感器模块进行独立测试,即不通过协议实现三路模拟量的采集。

4.3 整体调试

当硬件调试和软件调试都完成以后,就可以对整个系统进行调试,把主从设备通过RS485总线连接,并且把各个模块所对应的单片机程序烧录进去,对整机进行系统测试。通过软硬件的微调,系统工作正常。

5 结语

本文设计的基于RS485通信的远程数据采集与控制系统克服了传统RS232通信距离短、传输速率低的缺陷,系统终端设备可以完成温度、湿度、压力等模拟信号的采集。主从式的控制结构很好地解决了系统扩展问题,数据采集量大,实时性强。本设计创新点在于从设备的继电器控制既可从设备本身控制,也可由主控机直接控制,并且通信协议的设计更具通用性和规范性。

图4 从设备程序设计流程

[1]孙云霄,陈颖.RS485总线在数据采集中的应用[J].工矿自动化,2006(4):75-76.

[2]田亚芳,库详臣,李济顺,等.给予RS485的压力及位移数据采集系统[J].矿山机械,2011(8):135-137.

[3]苏晓龙,王香婷.基于RS-485总线的数据采集系统[J].仪表技术与传感器,2007(12):52-53,78.

[4]马东,王万岗,蒋强,等.基于RS485总线的温湿度在线监测系统[J].中国农机化学报,2013(2):121-125.

Design of remote data acquisition and control system based on RS485 communication

Deng Peng, Zhang Mingxing, Tang Wentao, Ma Xuefen
(Electronic and Information Engineering College of Jingchu Universuty of Technology, Jingmen 448000, China)

This paper designed a remote data acquisition and control system based on RS485 communication. The system adopts the bus master-slave structure of 1 host computer and 3 slaves, which all adopted STC89C52 MCU as the main controller, the communication circuit between master and slave computer is connected by a twisted pair. The 3 slaves transmitted temperature, humidity and pressure signal to the host computer through the RS485 bus, and the host correspondingly processed with data. The machine has a unique address byte, and the host can send corresponding commands by addressing queries from the machine, which realized the control of field equipment acquisition of multi-feld data, and the system has strong expanding property and practicability, and the cost is low.

RS485; remote data acquisition; master slave structure; single chip microcomputer

荆楚理工学院2016年校级科研基金项目;项目名称:电磁感应加热蒸汽发生器控制系统研究;项目编号:QN201604。项目名称:湖北省教育厅科技计划项目;项目编号:B2015243。项目名称:荆门市引导性科研项目;项目编号:YDKY2016027。

邓鹏(1981— ),男,湖北荆门,硕士,讲师;研究方向:交流电机控制,过程控制及智能仪表。

猜你喜欢
通信协议模拟量总线
基于PCI Express总线的xHC与FPGA的直接通信
基于FPGA的多通道模拟量采集/输出PCI板卡的研制
机载飞控1553B总线转以太网总线设计
基于Z-Stack通信协议栈的红外地温采集电路设计
基于DMX512通信协议的多路转发器设计与研究
关于600MW火电机组模拟量控制系统设计和研究
基于NS-3的PLC多频通信协议仿真平台设计与实现
模拟量输入式合并单元测试仪的研制
多通道ARINC429总线检查仪
一种通用模拟量及开关量信号采集板卡的设计