主控系统对各个模块起到控制作用,是各个模块正常工作的基础,主要由单片机完成。
水位信息采集模块是水位计的核心部分,采集到的水位信息的精度是衡量水位计质量的重要参数。由传感器、模数转换,单片机完成。数据存储模块由外部非易失存储器和单片机完成,水位计定时采集水位信息,并保存在外存上。记录可通过液晶屏读出。
控制与显示模块由键盘和液晶屏完成,提供人机接口。
与上位机通信部分是智能仪表的必要条件,主要由MAX3485和MSP430单片机的串口部分实现。
2 各模块功能实现
2.1 主控系统
主控系统对各个模块的供电、使能,工作等起到控制作用,是各个模块正常工作的基础,主要由MSP430单片机完成。
相比于MCS和PIC等系列,MSP430系列单片机是超低功耗、功能强大的16位单片机。本系统选用的是MSP430F435,工作电压范围1.8~3.6 V;5种节电模式,每1 MHz功耗电流0.1~400 μA,同时能够在实现液晶显示的情况下只耗电0.8μA。此外MSP430单片机片上资源丰富,集成度高,能够满足智能遥测终端机对体积功耗的需求。
2.2 数据采集模块
水位信息采集模块是水位计的核心部分,采集到的水位信息的精度是衡量水位计质量的重要参数。水位采集模块主要由ADS1110和传感器完成。ADS1110是一种精密、可连续自校准的串行A/D转换器,带有差分输入和高达16位的分辨率,测量的电压误差为0.001 V,精度高。其串行接口为I2C总线。单片机可通过软件模拟I2C总线实现与ADS1110的连接。具体方法是将单片机的I/O接口连接至I2C的数据线SDA和时钟线SCL。通过软件控制时钟和数据的传输。水位采集流程如图2所示。[page]
2.3 数据保存模块
水位数据保存模块及复位电路都通过X4043实现。X4043也采用I2C接口,SDA,SCL连接方法与ADS1110相同。
水位计每小时记录一次,缓冲区可保留一天24次的记录信息,新的信息覆盖旧的信息。每条记录由水位值和采样的时间组成。
水位信息保存程序流程图如图3所示。
保存数据时,先保存水位值,再依次保存时间。确定保存地址时,用最初的地址加上偏移量。偏移量为数据长度乘以个数。
在定时器中断中,每个整点时间,定时器都会把保存数据的标志变量置有效。在主循环中判断,如果标志位有效,就调用保存水位信息的函数。
[page]
2.4 控制与显示模块
智能水位计中使用MAX3485和单片机串口实现这一功能,协议采用MODBUS协议。
数据包收发程序放在单片机中断服务程序中,接收完成后把标志位置有效,在主循环中不断扫描标志位,发现标志位有效,会调用数据包处理函数。水位计协议包格式如表1所示。
功能码主要有:
功能码0x03:Read Holding Registers读取寄存器数据(系统时间或配置)。功能码0x04:Read Input Register读输入寄存器(遥测)。功能码0x10:Write Multiple Registers写多个寄存器(系统时间、参数)。
工作模式共有3种:实时,分时,变幅上报。
在实时模式下,水位计时刻打开串口电源,准备接收上位机信息,作出处理。
分时模式下,只有在定时时间到的时候打开串口电源,等待上位机信息。
变幅模式下,当水位计采集到的水位值和前一次的差的绝对值大于一个阈值时再打开串口电源。
由于整个网络采用总线型拓扑结构,且没有冲突退避算法,所以与上位机通信时采用应答方式。不论水位计工作在实时、分时,还是变幅模式下,只有接收到上位机信息时才返回数据包。
3 结束语
该水位计在工作时可以灵活配接浮子式水位计或压力式水位计等水位传感器,能够灵活适应测量库水位、电厂拦污栅压差、河流等变化缓慢或剧烈的水位的需要,适应不同的监测环境,适用于无电源场合。水位采集站工作模式可灵活编程设定,通用性好,可靠性高,维护方便,是一种可适用于多种监测环境的多模式水位自动监测系统。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』