微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于nRF24L01和PIC16F877无线数据传输系统设计

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

时间:06-24 来源:互联网 点击:

引言

  在工业控制现场, 常常需要采集大量的现场数据, 如温度、湿度、气压等, 并将这些数据传输到主机进行处理,由主机根据处理的结果, 将控制信号传输给现场执行模块进行各种操作。可以看出数据从采集设备到处理终端,监测控制指令从处理终端到采集设备,均需经过传输过程这一重要环节。当数据采集点处于运动状态,或者所处的环境不允许铺设电缆,采集设备必须与终端设备分离,此时只能通过无线方式进行数据传输。基于此,本文设计了一个无线数据传输系统,它应用Microchip公司的PIC16F877单片机控制Nordic公司的无线数字传输芯片nRF24L01 ,通过无线方式进行数据双向传输。实验结果证明:该系统使用灵活、成本低廉,可方便地嵌入到无线监测系统中。

1.系统总体结构设计

图1为系统设计总体框图。此无线数据传输系统主控制芯片采用Microchip公司的PIC16F877微处理器,它负责控制无线芯片L01,实现数据的无线传输。为了进行多通道的数据采集,这里采用10片A/D进行分时采样,它们的工作时序则由CPLD来控制,每路采集的数据经单片机处理后无线发射,至于何时采样,则由单片机发的Trigger信号决定。 在与计算机的通讯方面,系统采用USB芯片通过USB口将无线接收数据送入计算机,并存储在一个二进制文件内,当传输完毕后,运行VB读数软件,可将采集的信号读出以供分析。

2.系统硬件设计

2.1 数据采集部分

  数据采集部分主要由传感器、低通滤波放大器、A/D以及CPLD组成,电源管理则主要为各个芯片提供合适工作电压,并为CPLD提供1MHZ主时钟输入。此系统采用10片AD7492,可进行10路模拟信号的采样。CPLD主要控制10片A/D的采样和读数时序,采样率由CPLD内部分频器和无线传输率大小决定。为了配合无线传输模块的工作,这里采用触发采样。即在CPLD内部设计D触发器,并用VCC连接D输入端,Trigger信号作为时钟输入,如图2所示。系统上电后,CPLD便检测其引脚Trigger端,当出现上升沿时, D触发器输出高电平,打开与非门,Convast就会输出1KHz信号,A/D采样开始。

  

2.2 无线传输部分

数据传输主要利用PIC16F877单片机对无线射频芯片L01的控制实现的。nRF24L01是单片射频收发芯片,工作于2.4~2.5GHzISM频段,工作电压为1.9V~3.6V,工作温度为- 40℃~+ 85℃,有多达125个频道可供选择,最高通信速率2Mbit/s ,具有自动应答和重发功能,其工作参数全部通过芯片状态字配置,而这些配置字是由PIC16F877通过SPI[1]访问L01的。L01主要技术为:

工作模式 :CE,CSN,SCK,MOSI,MISO,IRQ这6个管脚为该芯片的控制引脚。微处理器通过对这6个引脚的控制就可以决定该芯片的工作模式。当PWR_UP、PRIM_RX和CE为“111”时,L01处于接收模式;为“101”时处于发射模式;为“1X0”时处于空闲模式1;为“0XX”时处于掉电模式。

增强型ShockBurst技术:L01融进了增强型ShockBurst技术,该项技术使得双向通信协议变得简单。在一个典型的双向通信中,接收方在收到发射方的数据时,将会向发射方回传一个应答信号,若接收方未收到该数据,发射方在等待一定延迟时间后将自动重发此包数据(在自动重发功能开启的情况下),这都不需要CPU的参与。

数据通道:当L01处于接收状态时,它可以接收来自6个不同通道的数据。每个通道都有一个属于自己的通道地址,但共享同一频道。也就是说,一个配置为接收模式的L01可以和6个配置为发射模式下的L01进行通信,接收机可以根据它们的通道地址进行区分。通道0有一个40位的地址,通道1—5则共享高32位地址,只是低8位不同。每个通道都能开启自动重发射和自动应答功能。处于接收状态下的L01在回传应答信号时,将利用该接收通道的地址作为发射应答信号的发射地址。在发射设备中,通道0常用于接收应答信号。发射数据的地址必须和接收通道0的地址一致 ,这样才能有效地接收应答信号。

数据包描述:“1字节字头 + 3~5字节地址 + 9Bit标志位 + 1~2字节CRC”。 当L01要发送数据时,微控制器要先把地址和有效数据写入L01缓存区,然后由L01自动产生字头和CRC校验码,之后再发射出去。

2.3 USB接口设计

系统采用USB芯片FT245,由单片机控制读写操作。FT245提供了一些状态标志位(RXF,TXE)供单片机查询,以便让单片机发读写脉冲执行读写操作,控制非常简单。

3.软件设计

要设计好系统的软件,必须清楚其工作原理:首先给发射机上电,配置其L01为PRX,使其进入接收模式等待主机的握手指令,此时采集装置并未开始工作。然后将接收机通过USB接口连接计算机,

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top