引言
短程rf通信是一种比较热门的通信技术,支持该通信技术的标准很多,如ieee802.11a、hiperlan2、ieee802.15.1(蓝牙)、homerf和ieee802.11b(wi-fi)等,但总的来说,支持这些标准的器件不适合低端产品,功耗大,结构复杂、价格高,以色列rf waves公司面向低端市场,推出的rfw102芯片组和rfw302芯片组,符合fcc(美国联邦通信委员会)和etsi(欧洲电信标准协会)的技术规范,用于短程rf通信,取得了很好的效果,rf waves公司还为这两种芯片组提供了rfw-d100数字后端,笔者在以w78le516单片机、rfw102芯片组和rfw-d100数字后端为核心开发产品时,深感rfw-d100所起的巨大作用:降低了单片机程序的复杂性,节省了cpu能量和资源。
1 rfw-d100简介
rfw-d100是为rfw102/rfw302芯片组提供的一个数字后端,它为mcu提供了一个并行接口,使之连到rfw102。在rf应用中,mcu负责mac层的协议。rfw-d100减少mcu处理mac层协议的实时要求,使mcu通过一个并行口连接到rfw102,类似于存储器寻址,它将快速的串行输入转换成8位的字节,使8位的mcu更容易处理。此外,rfw-d100仅使用一个低速率的振荡器,通过1个16字节的fifo来缓冲输入/输出,使mcu与rfw-d100之间的寻址率更高,mcu不是每次中断读写1个字节,而是每16个字节,相比于每字节的输入都引起一个中断,这样就明显减少了mcu在读输入字节时的开销。当使用fifo时,mcu为所有fifo的字节所付出的开销与没有用fifo时仅为1个字节付出的开销是一样的。
2 rfw-d100的结构、工作原理及功能
rfw-d100的结构如图1所示。
振荡器模组是rfw-d100的时钟源,可以不用,直接用一个外部振荡器去驱动rfw-d100,rfw-d100有三种模式:掉电模式、空闲模式和工作模式。前两种模式可使芯片处于低功耗状态,节省系统能量。由于在进入前两种模式前,保存了所有寄存器中的值,所以系统唤醒时间短。rfw-d100有一个预相关器,在数据进行收/发时,rfw-d100首先检测/发送一个预同步头,目的是启动接收端的rfw102,以使接收端同步,rfw-d100为维持系统的灵敏性,在进行数据收发时,当连"0"符号太多时,在传送端会在数据流中自动加一个"1"符号;而在接收端,rfw-d100会将这个"1"符号自动拿走。rfw-d100能够根据设置,自动在要发送的每一信息包中加上附加的crc信息,在接收端也会自动计算crc信息,进行crc校验,降低mcu的负担,提高数据的可靠性,当有信息包要收发时,wdt通信看门狗可以在任何时候,将mcu从省电模式下唤醒。rfw-d100设置了16字节的接收/发送缓冲区,理论上能使mcu每128μs读/写数据,而不是串行情况下的1μs或在有串并转换的情况下的8μs;rfw-d100的运作以处理各种中断事件为核心,开发人员可以根据情况灵活地启动/关闭中断,以适应各种环境。rfw-d100提供了网络id滤波器和节点id滤波器,根据网络地址和节点地址过滤输入信息,从而区别不同网络和不同节点间的信息。rfw-d100中使用两种技术以取得较强的载波侦听能力:(1)内部比较器rssi(无线信号强度指示)使rfw-d100可以鉴别任何强度的,也可能阻塞其自身的传送;(2)射频波网络侦听算法,使rfw-d100避免与其本身网络或同一区域不同网络站点的射频波的冲突,rfw-d100的引脚功能如表1所列。
3 应用
用rfw102芯片组和rfw-d100开发一套点对多点的无线收发系统,上位机采用w78le516,通过usb总线与pc相连,通过rfw-d100与rfw102芯片组连接进行无线数据收发,下位机采用msp430f133,通过rfw-d100与rfw102芯片组连接进行无线数据收发。开发过程发现,目前与sfw-d100,rfw102芯片组相关的文献中所提供的电路,基本上都是参照产品的数据手册,参考价值有限。这里,提供了一种上位机无线收发部分的硬件电路,如图2所示。
在具体的开发中,读者可根据自己的mcu型号,参考图2,配置rfw-d100的外围电阻电容,即可形成自己可运行的电路,其中rfw-d100的26、29、30号引脚直接与rfw102芯片组相应引脚相连。
在mcu的软件编程中,开发人员实际要做的是对rfw-d100的各种寄存器进行正确的寻址、写入控制字、读/写数据等,参考文献[1]中有较详细的描述,寄存器分配情况如表2所列。
这里,仅提出一点需要注意的地方,程序每次数据收发,都要对相关的控制寄存器进行重新写入,否则数据不能正常收发。如下面的程序段,是在发送数据的前对各控制寄存器写入的控制字,控