新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于短距离无线数据低功耗传输协议研究

基于短距离无线数据低功耗传输协议研究

作者:时间:2013-11-30来源:网络收藏

  短距离传输是一种线缆替代技术,在当前很多领域(如工业生产、医疗监护、科学研究等)都得到了广泛的应用。它的出现,解决了因环境和条件限制而不利于有线布线的问题,同时具有低成本、方便携带等优点。然而由于存在高功耗的缺点,使得这技术在很多供电受限的工业现场应用中受到了很大的限制。本文基于Freescale公司的硬件平台对短距离进行了研究,在保证数据可靠传输的同时,极大地降低了设备的功耗。

  1 主要芯片介绍

  是Freescale公司推出的一款SoC芯片,它主要由微处理器和射频模块两部分组成。微处理器采用8位的HCS08内核,集成了1个SPI(Serial Peripheral Interface)接口、1个8路的8/10位A/D转换器、2个TPM(Timer/PWM)模块、2个SCI(Serial Communication Interface)接口、2个I2C和1个8路的KBI(Keyboard Interrupt)接口。射频模块的工作频段是2.4 GHz,通过SPI总线与处理器通信。其主要特点有:

  ◆ 采用2.4 GHz频段,其设计构架符合IEEE 802.15.4协议;

  ◆ 接收灵敏度-92 dBm,发送功率为-28.7~+3.4 dBm可调;

  ◆ 拥有0~15(共16)个可选工作信道;

  ◆ 采用直接序列扩频(direct sequence spread spectrum)的二进制编码方式,增强了抗干扰能力;

  ◆ 采用OQPSK数字相移键控调制技术,大大降低了数据传输的误码率;

  ◆ 采用免冲突的载波检测多址接入(CSMACA)机制,避免了数据传输过程中的冲突。

  2 硬件系统设计

  如图1所示,整个系统硬件结构由4部分组成:RS232/485总线接口单元、数据处理单元、射频收发单元和电源管理单元。


  图1 短距离传输模块硬件结构图

  一方面,PC/仪器仪表通过RS232/485总线将数据传送给MCU处理器,处理器将数据包进行适当处理后送给射频模块发送出去;另一方面,射频模块将接收到的数据送给MCU处理器,处理器经过解包处理后再通过RS232/485总线将数据送给PC/仪器仪表。

  工业中的仪器仪表大多都采用RS485总线通信方式,因此无线数据传输设备提供RS232/485可选通信接口,既方便连接PC机,又满足了一般仪器仪表的要求,串口波特率为1 200~115 200 bps可调。

  3 软件设计和低功耗通信协议研究

  无线数据传输设备的一般工作流程如图2所示。在进行相关初始化之后就进入主循环,对射频模块和串口进行轮询: 当射频模块接收到数据包时就进行解包,然后送到RS232/485总线;当串口接收到从RS232/485总线上发来的数据时,就进行相关处理并送入射频模块发送出去。这种轮询的方式结构简单,实现方便。


  图2 短距离无线传输设备软件流程

  然而,在这种工作方式下,射频模块就必须时刻*信道。在2.7 V工作电压、处理器时钟频率为2 MHz时,的射频模块接收工作电流IRF(Rx)≈37 mA,处理器以及外围器件的工作电流Imcu≈2 mA,因此设备的正常工作电流I≈39 mA,这个电流对于一些供电受限的工业应用显然是不能够接受的。为了降低无线传输设备的功耗,需要对设备之间的传输协议作适当的改进。

  由于在大部分的时间里设备之间没有进行数据传输,因此射频模块一直处于接收状态是一种资源浪费。而设备本身不知道对方何时有数据传输过来,因此设备之间约定在特定的时间段内进行数据传输,而其余时间休眠。

  这样一种约定需要一种同步机制。我们采用信标同步机制:一个设备定时发送一个称为“信标(Beacon)”的数据包,即信标帧。另一个设备通过接收该信标帧来实现同步。我们将发送信标帧的设备称为“主设备”,接收信标帧的设备称为“从设备”。通过信标帧,即可实现从设备和主设备之间的同步。

  在该协议中,有3种类型的数据包:信标帧、数据请求帧和数据帧。信标帧和数据帧的帧头包含有是否有数据待传的信息。

  实现同步之后,主设备和从设备之间就约定进入休眠时间(Tsleep)。在休眠期间射频模块深度睡眠(虽然关闭射频模块后功耗会更低,但唤醒时间太长),处理器处于超低功耗状态,只有串口处于接收状态。休眠时间结束后,主设备就会醒来,并且射频模块向外发送信标帧。信标发送完后,射频模块立即进入接收状态。从设备从休眠中醒来后立即唤醒射频模块进行信标侦听,当接收到主设备发送过来的信标后,就会判断主设备是否有数据待传。如果有,就向主设备发送数据请求帧;否则,从设备就会将自己串口接收到的数据通过射频模块发送给主设备,直到数据发送结束进入下一个周期的休眠时间(Tsleep)。主设备接收并处理从设备发送的数据帧,并通过数据帧的帧头判断是继续等待还是进入下一周期的休眠时间。当主、从设备都没有数据需要进行传输时,从设备接收到信标后直接进入下一周期的休眠时间,而主设备等待Twait后没有收到从设备的任何数据,也会进入下一个周期的休眠时间。在这种情况下,由于从设备会比主设备早休眠Twait的时间,因此从设备的休眠时间为Twait+Tsleep。另外为了防止失去同步,从设备醒来后就将射频模块设置为接收状态,直到接收到信标帧,或者超时继续进入休眠。这个超时阈值至少为Tsleep,从而保证了重新同步。如果从设备N次都没有收到信标帧,可以认为周围没有主设备,因此可以进行一次长时间的休眠Thibernate。具体流程如图3所示。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭