KR20090097829A - 적응형 재전송 대기 시간을 계산하는 rfid 리더 장치 및 그 제어방법 - Google Patents
적응형 재전송 대기 시간을 계산하는 rfid 리더 장치 및 그 제어방법 Download PDFInfo
- Publication number
- KR20090097829A KR20090097829A KR1020090021372A KR20090021372A KR20090097829A KR 20090097829 A KR20090097829 A KR 20090097829A KR 1020090021372 A KR1020090021372 A KR 1020090021372A KR 20090021372 A KR20090021372 A KR 20090021372A KR 20090097829 A KR20090097829 A KR 20090097829A
- Authority
- KR
- South Korea
- Prior art keywords
- collision
- reader
- tag
- retransmission
- random
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 102
- 230000003044 adaptive effect Effects 0.000 title claims abstract description 9
- 238000004891 communication Methods 0.000 claims abstract description 29
- 238000004458 analytical method Methods 0.000 claims abstract description 5
- 238000003745 diagnosis Methods 0.000 claims description 119
- 230000004044 response Effects 0.000 claims description 88
- 230000005540 biological transmission Effects 0.000 claims description 22
- 238000004364 calculation method Methods 0.000 claims description 18
- 230000008859 change Effects 0.000 claims description 15
- 230000007423 decrease Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 43
- 238000001514 detection method Methods 0.000 description 76
- 230000003111 delayed effect Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000033228 biological regulation Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B5/00—Near-field transmission systems, e.g. inductive or capacitive transmission systems
- H04B5/40—Near-field transmission systems, e.g. inductive or capacitive transmission systems characterised by components specially adapted for near-field transmission
- H04B5/48—Transceivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/10009—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation sensing by radiation using wavelengths larger than 0.1 mm, e.g. radio-waves or microwaves
- G06K7/10019—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation sensing by radiation using wavelengths larger than 0.1 mm, e.g. radio-waves or microwaves resolving collision on the communication channels between simultaneously or concurrently interrogated record carriers.
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/0008—General problems related to the reading of electronic memory record carriers, independent of its reading method, e.g. power transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K17/00—Methods or arrangements for effecting co-operative working between equipments covered by two or more of main groups G06K1/00 - G06K15/00, e.g. automatic card files incorporating conveying and reading operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/10009—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation sensing by radiation using wavelengths larger than 0.1 mm, e.g. radio-waves or microwaves
- G06K7/10019—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation sensing by radiation using wavelengths larger than 0.1 mm, e.g. radio-waves or microwaves resolving collision on the communication channels between simultaneously or concurrently interrogated record carriers.
- G06K7/10029—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation sensing by radiation using wavelengths larger than 0.1 mm, e.g. radio-waves or microwaves resolving collision on the communication channels between simultaneously or concurrently interrogated record carriers. the collision being resolved in the time domain, e.g. using binary tree search or RFID responses allocated to a random time slot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/10009—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation sensing by radiation using wavelengths larger than 0.1 mm, e.g. radio-waves or microwaves
- G06K7/10316—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation sensing by radiation using wavelengths larger than 0.1 mm, e.g. radio-waves or microwaves using at least one antenna particularly designed for interrogating the wireless record carriers
- G06K7/10356—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation sensing by radiation using wavelengths larger than 0.1 mm, e.g. radio-waves or microwaves using at least one antenna particularly designed for interrogating the wireless record carriers using a plurality of antennas, e.g. configurations including means to resolve interference between the plurality of antennas
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- Signal Processing (AREA)
- Near-Field Transmission Systems (AREA)
- Mobile Radio Communication Systems (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Radar Systems Or Details Thereof (AREA)
Abstract
적응형 재전송 대기 시간을 계산하는 RFID 리더 장치 및 제어방법으로서, RFID 리더 장치는, 하나 이상의 태그와 신호를 송수신 할 수 있는 RF 통신부로부터의 송신신호에 대응하여 설정된 수신시간 동안에 수신된 수신신호의 데이터를 분석하여, 수신신호의 충돌발생 여부를 확인하고, 수신 신호 데이터의 분석 결과에 따라 충돌 타입을 진단하는 충돌 진단부, 충돌 진단부로부터 수신한 충돌발생 여부 및 충돌 타입에 근거하여 명령을 재전송할지 여부를 판단하는 상황별 명령 재전송부, 및 명령의 재전송을 위한 랜덤 대기 시간을 계산하는 랜덤 대기 시간 계산부를 포함하며, 랜덤 대기 시간 계산부는, 재전송 대기 기준값의 하한 및 상한과 대기 시간 파라미터를 곱한 값에 대응하여 결정되는 최소 재전송 대기 시간과 최대 재전송 대기 시간 사이에서, 랜덤하게 랜덤 대기 시간을 선택하며, 대기 시간 파라미터는 동적으로 변경 가능하다.
Description
본 발명은 모바일 RFID 리더 장치 및 그 제어방법에 관한 것으로서, 특히 충돌의 타입에 따라 상황에 따른 명령 재전송을 수행하고 적응적으로 명령 재전송을 위한 대기 시간을 설정할 수 있는 RFID 리더 장치 및 그 제어방법에 관한 것이다.
본 발명은 지식경제부 및 정보통신연구진흥원의 IT원천기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2008-F-052-01, 과제명: 개별 물품 단위 응용을 위한 차세대 RFID 기술 개발].
RFID 무선 인터페이스 사양(예, ISO/IEC 18000-6)은 RFID 구조(예, RFID Portals)가 잘 갖춰질 수 있도록 발전함에 따라, 태그 간 간섭 등에 의한 통신 에러가 매우 줄어들게 되었으며, 통신 에러의 검출 및 조정이 용이하게 되었다.
그러나, 최근 들어 핸드헬드(handheld) 기반의 RFID 리더가 큰 비중을 차지하게 됨에 따라 모바일 어플리케이션에서 RFID 테크놀로지의 효과적인 사용을 보장할 수 있는 기술의 필요성이 대두되고 있다. 특히, 대부분의 고정 시나리오(static scenarios)와 대비하여 볼 때, 액티브 모바일 장치의 위치와 로컬 배열(local arrangement), 예를 들어, 타겟 대상과의 거리 및 안테나의 방향 등을 근본적으로 예측할 수가 없었다. 즉, 같은 주파수 채널에서 태그 검출과 비교하여 비동기로 운영되는 RFID 리더의 수를 정하기가 사실상 어렵다는 것이다.
현재, 서로 근접하는 RFID 리더들은 배선에 의해 연결되고 이에 의해 동기를 맞추고 있으나, 이러한 동기화(hard-wired synchronization)는 모바일 어플리케이션에 적용될 수 없다. 물론, 이론적으로는 동기화를 무선 통신 환경에서도 적용하여 사용할 수도 있다. 그러나, 지금까지는 RFID 리더의 위치를 알 수 없기 때문에 RFID 핸드핼드 장치의 동기를 위해 별도의 채널을 사용할 수 밖에 없었다.
복수의 RFID 리더가 동일 시간대에 액티브 상태가 되는 것을 방지하기 위한 또 하나의 메커니즘으로는 유럽에서 의무적으로 사용되고 있는 Listen Before Talk(LBT)가 있다. 그러나, LBT는 모바일 RFID에서는 유효한 방법이 아니다. 왜냐하면, 실제로 RFID 리더의 배열은 매우 다양하기 때문에 유용한 수신감도의 기준값(threshold)을 정할 수가 없다.
이외에도, 근접한 RFID 리더 간에 의도하지 않는 충돌을 극복하기 위한 방법으로는 시분할 다중화(TDM, Time Division Multiplexing) 및 주파수분할 다중화(FDM, Frequency Division Multiplexing) 등이 있다. 그러나, 모바일 RFID에 시간적 동기화가 지원되지 않거나, 단지 하나의 채널이 할당된다면 이들 메커니즘은 모바일 RFID에 적용할 수 없다. 다시 말해, RFID 리더와 태그 통신은 분명하고, 스펙트럼하게 구별될 수 없다.
모바일 환경에서 RFID 리더를 효과적으로 사용하기 위해서는, RFID 리더는 모바일 환경에서 최근 부각되고 있는 통신 에러에 적응적이어야 한다. 그런데, 현재, ISO/IEC 18000-6 Type C와 같은 일반적인 RFID 무선 인터페이스 사양을 보면, 인벤토리 라운드 동안 페일(fail)이 발생한 경우에 리더가 재전송할 수 있는 명령의 타이밍 수 또는 명령을 재전송하는 조건에 관하여 그 어떤 규제도 하고 있지 않다. 또한 명령의 재전송을 위한 랜덤 대기 시간을 선택하는 기준 범위에 대해서 충돌 회피와 처리 성능 사이의 합리적인 절충점을 찾기 위한 방법이 필요하다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허청구범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
본 발명은 상기의 종래 기술의 문제점을 해결하기 위한 것으로서, 특히 모바일 RFID 환경에서 다양한 충돌의 타입 및 상황에 따른 명령 재전송을 수행하고 적응적으로 명령 재전송을 위한 최적의 대기 시간을 설정할 수 있는 RFID 리더 및 그 제어방법을 제공하는 것을 목적으로 한다.
상기 목적을 달성하기 위하여 본 발명에 따른 적응형 재전송 대기 시간을 계산하는 RFID 리더 장치는, 하나 이상의 태그와 신호를 송수신 할 수 있는 RF 통신 부로부터의 송신신호에 대응하여 설정된 수신시간 동안에 수신된 수신신호의 데이터를 분석하여, 수신신호의 충돌발생 여부를 확인하고, 수신 신호 데이터의 분석 결과에 따라 충돌 타입을 진단하는 충돌 진단부, 충돌 진단부로부터 수신한 충돌발생 여부 및 충돌 타입에 근거하여 명령을 재전송할지 여부를 판단하는 상황별 명령 재전송부, 및 명령의 재전송을 위한 랜덤 대기 시간을 계산하는 랜덤 대기 시간 계산부를 포함하며, 랜덤 대기 시간 계산부는, 재전송 대기 기준값의 하한 및 상한과 대기 시간 파라미터를 곱한 값에 대응하여 결정되는 최소 재전송 대기 시간과 최대 재전송 대기 시간 사이에서, 랜덤하게 랜덤 대기 시간을 선택하며, 대기 시간 파라미터는 동적으로 변경 가능하다.
또한, 본 발명에 따른 적응형 재전송 대기 시간을 계산하는 RFID 리더 장치의 제어방법은, 충돌 진단부가, RF 통신부로부터의 송신신호에 대응하여 설정된 수신시간 동안에 수신된 수신신호의 데이터를 분석하여, 수신신호의 충돌발생 여부를 확인하고, 수신 신호 데이터의 분석 결과에 따라 충돌 타입을 진단하는 충돌 진단 단계, 상황별 명령 재전송부가, 충돌발생 여부 및 충돌 타입에 근거하여 명령을 재전송할지 여부를 판단하는 명령 재전송 판단 단계, 및 랜덤 대기 시간 계산부가, 명령의 재전송을 위한 랜덤 대기 시간을 계산하는 랜덤 대기 시간 계산 단계를 포함하며, 랜덤 대기 시간 계산 단계는, 재전송 대기 기준값의 하한 및 상한과 대기 시간 파라미터를 곱한 값에 대응하여 결정되는 최소 재전송 대기 시간과 최대 재전송 대기 시간 사이에서, 랜덤하게 랜덤 대기 시간을 선택하며, 대기 시간 파라미터는 동적으로 변경 가능하다.
본 발명에 따르면, RFID 리더가 태그를 읽는 과정에서 발생되는 모든 타입의 충돌에 대한 식별이 가능하므로, 충돌 발생 원인을 빠르게 인지할 수 있는 이점이 있다. 따라서, 충돌 발생 원인에 대처할 수 있게 된다. 또한, RFID 리더를 구비한 모바일 어플리케이션에서 충돌이 감지된 경우, 해당 충돌 타입에 대응하는 상황에 따른 충돌 제어를 처리함으로써, 이미 시작된 인벤토리 라운드(inventory round)를 성공적으로 종료할 수 있게 된다. 충돌의 타입에 따라 상황에 따른 명령 재전송을 수행할 수 있고 적응적으로 명령 재전송을 위한 대기 시간을 설정할 수 있다.
아래에 본 발명의 이해를 돕기 위하여 첨부되는 도면을 참조하여 바람직한 실시예를 제공한다. 하기의 실시예는 본 발명을 보다 쉽게 이해하기 위하여 제공하는 것이고, 본 실시예에 의해 본 발명이 한정되는 것은 아니다.
본 발명에서는, 극초단파(ultrahigh frequency, UHF) 대역의 RFID 환경에서 동작하는 RFID 리더(Interrogator)를 장착한 휴대폰으로 태그가 붙은 상품이나 작품 등의 정보를 조회하거나 구매하는 모바일 RFID 서비스에 있어서, 해당 RFID 리더와 주변의 RFID 리더 또는 주변 태그와의 충돌에 의해 수신신호에 에러가 발생한 경우, 발생된 충돌을 해결하기 위하여 에러가 발생한 수신신호를 분석하여 충돌의 원인을 식별하고 충돌의 상황에 따라 명령을 재전송하며, 재전송을 위한 대기 시간을 적절하게 설정할 수 있는 장치 및 방법을 제시하고자 한다.
본 발명은 모바일 RFID(Radio Frequency IDentification)의 에어 인터페이스 사양(air interface specification)에 관한 것으로서, 본 발명에 따른 시스템은 수동 백스캐터(passive backscatter) 방식으로 동작하는 ITF(Interrogator Talks First) 시스템으로서, 하나 이상의 모바일 RFID 인테러게이터(Interrogator)와 복수의 태그를 구비한다. 이하에서는 RFID 인테러게이터를 RFID 리더로 하여 설명하며, 특별히 다른 설명이 있거나 명백하게 다른 용어로 해석되지 않는 한, 두 용어는 동일한 의미를 갖는다.
본 발명에 따른 RFID 리더는 채널 센싱을 지원하지 않아도 된다. 예를 들어 LBT(Listen Before Talk)를 구현할 필요가 없고, 리더 간에 충돌할 위험을 감수하고 명령(command)을 전송한다. 또한, TDM(Time Division Multiplexing)을 위한 제어 채널 등을 이용해 리더간에 동기화를 하지 않아도 된다.
리더에서 제공하는 RF 신호에 의해 태그에 전원이 공급되고 안테나의 반사 계수(reflection coefficient)를 변조하여 리더로 데이터를 백스캐터링함으로써 리더의 명령에 반응한다. 태그의 작동은 수동 모드이며 어떠한 RF 통신도 능동적으로 개시하지 않는다고 가정한다. 본 발명은 모바일 RFID 응용에 있어서 충돌 중재(arbitration)와 충돌 회피에 관한 것이며, 충돌의 영향을 완화시키고 후속(follow up)하는 충돌을 회피하기 위해 사용할 수 있는 매커니즘에 관한 것이다.
본 발명에 있어서 구체적으로 설명되지 않은 부분은 ISO/IEC 18000-6 Type C에 규정된 무선 인터페이스 사양에 따라 충분히 이해할 수 있으며, 필요에 따라 다른 무선 인터페이스 사양도 참고하여 적용할 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 설명하면 다음과 같다.
도 1 내지 도 3은 본 발명의 실시예에 따른 네트워크 충돌상황을 도시한 것이다.
본 발명에 따른 네트워크 충돌상황에는 복수의 태그 사이에서 발생하는 충돌인 '태그 대 태그 충돌'(Tag on Tag Collision), 복수의 RFID 리더와 태그 사이에 발생하는 충돌인 '멀티 리더 대 태그 충돌'(Multiple Interrogators to Tag Collision), 해당 RFID 리더와 주변에 위치한 하나 또는 그 이상의 RFID 리더 사이에서 발생하는 충돌인 '리더 대 리더 충돌'(Interrogator to Interrogator Collision)과 같은 3가지 타입이 있다.
먼저, 도 1은 본 발명의 일실시예에 따른 태그 대 태그 충돌 상황을 도시한 것이다.
도 1을 참조하면, '태그 대 태그 충돌' 상황은 하나의 RFID 리더인 R(100)의 읽기 범위(read range)인 A 안에 복수개의 태그(200)가 구비된 경우 발생하게 된다. 도 1의 실시예에서는 두 개의 태그인 T1(200a)과, T2(200b)가 구비된 경우를 예로 하였으나 이에 한정되는 것은 아니며, 그 이상의 태그가 구비된 경우에도 적용 가능하다.
먼저, R(100)이 인벤토리 명령(inventory command)을 출력하면, A 안에 위치한 T1(200a)과 T2(200b)가 R(100)의 인벤토리 명령에 대해 응답을 하게 된다. 이때, T1(200a)과 T2(200b)가 동시에 응답을 하게 되는 경우, T1(200a)과 T2(200b)에 의한 병렬적인 응답은 상대 태그의 응답을 방해하게 된다. 이것이 바로 '태그 대 태그 충돌'인 것이다.
'태그 대 태그 충돌'이 발생한 경우, R(100)은 태그 대 태그 충돌에 의해 T1(200a) 및 T2(200b)로부터 수신된 태그 응답을 디코딩하는데 있어서 오류가 발생하게 된다. 따라서, 인벤토리 명령을 출력한 R(100)은 각 태그의 응답을 정확하게 구분할 수 없게 된다. 이러한 '태그 대 태그 충돌'은 무선 인터페이스 사양(예, ISO/IEC 18000-6 Type C)에 소개되어 있는 태그 충돌조정 알고리즘(anti-collision algorithm)에 의해 해결 가능하다. 이하에 있어서, 태그 충돌조정은 다른 설명이 없다면 태그 대 태그 충돌을 해결하는 종래의 알고리즘을 의미한다.
이하의 설명에서, '태그 대 태그 충돌'은 편의상 제1 충돌로 설명한다.
한편, 도 2는 본 발명의 일실시예에 따른 멀티 리더 대 태그 충돌 상황을 도시한 것이다.
도 2를 참조하면, '멀티 리더 대 태그 충돌' 상황은 복수의 RFID 리더에 의해 발생된다. 도 2의 실시예에서는 두 개의 RFID 리더인 R1(100a)과, R2(100b)가 구비된 경우를 예로 하였으나 이에 한정되는 것은 아니며, 그 이상의 RFID 리더가 구비된 경우에도 적용 가능함은 당연한 것이다.
다시 말해, R1(100a)의 읽기 범위인 A1과, R2(100b)의 읽기 범위인 'A2'가 일부 겹치는 상태에서, A1과 A2가 일부 겹치는 범위 안에 하나의 태그인 T(200)가 위치한 경우를 예를 들어 설명한다.
이때, R1(100a)과 R2(100b)가 T(200)로 인벤토리 명령을 출력하는 경우, R1(100a) 및 R2(100b)로부터 출력된 인벤토리 명령은 T(200)에서 충돌할 수 있다. 이 경우, T(200)는 R1(100a) 및 R2(100b)로부터 각각 수신된 인벤토리 명령을 디코딩하는 경우 오류가 발생하게 된다.
이하의 설명에서, '멀티 리더 대 태그 충돌'은 편의상 제2 충돌로 설명한다.
한편, 도 3은 본 발명의 일실시예에 따른 리더 대 리더 충돌 상황을 도시한 것이다.
도 3을 참조하면, '리더 대 리더 충돌'은 두 개의 RFID 리더인 R1(100a)과, R2(100b)가 존재하고, R2(100b)의 간섭 범위(interference range)인 B2가 R1(100a)의 읽기 범위인 A1과 겹치는 경우 발생하게 된다. 도 3의 실시예에서는 두 개의 RFID 리더가 구비된 경우를 예로 하였으나 이에 한정되는 것은 아니며, 그 이상의 RFID 리더가 구비된 경우에도 적용 가능함은 당연한 것이다. 여기서, '리더 대 리더 충돌'은 R1(100a) 및 R2(100b)의 읽기 범위가 겹치지 않는 상황에서도 발생할 수 있는 것이다.
예를 들어, R1(100a)이 A1 안에 위치한 태그인 T(200)로 인벤토리 명령을 출력하면, T(200)는 R1(100a)의 인벤토리 명령에 대한 응답신호를 R1(100a)로 전송한다. 따라서, R1(100a)은 T(200)로부터 수신된 응답신호에 대응하는 동작을 수행하게 된다. 이때, A1과 B2가 겹치게 되므로, R2(100b)로부터 출력된 소정의 명령 또는 그 외 다른 신호와 R1(100a)로 입력되는 T(200)의 응답신호가 충돌하게 된다. 이것이 바로 '리더 대 리더 충돌'인 것이다.
기존에는 RFID 리더 사이의 충돌 상황에서 R1(100a)은 T(200)로부터 수신된 응답신호에서 에러가 검출된 경우, 이를 태그 대 태그 충돌로 오인하여 그에 대응하는 충돌조정 알고리즘을 적용함으로써 충돌을 해결하고자 하였다.
또한, '리더 대 리더 충돌'은 두 개의 RFID 리더의 읽기 범위가 겹치지 않는 상황에서도 발생할 수 있어, 무선 인터페이스 사양에서도 해결 방안이 제시되어 있지 않다. 따라서, 모바일 RFID 응용에서 '리더 대 리더 충돌'을 검출하기 위한 메커니즘이 필요했다. 이에, 후술한 본 발명의 실시예에서는 리더 대 리더 충돌을 검출하기 위한 실시예를 서술하였다.
이하의 설명에서, '리더 대 리더 충돌'은 편의상 제3 충돌로 설명한다.
도 4는 본 발명의 일 실시예에 따른 RFID 리더의 구성을 설명하는데 참조되는 도이다.
도 4를 참조하면, 본 발명에 따른 RFID 리더는 리더 제어부(110), 리더 송신부(120), RF 통신부(130), 리더 수신부(140), 충돌 제어부(160) 및 타이머(150)를 포함한다.
리더 제어부(110)는 소정 범위 내에 위치한 적어도 하나의 태그로 인벤토리 명령을 출력하고, 인벤토리 명령에 대응하여 수신된 태그 응답을 처리한다.
리더 송신부(120, 모뎀 송신부)는 리더 제어부(110)의 인벤토리 명령을 RF 통신부(130)로 전달한다. 여기서, 리더 송신부(120)는 리더 제어부(110)로부터 출력된 인벤토리 명령을 변조하여 RF 통신부(130)로 전달한다.
RF 통신부(130)는 리더 제어부(110)의 인벤토리 명령을 리더 송신부(120)로부터 인가 받아 소정 범위 내에 위치한 적어도 하나의 태그로 송출한다. 또한, RF 통신부(130)는 인벤토리 명령을 외부로 송출한 후, 설정된 수신시간 동안 외부로부터의 신호를 수신한다. 이때, RF 통신부(130)는 설정된 수신시간 동안 이미 송출된 인벤토리 명령에 대응하여 읽기 범위 내의 태그로부터 태그 응답을 수신한다. 물론, RF 통신부(130)는 태그 응답 외에 다른 RFID 리더의 신호 또는 어떠한 신호도 포함하지 않는 노이즈 등을 수신할 수도 있다. 이때, RF 통신부(130)는 수신신호를 리더 수신부(140)로 전달한다.
리더 수신부(140, 모뎀 수신부)는 RF 통신부(130)로부터의 수신신호를 리더 제어부(110) 및 충돌 제어부(160)로 전달한다. 이때, 리더 수신부(140)는 수신신호 데이터를 충돌 제어부(160)로 전달하도록 한다.
한편, 리더 수신부(140)는 디코더(미도시)를 포함한다. 이때, 디코더는 RF 통신부(130)로부터의 수신신호를 복호화하고, 복호화된 수신신호로부터 유효 프리앰블을 검출하도록 한다. 리더 수신부(140)는 디코더의 유효 프리앰블 검출 결과에 따라 충돌 제어부(160)로 유효 프리앰블 검출신호(VPD, Valid Preamble Detection)를 출력하도록 한다.
또한, 디코더는 복호화된 수신신호로부터 CRC(Cyclic Redundancy Check) 에러를 검출하도록 한다. 리더 수신부(140)는 디코더의 CRC 에러 검출 결과에 따라 충돌 제어부(160)로 CRC 에러 검출신호를 출력하도록 한다.
충돌 제어부(160)는 충돌 진단부(161) 및 충돌 해결부(165)를 포함한다.
충돌 진단부(161)는 리더 수신부(140)로부터 입력된 수신신호 데이터를 분석하여 수신신호에 대한 충돌발생 여부를 확인하고, 수신신호 데이터의 분석 결과에 따라 충돌 타입을 진단하도록 한다.
여기서, 충돌 진단부(161)는 유효비트검출모듈인 VBD(Valid Bit Detection) 모듈(163)을 포함한다. VBD 모듈(163)은 충돌 진단부(161)의 서브 모듈로서, 리더 수신부(140)로부터 입력된 수신신호로부터 유효비트를 검출한다. 다시 말해, VBD 모듈(163)은 무선 인터페이스 스펙의 허용 오차 내에서 수신신호의 라이징 엣지(rising edge) 및 폴링 엣지(falling edge), 즉, 변조된 부반송파를 검출함으로써 유효한 논리적인 신호를 검출한다. 이때, VBD 모듈(163)은 유효비트 검출 결과에 따라 유효비트 검출신호를 출력한다.
충돌 진단부(161)는 유효비트 검출신호가 감지된 경우, 유효비트검출신호(VBD)가 포지티브(positive)인 것으로 판단한다. 다시 말해, 충돌 진단부(161)는 유효비트 검출신호가 감지된 경우, VBD 모듈(163)로부터 유효비트가 검출된 것으로 판단한다.
한편, 충돌 진단부(161)는 유효비트 검출신호가 감지되지 않은 경우, 유효비트검출신호(VBD)가 네거티브(negative)인 것으로 판단한다. 다시 말해, 충돌 진단부(161)는 유효비트 검출신호가 감지된 경우, VBD 모듈(163)로부터 유효비트가 검출되지 않은 것으로 판단한다.
충돌 진단부(161)는 VBD 모듈(163)로부터 출력된 유효비트 검출신호에 근거하여, 송신신호에 대응하는 태그 응답신호가 존재하는지를 판단한다. 이로써, 충돌 진단부(161)는 수신신호가 송신신호에 대응하는 태그 응답인지, 아니면 어떠한 신호도 포함하고 있지 않는 신호인지 등을 판단한다.
한편, 충돌 진단부(161)는 RFID 리더의 충돌을 감지하는 리더충돌감지모듈인 ICD(Interrogator Collision Detection) 모듈(162)을 더 포함한다. ICD 모듈(162)은 VBD 모듈(163)과 마찬가지로 충돌 진단부(161)의 서브 모듈로서, 리더 수신부(140)로부터 입력된 수신신호 데이터를 분석하여, 수신신호 데이터에 대한 평균값을 산출한다.
또한, ICD 모듈(162)은 수신신호 데이터로부터 산출된 평균값과 등록된 기준레벨의 비교 결과에 따라 RFID 리더의 충돌을 감지한다. 이때, ICD 모듈(162)은 RFID 리더의 충돌이 감지된 경우 리더 충돌 검출신호(ICD)를 출력한다.
예를 들어, ICD 모듈(162)은 수신신호 데이터로부터 산출된 평균값이 기준레벨 이상인 경우, RFID 리더가 충돌한 것으로 감지한다. 한편, ICD 모듈(162)은 수신신호 데이터로부터 산출된 평균값이 기준레벨 미만인 경우, RFID 리더가 충돌하지 않은 것으로 감지한다.
이에 대한 구체적인 실시예는 도 6 및 도 7을 참조하도록 한다.
충돌 진단부(161)는 ICD 모듈(162)로부터 출력된 리더 충돌 검출신호에 근거하여 해당 RFID 리더와 주변 RFID 리더의 충돌, 즉, 제3 충돌의 발생여부를 확인하는 것이 가능하다.
다시 말해, 충돌 진단부(161)는 리더 충돌 검출신호가 감지된 경우, 리더 충돌 검출신호(ICD)가 포지티브(positive)인 것으로 판단한다. 다시 말해, 충돌 진단부(161)는 리더 충돌 검출신호가 감지된 경우, ICD 모듈(162)로부터 RFID 리더의 충돌이 검출된 것으로 판단한다. 이때, 충돌 진단부(161)는 수신신호에 대해 제3 충돌이 발생한 것으로 진단한다.
한편, 충돌 진단부(161)는 리더 충돌 검출신호가 감지되지 않은 경우, 리더 충돌 검출신호(ICD)가 네거티브(negative)인 것으로 판단한다. 다시 말해, 충돌 진단부(161)는 유효비트 검출신호가 감지된 경우, VBD 모듈(163)로부터 유효비트가 검출되지 않은 것으로 판단한다. 이때, 충돌 진단부(161)는 수신신호에 대해 제3 충돌은 발생하지 않은 것으로 진단한다.
또한, 충돌 진단부(161)는 ICD 모듈(162)로부터 출력된 리더 충돌 검출신호가 네거티브(negative)인 것으로 판단되면, VBD 모듈(163)로부터 출력된 유효비트 검출신호에 근거하여 복수의 주변 태그 사이의 충돌, 즉, 제1 충돌의 발생여부를 확인한다. 또한, 충돌 진단부(161)는 VBD 모듈(163)로부터 출력된 유효비트 검출신호에 근거하여 복수의 RFID 리더와 송신신호를 수신한 태그 사이의 충돌, 즉, 제2 충돌의 발생여부를 확인한다.
만일, 충돌 진단부(161)는 VBD 모듈(163)로부터 유효비트 검출신호(VBD)가 포지티브인 것으로 판단되면, 수신신호에 대해 제1 충돌이 발생한 것으로 진단한다. 한편, 충돌 진단부(161)는 VBD 모듈(163)로부터 유효비트 검출신호(VBD)가 네거티브인 것으로 판단되면, 수신신호에 대해 제2 충돌이 발생한 것으로 진단한다.
충돌 진단부(161)는 디코더로부터 유효 프리앰블이 검출된 경우, 리더 수신부(140)로부터 유효 프리앰블 검출신호를 입력 받는다. 또한, 충돌 진단부(161)는 디코더로부터 CRC 에러가 검출된 경우, 리더 수신부(140)로부터 CRC 에러 검출신호를 입력 받는다. 여기서, 충돌 진단부(161)는 리더 수신부(140)로부터 출력된 유효 프리앰블 검출신호와 CRC 에러 검출신호에 근거하여 수신신호에 대한 충돌 타입을 진단하도록 한다.
즉, 충돌 진단부(161)는 ICD 모듈(162)로부터 출력된 리더 충돌 검출신호와 VBD 모듈(163)로부터 출력된 유효비트 검출신호에 근거하여 제1 충돌, 제2 충돌, 및 제3 충돌에 대한 충돌 타입을 진단할 수 있다. 이에 대한 실시예는 [표 1]을 참조하도록 한다.
또한, 충돌 진단부(161)는 ICD 모듈(162)로부터 출력된 리더 충돌 검출신호 및 VBD 모듈(163)로부터 출력된 유효비트 검출신호에, 리더 수신부(140)로부터 입력된 유효 프리앰블 검출신호와 CRC 에러 검출신호를 더 참조하여 보다 세밀한 충돌 타입을 진단할 수 있게 된다. 이에 대한 실시예는 아래 [표 2]를 참조하도록 한다.
충돌 진단부(161)는 상기와 같은 조건을 만족하는 경우 충돌 상황으로 판단하여, 제1 충돌, 제2 충돌, 및 제3 충돌 중 어느 하나의 충돌 타입으로 진단하고, 상기와 같은 조건을 만족하지 않는 경우 수신신호에 충돌이 발생하지 않은 것으로 판단한다.
이때, 충돌 진단부(161)는 충돌 진단 결과를 충돌 해결부(165)로 전달하도록 한다. 여기서, 충돌 진단 결과는 충돌 발생 여부를 포함하며, 충돌이 발생한 경우, 충돌 타입 정보를 포함한다.
충돌 해결부(165)는 충돌 진단부(161)로부터 인가된 충돌 진단 결과에 대응하는 동작을 수행하도록 한다. 다시 말해, 충돌 해결부(165)는 충돌 진단부(161)에 의해 충돌이 발생하지 않은 것으로 진단되었으면, 이를 리더 제어부(110)로 통보하도록 한다.
또한, 충돌 해결부(165)는 태그 대 태그 충돌, 멀티 리더 대 태그 충돌 및 리더 대 리더 충돌 중 어느 하나의 충돌이 발생한 경우, 각 충돌 타입에 대응하는 충돌 해결 알고리즘(collision resolution algorithm)을 수행함으로써 충돌 문제를 해결하도록 한다. 충돌 해결부(165)는 충돌발생 여부와 충돌 타입에 근거하여 명령을 재전송할지 여부를 판단하는 상황별 명령 재전송부(1651) 및 명령의 재전송을 위한 랜덤 대기 시간을 계산하는 랜덤 대기 시간 계산부(1652)를 구비하며, 충돌 해결부(165)의 구체적인 동작에 대해서는 충돌 진단부(161)가 충돌을 진단하는 동작을 설명한 후에 설명을 하도록 한다.
도 5는 본 발명에 따른 충돌 제어부의 동작 설명에 참조되는 도이다.
도 5를 참조하면, 충돌 진단부(161)는 리더 수신부(140)로부터 수신신호 데이터(I1)를 입력 받는다. 이때, 충돌 진단부(161)의 VBD 모듈(163)은 수신신호 데이터로부터 유효비트를 검출하여 유효비트 검출신호(I11)를 출력한다. 또한, 충돌 진단부(161)의 ICD 모듈(162)은 수신신호 데이터로부터 리더 충돌을 검출하여 리더 충돌 검출신호(I12)를 출력한다.
한편, 충돌 진단부(161)는 리더 수신부(140)로부터 유효 프리앰블 검출신호(I2)와, CRC 에러 검출신호(I3)를 입력 받는다.
또한, 충돌 진단부(161)는 타이머(150)로부터 시간 정보(I4)를 입력 받는다. 이때, 충돌 진단부(161)는 타이머(150)로부터 제공된 시간 정보(I4)에 기초하여 송신신호에 대해 설정된 수신시간이 타임아웃 되기까지의 시간을 카운트 한다. 또한, 충돌 진단부(161)는 송신신호에 대응하는 태그 응답이 수신되기까지의 시간을 카운트 한다.
충돌 진단부(161)는 유효비트 검출신호(I11), 리더충돌 검출신호(I12), 유효 프리앰블 검출신호(I2), 및 CRC 에러 검출신호(I3) 정보를 이용하여 수신신호에 대한 충돌 발생 여부 및 발생된 충돌 타입을 진단하도록 한다.
이때, 충돌 진단부(161)는 충돌 진단 결과를 충돌 해결부(165)로 출력하게 되는데, 여기서 충돌 진단 결과는 충돌 없음(No collision detected), 제1 충돌, 제2 충돌, 및 제3 충돌에 대한 정보를 포함한다. 물론, 충돌 진단 결과는 진단된 충돌을 해결하기 위한 충돌 제어 명령이 포함될 수 있다.
도 6 및 도 7은 충돌 진단부의 ICD 모듈에서 ICD를 검출하는 동작 설명에 참조되는 도이다.
ICD 모듈(162)에서 ICD 신호를 검출하기에 앞서, 충돌 진단부(161)는 ICD 모듈(162)의 파라미터 값을 조정한다.
예를 들어, 충돌 진단부(161)는 링크 주파수(LF, Link Frequency), 데이터 속도(data rate), 신호 변조 타입 등으로부터 이동평균필터(MAF, Moving Average Filter)의 윈도우(또는 탭) 크기를 결정한다. 여기서, 수신신호 데이터에 대한 평균값을 산출하는 구간인 윈도우의 크기는 수동 또는 자동으로 조정하는 것이 가능하다.
충돌 진단부(161)는 송신신호에 대한 태그 응답을 수신하기 위한 태그 응답 주기를 결정한다. 여기서, 태그 응답 주기는 링크 주파수, 데이터 속도 및 변조 타입 등으로부터 결정된다.
또한, 충돌 진단부(161)는 ICD 모듈(162)에서 리더 신호를 검출하기 위해 기준이 되는 기준레벨(Threshold_level)을 결정한다. 여기서, 기준레벨은 신호 변조 타입, 링크 주파수(LF), 데이터 속도 중 적어도 하나 이상에 의해 결정된다.
상기와 같이 충돌 진단부(161)에 의해 ICD 모듈(162)의 파라미터 값이 결정된 이후, ICD 모듈(162)은 리더 수신부(140)로부터 입력되는 수신신호의 심볼 데이터에 대해 RFID 리더의 충돌 여부를 검사하도록 한다.
도 6은 본 발명에 따른 ICD 모듈의 구성을 나타낸 예시도이고, 도 7은 ICD 모듈에서의 신호 흐름을 나타낸 것이다. 도 6 및 도 7을 참조하면, ICD 모듈(162)은 평균 계산부(162a)와 비교기(162b)를 포함한다.
평균 계산부(162a)는 리더 수신부(140)로부터 입력된 수신신호 데이터를 입력값으로 받고, 입력된 수신신호 데이터에 대한 평균값을 산출한다. 이때, 평균 계산부(162a)는 이동평균필터(Moving Average Filter, MAF)를 포함한다. 즉, 평균 계산부(162a)는 이동평균필터(MAF)로 수신신호 데이터가 입력되면, 이동평균필터의 윈도우에 입력된 각 필터값(S1, S2, S3, ..., Sn)을 합하여 평균값을 산출하도록 한다. 즉, 이동평균필터의 윈도우에 입력된 구간의 평균값을 산출하도록 한다. 만일, 수신신호의 데이터가 이동평균필터의 윈도우에 추가로 입력되는 경우, 추가로 입력된 수신신호 데이터에 대한 평균값을 산출하도록 한다.
비교기(162b)는 평균 계산부(162a)로부터 산출된 평균값과 등록된 기준레벨(threshold_level)을 비교하여, 리더 충돌 검출신호를 출력하도록 한다. 이때, 비교기(162b)는 평균 계산부(162a)로부터 산출된 평균값 중 기준레벨 이상의 값에 대해 리더 충돌 검출신호를 출력하도록 한다. 이때, 충돌 진단부(160)는 해당 리더 충돌 검출신호, 즉, ICD가 포지티브(positive) 상태인 것으로 간주한다.
즉, 충돌 진단부(161)는 리더 충돌 검출신호에서 ICD가 'positive' 상태인 경우, 해당 RFID 리더와 주변 RFID 리더에 사이에 제3 충돌이 발생한 것으로 간주한다. 이때, ICD 값은 충돌 관계에 있는 리더를 알려주는 것이다.
다시 말해, 도 7의 (a)와 같이 수신신호의 심볼 데이터가 입력된 경우, 충돌 진단부(160)에 의해 결정된 태그 응답시간(T1) 동안 입력된 수신신호 데이터에 대한 이동평균필터 구간의 평균값은 도 7의 (b)와 같다. 여기서, 충돌 진단부(160)는 송신신호를 송출한 이후에 설정된 수신시간 동안 RF 통신부(130)로부터 수신신호를 입력 받는데, 본 실시예에서는 태그 응답시간(T1) 동안 수신신호를 입력 받는 것으로 한다.
이때, ICD 모듈(162)은 (b)의 평균값 중 앞서 충돌 진단부(161)에 의해 결정된 기준레벨(Threshold_level)과 비교하도록 한다. 그 결과, ICD 모듈(162)은 도 7의 (c)와 같이 리더 충돌 검출신호를 충돌 진단부(161)로 출력하도록 한다. 즉, 태그 응답시간인 'T1' 동안의 평균값 중 기준레벨을 초과하는 영역인 'T2'에서 ICD가 'positive' 상태가 됨을 확인할 수 있다.
따라서, 충돌 진단부(161)는 ICD 모듈(162)로부터 출력된 리더 충돌 검출신호에 근거하여 수신신호에 제3 충돌이 발생한 것으로 판단한다.
도 8은 VBD 모듈에서 유효비트를 검출하는 실시예를 나타낸 것이다. 특히, Miller-4로 인코딩된 수신신호에서 유효비트를 검출하는 예를 나타낸 것이다.
여기서, VBD 모듈(163)에 의해 유효비트가 검출된 경우 VBD는 'positive'가 되고, 유효비트가 검출되지 않은 경우에는 VBD가 'negative'가 된다. VBD 모듈(163)은 유효비트 검출 결과에 따라 유효비트 검출신호를 출력한다. 이에, 충돌 진단부(161)는 VBD 모듈(163)로부터 출력된 유효비트 검출신호에 근거하여 수신신호의 충돌 타입을 진단하도록 한다.
따라서, 충돌 진단부(161)는 앞서 획득된 정보, 즉, 리더 충돌 검출신호, 유효비트 검출신호, 유효 프리앰블 검출신호, 및 CRC 에러 검출신호로부터 도 9 내지 도 11의 충돌 타입을 진단할 수 있게 된다.
먼저, 도 9는 제1 충돌 상황을 나타낸 것으로, 상세하게는 RFID 리더(R)와 태그1(T1) 및 태그2(T2) 사이에 송수신되는 명령 및 응답 신호를 나타낸 것이다. 단, 다른 RFID 리더로부터의 간섭은 없는 상태인 것으로 간주한다.
먼저, RFID 리더(R)가 태그1(T1) 및 태그2(T2)로 명령을 전송하면, 태그1(T1) 및 태그2(T2)는 각각 응답1과 응답2를 RFID 리더(R)로 전송한다. 이때, 동일한 응답 슬롯(response slot)에서 둘 이상의 태그 응답, 즉, 응답1과 응답2의 일부가 오버래핑 됨에 따라 충돌이 발생하게 된다.
이때, 충돌 진단부(161)는 아래의 <조건A> 또는 <조건B>를 만족하는 경우, 제1 충돌이 발생한 것으로 진단한다.
<조건A> 1) 유효 프리앰블 검출(VPD is positive).
2) CRC 에러 검출.
3) 유효비트 검출(VBD is positive).
4) 검출된 리더 충돌 없음(ICD is negative).
<조건B> 1) 검출된 유효 프리앰블 없음(VPD is negative).
2) 유효비트 검출(VBD is positive).
3) 검출된 리더 충돌 없음(ICD is negative).
다시 말해, <조건A>와 같이, 유효 프리앰블 검출신호로부터 VPD가 'positive'이고, CRC 에러가 검출되고, 유효비트 검출신호로부터 VBD가 'positive'이고, 리더충돌 검출신호로부터 ICD가 'negative'임을 만족하는 경우, 충돌 진단부(161)는 수신신호에 제1 충돌이 발생한 것으로 진단한다. 한편, <조건B>와 같이, VPD가 'negative'이고, VBD가 'positive'이고, ICD가 'negative'임을 만족하는 경우, 충돌 진단부(161)는 수신신호에 제1 충돌이 발생한 것으로 진단한다.
따라서, 충돌 진단부(161)는 <조건A> 및 <조건B> 중 어느 하나를 만족하는 경우, 제1 충돌 정보를 포함하는 충돌 진단 결과를 충돌 해결부(165)로 출력하도록 한다.
도 10은 제2 충돌 상황을 나타낸 것으로, 상세하게는 리더1 및 리더2와 하나의 태그 사이에 송수신되는 명령 및 응답 신호를 나타낸 것이다.
도 10에 도시된 바와 같이, RFID 리더1(R1)과 RFID 리더2(R2)는 태그(T)로 명령을 출력한다. 이때, RFID 리더1(R1)과 RFID 리더2(R2)로부터 각각 출력된 명령1과 명령2가 오버래핑 된 경우 충돌이 발생하게 된다. 이 경우, 태그는 유효한 RFID 리더의 명령을 검출할 수 없으므로, 태그 응답은 출력되지 않게 된다. 따라서, RF 통신부(130)는 송신신호를 송출한 이후에 다른 RFID 리더의 신호 또는 노이즈 등을 수신하게 된다.
이때, 충돌 진단부(161)는 아래의 <조건C>를 만족하는 경우, 제2 충돌이 발생한 것으로 진단한다.
<조건C> 1) 검출된 유효 프리앰블 없음(VPD is negative).
2) 검출된 유효비트 없음(VBD is negative).
3) 검출된 리더 충돌 없음(ICD is negative).
<조건C>에서와 같이, VPD가 'negative'이고, VBD가 'negative'이고, ICD가 'negative'임을 만족하는 경우, 충돌 진단부(161)는 수신신호에 제2 충돌이 발생한 것으로 진단한다.
따라서, 충돌 진단부(161)는 <조건C>를 만족하는 경우, 제2 충돌 정보를 포함하는 충돌 진단 결과를 충돌 해결부(165)로 출력하도록 한다.
도 11은 제3 충돌 상황을 나타낸 것으로, 상세하게는 리더1 및 리더2와 하나의 태그 사이에 송수신되는 명령 및 응답 신호를 나타낸 것이다.
먼저, RFID 리더1(R1)이 태그(T)로 명령1을 전송하면, 태그(T)는 RFID 리더1(R1)의 명령1에 대응하여 응답1을 RFID 리더1(R1)로 전송한다. 한편, RFID 리더2(R2)는 다른 태그로 명령2를 전송한다.
이때, RFID 리더1(R1)의 읽기 범위와 RFID 리더2(R2)의 간섭 범위가 겹치게 되므로, 태그(T)의 응답1과 RFID 리더2(R2)의 명령2가 서로 오버래핑 됨에 따라 충돌이 발생하게 된다. 도 11의 (a)는 응답1의 일부가 명령2와 오버래핑 된 경우를 나타낸 것이고, 도 11의 (b)는 응답1의 전체가 명령2에 오버래핑 된 경우를 나타낸 것이다. 여기서, 도 11의 (a) 및 (b)는 전송되는 프로토콜 데이터 유닛(protocol data unit)의 액추얼 타이밍(actual timing)에 따라 발생하게 된다.
이때, 충돌 진단부(161)는 아래의 <조건D> 또는 <조건E>를 만족하는 경우, 제3 충돌이 발생한 것으로 진단한다.
<조건D> 1) 유효 프리앰블 검출(VPD is positive).
2) CRC 에러 검출.
3) 리더 충돌 검출(ICD is positive).
<조건E> 1) 검출된 유효 프리앰블 없음(VPD is negative).
2) 리더 충돌 검출(ICD is positive).
먼저, <조건D>에서와 같이, VPD가 'positive'이고, CRC 에러가 검출되며, ICD가 'positive' 인 경우, 충돌 진단부(161)는 수신신호에 제3 충돌이 발생한 것으로 진단한다. 한편, <조건E>에서와 같이, VPD가 'negative'이고, ICD가 'positive' 인 경우, 충돌 진단부(161)는 수신신호에 제3 충돌이 발생한 것으로 진단한다.
여기서, ICD는 기본적으로 해당 RFID 리더와 주변 RFID 리더 사이의 충돌을 검출하는 신호이므로, 오직 제3 충돌에서만 'positive' 상태가 된다. 따라서, 충돌 진단부(161)는 <조건D> 또는 <조건E>를 만족하는 경우, 제3 충돌 정보를 포함하는 충돌 진단 결과를 충돌 해결부(165)로 출력하도록 한다.
이후, 충돌 해결부(165)는 충돌 진단부(161)에 의해 진단된 충돌을 해결하고, 발생하는 충돌을 최소화하기 위해, 발생된 충돌 타입에 대응하는 충돌 해결 알고리즘을 수행하도록 한다. 충돌 해결부(165)는 충돌 해결 알고리즘을 수행한 후에, 수행 결과를 리더 제어부(110)로 전달한다.
상기와 같이 구성된 본 발명의 동작을 살펴보면 다음과 같다.
도 12 내지 도 14는 본 발명의 일실시예에 따른 RFID 리더의 동작 흐름을 나타낸 순서도이다.
먼저, 도 12는 RFID 리더의 전체 동작 흐름을 나타낸 것이다. 도 12를 참조하면, RFID 리더는 주변의 태그로 송신신호, 즉, 인벤토리 명령을 전송한다(S500). 해당 RFID 리더의 RF 통신부(130)는 'S500' 과정에서 전송된 송신신호에 대응하여 설정된 수신시간 동안 외부로부터 신호를 수신한다(S510). 이때, RF 통신부(130)는 해당 RFID 리더의 읽기 범위 안에 있는 적어도 하나의 태그로부터 태그 응답신호를 수신하게 된다. 물론, 'S510' 과정에서 수신되는 신호는 태그 응답신호 외에 다른 RFID 리더의 신호 또는 노이즈를 포함할 수도 있다.
RFID 리더의 충돌 진단부(161)는 'S510' 과정에서 수신된 수신신호의 데이터를 분석하여(S520), 수신신호의 충돌 발생여부 및 충돌 타입을 진단하도록 한다(S530).
만일, 'S530' 과정에서의 진단 결과, 해당 수신신호가 정상 태그 응답신호인 것으로 판단되면(S550), 충돌 진단부(161)는 이를 알리는 신호를 충돌 해결부(165)로 출력하도록 한다. 이때, 충돌 해결부(165)는 충돌 진단부(161)의 충돌 진단 결과를 리더 제어부(110)로 전달함으로써, 리더 제어부(110)가 태그 응답에 따라 대응하는 동작을 수행하도록 한다(S570).
한편, 'S530' 과정에서의 진단 결과, 해당 수신신호에 충돌이 발생한 것으로 판단되면(S550), 충돌 진단부(161)는 충돌 해결부(165)로 충돌 진단 결과를 출력하도록 한다. 이때, 충돌 해결부(165)는 충돌 진단부(161)의 충돌 진단 결과에 기초하여 해당 충돌 타입에 대응하는 충돌 해결 알고리즘을 수행하도록 한다(S560).
도 13 및 도 14는 도 12에서 'S530' 과정의 상세 과정을 나타낸 것으로, 도 13은 간략한 동작 흐름을 나타낸 것이고, 도 14는 도 13을 좀 더 세분화한 동작 흐름을 나타낸 것이다.
먼저, 도 13을 참조하면, 충돌 진단부(161)는 리더 수신부(140)로부터 입력된 수신신호의 데이터를 분석 결과, ICD 모듈(162)로부터 출력된 리더충돌 검출신호 및 VBD 모듈(163)로부터 출력된 유효비트 검출신호에 근거하여 수신신호에 발생된 충돌 타입을 진단한다.
만일, ICD 모듈(162)로부터 출력된 리더충돌 검출신호에 근거하여 'ICD==positive'인 경우(S531), 충돌 진단부(161)는 수신신호의 충돌 타입을 '제3 충돌 타입', 즉, 리더 대 리더 충돌 타입으로 진단하도록 한다.
한편, ICD 모듈(162)로부터 출력된 리더충돌 검출신호로부터 'ICD==positive'가 아닌 경우(S531), 'S532' 과정으로 진입하여 'VBD==positive'인지 확인한다. 만일, VBD 모듈(163)로부터 출력된 유효비트 검출신호로부터 'VBD==positive'인 것으로 확인되면(S532), 충돌 진단부(161)는 수신신호의 충돌 타입을 '제2 충돌 타입', 즉, 멀티 리더 대 태그 충돌 타입으로 진단하도록 한다. 반면, 'VBD==positive'가 아니면(S532), 충돌 진단부(161)는 수신신호의 충돌 타입을 '제1 충돌 타입', 즉, 태그 대 태그 충돌 타입으로 진단하도록 한다.
도 14를 참조하면, 충돌 진단부(161)는 ICD 모듈(162)로부터 출력된 리더충돌 검출신호에 근거하여 'ICD==positive'인 경우(S531), 'S533' 과정으로 진입하여 'VPD==positive'인지 확인한다. 만일, 'VPD==positive'가 아닌 것으로 확인되면, 충돌 진단부(161)는 수신신호의 충돌 타입을 '제3 충돌 타입', 즉, 리더 대 리더 충돌 타입으로 진단하도록 한다(S535).
한편, 'S533' 과정에서 'VPD==positive'인 경우, 충돌 진단부(161)는 'S534' 과정으로 진입하여 CRC 에러가 발생하였는지 확인한다. 만일, CRC 에러가 발생한 것으로 확인된 경우, 충돌 진단부(161)는 수신신호의 충돌 타입을 '제3 충돌 타입', 즉, 리더 대 리더 충돌 타입으로 진단하도록 한다(S535). 이때, 'S534' 과정에서 CRC 에러가 발생하지 않은 것으로 확인되면, 충돌 진단부(161)는 수신신호가 정상 태그 응답인 것으로 진단한다(S536).
한편, 'S531' 과정에서 'ICD==positive'가 아닌 것으로 확인되면, 충돌 진단부(161)는 'S537' 과정으로 진입하여 'VPD==positive'인지 확인한다. 만일, 'VPD==positive'가 아닌 경우, 충돌 진단부(161)는 'S538' 과정으로 진입하여 'VBD==positive'인지 확인한다. 만일, 'VBD==positive'인 경우, 충돌 진단부(161)는 수신신호의 충돌 타입을 '제1 충돌 타입', 즉, 태그 대 태그 충돌 타입으로 진단하도록 한다(S540). 반면, 'VBD==positive'가 아닌 경우, 충돌 진단부(161)는 수신신호의 충돌 타입을 '제2 충돌 타입', 즉, 멀티 리더 대 태그 충돌 타입으로 진단하도록 한다(S539).
한편, 'S537' 과정에서 'VPD==positive'인 것으로 확인된 경우, 충돌 진단부(161)는 'S541' 과정으로 진입하여 'VBD==positive'인지 확인한다. 만일, 'VBD==positive'인 경우, 충돌 제어부(161)는 'S542 과정으로 진입하여 CRC 에러 발생여부를 확인한다. 만일, CRC 에러가 발생한 것으로 확인된 경우, 충돌 진단부(161)는 수신신호의 충돌 타입을 '제1 충돌 타입', 즉, 태그 대 태그 충돌 타입으로 진단하도록 한다(S540). 이때, 'S542' 과정에서 CRC 에러가 발생하지 않은 것으로 확인되면, 충돌 진단부(161)는 수신신호가 정상 태그 응답인 것으로 진단한다(S536).
한편, 'S541' 과정에서 'VBD==positive'가 아닌 경우, 도 12의 'S500' 과정으로 진입하여 상기 'S500' 내지 'S570' 과정을 재수행하도록 한다.
다음으로, 상술한 것에 따라 도 4의 충돌 진단부(161)가 충돌의 발생 여부를 판단하고, 충돌이 발생한 경우 그 충돌이 본 발명에 따른 3가지 충돌 타입 중 어느 것에 해당하는지를 판단한 후, 그 판단 결과를 수신한 충돌 해결부(165)가 충돌을 해결하는 방법에 대하여 설명한다.
먼저, 본 발명에 따른 미디어 액세스 방법을 간단하게 설명하면 다음과 같다. RFID 리더는 선택한 주파수 대역의 현재 점유 여부와 상관 없이 준비(ready)가 되면 인벤토리 라운드를 개시할 수 있다. 즉, 모바일 RFID에 분리된 채널이 할당되지 않는 한 LBT는 필요하지 않다. 또한, 동일 채널 내에서 전송하는 리더들간에 동기화될 필요가 없다. 즉, 특별한 제어 채널을 확보하지 않아도 본 발명을 적용할 수 있다. 적응형 재전송 대기 시간과 결합되어 충돌 상황에 따른 명령 재전송을 수행하는 것이 본 발명의 중요 사항이다.
도 15는 본 발명의 실시예에 따라 충돌 해결부(165)가 충돌 상황별로 명령을 재전송하는 절차를 도시하는 순서도이다. 도 15에 도시된 절차는 주로 도 4의 상황별 명령 재전송부(1651)에 의해 수행된다. 그리고, 충돌 상황별로 명령을 재전송할 때 적용되는 랜덤 대기 시간을 도 4의 랜덤 대기 시간 계산부(1652)가 계산하여 상황별 명령 재전송부(1651)로 송신한다.
충돌 상황에 따른 명령 재전송의 기본 내용을 설명하면 다음과 같다. 먼저, 멀티 리더 대 태그 충돌 또는 리더 대 리더 충돌이 감지되면 명령이 재전송된다. 그리고, 리더는 충돌이 감지된 후 명령을 재전송하기 전에, 랜덤 시간동안 지연(suspend)해야 한다. RFID 리더에서 명령을 전송하는 동안에는 충돌이 감지되지 않으므로, 명령의 전송이 완료된 후에 충돌 중재를 개시할 수 있다. 즉, 진행중인 명령의 전송은 중간에 인터럽트되지 않는다는 것을 가정한다.
또한, 리더 측에서 예를 들면 T2 타임아웃과 같은 리시버 타임아웃(Receiver Timeout)이 감지되면, 명령이 재전송된다. 리시버 타임아웃은, 예를 들면 유효한 RF 변조, 인코딩, 또는 메시지 구조가 없거나, 통신 채널상에 활동이 없어 태그 상태 머신에 의해 트리거되는 리시버 액티브 시간이 종료하는 것을 의미한다. 리시버 타임아웃이 있으면 리더는 명령을 재전송한다.
본 발명에 따른 충돌 중재(collision arbitration)는 명령을 적어도 한번 재전송함으로써 구현된다. 그리고, 손상된 태그 응답이 반복적으로 수신된다면 복수 회에 걸쳐 명령을 재전송할 수 있다. 후속하는 충돌의 가능성을 감소시키기 위해 충돌이 감지된 후 랜덤 대기 시간동안 리더를 지연시킴으로써 충돌 회피가 구현될 수 있다.
또, 태그가 현재의 응답 슬롯(response slot)으로 이미 분리(separate)된 후에, 즉 태그 ACK(acknowledgement)와 태그 액세스 기간 동안에, 리더에 의해 통신 충돌이 감지되면, 멀티 리더 대 태그 충돌 또는 리더 대 리더 충돌을 해결하기 위해 관련된 명령이 재전송된다.
태그 충돌 조정(anti-collision, 충돌 방지) 단계 동안에, 적절한 수단에 의해 리더가 멀티 리더 대 태그 충돌 또는 리더 대 리더 충돌을 결정할 수 없는 경우에는, 명령은 재전송되지 않을 것이다. 즉, 본 발명의 충돌 진단부(161)와 같이 통신 충돌의 3가지 타입을 구분할 수 있는 충돌 진단 기능을 갖추지 않은 리더는 명령 재전송이 금지될 수 있다. 그 대신, 동일 통신 슬롯에서 응답하는 여러 개의 태그에 의해 발생하는 태그 대 태그 충돌의 경우를 해결하기 위한 일반적인 태그 충돌 조정이 적용된다.
충돌 이후의 재전송 시도 횟수에는 특별한 제한이 없을 수 있고, 응용처에 따라 적절하게 조정하는 것이 가능하다. 계속해서 반복되는 통신 트래픽 문제와 그 결과 초래되는 통신 충돌을 회피하기 위해서는, 충돌이 발생했을 시 실패한 재전송 시도 횟수의 상한을 설정하는 것이 바람직하다.
또한, 리더가 리시버 타임아웃(정해진 시간 내에 태그 응답을 수신하지 못함)을 감지한다면, 한 번만 명령을 재전송한다. 리시버 타임아웃의 경우에, 명령을 반복적으로 재전송하지 않는다는 것은 본 발명에 있어서 중요한 점이다. 대신에, 리시버 타임아웃이 지속하는 경우 일반적인 충돌 조정(anti-collision)이 적용된다. 예를 들어, 멀티 리더 대 태그 충돌로부터 회복하기 위해 명령을 다시 재전송(재발행, reissue)하기 이전에, 리더 영역 내에 있다고 예상되는 아직 감지되지 않은 태그가 있는 경우, 슬롯의 수를 감소시켜서, 리더에 응답하도록 허락된 적어도 하나의 태그가 현재 슬롯에 있다는 것을 확인한다.
또한, 관련된 태그가 명령을 받을 수 있어야만 본 발명에 따른 명령 재전송이 의미가 있다는 것을 고려해야만 한다. 태그가 명령을 받기 용이한 상태, 예를 들면, 리시버 타임아웃으로 인해 내부 상태(internal state)를 변경하지 않는 경우에 명령의 재전송이 의미가 있다. ISO/IEC 18000-6 Type C에 의해 규정된 UHF 에어 인터페이스의 경우에, Reply 상태(state) 또는 Acknowledged 상태에서 T2 타임아웃이 있으면 태그는 Arbitrate 상태로 전환된다. 이 때 T2 이상의 대기 시간 후에 명령을 재전송하더라도 태그 응답이 없기 때문에 그 효과를 기대할 수 없는 것이다.
따라서, 명령에 의해 정해지는 태그의 예상되는 내부 상태가 타임아웃을 초래하지 않거나, 또는 명령 재전송을 위해 선택되는 대기 시간이 에어 인터페이스 사양에서 규정되는 타임아웃의 최소값보다 작은 경우에, 명령을 재전송한다. 리더가 인벤토리 라운드의 이른 단계에서만 랜덤 대기 시간 동안 지연함으로써, 즉 하나 이상의 태그가 이미 분리되었다면 더 이상 랜덤 대기 시간동안 지연하지 않는다는 추가적인 제한을 둠으로써, 이러한 잠재적인 문제점을 자동적으로 미리 해결할 수 있다.
도 15에 도시되어 있는, 충돌 해결부가 충돌 상황별로 명령을 재전송하는 절차를 개략적으로 도시한 순서도를 참조하여 본 발명에 따른 충돌 상황별 명령 재전송에 대해 구체적으로 설명한다.
먼저 단계 S1100에서 리더가 명령을 전송한다. 그리고 리더는 단계 S1102에서 응답을 수신한다. 물론, 단계 S1102는 수신할 응답이 없는 경우나 응답을 수신하지 못하는 경우도 포함한다. 다음으로, 단계 S1104로 진행하여 유효한(valid) 태그 응답이 펜딩(pending)되어 있는지를 판단한다. 유효한 태그 응답이 펜딩되어 있다는 것은, 예를 들어, Query, QueryAdjust, QueryRep 명령의 경우에는 태그가 현재 슬롯에서 응답했어야만 하는 경우를 의미하며, 이 경우 유효한 태그 응답이 펜딩되어 있다고 판단한다. 단계 S1104에서 판단한 결과, 유효한 태그 응답이 펜딩되어 있지 않다고 판단된 경우, 예를 들어 태그 응답을 수신하지 않아도 되는 경우에는 단계 S1106으로 진행한다. 단계 S1104는 다른 방식으로 적용될 수도 있으며, 설계에 따라 생략할 수도 있다.
단계 S1106에서는 리더가 처리할 명령이 더 있는지를 판단한다. 처리할 명령이 더 있는 경우에는 단계 S1108로 진행하여 다음 리더 명령을 전송하고 단계 S1102에서 응답을 수신하며, 처리할 명령이 더 없는 경우에는 단계 S1110으로 진행하여 리더를 중지한다.
한편, 단계 S1104에서 유효한 태그 응답이 펜딩되어 있다고 판단한 경우에는 단계 S1112로 진행한다. 단계 S1112는 본 발명에 따른 충돌 진단부에 의해 충돌의 발생 여부 및 충돌의 타입을 결정하는 충돌 감지(detect, 진단) 단계이다. 충돌 진단부의 판단 결과 충돌이 있는 경우에는 충돌의 발생 여부와 결정된 충돌의 타입을 충돌 해결부로 전송하면서 단계 S1122로 진행하고, 만약 충돌 진단부의 판단 결과 충돌이 없다고 판단되는 경우에는 충돌이 발생하지 않았다는 취지의 신호를 충돌 해결부로 전송하면서 단계 S1114로 진행한다.
먼저, 단계 S1112의 판단 결과, 충돌이 감지되지 않은 경우 진행되는 단계 S1114 이후의 절차를 설명한다. 단계 S1114에서는 리시버 타임아웃인지 여부를 판단한다. 판단 결과, 리시버 타임아웃이 아닌 경우 단계 S1106으로 진행하여 다음 명령을 처리하고, 리시버 타임아웃인 경우 단계 S1116으로 진행한다.
단계 S1116에서는 태그가 이미 분리(separate)되어 있는지 여부를 판단한다. 태그가 분리되었다는 것은, 태그가 현재의 응답 슬롯으로 분리되어 있다는 것을 의미하며, 예를 들면 태그 ACK와 태그 액세스 구간이 이에 해당한다. 단계 S1116에서의 판단 결과, 태그가 아직 분리되어 있지 않다고 판단된 경우에는 본 발명에 따른 명령 재전송을 실행하지 않고 단계 S1124로 진행하여 일반적인 태그 충돌 조정 절차를 수행한다. 즉, 본 발명에 따르면 아직 인벤토리 라운드의 초기 단계에 있는 리더의 경우에는 명령의 재전송을 수행하지 않음으로써, 다른 리더가 먼저 인벤토리 라운드를 완료할 수 있는 가능성을 높여준다.
한편, 단계 S1116에서의 판단 결과, 태그가 이미 분리되었다고 판단된 경우에는 단계 S1118로 진행한다. 단계 S1118에서는 해당 명령을 이미 재전송하였는지를 판단한다. 단계 S1118에서의 판단 결과, 해당 명령을 이미 재전송했다고 판단한 경우에는, 단계 S1124로 진행하여 태그 충돌 조정 절차를 수행한다. 한편, 단계 S1118에서의 판단 결과, 해당 명령을 재전송한 적이 없다고 판단한 경우에는, 단계 S1120으로 진행하여 해당 명령을 재전송한다. 즉, 리더가 리시버 타임아웃을 감지하고 태그가 이미 분리되어 있는 경우 명령을 한 번만 재전송하도록 한다. 이로써, 리시버 타임아웃의 경우에 명령을 반복적으로 재전송하지 않도록 하고, 한 번의 명령 재전송 이후에도 리시버 타임아웃이 있는 경우에는 일반적인 태그 충돌 조정을 수행한다.
한편, 단계 S1112로 되돌아가, 단계 S1112에서의 판단 결과, 충돌이 있다고 판단된 경우에는 충돌 해결부가 충돌의 타입(본 발명에 따른 3가지 충돌 타입 중 하나)을 수신하고, 단계 S1122로 진행한다. 단계 S1122에서는 충돌의 타입에 따라, 단계 S1124로 진행하여 태그 충돌 조정을 수행할지, 단계 S1126 이후를 진행하여 명령 재전송을 수행할 지 여부를 결정한다. 만약, 충돌의 타입이 '태그 대 태그 충돌'이라면 단계 S1124로 진행하여 태그 충돌 조정을 수행한다. 만약, 충돌의 타입이 '멀티 리더 대 태그 충돌' 또는 '리더 대 리더 충돌'인 경우에는 단계 S1126이후의 절차를 수행한다.
충돌의 타입이 '멀티 리더 대 태그 충돌' 또는 '리더 대 리더 충돌'인 경우, 단계 S1126에서는 재전송 횟수가 최대 재전송 횟수에 도달했는지를 판단한다. 최대 재전송 횟수는 설계에 따라 정해진 값이며, 응용에 따라 달라질 수 있다. 최대 재전송 횟수의 제한을 둠으로써 계속적으로 재전송이 반복되는 상황을 방지할 수 있지만, 이 제한이 필수적인 것은 아니다. 단계 S1126에서의 판단 결과, 최대 재전송 횟수에 도달했다고 판단되면, 명령을 재전송하지 않고 단계 S1124로 진행하여 태그 충돌 조정을 수행한다.
만약, S1126에서의 판단 결과, 최대 재전송 횟수에 도달하지 않았다고 판단되면, 절차는 단계 S1128로 진행한다. 단계 S1128에서의 판단 결과, 태그가 이미 분리되었다고 판단되면, 단계 S1120으로 진행하여 리더를 지연시키지 않고 명령을 재전송하며, 태그가 아직 분리되지 않았다고 판단되면, 예를 들어 인벤토리 라운드의 초기 단계인 경우, 단계 S1130으로 진행하여 랜덤 대기 시간을 획득하고 획득한 랜덤 대기 시간만큼 리더를 지연시킨다.
단계 S1130에서는 도 4의 랜덤 대기 시간 계산부(1652)에 의해 랜덤 대기 시간을 계산하여 계산된 랜덤 대기 시간을 획득하고, 획득한 랜덤 대기 시간 만큼 리더를 지연시킨다. 랜덤 대기 시간 계산부(1652)에 의해서 수행되는 랜덤 대기 시간의 계산 방법에 대해서는 뒤에서 자세히 설명한다. 단계 S1130의 수행에 의해 랜덤 대기 시간만큼 지연된 리더는 단계 S1120으로 진행하여 명령을 재전송하고 단계 S1102로 복귀하여 응답을 수신한다. 도 15를 참조하여 설명한 절차는 예시적인 것이며 본 발명의 본질을 벗어나지 않는 범위에서 일부의 변형 및 생략이 가능하다.
도 16은 도 15를 참조하여 설명한 충돌 해결 알고리즘의 의사 코드 표현(pseudo-code notation)으로서, C 언어에서 사용하는 방식과 유사하게 작성된 것이다. 본 의사코드 표현은 ISO/IEC 18000-6 Type C에서 정한 에어 인터페이스 사양으로 규정되는 모바일 RFID 리더의 개념과 용어들을 위주로 사용하여 작성되었다. 제시된 코드는 예시적인 설명을 위한 것이며, 본 발명의 범위를 제한하는 것이 아니다. 도 16은 참고를 위한 것으로서, 도 15에 도시된 절차를 코드로 표현한 것이기 때문에 자세한 설명은 생략한다. 당업자라면 본 발명의 설명을 참조하여 쉽게 이해할 수 있을 것이다. 리더가 항상 활성화되어 있다고 가정한 코드이며, anticollision() 함수는 종래의 에어 인터페이스 사양의 충돌 중재 매커니즘을 나타내는 것이다. 물론, anticollision()을 수행하기 위해서는, 예를 들어 슬롯수가 1보다 커야 한다는 등의 몇 가지 전제조건을 체크함으로써, 리시버 타임아웃의 경우에 QueryAdjust 또는 QueryRep와 같은 추가적인 인벤토리 명령을 발행하는 것이 가능하다.
도 17 내지 도 19는 본 발명의 실시예에 따라 각 충돌 상황에 따른 충돌 해결 방법을 설명하기 위한 예시적인 타이밍도이다. 통신 충돌 및 랜덤 대기 시간 선택을 포함하는 ISO/IEC 18000-6 Type C 명령 및 응답 시퀀스의 일련의 예시를 나타내며, 제시된 예시는 모든 가능한 시나리오 중에서 선택된 일부의 예이다. 두 개의 리더(R1과 R2)와 하나의 태그(T) 사이에 충돌이 발생하는 경우의 랜덤 지연 시간 적용을 예로 들고 있다.
본 발명에서는 모바일 RFID 환경에서 동시에 발생하는 명령 전송의 단점을 완화시키기 위해서, 랜덤 대기 시간을 도입했으며, 이를 TR로 표시한다. 두 개의 경쟁하는 RFID 리더가 순환되는 (재)전송 시도를 하여 서로를 방해하는 경우 발생하는 문제를 피하기 위해, 실패한 메시지 전송과 그 재전송 사이에서 랜덤 대기 시간을 적용한다. 도 15을 참조하여 일부 설명했지만, 랜덤 대기 시간을 적용하기 위한 전제 조건이 만족되는 경우에만 랜덤 대기 시간이 적용된다.
또, 현재 충돌의 타입을 정확하게 결정할 수 없거나, 리더에 충돌 진단 기능이 갖추어지지 않았다면, 랜덤 대기 시간을 적용하기 위한 모든 전제 조건이 만족된 상태에서, 태그 충돌 조정의 절차에 지정된 두 개의 연속하는 인벤토리 명령 사이, 예를 들면 ISO/IEC 18000-6 Type C의 경우 Query와 QueryAdjust 사이에서, 랜덤 대기 시간을 적용할 수도 있다.
먼저, 도 17은 멀티 리더 대 태그 충돌이 발생한 경우 랜덤 대기 시간을 적용하는 시퀀스를 도시한다. 리더(R1)는 Select 명령과 Query 명령을 발행하고 태그로부터 Rn16 응답을 수신하였다. 리더(R1)는 하나의 태그를 이미 싱귤레이트했고, 리더(R2)는 어떠한 태그도 싱귤레이트하지 못하고 있는 상태이다. 그리고 리더(R1)가 ACK 명령을 전송했으나 동시에 전송된 리더(R2)의 Select 명령과 충돌이 발생하였다. 충돌이 발생했을 때 리더(R1)는 이미 태그(T)를 분리한 상태이다. 따라서, 리더(R1)는 ISO/IEC 18000-6 Type C의 타이밍 규약에 따라 최종 명령(ACK)을 즉시 재전송하고, 리더(R2)는 랜덤 대기 시간(TR)동안 지연된다. 여기서, T3는 리더가 다른 명령을 발행하기 전에 T1이후 대기하는 시간을 의미한다.
도 15의 절차를 참조하여 설명하면, 리더(R2)는 단계 S1112, S1122, S1126, S1128, S1130, S1120을 순서대로 수행하여 랜덤 대기 시간 동안 리더를 지연시킨 후 명령을 재전송한 것이다. 이로써, 리더(R1)는 PC+UII+CRC16으로 이루어진 태그 응답을 성공적으로 수신할 수 있게 되고, 멀티 리더 대 태그 충돌이 해결된다.
다음으로, 도 18은 인벤토리 라운드의 초기 단계에서 두 개의 리더가 충돌하는 리더 대 리더 충돌을 도시한다. 리더(R1)가 Select 명령과 Query 명령을 발행한 후 두 개의 태그가 모두 태그를 싱귤레이트하지 못한 상태에서, 태그(T)의 응답 Rn16과 리더(R2)의 명령 Select 및 Query가 충돌하여 리더 대 리더 충돌이 발생하였다.
따라서, 리더(R1)와 리더(R2)는 둘 다 랜덤 대기 시간(TR) 동안 지연되며 리더(R1)는 이후 QueryAdjust 명령과 ACK 명령을 전송하고 Rn16과 PC+UII+CRC16의 응답을 성공적으로 수신할 수 있게 되고, 리더 대 리더 충돌이 해결된다.
또한, 도 19는 리더 대 리더 충돌이 발생했을 때 리더(R1)가 이미 태그를 분리할 정도로 진행한 경우, 수행되는 시퀀스를 도시한다. 리더(R1)는 하나의 태그를 이미 싱귤레이트했고, 리더(R2)는 어떠한 태그도 싱귤레이트하지 못하고 있는 상태에서 리더 대 리더 충돌이 발생했다. 이 특별한 경우에, 리더(R1)는 T2후에 ACK를 재전송하고, 리더(R2)는 TR동안 지연됨으로써, 리더 대 리더 충돌이 해결된다.
다음으로, 어느 경우에 랜덤 대기 시간을 적용할 지에 대해서 추가적으로 설명한다. 일반적으로 RFID 리더는 셀렉트, 인벤토리, 액세스의 3개의 단계를 갖는다. 만약 현재의 인벤토리 패스(pass)에서 어떠한 태그도 아직 애크날리지(acknowledge)되지 않았고(태그가 싱귤레이트(singulate)되었고 ACK를 전송했으나 응답을 수신하지 못함) 인벤토리되지 않았다면, 태그 셀렉트 단계 또는 태그 인벤토리 단계 동안에 명령을 재전송하기 전에 랜덤 대기 시간 동안 리더가 지연된다. 여기서, 싱귤레이션(singulation)은 태그의 UII를 읽기 위해 점유되지 않은 응답 슬롯으로 태그를 강요(force)함으로써 태그를 분리(separation)하는 절차를 의미한다. 한편, 리더는 태그 액세스 동안에는 지연되지 않는다.
랜덤 대기 시간은, 디폴트로 적용되지는 않고, 리더가 인벤토리 라운드의 초기 단계에 있는 경우에만 적용된다. 즉, 태그를 아직 분리하지 않은 경우에만 적용된다. 그렇지 않으면, 두 충돌하는 리더는 충돌 후에 둘 다 자동적으로 지연되고 짧은 전송 브레이크 후에 거의 병렬적으로 계속해서 명령을 발행할 수 있게 되고, 이는 충돌(후속 충돌)을 재차 발생시킬 것이다. 대신에, 두 리더 중 하나만이 블록되고, 충분한 시간동안 지연된다면, 그 동안 다른 리더는 최종 명령을 재전송할 수 있고, 그 동안 모든 인벤토리 라운드를 종료할 수 있게 된다.
이러한 방법에 의해, 본 발명에 따른 재전송 패턴이 중첩될 가능성을 줄일 수 있고, 더 오래된(older) 인벤토리 라운드가 더 신규의(newer) 인벤토리 라운드보다 일반적으로 먼저 종료할 수 있게 되어 공정한 대기 전략을 실시할 수 있게 한다.
다음으로 본 발명의 실시예에 따라 도 4의 랜덤 대기 시간 계산부(1652)가 랜덤 대기 시간을 계산하는 절차에 대해서 설명한다. 랜덤 대기 시간(TR)은 성능을 최대화시키고 후속 충돌의 가능성을 최소화시킬수 있도록 선택되어야 한다. 따라서 평균적으로 양호한 결과를 달성할 수 있도록, 대기 시간은 최소 재전송 대기 시간(MinWaitTime)과 최대 재전송 대기 시간(MaxWaitTime)으로 정의되는 범위에서 랜덤하게 선택되고 이것이 랜덤 대기 시간으로서 결정된다.
랜덤 대기 시간은 Fmin(MinWaitTime) 과 Fmax(MaxWaitTime)로 규정되는 기준값 사이의 랜덤 정수를 선택할 수도 있고, Fmin과 Fmax에 의해 주어지는 값 사이의 시간 값에 대응하는 클록 사이클의 개수에 대응하는 정수값을 선택할 수도 있다.
한편, 프로토콜 데이터 유닛(PDU; Protocol Data Unit)이 중첩될 수 있는 시간을 경쟁 구간(CP; Contention Period)이라고 한다. 프로토콜 데이터 유닛은 데이터가 전송될 때 일정 크기의 데이터 블록을 의미하며, RFID 리더 또는 RFID 태그에 의해 전송되는 모든 종류의 데이터 패키지로서, 리더 명령 및 태그 응답을 포함한다. 경쟁 구간 동안 리더 명령 또는 태그 응답은 취약하며 간섭으로 인해 파괴될 수 있다. 태그 인벤토리 동안에 발행되는 전형적인 명령 시퀀스 또는 단일 프로토콜 데이터 유닛의 취약성을 감소시키기 위해서, 프로토콜 데이터 유닛의 지속시간(duration)에 비례하여 랜덤 대기 시간을 선택하는 것이 바람직하다.
먼저, 랜덤 대기 시간의 하한(lower threshold)인 최소 재전송 대기 시간, 즉 MinWaitTime(Fmin)은 다음의 식에 의해 계산된다.
MinWaitTime = c*duration(longestExpectedPDU)
여기서 c는 실제 응용 및 환경에 따라 설정될 수 있는 상수값(동적으로 변경 가능)이고, 'duration'은 선택된 링크 속도(link rate)로 에어 인터페이스 상에서 어떤 프로토콜 데이터 유닛을 전송하는 데 필요한 시간을 반환하는 함수이다. 앞으로는 c를 '대기 시간 파라미터'라고 칭한다. 대기 시간 파라미터 c는 고정값일 수도 있고 동적으로 변경되는 값일 수도 있다. 대기 시간 파라미터 c를 고정한다면 정적인 재전송 대기 시간을 연산할 수 있게 되고, 예를 들면 c=1일 수 있다. longestExpectedPDU는 '예상 최장 프로토콜 데이터 유닛'으로서, 예를 들면 도 20에 도시된 PC+UII+CRC16 태그 응답이다.
이와 같은 방법으로 랜덤 대기 시간의 하한(최소 재전송 대기 시간)을 결정하기 때문에, 만약 두 개의 경쟁하는 리더(R1과 R2)가 동일한 링크 속도를 사용하고 계산된 랜덤 대기 시간의 하한이 동일하다면, 통신 충돌로 인한 그 인벤토리 명령을 R2가 랜덤 지연 후에 재전송하는 경우, 동일한 프로토콜 데이터 유닛에 의해 후속 충돌이 발생하지 않을 것이라는 것을 보증할 수 있게 된다.
도 20은 본 발명의 실시예에 따른 최소 재전송 대기 시간의 의미를 설명하기 위한 타이밍도이다. 도 20에서는 예상 최장 프로토콜 데이터 유닛이 ACK 명령에 대한 태그 응답이라고 가정했을 경우를 설명한다. 여기서 리더(R1)는 이미 태그(T)를 현재 응답 슬롯으로 싱귤레이트했지만, 태그 응답과 충돌하는 Query 명령을 발행한 리더(R2)로 인해 리더(R1)가 태그를 애크날리지하는데 실패했다. 일반적으로 태그가 충돌시에 전송을 중단하지 않기 때문에, 후속 충돌을 회피하기 위해서는, 적어도 태그(T)가 PC(Protocol control), UII(Unique Item Identifier), 및 CRC16(Cyclic Redundancy Check 16)으로 이루어진 ACK에 대한 응답을 전송하는 동안은 리더(R2)가 지연될 필요가 있고 도 20에서는 리더(R2)가 최소 재전송 대기 시간만큼 지연되어 명령을 재전송하는 경우를 나타내고 있다. 리더(R1)에 의해 발행되는 다른 명령과 후속 충돌이 여전히 발생할 수 있지만, 최대 재전송 대기 시간을 최소 재전송 대기 시간보다 매우 큰 값으로 설정하게 되면 이러한 문제점을 최소화시킬 수 있을 것이다.
해당 리더가 어떤 명령을 지원하는지(강제(mandatory) 명령, 옵션 명령)에 따라 그리고 실제 응용(인벤토리만 또는 인벤토리+태그 액세스)에 따라, 예상 최장 프로토콜 데이터 유닛은 리더마다 달라질 수 있다. 재전송 대기 시간의 상한 또는 하한을 계산할 때, 리더는 다음 인벤토리 라운드에서 송신 또는 수신할 최장 프로토콜 데이터 유닛 및 사용하는 에어 인터페이스 사양에 의해 지원되는 최장 강제 명령을 항상 참조하는 것이 바람직하다.
리턴 링크(태그 응답)에서 전송되는 프로토콜 데이터 유닛에 관하여, 예를 들어 Query 명령을 발행함으로써 인벤토리 라운드 동안에 리더가 읽는 리턴 링크 속도를, 예상 최장 프로토콜 데이터 유닛의 결정을 위해 사용할 수 있다. 예를 들면 UII의 백스캐터와 같이, 수신할 비트수를 미리 알 수 없더라도, 현재 응용에 있어서 가능한 최대 비트수는 예상할 수 있다. 이것은 예를 들어, 에어 인터페이스 사양이 지원하는 태그 백스캐터의 최대 길이가 더 크더라도, 현재 응용이 UII 길이를 96 비트까지 지원한다면, 예상 최장 PDU를 결정하는데 96비트를 넘어서는 값은 사용하지 않을 수 있다는 것을 의미한다.
다음으로, 랜덤 대기 시간의 상한(upper threshold)인 최대 재전송 대기 시간, 즉 MaxWaitTime(Fmax)은 다음의 식에 의해 계산된다.
MaxWaitTime = c*duration(Select+T4+Query+T1+RN16+T2+ACK+T1+UII)
여기서 c는 최소 재전송 대기 시간의 계산에서 사용된 대기 시간 파라미터이고, T1은 리더 전송으로부터 태그 응답까지의 시간이며, T2는 태그 응답으로부터 리더 전송까지의 시간이고, 예를 들어 ISO/IEC 18000-6 사양에 정해진 값을 따른다. 위 식의 예에서는 리더가 Select 명령을 전송하고 T4의 시간 이후 Query 명령을 전송하며, 태그가 T1의 시간 이후 RN16을 응답하고, 리더가 T2의 시간 이후 ACK 명령을 전송하며, 태그가 T1의 시간 이후 UII를 응답한다. UII는 앞에서 설명한 것처럼 PC, UII, 및 CRC16을 포함한다.
최대 재전송 대기 시간 식에서 사용된 duration 함수에 의해 반환되는 결과는 다음 인벤토리 라운드에서 리더가 사용할 포워드 및 리턴 링크 속도 및 ACK 명령에 대한 태그 응답의 예상 길이에 따라 달라진다. 최소 재전송 대기 시간에 대해 설명한 것과 마찬가지로, 태그에 의해 백스캐터될 UII의 길이를 결정하기 위해 현재 응용에서 가능한 최대 비트수를 예상하여 사용할 수 있다. 최대 재전송 대기 시간 계산 식에서 사용된 'Select + T4 + Query + T1 + RN16 + T2 + ACK + T1 + UII'는 예시적인 것으로서, '리더 명령과 태그 응답의 총 예상 소요시간'에 대응되는 값이다. 사용하는 에어 인터페이스 사양 및 응용에 따라 이 값은 달라질 수 있다. 만약, 태그 액세스가 수행된다면, 관련된 추가적인 리더 명령과 태그 응답을 최대 재전송 대기 시간을 계산하는 데 사용한다.
도 21은 본 발명의 실시예에 따른 최대 재전송 대기 시간의 의미를 설명하기 위한 타이밍도이다. 도 21에서는 예상되는 셀렉트 및 인벤토리 단계의 길이가 'Select + T4 + Query + T1 + RN16 + T2 + ACK + T1 + UII'에 의해 결정된다고 가정했을 경우를 설명한다. 최대 재전송 대기 시간 식에 따라 결정된 기준값이 리더(R1)와 리더(R2) 사이의 충돌을 잠재적으로 해결할 수 있다는 것을 보여준다.
도 22는 ISO/IEC 18000-6 Type C 환경에서의 타이밍 테이블이고, 링크 속도와 명령 길이에 따라 MinWaitTime과 MaxWaitTime을 계산하는 예를 본 타이밍 테이블을 참조하여 설명한다. 최소 재전송 대기 시간 및 최대 재전송 대기 시간은 사용하는 링크 속도와 전송할 프로토콜 데이터 유닛에 따라 결정된다. 테이블에서는 data0(02)에 대해서는 Tari=25㎲, data1(12)에 대해서는 1.5*Tari의 심볼 길이에 근거하여 포워드 링크 속도를 가정할 때, 모든 관련된 프로토콜 데이터 유닛의 타이밍을 열거하고 있다. 또한, 40kbit/s의 FM0 인코딩된 데이터가 리턴 링크되는 것으로 가정하였다. 이 값들은 예시적인 것이며, 사용하는 에어 인터페이스에 따라 달라질 수 있다.
예를 들어, 최소 재전송 대기 시간 MinWaitTime은, c * duration (longestExpectedPDU) = c * duration (UII) = c*3350 으로 계산된다. c가 1인 경우에 최소 재전송 대기 시간은 3350㎲이다. 또한, 최대 재전송 대기 시간 MaxWaitTime은, c * duration (Select+T4+Query+T1+RN16+T2+ACK+T1+UII) = c*(1375.0+125.0+962.5+250.0+550.0+75.0+662.5+250.0+3350.0) = c*7600 으로 계산된다. c가 1인 경우에 최대 재전송 대기 시간은 7600㎲이다. 본 예에서는 태그 액세스 단계가 없는 것을 가정한 것이고, 태그 액세스가 수행된다면, 관련된 추가적인 리더 명령과 태그 응답을 최소 재전송 대기 시간과 최대 재전송 대기 시간을 계산하는 데 사용할 수 있다.
다음으로, 본 발명의 실시예에 따른 적응형 재전송 대기 시간 계산에 관하여 설명한다. 위에서 설명한 최소 재전송 대기 시간 및 최대 재전송 대기 시간 식에서 사용된 대기 시간 파라미터 c값을 적응적으로 변경함으로써, 실제 응용에서의 요구 사항을 최상으로 만족시키고, 실제 응용 시나리오에 따라 성능과 이후의 충돌 사이에서 최상의 밸런스를 찾기 위해, 대기 시간 파라미터 c가 재전송 대기 기준값의 하한과 상한에 곱해짐으로써 랜덤 대기 시간을 튜닝하는데 사용한다. 여기서, '재전송 대기 기준값'은 위에서 설명한 최소 재전송 대기 시간 및 최대 재전송 대기 시간 식에서 c에 곱해지는 값으로서, 최소 재전송 대기 시간에 있어서 예상 최장 프로토콜 데이터 유닛에 필요한 시간이 재전송 대기 기준값의 하한이고, 최대 재전송 대기 시간에 있어서 리더 명령과 태그 응답의 총 예상 소요시간이 재전송 대기 기준값의 상한이다.
최소 재전송 대기 시간과 최대 재전송 대기 시간 식에서 사용되는 대기 시간 파라미터 c는 각 인벤토리 라운드의 시작에서는 1.0 이상의 값(c >= 1.0)을 갖는 초기값으로 설정될 수 있고, 태그가 리더에 의해 애크날리지될 때까지는 감소하지 않는다. 이는, 실제 집단(population)의 하나 이상의 태그를 이미 인벤토리 및 액세스하고 있을지 모르는 근처의 리더를 보호하고, 해당 리더에 의해 발생할 충돌 가능성을 감소시키기 위해서 바람직하다.
태그가 리더에 의해 성공적으로 감지된 후에는, 추가적인 제한 없이 남은 인벤토리 라운드 기간 동안 대기 시간 파라미터 c를 변경할 수 있다. 즉, 대기 시간 파라미터 c는 사용자의 판단에 따라 언제든지 증가 또는 감소될 수 있다. 만약 대기 시간 파라미터 c값을 고정한다면 정적 재전송 대기 시간 연산을 할 수 있다.
이 때, 각 인벤토리 라운드의 시작에서는 c 값을 제한함으로써, 재전송 대기 시간에 대한 최초 기준값을 제한하는 것은 채널 이용에 대한 공정한 절차를 수행하는데 도움이 된다. 태그 집단 중에서 하나 이상의 태그를 이미 감지하려고 하고 있는 리더는 그 인벤토리 라운드를 종료하기 위해 작은 대기 시간을 갖게 되고, 그 동안 활성화된 새로운 리더는 최초 c값에 해당하는 디폴트 설정을 사용하도록 되고, 낮은 듀티 사이클을 갖게 된다.
에어 인터페이스 사양에 따라서 사용자가 링크 속도를 규정할 수 있기 때문에, 두 개의 경쟁하는 리더가 서로 다른 링크 속도로 동작할 수 있다. 이 경우 리더(R1)와 리더(R2)에 의해 계산되는 최소 및 최대 재전송 대기 시간 사이에 차이가 있을 수 있다. 따라서, 재발하는(recurrent) 후속 충돌의 경우에 파라미터 c를 조정하는 것이 필요하다. 반대로, 관찰되는 충돌의 수가 계속 작게 유지된다면, 전체 성능의 향상을 위해 동일한 파라미터를 사용할 수도 있다. 인벤토리 라운드 동안에 대기 시간 파라미터 c를 변경하는 방법에 관해서 이하에서 상세히 설명한다.
도 23은 대기 시간 파라미터 c를 현재 충돌 비율에 따라 동적으로 변경하는 절차를 도시하는 순서도이다. 대기 시간 파라미터 c는 최소 재전송 대기 시간 및 최대 재전송 대기 시간의 계산에 사용되는 파라미터로서, 재전송 대기 기준값(threshold)에 곱해지는 값이다. 현재 충돌 비율(collision percentage)은 예를 들어 리더의 명령당 충돌의 평균 횟수이다.
단계 S1900은 새로운 인벤토리 라운드의 시작을 의미한다. 인벤토리 라운드가 시작되면 단계 S1902에서 대기 시간 파라미터 c를 초기값으로 설정한다. 본 예에서는 c의 초기값을 1.0으로 설정한다. 이 초기값은 적어도 하나의 태그가 애크날리지될때까지는 변경되지 않는다.
다음으로, 단계 S1904로 진행하여 태그가 애크날리지되었는지 여부를 판단한다. 단계 S1904에서의 판단 결과 태그가 아직 애크날리지되지 않았다면 단계 S1902로 복귀하여 대기 시간 파라미터 c를 초기값으로 유지 또는 초기값으로 리셋한다. 단계 S1904에서의 판단 결과 태그가 애크날리지 되었다면 단계 S1906으로 진행한다. 단계 S1906에서는 현재의 충돌 비율(percentage)이 충돌 비율 기준값(threshold) 미만인지 여부를 판단한다. 단계 S1906에서의 판단 결과 현재의 충돌 비율이 충돌 비율 기준값 미만이라면, 단계 S1908로 진행하여 대기 시간 파라미터 c값을 파라미터 변경 팩터 f 만큼 감소시킨다. 즉, 첫 번째 태그 감지(애크날리지) 후에, 충돌 비율이 미리 정의된 기준값보다 낮다면 성능 향상을 위해 팩터 f만큼 c를 감소시킨다.
단계 S1906에서의 판단 결과 현재의 충돌 비율이 충돌 비율 기준값 미만이 아니라면 단계 S1910으로 진행하여 현재의 충돌 비율이 충돌 비율 기준값을 초과하는지 여부를 판단한다. 만약, 충돌 비율이 미리 정의된 기준값보다 높다면 단계 S1912로 진행하여 c를 팩터 f만큼 증가시켜서, 평균 재전송 대기 시간을 연장시킴으로써 후속 충돌 확률을 감소시킨다. 파라미터 변경 팩터 f의 값은 실제 상황에 따라 달라질 수 있고, 응용의 필요에 맞도록 선택되어야 한다. 일반적으로 파라미터 변경 팩터 f를 0.1부터 1.0 사이의 값으로 할 수 있고, 고정값이 아닌 동적으로 변경되는 값으로 하는 것도 가능하다.
만약, 단계 S1910에서의 판단 결과 충돌 비율이 충돌 비율 기준값을 초과하지 않는다면(충돌 비율이 기준값과 같다면) c를 변경시키지 않고 단계 S1904로 복귀한다. 본 실시예에서 언급하는 충돌 비율 기준값은 실제 응용 시나리오에 따라 달라진다. 예를 들어, 버스 정류장과 같이 가까이에 위치한 모바일 RFID 사용자의 수가 클 것이 예상되는 경우 기준값을 크게 설정할 수 있고, 예를 들어 가정에서 RFID를 사용하는 경우와 같이 사용자의 수가 작을 것이 예상되는 경우 기준값을 작게 설정할 수 있다. 일반적으로 "충돌 비율(collision percentage)"이라는 용어는 간섭으로 인해 놓친, 즉 리더가 성공적으로 복호화하지 못한 태그 응답의 비율을 나타낸다고 할 수 있다.
도 24는 도 23의 절차를 확장한 것으로서 대기 시간 파라미터 c를 현재 충돌 비율 및 타임아웃 비율에 따라 동적으로 변경하는 절차를 도시하는 순서도이다. 본 실시예에서는 리시버 타임아웃 비율(응답되지 않은(unanswered) 리더 명령의 비율)을 미리 정의된 타임아웃 비율 기준값과 결합하여 사용하는 것을 설명한다. 현재의 충돌 상황에 따라 재발하는 리시버 타임아웃이 있는 경우에, 대기 시간 파라미터 c를 동적으로 증가시키거나 리셋한다.
도 24에서 나타내는 모든 조건은 리더 측을 참조하고 있다. 예를 들어, "단계 S2006의 'Collision Visible?'(충돌이 관찰가능한가?)은 수신한 비트 스트림을 평가하여 리더에서 충돌을 감지할 수 있다는 것을 의미한다. 이는 태그 측에서만 밝혀낼 수 있는 멀티 리더 대 태그 충돌을 포함하지 않는 것이다. 추가적으로, 리더측에서 나타나는 리시버 타임아웃은 항상 현재 응답 슬롯에 매칭되는 태그가 없어서만 발생하는 것이 아니라, 숨겨진 멀티 리더 대 태그 충돌을 나타낼 수도 있다는 것을 고려해야 한다. 따라서 본 실시예에서는 단계 S2018의 '타임아웃 비율이 기준값을 초과했는가?' 조건과 단계 S2012의 '충돌 비율이 기준값을 초과했는가?' 조건이 유기적으로 결합되어 있다.
'타임아웃 비율(percentage)'은 응답되지 않은 리더 명령의 비율을 나타낸다. 예를 들어, 리더가 4개의 명령을 전송하고, 그 중 2개에 대해서만 (유효 또는 무효의) 응답을 수신했다면, 타임아웃 비율은 0.5이다. Select와 같이 태그 응답을 필요로 하지 않는 명령은 타임아웃 비율을 계산하는데 사용되지 않는다. 타임아웃 비율 기준값은 실제 응용에 따라 달라지고 시나리오마다 달라지게 된다.
본 실시예는, 리시버 타임아웃이 관찰됐을 때 충돌이 이미 그 정점에 도달해 있다면, 리시버 타임아웃으로 인한 재전송이 현재의 충돌 상황을 더 이상 악화시키지는 않는다는 것을 보증한다. 또한, 현재의 타임아웃 비율이 타임아웃 비율 기준값 아래로 내려가면 대기 시간 파라미터 c는 프로토콜 성능을 위해서 그 초기값으로 다시 리셋된다. 본 실시예에서의 용어 '충돌'은 모든 형태의 충돌을 의미하고, 본 발명에 따른 3가지 충돌 사이에 어떠한 차이도 발생시키지 않는다.
도 24에서, 단계 S2000은 새로운 인벤토리 라운드의 시작을 의미한다. 인벤토리 라운드가 시작되면 단계 S2002에서 대기 시간 파라미터 c를 초기값으로 설정한다. 본 예에서는 c의 초기값을 1.0으로 설정한다. 이 초기값은 적어도 하나의 태그가 애크날리지될때까지는 변경되지 않는다.
다음으로, 단계 S2004로 진행하여 태그가 애크날리지되었는지 여부를 판단한다. 단계 S2004에서의 판단 결과 태그가 아직 애크날리지되지 않았다면 단계 S2002로 복귀하여 대기 시간 파라미터 c를 초기값으로 유지한다. 단계 S2004에서의 판단 결과 태그가 애크날리지 되었다면 단계 S2006으로 진행한다. 단계 S2006에서는 충돌이 관찰 가능(visible)한지 여부를 판단한다. 즉, 수신한 비트 스트림을 평가하여 리더에서 충돌을 감지할 수 있는지를 판단한다. 만약, 충돌이 관찰 가능하다고 판단되면 단계 S2008로 진행하여 현재의 충돌 비율이 충돌 비율 기준값 미만인지 여부를 판단한다. 단계 S2008에서의 판단 결과 현재의 충돌 비율이 충돌 비율 기준값 미만이라면, 단계 S2010으로 진행하여 대기 시간 파라미터 c값을 파라미터 변경 팩터 f 만큼 감소시킨다.
단계 S2008에서의 판단 결과 현재의 충돌 비율이 충돌 비율 기준값 미만이 아니라면 단계 S2012로 진행하여 현재의 충돌 비율이 충돌 비율 기준값을 초과하는지 여부를 판단한다. 만약, 충돌 비율이 미리 정의된 기준값보다 높다면 단계 S2014로 진행하여 c를 팩터 f만큼 증가시켜서, 평균 재전송 대기 시간을 연장시킴으로써 후속 충돌 확률을 감소시킨다. 만약, 단계 S2012에서의 판단 결과 충돌 비율이 충돌 비율 기준값을 초과하지 않는다면(충돌 비율이 기준값과 같다면) c를 변경시키지 않고 단계 S2006으로 복귀한다.
한편, 단계 S2006에서의 판단 결과 충돌이 관찰 가능하지 않다고 판단된 경우, 단계 S2016으로 진행하여 타임아웃이 관찰 가능한지 여부를 판단한다. 타임아웃이 관찰 가능하지 않은 경우에는 단계 S2002로 진행하여 c를 초기값으로 리셋하지만, 타임아웃이 관찰 가능한 경우에는 단계 S2018로 진행하여, 타임아웃 비율이 미리 정의된 타임아웃 비율 기준값을 초과했는지 여부를 판단한다. 단계 S2018에서, 타임아웃 비율이 기준값 이하라고 판단되면 단계 S2002로 복귀하지만, 타임아웃 비율이 기준값을 초과했다고 판단되면 단계 S2012로 진행하여 충돌 비율과 기준값을 비교한다. 이러한 절차를 인벤토리 라운드마다 반복하여 실행함으로써, 재전송 대기 시간을 적응적으로 변경 설정할 수 있게 된다.
위에서 설명한 본 발명의 모바일 RFID 리더에 관한 에어 인터페이스 사양은 정적(static) RFID 리더에 사용하기 위해 개발된 종래의 에어 인터페이스 사양에 결합되어 적용될 수도 있다. 본 발명은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
본 발명은 모바일 RFID 시스템에 사용됨으로써 충돌의 가능성을 감소시키고 충돌이 발생했을 때 충돌 발생 원인을 파악하고 그 원인 및 양상에 따라 적응적으로 충돌 해결을 할 수 있음으로써 모바일 RFID의 저변 확대에 크게 기여할 것이다.
도 1 내지 도 3은 본 발명에 따른 충돌 타입 상황을 도시한 예시도,
도 4 는 본 발명에 따른 RFID 리더의 구성을 설명하는 블록도,
도 5 내지 도 11은 본 발명에 따른 RFID 리더의 동작을 설명하는데 참조되는 예시도,
도 12 내지 도 14는 본 발명에 따른 RFID 리더에 대한 동작 흐름을 도시한 순서도,
도 15는 본 발명의 실시예에 따라 충돌 해결부가 충돌 상황별로 명령을 재전송하는 절차를 도시하는 순서도,
도 16은 도 15를 참조하여 설명한 충돌 해결 알고리즘의 의사 코드 표현,
도 17 내지 도 19는 본 발명의 실시예에 따라 각 충돌 상황에 따른 충돌 해결 방법을 설명하기 위한 예시적인 타이밍도,
도 20은 본 발명의 실시예에 따른 최소 재전송 대기 시간의 의미를 설명하기 위한 타이밍도,
도 21은 본 발명의 실시예에 따른 최대 재전송 대기 시간의 의미를 설명하기 위한 타이밍도,
도 22는 ISO/IEC 18000-6 Type C 환경에서의 타이밍 테이블,
도 23은 대기 시간 파라미터 c를 현재 충돌 비율에 따라 동적으로 변경하는 절차는 도시하는 순서도, 그리고
도 24는 대기 시간 파라미터 c를 현재 충돌 비율 및 타임아웃 비율에 따라 동적으로 변경하는 절차는 도시하는 순서도이다.
Claims (20)
- 하나 이상의 태그와 신호를 송수신 할 수 있는 RF 통신부로부터의 송신신호에 대응하여 설정된 수신시간 동안에 수신된 수신신호의 데이터를 분석하여, 상기 수신신호의 충돌발생 여부를 확인하고, 수신 신호 데이터의 분석 결과에 따라 충돌 타입을 진단하는 충돌 진단부;상기 충돌 진단부로부터 수신한 충돌발생 여부 및 충돌 타입에 근거하여 명령을 재전송할지 여부를 판단하는 상황별 명령 재전송부; 및명령의 재전송을 위한 랜덤 대기 시간을 계산하는 랜덤 대기 시간 계산부를 포함하며,상기 랜덤 대기 시간 계산부는, 재전송 대기 기준값의 하한 및 상한과 대기 시간 파라미터를 곱한 값에 대응하여 결정되는 최소 재전송 대기 시간과 최대 재전송 대기 시간 사이에서, 랜덤하게 랜덤 대기 시간을 선택하며, 상기 대기 시간 파라미터는 동적으로 변경 가능한, 적응형 재전송 대기 시간을 계산하는 RFID 리더 장치.
- 청구항 1에 있어서,상기 재전송 대기 기준값의 하한은 예상 최장 프로토콜 데이터 유닛(longestExpectedPDU)에 필요한 시간인 것을 특징으로 하는 RFID 리더 장치.
- 청구항 2에 있어서,상기 예상 최장 프로토콜 데이터 유닛은 PC, UII, 및 CRC16이 결합된 프로토콜 데이터 유닛인 것을 특징으로 하는 RFID 리더 장치.
- 청구항 1에 있어서,상기 재전송 대기 기준값의 상한은 리더 명령과 태그 응답의 총 예상 소요시간인 것을 특징으로 하는 RFID 리더 장치.
- 청구항 4에 있어서,상기 리더 명령과 태그 응답의 총 예상 소요시간은 셀렉트 및 인벤토리 단계의 총 예상 소요시간인 것을 특징으로 하는 RFID 리더 장치.
- 청구항 1에 있어서,상기 랜덤 대기 시간 계산부는, 상기 대기 시간 파라미터를 인벤토리 라운드가 시작되는 경우 미리 정의된 초기값으로 설정하는 것을 특징으로 하는 RFID 리더 장치.
- 청구항 1에 있어서,상기 랜덤 대기 시간 계산부는, 태그를 애크날리지할 때까지는 상기 대기 시간 파라미터를 감소시키지 않는 것을 특징으로 하는 RFID 리더 장치.
- 청구항 1에 있어서,상기 랜덤 대기 시간 계산부는, 상기 대기 시간 파라미터를 인벤토리 라운드 동안에 동적으로 변경가능한 것을 특징으로 하는 RFID 리더 장치.
- 청구항 1에 있어서,상기 랜덤 대기 시간 계산부는, 현재 충돌 비율이 충돌 비율 기준값 미만이라고 판단한 경우, 상기 대기 시간 파라미터를 파라미터 변경 팩터만큼 감소시키는 것을 특징으로 하는 RFID 리더 장치.
- 청구항 1에 있어서,상기 랜덤 대기 시간 계산부는, 현재 충돌 비율이 충돌 비율 기준값을 초과했다고 판단한 경우, 상기 대기 시간 파라미터를 파라미터 변경 팩터만큼 증가시키는 것을 특징으로 하는 RFID 리더 장치.
- 청구항 1에 있어서,상기 랜덤 대기 시간 계산부는, 타임아웃 비율이 타임 아웃 기준값을 초과하고, 충돌 비율이 충돌 비율 기준값을 초과했다고 판단한 경우, 상기 대기 시간 파라미터를 파라미터 변경 팩터만큼 증가시키는 것을 특징으로 하는 RFID 리더 장치.
- 청구항 1에 있어서,상기 랜덤 대기 시간 계산부는, 타임아웃 비율이 타임 아웃 기준값 이하가 되었다고 판단한 경우, 상기 대기 시간 파라미터를 초기값으로 리셋하는 것을 특징으로 하는 RFID 리더 장치.
- 충돌 진단부가, RF 통신부로부터의 송신신호에 대응하여 설정된 수신시간 동안에 수신된 수신신호의 데이터를 분석하여, 상기 수신신호의 충돌발생 여부를 확인하고, 수신 신호 데이터의 분석 결과에 따라 충돌 타입을 진단하는 충돌 진단 단계;상황별 명령 재전송부가, 충돌발생 여부 및 충돌 타입에 근거하여 명령을 재전송할지 여부를 판단하는 명령 재전송 판단 단계; 및랜덤 대기 시간 계산부가, 명령의 재전송을 위한 랜덤 대기 시간을 계산하는 랜덤 대기 시간 계산 단계를 포함하며,상기 랜덤 대기 시간 계산 단계는, 재전송 대기 기준값의 하한 및 상한과 대기 시간 파라미터를 곱한 값에 대응하여 결정되는 최소 재전송 대기 시간과 최대 재전송 대기 시간 사이에서, 랜덤하게 랜덤 대기 시간을 선택하며, 상기 대기 시간 파라미터는 동적으로 변경 가능한, 적응형 재전송 대기 시간을 계산하는 RFID 리더 장치의 제어 방법.
- 청구항 13에 있어서,상기 재전송 대기 기준값의 하한은 예상 최장 프로토콜 데이터 유닛(longestExpectedPDU)에 필요한 시간인 것을 특징으로 하는 RFID 리더 장치의 제어 방법.
- 청구항 13에 있어서,상기 재전송 대기 기준값의 상한은 리더 명령과 태그 응답의 총 예상 소요시간인 것을 특징으로 하는 RFID 리더 장치의 제어 방법.
- 청구항 13에 있어서,상기 랜덤 대기 시간 계산 단계는, 상기 대기 시간 파라미터를 인벤토리 라운드가 시작되는 경우 미리 정의된 초기값으로 설정하는 단계를 포함하는 것을 특징으로 하는 RFID 리더 장치의 제어 방법.
- 청구항 13에 있어서,상기 랜덤 대기 시간 계산 단계에 있어서, 태그를 애크날리지할 때까지는 상기 대기 시간 파라미터를 감소시키지 않는 것을 특징으로 하는 RFID 리더 장치의 제어 방법.
- 청구항 13에 있어서,상기 랜덤 대기 시간 계산 단계는, 현재 충돌 비율이 충돌 비율 기준값 미만 이라고 판단한 경우, 상기 대기 시간 파라미터를 파라미터 변경 팩터만큼 감소시키는 단계를 포함하는 것을 특징으로 하는 RFID 리더 장치의 제어 방법.
- 청구항 13에 있어서,상기 랜덤 대기 시간 계산 단계는, 현재 충돌 비율이 충돌 비율 기준값을 초과했다고 판단한 경우, 상기 대기 시간 파라미터를 파라미터 변경 팩터만큼 증가시키는 단계를 포함하는 것을 특징으로 하는 RFID 리더 장치의 제어 방법.
- 청구항 13에 있어서,상기 랜덤 대기 시간 계산 단계는, 타임아웃 비율이 타임 아웃 기준값을 초과하고, 충돌 비율이 충돌 비율 기준값을 초과했다고 판단한 경우, 상기 대기 시간 파라미터를 파라미터 변경 팩터만큼 증가시키는 단계를 포함하는 것을 특징으로 하는 RFID 리더 장치의 제어 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US3580508P | 2008-03-12 | 2008-03-12 | |
US61/035,805 | 2008-03-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090097829A true KR20090097829A (ko) | 2009-09-16 |
KR101489213B1 KR101489213B1 (ko) | 2015-02-04 |
Family
ID=41065676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20090021372A KR101489213B1 (ko) | 2008-03-12 | 2009-03-12 | 적응형 재전송 대기 시간을 계산하는 rfid 리더 장치 및 그 제어방법 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8773242B2 (ko) |
JP (1) | JP5150737B2 (ko) |
KR (1) | KR101489213B1 (ko) |
WO (1) | WO2009113826A2 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101323787B1 (ko) * | 2012-02-10 | 2013-10-31 | 삼성중공업 주식회사 | 무선 태그의 태그 정보 전송 방법, 및 태그 위치 추적 시스템 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9734645B2 (en) * | 2010-10-15 | 2017-08-15 | The Chamberlain Group, Inc. | Method and apparatus pertaining to message-based functionality |
KR101307491B1 (ko) * | 2011-10-18 | 2013-09-11 | 성균관대학교산학협력단 | Rfid 태그 이동성을 고려한 충돌 방지 시스템 및 방법 |
CN107002387A (zh) * | 2014-11-28 | 2017-08-01 | 株式会社小松制作所 | 通信系统以及作业车辆 |
KR102458563B1 (ko) | 2018-02-12 | 2022-10-28 | 한국전자통신연구원 | 백스캐터 통신을 사용한 통신 방법 및 통신 장치 |
US11243853B2 (en) | 2019-11-26 | 2022-02-08 | International Business Machines Corporation | Service retry collision prevention using prime numbers |
CN113015133B (zh) * | 2021-02-08 | 2023-04-07 | 北京千方科技股份有限公司 | 一种应用于etc的rsu设备的多天线防信号碰撞的方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5365551A (en) * | 1992-12-15 | 1994-11-15 | Micron Technology, Inc. | Data communication transceiver using identification protocol |
US6813260B1 (en) | 2000-03-16 | 2004-11-02 | Ericsson Inc. | Systems and methods for prioritized access in a contention based network |
US7009496B2 (en) | 2002-04-01 | 2006-03-07 | Symbol Technologies, Inc. | Method and system for optimizing an interrogation of a tag population |
KR100641380B1 (ko) | 2006-01-12 | 2006-11-02 | 주식회사 디앤에스 테크놀로지 | 무선태그 시스템에서 리더기간 충돌 방지방법 |
JP2007241392A (ja) | 2006-03-06 | 2007-09-20 | Fujitsu Ltd | タグ通信装置およびタグ通信方法 |
KR100858053B1 (ko) * | 2006-05-10 | 2008-09-10 | 한국전자통신연구원 | 수동형 rfid 리더기 및 이의 동작 제어 방법 |
-
2009
- 2009-03-12 US US12/922,054 patent/US8773242B2/en active Active
- 2009-03-12 WO PCT/KR2009/001254 patent/WO2009113826A2/ko active Application Filing
- 2009-03-12 KR KR20090021372A patent/KR101489213B1/ko not_active IP Right Cessation
- 2009-03-12 JP JP2010550601A patent/JP5150737B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101323787B1 (ko) * | 2012-02-10 | 2013-10-31 | 삼성중공업 주식회사 | 무선 태그의 태그 정보 전송 방법, 및 태그 위치 추적 시스템 |
Also Published As
Publication number | Publication date |
---|---|
KR101489213B1 (ko) | 2015-02-04 |
US8773242B2 (en) | 2014-07-08 |
JP2011513875A (ja) | 2011-04-28 |
WO2009113826A2 (ko) | 2009-09-17 |
US20110006884A1 (en) | 2011-01-13 |
JP5150737B2 (ja) | 2013-02-27 |
WO2009113826A3 (ko) | 2010-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101527368B1 (ko) | 충돌 상황에 따라 명령을 재전송하는 rfid 리더 장치 및 그 제어방법 | |
KR101489213B1 (ko) | 적응형 재전송 대기 시간을 계산하는 rfid 리더 장치 및 그 제어방법 | |
EP1977375B1 (en) | Method of preventing collisions between rfid readers in rfid system | |
KR101048612B1 (ko) | 알에프아이디 태그 충돌을 방지하기 위한 알에프아이디태그 인식 방법, 이를 이용한 알에프아이디 리더 및알에프아이디 태그 | |
EP1914660B1 (en) | Query tree based tag identification method in RFID systems | |
KR101502755B1 (ko) | 충돌 타입의 식별 기능을 갖는 rfid 리더 및 그 제어방법 | |
CN103514464A (zh) | 一种基于多信道的rfid多标签读写识别方法及装置 | |
KR100610358B1 (ko) | 비트동기신호를 이용한 rfid 리더 및 태그 그리고 태그인식 시스템 및 방법 | |
JP3866297B2 (ja) | 無接点形のデータ交換のシステムにおける衝突の処理の方法 | |
KR101589526B1 (ko) | 다중 패킷 수신이 가능한 rfid 시스템의 태그 충돌 방지 방법 및 태그 인식 장치, 및 시스템 | |
US8310343B2 (en) | Binary tree method for multi-tag anti-collision | |
Yu et al. | Reducing reader collision for mobile RFID | |
KR101007084B1 (ko) | 쓰루풋 역전 현상을 방지하기 위한 알에프아이디 태그 인식방법 및 이를 수행하는 알에프아이디 리더 | |
CN109740394B (zh) | 一种射频识别防碰撞方法 | |
Wang et al. | Effective anti-collision algorithms for RFID robots system | |
JP2001136100A (ja) | 情報通信処理方式 | |
US20090134977A1 (en) | Method and apparatus for RFID device coexistance | |
Chin et al. | Aloha‐Based Protocols | |
Nguyen et al. | Tweaked binary tree algorithm to cope with capture effect and detection error in RFID systems | |
CN107590408A (zh) | 基于二进制散列的aloha防碰撞方法 | |
WO2021189248A1 (zh) | 标签识别和盘点方法、装置、阅读器、介质和计算机程序 | |
Rao et al. | ASAF ALOHA protocol for dense RFID systems | |
KR100848639B1 (ko) | Rfid 시스템에서 타임 슬롯 수를 결정하기 위한 장치및 이를 사용한 태그 인식 방법, 시스템 | |
JP2003223624A (ja) | 非接触icカード、応答方法、及びそのプログラム | |
KR100863186B1 (ko) | Rfid를 위한 슬롯 랜덤 충돌 방지 방법 및 이를 위한rfid 태그 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
FPAY | Annual fee payment |
Payment date: 20171226 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |