引 言
短程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所列。
表1 引脚功能
3 应 用
用RFWl02芯片组和RFW一D100开发一套点对多点的无线收发系统。上位机采用W78LE516,通过USB总线与PC相连,通过RFW一D100与RFWl02芯片组连接进行无线数据收发;下位机采用MSP4130F133,通过RFW—D100与RFWl02芯片组连接进行无线数据收发。开发过程发现,目前与RFW—D100、RFWl02芯片组相关的文献中所提供的电路,基本上都是参照产品的数据手册,参考价值有限。这里,提供一种上位机无线收发部分的硬件电路,如图2所示。
图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能量和资源;是一个简单的、标准的、完整的解决方案,开发人员仅需做外围元器件的调整工作。
关键字:MCU 单片机 数字
引用地址:
无线数据传输后端RFW—D100的原理与应用
推荐阅读最新更新时间:2024-05-07 15:54
单片机小白学习之路(十)---点阵
目标:用点阵点亮一个灯 1. 8x8LED点阵简介 LED点阵是由发光二极管排列组成的显示器件,在我们日常生活的电器中随处可见,被广泛应用于汽车报站器,广告屏等。 8x8点阵 生活中利用 2. 内部结构 内部结构 有点数码管,矩阵按键的影子,有两种接法,都一样其实,我们是左边的那个接法。 控制和矩阵按键差不多,行为一组,列为一组。左边的列是由74HC595芯片控制的, 上面的行是P0端口控制的 点阵模块电路 看看我们这个芯片的说明书: 引脚说明 这个芯片是8 位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。三态。 模块电路里的符号是自己可改的, 我们看引脚就知道了, 模块电路中D0
[单片机]
IAR下STM8S207单片机各模块的无库例程
简介:TIM/ADC/CLOCK/EEPROM/SPI/UART/WWDG/IWDG等不使用库的应用例程,包含SPI双机通讯、定时器的捕获、PWM各功能的实现等;原理图有2个错误:1,晶振电容为22P;2,按键电容位置错; 以下模块全部已调试通过: #include ioSTM8S207S8.h #include Includes.h #include Constants.h #include Functions.h #include Globals.h /* Author: EighthArmy @ July.2010 */ /******************************************
[单片机]
51单片机学习历程《一》——跑马灯
学习单片机需要手动自己多写代码,一般刚学51单片机代码量也不会太多,需要有一定的C语言,数字电路和模拟电路的基础知识,比起看理论知识,不如多写多在板子上调试,这样学得快多了,也非常有效,但其基础知识也非常重要,这样有利于深入学习,学习用的开发板可以在网上淘一个,很多,学习软件有:开发软件我用的是(Keil uVsion5.LNK)和单片机下载编程烧录软件(STC—ISP),网上可以下载,具体下载调试若有不懂可以百度或者留言哟! 刚开始学应先学51pcb板原理图,画一下51最小系统原理图,今天就先讲一个入门小程序 :跑马灯的实现!话不多说,直接上代码: 代码不多,很好理解,18行先给变量led1赋值0x01;进入for循环后
[单片机]
DS1307与兼容8051的微控制器接口
本应用笔记提供了如何将DS1307实时时钟(RTC)连接至微控制器的信息,并提供了一些访问该器件的示例代码。 介绍 DS1307串行实时时钟集成了2线串行接口,可使用兼容8051的微控制器进行控制。本例中的DS1307直接连接到DS5000微控制器上的两个I/O端口,2线握手由低电平驱动器处理,本应用笔记对此进行了讨论。 DS1307 说明 DS1307串行实时时钟为低功耗、全BCD时钟/日历外加56字节非易失性SRAM。地址和数据通过2线双向总线串行传输。时钟/日历提供秒、分钟、小时、星期、日期、月份和年份信息。对于少于 31 天的月份,月末日期会自动调整,包括对闰年的更正。时钟以 24 小时制或 12 小时制运行,带
[单片机]
【自学51单片机】12 --- 1602液晶初步认识
1、1602液晶硬件接口介绍 1602液晶技术参数 说明:(1) 工作电流:在5v工作电压下液晶的工作电流为2mA,仅仅指液晶,不包括背光。 1602液晶接口原理图及引脚功能 说明:(1) 引脚3:液晶显示偏压信号。用来调整显示黑点与不显示黑点的对比度。(2) 4引脚:数据命令选择引脚。置高电平1,为读写数据,置低电平0,为读写命令。(3) 5引脚:读写选择引脚。置高电平1,为读数据或命令,置低电平0,为写数据或命令。(4) 6引脚:使能信号引脚。高电平有效,低电平无效。(5) 7~14引脚:8个数据引脚。因为总电流不大,直接接到PO口上,不用通过74HC245。 2、1602的读写时序介绍 液晶内部自带80
[单片机]
深入理解MSP430单片机IO
一、MSP430单片机的端口概述 P1~P6每组有8个I/O 口,P3,P4,P5,P6具有I/O,及其它片内外设功能,每组具有4个寄存器。P1,P2除具有上述功能外还具有中断能力,每组具有7个寄存器。 二、PX端口 1. P1,P2端口 (1)PxDIR 输入/输出方向寄存器(x代表1,2) 相互独立的八位分别定义了Px7~Px0,8个引脚的输入输出方向。 0 输入模式,只能读。 1 输出模式,可读可写。 8为在PUC后都被复位及置为0. Eg:P1DIR=0X0F; 这里0X0F为16进制表示,对应的二进制为00001111,即将P1DIR的高4位置0,低4位置1,也就是将P1.7,P1
[单片机]
基于stm32单片机的Grayhill编码器/开关软件设计
1、初识编码器,像示波器的旋转按钮,可左旋右旋,还可以按下,我们使用的是Grayhill编码器,如下图所示: 从图中可以看出,该编码器一共有6个IO,从1-6分别为GND,GND,C,B,A,VCC,。 其中VCC和GND接3.3V和GND,A、B对应旋转时电平的跳变IO,C对应按下时电平的跳变IO。 (1) 硬件电路设计上,为了方便代码编写与理解,最好把编码器的A、B接到单片机相邻的GPIO中,即使用同一个中断处理函数,比如本设计A、B分别接到PB12和PB11。C接任一个GPIO,当成中断使用。 (2) 顺时针和逆时针旋转编码器时,慢慢旋转一个单位(手指头会有明显旋转到位的感觉),用万用表测量A、B对应的IO
[单片机]
使用瑞萨电子 RA8M1 MCU 快速部署强大而高效的机器学习
人工智能 (AI)、机器学习 (ML) 和物联网 (IoT) 网络边缘的其他计算密集型工作负载的兴起给微控制器 (MCU) 带来了额外的处理负载。 即使设计人员被要求最大限度地降低功耗并加快上市时间,处理这些新的工作负载也会增加功耗。 设计人员需要一种计算选项,既能保持 MCU 的效率,又能添加专门针对低功耗用例定制的高性能功能。 此选项还应保留与传统 MCU 相关的简单部署模型,同时添加足够的功能来支持 AI 和 ML 启用的复杂应用程序,例如语音控制和预测性维护。 本文讨论了推动人工智能和机器学习需求的因素,并解释了为什么需要新的处理器架构来有效地提供这些功能。 然后介绍瑞萨电子的 RA8M1 MCU 系列,并展示如何
[单片机]