基于nRF24L01和PIC16F877的无线数据传输系统设计
在工业控制现场, 常常需要采集大量的现场数据, 如温度、湿度、气压等, 并将这些数据传输到主机进行处理,由主机根据处理的结果, 将控制信号传输给现场执行模块进行各种操作。可以看出数据从采集设备到处理终端,监测控制指令从处理终端到采集设备,均需经过传输过程这一重要环节。当数据采集点处于运动状态,或者所处的环境不允许铺设电缆,采集设备必须与终端设备分离,此时只能通过无线方式进行数据传输。基于此,本文设计了一个无线数据传输系统,它应用Microchip公司的PIC16F877单片机控制Nordic公司的无线数字传输芯片nRF24L01 ,通过无线方式进行数据双向传输。实验结果证明:该系统使用灵活、成本低廉,可方便地嵌入到无线监测系统中。
nRF24L01芯片的介绍
nRF24L01是单片射频收发芯片,工作于2.4~2.5 GHz ISM频段。工作电压为1.9~3.6 V,有多达125个频道可供选择。可通过SPI写入数据,最高可达10 Mb/s,数据传输率最快可达2 Mb/s,并且有自动应答和自动再发射功能。和上一代nRF2401相比,nRF2401数据传输率更快,数据写入速度更高,内嵌的功能更完备。
芯片内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融进了增强式ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。芯片能耗非常低,以-6 dBm的功率发射时,工作电流只有9 mA,接收时工作电流只有12.3 mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。
系统总体结构设计
图1为系统设计总体框图。此无线数据传输系统主控制芯片采用Microchip公司的PIC16F877微处理器,它负责控制无线芯片L01,实现数据的无线传输。为了进行多通道的数据采集,这里采用10片A/D进行分时采样,它们的工作时序则由CPLD来控制,每路采集的数据经单片机处理后无线发射,至于何时采样,则由单片机发的Trigger信号决定。 在与计算机的通讯方面,系统采用USB芯片通过USB口将无线接收数据送入计算机,并存储在一个二进制文件内,当传输完毕后,运行VB读数软件,可将采集的信号读出以供分析。
系统硬件设计
数据采集部分
数据采集部分主要由传感器、低通滤波放大器、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采样开始。
无线传输部分
数据传输主要利用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校验码,之后再发射出去。
USB接口设计
系统采用USB芯片FT245,由单片机控制读写操作。FT245提供了一些状态标志位(RXF,TXE)供单片机查询,以便让单片机发读写脉冲执行读写操作,控制非常简单。
下一篇:投影机的视频带宽