版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
无线传感器网络通过部署大量廉价的具有无线通信和自组织组网能力的传感器节点,相互协作地进行监测、采集和处理网络覆盖区域内感知对象的信息,并通过无线方式传送信息到监测中心或终端用户。系统总组成结构如图所示,它有多个传感器节点即温度采集器,这些节点位于被监测的区域中,带有射频收发器,主要完成温度数据的采集。收到请求命令时才传送数据,这是由于工作在侦听模式中,这样可以节能。温度采集器将收集的参数通过无线通信方式传送给接收模块。系统的接收模块主要负责收集和协调各个传感器节点的数据,并将其处理后上传给监控主机,以便温室管理人员随时查看温室的环境参数。图系统的总组成结构传感器节点的设计传感器节点的结构:温度采集器模块在系统中负责完成两方面的工作:一是接收分析用户的监测指令,并根据指令中的参数要求对环境数据进行检测采集;二是通过无线系统将采集的数据发送到接收模块。一个温度采集器主要有五部分组成,分别为传感器模块、处理器模块、无线收发模块、电源及外围模块、显示模块,结构如图所示。其中传感器模块的作用是数据的采集,处理器模块的作用是对采集到的数据进行处理,接着让无线收发模块进行发送,电源及外围电路模块负责给其他模块供电,显示模块负责显示温度。图传感器节点的硬件结构接收模块的设计接收模块的结构如图2.3所示,它由无线收发装置、微处理器和监控主机组成。接收模块的作用是接收传感器节点传递来的数据,调度传感节点的运行,实现采集数据的上传和用户指令。图接收模块的硬件结构其中接收模块的硬件是由一个Xbee-Pro芯片通过USB接口装置与监控主机连接,这一部分我用的是买的硬件。硬件如图2.4所示。2.4接收模块的硬件图3温室环境检测系统的硬件设计温度传感器节点处理器模块设计处理器单元是采集器网络节点的核心,和其他单元一起完成数据的采集、处理和收发。本文采用单片机AT89S51。AT89S51的引脚图如图3.1所示,它有40个引脚。它是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案[5]。图3.1单片机AT89S51的引脚图复位电路是电路稳定工作的保证,它完成上电复位。微机电路是时序数字电路,需要稳定的时钟信号,微机电路只有在VCC超过低于图3.2单片机晶振电路单片机在启动时都必须进行复位动作,使CPU以及各部件处于一定的初始状态,从这个初始状态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。单片机系统的复位方式有:手动按钮复位和上电复位。本文采用上电复位:只要在AT89S51的RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可[6]。单片机AT89S51的最小系统图如图3.3所示:图3.3AT89S51的最小系统图3.2无线通讯模块的设计ZigBee是一种崭新的,专注于低功耗、低成本、低复杂度、低速率的无线网络通信技术,而Xbee是实现ZigBee无线通信的传感器。Xbee无线网络传感器是低功耗器件,在使用时要特别注意供电方式,采用供电,如果要与+5V供电的单片机通信时,需采取光隔离器件(就是将+3.3V与+5V转换),也可采用专用芯片转换。与单片机通信过程中:只需将数据发送到Xbee,Xbee自动将数据发射到接收端,然后接收端Xbee再将数据传到接收端的单片机,单片机再进行数据处理,这样完成了数据传输过程。XBeePro的接口应用图3.4Xbee-Pro引脚电路图Xbee引脚电路如图3.4所示,它的引脚分配如表3.1所示。表3.1Xbee-Pro引脚分配表PinNameDirectionPinNameDirection1VCC电源11AD4模拟输入4或数字输入42DOUT数据输出12CTS明确对发送流量控制或数字I/O73DIN数据输入13ON模块状态指示灯4DO88数据输出14VREF电压参考的A/D输入5RESET模块复位15AD5相关的指标,模拟输入5或数字输入56PWM0PWM输出016AD6要求对发送的流量控制,模拟输入6或数字输入67reserved请勿连接17AD3模拟输入3或数字输入38reserved请勿连接18AD2模拟输入2或数字输入29DTR睡眠引脚或数字输入819AD1模拟输入1或数字输入110GND接地20AD0模拟输入0或数字输入0图3.5Xbee-Pro模块内部数据控制流图在发送器发送出去之前,在DI引脚进入XBeePro模块的串行数据,均可存储在DI缓冲器中;接收到的RF数据进入DO缓冲器,最后再串行送入主机中[7]。单片机与通讯模块之间的硬件连接由于单片机AT89S51模块与Xbee模块之间不能直接通信,(单片机的额定电压是5V,而Xbee模块使用的电压是)为了让它们之间能够更好的通信,现设计一个电平转换模块。该模块由两部分组成:MAX232芯片和SP3203。MAX232的最小系统如图所示。图3.6MAX232的最小系统电路图MAX232芯片是美信(MAXIM)公司专为RS232标准串口设计的单电源电平转换芯片,使用+5v。引脚介绍:电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口。数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道;8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。供电。15脚GND、16脚VCC(+5v)[8]。SP3203的最小系统如图所示。图3.7SP3203的最小系统电路图该SP3203芯片最主要的功能是能保持高效的数据传输速率。连接总图如图3.8所示:图3.8MAX232与SP3203连接图在图中的T1out与T1in分别接单片机中的与引脚,而T2中与R2输出分别接Xbee中的DOUT与DIN引脚。3.3温度采集电路模块DS18B20的管脚说明及内部结构传感器种类很多,可以监测温度的传感器也很多,美国DALLAS公司生产的单线数字温度传感器DS18B20,可以把温度信号直接转换成串行数字信号供计算机处理,DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式。为了方便用户,DS18B20采用3脚TO292封装或8脚SOIC封装。图3.9为DS18B20的管脚排列。图3.9DS18B20封装及引脚图引脚说明:GND接地。DQ为数字信号输入/输出端。VDD为外接电源输入端(在寄生电源接线方式时接地)。DS18B20的主要特征:单线接方式,微处理器与DS18B20之间可以通过一条的双向通讯。测温范围-55℃~+125℃,固有测温分辨率可以进行多个点组成网,在三线上可以接多个DS18B20,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。工作电源:3~5V/DC在使用中不需要任何外围元件测量结果以9~12位数字量方式串行传送不锈钢保护管直径Φ6适用于DN15~25,DN40~DN250各种介质工业管道和狭小空间设备测温标准安装螺纹“M10X1,M12X1.5,G1/2”任选PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非易失性温度报警触发器TH和TL、配置寄存器。图3.10为DS18B20的内部结构图。64位Rom64位Rom和单线接口电源检测高速缓存存储器存储器和控制器8位CRC生成器温度灵敏元件低温触发器TL高温触发器TH配置寄存器图3.10DS18B20内部结构图DS18B20工作原理DS18B20原理图如所示:在减法计数器1中,低温系数的晶振发出了脉冲信号;在减法计数器2中,高温系数晶振发出了脉冲输入信号。图中还隐含着计数门,当DS18B20对低温度系数振荡器产生的时钟脉冲进行计数时计数门就打开,这样就可以完成测量温度,高温度系数振荡器决定着计数门的开启时间。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置值将重新被装入,脉冲信号通过减法计数器1进行减法计数,这样循环直至计数器2变为0,这样寄存器的累加就终止了,这个时候寄存器中的值就是所测温度值,图3.11所示的非线性被斜率累加器修正和补偿,其输出用于修正计数器的预置值,在寄存器值达到被测温度值之前计数门就不关闭。LSBLSB置位/清除停止加1斜率累加器计数器1=0计数器2=0预置低温度系数晶振高温度系数晶振比较预置温度寄存器DS18B20原理图高速暂存存储器中的第五个字节是配置寄存器。其各位定义如所示。表3.2DS18B20配置寄存器结构TMR1R011111其中,TM:测试模式标志位;R0、R1:温度计分辨率设置位,四种分辨率如表,出厂时R0、R1置为0:R0=1,R1=10,用户可根据需要的分辨率来改写配置寄存器的配置[9]。表3.3配置寄存器与分辨率关系表R0R1温度计分辨率/bit最大转换时间/us111275010113750110009DS18B20工作步骤(1)对所有的单总线上的DSl8B20进行初始化;(2)对一个ID号配置多个DSl8820,先接一个DSl8B20,再接多个DSl8B20。(3)自动温度转换,命令(OX44H);(4)等待转换结束,这个时间长短与分辨率有关;(5)查收结果,发出命令(OXBEH),识别DSl8B20的RAM的9个字节,且核对数据;(6)若校验正确,传送命令信息要经过初始化时序、读时序、写时序[10]。表3.4DS18B20命令集和代码说明命令代码说明读ROM33H读DSl8820序列号匹配ROM55H用于多个DSl8820实时定位跳过ROMCCH跳过读取编码值操作搜索ROMF0H识别总线上的各器件的编码,为下一步操作做准备报警搜索ROMECH搜索报警器件读存储器BEH从高速暂存器读取温度值和CRC值写存储器4EH将数据写入高速暂存器的第2和3字节中复制存储器48H将高速暂存器中第2和3字节复制到EERAM重调EERAMB8H将EERAM内容写入高速暂存器的第2和3字节读供电方式B4H读取DSl8820的供电方式温度转换44H启动在线的DSl8820做温度转化DS18B20工作时序DS18B20的工作时序主要包括:初始化时序、读时序、写时序。(1)初始化时序初始化时序见图3.12。主机总线在t0时刻发送一个最短为480μs的低电平复位脉冲信号,在t1时刻释放总线、进行接收,DSl8B20接着等待15μs~60μs,然后在t2时刻发出低脉冲(60μs~240μs),响应之后又变成高电平,响应时间在t2~t4之间,至少为480μs[11]。tt015us~60us60us~240ust3t2t1t4400us~960us480us图3.12初始化时序图(2)写时序从t0时刻电平由高到低就产生了写时序,见图3.13、3.14,从t0以后15μs~60μs之间对总线采样。如果是低电平,写入的位是0;如果是高电平,写入的位是1。连续写2位间的时序应大于1μs[12]。>>1ust015us45ust1>1ust015us45ust1>60us>60us图3.13写0时序图图3.14写1时序图(3)读时序见图3.15,在t0时刻主机总线从高电平到低电平时总线只须保持低电平1μs之后在t1时刻将总线拉高,产生读时序,读时序在t1时刻后t2时刻前有效。t2距t0为15μs,也就是说,t2时刻前主机必须完成读位,并在t0后的60μs~120μs内释放总线。>>1ust0t1t2t315us主机起作用DS18B20起作用上拉电阻起作用>60us图3.15读时序图由DS18B20的协议可知,温度转换的完成需要由以下三个步骤,每次读写前对DS18B20复位,这样才能进行预定的操作,在发送RAM指令前才发送ROM指令。主CPU释放的信号后,DS18B20收到此信息,等待一定时间,随后发出一定时间的低脉冲,主CPU收到此信号才表示成功复位。温度采集电路硬件连接本系统为多点温度测试。理论上可以在一根数据总线上挂256个DS18B20,但实践应用中发现,如果挂接25个以上的DS18B20仍旧有可能产生功耗问题,另外单总线长度也不宜超过80M,否则也会影响到数据的传输。在这种情况下我们可以采用分组的方式,一根数据总线上挂8个DS18B20。在实际应用中还可以使用一个MOSFET将I/O口线直接和电源相连,起到上拉的作用。DS18B20与单片机的一个接口电路如图3.16所示。图3.16DS18B20与单片机的一个接口电路显示模块本文我选用1602液晶显示。1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用。1602的结构如图3.17所示。图7LCD1602的结构图1602的引脚与单片机相对应的引脚相连接,如图3.17所示。1602采用标准的16脚接口:第1脚:VSS接地第2脚:VCC接+5V第3脚:V0为CRT对比度调节端口,对比度较弱时接正电源,对比度最高时接地电源。第4脚:RS为选择寄存器,选择数据寄存器时高电平1,选择指令寄存器时低电平0,。第5脚:R为读信号线,W为写信号线,进行读时为高电平1,进行写为低电平0。第6脚:E端为使能端。第7~14脚:这八个引脚是双向数据端。第15~16脚:这两个引脚是背灯电源。15/16脚背光正/负极[13]。1602可以显示两行,每行16个字符液晶模块,现让上一行显示时间,下一行显示温度。1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值。指令集:1602通过D0~D7的8位数据端传输数据和指令。显示模式设置:(初始化)00110000[0x38]设置16×2显示,5×7点阵,8位数据接口;显示开关及光标设置:(初始化)00001DCBD显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效)000001NSN=1(读或写一个字符后地址指针加1&光标加1),N=0(读或写一个字符后地址指针减1&光标减1),S=1且N=1(当写一个字符后,整屏显示左移)S=0当写一个字符后,整屏显示不移动数据指针设置:数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H)其他设置:01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)键盘和单片机的接口电路设计按键是一组常开的按键开关,每个按键都被赋予一个代码,称为键码。按键的开关状态通过一定的电路转换为高、低电平状态。抖动是处在高、低电平之间的一种不稳定状态,闭合和释放过程在达到稳定以前要经过一定的过程。抖动持续时间越长越不好,应对抖动采取消除措施。本文采用相应的软件程序来消除抖动。当发现有键按下时,延时10-20ms再查询是否有键按下,若没有键按下,说明上次查询结果为干扰或抖动;若仍有键按下,则说明闭合键已稳定。本设计采用的是独立式按键,以查询方式工作。直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,每个按键的工作状态相互不会产生影响。设计的电路如图4.18所示。图4.18独立式键盘与单片机连接电路图口表示起动键,起动系统工作。口表示停止键,停止系统工作。口表示通道切换键,选择要观察的那路温度。口表示设限键,设定系统工作环境的范围。口表示加一键,数字“+”键,按一下则上限温度设定值加1。P1.5口表示减一键,数字“—”键,按一下则下限温度设定值减1。3.6电源模块本文我们采用两个X1117电源。X1117有固定电压输出和可调电压输出两种方式。固定输出有五种固定的电压1.5V、1.8V、2.5V、3.3V、5.0V,可调电压输出精度为1%。而推荐输入电压为15V。X1117内部有特殊的功能:集成过热保护和限流。这样可以应用于各类电子产品。电源X1117的典型应用电路如图3.19所示。图9电源X1117的典型应用电路图总体模块由以上各模块组成总体硬件结构,电路图在附件中。4温室环境检测系统的软件设计温度传感器节点的程序设计主程序是对整个系统框图的描述。本系统主程序的功能是上电后,完成系统初始化,接下来进行键盘输入扫描,之后进行数据采集,对单总线上的DS18B20温度传感器进行循环采集,每个DS18B20采集15组数据,通过外部中断INT0进行每次采集,够十次后关中断;进行数据处理(平均滤波),将处理后的数据存入缓冲区,等待发送;整个采集和发送过程是循环进行的。主程序的流程如图4.1所示:温度采集流程向DS18B20发送初始化命令,进行复位操作,接着跳过ROM,启动温度转换命令,再次初始化,匹配ROM,然后送入一个DS18B20序列号,读出温度,处理信息。温度采集流程如图4.2所示:开始开始初始化发送ROM操作命令读DS18B20序列号读存储器读匹配的DS18B20温度是否采集10次?采集数据处理温度显示调取发送数据子程序否是等待中断输入扫描有输入?输入处理NY是否超限?N报警Y图4.1主程序流程图向DS18B20发送初始化命令向DS18B20发送初始化命令初始化成功报错并返回发送CCH,跳过ROM命令发送44H,启动温度转换再次初始化初始化成功报错并返回送入55H,匹配ROM送入一个DS18B20序列号发送BEH,准备读温度读出温度,数据保存是是否否图4.2温度采集程序流程图DS18B20软件编程DSl8B20三个基本子程序为:DSl8B20初始化程序、读DSl8B20子程序、写DSl8B20子程分别设计如下:***程序初始化***ORG3000HSTART1:MOVPSW,#00H;初始化CLREA;清CPU中断允许位MOVTMOD,#20H;设置定时器/计数器1定时、工作方式2MOVTH1,#0F8H;设置定时常数MOVTL1,#0F8HMOVPCON,#80H;设置SMOD=1SETBTR1;启动定时器MOVSCON,#50H;设定串行口工作方式1***温度数据采集子程序***INT0:PUSHAPUSHPSWDS18B20的初始化(PSW.5=1表示18B20存在,PSW.5=0表示不存在)RESET:CLRP2.0;发复位脉冲MOVR7,#32;延时500usSETBP2.0;释放总线MOVR7,#4;延时60usLACALLDELAY15CLRPSW.5;PSW.5=0JBP2.0,RET1;若P2.0=1不存在,跳转SETBPSW.5;存在DS18B20MOVR7,#8;延时120usLCALLDELAY15RET1:RETDELAY15:MOVR6,#6DEL151:DJNZR6,DEL151DJNZR7,DELAY15;延时R7*15usRET***DS18B20的写程序***WR18B20:CLRCMOVR1,#8WR18B201:CLRP2.0;产生写信号MOVR7,#1;延时15usLCALLDELAY15RRCAMOVP2.0,C;发送一位数据给18B20MOVR7,#1LCALLDELAY15NOPDJNZR1,WR18201:一个字节数据是否发送完RET***DS18B20的读程序***RD18B20:CLRCMOVR1,#9MOVR0,#TEMPLSBNOPNOPCLRP2.0;产生读信号NOPNOPSETBP2.0;准备输入数据MOVR7,#1LCALLDELAY15RRCADJNZR2,RD18B202;判断一个字节是否读完MOVX@R0,A;保存结果INCR0DJNZR1,RD18B201;判断9个字节是否读完POPPSWPOPARET中断控制子程序设计程序流程如图4.3所示,此中断定义为每2秒采集一次不同的温度传感器的温度。YYN中断入口2S到否定时器1重新赋值装下一个温度显示存储单元地址返回.图4.3中断控制流程图键盘输入软件编程键盘输入程序流程图如图4.4所示。开始开始—是否有键按下?P1.0=0P1.1=0P1.2=0P1.3=0P1.4=0P1.5=0结束执行开始程序执行停止程序执行通道切换程序执行设限程序执行加一程序执行减一程序NY图4.4键盘输入子程序流程图键盘程序ORG0000H;规定起始地址AJMPMAINORG0030H;入口地址MAIN:JNBP1.0,KAISHI;开始JNBP1.1,TINGZHI;停止JNBP1.2,QIEHUAN;切换通道JNBP1.3,SHEXIAN;设定温度JNBP1.4,JIA;加JNBP1.5,JIAN;减
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- AI技术在传统刺绣文化保护中的应用
- 预防接种人员培训考试试题及答案
- 医院感染聚集、暴发预防与控制措施培训试题及答案
- AI技术还原古代服饰文化与制作工艺
- 十八项医疗核心制度考试题库及答案
- 临床本科预防医学名词解释试题库及答案
- 黑龙江省大庆市高职单招2026年医学综合自考预测试题(含答案)
- 福建省福建注册测绘师考试测绘综合能力题库及答案(2026年)
- 春天流行病预防常识测试题及答案
- 安徽医学高等专科学校单招职业技能考试题库及答案
- 2026年云南事业单位招聘(职测)笔试题目及答案
- 观书有感其二其一课件
- 湖南省社会保险培训课件
- 2026年GRE考试数学真题解析及答案
- 公路安全韧性提升技术指南(试行)
- 人教版六年级数学上册期末专题04求比值和化简比八大类型练习(含答案和解析)
- 2025年开放大学化工原理试题库及答案
- 四川商投集团招聘笔试题库2025
- 2025年定西辅警招聘考试真题及参考答案详解一套
- 贪婪的多巴胺课件
- 生产车间领料管理制度
评论
0/150
提交评论