2021-4-9 | 农业灌溉论文
作者:颉新春 李文涛 陈文生 单位:内蒙古科技大学信息工程学院 呼和浩特铁路局呼和浩特电务段
水电控制器的基本功能水电控制器是安装在机井旁具有IC卡读写、用户用水量统计、用电量统计、通过无线接口与远端中心计算机进行数据通讯的功能。持有IC卡的用户刷卡后,水电控制器判断该用户卡上的剩余金额是否为0,如果该用户卡上的剩余金额不为零控制器发出开启水泵的命令。水泵运行过程中水电控制器将记录该用户消耗的用水数据和用电数据并在液晶显示屏显示用水量、用电量及此次灌溉所发生的费用。运行过程中该用户再次刷卡水电控制器将停止水泵的运行,并将剩余金额写入IC卡。在运行过程中如果接收到中心计算机的命令,控制器会将该一定时间内(如一年)的水电消耗量和用户数据返回到中心计算机。
虚拟总线模式下的通讯接口设计水电控制器的无线通讯接口电路必须保证在几十公里范围内能够与中心计算机所驱动的通讯控制器进行可靠的数据传输。采用无线数传模块可以满足我国平原空旷条件下的数据传输要求。数传模块TDX-868A可用于针对专业级使用的工业自动化监测控制的数据传输领域,它采用了先进的频率合成技术,CPU锁相环控制,配合调制解调器,可提供语音信号或数据信号的透明传输,适应各种点对点、点对多点的无线数据通信方式,具有收发一体、安装方便、使用简单、性价比高、稳定可靠等特点。该模块采用223~235MHz数据传输专用频段,工作环境温度-35℃~+65℃,可满足我国大部分地区的气候条件。其基本结构如图2所示。天线接收的射频信号经放大,混频,检波后,送入MODEM,由MODEM还原出发射端发出的数字信号。当需要进行发射时,数字信号先进入MODEM,由MODEM产生相应的MSK信号,去调制发射VCO并产生所需的射频信号,经射频功放由天线发射出去。该模块采用双压控振荡器(VCO)来分别产生用于接收和发射的射频信号,可实现接收和发射之间的快速转换。TXD和RXD为TTL电平标准的串行通信接口信号,用于与处理器连接。系统中的中心计算机必须通过下层的无线传输网络读取各个水电控制器的水电消耗数据。处于下层网络中的水电控制器与通讯控制器在同一调制频率下进行数据收发,每个水电控制器具有不同的地址。为了防止数据传输出现冲突现象,通讯控制器采用轮询的方法与各个水电控制器实现数据传输。通讯控制器维护一个记录了所有水电控制器地址及工作状态的数据表格(轮询表),轮询表里各个水电控制器的地址按照升序排序,地址数量n由中心计算机管理机软件设定。通讯控制器与水电控制器的数据传输采用半双工方式,即通讯控制器发送时不能接收数据。水电控制器上电后处于接收状态,等待通讯控制器的命令。此时无线信道相当于一种虚拟的总线结构,如图3所示。通讯控制器作为主站掌握总线控制权,主动和网络中处于从站状态的其他水电控制器进行数据交换,数据交换完后通讯控制器存储数据,等待中心计算机的读取。作为主站的通讯控制器与作为从站的水电控制器之间的数据交换方式按以下2种方式进行:(1)SDA:有应答发送数据,通讯控制器把数据发送到一个水电控制器(从站),要求返回应答。(2)RD:通讯控制器读取某一从站的一组数据,应答帧中返回所需数据。这2种数据交换都由通讯控制器发起。节点上电后,通讯控制器持有控制权,作为从站的水电控制器处于接收态。通讯控制器上电后按照从站地址由低向高依次轮询各个从站并进行数据传输。通讯控制器发出数据后,如果在一定时间内(SLOTtime)没有收到从站的应答将会重发请求,重发后仍没收到应答主站会认为数据传输失败,此时通讯控制器在轮询表里将该从站标记为工作非正常状态,然后继续寻址下一地址的从站,通讯控制器通过周期性的轮询各个水电控制器完成了数据的传输。
无线网络的数据传输协议无线网络中的通讯控制器,主要任务包括2方面的内容,即接收中心计算机下发的数据传输命令和周期性地轮询作为从站的水电控制器。总的来说,总线上传输的数据类型包括以下5种:(1)设定水电控制器允许(或禁止)使用命令、用水单价和用电单价,帧格式如下。该命令以0x01和0x02作为起始和结束标志,其间所有数据均以ASCII码传输。这样做的目的主要是保证一个传输帧中只有唯一的起始和结束标志。DA为2字节的ASCII码,分别为通讯控制器要访问的水电控制器的地址(16进制)的高4位和低4位的ASCII码。如寻址地址为0x24的水电控制器时,DA的2字节为0x32和0x34。EN为1字节的ASCII码,0x31表示允许水电控制器运行(0x30表示禁止),禁止运行时用户刷卡将无效。DJ1和DJ2为用户定义的各为5位ASCII码的水、电价格,分别为百位、十位、个位、十分位和百分位。如0x30、0x31、0x32、0x35、0x34表示每吨水的价格为12.54元。CRC表示16位CRC校验码,共占用4个字节。通讯控制器发出该命令后处于等待应答状态,在一定时间内如果没有收到水电控制器返回的确认帧,通讯控制器将会重发该命令,2次重发后都没有收到确认帧将向中心计算机返回寻址失败信息。确认帧的格式如下,其中FC为本命令类型码0x31。
通讯控制器与中心计算机的接口设计通讯控制器采用南京沁恒公司生产的USB专用接口芯片CH375作为与上位机的通讯接口。CH375直接提供了数据块的读写接口,以512字节的物理扇区为基本读写单位。开发者就可以将USB存储设备简化为一种外部数据存储器,通过单片机可以自由读写USB存储设备中的数据,也可以自由定义其数据结构。上位机软件的开发直接可以调用沁恒公司提供的CH375专用API来进行数据的传输。在半双工模式下,单片机通过驱动UART接口来完成虚拟总线下的数据传输。
通讯控制器的数据传输方法中心计算机与各个从站的数据传输也可以基于轮询表来进行。轮询表里存放着各个水电控制器的地址。中心计算机上运行的管理软件按照轮询表里记录的水电控制器地址由小到大顺序向通讯控制器发送命令。作为中心计算机与水电控制器之间通讯的中间环节,通讯控制器主要承担命令解析、命令发送与数据存储的功能。中心计算机基于USB接口发出的各种通讯命令首先存储在CH375的接收缓冲(FIFO)中并触发中断信号。单片机在中断服务程序中对不同的通讯命令进行解析,依据命令的要求把数据请求命令(RD)或数据发送命令(SDA)按照通讯协议要求把数据经数传模块调制并发送出去,然后等待受访水电控制器数据(或应答信号)的返回,若在一定时间内没有收到该站返回的数据通讯控制器将会重新发送命令。重发两次后仍然没有收到返回数据通讯控制器会向中心计算机返回通讯错误信息。通讯控制器收到应答后会将水电控制器返回的数据放入CH375的接收缓冲(FIFO),等待中心计算机的读取。在这种通讯方式下,通讯控制器可以完成所有水电控制器相关数据的传输。