新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 基于MCU和nRF905的低功耗远距离无线传输系统

基于MCU和nRF905的低功耗远距离无线传输系统

作者: 时间:2010-12-09 来源:网络 收藏

接收数据时, 先在nRF905的待机状态中写好射频配置寄存器中的接收地址,然后将nRF905置于接收模式(PWR_UP和TRX_CE置高、TX_EN置低),nRF905就会自动接收空中的载波。当收到有效数据(地址匹配且校验正确)时,DR引脚会自动置高, 在检测到这个信号后,可以将nRF905置为待机模式,然后通过SPI总线从接收数据寄存器中读出有效数据。nRF905接收数据的流程如图3所示。

本文引用地址:https://www.eepw.com.cn/article/156893.htm

3.JPG

3.3 点对点传输距离

传输距离主要由传播损耗、工作频率、外部损耗等因素决定。而传播损耗是非常复杂的问题,涉及电波传播机理、地形地物影响、载波工作频段和天线指向等很多因素。这里给出自由空间传播时的无线通信距离计算公式:

20lgd[km]=Los[dB]-32.44-20lgf[MHz]           (1)

式中Los为传播损耗,f为工作频率,d为通信距离[4]。nRF905的最大发射功率为10dBm,接收灵敏度为-100dBm,假定由大气、阻挡物、多径等造成的损耗为25dB,可以计算得出通信距离d=0.98km,这是理想状况下的计算。实测结果表明,在采用高增益天线时,基本可以达到800 米以上的传输距离;使用PCB天线时距离有所下降,但也可达到300米左右。

4 通信协议设计

4.1 MAC协议

本系统采用了一个简化的点对多点通讯协议,主要分为三层。第一层为物理层,由nRF905模块硬件实现;第二层为数据链路层,提供可靠的无线数据传输,每一个数据包都包括具体数据和一些必要的控制信息;第三层为应用层,调用数据链接层完成具体的应用逻辑,包括数据收集、数据查询等。

整个系统硬件可分为两部分,分别定义为基站模块和节点模块。节点模块应用层的功能是使数据与无线通讯相结合。对于不同的应用,可能有不同的数据采集方法。应用层接收数据链路层发来的命令,完成对数据的采集,并将数据打包发给数据链路层。基站模块的应用层负责与中心控制器的链接。将中心控制器发来的数据校验处理后转发给数据链路层,将数据链路层发来的数据打包处理后发给中心控制器。因为协议是分层的,相邻层之间的联系只是调用发送接收函数,因此实现了各层的独立,更换被采集的仪表或更换无线传输模块所做的改动都不会影响其他层,从而提高了系统的灵活性。

基于MCU和nRF905的低功耗远距离无线传输系统

   每个数据帧包括2B的帧头、1B的帧类型、6B的本地地址和目的地址、1B的帧长度、NB的数据、16位CRC校验和2B的帧尾。本系统针对较小数据量 的应用设计,每个数据包的有效数据长度N一般小于32B,每个节点每一次需要传送的数据都可以通过一个数据包发送完成。数据帧的类型包括采集命令、正确接 收确认、重发请求、异常信号等,用两个字节来标示以便接收方分类处理。在N个字节的数据之后是16位CRC校验。接收方同样计算CRC后与校验和比较,如 果CRC正确,则发送正确接收确认(ACK)。如果CRC不同,即为传输中出现错误,则给出出错反馈要求发送方重新发送数据。数据的通信流程基本可概述为 DATA+ACK形式,即发送完DATA 等待ACK,接收到DATA 则发送ACK确认。

  由于射频芯片的高灵敏度,即使在没有进行数 据传输时,其数据输出脚也会有杂波输出,这些杂波会被的串口接收并处理。同时处于低功耗的考虑,在每个数据帧之前要先发几个字节的同步码以实现数据 同步和射频唤醒。实践证明四个字节的0xCC 就可以确保在有效数据帧到达前双方通讯实现同步。为了准确区分噪声与有效数据,分别加入了2B的帧头(0xD792)和帧尾(0xC2D5),以确保有效 数据的确认。



关键词: MCU

评论


相关推荐

技术专区

关闭