论文.docx

上传人:b****3 文档编号:11122575 上传时间:2023-05-29 格式:DOCX 页数:30 大小:232.59KB
下载 相关 举报
论文.docx_第1页
第1页 / 共30页
论文.docx_第2页
第2页 / 共30页
论文.docx_第3页
第3页 / 共30页
论文.docx_第4页
第4页 / 共30页
论文.docx_第5页
第5页 / 共30页
论文.docx_第6页
第6页 / 共30页
论文.docx_第7页
第7页 / 共30页
论文.docx_第8页
第8页 / 共30页
论文.docx_第9页
第9页 / 共30页
论文.docx_第10页
第10页 / 共30页
论文.docx_第11页
第11页 / 共30页
论文.docx_第12页
第12页 / 共30页
论文.docx_第13页
第13页 / 共30页
论文.docx_第14页
第14页 / 共30页
论文.docx_第15页
第15页 / 共30页
论文.docx_第16页
第16页 / 共30页
论文.docx_第17页
第17页 / 共30页
论文.docx_第18页
第18页 / 共30页
论文.docx_第19页
第19页 / 共30页
论文.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

论文.docx

《论文.docx》由会员分享,可在线阅读,更多相关《论文.docx(30页珍藏版)》请在冰点文库上搜索。

论文.docx

论文

目录

摘要1

Abstract2

1绪论3

2系统软件设计方案4

2.1系统硬件结构4

2.1.1现场温湿度采集模块4

2.1.2控制中心人机界面模块5

2.1.3数据存储模块5

2.1.4现场控制模块5

2.1.5模块与微处理器接口5

2.2系统软件构架6

2.2.1软件总体构架6

2.2.2任务的划分7

2.2.3任务间的通信7

3外围接口电路的底层驱动程序8

3.1嵌入式微处理器LM3S11388

3.1.1LM3S1138的简要介绍8

3.1.2LM3S1138驱动库10

3.2显示驱动程序的设计11

3.2.1API函数集14

3.3传感器驱动程序设计15

3.3.1DS18B20驱动:

15

3.3.2API函数集19

4人机界面结构及程序设计21

4.1菜单结构定义21

4.2各级菜单定义21

4.3菜单操作23

4.4功能子函数的实现25

5系统测试过程27

5.1测试μC/OS-II操作系统是否正常运行27

5.2测试LCD是否正常显示27

5.3测试DS18B20工作是否正常27

5.4测试菜单程序是否正常工作27

致谢28

参考文献29

摘要

我国从20世纪80年代初开始从国外引进现代温室和塑料大棚技术,经过消化吸收,已经完全能够制造适应不同地区、不同类型要求的各种温室建筑。

但是,在温室栽培生产过程的自动控制与管理技术方面与国外差距很大,从而制约了我国设施农业生产的高效产出。

本系统正是基于此目的,对相对密闭空间内的环境参数进行检测,根据所测得数据合理的采取相应的措施,从而实现对农村大棚的自动控制。

此系统不仅可以应用在农业中的大棚,温室等,也可应用于很多其它场合,例如机房、禽舍等。

采集参数包括温度,湿度,氧气浓度等,由分布于现场各传感器,通过采集网络传递到控制中心,在控制中心的人机界面可实时查询数据,并将检测到得数据记录存储,并做信息传递和处理。

本系统是以LM3S1138ARM为控制器,以DS18B20和SHT11为温湿度传感器,采用合理的传输网络,解决了现场较远所导致的传输数据误码高的缺点,采用LCD显示和键盘控制,实现了现场的温湿度查询和参数的设置。

并结合μC/OS-II实时操作系统,实现实时控制,简化了系统软件设计。

 

关键字:

LM3S1138μC/OS-II环境监控DS18B20人机界面

 

Abstract

Thedevelopmentofintelligencesupervisionandcontroldecision

-makingsoftwareisthemaincontentofautomaticcontroltechnologyforgreenhouseproductioncultivatingenvironment.Friendlysysteminterfacesoftwareisoneoftheimportantpart.Multi-pointruralgreenhousetemperatureacquisitionsystemdesignedforthis.basedonarelativelyconfinedspacetodetectenvironmentalparameters,inaccordancewiththemeasureddatatotakereasonableappropriatemeasures,inordertoachieveautomaticcontroloftheruralshed.

Notonlyinagriculturegreenhouses,thissystemcanbealsoappliestomanyotheroccasions.forexample,engineroom,poultryhouse,Etc.Acquisitionparametersincludetemperature,humidity,the

ConcentrationofCO2andO2Etc.Throughthedistributionofthesensorsatthescene,thecollectiondeliveredtothenetworkcontrolcenter,controlcenterintheman-machineinterfacecanquerydatainrealtimeanddetectthedatarecordsstorage,informationtransmissionandprocessing.

ThissystemisbaseonLM3S1138controller.andthesensorsis

DS18B20andSHT11.Withthereasonabletransmissionnetwork,ithassolved

errorofDataTransmission.CombinationμC/OS-IIReal-timecontrol,

Anditsimplifiesthedesignofsystemsoftware.

 

Keywords:

LM3S1138,μC/OS-II,EnvironmentalMonitoring,DS18B20,Man-machineinterface.

1绪论

温室对现在的人们来说,已经算是个非常熟悉的名词了。

今年来温室在我国发展很快,已经完全改变了我们的生活。

随着科学技术的提高,传统的温室已经不能满足人们的需要了,人们迫切需要一种能自动控制的、智能的系统,可以辅助人们来管理温室。

本课题针对当前温室大棚环境控制不稳定的状况,设计出一种集温度、湿度的检测、控制、报警的适合广大温室用户采用的微型控制系统――基于LM3S1138的多点温度采集及控制系统。

本课题是在已经搭建好的硬件基础上进行软件的开发设计,所用软件系统为μC/OS-II实时操作系统。

本课题讲述以μC/OS-II实时操作系统为主线,首先介绍整个系统的构架,然后分模块介绍驱动程序和自己编写的API函数,接着重点讲述人机界面的数据结构和实现方法。

最后是讲调试过程和调试中遇到的问题。

 

2系统软件设计方案

系统要完成的首要任务是驱动温度传感器DS18B20和湿度传感器SHT11,驱动LCD显示温湿度;能接收按键命令,做相应的处理,完成人机对话;制作菜单,方便操作。

系统要求:

软件方便升级;硬件改动后,能很快更新系统;系统要能方便维护。

因此系统要完成这样的任务,使用嵌入式操作系统才能很好的解决。

本系统是建立在μC/OS-II实时操作系统基础之上的,下面讨论嵌入式实时操作系统的必要性并对μC/OS-II做简要的介绍。

2.1系统硬件结构

整个系统构成如图3.1,可分为四个模块:

现场采集温湿度采集模块、控制中心人机界面模块、数据存储模块、现场控制模块。

2.1.1现场温湿度采集模块

现场为分布于各采集点的传感器,和连接其的数据传输网络组成。

温度传感器为DS18B20,湿度传感器为SHT11。

图2.1系统结构框图

2.1.2控制中心人机界面模块

人机界面的主要构成是液晶OCMJ10*10D-1显示模块和键盘扫描模块,主要实现人机对话,比如设定温湿度界限值、设定扫描周期等。

2.1.3数据存储模块

可与上位机通信,将所采集的数据远传至控制中心。

根据现场检测到得数据和设定值比较,按照设计要求控制现场的设备,调整大棚内的温湿度,从而达到控制的效果。

2.1.4现场控制模块

现场控制模块是当环境温湿度超出所设定的温湿度上下限值时,系统会进行声光报警。

2.1.5模块与微处理器接口

表2.1模块与微处理器接口

模块引脚

微处理器接口

LCD

DB6-DB0

PF6~0

DB7

PE2

WR

PB6

RD

PB5

CS1

PB4

CS2

PB3

BUSY

PB2

RS

PB1

LCD_RST

PB0

按键

UP_KEY

PG5

DOWN_KEY

PA6

ESC_KEY

PA7

ENTER_KEY

PE0

DS18B20

DQ

PA5

2.2系统软件构架

2.2.1软件总体构架

本系统是建立在μC/OS-II实时操作系统基础上的,系统结构图见图3.1。

根据系统的需要,系统可分为以下几个模块:

μC/OS-II系统模块、LCD显示驱动模块、DS18B20驱动模块、SHT11驱动模块、按键扫描模块。

LCD驱动、DS18B20驱动、SHT11驱动、按键扫描模块为应用程序提供接口;μC/OS-II把各个模块组合成一个有机的整体;各个模块各司其职,互不影响,方便了系统设计、调试以及以后的硬件修改或升级。

图2.1系统结构

2.2.2任务的划分

系统要完成的功能:

扫描按键,接收指令并通过LCD显示完成人机对话。

同时系统还在不停地检测环境的温度和湿度(检测的周期可以人为地改变),当发现检测到的环境温度和湿度超出预设的温湿度范围时,发出声光报警。

μC/OS-II是多任务内核,可同时处理多个任务。

我们可以把系统要完成的功能划分为多个任务来实现。

我们创建了四个任务:

任务一:

整个系统初始化。

包括μC/OS-II初始化、处理器LM3S1138初始化、按键I/O口初始化、LCD初始化和传感器初始化。

然后任务一自动删除。

任务二:

按键扫描,不停地扫描看是否有键按下。

如果有键按下就保存所按下的键值。

任务三:

按所设定的周期读出传感器的温湿度值,把温湿度值保存起来。

并且与设定的温湿度界限比较,如果超出所设定的温湿度界限,将触发声光报警。

任务四:

菜单处理。

与键盘和LCD共同完成人机交互的工作。

包括查询当前温湿度值、设定温湿度界限、设定扫描周期、数据存储等等。

2.2.3任务间的通信

系统各个任务之间是相互独立的,但是任务间还要做数据共享或任务的同步,比如检测到的按键值要送到菜单处理程序中,以便菜单处理程序进行哪一步动作;读传感器的周期也是通过菜单任务来设定的,等等。

1.按键扫描任务要将扫描的键值传送至菜单处理任务。

具体做法是,先创建一个邮箱,用来接收按键的键值。

按键任务如果检测到有键按下就发送键值到邮箱中,菜单处理程序则等待邮箱中的消息,如果没有消息,就挂起任务,直到接收到键值,再根据键值进行菜单处理。

2.检测环境温湿度的任务将检测到的温湿度要和菜单处理任务设定的温湿度界限作比较。

具体实现方法是使用全局变量,这两个任务共同使用这些变量,这是简单的处理方法。

 

3外围接口电路的底层驱动程序

3.1嵌入式微处理器LM3S1138

3.1.1LM3S1138的简要介绍

EasyARM1138的核心MCU是美国LuminaryMicro公司的Stellaris

®(群星)系列ARM之LM3S1138。

该芯片采用的是国际上最优秀的MCU内核设计公司ARM最新推出的先进Cortex™-M3处理器;由国内最大、技术最强的晶圆制造公司台积电(TSMC)代工;经世界上最专业的封装测试公司(OSE、i2a/IPAC)层层把关,确保产品的可靠性。

Stellaris®(群星)系列ARM芯片在电磁兼容性方面的优势明显。

【功能特点】

●强大的MCU内核

◆32位ARMCortex™-M3内核(ARMv7M架构)

◆兼容Thumb的Thumb-2指令集,提高代码密度25%以上

◆50MHz运行频率,1.25DMIPS/MHz,加快35%以上

◆单周期乘法指令,2~12周期硬件除法指令

◆快速可嵌套中断,6~12个时钟周期

◆具有MPU保护设定访问规则

◆64KB单周期Flash,16KB单周期SRAM

◆内置可编程的LDO输出2.25V~2.75V,步进50mV

◆支持非对齐数据的访问,有效地压缩数据到内存

◆支持位操作,最大限度使用内存,并提供创新的外设控制

◆内置系统节拍定时器(SysTick),方便操作系统移植

●丰富的外设资源

◆7组GPIO,可配置为输入、输出、开漏、弱上拉等模式

◆4个32位Timer,每个都可拆分为2个独立的16位子定时器,

具有定时、捕获、PWM、RTC等丰富功能

◆3路全双工UART,位速率高达3.125Mbps,16单元接收FIFO

和发送FIFO,支持串行红外协议(IrDASIR)

◆2路I2C,支持100kbps标准模式、400kbps快速模式

◆2路SSI,兼容FreescaleSPI、MICROWIRE、TexasInstruments

串行通信协议,位速率高达25Mbps

◆6路16位PWM,通过CCP管脚能产生高达25MHz的方波

◆3个模拟比较器

◆8通道10位ADC,采样速率可达1M/s,附带温度传感器

◆内置看门狗定时器(WatchDogTimer),确保芯片可靠运行

●在软件上采用“C语言+驱动库”的新概念开发模式

由于LuminaryMicro官方免费提供了基于C语言(符合ANSIC标准)的驱动库软件包,并且源代码是公开的,因此用户完全可以摒弃晦涩难懂的汇编语言,也不需要掌握底层寄存器的操作细节,只要懂C语言就能轻松玩转LM3S系列ARM。

这也使得32位ARM的入门门槛大大降低。

以下是操作GPIO端口点亮LED的示例,非常简捷:

SysCtlPeriEnable(SYSCTL_PERIPH_GPIOG);//第1步:

使能GPIOG端口

GPIOPinTypeOut(GPIO_PORTG_BASE,GPIO_PIN_3);//第2步:

设置PG3为输出

GPIOPinWrite(GPIO_PORTG_BASE,GPIO_PIN_3,0x00);//第3步:

令PG3=0,点亮LED。

3.1.2LM3S1138驱动库

LM3S1138在软件上采用“C语言+驱动库”的新概念开发模式

由于LuminaryMicro官方免费提供了基于C语言(符合ANSIC标准)的驱动库软件包,并且源代码是公开的,因此用户完全可以摒弃晦涩难懂的汇编语言,也不需要掌握底层寄存器的操作细节,只要懂C语言就能轻松玩转LM3S系列ARM。

这也使得32位ARM的入门门槛大大降低。

下面介绍五个常用的函数。

表3.1SysCtlClockSet函数

函数名称

SysCtlClockSet

所属文件

Driverlib.a

函数原型

voidSysCtlClockSet(unsignedlongulConfig)

功能描述

系统时钟设置

函数参数

ulConfig:

时钟配置字

函数返回值

特殊说明和注意点

通过SysCtlClockSet函数可以设定LM3S1138的系统时钟。

LM3S1138可以使用内部30kHz的振荡器,也可以使用外部实时振荡器。

Stellaris系列ARM的Cortex-M3内核最高可以在50MHz下工作,但是系统频率越高,功耗越大。

考虑到本课题为农村大棚环境监控,功率应尽量小,以节约能源。

只要保证能符合DS18B20和LCD的时序要求即可,故选择设定为12M。

表3.2SysCtlPeriEnable函数

函数名称

SysCtlPeriEnable

所属文件

Driverlib.a

函数原型

VoidSysCtlPeriEnable(IOPort)

功能描述

使能IO端口

函数参数

IO端口

函数返回值

特殊说明和注意点

要使用GPIO口,必须用此函数将端口开启

表3.3GPIODirModeSet函数

函数名称

GPIODirModeSet

所属文件

Driverlib.a

函数原型

voidGPIODirModeSet(unsignedlongulPort,unsignedcharucPins,unsignedlongulPinIO)

功能描述

IO端口方向设置

函数参数

ulPort:

所选GPIO端口的基址;ucPins:

指定管脚的位组合表示;ulPinIO:

管脚的方向或模式

函数返回值

特殊说明和注意点

表3.4GPIOPinWrite函数

函数名称

GPIOPinWrite

所属文件

Driverlib.a

函数原型

voidGPIOPinWrite(unsignedlongulPort,unsignedcharucPins,unsignedcharucVal)

功能描述

向所选GPIO端口的指定管脚写入一个值,以更新管脚状态

函数参数

ulPort:

所选GPIO端口的基址;ucPins:

指定管脚的位组合表示;ucVal:

写入指定管脚的值

函数返回值

特殊说明和注意点

表3.5GPIOPinRead函数

函数名称

GPIOPinRead

所属文件

Driverlib.a

函数原型

longGPIOPinRead(unsignedlongulPort,unsignedcharucPins)

功能描述

读取所选GPIO端口指定管脚的值

函数参数

ulPort:

所选GPIO端口的基址;ucPins:

指定管脚的位组合表示;

函数返回值

1个位组合的字节

特殊说明和注意点

3.2显示驱动程序的设计

OCMJ10*10D系列中文液晶显示模块是一个中英文文字与绘图模式的点矩阵液晶显示模块,内建512KByte的ROM字形码,可以显示中文字型、数字符号、英日欧文等字母,并且内建双图层(TwoPage)的显示内存。

支持文字与绘图两种混和显示模式。

支持2Page显示模式(And,Or,Nor,Xor),内建两个4.8K/9.6K(15x20D)Byte的显示RAM(DisplayDataRAM),共9.6K/19.2K(15x20D)ByteRAM,并且可做成4阶的显示效果。

MCU对OCMJ10*10D-1的操作必须满足下面的时序:

图3.1MCU对D系列中文液晶显示模块缓存器/DATA进行读取/写入动作

表3.6时序要求

对LCD进行驱动,必须按照图4.1来操作控制线并且时序要求要满足表4.6。

cpu频率为12M,远高于LCD控制模块的处理速度,因此要可以满足上述时序,只要在程序中加适当的延时即可。

根据上面提供的读写时序要求,以下程序可完成对LCD控制寄存器和显示寄存器的写操作。

LCD_CmdWrite是向LCD控制寄存器里写控制字,以完成对LCD的控制,包括控制LCD开启/关闭、设定光标位置和显示图片或文字切换等等,这些都是通过LCD_CmdWrite函数向控制寄存器发送控制字完成的。

而LCD_DataWrite函数是向LCD显示缓冲区写数据,写入的数据将会显示在LCD上。

voidLCD_CmdWrite(unsignedcharcmdaddr)

{

cs1=0;

rd=1;

rs=1;

BUS=cmdaddr;

wr=0;

Delay_Nus(5);

wr=1;

cs1=1;

}

voidLCD_DataWrite(unsignedcharwrdata)

{

cs1=0;

rd=1;

rs=0;

BUS=wrdata;

wr=0;

Delay_Nus(5);

wr=1;

rs=1;

cs1=1;

}

3.2.1API函数集

根据系统的需要,把LCD驱动程序封装起来,以供上层程序使用,我编写了以下API函数。

LCD_Initial函数要在整个系统初始化时调用。

如果没调用它就使用LCD,将会出现难以预计的错误。

函数说明见表3.7。

表3.7LCD_Initial函数

函数名称

LCD_Initial

所属文件

LcdDrv.C

函数原型

staticvoidLCD_Initial(void)

功能描述

初始化液晶

函数参数

函数返回值

特殊说明和注意点

必须且只需调用一次

表3.8LCD_Clear函数

函数名称

LCD_Clear

所属文件

LcdDrv.C

函数原型

voidLCD_Clear(void)

功能描述

清屏

函数参数

函数返回值

特殊说明和注意点

Display_Picture、LCD_Printf为标准输出函数,Display_Picture为图片输出函数,LCD_Printf为字符串输出函数见表3.9和表3.10。

调用时入口参数X,Y为显示坐标,此坐标以LCD左上角为坐标原点,以此点向右为X轴正方向,向下为Y轴正方向。

LCD坐标见图3.3。

 

表3.9Display_Picture函数

函数名称

Display_Picture

所属文件

LcdDrv.C

函数原型

voidDisplay_Picture(ucharx,uchary,uchar*pho,uchardotx,uchardoty)

功能描述

显示图片

函数参数

x,y为显示坐标Pho:

图片的首地址dotx,doty为图片的分辨率

函数返回值

特殊说明和注意点

表3.10LCD_Printf函数

函数名称

LCD_Printf

所属文件

LcdDrv.C

函数原型

voidLCD_Printf(ucharx,uchary,uchar*cha)

功能描述

显示汉字或字符

函数参数

x,y为显示坐标cha:

存储汉字或字符的首地址

函数返回值

特殊说明和注意点

图3.2LCD坐标

3.3传感器驱动程序设计

3.3.1DS18B20驱动:

DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出。

1.写时间片:

当主机把数据线从高逻辑电平拉至低逻辑电平时,产生写时间片。

有两种类型的写时间:

写1时间片和写0时间片。

所有时间片必须有最短为60微秒的持续期,在各写周期之间必须有最短为1微秒的恢复时间,在I/O线由高电平变为低电平之后,DS1820在15s至60s

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2