|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
基于 ALOHA 算法的 RFID 防碰撞技术研究
" q$ l' o. t- y& i- ~# G. d, W" M( B- D7 }
: T* o( x2 t! M+ V: s
: \8 D' _: ?( r$ f. w' ^& t( Q7 s7 {6 F. h, g3 I3 P5 ?" B' I5 a, v
摘要:RFID系统工作时,当有2个或2个以上的电子标签同时在同一个读写器的作用范围内向读写器发送数据的时候,就会出现信号的干扰,这个干扰就称为碰撞,其结果将会导致该次传输的失败,因为必须采用适当的技术防止碰撞的产生。, H! g: r( o+ e1 L* @4 I
- G0 c y6 |2 o$ p
关键词:ALOHA算法 防碰撞 帧时隙算法 动态帧时隙算法
4 W$ L! M G) T# b' ^. _
3 o8 U" J& U5 a- {% ]0 i( A6 b- Q6 J3 }1 射频识别系统介绍 R4 L' ^& Z* O
9 y; D9 B& Z" O* K5 u) [) K射频识别技术(Radio Frequency Identification,RFID)是一种非接触式自动识别技术,与传统的识别方式相比,它无需直接接触、无需光学可视、无需人工干预即可完成信息输入和处理,具有操作方便快捷、存储数据量大、保密性好、反应时间短、对环境适应性强等优点,现在已广泛应用于工业自动化、商业自动化和交通运输管理等领域,成为当前IT业研究的热点技术之一。 6 P9 k- G+ U; @+ u
( t# T* P+ v1 w, F; j典型的RFID系统主要包括三个部分:电子标签(tag)、读写器(Read)和应用系统(如图1)。电子标签放置在被识别的对象上,是RFID系统真正的数据载体。通常电子标签处于休眠状态,一旦进入读写器作用范围内就会被激活,并与读写器进行无线射频方式的非接触式双向数据通信,以达到识别并交换数据的目的。此外,许多读写器还都有附加的通信接口,以便将所获的数据传给应用系统进行进一步的处理。 : b! {6 z: R4 H- y
9 d. `" O* \, C
( `0 P; U2 M# e B3 Z2 d
2 系统防碰撞 y( a9 p( K( r
/ G) E# V6 c7 @! P R9 u
RFID系统工作时,当有2个或2个以上的电子标签同时在同一个读写器的作用范围内向读写器发送数据的时候,就会出现信号的干扰,这个干扰就称为碰撞,其结果将会导致该次传输的失败,因为必须采用适当的技术防止碰撞的产生。 7 L+ X( ~, n! o0 T0 Q
+ p# k, V3 H' p9 @( B0 @
3 ALOHA算法及仿真结果
- O) a2 i: o8 ~: Q! s
c6 L6 r# ]5 c, ?3 X& l$ q# c x目前有多种防碰撞算法,主要分为ALOHA算法和树形分解算法。由于树形分解法有时会使某些标签的识别延迟可能比较长,所以ALOHA算法因具有简单易实现等优点而成为应用最广的算法之一。ALOHA算法是在ALOHA思想的基础上,根据RFID系统的特点和技术要求不断改进形成的算法体系。它的本质是分离标签的应答时间,使标签在不同的时隙内发送应答。一旦发生碰撞,一般采取退避原则,等待下一循环周期发送应答。ALOHA算法又分为帧时隙ALOHA算法、动态帧时隙ALOHA算法和分组帧时隙ALOHA算法等。
8 N E* b( `8 n2 _/ M) D$ G6 Z8 F+ B* v# `- k
3.1 帧时隙ALOHA算法
e i+ N z1 h9 r( s) Y! y
% o8 {" H+ T, ], T; S% b帧时隙ALOHA(Framed slotted Aloha,FSA)算法是基于通信领域的ALOHA协议提出的。在FSA中,"帧"(Frame)是由读写器定义的一段时间长度,其中包含若干时隙。标签在每个帧内随机选择一个时隙发送数据。所有标签应答同步,即只能在时隙(Slot)开始点向读写器发送信息,每个标签发送的时隙是随机选择的。时隙可以分为三类:空闲时隙、应答时隙和碰撞时隙。在空闲时隙中没有识别任何标签,应答时隙中可以正确识别一个标签。当一个时隙中有多个标签同时发送应答时就会产生碰撞,形成碰撞时隙。碰撞的标签退出当前循环,等待参与新的帧循环。
) B& Z& s! Q6 S7 H+ q/ j, V
7 F0 q- a( ~. J n8 h) F- c/ b读写器当前使用帧的长度为N,标签数为n,在一个时隙中存在r个标签的概率为: 6 W" j: ~; e0 H" `# f9 k
% q5 l- N$ z! X: r/ _! ~
: Z: k& H6 E. f+ w5 N5 x2 L
9 Q8 f: }4 @5 u8 M6 l
当r=1时,表示一个时隙只有一个标签,即成功读取的时隙。因此,在一个阅读周期中读取标签数的期望值为:
2 z- u/ R4 {! I
! T+ Y! z2 Z3 ]6 r% R! B
! _3 [8 l# N: u" ~
其中,a1 N.n表示只有一个标签占据一个时隙的时隙总数。其中帧长度为N,标签总数为n。
1 K9 Q' x% V3 J, V系统效率为PN: 7 \! S! x- n X. D+ B
7 n8 b& K- d0 ~; A- o2 B
, J) K/ |; @9 V0 p6 ~! j
) O( L' E- b2 j( h5 B2 s图2示出了当帧的长度为256时的系统效率。当我们要想获得最大效率时,使得: 6 S9 G. J) [. r5 |( O
8 w& j2 M- L0 l3 B9 Q0 ^; r( _' x- e6 ?
! K" Z0 j; K! k0 }
根据上式可推出当帧的长度为N时,效率最高的标签响应数为: + y- I+ K3 l% c9 g- S( m; v8 s3 f8 Q& s
- I: w( d& y8 g% m7 { Y7 k/ ]+ q' P
; A+ D7 x7 P; j8 ]$ U' }4 N当标签数为n时,帧长度的最佳值为: 2 [) Y' ] `7 D3 T
6 r3 `7 t+ S' H i) g; d& k# I1 o
% J: a9 B* k) d I9 e当n很大时,将上式泰勒尔展开:
+ @# [0 r* z% }0 h" Q }9 J" S
5 \$ P% W2 v: ?) K/ i4 C& Q因此,当标签数量与帧时隙数相同时,读写器的识读效率最高。标签数量与帧时隙数不匹配时,识读效率会大大下降。如标签数远小于帧时隙数,会造成大量的空闲时隙数;而当标签数量远高于帧时隙数时,则会产生过多的碰撞时隙;这两种情况都会导致识别效率的降低。 2 M& A5 ?: e3 a! Y J3 A
& p" n$ ?( o) F1 {" T# N1 q8 K3.2 动态帧时隙ALOHA算法
r& M+ g9 C4 Q- {$ M) I$ K
2 a7 S e" o$ w( G' b5 g3 o. l* }为使系统效率最优,提出动态帧时隙ALOHA(DynamicFramed Slotted Aloha,DFSA)算法,使得帧时隙数等于参与循环的标签数。DFSA每帧时隙数可以根据标签数的变化及时调整,使得标签数量与帧时隙数匹配。在开始新一个帧循环时,读写器要对参与帧循环的标签数进行估计,这个过程在整个算法中发挥着重要的作用。如果所估计的标签数与实际情况相差甚远,那么算法的效率就会发生大幅的下降,这样就影响了系统的稳定性。
& k4 ~4 g2 u1 J- v6 E4 _7 z3 W4 B( ?. B
目前,主要有两种估计标签数的方法。第一种方法是在发生冲突时,一个时隙中至少有两个标签发生碰撞。标签的估计函数为:
, U" e9 \# i t9 z6 x+ Y* B4 O6 D
0 F( K7 x( a6 B2 H" Q
N代表当前帧的长度,C0表示空闲时隙,C1表示成功时隙,Ck表示碰撞时隙数。当冲突较频繁时,这种估计方法的相对估计误差较大,但具有方法简单等优点。
& \! f0 q$ k2 x( z9 A8 s) N0 F0 R3 C1 ?/ Q1 J; s% p
另一种方法是基于时隙二项分布来估计标签数。假设N代表当前帧的长度,n表示标签数。标签选择各个时隙数是等概率的,同一个时隙内出现r个标签的概率,根据二项分布原理,得:
# R* }+ S0 `1 h2 X7 X
# e6 Q& _# X* P* b5 y; J
* \3 m7 A m9 ~% p
& f) z* P/ _) K% e* z* P0 o2 A# k利用切比雪夫不等式估计标签数目。 4 F T4 x/ N1 E
6 T+ S$ D8 ^2 c% T
7 z" m: J4 m9 o, T* F5 {+ y1 o3 S% @! e6 r
3.3 分组帧时隙ALOHA算法
* _, c5 x7 d4 r1 ?
; P3 J5 h4 z: w5 l8 T9 _* r在RFID系统中,我们经常使用动态帧时隙ALOHA算 # H: @( q' f' s# `: @9 Q9 P
法。但是由于最大帧时隙数有限制。当标签数量过大时,我们不能无限制地增加帧的时隙数。因此提出了分组帧时隙ALOHA(Group Framed Slotted Aloha,GFSA)算法。分组的目的是要限制标签的应答数量,使得参与识别循环的标签与帧的时隙数匹配。在GFSA算法中,如果估计出待识别的标签数超过了最大帧时隙数所能匹配的范围时,保证每一组的待识别标签与最大帧时隙数相匹配。 ! i7 |1 t% [5 f, U" R6 ]2 R
5 z0 u! f ^1 G. e8 B( r( P4 G4 R
6 s p, r0 Z V) n p! m6 L; J在图3中,无论是采用一组还是两组,都会达到同样的期望系统效率的标签数: % \% S" K9 P7 H8 X& \. q1 g( f
0 q$ y8 u/ R: t9 ~
) R- v, T+ q' r$ }: _
5 W* L9 ?+ j5 r; h7 a- Z
由上式我们可以得到n=354。如果未识别标签数大于354时,为达到最佳系统效率,我们将标签分成两组。我们提出的分组算法是基于最大帧时隙数为256的动态帧时隙ALOHA算法。在算法中,首先定义: # _. N( W& G6 M* Y2 `* U' b
(1)为达到最大系统效率,通过获取最后一个阅读帧的结果(0或是1)来决定对分组标签进行响应,以确定新循环帧的大小。 # T; n3 Z' t! {! e& d) |
(2)为减小RFID系统的复杂性,通过使用n=c1+2ck估计函数来确定标签数量。
8 z9 W! v8 W4 \+ c6 i, ]% T' l(3)利用上面推导出的n=354,作为分组的条件。当系统内标签数量比较小时,则使用最大帧时隙数为256的动态帧时隙ALOHA算法。一旦标签数量超过了354时,则使用分组帧时隙ALOHA算法,来限制系统内的响应的标签数量。过程如图4所示。 ! w2 z; f( l# o( G+ |% T7 o
# N$ `, x/ o7 l9 D& N6 P5 O3 _/ C2 p# d$ _5 R+ V9 [% z5 J
" O% f) I3 \! Y' `4 T
' m) L0 G8 I3 A* m) Q+ ~' F/ J5 l6 f% K! ~2 h) K2 E
我们利用二进制树形分解法对标签进行分组,如图5所示。二进制树形结构可以有效地对未识别标签进行搜索。对分组后,获取最后一个阅读帧的结果(0或是1)来判断是否继续分组。如果结果是1,表示达到时隙分离条件,需要对标签继续进行分组,直到结构是0为止。如果结果是0,表示未达到时隙分离条件,并采用动态帧时隙ALOHA算法对标签进行识别。 4 o7 C9 L% @- h, Q
# E& ?2 w2 r& C8 L3 q9 E( z+ l: f对提出的算法进行了仿真。结果表明:当标签数小于354时,分组帧时隙ALOHA算法采用动态帧时隙ALOHA算法;当标签数大于354时,分组帧时隙ALOHA算法对标签数进行分组识别。所以标签数越多,分组帧时隙ALOHA算法所使用的时隙数越少,效率越高。如图6所示。
- `" X0 L0 i" d6 h3 T1 ?
# t0 d/ @, Z* [6 q5 p
1 u0 I2 I7 ]+ V0 Q+ e+ t$ l
" G/ o$ T4 ?. x4 结束语 3 f; h' }8 [0 f/ x! h
|, x r, V! q9 N
本文基于ALOHA算法,分别对帧时隙算法和动态帧时隙算法进行研究和分析,并提出一种利用二进制树形分组的时隙ALHOA算法。对提出的分组算法和传统的动态帧时隙算法进行比较。当标签数过大时,采用此方法有利于提高系统效率,并减少了计算和操作的复杂度。
( h2 l( e6 u1 n* w8 R' H2 }$ a. {7 S0 X3 {5 Y
|
|