首页 > 范文大全 > 正文

基于ARM嵌入式节水灌溉系统的研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于ARM嵌入式节水灌溉系统的研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:论文设计了一种基于arm9控制的节水灌溉系统,用于实时监控土壤湿度状况,自动实现对土壤的节水灌溉。系统以S3C2440为核心,采用AQUA-TEL-TDR传感器的TDR原理,将输出的电信号通过MAX1246转化为数字信号;通过串口与PC机相连,PC机将计算出所需的灌溉量和时间并反馈给S3C2440,启动报警装置和开始灌溉。

关键词:节水灌溉;ARM9;S3C2440;AQUA-TEL-TDR;MAX1246;MAX3232

中图分类号:TP277 文献标识码:A 文章编号:1009-3044(2014)07-1565-03

1 概述

S3C2440的微处理器核心是由ARM公司生产的,其突出的特点是具有16/32位的ARM920T的RISC,宏单元和存储单元都是0.13um的COMS标准,其功耗低,精致、简单和全静态的特性,结合源代码开放、高效、实时、稳定、成本低的Linux操作系统[1],可常用工业、农业、信息产业领域。由于以AT89C52为核心控制的节水灌溉系统,不能实时、迅速地对土壤的湿度状况做出反应。所以,针对以上的问题,该文采用基于S3C2440为核心,在Linux平台下,完成对该系统的开发和移植,最终完成自动节水灌溉的目的。

2 节水灌溉系统的设计方案

现代农业的管理大多需要智能系统的管理,而本文选用ARM-Linux平台下完成自动节水灌溉的任务。首先选用稳定性高、安装操作简单的AQUA-TEL-TDR传感器来检测土壤的湿度[2],而采集的土壤湿度数据通过MAX1246,将模拟信号转换为数字信号,得到的数字信号传送给S3C2440开发平台进行分析处理,并在LCD上显示土壤的相对湿度;而S3C2440得到的土壤相对湿度通过串行通信的方式返回给PC机,PC根据土壤的湿度来判断土壤是否需要灌溉, PC将会计算出所需灌水量和灌溉时间,并在PC的界面上显示[3],同时PC将会把计算出所需灌水量和灌溉时间反馈给S3C2440,S3C2440根据PC所传送的相关信息,启动报警装置,同时发出灌溉信号,通过电磁阀实现自动灌溉。如果PC根据采集的土壤相对湿度判断出无需灌水,则PC机界面将会显示灌水量和灌溉时间为0。

3 系统硬件设计

3.1 数据采集模块

本文数据采集模块选用主要MAX1246芯片[4],该芯片主要是具有可编程12位的串行输出A/D装换,并且同SPI接口与核心处理器S3C2440相接,由于该芯片具有25V的内部参考电压,可通过缓冲放大器可以调整采集时所需的参考电压,并且该芯片采集速度快,转换精度高的特点,可达到最佳采集数据的效果,同时MAX1246的内部具有采样保持的电路,这样便可以对瞬间变化量进行捕捉到。而根据AQUA-TEL-TDR传感器输出的电信号,MAX1246将会把该电信号直接转化为数字信号,然后将转化的数字信号传送给S3C2440进行分析处理。

首先将MAX1246的时钟信号与S3C2440的时钟信号CLKOUT0串行连接,同时S3C2440发送时钟信号CLKOUT1作为S3C2440所接收的时钟信号CLKOUT0,MAX1246的数据输出端DOUT与S3C2440的输入端RXD0相接,而S3C2440的输出端TXD0与MAX1246的数据输入端DIN相接,同时需要将MAX1246的串行选通端SSTRB接至S3C2440的nCTS0端,MAX1246的片选信号端接至S3C2440的nGCS0。

3.2 LCD显示系统电路

选用 FYD12864作为液晶显示模块,其成本低,具有灵活的接口方式和简单方便的操作指令,并且内部含有国标一级,二级简体中文字库的点阵图形液晶显示模块。显示电路如图3所示,首先设置S3C2440的引脚XTIpll, OM2, XTOpll为101,使得S3C2440工作于外部晶振PLL*1的模式下。FYD12864的PSB引脚连接+5v,是LCD工作于4位或8位的并口模式,A,K引脚分别接+5v和GND,从而启动LCD背光。然后将S3C2440的P0-7口与FYD12864的数据端口进行连接,3条地址线分别控制FYD12864的RS,R/W以及复位RESET引脚。图3 为LCD显示系统电路:

3.3 超限报警电路

超限报警电路是根据S3C2440核心处理器控制的蜂鸣器来实现的。由于蜂鸣器的产生是电流通过电磁线圈,使其产生磁场来驱动振动膜发声,因此需要一定的电流来驱动蜂鸣器。S3C2440的GPB0端来控制蜂鸣器,由于该端口输出为8mA,无法直接驱动蜂鸣器,因此需要用三极管放大电流来驱动三极管,这里选用PNP的三极管,而蜂鸣器报警的时间长短则根据延时程序来实现。

3.4 S3C2440与PC机串行通信接口

要保证PC机与S3C2440正常通信,就必须处理好RS-232的串行电路,这里选用9针的DB9接口。本次设计主要选用MAX3232来完成系统所需的电平转换,由于采用采用TTL逻辑,需要加上电平转换的接口,所以,本系统采用的是-15v~-3v和3v~15v来完成,这样不仅能提高它的抗干扰能力,也能增加它的传输距离。为此,只需在MAX3232上增加几个电容即可。

4 系统软件设计

由于S3C2440与PC机相接必须要符合串口通信协议,以此来完成彼此的双向传输,其中需要对MAX3232串口转换芯片MCBSP的各个寄存器进行初始化。本次软件设计主要采用源代码开放、实时、高效、稳定、成本低等优点的Linux操作系统,首先建立交叉编译环境用于编译其源代码,代码编写采用C语言,以便其可读性和可移植性,而内核的移植采用2.6.30.2版本,烧写完根文件系统,编译成功后,即可在TQ2440开发板上运行其bin文件,观察实验结果。图6和图7分别为中断程序和主程序流程图:

5 实验结果

通过实验结果表明,以嵌入式ARM-Linux的节水灌溉系统,实现了高产节水,自动灌溉的目的。该系统不仅能够准确实时地检测出土壤的相对湿度以及湿度变化的情况,而且也能够根据土壤的相对湿度,计算出所需的灌水量和灌溉时间,当检测值大于PC所给定的预定值是,则S3C2440会立刻启动报警器;同时打开电磁阀进行灌溉。也可以通过修改PC的预定值来改变灌水量和灌溉时间,具有很高的灵活性。

6 结束语

该设计选用的AQUA-TEL-TDR传感器不但可以进行远程操作,而且可以采集的数据精确度高,结合主频高达400MHz的S3C2440核心处理器和功能强大的Linux操作系统,不但能提高系统的处理运行速度,而且也稳定高效实时地反映土壤的相对湿度,通过PC所计算得灌水量和灌溉时间反馈给S3C2440,能够及时地实现自动灌溉,达到高产节水的目的[5],从而避免了水资源的浪费情况。

参考文献:

[1] 田泽.嵌入式系统开发与应用教程[M].北京:北京航空航天大学出版社,2005:10-20.

[2] 李佳林,刘永春.基于DSP控制的节水灌溉系统研究[J].电子设计工程,2013,21(4):107-109.

[3] 邹龙龙.农业节水灌溉系统的设计与开发[D].吉林:吉林农业大学,2011.

[4] 张杨,陈家胜. ARM嵌入式仪器的A/D接口设计[J].仪表技术,2007(10):18-20.

[5] 戴杉虎.单片机在节水灌溉系统中的应用[J].机电工业技术,2011,40(8):139-140.