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

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

3天内不再提示

通过PIC单片机控制nRF2401和FT245BM芯片实现无线数据传输系统设计

电子设计 来源:世界电子元器件 作者:杨毓;王代华;祖 2020-04-10 08:08 次阅读

引言

通信信息的交换平台,在人们的工作和日常生活中起着重要的作用。传统的通信技术是通过数据线和串口/并口将设备连接在一起,这样就存在布线困难和其它不方便的因素。而且传统的RS232串口通迅和并口通讯都存在传输速度低、接口的连接过于复杂等不足。本文所设计的基于USB接口的无线数据传输系统利用了USB接口的高传输速率、即插即用等优点,并结合了无线数据传输技术,实现了计算机之间的无线数据通讯,解决了传统通信技术带给我们的不便。

系统硬件设计

基于USB接口的无线数据传输系统总体方案如图1所示,该系统由发射和接收两部分组成。其中,发射(接收)系统由单片机控制射频发射模块和单片机控制USB芯片两部分组成。系统的工作过程为:主机将数据通过USB接口传给单片机,数据通过单片机的SPI口再传给射频发射模块,最后由射频发射模块把数据发射出去。射频接收端接收到符合的数据包后,通知单片机读取数据,单片机将数据通过USB接口送给主机,这样就完成了一包数据从发射端到接收端的传输。

通过PIC单片机控制nRF2401和FT245BM芯片实现无线数据传输系统设计

单片机控制nRF2401

nRF2401芯片工作在全球开放的2.4~2.5GHz ISM免申请频段共125个频点,可满足多频点和跳频的需要;最高速率可达1Mbps,低功耗;发射功率和频道参数可通过软件设置完成。nRF2401内置地址解码器、FIFO(先入先出栈区)、解调处理器、GFSK滤波器、低噪声放大器、频率合成器,功率放大器,晶体振荡器等部分构成。nRF2401有两种模式:Direct Mode(直接模式)和ShockBurst模式。ShockBurst技术采用芯片内部FIFO,数据以较低的速率存在FIFO中,再以很高的速率(1Mbps)将数据发射出去,因此它的功耗和成本都很低。nRF2401上的编程采用三线接口方式,单片机通过DATA,CLK1,CS三个引脚对nRF2401芯片进行初始化设置和数据的输入输出,单片机还可以通过PWR_UP,CE,CS三个引脚对其进行控制,使nRF2401进入不同的工作模式。nRF2401的DATA引脚是数据引脚,SCK引脚是时钟引脚,在时钟信号的配合下,单片机通过DATA引脚从nRF2401中读取数据或者把数据写入nRF2401。单片机与nRF2401连接如图2所示。

首先对nRF2401进行参数配置,CS=1,CE=0,PWR_UP=1。bit[119:0]有120位需要配置。这里需要注意的是nRF2401一包数据的最大长度是256位(32Byte),数据段的位数=256-地址段的位数-CRC的位数。因此,要想在一包数据中传输尽可能多的数据段的位数,那么应该减少地址段的位数和CRC的位数。接下来进入突发模式:CS=0,CE=1,PWR_UP=1。通过模拟SPI口把数据和接收方的地址写入nRF2401。注意该地址是接收方的地址。最后将CE置低,无线传输芯片把数据发射出去。

单片机对FT245BM的控制

FT245BM芯片是由FTDI(Future Technology Devices Intl Ltd)公司推出的第二代USB芯片,它的功能是实现USB接口与并行I/O接口之间数据的双向传输。它由3.3V稳压器,USB收发器,锁相环,串行接口引擎(SIE),FIFO控制器,USB协议引擎,FIFO接收缓冲区,发送缓冲区,以及6M振荡器,8倍频时钟倍频器等组成。一方面,当外部设备有数据要传给主机时,数据通过8位并行I/O接口传给USB芯片内部的数据缓冲区,FT245BM再将8位并行数据转化为串行数据,通过USB接口把数据发送给主机;另一方面,当主机有数据要给外部设备时,先将串行数据通过USB接口存储在USB芯片内部缓存区中,FT245BM再将串行数据转化为8位并行数据,然后通过8位I/O接口把数据传给外部设备。单片机与FT245BM的连接如图3所示。

单片机对FT245BM的控制是通过RXF#,RD#,TXE#,WR这四个读写控制信号完成的。当RXF#为低时,表示主机已经将至少1字节的数据发送到USB的接收缓存区,单片机只需将RD#信号由低置高,就可以把D0-D7上的数据读到单片机的寄存器中。当TXE#为低时,表示单片机可以把1字节的数据写入USB,只需把WR信号由高变低,就可以将D0-D7上的数据写入USB的发送缓存区。注意,当TXE#为高时不可以将数据写入USB,这时USB的发送缓存区中正在处理上一次写入的数据或是发送缓存区已经写满。同样,当RXF#为高时,也不能从USB芯片中读取数据。

电路设计可采用总线供电和自供电两种供电方式,总线供电方式是指FT245BM设备的电源是通过计算机的USB接口供给的,电流要通过该口流入FT245BM设备。自供电方式是指FT245BM设备的电源由自己提供,而不通过主机供给。如果采用总线供电方式,在电源端采用一个磁珠,可以减少主机和设备的干扰。同时,在电源端增加去耦和旁路电容,可以提高电路的抗干扰性。如果电路没有外接一片EEPROM,FT245BM将采用默认的VID、PID、产品描述符和电源描述符。

软件设计

发射端流程、接收端流程见图4、图5。

软件设计

当 外设连接到主机上的USB接口时,主机会检测到新硬件,这时需安装一个由FTDI公司免费提供的D2XX驱动程序,在该驱动程序中包含了一个动态链接库(DLL)。该DLL由四部分组成:Classic Interface Functions、EEPROM Interface、Extended API和FT-Win32 API。Classic Interface Functions中包括FT_Open、FT_Read、FT_Write、FT_Close、FT_SetTimeOuts等函数,其功能如表1所示。

调用FT_Open函数,打开设备。如果函数的返回值与FT_OK的值相等 ,那么函数调用成功,即USB设备被打开。调用FT_Read函数,从USB中读取数据。在程序中应该设置一个字节型数组,用来存放从USB中读取的1字节数据。调用之前需设置FT_SetTimeOuts函数的读/写操作时间,如果实际的读操作时间超过了所设置的时间,那么认为读数失败;只有当规定读入的字节数与实际读入的字节数相等时,读操作 才算彻底完成。调用FT_Write函数,把数据写入USB中。在程序中应该设置一个字节型数组,用来存放要写入USB发送缓存器的数据,数组的长度可以自行设定,但最好不要超过384个字节。只有当规定发送的字节数与实际发送的字节数相等时,写数才算成功。调用FT_Close函数,关闭设备。如果函数的返回值与FT_OK的值相等 ,那么函数调用成功,即USB设备被关闭。

结论

本系统采用了nRF2401无线射频芯片和USB接口芯片FT245BM,通过PIC单片机进行控制,在主机端用VB编写了USB软件,实现了两台计算机之间的无线数据传输,解决了传统通信技术的不足,具有很好的应用前景。

责任编辑:gt


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

    关注

    6030

    文章

    44502

    浏览量

    632298
  • 射频
    +关注

    关注

    104

    文章

    5540

    浏览量

    167488
  • 无线
    +关注

    关注

    31

    文章

    5423

    浏览量

    173007
收藏 人收藏

    评论

    相关推荐

    FT245BM芯片简介

    FT245BM进行数据交换,FT245BM通过并行方式和下位微控制器通信。该芯片有如下特点:
    发表于 04-18 10:26

    nrf2401芯片单片机控制,若是用FPGA时序控制,注意哪些?

    如题,一般nrf2401芯片单片机控制,若是用FPGA时序控制,那么应该注意哪些?毕竟随着时代的发展,FPGA的应用范围将会越来越广,那么
    发表于 03-12 13:05

    USB接口芯片FT245BM的功能及其应用

    概要通用串行总线USB(Universal Serial Bus)由于具有数据传输速率高、易于使用、支持热插拔等特点,越来越成为一种流行的计算机通信接口。FT245BM芯片是由FTDI(Future
    发表于 12-20 11:02

    采用FT245BM和FPGA实现USB接口设计

    USB协议芯片FT245BM实现了FPGA与PC的USB通信,该方法不用微控制器,减少了元器件的个数,并且占用FPGA资源很少,FPGA
    发表于 04-22 07:00

    采用FT245BM和FPGA实现USB接口设计

    3.2.2发送状态发送状态完成的主要功能是将外设产生的数据通过FT245BM和USB总线传送到PC。外设将
    发表于 04-22 07:00

    采用FT245BM和FPGA实现USB接口设计

    USB协议芯片FT245BM实现了FPGA与PC的USB通信,该方法不用微控制器,减少了元器件的个数,并且占用FPGA资源很少,FPGA
    发表于 04-26 07:00

    FT245BM中文资料,pdf datasheet

    FT245BM的主要功能是进行USB和并行I/O口之间的协议转换。详细介绍FT245BM芯片的工作原理、内部结构、引脚分布及功能;给出基于FT245BM接口电路的典型设计及驱动和应用软
    发表于 06-16 08:43 234次下载

    基于PIC无线数据传输系统设计

    本论文以PIC单片机为核心部件,设计和开发了一套无线数据传输系统PIC
    发表于 08-07 08:18 32次下载

    基于nRF2401的分布式测温系统设计

    利用温度传感器DS18B20 、AT89S51 单片机nRF2401 收发芯片设计分布式无线温度测试系统。将温度传感器DS18B20 采集
    发表于 08-30 15:51 134次下载

    USB接口芯片FT245BM的功能及其应用

    通用串行总线USB(Universal Serial Bus)由于具有数据传输速率高、易于使用、支持热插拔等特点,越来越成为一种流行的计算机通信接口。FT245BM芯片是由FTDI(Future Technology Devic
    发表于 05-14 15:47 4474次阅读
    USB接口<b class='flag-5'>芯片</b><b class='flag-5'>FT245BM</b>的功能及其应用

    FT245BM的USB接口电路设计

    FT245BM的接口电路设计 设计采用USB总线供电,图2中FT245BM与一片MCU相连,MCU的一个8位端口用来传输数据,另外一个端口用来控制
    发表于 05-14 18:12 2273次阅读
    <b class='flag-5'>FT245BM</b>的USB接口电路设计

    基于FT245BM的简易USB接口开发

    基于FT245BM的简易USB接口开发 FT245BM的主要功能是进行USB和并行I/O口之间的协议转换。详细介绍FT245BM芯片的工作原理、内部结构、引脚分布及功能;给
    发表于 06-16 08:42 1696次阅读

    基于nRF24L01和PIC16F877无线数据传输系统设计

    本文设计了一个无线数据传输系统,它应用Microchip公司的PIC16F877单片机控制Nor
    发表于 06-27 10:00 1576次阅读
    基于<b class='flag-5'>nRF</b>24L01和<b class='flag-5'>PIC</b>16F877<b class='flag-5'>无线</b><b class='flag-5'>数据传输</b><b class='flag-5'>系统</b>设计

    基于nRF2401无线数据传输系统

    基于nRF2401无线数据传输系统,参考下。
    发表于 01-25 10:28 53次下载

    基于nRF24L01和FT245BM无线文件传输系统设计

    本文采用PIC16F877单片机、USB芯片FM245BM无线芯片nR孔4功1组成
    发表于 12-15 16:44 2236次阅读
    基于<b class='flag-5'>nRF</b>24L01和<b class='flag-5'>FT245BM</b>的<b class='flag-5'>无线</b>文件<b class='flag-5'>传输</b><b class='flag-5'>系统</b>设计