基于nRF24L01和PIC16F877无线数据传输系统设计
本文设计了一个无线数据传输系统,它应用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)供单片机查询,以便让单片机发读写脉冲执行读写操作,控制非常简单。
上一篇:基于3G MIMO技术的实现
下一篇:用于MIMO的二元PIFA天线阵