配色: 字号:
基于以太网灌溉
2012-05-04 | 阅:  转:  |  分享 
  
基于Freescale以太网单片机的智能灌溉系统通讯设计

基于Freescale以太网单片机的智能灌溉系统通讯设计

CommunicationBasedonFreescaleEthernetMCUforIntelligentIrrigationSystem

杜文雄王钦若潘永平(广东工业大学自动化学院,广东广州510006)

摘要

针对目前灌溉系统多以串行总线控制为主,提出了一种以PC机为上位机,Freescale单片机为下位机而组建的分布式

以太网智能灌溉系统。阐述了基于单片机的TCP/IP协议的实现,并给出了系统的组成。由中央监控计算机通过以太网控制

各个现场测控终端,并且由内置的模糊自适应控制系统以及通过Internet获取的天气信息进行节水灌溉。

关键词:MC9S12NE64,以太网单片机,智能灌溉,TCP/IP通讯,监控系统

Abstract

Basedonsituationthatirrigationsystemmostlycontrolledthroughbus,akindofdistributivityintelligentirrigationsystem

wasproposedInthissystem,remotePCcontrolthelocalcontrollerbyEthemet,andfuzzyself-adaptingcontrolsystemac-

cordingtotheweatherinformationwhichisfr0mInternetandsensorcarryoutwater-savingirrigation

Keywords:MC9S12NE64,EthernetMcu,Intelligentlrrigation,TCP/IPCommunication,controlsystem

近年来,随着计算机技术和传感器技术的发展,我国的智能

灌溉系统有了很大的发展。目前大部分灌溉系统以总线(RS一

485/232)控制为主。总线控制灌溉系统通过总线的方式把所有

测控终端接入。每一个测控终端可以独自进行简单的灌溉动作

和判断,然后把信息反馈至中央监控计算机。

目前基于单片机的以太网设备多是采用MCU+MAC及

PHYFLASH+SRAM+其他外设的方案进行设汁的,这类芯片

以太网解决方案成本高,由于结构复杂,可靠性和稳定性都不理

想。在本设计中实现了一种基于以太网单片机MC9Sl2NE64

的以太网智能灌溉系统,通过对土壤湿度、电导率、酸碱度及空

气温湿度等信号的采集,实现全自动灌溉。由中央监控计算机通

过以太网控制各个现场测控终端,并且由内置的模糊自适应控

制系统以及通过Internet获取的天气信息进行节水灌溉预报。

1网络控制系统设计

MC9S12NE64(以下简称NE64)是Freescale公司的一款

网络单片机。它内部集成了以太网控制模块和以太网物理层驱

动模块,兼容IEEE802、3标准。和常用的网卡芯片一样,NE64

的工作模式能够设定为1OMbps/lOOMbps全双工/半双工,并

且拥有自适应的功能,可以满足不同物理环境的要求。NE64芯

片与一般网卡芯片不同的是它的以太网缓冲区的设计,一般网

卡芯片使用FIFO作为缓冲区,这种设计可以最大限度的发挥缓

冲区的作用。NE64内部则是使用3块RAM作为缓冲区,两块

用于接收,一块用于发送,而且RAM大小可以用户设定。因为用

于控制,以太网数据包一般少用到1.5KB的最大传输,所以这

种用户设定大小的缓冲RAM带来应用上的灵活性,而节约下来

的RAM也可以被用户程序使用。

为确保系统通信的正常运行,采用具有j级结构的集散型

控制系统(DCS),如图1所示。整个控制系统按功能和结构自上

而下分为3层:监控管理层、控制层、信号转换与执行层。

监控管理层由PC机、打印机等组成,主要完成数据处理、报

表打印、故障报警、数据查洵等功能;控制层由一个到多个灌溉系

统控制器(NE64)组成,灌溉控制器可以通过以太网进行通汛。

中间控制级(通信控制器)可以处理众多就地控制级频繁

的、随机的中断申请,将其存人先进先出的存储器,按照先联络

智能灌溉系统l

(MCgS12NE64)

【什站II

7______

i

图1灌溉系统以太网控制框图

先通信,后联络后通信的原则,组织中央控制级和就地控制级间

的通信。这样,可使计算机仅与通信控制器联系,保证了通信的

实时性和准确性。

信号转换和执行层通过传感器,将现场的温度、湿度、土壤

湿度等物理量转换为电压或者电流信号,并将信号输入控制层,

同时接收来自控制层的驱动信号,启动电磁阀。监控管理层中的

计算机和控制层的灌溉控制器采用以太网进行数据通讯,控制

器与传感器和电磁阀之间通过控制电缆实现单向通讯。

2系统软件设计

2、1下位机通讯软件设计

进行网络应用的开发,最关键在于根据本身资源选择一个比

较适合的协议栈。目前商业化的协议栈一般比较昂贵,鉴于一般

嵌入式的应用对协议栈的完备性要求不是很高,因此可以选择使

用开放源代码的免费协议栈。Freescale为NE64选定了一个开

放源代码的协议栈OpenTCP。如果不使用OpenTCP协议栈,别

的一些开放源码,诸如1wlP,FC/IP等,也都是较好的选择。

本方案直接利用OpenTCP提供的一个在NE64上使用的

协议栈,由于该协议栈针对NE64进行了优化,能更好地利用处

理器的特性,有效地提高了协议栈的处理效率,而且由于在绝大

多数场合数据采集终端的处理任务都是相对简单,并不需要操

作系统,采用这种方案无疑对提高系统的整体性能更为有利。该协

议栈采用精简的方案,包括取消所有的fP选项和TCP选项;TCP

维普资讯http://www.cqvip.com



《工业控制计算机}2008年21卷第4期87

流控窗口长度设为1,即双向的报广…——一~___一一~

文传输是基于听一等式的方案;取J、,“J

消JP的分包,组包机制;JC协一一j_一¨Ⅲ~

议只提供服务等。核心协议,..删,)

基于E64的特点,…一~一一一

对决定协议性能的关键.、.,一部分缓冲区管理进行优化,高层以氐嘲驱动1

协议(T、I、,)

的处理直接基于子层缓冲‘()。

区,实现数据的零拷贝,提高了协

议栈的性能。图裁减后协议栈结构

由于网络部分主要负责数据传输,实现的、

HTT等应用层协议并不是必须的,为了节省程序空间和保证程

序运行的效率,需要对进行裁减,主要将应用层协议

全部去掉,只保留TCP/UDP、IP、IC、等核心协议,直接

向应用程序提供服务,裁减工作包括删减部分源码,修改某些文

件的配置参数等,裁减后的软件结构如图2所示。

由于单片机的资源规模很小,要实现庞大的协议

显得力不从心,而监控场合的数据量相对较小,因而可以舍弃较

为复杂的协议,而用协议取代之。为提高其可靠性,

在高层协议上采取一些措施:采用上位机轮询、下位机回应的方

法,并按照“三次握手”的规范进行通信,即下位机回应后,上位

机再向下位机发一确认。同时增加校验码,对数据进行较严格的

校验,以提高可靠性。

2.2上位机监控软件设计

上位机监控软件用VB编写,采用微软的ACCESS数据

库,使用ODBC数据库引擎,所有对设备的操作都自动记人数

据库,并自动形成灌溉报表,软件结构如图3所示,具体分为7

个子模块:数据通讯模块、数据处理模块、图形显示模块、系统监

控模块、用户管理模块、系统维护模块、报表打印模块。

图3上位机监控软件结构图

22.1各模块的介绍

1)数据通讯模块。按手动或自动方式对各智能控制器循环的

数据进行采集。自动通信采用定时轮巡、监控中心主叫的方式。即

在主循环中不停地检测智能控制器的状态,发现问题后立即处

理。对不能及时处理的问题,发出警报信息并提醒管理人员处理。

2)数据处理模块。把采集到的多个智能控制器的数据存储

于数据库中;实现数据库的各种查询;对各种故障记录存档,以

便I3后查询和故障分析。

3)图形显示模块。图形显示模块通过颜色的变化来显示所

监控的智能控制器的运行状态,在图形上用鼠标点击可直接查

询该监控点的更详细的运行参数,包括阀门开度、流量等。

4)系统监控模块。本系统监控模块在监控地图上可以直接

选取任意灌溉分站,通过图形切换,可向该分站的智能控制器下

达和传输控制参数,包括根据各地的地理环境,配置不同的模糊

控制参数以及阀门闭环控制的参数、调节精度、调节时间、传感

器的误差修订系数等命令和参数,并具有对阀门的远动控制,即

强行开启、关闭的功能。

5)用户管理模块。操作员和管理员口令设定、更改。

6)系统维护模块。维护模块的功能主要有:数据字典维护;

操作权限的设定等。

7)报表打印模块。统计各分站的13流量、周流量、月流量、年

流量,实现报表打印。

2.2.2通讯模块的设计

通信模块与监控分站、现场仪表构成数据传输通道,实现主

控计算机对现场仪表的通信和控制,主要包括读取实时数据、系

统设置、远程控制等功能。

本设计利用Winsock控件来开发通讯模块。Winsock控件

有两个重要的属性,即Protocol和State。Protocol设定使用的

协议是TCP还是UDP:取值sckTCPProtocol表示TCP,取值

sckUDPProtocoI贝0表示UDP。

现在以监控中心计算机与分站1之间的通讯为例,阐述VB

中实现UDP的过程。设定分站1的IP为197.1.1.2,使用的端

口为1011,监控中心的fP为197.1.1.1,使用的端口为1010。在

分站1中,把NE64中的RemoteHost设为监控中心计算机的

IP地址,RemotePo~设为1010。

由于UDP协议并不需要建立一个明确的连接,因此建立

UDP应用要比建立TCP应用简单得多。在TCP应用中,一个

Winsock控制必须明确地设置成“监听”,而其它Winsock控制

则必须使用Connect方法来初始一个连接。

使用UDP协议,在两个Winsock控制间进行数据的发送,

在连接的两端必须完成以下三步:

1)设置RemoteHost属性为其它计算机的名称;

2)设置RemotePort属性为第二个Winsock控制的Local—

Port属性的值;

3)申请Bind方法。

通过使用方法Bind,则可将该Winsock控制捆绑到一个本

地端口,以便该Winsock控制使用该端口来进行类似TCP的

“监听”功能,并防止其它应用使用该端口。

使用该协议传送数据,首先设置客户计算机的LocaIPort属

性。而作为服务器的计算机仅需要设置RemoteHost属性为客

户计算机的fP地址或域名即可,并将其RemotePort属性设置

成客户计算机上的LocalPort属性即可,然后就可通过申请

SendData方法来开始信息发送,如作为客户端则可在其

DataArrial事件中使用方法GetData来获取发送的信息。

打开代码窗口,分别在相应的事件下输入以下代码:

PrivateSubForm—Load()

WithudpPeerA

RemoteHost=”1971、1、2要连接到的灌溉分站lP

、RemotePort=1010要连接到的端口号

.LocalPort=1011该Winsock控制将要使用的本地端口号,便于其它

端与该Winsock通讯

、Bind1O11将该Winsock控制绑定到该本地端口

EndWith

EndSub

PrivateSubt~Send

_Change()

udpPeerA.SendDatatxtSendText发送文本

EndSub

PrivateSubudpPeerA

_DataArrival(ByValbytesTotalAsLong)

DimstrDataAsString

维普资讯http://www.cqvip.com



基于Freescale以太网单片机的智能灌溉系统通讯设计

udpPeerA.GetDatastrData,vbString

txtOutput.Text=strData

EndSub

2_2.3自动获取天气预报

现在许多网站上的天气网页提供的天气情况比较全面,包

括最高温度、最低温度、空气湿度,甚至包括风力,日出日落时间

等等,本设计利用Socket类实现HTTP协议客户端应用,从网

站发布的天气预报网页中获取相关的信息,并根据以上参数定

制灌溉计划。

运用Socket的基于同步模式的客户端应用程序,首先通过

解析服务器的IP地址建立一个终结点,同时创建一个基于流套

接字的Socket连接,其运用的协议是TCP协议。通过该Socket

就可以发送获取网页的命令,再通过该Socket获得服务器上默

认的网页(比如sohu网站上广州地区的天气网址为http://

weather.news.sohu.com/city.php?city=广州),最后通过文件

流将获得的相应天气数据提取出来并显示存储,作为下一步判

断的依据。

在本系统中使用VisualBasic自带的互联网传输控件

(ITC),使用ITC控件提供的两种方法来下载Web页面,即

OpenURL和Execute,其中,OpenURL方法最简单,但其功能

有限,用这种方法并不能得到任何过程信息,不能对到达的数据

进行控制,所以,我们需要访问Winsock缓冲区,该缓冲区的功

能是存储到达的数据。可以利用ITC控件的Execute方法。

Execu~方法只是向Web服务器发送HTTP请求,而本身并不

接收任何数据,用法如下:

InetlExecutestrURL,”GET

下面是~部分关键程序:

定义ITC控件使用的协议为H1_rP协议

Inet1.Protocol=icH丌P‘调用Execute方法向Web服务器发送H丌P

请求

IfLen(txtURL、Text)>0Then

InetLExecuteTrim$(txtURL.Text),GET”

(上接第85页)

图4Agent间的会话框图

5结束语

基于多Agent系统的智能虚拟仪器把多Agent技术引入

到虚拟仪器的开发设计之中,把虚拟仪器中不同的软件单元设

计成独立的Agent,给出其通用的结构,并借助JAFMAS多A—

gent系统开发框架实现了系统模型结构的建立和相应的运行

结果。这一方法的提出,不但改善了虚拟仪器的可扩展性和可重

DimstflextAsString

DimstrBufferAsString

OnErrorResumeNextDo‘从缓冲区读取数据

DoEvents

strBuffer=lnet1.GetChunk(512)

StrArrivedData=strArrivedData&sfrBuffer

然后提取我们需要的数据

LoopUntilLen(strBuffer)=0

3结束语

本文利用以太网单片机MC9S12NE64,通过以太网,与监

控中心计算机组成具有三级结构的集散型智能灌溉控制系统。

该系统具有可扩展性好、灵活性高、传输距离长、数据传输率高、

性价比高等特性。由中央监控计算机通过以太网控制各个现场

测控终端,并且由内置的模糊自适应控制系统以及通过Internet

获取的天气信息进行节水灌溉,综合天气以及环境参数,自动确

定灌溉是否需要进行或者何时进行为宜等,若选用适当的传感

器,本系统也可适用于多种灌溉模式(喷灌、滴灌、渗流等)。改变

模糊自适应控制系统的参数,可以用于不同植被。

参考文献

[1]徐飞鹏,杨培岭,雷振东,等.分层分布式计算机控制智能灌溉施肥系

统的设计与实现[J].节水灌溉,2005(4):26—28

[2]宋培卿,陆吴、胡刚节水灌溉远程控制系统的结构及其通信设计

[J].河海大学常州分校学报,2003,17(2):59—62

[3]张云鹏,杨景常.基于TCP/IP协议的单片机系统以太网通讯设计与

实现[J].四JII工业学院学报,2004(23):87—90

[4]邵贝贝单片机嵌入式应用的在线开发方法[M]北京:清华大学出版

社.2004

[5]W.RichardStevens.TCP/IP详解[M].范建华,等,译.北京:机械工

业出版社,2000

[6]sourceforgeproject.MC9S12NE64OpenTCPReferenceManu-

aI[EB/OL].http://freescaleotcp、sourceforge.net.July.2004

[收稿日期:2007.8.30]

构性,还大大提高了虚拟仪器的设计效率,彻底摆脱虚拟仪器设

计对经验和能力的依赖,真正实现用户定义仪器功能的目标。同

时,对于多Agent技术的应用研究也具有一定的借鉴作用。

参考文献

[1]张毅,周绍磊,杨秀霞.虚拟仪器技术分析与应用[M].北京:机械工业

出版社,2004

[2]EmmetLlFroomeP.Requirementsforaguideonthedevel-

opmentofVirtualinstrument.Techniquerepo~ofNational

PhysicalLabo~toryofUK1999

[3]WooldridgeM.Agent-basedsoftwareengineering.IEEEproc.

ofsoftwareeng,1997,144(1):26—36

[4]史忠植.智能主体及其应用[M].北京:科学出版社,2000

[5]LeiterM.DeanTAframeworkforthedevelopmentofmulti—

agentarchitectures.IEEEExpert.199612:47-58

[6]袁崇义Petri网的原理与应用[M]北京:电子工业出版社,2005

[7]陈仁际,吴镇炜,王韬,等基于Agent的分布式多机器人系统建模及

分析[J].中国机械工程,2001,6:667—670

[8~DeepikaChauhan.JAFMAS:AJava—basedagentframe.

workformulti—agentsystemdevelopmentandimple-

mentation:[Ph.D.Thesis].C}ncinnati:ECECSDepartment。

UniversityofCincinnati,1997[收稿日期:2008.1_7]

维普资讯http://www.cqvip.com



献花(0)
+1
(本文系朽木轩首藏)