控制/MCU
引言:在工业生产和各种科学技术研究过程中,常常要对各种数据进行采集和处理,通常用的采集方式是在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时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。在与单片机连接时接线非常简单。只需要一个信号控制MAX485的接收和发送即可。同时将A和B端之间加匹配电阻,一般可选100Ω的电阻。
图-2 数据发送电路
图-3 “看门狗”电路
在数据接收端,手提电脑上的串行接口采用的是RS-232C电平,因此还需要将RS-485电平进行转换。由于在数据接收端采用的手提电脑需要携带方便,因此这里采用的是市面上比较小巧紧固的电平转换接口,这里就不做赘述。
2.3 主要的抗干扰措施
对MAX354的输入端采用隔离放大器进行信号隔离,采用隔离放大器的变压器将信号磁耦合 ,隔离了通路的线路连接,从而切断了干扰源。这样对压裂设备上发动机的干扰有了一定效果的屏蔽作用。
同时,为了防止单片机受干扰影响而发生“死机”等现象,系统还利用MAX706芯片设计了“看门狗”电路,提高了系统的抗干扰能力,如图-3。MAX706是一种性能优良的低功耗CMOS监控电路芯片,其内部电路由上电复位、可重触发“看门狗”定时器及电压比较器等组成。MAX706只要在1.6秒时间内检测到WCI引脚有高低电平跳变信号,则“看门狗”定时器清零并重新开始计时;若超出1.6秒后,WCI引脚仍无高低电平跳变信号,则“看门狗”定时器溢出,WDO引脚输出低电平,进而触发MR手动复位引脚,使MAC706复位,从而使“看门狗”定时器清零并重新开始计时,WDO引脚输出高电平,MAX706的RST复位输出引脚输出大约200毫秒宽度的低电平脉冲,使单片机控制系统可靠复位,重新投入正常运行。MAX706的控制只需要利用单片机的P1.5引脚通过简单编程实现。
3 系统软件设计
软件设计包括两方面:笔记本电脑的主机程序和单片机数据采集和发送的固件程序。其中,主机程序的编写可以利用VB语言编写,串口通信是通过 Microsoft Visual Basic的通信编程控件MSComm实现的。在读取完串口数据后,需要将每通道10次采集的数据进行数学平均计算,这样可以在一定程度上减小干扰数据的影响。
89C52的串行通讯采用工作方式1,波特率是9600bit/s,发送数据采用定时查询方式,可以根据需要适当调节发送数据的时间,定时周期性地读取存储的采样数据,以串行方式通过RS-485接口发送到上位机。程序采用可读性较强的C51语言编写,程序流程图见固件流程图-4。在编写89C52的程序时,需要对采样数据进行处理。由于采集的油温、油压、井口压力等数据与信号电压是线性关系,通过给定标准信号电压测量一个最大值和一个最小值,就能得出各种数据的信号电压与测量数据之间的比例关系。数据处理程序是根据线性比例关系,先将A/D转换器AD574 采集到的12位二进制数据转换成实际测量值,并将此值按照ANSI/IEEE标准754-1985转换成32位浮点数,保存在设定的存储区,总共有8组数据,需要32字节的空间来存储采样数据。
一个标准浮点数占用一个双字(32位)。最高位(第31位)位浮点数的符号位,最高位为“0”是为正数,位“1”时为负数;8位指数占23-30位;因为规定尾数的正数部分总是为“1”,只保留的尾数的小数部分(0~22位)。浮点数的优点是利用很小的存储空间(4B)可以表示出精确度很高的非常大和非常小的数,在进行数据处理和运算时提高了精确度。
图-4 单片机固件主程序流程图
4 结束语
该套数据采集系统在油田压裂设备上成功运用。实践证明,与传统的数据采集系统相比,该采集系统不仅轻便易携带,能有效防止现场环境的干扰,而且利用RS-485总线进行远程数据采集,将油井压裂作业过程中的压裂车的油温、油压、井口压力、泥浆密度,以及其它数据保存到笔记本电脑上,增强了数据的实时处理能力,工程技术人员能够及时分析数据结果,减少了在油井压裂作业过程中的事故率。
本人作者创新点:通过采用单片机进行数据采集便于携带,同时,通过RS-485进行远程数据传送,既能有效防止现场干扰,提高数据传输距离,又为设备进行基于RS-485总线传输的扩展奠定了基础,方便了通过一台手提电脑对多台总线节点的设备进行数据采集和监控。
全部0条评论
快来发表一下你的评论吧 !