不需要电源的 RFID 通信

作者按:从今天起,本博客将陆续推出一系列文章,走进即将举行的通信领域顶级学术会议 SIGCOMM 2013,看看世界各地的 Wireless & Networking 研究者们都在做什么。尽管这些看起来很 fancy 的设计在生产环境中有可能完全不 work,但它们至少给我们提出了一些可能的方向。

Ambient Backscatter: Wireless Communication Out of Thin Air

从空间吸收能量并用作电源,这听起来是不是很疯狂?华盛顿大学研究团队制作了不需要电源的 RFID 卡,可以从每个城市都有的 TV Tower 获取能量用于支持传感器和单片机工作,并反射 TV Tower 射频信号的能量,实现两个相距不超过 50~75 厘米的 RFID 卡之间的自主通信,通信速度可达 1kbps。套用一句广告词,就是 “我们不生产信号,我们只是电视信号的搬运工”。

ambient-2

How RFID works

RFID (Radio Frequency Identification) 是能够存储少量信息并通过射频通信读取的技术。我们平时刷的饭卡、公交卡都是 RFID。这些卡里没有电源,是怎么把数据传送给读卡器的呢?

芯片工作的电源:天线收到读卡器的信号,就会电磁感应形成电流,这个微弱的电流足以驱动芯片工作了。

承载信息的射频信号:天线会反射收到的射频信号,在反射信号上进行幅度调制即可。有两种技术:inductive modulation(用于低频)和 backscatter modulation (用于高频,有效距离较远)。本文中我们关注 backscatter。

backscatter 是通过改变天线的阻抗实现的。当电磁波到达阻抗不同的介质界面时,一部分波会被反射,而反射能量的比例与阻抗的差值有关。射频卡中的芯片通过改变天线的阻抗,就能把信息调制在反射波上。

至于阻抗是怎么调整的?看到上面照片上的两个“小辫子”了吗?一个晶体管搭在两根天线之间,0 就是关闭晶体管,天线阻抗匹配,反射波很微弱;1 则是导通晶体管,两根天线短路,有一定的反射波。

ambient-3

事实上,目前商用的 RFID 分为 active(主动)、semi-passive(半被动)和 passive(被动)三种。

  • 主动 RFID 有电源,每隔一段时间就主动发送自己的 ID,有效距离 100m 以上。由于发送射频信号需要较多能量,电池寿命较短。
  • 被动 RFID 没有电源,有效距离 1m 左右,成本很低,寿命无理论限制。我们常用的饭卡、公交卡都是被动 RFID。采用上面说的 backscatter modulation 传输信息给读卡器。由于没有持续的电源,不能支持时钟、传感器等。
  • 半被动 RFID 结合了以上两者的优点。半被动 RFID 也有电源,用于维持芯片和(可能有的)传感器工作。射频信号使用 backscatter modulation,不需要使用电池的能量,因此电池寿命可达10年。由于不需要用电磁感应的电流维持芯片运行,天线就可以为 backscatter 专门优化,从而有效距离可达 10m 左右。

Challenges

TV Tower 是个稳定的信号源和能量源,听起来不错。但真正用起来,还有两个问题:

ambient-4

  • 传统 backscatter 技术中,读卡器发送的是 constant signal,这样读卡器就能从微弱的反射信号中检测出微小的变化,复原所调制的信息。然而电视信号本身就是已经调制了信息的 noisy signal。(见上图)
  • 相比临近的读卡器来说,电视信号强度还是太弱了。传统的 backscatter 技术需要晶振、模数转换器、数字信号处理逻辑等,单凭电视信号这点能量是工作不起来的。

此外,从网络拓扑上,读卡器是一个中心控制器,可以进行 FDMA (Frequency Division Multiple Access) 协调各 RFID 卡的通信。现在没有了中心,射频卡上就得拥有一套分布式的 CSMA (Carrier Sense Multiple Access) 协议。(当然,如果有人用最原始的 ALOHA,我不反对)

Challenge #1: Noisy Signal

首先要解决的是电视信号不是 constant signal 的问题。论文提出,如果 backscatter 调制的频率远远低于背景信号(载波)的频率,则可以将这两个信号分开。从直觉上解释,只要对若干个临近的 sample 取平均值,背景信号就会趋于相同(大数定律嘛),而 backscatter 调制的信号就会凸显出来。

ambient-5

电视信号的带宽一般是 6MHz,因此 backscatter 只要在比 6MHz 更长的时域上调制就能区分出来。

Challenge #2: Ultra-low Power

上面的方法需要模数转换器 (ADC),但在如此低功耗的无源射频卡上无法实现。论文设计了一种等效的模拟电路。

ambient-6

接收器有两个阶段:

  1. Average Envelope Stage: 由二极管、C1、R1、R2 构成。输入信号电压高于电容电压时,二极管导通,电容充电;低于电容电压时,二极管不导通,电阻缓慢消耗电容释放的电能。通过调整 R1 和 R2 的阻值,上述电路相当于一个低通滤波器,滤掉了电视信号中的高频部分,留下了低频的 backscatter 信号。
  2. Compute-Threshold Stage: 由 R1、R2 和 C2 组成 RC 回路,再通过比较器。上边一条线是第1阶段的输出,下面一条线是阈值,由 C2 对信号作进一步平均产生。这样,当信号高于阈值时输出1,当信号低于阈值时输出0,这样就实现了模数转换。

Network Stack

由于接收射频卡的位置可能发生变化,反射的信号或者跟电视信号干涉增强,或者跟电视信号干涉减弱,从而收到的“0”和“1”随时可能翻转。因此,物理层采用 FM0 编码,用两个 0/1 symbol 表示 1bit 信息,两个 symbol 相同表示0,两个 symbol 不同表示1。在每个 2-symbol 的周期前对 symbol 进行翻转,以保证 0/1 symbol 数目相同。

下面是 link layer 的 packet structure:

ambient-7

Challenge #3: Carrier Sense

Carrier Sense 是非中心无线网络中避免冲突的重要手段。一个待发送者在发送之前,首先监听信道,如果发现有其他人在发送,就暂缓一会儿。如果没有这个机制,随机冲突会导致信道利用率很低。

在 Wifi 中,Carrier Sense 是通过比较信号平均强度和当前信号强度实现的,如果当前信号强度超过平均强度一定的阈值,就认为正在传输 packet。然而,由于本论文中的接收器没有 ADC,无法检测信号强度。

容易发现,对于背景信号,由于经过了第一阶段的低通滤波器,在第二阶段的比较器前,上下两条线的电压应该没有明显差别,因此比较器或者输出一长串0,或者输出一长串1。注意到 FM0 编码中 0/1 符号个数相等,故只要统计收到的 0/1 符号个数,就能知道现在有没有临近的其他 backscatter 设备在传送。

有效传输距离

按照 RFID 卡在室内还是室外,以及离电视信号发射塔远还是近,以及传输比特率,测量出了传输错误的比例:(测试环境的具体配置请看论文)

ambient-9

不出所料,离电视塔更近的效果更好,户外比室内效果更好(反射和干涉少),传输越慢越好。即使在最差的情况下,也能在 50 厘米的距离上实现 1kbps 传输。

为什么距离远了会有问题呢?前面提到的接收器的第二个阶段中有个比较器,比较器能够区分的电压差值是有限的。如果信号太弱,传入比较器的电压差值太小,比较器就无法正确判断哪边高哪边低。

应用1:智能卡间通信

ambient-2

用户触摸“电容触摸传感器”,如果检测到另一张卡存在,就会发送 “Hello world”。接收器收到 “Hello world” 后,就会闪烁 LED 灯。智能卡使用的是 MSP430 单片机。

ambient-12

在相距 10cm 的两个智能卡之间进行上述通信,有 94% 的概率一次成功。

应用2:检查货物摆放位置

每个货物盒子里装一个射频卡,射频卡的ID按照货物的排列顺序递增,这样每个射频卡周围的其他射频卡ID应该跟自己的ID相差不远。每个射频卡每5秒钟广播一次自己的ID。临近的射频卡接收并存储收到的ID。如果射频卡接收到两个跟自己ID相差超过阈值的ID,就会闪烁LED。

论文中给出的测试结果是,在 50% 的情况下,只要 20 秒就能检测出摆放错误的情况;即使是最差的一次,摆错位置的射频卡在 190 秒后也开始闪烁了。

评论

这篇论文描述了一个美妙的前景:不用电源,就能进行射频通信。可惜,由于电视信号强度太弱,它的有效通信距离不到1米,这大大限制了它的应用范围。这么近,为什么不搞个有源的读卡器?成本低、免除更换电池的麻烦,也许是它的优势吧。

References:

  1. http://homes.cs.washington.edu/~gshyam/Papers/amb.pdf
  2. http://www.cisco.com/en/US/docs/solutions/Enterprise/Mobility/wifich6.pdf

《不需要电源的 RFID 通信》有3个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注