学位论文-—基于at91sam7s64的无线温湿度监控系统设计.doc

上传人:知****量 文档编号:86252856 上传时间:2023-04-14 格式:DOC 页数:40 大小:2.12MB
返回 下载 相关 举报
学位论文-—基于at91sam7s64的无线温湿度监控系统设计.doc_第1页
第1页 / 共40页
学位论文-—基于at91sam7s64的无线温湿度监控系统设计.doc_第2页
第2页 / 共40页
点击查看更多>>
资源描述

《学位论文-—基于at91sam7s64的无线温湿度监控系统设计.doc》由会员分享,可在线阅读,更多相关《学位论文-—基于at91sam7s64的无线温湿度监控系统设计.doc(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 学 号: 常 州 大 学毕业设计(论文)(2013届)题 目 基于AT91SAM7S64的无线温湿度监控系统设计 学 生 学 院 信息科学与工程学院 专 业 班 级 通信工程091 校内指导教师 专业技术职务 讲师 二一三年六月学位论文独创性声明本人郑重声明:所提交的学位论文是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不含其他个人或集体已经发表或撰写过的研究成果,也不含为获得常州大学或其它教育机构的学位证书而使用过的材料。对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式标明。本人承担本声明的法律责任。签名: 日期: 说明:本页签名及日期均为

2、手签。基于AT91SAM7S64的无线温湿度监控系统设计摘 要:在现代科技发展过程中,嵌入式系统在诞生之初就有着独特的地位,进入信息时代,在更多的新技术支持下,走向一个新的发展时代,即从普遍的低端应用进入到一个高、低端并行发展的时代,其主要标志是32位MCU的大范围应用。随着众多嵌入式系统厂家的参与,基于ARM系列处理器的应用技术广泛的应用到各个领域,更加的方便了人们的生活和工作。温湿度的自动测量和现实在生活和生产中具有非常重要的意义。以往的人工采集数据不仅占用人力资源,而且可靠性低,容易发生差错,不能满足现代化的需求。一般的温湿度采集系统数据显示单调,而且需要在复杂的地区布线,十分的不便。本

3、文采用应用广泛的ARM系列微处理器AT91SAM7S64作为平台的核心构建系统。主机负责数据的采集和发送功能,使用51单片机负责数据的接收功能,在计算机上显示数据参数。温湿度采集模块采用温湿度传感器芯片DHT11,无线收发模块采用无线数传模块nRF24L01。本项目能够实时采集周围环境的温度和湿度,且不受布线的约束,是适应现代社会的高价值研究。关键字:AT91SAM7S64;温湿度监测;无线数传模块;温湿度传感器 Design of Environmental Monitoring Node on Single-chip AT91SAM7S64 based wireless temperatu

4、re and humidity monitoring system designABSTRACT: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 ap

5、plications 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 l

6、ife 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

7、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 fu

8、nction 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

9、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 目录摘 要:II1 引言11.1 课题背景及研究的意义11.2 课题研究的目的11.3 国内外现状及发展趋势11.4

10、 论文结构安排22系统硬件设计32.1硬件总体设计32.2 ARM系统板介绍32.3温湿度采集模块设计52.4无线收发模块设计62.4.1数据发送模块设计62.4.2数据接收模块设计93软件的设计与实现133.1系统总体软件设计133.2温湿度采集模块程序设计143.3无线收发模块程序设计173.3.1数据发送模块程序设计173.3.2数据接收模块程序设计224 系统调试264.1调试平台264.2数据采集模块调试264.3数据发送和接收模块调试274.4设计中遇到的问题及解决方法285 结论29参考文献30致谢31附录32IV常州大学毕业设计(论文)1 引言1.1 课题背景及研究的意义 温湿

11、度的测量在仓储管理、生产制造、科学研究以及日常生活中得到广泛的应用。传统的温湿度测量采用有线测控系统,必须实施网络布线工程,铺设光纤或者电缆,大大增加了系统的成本,同时降低了系统的灵活性、可维护性以及可扩展性。把无线通信技术应用到温湿度测量系统中,通过传感器实时采集各节点处温湿度的信息,经过处理后再通过无线数据采集系统将温湿度信息传输到监控终端,从而达到集成化、低成本和易操作的目的。目前,这种微功率短距离无线数据传输技术在民用、工业等领域得到了广泛应用。1.2 课题研究的目的基于AT91SAM7S64开发平台,使用无线数传模块,与PC机进行网络通信,具体完成如下工作:(1)设计ARM与温度、湿

12、度传感器以及无线接口电路等;(2)设计ARM的无线通信程序,能采用中断方式实现数据的收发; (3)完成上位机程序,设计ARM与上位机的无线通信协议,ARM根据接收的通信命令采集温度或湿度数据发送到上位机,显示到界面上。1.3 国内外现状及发展趋势 现有的温湿度采集系统主要基于有线传输,有线传输需要现场布线,因此需要大量的人力物力,在遇到一些相对封闭或不便现场驻点的环境,将对有线温湿度采集有着极强的制约力,有线传输的维护也是不容易实现的。 伴随着智能化、信息化、网络化的发展,温湿度采集开始向着无线传输的方向发展,无线采集有着以下优点: 1、可实时采集温度、湿度数据,采集间隔可调。2、产品能全程跟

13、踪记录展柜,恒温恒湿室/箱、药品仓库、冷库、机房、车间、库房、实验室等环境温湿度变化;3、用户可以通过数据管理软件对所取数据进行查看、分析并可将图表或报表存档、打印出来;4、液晶显示,在线同时显示温度、湿度数据,时钟,报警等信息,现场实时温湿度环境一目了然;5、数字信号输出,采用无线数据传输方式,将信号传输到指定的接收设备或数据集中器,然后通过温湿度系统软件进行监控。6、设备本身具有数据存储功能,在电脑关闭或温湿度监测软件没有开的情况下,温湿度采集器仍然自动保存数据,在需要时可以通过温湿度监测软件下载调取设备内部存储的数据到电脑。(软件未开温湿度数据不会丢失)7、用户可以根据实际需要任意设置报

14、警的上下限,软件会识别显示记录超限数值;8、可根据需要扩展输出控制功能;9、稳定性高可24小时不间断工作,是替代传统温湿度记录仪的新式产品。10、整机采用防雷设计,在雷雨多的地方不易受损坏。11、提供数据即读取信号通讯协议(或dll链接库),可根据工程应用进行二次开发,大大减少开发时间及成本。ARM是Advanced RISC Machines 的缩写,它具有体积小、功耗低、成本低、性能好等优点,并且具有16 位和32 位双指令集。它被广泛应用在16 位和32 位嵌入式RISC 解决方案中,嵌入式RISC 微处理器市场份额的75%被它占有。ARM 公司是业内公认的领先的半导体知识产权提供商,该

15、公司本身并不生产芯片,主要靠转让其技术通过许可的合作伙伴来生产不同的芯片,从而引领全球嵌入式电子技术研究的潮流。ARM 的片上系统解决方案也推动了当今嵌入式市场中一系列终端产品的技术发展。1.4 论文结构安排本文基于本次毕业设计的过程与要求,将论文分为五章。具体内容如下:第1章 引言。本章简单介绍了课题的研究背景、目的和意义,温湿度采集系统的国内外发展现状和相关领域中已有的研究结果,该设计的预期结果和意义。第2章 系统硬件设计。本章介绍本课题硬件系统各部分电路的设计、实现,讲述了芯片的工作原理及各模块的基本功能。第3章 系统软件设计。本章根据系统的总方案,设计出程序的总流程图,并利用C语言编写

16、相应的程序。第4章 系统调试。本章根据已有的软硬件,进行调试,得到的相应成果。第5章 结论。本章主要讲述了设计的实际结果,以及得出相关结论。2 系统硬件设计2.1 硬件总体设计本系统硬件部分主要为数据采集端与数据接收端两部分。数据采集端主要包括AT91SAM7S64控制系统、数据采集模块和数据发送模块。ARM控制系统是整个系统的控制核心,数据采集模块采集环境的温湿度,再利用数据发送模块将采集到的温湿度数据发送到数据接收端进行相应的处理。数据接收端主要包括51单片机控制系统、数据接收模块和串行通信模块。数据接收模块接收到采集方的数据后,将数据传送给单片机控制系统,再通过RS一232串行通信将数据

17、传送给计算机,实现实时监测。硬件总体结构: 图 2.1 湿湿度发送模块的结构框图图 2.2 温湿度接收模块的结构框图2.2 ARM系统板介绍ARM7是整个系统的主控模块,它负责整个系统的控制和管理。本设计采用微处理器为AT91SAM7S64,AT91SAM7S64是Atmel 32位ARM RISC 处理器小引脚数Flash微处理器家族的一员。它拥有64K字节的高速Flash和16K字节的SRAM,丰富的外设资源,包括一个USB 2.0设备,使外部器件数目减至最低的完整系统功能集。这个芯片是那些正在寻求额外处理能力和更大存储器的8 位处理器用户的理想选择。Flash存储器可以通过JTAG-IC

18、E 进行编程,或者是在贴装之前利用编程器的并行接口进行编程。锁定位可以防止固件不小心被改写,而安全锁定位则可以保护固件的安全。AT91SAM7S64 的复位控制器可以管理芯片的上电顺序以及整个系统。BOD 和看门狗则可以监控器件是否正确工作。AT91SAM7S64是一个通用处理器。它集成了USB设备端口,使得它成为连接PC或手机的外设应用的理想芯片。极具竞争力的性价比进一步拓展了它在低成本、大产量的消费类产品中的应用。图2.3 AT91SAM7S64的系统结构框图电源:AT91SAM7S64有6种类型的电源输入引脚以及一个集成的电源调节器,使得器件可以工作于单一电压。这6 种电源引脚类型为:

19、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正确工作的

20、前提。 VDDPLL: 振荡器和PLL的电源。可以直接连接到VDDOUT。各个输入电源并没有独立的地回路引脚。因此GND 与系统地平面的连接应尽可能短。功耗:在25C 时,VDDCORE 的静态电流小于60 A,包括RC 振荡器、电压调节器和上电复位。使能掉电复位BOD 将额外增加20 A 的静态电流。全速工作且运行不基于Flash 时VDDCORE的动态功耗 小于50 mA。若程序在Flash 上运行则VDDFLASH 的电流不超过10 mA。电压调节器:AT91SAM7S64 有一个由系统控制器管理的电压调节器。在正常模式下,电压调节器消耗的静态电流还不到100 A,而输出电流则高达100

21、 mA。电压调节器支持低功耗模式。在此模式下它只消耗不到20 A 的静态电流,输出电流可达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,输出则连接

22、到VDDCORE 和VDDPLL。图2.3出了通过USB 总线供电的线路图。图2.4 3.3V 单电源供电系统2.3 温湿度采集模块设计 数据采集模块采用温湿度传感器DHT11,。DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在

23、检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为4 针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。接口说明:建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻DHT11引脚说明,如表2.1所示:表2.1 DHT11引脚说明图2.5 ARM7与DHT11的硬件接口DHT11的供电电压为35.5V。传感器上电后,要等待1s 以越过不稳定状态在此期间无需发送任何指令。电源引脚(VDD,GND)之间可增加一个100n

24、F 的电容,用以去耦滤波。测量分辨率分别为8bit(温度)、8bit(湿度)。DHT11是用单总线传输数据,在ARM7发送起始信号,DHT11返回应答信号还有发送数据,起始阶段都需要将总线置为低电平,然后再拉为高电平,所以同样需要上拉电阻,阻值大约为5K。DHT11也采用外部电源方式供电,在外部电源供电方式下,整个电路工作稳定可靠,抗干扰能力强,电路也比较简单,同时总线上可以挂接多个DHT11传感器,组成多点测量温湿度系统。此时,DHT11的3引脚悬空,4引脚要接地或者电源的负极。2.4 无线收发模块设计2.4.1数据发送模块设计数据发送模块选用无线数传nRF24L01,由RAM平台控制发送数

25、据。nRF24L01是一款工作在2425GHz的单片无线收发器芯片。其无线收发器包括:频率发生器、增强型SchockBurst TM模式控制器、功率放大器、晶体振荡器、调制器和解调器。频道选择和协议的设置可以通过SPI接口进行设置。其供电电压范围为1933V,最大发射功率为1mW。它采用SPI的通信方式进行数据的交互。该模块在通信时 SCK高电平有效,在一个跳变沿采样,高位在前。此外模块的引脚数据传输的速率采用1MHZ。模块数据的收发速率选择1Mbps。表2.2 NRF24L01模块引脚功能管脚功能VDD电源1.9-3.6V输入CE工作模式选择,RX或TX模式选择CSNSPI片选使能,低电平使

26、能SCKSPI时钟MOSISPI输入MISOSPI输出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,

27、标准DIP插针图2.6 nRF24L01引脚排列图2.7 nRF24L01 及外部接口图2.8 nRF24L01电路原理图图2.9 ARM7与nRF24L01的硬件接口 nRF24L01有工作模式有四种: 收发模式 配置模式 空闲模式 关机模式 工作模式由PWR_UP register 、PRIM_RX register和CE决定,详见表2.3表2.3 nRF24L01工作模式2.4.2 数据接收模块设计数据接收模块采用51单片机作为控制系统。51系列单片机是大家非常熟悉的微处理器,是最早由美国Intel公司生产的一种单片机。其具有的特点主要有:体积小、集成度高、运算快、经济等。其应用范围为工

28、业自动化、信息采集、家电控制等。在很多现场操作中需要对大量的数据进行采集和处理,对于单片机本身的数据存储器以及在外部扩展的数据存储器而言,这些数据是十分庞大的,其容量远远满足不了需要采集的数据,于是要将数据传输到上位机进行处理和分析。有线通信的布线、组网等局限性,满足不了技术的发展和需要,而无线通信有很多方法可以解决,如红外脉冲传输、蓝牙技术、雷达波等,以RS232为标准的无线射频通讯方式具有很多优点,如可工作于ISM频段,并有内置UART接口,其应用广泛,价格低廉。随着集成电路工业的发展,51系列单片机作为一个微控制器的内核,被集成到各种片上系统(英文缩写为SoC)中。它只须占用很小的硅片上

29、的面积,成本非常低,然后同其他程序存储器、外围电路等,组合成一个低功耗、低成本的片上系统。这些采用51微处理器内核的片上系统,一方面能继续使用51微处理器几十年来积累的各种应用软件资源,另一方面具有更多的功能、更快的速度、更小的体积、更低的功耗,因此,具有更广阔的市场和发展空间。本设计采用AT89系列单片机内部资源就能满足数据接收模块硬件设计的需求。不需扩展外部存储器或I/O接口等器件,通过程序,就能达到对单片机的控制。图2.10 无线接收流程图单片机最小系统电路原理图如图2.2所示:图2.11 单片机最小系统原理图STC89C52的性能特点:(1)与51系列单片机指令系统完全兼容(2)8K字

30、节程序存储器,512字节数据存储器(3)32个可编程I/O口线,3个16位定时/计数器(4)8个中断源,真正的看门狗,可放心省去外部看门狗(5)用户程序用ISP/IAP机制写入,一边校验一边写无读出命令,彻底无法解密图2.12 STC89C52RC引脚图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脚

31、为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选通线。图2.13 STC89C52与nRF24L01电路连接图3软件的设计与实现3.1系统总体软件设计同硬件设计一样,软件设计分成数据采集端与数据接收端两部分。采

32、集系统软件部分利用ARM7配套的开发环境KEIL开发,它同时支持汇编语言和C语言编写程序,本系统采用C语言来开发采集系统。数据收发主程序分为数据发送部分和数据接收部分,设计流程图如图3.1所示: 数据发送流程 数据接收流程图3.1 数据收发程序流程3.2温湿度采集模块程序设计本设计温湿度采集模块采用温湿度传感器DHT11,由ARM平台控制。串行接口(单线双向):DATA 用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下:一次完整的数据传输为40bit,高位先出。

33、数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。通讯过程如图3.2所示图 3

34、.2 通讯过程1总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后, 读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可, 总线由上拉电阻拉高。图3.3 通讯过程2总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1.格式见下面图示.

35、如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常.当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。数字0信号表示方法如图3.4所示图3.4 数字0信号表示方法数字1信号表示方法.如图3.5所示图3.5 数字1信号表示方法 将此过程用C语言描述如下:void start(void)/开始信号/将总线拉高 *AT91C_PIOA_SODR |= DATA_BUS; / 对应的管脚输出高电平 Delay_10US(1);/将总线拉低 *AT91C_PIOA_CODR |= DATA_BUS; / 对应的管脚输出低电平DelayMS(

36、25);/18ms/将总线拉高 *AT91C_PIOA_SODR |= DATA_BUS;/ 对应的管脚输出高电平Delay_10US(1);/20-40usDelay_10US(1);Delay_10US(1);Delay_10US(1);Delay_10US(1);Delay_10US(1);uint8 receive_byte(void)uint8 i,temp,count;for(i=0;i8;i+)count=2;while(!( *AT91C_PIOA_PDSR & DATA_BUS ) & count+);/等待50us低电平结束temp=0;Delay_10US(1);Dela

37、y_10US(1);Delay_10US(1);Delay_10US(1);if(*AT91C_PIOA_PDSR & DATA_BUS)temp=1;count=2;while( (*AT91C_PIOA_PDSR & DATA_BUS) & count+);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(); /将管脚

38、置为输出start();/开始信号dht11_input(); /将管脚置为输入if( !( *AT91C_PIOA_PDSR & DATA_BUS ) )/读取DHT11响应信号count=2;while(!( *AT91C_PIOA_PDSR & DATA_BUS ) & count+ ) /DHT11高电平80us是否结束; count=2;while( (*AT91C_PIOA_PDSR & DATA_BUS) & count+);R_H=receive_byte();R_L=receive_byte();T_H=receive_byte();T_L=receive_byte();ch

39、eck=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.3无线收发模块程序设计3.3.1 数据发送模块程序设计数据发送模块采用无线数传模块nRF24L01,由ARM7平台控制。发射数据时,首先将nRF24L01配置为发射模式:接着把接收节点地址TX_ADDR和有效数据TX_PLD按照时序由SPI口写入nRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少

40、10s,延迟130s后发射数据;若自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_ADDR一致)。如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从TXFIFO中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT置高,TXFIFO中数据保留以便在次重发;MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知MCU。最后发射成功时,若CE为低则nRF24L01进入空闲模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,

41、则进入空闲模式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 highSPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); / 写本地地址SPI_Writ

42、e_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); /设置接收

43、数据长度,本次设置为32字节SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); /设置发射速率为1MHZ,发射功率为最大值0dBSPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); / IRQ收发完成中断响应,16位CRC,主发送SPI口为同步串行通信接口,最大传输速率为10 Mb/s,传输时先传送低位字节,再传送高位字节。但针对单个字节而言,要先送高位再送低位。与SPI相关的指令共有8个,使用时这些控制指令由nRF24L01的MOSI输入。相应的状态和数据信息是从MISO输出给MCU。 nRF24L0l所有的配置字都由配置寄存器定义,这些配置

44、寄存器可通过SPI口访问。nRF24L01 的配置寄存器共有25个,常用的配置寄存器如表3.1所示。 表3.1 常用配置寄存器地址(H)寄存器名称功能00CONFIG设置24L01工作模式01EN_AA设置接收通道及自动应答02EN_RXADDR使能接收通道地址03SETUP_AW设置地址宽度04SETUP_RETR设置自动重发数据时间和次数07STATUS状态寄存器,用来判定工作状态0A0FRX_ADDR_P0P5设置接收通道地址10TX_ADDR设置接收接点地址1116RX_PW_P0P5设置接收通道的有效数据宽度图3.6 nRF24L01 SPI 串行口指令设置图3.7 SPI 读操作图3.8 SPI 写操作下面是nRF24L01写时序的程序:uint SPI_RW(uint uchar)uint bit_ctr; for(bit_ctr=0;bit_ctr8;bit_ctr+) / output 8-bit /MOSI = (uchar & 0x80); / output uchar, MSB to MOSIif(uchar & 0x80) =1)*AT91C_PIOA_SODR =(1MOSI);else *AT91C_PIOA_CODR =(1MOSI);uchar =

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁