由于nRF905具有ShockBurstTM功能,使得nRF905不需要使用昂贵的高速微控制处理器(MCU)对数据处理/时钟恢复,也能达到较高的数据率。通过在芯片上将所有的高速信号处理变为射频通信协议,nRF905芯片提供了一个具有微控制器能力的SPI接口,数据率由具有微控制器功能的接口速率自行设定。收发电路的数字部分是一个低速率电路,而收发电路的射频链接却是一个处于最高速率的电路,整个电路要通过变速才能解决速率上的差异。nRF905芯片的ShockBurstTM模式减少了在这一过程中的平均电流消耗。在ShockBurstTMRX模式中,当一个有效地址的数据包被接收时,能够通过AM和DR两个信号外送给MCU。在ShockBurstTMTX模式中,nRF905芯片自动地完成报头的生成和CRC校验,当发送过程完成后,能够通过DR信号外送给MCU,发送工作已经完成。这样可以降低MCU对内存的要求,使得MCU实现了低成本,同时也缩短了软件的开发周期。
3 硬件设计
单片机选用ATMEL公司生产的AT89LV51单片机。它具有低功耗、低电压(与nRF905共用同一电压)的特性,它既适合结构比较简单的应用系统,也适合于比较复杂的实时系统。单片机主要完成两个方面的工作,一方面完成对射频芯片通信过程的控制,另一方面通过RS-232总线与上位机相连。由于AT89LV51内部没有集成SPI接口,因此通过软件模拟的方法来实现与nRF905的SPI通信。硬件连接上,由P2口、P3.2、P3.3、P3.5连接到nRF905模块的连接器相应的引脚上。电路如图1所示。
4 软件设计
4.1 发射子程序
(1)当单片机有数据需要发往规定节点时,接收节点的地址(TX_address)和有效数据(TX_payload)通过SPI接口传送给nRF905,单片机设置接口速度。
(2)单片机设置TRX_CE,TX_EN为高电平来启动传输。
(3)nRF905内部处理:
无线系统自动上电;
数据包完成(加前导码和CRC校验码);
数据包发送(5Ok, GFSK,曼彻斯特编码)。
(4)如果AUTO_RETURN被设置为高电平,nRF905将连续的发送数据包,直到TRX_CE被设置为低。
(5)当TRX_CE被设置为低时,nRF905结束数据传输并将自己设置成待机模式。发送程序流程图如图2所示。
4.2 接收子程序
(1)通过设置TRX_CE高,TX_EN低来选择RX模式。
(2)650us后,nRF905监测空中的信息;
(3)当nRF905发现和接收频率相同的载波时,载波检测(CD)被置高;
(4)当nRF905接收到有效的地址时,地址匹配(AM)被置高;
(5)当nRF905接收到有效的数据包(CRC校验正确)时,nRF905去掉前导码,地址和CRC位,数据准备就绪(DR)被置高;
(6)单片机设置TRX_CE低,进入待机模式;
(7)单片机以合适的速率通过SPI接口读出有效数据。接收程序流程图如图3所示。
5 结语
利用单片射频无线收发芯片 nRF905,容易实现小尺寸、高稳定性的无线数据传输系统,通信程序简单,易于实现,较一般的无线通信系统更具有扩展方便的优点。其数据传输速度快、可靠性高、可移植性强,可广泛应用于各类无线数据通信中。
参考文献
[1]吕跃刚. 基于nRF905无线数传模块的设计及其实现[J].微计算机信息,2006,22(11-2),274-275.
[2]侯海岭,姚年春.无线收发芯片nRF905的原理及其在单片机系统中的应用[J].仪器仪表用户,2006,13(3),70-71.