基于AT91SAM7S64的无线温湿度监控系统设计.doc_第1页
基于AT91SAM7S64的无线温湿度监控系统设计.doc_第2页
基于AT91SAM7S64的无线温湿度监控系统设计.doc_第3页
基于AT91SAM7S64的无线温湿度监控系统设计.doc_第4页
基于AT91SAM7S64的无线温湿度监控系统设计.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学学 号:号: 常常 州州 大大 学学 毕毕业业设设计计(论论文文) (2013 届)届) 题题 目目 基于基于 at91sam7s64at91sam7s64 的无线温湿度监控系统设计的无线温湿度监控系统设计 学学 生生 学学 院院 信息科学与工程学院信息科学与工程学院 专专 业业 班班 级级 通信工程通信工程 091091 校内指导教师校内指导教师 专业技术职务专业技术职务 讲师讲师 二二一三年六月一三年六月 i 学位论文独创性声明学位论文独创性声明 本人郑重声明:所提交的学位论文是本人在导师的指导下,独立进行 研究工作所取得的成果。除文中已经注明引用的内容外,本论文不含其他 个人或集体已经发表或撰写过的研究成果,也不含为获得常州大学或其它 教育机构的学位证书而使用过的材料。对本文的研究作出重要贡献的个人 和集体,均已在文中以明确方式标明。本人承担本声明的法律责任。 签名: 日期: 说明:本页签名及日期均为手签。 ii 基于基于 at91sam7s64at91sam7s64 的无线温湿度监控系统设计的无线温湿度监控系统设计 摘摘 要要: 在现代科技发展过程中,嵌入式系统在诞生之初就有着独特的地位,进入信息时代, 在更多的新技术支持下,走向一个新的发展时代,即从普遍的低端应用进入到一个高、 低端并行发展的时代,其主要标志是 32 位 mcu 的大范围应用。随着众多嵌入式系统 厂家的参与,基于 arm 系列处理器的应用技术广泛的应用到各个领域,更加的方便了 人们的生活和工作。温湿度的自动测量和现实在生活和生产中具有非常重要的意义。 以往的人工采集数据不仅占用人力资源,而且可靠性低,容易发生差错,不能满足现 代化的需求。一般的温湿度采集系统数据显示单调,而且需要在复杂的地区布线,十 分的不便。 本文采用应用广泛的 arm 系列微处理器 at91sam7s64 作为平台的核心构建系 统。主机负责数据的采集和发送功能,使用 51 单片机负责数据的接收功能,在计算机 上显示数据参数。温湿度采集模块采用温湿度传感器芯片 dht11,无线收发模块采用 无线数传模块 nrf24l01。本项目能够实时采集周围环境的温度和湿度,且不受布线 的约束,是适应现代社会的高价值研究。 关键字:关键字:at91sam7s64;温湿度监测;无线数传模块;温湿度传感器 iii design of environmental monitoring node on single-chip at91sam7s64 based wireless temperature and humidity monitoring system design abstract:in the process of development of modern science and technology, embedded system has a unique position near the beginning of the birth , into the information age, more new technology support, toward a new era of development , from the common low-end applications into a high and low end of the era of parallel development, the main sign is the widespread application of 32-bit mcu. as many embedded systems manufacturers participate in, based on arm series processor application technology is widely applied to various fields, more convenient peoples life and work. temperature and humidity automatic measurement and practical in life and production has very important significance. previous artificial data not only takes up human resources, and low reliability, prone to error, cannot meet the needs of modernization. normal temperature and humidity data acquisition system show drab, and needs in areas of complex wiring, very inconvenient. based on the widely used arm series microprocessor at91sam7s64 at the core of platform build system. host is responsible for data collection and send function, using 51 mcu is responsible for the receiving function of data, data parameters displayed on the computer. temperature and humidity acquisition module using dht11 temperature and humidity sensor chip, nrf24l01 wireless transceiver module uses the wireless data transmission module.this project can collect real-time temperature and humidity of the surroundings, and is not bound by wiring, the high value of research is to adapt to the modern society. keywords:at91sam7s64; temperature and humidity monitoring; wireless data transmission module; temperature and humidity sensor iv 目录目录 摘摘 要:要:ii 1 引言引言.1 1.1 课题背景及研究的意义 .1 1.2 课题研究的目的 .1 1.3 国内外现状及发展趋势 .1 1.4 论文结构安排 .2 2 系统硬件设计系统硬件设计3 2.1 硬件总体设计3 2.2 arm 系统板介绍 3 2.3 温湿度采集模块设计5 2.4 无线收发模块设计6 2.4.1 数据发送模块设计.6 2.4.2 数据接收模块设计.9 3 软件的设计与实现软件的设计与实现13 3.1 系统总体软件设计13 3.2 温湿度采集模块程序设计14 3.3 无线收发模块程序设计17 3.3.1 数据发送模块程序设计.17 3.3.2 数据接收模块程序设计.22 4 系统调试系统调试.26 4.1 调试平台26 4.2 数据采集模块调试26 4.3 数据发送和接收模块调试27 4.4 设计中遇到的问题及解决方法28 5 结论结论.29 参考文献参考文献.30 致谢致谢.31 附录附录.32 常州大学毕业设计(论文) 第 1 页 共 34 页 1 引言引言 1.1 课题背景课题背景及研究的意义及研究的意义 温湿度的测量在仓储管理、生产制造、科学研究以及日常生活中得到广泛 的应用。传统的温湿度测量采用有线测控系统,必须实施网络布线工程,铺设 光纤或者电缆,大大增加了系统的成本,同时降低了系统的灵活性、可维护性 以及可扩展性。把无线通信技术应用到温湿度测量系统中,通过传感器实时采 集各节点处温湿度的信息,经过处理后再通过无线数据采集系统将温湿度信息 传输到监控终端,从而达到集成化、低成本和易操作的目的。目前,这种微功 率短距离无线数据传输技术在民用、工业等领域得到了广泛应用。 1.2 课题研究的目的课题研究的目的 基于at91sam7s64开发平台,使用无线数传模块,与pc机进行网络通信,具 体完成如下工作: (1)设计arm与温度、湿度传感器以及无线接口电路等; (2)设计arm的无线通信程序,能采用中断方式实现数据的收发; (3)完成上位机程序,设计arm与上位机的无线通信协议,arm根据接收的 通信命令采集温度或湿度数据发送到上位机,显示到界面上。 1.3 国内外现状及发展趋势国内外现状及发展趋势 现有的温湿度采集系统主要基于有线传输,有线传输需要现场布线,因此 需要大量的人力物力,在遇到一些相对封闭或不便现场驻点的环境,将对有线 温湿度采集有着极强的制约力,有线传输的维护也是不容易实现的。 伴随着智能化、信息化、网络化的发展,温湿度采集开始向着无线传输的方 向发展,无线采集有着以下优点: 1、可实时采集温度、湿度数据,采集间隔可调。 2、产品能全程跟踪记录展柜,恒温恒湿室/箱、药品仓库、冷库、机房、车 间、库房、实验室等环境温湿度变化; 3、用户可以通过数据管理软件对所取数据进行查看、分析并可将图表或报 表存档、打印出来; 4、液晶显示,在线同时显示温度、湿度数据,时钟,报警等信息,现场实 时温湿度环境一目了然; 5、数字信号输出,采用无线数据传输方式,将信号传输到指定的接收设备 或数据集中器,然后通过温湿度系统软件进行监控。 6、设备本身具有数据存储功能,在电脑关闭或温湿度监测软件没有开的情 况下,温湿度采集器仍然自动保存数据,在需要时可以通过温湿度监测软件 下载调取设备内部存储的数据到电脑。(软件未开温湿度数据不会丢失) 7、用户可以根据实际需要任意设置报警的上下限,软件会识别显示记录超 限数值; 8、可根据需要扩展输出控制功能; 9、稳定性高可 24 小时不间断工作,是替代传统温湿度记录仪的新式产品。 10、整机采用防雷设计,在雷雨多的地方不易受损坏。 常州大学毕业设计(论文) 第 2 页 共 34 页 11、提供数据即读取信号通讯协议(或 dll 链接库),可根据工程应用进行二 次开发,大大减少开发时间及成本。 arm 是 advanced risc machines 的缩写,它具有体积小、功耗低、成本低、 性能好等优点,并且具有 16 位和 32 位双指令集。它被广泛应用在 16 位和 32 位嵌入式 risc 解决方案中,嵌入式 risc 微处理器市场份额的 75%被它占有。 arm 公司是业内公认的领先的半导体知识产权提供商,该公司本身并不生产芯 片,主要靠转让其技术通过许可的合作伙伴来生产不同的芯片,从而引领全球 嵌入式电子技术研究的潮流。arm 的片上系统解决方案也推动了当今嵌入式市 场中一系列终端产品的技术发展。 1.4 论文结构安排论文结构安排 本文基于本次毕业设计的过程与要求,将论文分为五章。具体内容如下: 第 1 章 引言。本章简单介绍了课题的研究背景、目的和意义,温湿度采集 系统的国内外发展现状和相关领域中已有的研究结果,该设计的预期结果和意 义。 第 2 章 系统硬件设计。本章介绍本课题硬件系统各部分电路的设计、实现, 讲述了芯片的工作原理及各模块的基本功能。 第 3 章 系统软件设计。本章根据系统的总方案,设计出程序的总流程图, 并利用 c 语言编写相应的程序。 第 4 章 系统调试。本章根据已有的软硬件,进行调试,得到的相应成果。 第 5 章 结论。本章主要讲述了设计的实际结果,以及得出相关结论。 常州大学毕业设计(论文) 第 3 页 共 34 页 2 2 系统硬件设计系统硬件设计 2.1 硬件总体设计硬件总体设计 本系统硬件部分主要为数据采集端与数据接收端两部分。数据采集端主要 包括 at91sam7s64 控制系统、数据采集模块和数据发送模块。arm 控制系统是 整个系统的控制核心,数据采集模块采集环境的温湿度,再利用数据发送模块 将采集到的温湿度数据发送到数据接收端进行相应的处理。数据接收端主要包 括 51 单片机控制系统、数据接收模块和串行通信模块。数据接收模块接收到采 集方的数据后,将数据传送给单片机控制系统,再通过 rs 一 232 串行通信将数 据传送给计算机,实现实时监测。 硬件总体结构: 温湿度传感器 dht11 at91sam7s64 nrf24l01 图图 2.12.1 湿湿度发送模块的结构框图湿湿度发送模块的结构框图 nrf24l01 51单片机计算机 图图 2.22.2 温湿度接收模块的结构框图温湿度接收模块的结构框图 2.2 armarm 系统板介绍系统板介绍 arm7是整个系统的主控模块,它负责整个系统的控制和管理。本设计采用 微处理器为at91sam7s64,at91sam7s64是atmel 32位arm risc 处理器小引脚数 flash微处理器家族的一员。它拥有64k字节的高速flash和16k字节的sram,丰 富的外设资源,包括一个usb 2.0设备,使外部器件数目减至最低的完整系统功 能集。这个芯片是那些正在寻求额外处理能力和更大存储器的8 位处理器用户 的理想选择。 flash存储器可以通过jtag-ice 进行编程,或者是在贴装之前利用编程器 的并行接口进行编程。锁定位可以防止固件不小心被改写,而安全锁定位则可 以保护固件的安全。 常州大学毕业设计(论文) 第 4 页 共 34 页 at91sam7s64 的复位控制器可以管理芯片的上电顺序以及整个系统。bod 和看门狗则可以监控器件是否正确工作。 at91sam7s64是一个通用处理器。它集成了usb设备端口,使得它成为连接 pc或手机的外设应用的理想芯片。极具竞争力的性价比进一步拓展了它在低成 本、大产量的消费类产品中的应用。 图图2.32.3 at91sam7s64at91sam7s64的系统结构框图的系统结构框图 电源:at91sam7s64有6种类型的电源输入引脚以及一个集成的电源调节器, 使得器件可以工作于单一电压。这6 种电源引脚类型为: vddin:电压调节器的电源输入。输入电压范围是3.0v 到3.6v,标称值为 3.3v。如果不用电压调节器,则vddin 应该连接到gnd。 vddout:电压调节器的输出, 1.8v。 vddio:i/o及usb 的电源。支持电压范围为3.0v 到3.6v,标称值为3.3v。 vddflash:为flash 部分地提供电源,而且是flash正确工作的先决条件。电 压范围为3.0v 到3.6v,标称值为3.3v。 vddcore:芯片逻辑部分的电源。电压范围从1.65v 到1.95v,典型值为 1.8v。可以通过解耦电容连接到vddout 引脚。vddcore 是器件内核,包括 flash正确 工作的前提。 vddpll: 振荡器和pll的电源。可以直接连接到vddout。 各个输入电源并没有独立的地回路引脚。因此 gnd 与系统地平面的连接应 尽可能短。 功耗:在25c 时,vddcore 的静态电流小于60 a,包括rc 振荡器、电 压调节器和上电复位。使能掉电复位bod 将额外增加20 a 的静态电流。全速 工作且运行不基于flash 时vddcore的动态功耗 小于50 ma。若程序在flash 上 运行则vddflash 的电流不超过10 ma。 电压调节器:at91sam7s64 有一个由系统控制器管理的电压调节器。 在正常模式下,电压调节器消耗的静态电流还不到100 a,而输出电流则高达 100 ma。电压调节器支持低功耗模式。在此模式下它只消耗不到20 a 的静态 常州大学毕业设计(论文) 第 5 页 共 34 页 电流,输出电流可达1 ma。 vddout 必须有足够的解耦电容以减少纹波和防止振荡。最好的方法是并联两个 电容于vddout和gnd之间:一个470 pf (或1 nf) npo材质的电容,尽量靠近芯 片;另一个是2.2 f ( 或3.3 f) x7r 材质的电容。 vddin 也需要足够的解耦来提高启动稳定性以及减少电压降。输入电容也需要 尽量靠近芯片。例如可以将两个电容并联在一起:100 nf 的npo 电容和4.7 f 的x7r 电容。 at91sam7s64 支持3.3v 单电源模式。片内电压调节器连接到3.3v,输出则 连接到vddcore 和vddpll。图2.3出了通过usb 总线供电的线路图。 图图 2.42.4 3.3v3.3v 单电源供电系统单电源供电系统 2.32.3 温湿度采集模块设计温湿度采集模块设计 数据采集模块采用温湿度传感器dht11,。dht11数字温湿度传感器是一款 含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技 术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感 器包括一个电阻式感湿元件和一个ntc测温元件,并与一个高性能8位单片机相 连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优 点。每个dht11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序 的形式储存在otp内存中,传感器内部在检测信号的处理过程中要调用这些校准 系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗, 信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最 佳选则。产品为4 针单排引脚封装。连接方便,特殊封装形式可根据用户需求 而提供。 接口说明:建议连接线长度短于20米时用5k上拉电阻,大于20米时根据实际 情况使用合适的上拉电阻 dht11 引脚说明,如表 2.1 所示: 常州大学毕业设计(论文) 第 6 页 共 34 页 表表 2.12.1 dht11dht11 引脚说明引脚说明 图图 2.5 arm7 与与 dht11 的硬件接口的硬件接口 dht11的供电电压为35.5v。传感器上电后,要等待1s 以越过不稳定状态 在此期间无需发送任何指令。电源引脚(vdd,gnd)之间可增加一个100nf 的 电容,用以去耦滤波。测量分辨率分别为8bit(温度)、8bit(湿度)。 dht11是用单总线传输数据,在arm7发送起始信号,dht11返回应答信号还 有发送数据,起始阶段都需要将总线置为低电平,然后再拉为高电平,所以同 样需要上拉电阻,阻值大约为5k。dht11也采用外部电源方式供电,在外部电 源供电方式下,整个电路工作稳定可靠,抗干扰能力强,电路也比较简单,同 时总线上可以挂接多个dht11传感器,组成多点测量温湿度系统。此时,dht11 的3引脚悬空,4引脚要接地或者电源的负极。 2.42.4 无线收发模块设计无线收发模块设计 2.4.12.4.1 数据发送模块设计数据发送模块设计 数据发送模块选用无线数传 nrf24l01,由 ram 平台控制发送数据。 nrf24l01 是一款工作在 2425ghz 的单片无线收发器芯片。其无线收发器 包括:频率发生器、增强型 schockburst tm 模式控制器、功率放大器、晶体振 荡器、调制器和解调器。频道选择和协议的设置可以通过 spi 接口进行设置。 其供电电压范围为 1933v,最大发射功率为 1mw。它采用 spi 的通信方式 进行数据的交互。该模块在通信时 sck 高电平有效,在一个跳变沿采样,高位 在前。此外模块的引脚数据传输的速率采用 1mhz。模块数据的收发速率选择 1mbps。 表表2.22.2 nrf24l01nrf24l01模块引脚功能模块引脚功能 管脚功能 常州大学毕业设计(论文) 第 7 页 共 34 页 vdd 电源1.9-3.6v输入 ce 工作模式选择,rx或tx模式选择 csn spi片选使能,低电平使能 sck spi时钟 mosi spi输入 miso spi输出 irq 中断输出 gnd 电源地 说明: (1) vcc脚接电压范围为 1.9v3.6v之间,不能在这个区间之外,超过3.6v将会 烧毁模块。推荐电压3.3v左右。 (2) 除电源vcc和接地端,其余脚都可以直接和普通的5v单片机io口直接相连, 无需电平转换。当然对3v左右的单片机更加适用。 (3) 硬件上面没有spi的单片机也可以控制本模块,用普通单片机io口模拟spi 不需要单片机真正的串口介入,只需要普通的单片机io口就可以了,当然用串 口也可以了。 (4) 9脚接地脚,需要和母板的逻辑地连接起来;2脚和9脚悬空。 (5) 排针间距为 100mil,标准 dip 插针 图图2.62.6 nrf24l01nrf24l01引脚排列引脚排列 常州大学毕业设计(论文) 第 8 页 共 34 页 图图2.72.7 nrf24l01 及外部接口及外部接口 ce 1 csn 2 sck 3 mosi 4 miso5 irq 6 vdd 7 vss 8 xc2 9 xc1 10 vdd_pa11 ant1 12 ant2 13 vss 14 vdd15 iref 16 vss 17 vdd 18 dvdd 19 vss 20 u1 nrf24l01 vdd c9 10nf c8 1nf c1 22pf r2 22k r1 1m x1 16m c2 22pf c3 2.2nf c4 4.7pf c7 33nf c6 1.0pf l3 3.9nh l1 8.2nh l2 2.7nh c5 1.5pf 50omh,rfi/o ce csn sck mosi miso irq 图图 2 2. .8 8 n nr rf f2 24 4l l0 01 1 电电路路原原理理图图 常州大学毕业设计(论文) 第 9 页 共 34 页 图图 2.92.9 arm7arm7 与与 nrf24l01nrf24l01 的硬件接口的硬件接口 nrf24l01 有工作模式有四种: 收发模式 配置模式 空闲模式 关机模式 工作模式由 pwr_up register 、prim_rx register 和 ce 决定,详见表 2.3 表表 2.32.3 nrf24l01nrf24l01 工作模式工作模式 2.4.22.4.2 数据接收模块设计数据接收模块设计 数据接收模块采用 51 单片机作为控制系统。51 系列单片机是大家非常熟 悉的微处理器,是最早由美国 intel 公司生产的一种单片机。其具有的特点主 要有:体积小、集成度高、运算快、经济等。其应用范围为工业自动化、信息 采集、家电控制等。 在很多现场操作中需要对大量的数据进行采集和处理,对于单片机本身的 数据存储器以及在外部扩展的数据存储器而言,这些数据是十分庞大的,其容 量远远满足不了需要采集的数据,于是要将数据传输到上位机进行处理和分析。 有线通信的布线、组网等局限性,满足不了技术的发展和需要,而无线通信有 很多方法可以解决,如红外脉冲传输、蓝牙技术、雷达波等,以 rs232 为标准 常州大学毕业设计(论文) 第 10 页 共 34 页 的无线射频通讯方式具有很多优点,如可工作于 ism 频段,并有内置 uart 接口, 其应用广泛,价格低廉。 随着集成电路工业的发展,51 系列单片机作为一个微控制器的内核,被集 成到各种片上系统(英文缩写为 soc)中。它只须占用很小的硅片上的面积, 成本非常低,然后同其他程序存储器、外围电路等,组合成一个低功耗、低成 本的片上系统。这些采用 51 微处理器内核的片上系统,一方面能继续使用 51 微处理器几十年来积累的各种应用软件资源,另一方面具有更多的功能、更快 的速度、更小的体积、更低的功耗,因此,具有更广阔的市场和发展空间。 本设计采用 at89 系列单片机内部资源就能满足数据接收模块硬件设计的需 求。不需扩展外部存储器或 i/o 接口等器件,通过程序,就能达到对单片机的 控制。 图图 2.102.10 无线接收流程图无线接收流程图 单片机最小系统电路原理图如图 2.2 所示: 图图 2.11 单片机最小系统原理图单片机最小系统原理图 常州大学毕业设计(论文) 第 11 页 共 34 页 stc89c52 的性能特点: (1)与 51 系列单片机指令系统完全兼容 (2)8k 字节程序存储器,512 字节数据存储器 (3)32 个可编程 i/o 口线,3 个 16 位定时/计数器 (4)8 个中断源,真正的看门狗,可放心省去外部看门狗 (5)用户程序用 isp/iap 机制写入,一边校验一边写无读出命令,彻底无法解 密 图图 2.122.12 stc89c52rcstc89c52rc 引脚图引脚图 stc89c52 单片机有 40 个引脚,共分为电源线,端口线和控制线。电源线: gnd(20 脚),接地引脚,vcc(40 引脚),正电源引脚,正常工作时,接+5v 电源。端口线:stc89c52 片内有 4 个 8 位并行 i/o 接口 p0,p1,p2,p3。32-39 脚位、为 p0 口输入输出引脚。p0 口既可以作为 i/o 口,又可作为低 8 位地址 总线的分时复用口。1-8 脚为 p1 口输入输出引脚。p1 口为 8 位准双向 i/o 口, 可作通用 i/o 使用。21-28 脚为 p2 口输入输出引脚。p2 口既可以作为 i/o 口, 又可作为高 8 位地址总线的分时复用口。10-17 脚为 p3 口。p3 口为 8 为准双向 口,同时具有第二功能。rst/vpd脚(9 脚)是复位信号/备用电源线引脚。ale 是地址锁存允许/编程引脚。ea/vpp是允许访问片外程序存储器/编程电源线。 xtal1 和 xtal2 脚是片内振荡电路的输入、输出端。psen 是片外 rom 选通线。 常州大学毕业设计(论文) 第 12 页 共 34 页 图图 2.132.13 stc89c52stc89c52 与与 nrf24l01nrf24l01 电路连接图电路连接图 常州大学毕业设计(论文) 第 13 页 共 34 页 3 3 软件的设计与实现软件的设计与实现 3.13.1 系统总体软件设计系统总体软件设计 同硬件设计一样,软件设计分成数据采集端与数据接收端两部分。 采集系统软件部分利用 arm7 配套的开发环境 keil 开发,它同时支持汇编 语言和 c 语言编写程序,本系统采用 c 语言来开发采集系统。 数据收发主程序分为数据发送部分和数据接收部分,设计流程图如图 3.1 所示: 开始 初始化 nrf24l01配置 读取测量值 采集完成 发送数据 结束 开始 初始化 nrf24l01配置 接收数据 数据处理 发送显示 结束 数据发送流程 数据接收流程 图图 3.13.1 数据收发程序流程数据收发程序流程 3.23.2 温湿度采集模块程序设计温湿度采集模块程序设计 本设计温湿度采集模块采用温湿度传感器 dht11,由 arm 平台控制。 串行接口(单线双向): data 用于微处理器与dht11之间的通讯和同步,采用单总线数据格式,一次 常州大学毕业设计(论文) 第 14 页 共 34 页 通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数 部分用于以后扩展,现读出为零.操作流程如下: 一次完整的数据传输为40bit,高位先出。 数据格式:8bit湿度整数数据+8bit湿度小数数据 +8bi温度整数数据+8bit温度小数数据 +8bit校验和 数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据 +8bi温度整数数据+8bit温度小数数据”所得结果的末8位。 用户mcu发送一次开始信号后,dht11从低功耗模式转换到高速模式,等待主 机开始信号结束后,dht11发送响应信号,送出40bit的数据,并触发一次信号采集,用 户可选择读取部分数据.从模式下,dht11接收到开始信号触发一次温湿度采集, 如果没有接收到主机发送开始信号,dht11不会主动进行温湿度采集.采集数据后 转换到低速模式。 通讯过程如图3.2所示 图图 3.23.2 通讯过程通讯过程1 1 总线空闲状态为高电平,主机把总线拉低等待dht11响应,主机把总线拉低必 须大于18毫秒,保证dht11能检测到起始信号。dht11接收到主机的开始信号后, 等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束 后,延时等待20-40us后, 读取dht11的响应信号,主机发送开始信号后,可以切换 到输入模式,或者输出高电平均可, 总线由上拉电阻拉高。 图图3.33.3 通讯过程通讯过程2 2 总线为低电平,说明dht11发送响应信号,dht11发送响应信号后,再把总线拉 高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定 了数据位是0还是1.格式见下面图示.如果读取响应信号为高电平,则dht11没有 响应,请检查线路是否连接正常.当最后一bit数据传送完毕后,dht11拉低总线 50us,随后总线由上拉电阻拉高进入空闲状态。 数字0信号表示方法如图3.4所示 常州大学毕业设计(论文) 第 15 页 共 34 页 图图3.43.4 数字数字0 0信号表示方法信号表示方法 数字1信号表示方法.如图3.5所示 图图3.53.5 数字数字1 1信号表示方法信号表示方法 将此过程用c语言描述如下: void start(void)/开始信号 /将总线拉高 *at91c_pioa_sodr |= data_bus; / 对应的管脚输出高电平 delay_10us(1); /将总线拉低 *at91c_pioa_codr |= data_bus; / 对应的管脚输出低电平 delayms(25);/18ms /将总线拉高 *at91c_pioa_sodr |= data_bus;/ 对应的管脚输出高电平 delay_10us(1);/20-40us delay_10us(1); delay_10us(1); delay_10us(1); delay_10us(1); delay_10us(1); uint8 receive_byte(void) 常州大学毕业设计(论文) 第 16 页 共 34 页 uint8 i,temp,count; for(i=0;i8;i+) count=2; while(!( *at91c_pioa_pdsr /等待50us 低电平结束 temp=0; delay_10us(1);delay_10us(1);delay_10us(1);delay_10us(1); if(*at91c_pioa_pdsr count=2; while( (*at91c_pioa_pdsr if(count=1) break; data_byte = 1; data_byte |= temp; return data_byte; 接下来将进行温湿度的数据采集 void receive(void) uint8 t_h,t_l,r_h,r_l,check,num_check; uint8 count; dht11_output(); /将管脚置为输出 start();/开始信号 dht11_input(); /将管脚置为输入 if( !( *at91c_pioa_pdsr while(!( *at91c_pioa_pdsr 常州大学毕业设计(论文) 第 17 页 共 34 页 count=2; while( (*at91c_pioa_pdsr r_h=receive_byte(); r_l=receive_byte(); t_h=receive_byte(); t_l=receive_byte(); check=receive_byte(); num_check=r_h+r_l+t_h+t_l; if(num_check = check) rh=r_h; rl=r_l; th=t_h; tl=t_l; check=num_check; 3.33.3 无线收发模块程序设计无线收发模块程序设计 3.3.13.3.1 数据发送模块程序设计数据发送模块程序设计 数据发送模块采用无线数传模块 nrf24l01,由 arm7 平台控制。 发射数据时,首先将 nrf24l01 配置为发射模式:接着把接收节点地址 tx_addr 和有效数据 tx_pld 按照时序由 spi 口写入 nrf24l01 缓存区, tx_pld 必须在 csn 为低时连续写入,而 tx_addr 在发射时写入一次即可, 然后 ce 置为高电平并保持至少 10s,延迟 130s 后发射数据 ;若自动应 答开启,那么 nrf24l01 在发射数据后立即进入接收模式,接收应答信号 (自动应答接收地址应该与接收节点地址tx_addr 一致)。如果收到应答, 则认为此次通信成功, tx_ds 置高,同时 tx_pld 从 tx fifo 中清除;若未 收到应答,则自动重新发射该数据 (自动重发已开启 ),若重发次数 (arc) 达到上限,max_rt 置高,tx fifo 中数据保留以便在次重发 ;max_rt 或 常州大学毕业设计(论文) 第 18 页 共 34 页 tx_ds 置高时,使 irq 变低,产生中断,通知 mcu。最后发射成功时 ,若 ce 为低则 nrf24l01 进入空闲模式 1;若发送堆栈中有数据且 ce 为高,则进入 下一次发射;若发送堆栈中无数据且 ce 为高,则进入空闲模式 2。 c 语言程序如下: void init_nrf24l01(void) delay_10us(10); re24l01_output(); re24l01_input(); *at91c_pioa_codr =(1ce); / chip enable *at91c_pioa_sodr =(1csn); / spi disable *at91c_pioa_codr =(1sck); / spi clock line init high spi_write_buf(write_reg + tx_addr, tx_address, tx_adr_width); / 写本地地址 spi_write_buf(write_reg + rx_addr_p0, rx_address, rx_adr_width); / 写接收端地址 spi_rw_reg(write_reg + en_aa, 0x01); / 频道 0 自动ack 应 答允许 spi_rw_reg(write_reg + en_rxaddr, 0x01); / 允许接收地址只有频 道 0,如果需要多频道可以参考 page21 spi_rw_reg(write_reg + rf_ch, 0); / 设置信道工作为 2.4ghz,收发必须一致 spi_rw_reg(write_reg + rx_pw_p0, rx_pload_width); /设置接收数据 长度,本次设置为 32 字节 spi_rw_reg(write_reg + rf_setup, 0x07); /设置发射速率为 1mhz,发射功率为最大值 0db spi_rw_reg(write_reg + config, 0x0e); / irq 收发完成中断 响应,16 位 crc,主发送 常州大学毕业设计(论文) 第 19 页 共 34 页 spi 口为同步串行通信接口,最大传输速率为10 mb/s,传输时先传送低 位字节,再传送高位字节。但针对单个字节而言,要先送高位再送低位。与 spi 相关的指令共有 8 个,使用时这些控制指令由 nrf24l01 的 mosi 输入 。相应的状态和数据信息是从 miso 输出给 mcu。 nrf24l0l 所有的配置字都由配置寄存器定义,这些配置寄存器可通过sp i 口访问。nrf24l01 的配置寄存器共有 25 个,常用的配置寄存器如表 3. 1 所示。 表表 3 3. .1 1 常常用用配配置置寄寄存存器器 地址 (h) 寄存器名称功能 00config 设置 24l01 工作模式 01en_aa 设置接收通道及自动应答 02en_rxaddr 使能接收通道地址 03setup_aw 设置地址宽度 04setup_retr 设置自动重发数据时间和次 数 07status 状态寄存器,用来判定工作 状态 0a0frx_addr_p0p5 设置接收通道地址 10tx_addr 设置接收接点地址 1116rx_pw_p0p5 设置接收通道的有效数据宽 度 常州大学毕业设计(论文) 第 20 页 共 34 页 图图 3.63.6 nrf24l01nrf24l01 spispi 串行口指令设置串行口指令设置 图图 3.73.7 spispi 读操作读操作 图图 3.83.8 spispi 写操作写操作 下面是 nrf24l01 写时序的程序: uint spi_rw(uint uchar) uint bit_ctr; for(bit_ctr=0;bit_ctr8;bit_ctr+) / output 8-bit /mosi = (uchar / output uchar, msb to mosi if(uchar else *at91c_pioa_codr =(1mosi); uchar = (uchar 1); / shift next bit into msb *at91c_pioa_sodr =(1sck); / set sck high uchar |= (*at91c_pioa_pdsr / capture current miso bit *at91c_pioa_codr =(1sck); / then set sck low again return(uchar); / return read uchar 图图 3.93.9 spispi nopnop 操作时序图操作时序图 nrf24l01 的 spi 时序 uint spi_read(uint reg) uint8 reg_val; *at91c_pioa_codr =(1csn); / csn low, initialize spi communication. spi_rw(reg); / select register to read from reg_val = spi_rw(0); / then read registervalue 常州大学毕业设计(论文) 第 22 页 共 34 页 *at91c_pioa_sodr =(1csn); / csn high, terminate spi communication return(reg_val); / return register value 开始 时钟 ic、lcd 液 晶、温度传感器 初始化 nrf24l01 配置模块 开始 时钟 ic、lcd 液 晶、温度传感器 初始化 nrf24l01 配置模式 判断键盘是 否有动作? 数据采集 和显示 将采集到的数据 装入发射寄存器 启动发射 发射是否完成? 按键处理子程序 是否处理完? 式 判断键盘是 否有动作? 数据采集 和显示 将采集到的数据装 入发射寄存器 启动发射 发射是否完成? 按键处理子程序 序序序 是否处理? 图图 3.103.10 无线发送流程图无线发送流程图 3.3.23.3.2 数据接收模块程序设计数据接收模块程序设计 常州大学毕业设计(论文) 第 23 页 共 34 页 数据接收模块同样采用无线数传模块 nrf24l01,但是由 51 单片机控制。 接收数据时,首先将 nrf24l01 配置为接收模式,接着延迟 130s 进入 接收状态等待数据的到来。当接收方检测到有效的地址和crc 时,就将数 据包存储在 rx fifo 中,同时中断标志位 rx_dr 置高,irq 变低,产生中 断,通知 mcu 去取数据。若此时自动应答开启,接收方则同时进入发射状态 回传应答信号。最后接收成功时,若ce 变低,则 nrf24l01 进入空闲模式 1。 rx_mode 接收函数 uchar nrf24l01_rxpacket(uchar *rx_buf) uchar revale=0; ce=1; delayus(130); sta=spi_read(status); if(rx_dr) ce=0; spi_read_buf(rd_rx_pload,rx_buf,tx_pload_width); revale=1; ce=0; spi_rw_reg(write_reg+status,sta); return revale; /*/ void nrf24l01_txpacket(uchar *tx_buf) ce=0; 常州大学毕业设计(论文) 第 24 页 共 34 页 spi_rw_reg(flush_tx,0x00); spi_write_buf(write_reg+tx_addr,tx_address,tx_adr_width); spi_write_buf(write_reg+rx_addr_p0,rx_address,rx_adr_width); spi_write_buf(wr_tx_pload,tx_buf,tx_pload_width); spi_rw_reg(write_reg+config,0x0e); ce=1; delayus(15); ce=0; 图图 3.113.11 无线接收流程图无线接收流程图 常州大学毕业设计(论文) 第 25 页 共 34 页 本章小结: 本章主要讲述了设计中软件部分的原理,包括各种芯片的操作、时序的简 单分析,还讲述了各种芯片的基本操作方法、操作流程,并运语言描述了这些 流程。 常州大学毕业设计(论文) 第 26 页 共 34 页 4 4 系统系统调试调试 4.1 调试平台调试平台 在本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论