基于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
|
|