自来水管网的分布广泛,难以由人工完成大范围压力测量点的高频率和高精度数据记录。针对这一情况设计了基于SIM900A的无线远传压力表。该压力表能够实现压力的高精度测量,压力数据的等时间间隔采集、保存和无线远传。为了实现高精度的压力测量,设计了精度高、温漂小、噪声低、负载接地的恒流源,采用了24-bitCS5530模数转换器以相对测量的方式完成模数转换,利用了光耦隔离电路实现模拟电路与数字电路的完全隔离。最后单片机控制SIM900八模块与服务器之间建立基于GPRS的TCP连接,完成压力数据无线远传。
1.引言
为了保障人们的用水需求和减少漏损,必须对城市自来水管网的压力进行严格控制。在控制压力过程中,需要对压力进行测量并得知管网的压力分布。由于管网分布广泛,压力测量和传输多由远传压力表完成。传统远传压力表利用滑动变阻器原理和长距离布线实现了压力的测量和传输。这种测量和传输方式精度不高,易受干扰,不便维护,难以大规模使用,无法直观反映管网的压力分布。本文的无线远传压力表采用灵敏度高的压阻式OEM压力传感器;设计了精度高、温漂小、噪声低的恒流源电路和24-bitA/D转换电路,实现了压力的高精度测量;利用了光耦将模拟电路与数字电路完全隔离,减少了测量电路的干扰;通过无线远程传输压力数据到服务器,几乎不需要维护,节省人力物力,非常适合大规模使用。服务器接收到压力数据后绘制出管网压力分布图,能够直观地反映管网压力分布状态,为管网的压力控制提供依据。
2.系统总体设计
系统的总体设计思想是压力传感器在恒流源供电的条件下,输出与作用压力成正比的差分信号,该信号在A/D测量部分经过滤波、放大后以相对测量的方式转换为数字信号;RTC时钟为单片机提供实时时间基准;当压力数据采集时刻到来,单片机通过光耦读取A/D测量部分的数字信号;该数字信号会被换算为当前压力数值并被存储在Flash中;当压力数据发送时刻到来,存储在Flash中的压力数据通过SIM900A发送给服务器。系统的整体结构如图1所示。
3.系统硬件设计
3.1恒流源
压力传感器采用压阻式OEM压力传感器,其基本参数如表1所示。该压力传感器灵敏度高、稳定性好、体积小、价格低廉。传感器内部原理图如图2所示,图中带箭头的电阻桥路为敏感元件,私和风为零位温漂补偿电阻,风和风为调零电阻,及为灵敏度温度补偿电阻。+IN、一IN为供电输入端,接入恒定电流;十OUT和一OUT为信号输出端,和U—ajT分别为十OUT和一OUT端的对地电压。+OU丁与一OU丁之间的差分信号U—与激励电流IL、外界作用压力P之间的关系如式(1):
Uslgnai—U+OUT一U—OUT=KSIlP十KZIL(1)
式(1)中,KS为灵敏度系数、K2为零点系数,均为常数。当辽恒定,USP成线性关系。
由式(1)可知恒流源的精度和稳定性会影响压力传感器输出信号的质量,因此对恒流源的精度、温漂和噪声提出了要求。王金晨设计的恒流源中[4],负载悬浮使噪声增加。陈笑风构造的的电流源结构[]复杂,电阻难以匹配。本文设计的恒流源为负载接地恒流源,具有精度高、温漂小、结构简单、无需电阻匹配、噪声低等特点考虑了运放的正向端、负向端输入电流的影响输出了A/D转换器的参考电压。
图2传感器内部原理图恒流源电路原理如图3所示。REF192为高精度、低温漂的带隙参考电压芯片,正常工作时其OUTPUT引脚与GND引脚之间电压差为2.5V;Rs为5Kn的低温漂电阻是压力传感器的等效电阻RF是5Kn的低温漂电阻,一方面其两端的电压作为A/D转换器的参考电压,另一方面使压力传感器输出信号的共模电压满足后续A/D测量的要求R是普通电阻;C9、C10是滤波电容。下面对该电路的直流状态进行分析。
Uo、UN、UP分别为运放输出端、负向端、正向端的对地电压;分别为运放负向端、正向端的输入电流;、是运放的输入失调电流;Us是
REF192的OUTPUT引脚与GND引脚之间电压差,Us=2.5V。
故运放处于负反馈状态,能够稳定。
Il为流经传感器等效电阻Rl的电流,s为流经采样电阻Rs的电流。在节点A处利用KCL定理可得:
3.2A/D测量
a/d测量是将传感器输出的差分信号滤波、放大和A/D转换后得到数字信号。
A/D测量原理图如图4所示。U廳是恒流电路产生的电压,提供A/D转换器CS5530基准电压;A5V提供CS5530的模拟电源;另一路5V电源经过一阶低通滤波器后提供CS5530的数字电源。
压力传感器的输出端+OU丁和一out经过二阶低通滤波器后接入模数转换芯片CS5530,通过CS5530内部斩波稳定仪表放大器将差分信号放大64或128倍。一般情况下就无需额外设计信号放大电路,提高测量精度,降低成本。
在A/D转换之前,通过程序控制将CS5530的信号输入引脚短路,测量出共模噪声,在最后的测量结果中将该噪声减去,来降低噪声对测量结果的影响。通过内部的数字滤波器滤除工频干扰,减少了单片机的数字滤波处理,节约了单片机软件资源。
CS5530的通信端口是串行SPI接口,包括CS、SDI、SDO、SCLK。CS为片选端口,直接拉低选中;SDI为数据输入端口;SDO为数据输出端口;SLCK为时钟输入端口,这样就只需要占用单片机的三个I/O口。相比于并行模数转换器而言,CS5530节约了单片机的硬件资源。
采用CS5530设计A/D测量部分使电路简洁、精度高、成本低,从硬件和软件两个方面减少对单片机资源的占用。
下面就A/D测量进行分析:
U5-a/为压力传感器输出的差分信号,A=64为该差分信号的放大倍数,Uf=IlRf为参考电压,ADC为Um-的模数转换结果。24-bit的模数转换满量程ADCmax=16777215。由模数转换原理得如下关系:
数,建立了模数转换结果ADC与压力P的线性关系。线性系数k与激励电流八无关,减小了激励电流波动对测量结果的影响;仅与电阻Rf有关,测量精度由电阻Rf决定,提高电阻Rf的精度和稳定性能够增加测量精度和稳定性,实现了相对测量。
3.3光耦
在混合电路设计过程中,数字电路干扰比较大,如果模拟电路与数字电路不隔离,就会导致模拟电路受到干扰,影响测量精度。为了抑制这种干扰一般采用的办法是将模拟电路与数字电路分开布局,模拟地和数字地最后在某一点短接。
上述办法虽然可以减小数字电路对模拟电路的干扰,却难以消除这种干扰。为了使数字电路不会干扰模拟电路,这里采用的办法是通过光耦将数字电路和模拟电路完全隔离。这种处理能够降低PCB设计的难度,消除数字电路对模拟电路的干扰,增加测量精度。
将A/D转换器CS5530归为模拟电路,单片机归为数字电路。单片机通过光耦与CS5530进行通信。光耦一端连接CS5530的SDI,SDO,SCLK引脚,另一端连接单片机引脚MCU_SDO,MCU—SDI,MCU_SCLK。这样就完成了模拟电路部分与数字电路部分之间信息的传递,实现了二者的完全隔离。单片机通过光耦与CS5530连接原理图如图5所示,图中3.3V为单片机的电源电压,5V为CS5530的数字电源电压。
3.4数字电路部分
在数字电路部分,RTC时钟DS3231为单片机提供时间基准。当压力采样时刻到来,单片机会通过光耦启动CS5530的A/D转换,并且保存当前日
图6发送流程图采用SIM900A通过GPRS网络发送数据的过程:首先设置网络,数值到串行Flash存储M25P128中。当数据发送时刻到来,单片机启动SIM900A与服务器进行无线通信。单片机与外设连接原理图如图5所示。
RTC时钟DS3231的I2C接口和INT引脚会分别连接到单片机的I/O口和外部中断引脚。通过程序设置DS3231的INT引脚输出周期为1S的方波,触发单片机中断。
CS5530的SPI接口通过光耦与单片机的I/O口连接。单片机可以发送命令给CS5530启动A/D转换,读取A/D转换结果和停止A/D转换。
单片机与串行FlashM25P128通过SPI接口连接,可以对其进行读、写、擦除等操作。该Flash的最小读写单元是1个字节,可以提高存储利用率。在压力数据采集完后将其保存在M25P128中;当无线发送时,将压力数据从M25P128读出。
单片机通过UART串口发送AT命令给SIM900A实现压力数据的无线远传功能。
4.系统软件设计
4.1SIM900A程序设计
SIM900A内嵌TCP/IP协议可以实现语音、SMS和GPRS数据的传输。用户可以通过AT命令控制SIM900A。在AT命令操作过程中,当等待握手超时后,即判断AT命令发送失败终止等待。
采用SIM900A通过GPRS网络发送数据的过程:首先设置网络,与服务器建立TCP连接;然后单片机发送压力数据;发送完成后,关闭该TCP连接减轻服务器的负担。由于无线网络不稳定,会出现连接不上、中途掉线和TCP握手超时等现象,因此需要设置重传机制。发送流程如图6所示,采取的措施是连续三次出现数据发送不成功就关闭SIM900A,等到下次发送时刻到来继续发送。
4.2系统程序框架设计
系统软件的运行框架如图7所示,主要有两部分:主程序和1S中断程序。
系统上电后,首先在主程序中进行系统初始化工作:R丁C时钟DS3231、A/D转换器CS5530、FlashM25P128和UAR丁串口的初始化。然后单片机进入低功耗模式,暂停继续执行。DS3231输出的1S方波的上升沿会触发单片机的1S中断程序。在1S中断程序中,判断压力数据采集时刻是否到来,一旦到来采集压力数据保存到M25P128中,唤醒单片机跳出低功耗模式。1S中断程序结束后,主程序继续执行,判断压力数据发送时刻是否到来,一旦到来就通过SIM900A发送压力数据到服务器,然后进入低功耗模式,就这样不断循环。该款单片机进入低功耗模式后会保持其引脚的上升沿中断和UAR丁串口发送、接收中断的响应。
压力数据采集部分在1S中断程序中进行,压力数据发送部分在主程序中执行,这样使数据采集的优先级更高,保证了压力数据采集的时间间隔恒定不变。由于压力数据采集和压力数据发送都需要使用M25P128,故需要做好对临界资源的互斥访问。
上述处理方式使单片机在1S的大部分时间内处于低功耗模式,既满足功能要求又避免了因判断时间是否到来而频繁地读取R丁C时钟,节约了单
片机的软件资源、降低了功耗。
5.结语
本文设计了恒流源电路、a/d测量电路和光耦隔离电路,利用光耦完成模拟电路部分和数字电路部分的通信,达到了这两个部分有效隔离的目的,在采样率为100Sps情况下,实现了16位的精确测量;设计了数字电路部分,通过SIM900A实现了压力数据无线远传的功能。该装置已在自来水管网中使用,测量精度达到0.2%。、数据发送稳定。 |