引 言
短程RF通信是一种比较热门的通信技术。支持该通信技术的标准很多,如lEEE802.11a、Hiperlan2、IEEE802.15.1(蓝牙)、HomeRF和IEEE802.1]b(Wi—Fi)等,但总的来说,支持这些标准的器件不适合低端产品,功耗大、结构复杂、价格高。以色列RF Waves公司面向低端市场,推出的RFWl02芯片组和RFW302芯片组,符合FCC(美国联邦通信委员会)和ETSI(欧洲电信标准协会)的技术规范,用于短程RF通信,取得了很好的效果。RF Waves公司还为这两种芯片组提供了RFW—D1OO数字后端。笔者在以W78LE516单片机、RFWl02芯片组和RFW—D1OO数字后端为核心开发产品时,深感RFW—D100所起的巨大作用:降低了单片机程序的复杂性,节省了CPU能量和资源。
1 RFW—D100简介
RFW—D100是为RFWl02/RFW302芯片组提供的
一个数字后端。它为MCU提供了一个并行接口,使之连到RFWl02。在RF应用中,MCU负责MAC层的协议。RFW—D1OO减少MCU处理MAC层协议的实时要求。使MCU通过一个并行口连接到RFWl02,类似于存储器寻址,它将快速的串行输入转换成8位的字节,使8位的MCU更容易处理。此外,RFW—D1OO仅使用一个低速率的振荡器,通过1个16字节的FIFO来缓冲输入/输出,使MCU与RFW—D100之间的寻址效率更高。MCU不是每次中断读/写1个字节,而是每16个字节,相比于每字节的输入都引起一个中断。这样就明显减少了MCU在读输入字节时的开销。当使用FIFO时,MCU为所有FIFO的字节所付出的开销与没有用FIFO时仅为1个字节付出的开销是一样的。
2 RFW—D1OO的结构、工作原理及功能
RFW-D100的结构图如图1所示。
振荡器模组是RFW—D100的时钟源,可以不用,直接用一个外部振荡器去驱动RFW—DlOO。RFW—D100有三种模式:掉电模式、空闲模式和工作模式。前两种模式可使芯片处于低功耗状态,节省系统能量。由于在进入前两种模式前,保存了所有寄存器中的值,所以系统唤醒时间短。RFW—D100有一个预相关器,在数据进行收/发时,RFW—D1OO首先检测/发送一个预同步头,目的是启动接收端的RFWl02,以使接收端同步。RFW—D100为维持系统的灵敏性,在进行数据收发时,当连“O”符号太多时,在传送端会在数据流中自动加一个“1”符号;而在接收端,RFW一D100会将这个“l”符号自动拿走。RFWD1OO能够根据设置,自动在要发送的每一信息包中加上附加的CRC信息,在接收端也会自动计算CRC信息,进行CRC校验,降低MCU的负担,提高数据的可靠性。当有信息包要收发时,WDT通信看门狗可以在任何时候,将MCU从省电模式下唤醒。RFW一D100设置了16字节的接收/发送缓冲区,理论上能使MCU每128μs读/写数据,而不是串行情况下的1 μs或在有串并转换的情况下的8 μs;RFW—D100的运作以处理各种中断事件为核心,开发人员可以根据情况灵活地启动/关闭中断,以适应各种环境。RFW一D100提供了网络ID滤波器和节点ID滤波器,根据网络地址和节点地址过滤输人信息,从而区别不同网络和不同节点问的信息。RFW-D100中使用两种技术以取得较强的载波侦听能力;①内部比较器RSSI(无线信号强度指示),使RFW—D100可以鉴别任何强度的、有可能阻塞其自身的传送;②射频波网络侦听算法,使RFW—D100避免与其本身网络或同一区域不同网络站点的射频波的冲突。RFW—D100的引脚功能如表1所列。
3应 用
用RFWl02芯片组和RFW一D100开发一套点对多点的无线收发系统。上位机采用W78LE516,通过USB总线与PC相连,通过RFW一D100与RFWl02芯片组连接进行无线数据收发;下位机采用MSP4130F133,通过RFW—D100与RFWl02芯片组连接进行无线数据收发。开发过程发现,目前与RFW—D100、RFWl02芯片组相关的文献中所提供的电路,基本上都是参照产品的数据手册,参考价值有限。这里,提供一种上位机无线收发部分的硬件电路,如图2所示。
在具体的开发中,读者可根据自己的MCU型号,参考图2,配置RFW—D100的外围电阻电容,即可形成自己可运行的电路。其中RFW—D100的26、29、30号引脚直接与RFWl02芯片组相应引脚相连。
在MCU的软件编程中,开发人员实际要做的是对RFW—D100的各种寄存器进行正确的寻址、写入控制字、读/写数据等,参考文献[1]中有较详细的描述。寄存器分配情况如表2所列。
这里,仅提出一点需要注意的地方:程序每次数据收发,都要对相关的控制寄存器进行重新写入,否则数据不能正常收发。如下面的程序段,是在发送数据前对各控制寄存器写入的控制字,控制字的具体含义见参考文献。其中WRITE(…,…)为自定义的宏,CS_PIN即为图2中MCU的P1.4脚。
……
#ddine WRITE(RE(REGVAL) CS_PIN=0;*((unsigned char
xdata*)(REG))=VAL;CS_PIN=1
……
WRITE(SCR4
.3);
WRITE(SCR2,OxlC);
WRITE(BLR,6);
WRITE(LCR,O)l
WRITE(BIR,0xAA);
WRITE(N1R.0x55);
WRITE(PPR,0xFA);
WRITE(PSR,12);
WRITE(PRE_H,0xF5);
WRITE(PRE_L,OxBB)}
WRITE(IER,16);
WRITE(SCR3,128);
WRITE(SCR4,O);
4 结论
使用无线数据传输数字后端RFW DlOO进行产品开发,有以下优点:更短的开发时间,更短的上市时间;为其他方面的应用节省CPU能量和资源;是一个简单的、标准的、完整的解决方案,开发人员仅需做外围元器件的调整工作。