0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于51单片机和nRF905芯片实现无线数据传输系统的设计

电子设计 来源:电子科技 作者:王华斌,孟立凡, 2021-05-05 09:17 次阅读

作者:王华斌,孟立凡,谷宗冉,吴慧飞

短程、便捷、廉价的无线通信技术正成为关注的焦点,使人们对它的需求越来越高。例如无线数据采集、无线设备管理和监控、无线抄表以及矿井下的无线通信等都是其典型应用。

1 系统总体结构

文中利用51单片机和无线数据收发芯片nRF905构成无线数据传输系统,给出了硬件和软件设计方案。其数据传输过程是:从传感器输入的模拟信号AD采集后,将数据输入单片机,然后单片机将该发送数据,通过SPI接口发送给 nRF905,nRF905将数据自动加上前导码和CRC码后将数据包发送。当接收端的nRF905接收到有效数据后,DR置高;单片机检测到DR为高电平后,复位TRX_CE引脚,使nRF905进入空闲模式,通过SPI接口从nRF905中读出接收数据,然后通过串口在上位机显示。文中主要介绍的是 51单片机软件模拟SPI和无线数据收发这两个部分。图1是该系统的总体结构框图。

2 SPI总线

SPI(Serial Peripheral Interface串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。该接口一般使用4条线:串行时钟线(SCK)、主机输入从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS。可见SPI总线只需要少数的几根线,就可以实现与具有SPI总线硬件接口功能的各种器件进行通信,并且用SPI总线接口简化电路设计,节省许多I/O口线供其它功能使用,提高了设计的可靠性。而对于一些不具有SPI硬件接口的器件,可以用I/O口线来模拟SPI。由于nRF905射频收发模块是通过SPI接口由MCU控制的,而采用不具有SPI接口的单片机,只能通过单片机的I/O口来模拟SPI总线接口,实现无线通信系统的设计。这样当传输速度要求不是太高时,使用I/O口模拟 SPI总线,既可以增加应用系统接口器件的种类,同时还提高系统的性能,节约成本。

3 nRF905无线收发芯片

nRF905是挪威Nordic VLSI公司推出的单片射频收发器,工作电压1.9~3.6 V,工作于433/868/915MHz这3个ISM频段,频道转换时间《650μs,最大数据速率为100kbit/s。nRF905由频率合成器、接收解调器、功率放大器、晶体振荡器和GFSK调制器组成。自动产生前导码和CR校验码,可以很容易通过SPI接口进行编程配置。外围器件连接简单,无需外部SAw滤波器。nRF905有两种工作模式和两种节能模式。两种工作模式分别是ShockBurst TM发送模式和ShockBurst RM接收模式,两种节能模式分别是掉电和SPI编程模式,Standby和SPI编程模式。nRF905的工作模式由 TRX_CE,TX_EN,PWR_UP这3个引脚的设置来决定。

4 nRF905和STC89C52RC的硬件连接电路

nRF905具有标准的SPI硬件接口,对于不带SPI串行总线接口的STC89C52RC单片机来说,可以使用软件来模拟SPI的操作。单片机和 NRF905的对应接法是:P1.6接MISO,P1.5口接MOSI,Pl.7口接SCIOCK,P1.3接CSN。选用单片机的P1.5模拟数据输出端MOSI;Pl.6模拟数据输入端MISO P1.7模拟SCK的输出端;P1.3模拟从机选择端CSN,由程序清零此I/O口,使得与它通信的NRF905做从机。采用SPI的进行数据传送时,在 SCK的每个下降沿将89C52配置NRF905的命令和数据通过MOSI引脚移入,在SCK的每个上升沿将欲传给89C52的数据从MISO引脚移出。所以,这里将串行时钟输出口P1.7的初始状态设置为低电平,选通从机,即P1.3=0低电平后,再置P1.1为高电平。这样,89C52在输出1位 SCK时钟的同时,将使NRF905中数据串行左移,从而输出1位数据至89C52的P1.6口,此后再置P1.7为0,使89C52从P1.5输出1位数据至NRF905,至此结束了模拟1位数据的传输。按上述步骤循环8次,即完成通过SPI总线传输1 bit的操作。nRF905有5个内部寄存器,分别是状态寄存器、RF配置寄存器、发送地址寄存器、发送数据寄存器和接收数据寄存器,这5个寄存器都是通过89C52软件模拟的SPI接口来配置的。除了对寄存器进行配置外,89C52还要对nRF905的工作模式进行切换控制。

5 电源电路设计

本系统使用两个电源,单片机STC89C52RC使用5 V电源,NRF905采用3.3 V电源进行供电,然后把STC89C52RC和NRF905共地,否则会出现无法传输数据。其中转换芯片分别使用AMSlll7-5.0转5 V芯片和AMSl117-3.3转3.3 V芯片电路图,如图3所示。电源电路使用220 V的交流电适配器输出的9 V直流,经C1滤波进入AMSlll7-5.0,然后在输出端接一个100μF的电容进行滤波去耦,从而得到5 V直流电压供单片机使用;然后5 V电压接入下一级AMSlll7-3.3电源转换芯片,输出3.3 V供NRF905使用。

6 软件设计的C语言实现

对于发送端,首先进行I/O口和SPI接口初始化,然后对nRF905的寄存器进行配置并且初始化各个接口,经过初始化,处理完采集好的数据,设置 nRF905为发送模式,调用发送代码,延时一段时间,等待数据发送完毕;同理在接收端也执行相同的初始化,不同的只是初始化完毕后,把nRF905模块设置成接收模式,然后调用接收程序。最后通过串口在上位机进行显示。

7 实验分析

文中对其软硬件进行了设计和调试,构建了基于SPI无线通信系统平台。实验证明,通过该系统无线测试板壳应力,在nRF905发射模块端,敲打板壳使之发生形变,再用应变仪传感器测得其形变的电压值,在数据发射之前对此模拟信号进行AD采集,并通过无线发射模块把采集到的数据发射出去;同时先在离发射模块相距50 m的位置放置一个接收模块,接收发射数据并显示。然后间距每进行一次实验后增加50 m。以此判断它们在保证信号传输稳定情况下的最远传输距离。测得最佳结果在相距350 m以内的楼宇之间,数据传输稳定。超过350 m时,数据显示出现时显时无的现象。表1是在300 m左右实际测得的几组应变值。

8 结束语

文中介绍了用SPI总线接口进行数据传输的实现方法,采用nRF905射频收发芯片和STC89C52RC单片机设计了无线数据传输系统,完成硬件电路和系统软件调试后,进行了无线数据收发实验。实验过程是通过应变仪传感器测板壳形变得到的模拟信号,经AD采集后产生要发送的数据,然后对其进行发射、接收和显示。实验结果表明,在相距350 m的楼宇之间通信,该无线传输系统工作稳定,接收和发射的数据完全相同,这表明该系统能实现数据的有效传输,具有高速、抗干扰能力强等优点。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2525

    文章

    48127

    浏览量

    740170
  • 芯片
    +关注

    关注

    447

    文章

    47820

    浏览量

    409193
  • 单片机
    +关注

    关注

    6002

    文章

    43983

    浏览量

    620891
收藏 人收藏

    评论

    相关推荐

    基于nRF905无线串口通信系统

    本文介绍了一种硬件设计简单、数据传输可靠的无线串口通信系统的设计与实现。文中从基于nRF905芯片
    发表于 03-04 12:21

    nrf905无线传输模块

    现在用51单片机nrf905做一个表决器。关于nrf905有一些问题,想让大家帮帮忙!!!nrf905上的spi接口只需要设置RF配置寄存
    发表于 09-15 17:16

    stm32单片机驱动nrf905的问题

    我用51单片机与 stm32单片机进行无线通信,现在,M3可以发送数据51
    发表于 10-13 00:22

    NRF905无线传输模块驱动51单片机传输数据

    NRF905无线传输模块驱动51单片机传输数据
    发表于 05-04 21:24

    一种基于nRF905和C8051F单片机无线数据传输系统设计

    无线射频器收发组成的一种无线数据传输系统的方案。该系统由发射和接收模块组成,发射模块主要将要发送的数据
    发表于 07-19 06:02

    如何利用ATmega16和nRF905实现无线数据传输设备设计?

    本文介绍利用ATmega16单片机无线数据收发芯片nRF905构成的短距离无线
    发表于 06-01 06:54

    基于PC 机的无线水文信息数据传输系统的设计与实现

    基于PC 机的无线水文信息数据传输系统的设计与实现摘要:PC 机与无线数据传输模块作为中心控制,
    发表于 04-23 14:10 29次下载

    基于nRF905无线数据传输系统

    介绍了单片射频收发器nRF905,设计了基于nRF905和MCU的无线通信系统;给出了相关的硬件设计电路和完整的通信协议;经过实际
    发表于 12-13 17:11 141次下载

    基于SPI总线的无线数据传输系统设计

    基于SPI总线的无线数据传输系统设计   摘要: 通过基于SPI总线的无线数据通信设备,利用无线
    发表于 03-13 11:42 3660次阅读
    基于SPI总线的<b class='flag-5'>无线</b><b class='flag-5'>数据传输</b><b class='flag-5'>系统</b>设计

    NRF905无线串口通信系统

    本文介绍了一种硬件设计简单、数据传输可靠的无线串口通信系统的设计与实现。文中从基于nRF905芯片
    发表于 03-22 14:23 214次下载

    NRF905无线收发芯片原理及设计实现

    介绍了无线收发芯片nRF905 的功能, 及其与51 单片机的接口设计。单片机可以很容易地通过S
    发表于 03-02 16:43 443次下载
    <b class='flag-5'>NRF905</b><b class='flag-5'>无线</b>收发<b class='flag-5'>芯片</b>原理及设计<b class='flag-5'>实现</b>

    nRF905无线数据传输系统

    nRF905无线数据传输系统
    发表于 11-06 11:32 0次下载

    基于nRF905芯片无线传输设计与实现

    介绍 了利 用nRF905芯片进行 无线传输的设计 思想和 实现方法。整个无线
    发表于 10-25 18:04 547次下载

    nRF905无线数据传输系统

    电子设计研发部分的研发人员常用资料,nRF905无线数据传输系统,感兴趣的可以瞧一瞧。
    发表于 11-03 14:53 0次下载

    NRF905无线收发芯片原理及设计实现

    介绍了无线收发芯片nRF905 的功能,及其与51单片机的接口设计。单片机可以很容易地通过SPI
    发表于 06-17 08:00 11次下载
    <b class='flag-5'>NRF905</b><b class='flag-5'>无线</b>收发<b class='flag-5'>芯片</b>原理及设计<b class='flag-5'>实现</b>