- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
nRF905传输数据方式
nRF905传输数据时为非实时方式,即发送端发出数据,接收端收到后先暂存于芯片存储器内,外面的MCU可以在需要时再到芯片中去取。nRF905一次的数据传输量最多为32B。
无线数据传送的实现
本设计中将单片机P89LPC916的SPI接口和nRF905的SPI接口相连,另外再选几个I/O口连接nRF905的输入输出信号,如图2所示。
nRF905控制电路
图2? nRF905控制电路
nRF905在正常工作前应由P89LPC916先根据需要写好配置寄存器,其后的工作主要是两个:发送数据和接收数据。
发送数据时,P89LPC916先把nRF905置于待机模式(PWR_UP引脚为高、TRX_CE引脚为低),然后通过SPI总线把发送地址和待发送的数据都写入相应的寄存器中,之后把nRF905置于发送模 式(PWR_UP、TRX_CE和TX_EN全置高),数据就会自动通过天线发送出去。为了数据可靠地传输,将射频配置寄存器中的自动重发位(AUTO_RETRAN)设为有效,数据包重复不断地一直向外发,直到P89LPC916把 TRX_CE拉低,退出发送模式为止。
?? 接收数据时,P89LPC916把nRF905的TRX_CE 引脚置为高电平,TX_EN引脚拉为低电平后,就开始接收数据。本设计中P89LPC916设定的40s内一直判断nRF905的DR引脚是否变高,若为高,则证明接收到了有效数据,可以退出接收模式,若一直没有接收到,待时间到时也退出接收模式。退出后在待机模式,P89LPC916通过SPI总线把 nRF905内部的接收数据寄存器中的数据读出,即接收到的有效数据。
软件设计
本系统设计的重点是控制nRF905的程序设计,首先是对nRF905进行初始配置,配置完成后按需要编写用户数据的发送或接收程序。
软件系统的整体数据处理流程
图3? 软件系统的整体数据处理流程
初始化
·初始化nRF905的射频配置寄存器
这些寄存器中有很多信息,必须根据实际情况进行配置,本设计中nRF905外接16MHz晶体,XOF应配置为011;PA_PWR为发射功率、RX_RED_PWR为接收灵敏度,可根据需要配置;另外还有发送地址、接收地址、发送数据和接收数据的长度(字节数),可根据实际应用配置。注意这组寄存器中还有接收时的实际地址,而发送地址在其他单独寄存器中。
·配置nRF905的发送地址
在实际工作中,nRF905可以自动滤除地址不相同的数据,只有地址匹配且校验正确的数据才会被接收,并存储在接收数据寄存器中。本设计中配置最多4个字节(32位),发送端的发送地址应与接收端设备的接收地址相同。
用户程序
根据系统的硬件设计方案,分为发送端和接收端两个部分,软件系统的整体数据处理流程如图3所示。软件系统分为5个模块:温湿度采集模块、外部设备模块、RF发送模块、RF接收模块、中央监控系统报表统计分析模块。
通信协议
系统结构为有多个发送端向1个接收端单向发送温湿度数据,同时要求接收端能够根据接收的数据内容判断信号来自哪一个发送模块;接收端根据温湿度数据是否越界从而驱动前端外部设备。为此,将系统通信协议设置为如下格式:
Preamble为引导字节,Add为接收机地址,Payload为有效加载数据(包括接收显示单元识别码Rid、源发送单元识别码Sid及 Data字——在接收时Data字高八位内容即为温度数据,低八位内容即为湿度数据;发送控制命令即为外部设备控制字,长度为2字节),CRC为校验码。 nRF905处于发射模式时,Add和Payload由微控制器按顺序送入射频模块nRF905,Preamble和CRC由nRF905自动加载。接收时,nRF905先接收一个数据包,分别验证Preamble、Add和CRC正确后,再将Payload数据送入微控制器处理;当接收显示单元微处理器判断Payload中的Rid和本机识别码一致时,继续处理后继数据,并通过Sid来判断收到的数据来自哪一个监测点,保存至中央监控系统数据库供后期数据分析处理。 3 硬件设计 单片机选用ATMEL公司生产的AT89LV51单片机。它具有低功耗、低电压(与nRF905共用同一电压)的特性,它既适合结构比较简单的应用系统,也适合于比较复杂的实时系统。单片机主要完成两个方面的工作,一方面完成对射频芯片通信过程的控制,另一方面通过RS-232总线与上位机相连。由于AT89LV51内部没有集成SPI接口,因此通过软件模拟的方法来实现与nRF905的SPI通信。硬件连接上,由P2口、P3.2、P3.3、P3.5连接到nRF905模块的连接器相应的引脚上。电路如图1所示。
4 软件设计
文档评论(0)