基于51单片机的便携远程多路数据采集系统
引言:
在工业生产和各种科学技术研究过程中,常常要对各种数据进行采集和处理,通常用的采集方式是在PC机或者工控机内安装数据采集卡,例如 A/D卡及RS-422卡、RS-485卡。采集卡易受机箱内环境的影响,以及计算机插槽数量和地址、中断资源的限制,不能挂接很多设备。尤其是在进行油井压裂作业时,因为压裂工作现场比较危险,而又同时需要对压裂时的各种数据进行采集和处理,以便进行远程实时监控,因此利用工控机进行远程数据采集处理,就难以满足远程数据传输和便携的要求。本文探讨一种基于单片机和手提电脑的远程数据采集系统,既可以进行远程数据采集,而且灵活轻便利于携带,同时也减低了设备成本。
1 主要芯片介绍
AT89C52是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes的可反复擦写1000次的Flash只读程序存储器。器件采用ATMEL公司的高密度、非易失性存储技术制造。AT89C52有128 bytes的On-Chip随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,1个6向量两级中断结构,3个16位可编程定时计数器,1个全双工串行通信口,片内时钟振荡器。此外,AT89C52还设计和配置了振荡频率可为0Hz并可通过软件设置的省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器、串行口、外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
AD574是美国模拟数字公司(Analog)推出的单片高速12位逐次比较型A/D转换器,内置双极性电路构成的混合集成转换芯片,具有外接元件少,功耗低,精度高等特点,并且具有自动校零和自动极性转换功能,只需外接少量的阻容件即可构成一个完整的A/D转换器,其模拟电压输人范围有四种:0- 10V和0-20V,0±5V和0-±10V,数据输出格式为12位和8位可选,本文采用12位数据格式,这样可以提高数据的精度。
MAX485接口芯片是MAXIM公司的一种RS-485芯片,它完成将TTL电平转换为RS-485电平的功能。采用单一电源+5V工作,额定电流为300μA,采用半双工通讯方式,数据传输率高达2.5Mbps。在一条RS-485总线上可以挂接最多32个MAX485收发器。这样可以通过编程利用一台手提电脑通过RS-485总线同时对多套该系统进行数据采集。
2 系统硬件设计
整个采集系统分为数据采集发送端和数据接收端。数据采集发送端主要由AT89C52单片机、AD574A A/D采样芯片、MAX354故障保护模拟开关和MAX485芯片构成,完成多路信号的采集和串行数据的发送功能。数据接收端由一个RS-485电平转 RS-232C电平的电路,以及一台便携式手提电脑构成。数据采集端和发送端通过一条屏蔽的双绞线电缆连接。
2.1 数据采样电路
采样电路由AD574和MAX354组成,在一个采样周期内,连续对8路输入数据按顺序进行一轮采样,采样电路与单片机的连接如图1所示。
图-1 数据采样电路
采用8通道故障保护模拟开关MAX354对采样通道进行选择,这可以通过89C52地址线A0,A1,A2来控制,信号通过模拟开关后被送到AD574的输入端。
AD574内部具有三态数据锁存器,可以和89C52单片机的P0数据口直接相连,它内部具有参考电压和时钟电路,因此无需任何元器件即可独立完成 A/D转换。A/D转换结束后,AD574向89C52的中断INT0发出中断申请,然后系统对转换后的数据进行处理。AD574的12/8端子固定接地,A0端口与89C52的地址线A7相连,这样在地址线A7的控制下分两次通过8位数据总线来读取l2位的转换结果。
2.2 数据发送与接收电路
为了避免在长距离的数据传输过程中,数据受到现场的干扰,该系统采用MAX485芯片将信号电平转换为RS-485电平,采用RS-485接口进行远程数据传输。RS-485是美国电气工业联合会(EIA)制定的利用平衡双绞线作传输线的多点通讯标准。它采用差分信号进行传输;最大传输距离可以达到 1.2 km;最大可连接32个驱动器和收发器;接收器最小灵敏度可达±200 mV;最大传输速率可达2.5 Mb/s。同时,RS-485协议正是针对远距离、高灵敏度、多点通讯制定的标准。这也为今后该数据采集系统进行多点数据采集的功能扩展奠定了基础。
MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可;/RE和DE端分别为接收和发送的使能端,当/RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B 时,代表发送
- 关于RTX51 TINY的分析与探讨(05-30)
- 浅析8051模块化编程技巧(05-28)
- 基于DSP和单片机通信的液晶显示设计方案(07-20)
- 锁相环控制及初始化简析(08-27)
- 基于MSP430自动胀管控制器的研究(09-07)
- 嵌入式C实现延时程序的不同变量的区别(03-01)