历史上的今天
返回首页

历史上的今天

今天是:2025年03月01日(星期六)

2018年03月01日 | 由RFW122-M构成的短距离无线数据通信系统

2018-03-01 来源:eefocus

    利用AT89LV52单片机作控制器,实现基于RFWaves公司的射频芯片RFW122-M的短距离无线数据通信系统;分析射频芯片RFW122-M及其与单片机的接口芯片RFW-D100的特点;给出系统的硬件原理框图及软件流程图。对应用于该装置的无线数据传输协议CSMA进行分析,并且在对固件的编程配置中加以实现。


    目前, 短程射频通信技术是一种热门技术, 已广泛应用于实际中, 主要有无线局域网(WLAN )、个人区域网络(PAN) 及无线短距离消费类产品(如中低速数据传输应用, 有效范围在30 m以内)。该通信技术的标准有IEEE802.11a、Hiperlan2、蓝牙(IEEE802.15.1)、 HomeRF及IEEE802.11b(WIFI)等。支持这些标准的器件一般功耗都比较高,结构复杂,价格较高, 因而不适合低端产品。RFWaves 公司针对现有市场发展推出的面向低端的用于短距离无线通信的射频通信芯片组RFW122-M,符合美国联邦通信委员会(FCC)的技术规范。 

  本系统利用射频芯片RFW122-M及其与MCU的接口芯片RFW-D100,在单片机AT89LV52的控制下,实现了短距离的无线数据通信。 

   1 射频芯片RFW122-M及其接口芯片RFW-D100 

  RFW122-M无线收发芯片是一种半双工、使用直接序列扩频(DSSS)技术的无线收发两用集成电路,工作中心频率为2.44 GHz(ISM频段),采用ASK调制方式,工作电压为2.4~3.6 V。在空闲状态下,几乎不消耗功率(0.1 μA @ VCC=3 V)。RFW122-M可以外接一个200 Ω的差分阻抗天线(印制版天线)或带有匹配电路的其他天线,在误码率为10-3的条件下,接收灵敏度为-77 dBm。该模块有3根数据控制线,且其数据I/O口是一个串行的数字接口。它的唤醒时间为20 μs,同步时间是1.2 μs。最高数据传输速率为1 Mbps,此时工作电流为33 mA。 

  为了降低MCU实时处理MAC协议的要求,RFW122-M芯片组提供了RFW122-M与MCU之间的接口芯片RFW-D100。该芯片在MCU和RFW122-M之间提供了一个并行接口;同时提供了对CSMA协议的支持。RFW-D100采用了两种技术来获得比较好的载波侦听的能力: 一种是RSSI(射频信号强度检测),能检测到任何强度的无线传输,避免冲突;另一种是使用RFWaves 网络的载波侦听算法。采用这种技术可以避免与本网络内的或其他网络的RFWaves站点发生冲突。 

  (1) RSSI(射频信号强度检测) 

  RSSI机制用来比较某个非RFWaves站点传输的功率超过了一个确定的门限(用一个外部的电阻来设置这个数值,RFW-D100给出了该门限的参考电压和计算公式),比较的结果放在寄存器SSR[7]-COMP_IN中。当MCU内有数据传输时,就去读取该寄存器,根据寄存器的状态确定信道是否处于被占用的状态,从而确定数据是否被传输。 

  (2) 内部/外部RFWaves网络的载波监听的算法 

  该机制主要用来监测相似的RFWaves网络。RFWD100利用载波侦听算法监听是否有外部相似的RFWaves网络正在传输数据。如果外部的RFWaves网络正在进行数据的传输,则内部的标志位将被置1,表示信道处于被占用的状态;如果信道由被占用的状态转为空闲的状态,将产生一个中断来通知MCU,此时MCU可以进行数据的传输。 

  2 硬件设计 

  系统的微处理器采用Atmel公司的AT89LV52。它是一款基于51系列的低功耗微处理器,支持汇编和C语言,开发环境采用Keil公司 Keil C51(51单片机的汇编和C语言的开发工具);支持汇编、C语言以及混合编程,同时具备功能强大的软件仿真和硬件仿真。系统包含两个半双工的通信终端,来自高层的数据由串口发往MCU,MCU再将数据发往RFW-D100。RFW-D100将数据打包以后送往RFW122-M进行调制,再通过天线发送出去。系统框图如图1所示。 



图1 系统框图 
    MCU与RFW122-M及RFW-D100的连接关系如图2所示。 

  

图2 MCU与RFW122-M及RFW-D100的连接关系 

    3 通信协议及软件流程 

  系统所采用的数据链路层的协议是载波侦听多路访问协议(CSMA)。局域网一般采用共同介质的方法,为此当多个站点要同时访问介质时,就要进行控制。CSMA就是常用的一种方式。当网中站台要发送数据时,先检测是否有别的站台占用了传输媒体。具体做法是:先进行载波侦听,如果发现介质(媒体)空闲,则立刻发送数据;否则,就根据不同的策略退避重发。 

  由于该系统工作在2.44 GHz的ISM频段,该频段存在较大干扰,所以设计数据包结构时最重要的原则是,以尽量短的时间占用信道,以降低潜在冲突的概率。在传输中,包重叠的概率是与每个发送节点占用共享信道的时间成正比的。因此,若以高比特率传输数据包, 会提高数据被正确接收的概率。RFW-D100最高的空中数据传输速率为1 Mbps,它可以被配置为各种传输速率。在RFW-D100的数据手册中,降低数据速率并不能降低误码率,因此为了缩短数据包在空中传输的时间,降低数据碰撞的概率,在协议中建议以最高的速率传输数据。若把数据分成小包,则每个小包被正确接收的概率又会增加。这样,当干扰出现时,只有一小部分会丢失,而且协议有能力来定位在特定包中损坏的数据。因此可以得出这样的结论:以高的数据速率发送短的数据包,将增强协议处理损坏数据的能力。 

    3.1 数据包格式 

  数据包格式如图3所示。 


图3 数据包格式 

    ① PREAMBLE:RFWD100 发送PREAMBLE 的目的是使接收机和发送机同步。20 位长,高4位为1111,其他16位可以配置。发送顺序为从高到低。 
  ② NET_FIRST:1字节,网络地址字节。 
  ③ NET_SEC:1字节,网络地址字节。 
  ④ DST_ID:1字节,数据包所发往的目的节点地址。 
  ⑤ SRC_ID:1字节,发数据包的源站地址。 
  ⑥ SEQUENCE:1字节。这个段包括两个值:高4位表示数据序号,低4位表示数据包的类型。低4位代表的含义:0000b为握手数据包, 0001b为握手应答包,0010b为数据包,0011b为数据包的应答包,0100b为拆链包,0101b为拆链的响应包。 
  ⑦ SIZE:1字节。这个段说明包的大小。当设定数据包为固定大小时,SIZE没有意义。 
  ⑧ PAYLOAD:1字节。来自上层软件层的数据。 
  ⑨ CRC:1字节。RFWD100 在发送端给每个包增加CRC 信息,使得接收机对接收的数据进行检测。 

  在本系统的协议设计过程中,采用小数据包的传输模式,从串口中收到的数据个数(以字节为单位)等于10时,将这些数据打包发送出去。如果收到的数据个数小于10, 并且串口数据的发送已经结束, 则系统也将这些数据打包并发送出去。 

    3.2 系统状态转移图 

  系统的状态转移如图4所示,包含4个状态,分别是空闲态、握手态、传输态和接收态。 
         

图4 系统状态转移图 

   空闲态:如果没有串口中断或外部的握手信号中断,则系统将一直处于空闲状态。 

  握手态:如果串口中断发生,则表明有上层的数据包需要传输,系统进入握手的状态。 

  传输态:系统把从串口收到的数据通过无线信道发送出去。 

  接收态:系统处理接收到的数据包,发往串口,并对从串口到来的数据包做丢弃处理。 

    3.3 4个状态的处理流程 

  系统4个状态的处理流程如图5~图8所示。 
           

图5 空闲态流程 

图6 握手态流程 

图7 发送态流程 

图8 接收态流程 

    系统接收串口数据的缓冲池的大小为15字节。 

  图6中各个标志位的意义如下: 

  New_flag串口中有新数据到来(串口中有数据到来,将New_flag置1,在串口中断中设置此标志位)。 
  Checkact_suc_flag收到握手应答包的标志。收到握手应答数据包后将此标志位置1。 
  Tx_size系统接收到的来自串口的字节个数。 
  Tx_end_flag串口中的数据发送完毕。由定时器1控制,定时一段时间。如果在这段时间内没有新的数据到来,则认为串口数据的这次发送完毕。每次收到新的串口数据时重置定时器,定时的时间大于1字节数据传输的时间。 
  Checkact _send_flag由定时器0控制,在定时的时间内如果没有收到握手应答包,则定时器0溢出,Checkact _send_flag被置1,重发握手包。 

  图7中各个标志位的意义如下: 

  New_flag串口中有新的数据到来。若串口有数据到来,则将New_flag置1,在串口中断中设置此标志位。 
  Pk_sended_nack一个数据包已经发送出去但还没有收到确认包时将此位置1,为0时表示系统可以发送数据包。 
  Ack_flag为1表示发出的数据包收到了确认。 
  Tx_end_flag从串口发来的数据已经停止了发送。 
  Exceed_timing_flag在发送完每一个数据包的同时打开定时器0,从定时器0打开到定时器0溢出的这段时间内,如果没有收到确认包,则认为数据包发送失败,将Exceed_timing_flag置1;如果在这段时间内收到确认的数据包,则将定时器0关闭。 
  Tx_size系统接收到的来自串口的字节个数。 

  图8中各个标志位的意义如下: 

  LOCk_flag本节点收到了其他节点发来的数据包。 
  Tx_to_s_flag在接收状态,如果MCU中的缓冲区内仍有数据,且Tx_to_s_flag=1,则可向串口发送1字节数据。当MCU的TI中断发生时,将此标志位置1。 

   4 接口芯片RFW_D100的固件编程 

  对RFWD100进行固件的编程是通过对RFWD100内的特殊功能寄存器的编程实现的。 

  SCR2=0x1c配置前的操作; 
  BLR=0x06配置数据的空中码速为1 Mbps; 
  PPR=0xca配置数据包的格式; 
  LCR=0x45配置数据包特殊字节的位置; 
  NIR=0xbb网络识别地址; 
  BIR=0xee节点识别地址; 
  SCR1=0x20打开RSSI; 
  SCR3=0x03 
  SCR4=0x03 
  IER=0x13中断使能; 
  SCR2=0x02系统处于数据包的搜索状态。 

     结语 

  本设计以射频芯片RFW122M及其接口芯片RFED100为核心,采用单片机AT89LV52作微处理器,实现了一个短距离无线数据传输系统。今后的工作是完善和改进该协议,进一步提高无线数据的传输效率。 

    参考文献 

    [1] 黄智伟. 无线数字收发电路设计——电路原理与应用实例. 北京:电子工业出版社,2003. 
    [2] 郑少仁,王海涛,赵志峰,等. Ad Hoc 网络技术. 北京:人民邮电出版社,2005. 
    [3] 张全宝,李峻. RFW102无线收发芯片组的原理与应用. 国外电子元器件, 2004(1). 
    [4] 陈媛媛,杨凯,胡文东.基于RFW102芯片组的短距无线数据传输系统的实现. 现代电子技术, 2005(24). 
    [5] Vishay RFWaves Ltd. RFW122M ISM Transceiver Module, Preliminary Datasheet. 200505. 
    [6] Vishay RFWaves Ltd. RFWDD100: Standard Interface to The RFW100 Series. Datasheet. July 200207. 


推荐阅读

史海拾趣

Aeroflex Metelics / Hi-Rel Components公司的发展小趣事

Aeroflex Metelics / Hi-Rel Components是一家专注于高可靠性电子组件的制造商,为航空航天、国防、医疗和工业等领域提供高性能的组件和解决方案。以下是该公司发展的五个相关故事:

  1. 公司成立和早期发展: Aeroflex Metelics / Hi-Rel Components的历史可以追溯到1960年代初,当时该公司作为Metelics的一部分,成立于美国马萨诸塞州的劳伦斯市。最初,公司主要生产用于微波和射频应用的二极管和其他电子元件,为国防和航空航天等行业提供关键的部件。

  2. 技术创新和产品多样化: Aeroflex Metelics / Hi-Rel Components致力于技术创新和产品多样化,不断推出符合行业标准和客户需求的新产品。公司的产品范围逐渐扩展,包括功率放大器、混频器、开关和整流器等,涵盖了广泛的应用领域。

  3. 质量管理和认证: 为确保产品质量和可靠性,Aeroflex Metelics / Hi-Rel Components严格执行质量管理体系,并获得了多项国际认证,如ISO 9001和AS9100。公司在生产过程中采用先进的工艺和测试技术,确保产品符合客户的高要求和严格标准。

  4. 全球供应链和市场拓展: 随着业务规模的扩大和市场需求的增长,Aeroflex Metelics / Hi-Rel Components不断优化全球供应链,并在美国和其他地区建立了多个生产基地和销售办事处。公司通过广泛的销售网络和服务体系,加强了对客户的支持和服务,并开拓了新的市场领域。

  5. 成为行业领先供应商: 多年来,Aeroflex Metelics / Hi-Rel Components凭借其卓越的技术、丰富的经验和优质的产品,成为航空航天、国防和医疗等行业的重要供应商之一。公司在高可靠性电子组件领域的领先地位得到了进一步巩固,为客户提供了高品质、可靠的解决方案,赢得了良好的声誉和市场地位。

Eby Electro Inc公司的发展小趣事

Eby Electro Inc非常重视企业文化的建设。公司倡导“创新、协作、务实、高效”的价值观,鼓励员工积极创新、勇于担当。公司还建立了完善的培训机制,为员工提供各种学习和发展的机会。在这种企业文化的熏陶下,员工们积极向上、团结协作,共同推动公司的发展。同时,公司也注重员工的生活福利和职业发展,为员工创造了一个良好的工作环境和发展空间。

台湾奇力(Chip)公司的发展小趣事

奇力公司的成功离不开与奇美集团的紧密合作。奇美集团是台湾知名的面板生产厂家,拥有强大的技术实力和市场份额。奇力公司作为奇美集团的子公司,得到了奇美集团在技术、资金和市场等方面的全力支持。通过与奇美集团的紧密合作,奇力公司得以快速发展,并在LED芯片市场上取得了显著的成绩。

CoolerMaster公司的发展小趣事

1992年,台北的一间出租屋内,林仁政凭借对电脑硬件的深厚理解与直觉,创立了讯凯国际股份有限公司,即现今广为人知的Cooler Master。初期,公司以生产个人电脑用散热器起家,目标明确——提供业界最好的散热方案。在没有资金、没有支持的情况下,林仁政独自完成了品牌的创建、日常事务的处理以及工作进程的管理。他的坚持与努力,使得Cooler Master逐渐在市场中站稳脚跟,开启了其在散热领域的传奇之旅。

EG & G Inc公司的发展小趣事

随着电子技术的不断发展,EG & G Inc公司不断进行技术创新和产品升级。公司投入大量资源进行研发,成功推出了一系列具有竞争力的电子产品。其中,某款高精度测量仪器在市场上获得了广泛认可,成为了公司的明星产品。此外,公司还积极开拓新的应用领域,将电子技术应用于医疗、环保等多个领域,为公司带来了新的增长点。

Connective Peripherals Pte Ltd公司的发展小趣事

近年来,电子行业面临着诸多变革和挑战,如技术更新换代加速、市场需求变化等。为了应对这些变革,EG & G Inc公司不断进行战略调整和业务优化。公司加大了对新技术和新产品的研发力度,同时注重提高生产效率和降低成本。此外,公司还积极探索新的商业模式和市场机会,以保持其在行业中的领先地位并实现持续发展。

以上五个故事概述了EG & G Inc公司在电子行业中的重要发展历程和关键事件。这些故事不仅展示了公司的实力和成就,也反映了其在不断变革的市场环境中保持竞争力和持续发展的能力。

问答坊 | AI 解惑

在WIN2K或XP下安装byteblasty 2_MV驱动视频教程

在WIN2K或XP下安装byteblasty 2_MV驱动视频教程,需要的可以看下…

查看全部问答>

DS1302时钟芯片多字节传送问题

问题,多字节传送一定要8个字节吗?程序如下: SCLK BIT P1.3 IO_DATA BIT P1.4 RST BIT P1.5 BitCnt  data  30h ; 数据位计数器 ByteCnt  data  31h ; 数据字节计数器 Command  data&nbs ...…

查看全部问答>

请问wince下怎么设置系统的声道!谢谢!

请问在wince下怎么设置系统的声道, 感激不尽…

查看全部问答>

救助:vxworks 下zbuf socket 编程

  以前在windows 下写过socket 程序,现在要在vxworks 下使用zbuf ,不知道怎么用。tornado 的文档里面有介绍zbuf 的使用,但我现在用的是workbench,这里面的文档没有介绍zbuf的,不知道是不是也支持zbuf?这下面好像没有 zbufLib.h 头 ...…

查看全部问答>

急聘一名嵌入式Linux开发高级工程师

北京艾迪智软信息技术有限责任公司 急聘一名嵌入式Linux开发高级工程师 工作方式:全职 工作地点:北京上地科技园 薪酬:底薪+项目提成 招聘邮件:wangxin39@gmail.com 1.        精通C语言,精通嵌入式Linux,有过Pow ...…

查看全部问答>

触摸屏校准/hive注册表永久保存的问题(1)

我用的是au1200 cpu ,我的硬件没有网络,是通过把bootloaser烧写到nor flash,内核放到sd卡里来启动的。我在调试触摸屏,触摸屏驱动没有问题了,现在每次重新启动启动都需要手动校准触摸屏,这样用户肯定是不同意的,所以我想把注册表的内容永久 ...…

查看全部问答>

急死我了,各位大虾看看到底怎么解决

我在build os之后,在build.log文件中看到一下两个错误,怎么解决啊? NMAKE : fatal error U1073: don\'t know how to make \'D:\\WINCE500\\public\\directx\\oak\\lib\\x86\\debug\\l3aud32s.lib\' Stop. NMAKE : fatal error U1077: \'D:\\ ...…

查看全部问答>

关于EVC打开资源问题

我的工程是一个基于对话框,在workspase里打不开class和resourceview 只能打开fileview,双击class和resourceview就自己关了,在打开工程时也要开几次了 ,我的工程里多了MVCIA.tmp和RCao2632两个文件了  这是怎么回事了 麻烦个位了哈 小 ...…

查看全部问答>

急问版主

                                 STM32F103VC串口接收脚直接和5V的485芯片rxd脚可以吗?…

查看全部问答>

【设计工具】基于Xilinx器件的CPRI实现方法

目前,分布式基站主要采用两种开放式接口标准:无线设备和无线设备控制部分分离的CPRI接口(Common Public Radio Interface)标准,还有基带处理、射频、网络传输和控制层面都分离的OBSAI接口(Open Base Station Architecture Initiative)标准。C ...…

查看全部问答>