상기 목적을 달성하기 위한 본 발명은 무선통신단말기에 장착되는 RFID 리더로서, 상기 무선통신단말기의 단말 제어부의 명령에 따라 태그와의 통신을 위한 리더 동작을 개시하는 리더 제어부, 복수의 태그 사이의 충돌을 조정하고 상기 태그와의 통신 수행 결과를 상기 리더 제어부로 전달하는 충돌조정 상태머신, 상기 충돌조정 상태머신에서 결정되는 리더 명령 메시지를 생성하여 부호화 및 변조하는 리더 송신부, 안테나를 통하여 수신되는 태그 신호를 복조 및 복호화하고 태그 응답 상태를 상기 충돌조정 상태머신에 보고하는 리더 수신부, 및 상기 리더 제어부의 명령에 따라 태그와의 통신에 사용할 채널을 선택하는 채널 운용 제어부를 포함한다.
상기 리더 송신부는 상기 리더 명령 메시지를 생성하는 메시지 생성부, 상기 리더 명령 메시지에 대한 CRC를 생성하여 추가함으로써 송신 메시지를 생성하는 CRC 생성부, 상기 생성된 송신 메시지를 부호화하는 인코더, 및 상기 부호화된 송신 메시지를 변조하는 변조부를 포함한다. 또한, 상기 리더 수신부는 안테나를 통하여 수신되어 디지털 신호로 변환된 태그 신호를 복조하는 복조부, 상기 복조된 태그 신호를 복호화하는 디코더, 상기 복호화된 태그 신호의 CRC를 체크하고 태그의 응답 상태를 상기 충돌조정 상태머신에 보고하는 CRC 확인부, 및 상기 복호화된 태그 신호의 메시지를 일시 저장하고 상기 충돌조정 상태머신의 명령에 따라 상기 저장된 메시지를 상기 리더 제어부로 전달하는 수신 메시지 버퍼를 포함한다.
상기 채널 운용 제어부는 LBT 제어를 수행하기 위한 LBT 제어부, 및 FHSS 제어를 수행하기 위한 FHSS 제어부를 포함하며, 상기 LBT 제어부와 상기 FHSS 제어부는 PLL 제어부를 공유할 수 있다. 상기 리더 제어부는 상기 LBT 방식과 FHSS 방식 가운데 태그와의 통신에 사용할 주파수 점유 방식을 선택하는 것을 특징으로 하며, 기설정된 시간 동안 태그 데이터를 획득하지 못하는 경우에는 상기 주파수 점유 방식을 전환할 수 있다. 상기 LBT 제어부는 상기 리더 제어부로부터 LBT를 수행할 주파수 대역을 입력받아 상기 주파수 대역에서 탐색을 수행할 채널 인덱스 시퀀스를 생성하기 위한 수단, 상기 리더 수신부로부터 상기 채널 인덱스 시퀀스에 따른 채널의 RSSI를 입력받아 채널이 비어있는지 여부를 판단하기 위한 수단, 상기 리더 제어부로부터 입력되는 채널 탐색 시간 내에 비어있는 채널을 찾지 못하는 경우 새로운 채널 인덱스 시퀀스를 생성하기 위한 수단, 상기 리더 제어부로부터 입력되는 채널 점유 시간 내에 태그 데이터를 획득하지 못하는 경우 새로운 채널 인덱스 시퀀스를 생성하기 위한 수단을 포함한다. 상기 FHSS 제어부는 태그와의 통신에 사용할 채널 인덱스 시퀀스를 생성하기 위한 수단, 상기 리더 제어부로부터 입력되는 채널 점유 시간에 도달하는 경우 상기 채널 인덱스 시퀀스에 따른 다음 채널을 선택하기 위한 수단을 포함한다.
한편, 상기 충돌조정 상태머신은 상기 CRC 확인부로부터 보고받는 태그의 응답 상태에 따라 상기 리더 명령 메시지 및 상기 리더 제어부로 전달할 통신 수행 결과를 결정한다. 상기 충돌조정 상태머신은 복수의 태그 사이의 충돌을 조정하여 하나의 태그로부터 EPC를 획득하기 위한 충돌 조정 과정을 수행하기 위한 수단, 및 상기 충돌 조정 과정을 통하여 획득된 EPC를 이용하여 상기 태그의 사용자 데이터를 획득하기 위한 태그 접근 과정을 수행하기 위한 수단을 포함하며, 태그의 사용자 메모리를 읽기 위한 명령어에 포함되는 상기 사용자 메모리를 읽기 위한 길이 정보를 이용하여 상기 태그 접근 과정을 수행할지 여부를 결정한다.
또한, 본 발명은 무선통신단말기에 장착되는 RFID 리더를 제어하는 방법으로서, LBT 방식과 FHSS 방식 가운데 태그와의 통신에 사용할 주파수 점유방식을 선택하는 주파수 점유방식 선택단계, 상기 선택된 점유방식에 따라 태그와의 통신에 사용할 채널을 선택하는 채널 선택단계, 상기 선택된 채널을 이용하여 태그 정보를 획득하는 태그정보 획득단계, 및 리더 제어부에서 상기 획득된 태그 정보를 전달받는 태그정보 리드단계를 포함한다. 상기 태그정보 획득단계는 복수의 태그 사이의 충돌을 조정하여 하나의 태그로부터 EPC를 획득하는 충돌 조정 단계, 상기 충돌 조정 단계에서 획득된 EPC를 이용하여 상기 태그의 사용자 데이터를 획득하기 위한 태그 접근 단계, 및 상기 태그의 사용자 메모리를 읽기 위한 명령어에 포함되는 상기 사용자 메모리를 읽기 위한 길이 정보를 이용하여 상기 태그 접근 과정을 수행할지 여부를 결정하는 단계를 포함한다. 본 발명의 리더 제어방법은 상기 태그정보 획득단계에서 기설정된 시간 동안 태그 정보를 획득하지 못하는 경우 주파수 점유 방식을 전환시키는 단계를 더 포함할 수 있다. 상기 태그정보 획득단계는 태그의 응답상태를 나타내는 상태변수를 초기화하는 단계, 태그로부터 수신되어 복조 및 복호화된 태그 신호의 CRC를 체크하여 상기 태그의 응답상태에 따라 상기 상태변수를 결정하는 단계, 및 상기 결정된 상태변수에 따라 태그로 송신할 명령을 결정하는 단계를 포함한다.
한편, 상기 채널 선택 단계는 상기 주파수 점유방식 선택단계에서 LBT 방식이 선택되는 경우 송신 전력을 오프(off)하는 송신전력 차단단계, 태그와의 통신에 사용할 채널 탐색을 위한 채널 인덱스 시퀀스를 생성하는 채널 인덱스 시퀀스 생성단계, 상기 채널 인덱스 시퀀스에 따라 선택되는 채널이 비어있는지 여부를 판단하는 청취(Listen) 단계, 상기 청취 단계에서 선택된 채널이 비어있는 경우 상기 채널을 태그와의 통신에 사용할 채널로 선택하고 송신 전력을 온(on)하는 단계, 상기 리더 제어부에서 설정되는 채널 탐색 시간 내에 비어있는 채널을 찾지 못하는 경우에는 새로운 채널 인덱스 시퀀스를 생성하는 단계, 및 상기 태그정보 획득단계에서 상기 리더로부터 입력되는 채널 점유 시간 내에 태그 정보를 획득하지 못하는 경우 새로운 채널 인덱스 시퀀스를 생성하는 단계를 포함한다.
또한, 상기 채널 선택 단계는 상기 주파수 점유방식 선택단계에서 FHSS 방식이 선택되는 경우에는 태그와의 통신에 사용할 채널 인덱스 시퀀스를 생성하는 채널 인덱스 시퀀스 생성단계, 및 상기 태그정보 획득단계에서 상기 리더로부터 입력되는 채널 점유 시간에 도달하는 경우 상기 채널 인덱스 시퀀스에 따른 다음 채널을 선택하는 단계를 포함한다.
본 발명에 따른 리더 제어방법의 충돌 조정 단계는 Query 명령에 대한 태그 응답이 없는 경우 QueryRep 명령을 송신하고 리더 슬롯값을 감소시키는 단계, Ack 명령에 대한 태그 응답이 없는 경우 QueryRep 명령을 송신하고 리더 슬롯값을 감소시키는 단계, 및 상기 Ack 명령에 대한 태그 응답에 CRC 오류가 있는 경우 QueryRep 명령을 송신하고 리더 슬롯값을 감소시키는 단계를 포함한다. 또한, 태그 접근 단계는 Req_RN 명령에 대한 태그 응답이 없는 경우 상기 충돌 조정 단계를 수행하는 단계, 및 상기 Req_RN 명령에 대한 태그 응답에 CRC 오류가 있는 경우 상기 충돌 조정 단계를 수행하는 단계를 포함한다.
상술한 본 발명의 내용은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.
도 1은 본 발명에 따른 모바일 RFID 리더가 장착된 무선통신단말기의 일실시예 구성도이다.
도 1을 참조하면, 단말 메모리(120)는 프로그램 메모리와 데이터 메모리로 구성될 수 있으며, 상기 프로그램 메모리에는 휴대용 무선통신단말기의 일반적인 통화 동작을 제어하기 위한 프로그램들 및 모바일 RFID 서비스를 수행하고 그 결과 를 디스플레이에 표시하기 위한 프로그램들이 저장될 수 있다. 또한, 상기 데이터 메모리는 상기 프로그램들을 수행하는 도중에 발생되는 데이터들을 일시 저장하는 등의 기능을 수행한다. 오디오 처리부(150)는 상기 단말 제어부로부터 출력되는 수신 오디오 신호를 재생하거나 마이크로부터 발생되는 송신 오디오 신호를 상기 단말 제어부로 전송하는 기능을 수행한다. 키패드(130)는 숫자 및 문자 정보들을 입력하기 위한 키들과 각종 기능을 설정하기 위한 기능키들을 구비하며, 본 발명의 실시예에 따라 모바일 RFID 리더를 동작 대기시키기 위한 대기명령 또는 상기 모바일 RFID 리더로 하여금 태그 정보를 읽게 하기 위한 리드 명령을 입력하기 위한 기능키들을 구비할 수 있다. 한편, 디스플레이(140)는 LCD 등을 사용하여 모바일 RFID 서비스의 수행 결과를 표시하는 등의 역할을 한다.
단말 제어부(110)는 상기 무선통신단말기의 전반적인 동작을 제어하며, 본 발명의 실시예에 따라 모바일 RFID 리더(이하 간단히 'RFID 리더'라 한다)로 리더를 동작 대기시키기 위한 대기 명령 또는 태그와의 통신을 수행하도록 하기 위한 리드 명령 등을 전달하고, 상기 RFID 리더로부터 태그와의 통신을 통하여 획득된 EPC(Electronical Product Code)를 포함한 태그 정보를 전달받는다.
한편, RFID 리더(160)은 상기 단말 제어부로부터 리더 대기 명령 또는 태그와의 통신을 개시하기 위한 리드 명령을 전달받는다. 단말 제어부로부터 상기 리드 명령을 전달받은 RFID 리더(160)는 LBT 또는 FHSS 방식으로 UHF 대역에서 RFID 프로토콜에 따라 태그와의 통신(Reader-to-Tag Communication)을 수행하며, 상기 태그와의 통신을 통하여 획득한 태그 정보(EPC)를 상기 단말 제어부로 전달한다.
도 2는 본 발명에 따른 모바일 RFID 리더의 일실시예 구성도이다. 본 발명의 실시예에 따른 모바일 RFID 리더는 UHF(Ultra-High Frequency; 극초단파) 대역을 사용하여 수동형 RFID 태그와의 통신을 수행한다. 이하에서는 본 발명의 RFID 리더가 860[MHz] ~ 960[MHz]의 UHF 대역에서의 RFID 프로토콜 규격인 'ISO/IEC 18000-6C 국제 표준 규격'에 따라 동작하는 경우를 예로 들어 설명하도록 한다.
도 2에서 보는 바와 같이 본 발명에 따른 모바일 RFID 리더(이하 간단히 'RFID 리더'라 한다)는 단말 제어부로부터 리더 동작을 위한 명령을 전달받는 리더 제어부(210), 태그와의 통신(Reader-to-Tag Communication)에 있어서 리더 명령 데이터를 송신하기 위한 기능을 담당하는 리더 송신부(230), 상기 태그와의 통신에 있어서 태그로부터 데이터를 수신하기 위한 기능을 담당하는 리더 수신부(240), 상기 태그와의 통신을 수행함에 있어 복수의 태그 사이의 충돌(Collision)을 조정하는 충돌조정 상태머신(Anti-Collision State Machine)(220), LBT(Listen Before Talk) 제어를 수행하는 LBT 제어부(250) 및 FHSS(Frequency Hopping Spread Spectrum) 제어를 수행하는 FHSS 제어부(260)를 포함하여 이루어진다.
상기 리더 제어부(210)는 RFID 리더 내부의 각종 레지스터를 제어하며, 상기 레지스터의 제어에 사용되는 어드레스 핀은 사용할 내부 레지스터의 개수에 따라 정의된다. 또한, 상기 리더 제어부(210)는 상기 레지스터 제어를 위해 chip select 신호, read 신호, write 신호, output enable 신호 등을 사용할 수 있다. 한편, 상기 리더 제어부(210)는 도 2에 도시된 각 블록들을 제어하며, 상기 각 블 록과의 인터페이스 방식은 CPU clock을 위한 Synchronous Interface 방식을 사용한다. 상기 리더 제어부(210)는 본 발명에 따라 태그와의 통신에 LBT 방식을 사용할 것인지 FHSS 방식을 사용할 것인지 여부를 결정할 수 있으며, 상기 결정에 따라 필요한 LBT 변수를 LBT 제어부(250)에 세팅하거나 FHSS 변수를 FHSS 제어부(260)에 세팅한다. 또한, 상기 리더 제어부(210)는 태그와의 통신에 필요한 리더 명령들을 송신 메시지 생성부(232)에 세팅하며, 태그와의 통신을 통해 획득되는 EPC를 포함한 태그 정보를 수신 메시지 버퍼(242)로부터 전달받는다.
상기 리더 송신부(230)는 송신 메시지 생성부(232), CRC 생성부(234), 인코더(236), 디지털 변조부(238)를 포함하여 이루어진다.
상기 송신 메시지 생성부(Tx MSG Generator)(232)는 충돌 조정 상태 머신의 명령에 따라 태그로 송신할 명령 메시지를 생성한다. 상기 생성되는 메시지는 'Inventory' 과정에서 사용되는 'Query', 'QueryAdjust', 'QueryRep', 'Ack' 등의 명령어들과 'Access' 과정에서 사용되는 'Req_RN', 'Read', 'Write' 등의 명령어들을 포함한다. 상기 CRC 생성부(CRC Generator)(234)는 상기 생성된 송신 메시지의 프레임에 대한 CRC(Cyclic Redundancy Check)를 생성하여 송신 메시지에 추가한다. 한편 이러한 CRC의 생성 및 추가 작업은 상기 송신 메시지 생성부(232)에서 이루어질 수 있다.
상기 인코더(encoder)(236)는 상기 송신 메시지 생성부와 CRC 생성부를 통하여 전달된 메시지 데이터에 대하여 부호화를 수행한다. 국제 표준 ISO/IEC 18000- 6C 규격을 따르는 경우 상기 인코더(236)는 PIE(Pulse-Interal encoding)를 수행한다. 또한, 상기 디지털 변조부(238)는 상기 인코더로부터 부호화된 데이터를 전달받아 DSB-ASK 또는 PR-ASK를 위한 파형을 생성 및 쉐이핑(shaping)한다. 상기 디지털 변조부에는 상기 부호화된 데이터의 파형을 국제 표준 18000-6C 규격에 적합하도록 쉐이핑하기 위한 RRC(Root Raised Cosine) 필터가 포함될 수 있으며, 이 경우 RRC 필터는 RF 단에서의 불필요한 대역을 제한하고 심볼(symbol) 간의 간섭(Interference)를 제거하며 태그와의 통신을 위한 정규화된 포락선(envelope)를 정형하는 등의 기능을 수행한다. 상기 디지털 변조부(238)로부터 출력되는 신호는 DAC(Digital to Analog Converter)(미도시)에 입력되어 아날로그 신호로 변환되며, 상기 변환된 아날로그 신호는 UHF 대역으로 주파수 상향 변환 및 전력 증폭되어 리더 안테나를 통해 태그로 송출된다.
한편, 상기 리더 수신부(240)는 디지털 복조부(248), 디코더(246), CRC 및 메시지 확인부(244) 및 수신 메시지 버퍼(242)를 포함하여 이루어진다.
상기 디지털 복조부(248)는 리더 안테나를 통하여 수신된 후 주파수 하향 변환 및 디지털 변환된 신호를 입력받아 ASK 등의 디지털 복조를 수행한다. 또한, 상기 디지털 복조부(248) 본 발명의 실시예에 따라 수신 신호의 수신전계강도(RSSI)를 측정하여 LBT 제어부(250)에 보고하는 기능을 수행한다.
상기 디코더(decoder)(246)는 상기 디지털 복조부로부터 복조된 신호를 전달받아 FM0(Frequency Modulation 0) 또는 밀러 서브캐리어(Miller Sub-carrier) 복 호화를 수행한다.
CRC 및 메시지 확인부(244)는 상기 디코더로부터 전달받는 복호화된 데이터에 대하여 CRC(Cyclic Redundancy Check)를 계산하여 CRC에 오류가 있는지 여부를 체크하고 수신 메시지를 분석하며, 태그의 응답 상태와 CRC 오류 유무를 상기 충돌조정 상태머신(Anti-Collision State Machine)에 보고한다. 모바일 RFID 리더의 구현에 있어서 중요한 부분 가운데 하나는 태그로부터 수신한 신호로부터 태그 정보를 성능의 열화 없이 복원하는 것이다. 본 발명은 수신 데이터에 대한 CRC 계산 및 체크 기능을 상기 CRC 및 메시지 확인부에서 수행하도록 함으로써 리더 제어부의 로드를 경감시킬 수 있는 효과를 가진다.
수신 메시지 버퍼(Rx MSG Buffer)(242)는 상기 CRC 및 메시지 확인부로부터 전달받는 수신 메시지 데이터를 버퍼링하는 기능을 담당하며, 또한 상기 충돌조정 상태머신(220)의 명령에 따라 버퍼링된 태그 데이터(EPC 또는 user specific data)를 상기 리더 제어부(210)로 전달한다.
상기 충돌조정 상태머신(Anti-Collision State Machine)(220)은 상기 리더 제어부의 명령에 따라 태그와의 통신(Reader-to-Tag Communication)을 위한 리더 동작을 제어한다. 더 구체적으로 상기 충돌조정 상태머신(220)은 상기 리더 제어부로부터 태그와의 통신을 개시하기 위한 명령을 입력받는 경우 상기 송신 메시지 생성부로 하여금 리더 명령을 생성하도록 제어한다. 또한, 상기 충돌조정 상태머신(220)은 상기 CRC 및 메시지 확인부(244)로부터 보고받는 태그 정보의 수신 상태 정보를 리더 제어부에 알리는 한편 상기 메시지 확인부(244)로부터 보고받은 태그 정보의 상태에 따라 상기 태그로 송신할 리더 명령을 결정한다. 또한, 리더 수신부가 EPC를 포함한 태그 정보 획득에 성공한 경우에는 상기 수신 메시지 버퍼(242)로 하여금 획득된 태그 정보를 리더 제어부(210)로 전달하도록 제어한다.
상기 충돌조정 상태머신(Anti-Collision State Machine)(220)은 태그와의 통신(Reader-to-Tag Communication)을 수행함에 있어 복수의 태그 사이의 충돌(Collision)을 조정하는 역할을 수행한다. 충돌조정(Anti-Collision)이라 함은 리더가 복수의 태그 가운데 하나의 태그를 판별하여 태그 정보를 획득하기 위한 과정을 의미한다. 상기 충돌조정(Anti-Collision) 과정에는 'Select', 'Query', 'QueryRep' 등의 복수의 리더 명령어들이 사용될 수 있다.
상기 LBT 제어부(250)는 상기 리더 제어부로부터 LBT(Listen Before Talk) 수행을 위한 변수값을 입력받아 LBT를 수행한다. 더 구체적으로 상기 LBT 제어부(250)는 태그와의 통신에 사용할 채널을 탐색하기 위하여 주파수 채널 인덱스 시퀀스를 생성하며, 상기 생성된 채널 인덱스 시퀀스에 따라 선택되는 채널의 수신전계강도(RSSI)를 디지털 복조부(248)로부터 입력받는다. 그리고 상기 입력된 수신전계강도(RSSI)를 기설정된 임계값과 비교함으로써 채널이 비어있는지 여부를 판단하고, 태그와의 통신에 사용할 채널을 결정한 후 이를 리더 제어부(210) 또는 충돌조정 상태머신(220)에 전달하여 태그와의 통신을 시작하도록 한다.
한편, 상기 FHSS 제어부(260)는 상기 리더 제어부로부터 FHSS(Frequency Hopping Spread Spectrum) 수행을 위한 변수값을 입력받아 FHSS를 수행한다. 더 구체적으로 상기 FHSS 제어부(260)는 주파수 채널 인덱스 시퀀스를 생성한 후 상기 생성된 채널 인덱스 시퀀스에 따라 채널을 점유하며 태그와의 통신을 수행한다.
상기 LBT 제어부(250) 및 FHSS 제어부(260)는 RF부(미도시)의 PLL에 대한 제어 변수(PLL_CLK, PLL_DATA, PLL_ENABLE)를 생성하는 PLL 제어부(미도시)를 공유할 수 있다. 즉, 상기 LBT 제어부(250) 및 FHSS 제어부(260)는 PLL 제어를 위한 PLL R,N,F 카운터 테이블(PLL R,N,F Counter Table)을 공유하여 Uniformly Distributed Random Numbers Generation 등의 기능을 수행할 수 있다.
마지막으로, 본 발명의 RFID 리더는 리더에서 사용할 각종 클럭 신호를 제공하기 위한 클록 생성부(미도시)를 추가적으로 포함한다. 상기 클록 생성부는 상기 RFID 리더 내부에서 사용되는 클럭 및 제어신호를 생성 및 제공하며, 상기 리더 제어부(210)의 실시간(Real Time) 동작을 위한 타이머(Timer)를 구비함으로써 상기 리더 제어부의 로드(Load)를 경감시킬 수 있다.
도 3은 본 발명에 따른 모바일 RFID 리더의 동작 과정을 설명하기 위한 일실시예 흐름도이다.
본 발명에 따른 모바일 RFID 리더의 동작은 리더 동작을 위한 명령어 및 기본 변수들을 세팅하는 태그통신 준비단계(S301 ~ S305), LBT 또는 FHSS 방식에 따라 태그와의 통신을 수행함으로써 태그 정보를 획득하는 태그정보 획득단계(S306 ~ S330), 및 상기 획득된 태그 정보를 읽기 위한 태그정보 리드단계(S331 ~ S333)를 포함한다. 상기 태그정보 획득단계(S306 ~ S329)는 복수의 태그 사이의 충돌을 조정하고 하나의 태그로부터 EPC를 획득하기 위한 충돌 조정 단계(Anti-Collision)(S316, S324) 및 태그의 사용자 메모리(user memory)에 저장된 사용자 데이터(user-specific data)를 획득하기 위한 태그 접근 단계(Access)(S318, S326)를 포함한다.
이하, UHF(Ultra-High Frequency)에서 국제 표준 ISO/IEC 18000-6C 에 따라 동작하는 본 발명의 일실시예에 따른 모바일 RFID 리더의 동작과정을 도 2 및 도 3을 참조하여 상세하게 설명한다.
리더 동작을 위한 명령어 및 기본 변수들을 세팅하는 태그통신 준비단계(S301 ~ S305)는 주파수 선택 단계, LBT 또는 FHSS 제어변수 세팅 단계, 리더 명령 세팅 단계를 포함한다. 이하에서는 우선 상기 태그통신 준비단계에서의 리더 동작을 설명한다.
본 발명에 따른 모바일 RFID 리더는 리더 동작을 위한 최초 전원이 인가되면 리더 메모리를 초기화한다. 이어서, 단말 제어부(110)로부터 태그와의 통신을 수행할 것을 요구하는 리드 명령이 입력되면 리더 제어부(210)는 태그와의 통신에 사용할 주파수 점유 방식을 선택한다(S301). 한편 이러한 주파수 점유 방식의 선택은 상기 단말 제어부(110)에서 이루어질 수도 있다. 아래의 [표 1]은 'LBT_FHSS' 변수값에 의하여 태그와의 통신에 사용할 주파수 점유 방식을 설정하는 예를 보여준다.
Addr Field(Data) Action 0x3A LBT_FHSS Write |
상기 주파수 점유 방식의 선택에 있어서 본 발명의 단말 제어부(110) 또는 리더 제어부(210)는 RFID 리더의 동작 환경을 참조할 수 있다. RFID 리더의 동작환경(예를 들어, 반경 1km 이내의 영역)내에 태그와의 통신을 수행하는 리더의 개수가 많은 경우에는, 특히 리더 동작환경 내에 25 개 이상의 리더가 존재하는 dense interrogator environment에서는 상기 복수의 리더 간의 충돌을 줄일 수 있는 LBT 방식이 유용할 수 있다.
한편, 상기 리더 제어부(210)는 본 발명에 따른 RFID 리더가 LBT 방식으로 통신을 수행함에 있어 기설정된 시간 동안 태그 정보를 획득하지 못하는 경우에는 주파수 점유방식을 FHSS 방식으로 전환시킬 수 있다. 이는 리더 개수가 채널 개수보다 작을 경우에는 LBT 방식이 FHSS 방식보다 좋은 성능을 발휘하지만, 리더 개수가 채널 개수보다 많아지면 LBT 방식의 성능이 FHSS 방식에 비하여 현저하게 떨어지기 때문이다. 또한, 상기 리더가 FHSS 방식으로 통신을 수행함에 있어 기설정된 시간 동안 태그 정보를 획득하지 못하는 경우에는 상기 주파수 점유방식을 LBT 방식으로 전환시킬 수도 있다. 더 구체적으로, 상기 리더 제어부(210)는, 수신 메시지 버퍼(242)로부터 기설정된 시간 동안 태그 정보를 획득하지 못하거나 충돌방지 상태머신(220)으로부터 기설정된 회수 이상 태그 응답이 없다는 상태 정보(No_Resp) 또는 CRC 에러가 발생하였다는 상태 정보(CRC_ERR)를 받는 경우에는, 수행되고 있는 주파수 점유 방식을 전환할 수 있다. 이 경우 상기 리더 제어부(210)는 우선 현재 RF 부를 제어하고 있는 LBT 제어부 또는 FHSS 제어부의 동작을 종료시킨 후 상기 전환된 주파수 점유 방식을 수행하기 위한 변수들을 LBT 제어부 또는 FHSS 제어부에 세팅한다.
상기 주파수 점유방식 선택단계(S301)에서 LBT(Listen Before Talk) 방식이 선택되면 상기 리더 제어부(210)는 LBT 제어부(250)에 LBT 수행을 위한 변수(LBT Parameter)들을 세팅한다(S302). 상기 세팅되는 LBT 변수(LBT Parameter)는 아래의 [표 2]에 예시한 바와 같이, LBT에 사용할 주파수 대역(BAND_SEL), 태그와의 통신 수행 후 다음 채널을 찾을 때까지 RF 전력을 차단할 시간(RF_OFF_TIME_M), 비어있는 채널을 탐색할 시간(MAX_LISTEN_TIME_Mmax), 태그와의 통신을 위한 채널 점유시간(TALK_TIME_N) 및 채널이 비어있는지 여부를 판단하기 위한 수신전계강도 임계값(LISTEN_RSSI_THRESHOLD)을 포함한다.
Addr Field(Data) Action 0x3A BAND_SEL Write 0x3B RF_OFF_TIME_M Write 0x3C MAX_LISTEN_TIME_Mmax Write 0x3D TALK_TIME_N Write 0x3E LISTEN_RSSI_THRESHOLD Write |
한편, 상기 주파수 점유 선택 단계(S301)에서 FHSS(Frequency Hopping Spread Spectrum) 방식이 선택되면 상기 리더 제어부(210)는 FHSS 제어부(260)에 FHSS 수행을 위한 변수(FHSS Parameter)들을 세팅한다(S303). 상기 세팅되는 FHSS 변수는 아래의 [표 3]에 예시한 바와 같이, 태그와의 통신을 위한 채널 점유시간(FHSS_EXPIRE_TIME)을 포함한다.
Addr Field(Data) Action 0x23 FHSS_EXPIRE_TIME Write |
상기 LBT 또는 FHSS 수행을 위한 변수들이 세팅되면 상기 리더 제어부(210)는 상기 송신 메시지 생성부(232)에 태그와의 통신에 필요한 리더 명령(Gen2 Tx MSG)들을 세팅한다(S304). 아래의 [표 4]는 UHF 대역에서의 RFID 프로토콜인 ISO/IEC 18000-6C 국제 표준 규격에 따른 리더 명령(SELECT, QUERY, READ MEMORY 등)의 예를 보여준다.
Addr Field(Data) Action 0x03 GEN2_TX_MSG(TX_COMMAND_SELECT) Write 0x04 GEN2_TX_MSG(TX_COMMAND_QUERY) Write 0x05 GEN2_TX_MSG(TX_COMMAND_READ_MEMORY) Write |
상기 LBT 또는 FHSS 변수 및 리더 명령이 세팅되면 상기 리더 제어부(210)는 아래의 [표 5]에서 보는 바와 같이 태그와의 통신을 위한 리더 동작을 개시하기 위한 실행 명령 변수(STATE_HOLD)를 세팅한다(S305). 그리고 상기 실행 명령 변수(STATE_HOLD)가 인에블(enable)(예를 들어, '1')로 설정되면 RFID 리더는 독립적으로 LBT 또는 FHSS 방식으로 채널을 점유하여 태그와의 통신을 수행한다.
Addr Field(Data) Action 0x01 STATE_HOLD Write |
상기 실행 명령 변수(STATE_HOLD)가 인에블(enable)되면 RFID 리더는 LBT 또는 FHSS 방식에 따라 한 개의 채널을 점유하여 태그와의 통신(Reader-to-Tag Communication)을 수행함으로써 태그 정보를 획득하며, 태그 정보 획득에 성공한 경우 충돌조정 상태머신(220)은 수신 인터럽트를 발생시켜 리더 제어부(210)에 알린다. 이하에서는 LBT 또는 FHSS 방식에 따른 태그와의 통신을 통하여 태그 정보를 획득하기 위한 태그정보 획득단계(S306 ~ S330)에 대하여 설명한다.
먼저 상기 주파수 점유방식 선택단계(S301)에서 LBT 방식이 선택된 경우의 태그정보 획득단계(S307 ~ S320)를 설명한다.
태그와의 통신을 위한 주파수 점유방식으로 LBT 방식이 선택(예를 들어, LBT_FHSS_SEL 변수가 '1'로 세팅된 경우)되면, 단계 S302에서 설명한 바와 같이 LBT 제어부(250)에 LBT 수행을 위한 변수(LBT parameter)가 세팅된다.
이어서 태그와의 통신을 개시하기 위한 실행 명령 변수(STATE_HOLD)가 인에이블(enable)되면, 상기 LBT 제어부(250)는 RF 송신 전력을 오프(off)하기 위한 제어신호를 RF부로 전달한다. 또한 상기 LBT 제어부(250)는 내부 타이머(timer)를 이용하여 단계 S302에서 변수 'RF_OFF_TIME_M'에 의하여 설정된 RF 전력 차단 시간(M [msec]) 동안 RF 전력 오프 상태를 유지시킨다(S307). 상기 RF 전력 차단 시간(M [msec])은 디지털 복조부(240)에서의 수신전계강도 측정이 정확하게 이루어지도록 하기 위한 것으로서, 통상 알려진 규격에 따르면 약 100 [msec] 이상으로 설정되어야 한다. 따라서, S302에서의 상기 RF 전력 차단 시간의 초기 세팅은 100 [msec]로 하며, 상기 리더 제어부(210)에서 상기 값을 재설정(write)할 수 있도록 한다.
상기 LBT 제어부(250)는 단계 S302에서 세팅된 변수 'BAND_SEL' 값에 따라 사용할 주파수 대역을 선택한다(S308). 이는 국가 또는 지역에 따라서 LBT를 전용으로 사용하는 주파수 대역이 정해져 있을 수 있기 때문이다. 한국의 경우 현재 FHSS 방식은 910 [MHz] ~ 914 [MHz] 대역에서 사용하도록 규정되어 있고 LBT 방식은 전 대역(908.5 [MHz] ~ 914[MHz])에서 사용 가능하도록 규정되어 있다. 따라서 908.5 [MHz] ~ 910 [MHz] 의 주파수 대역은 LBT를 위한 전용 주파수로 이용된다. 이러한 경우 상기 LBT 제어부(250)는 단계 S302에서 세팅되는 사용 주파수 대역에 대한 변수(BAND_SEL)에 따라 '908.5 [MHz] ~ 910[MHz] (대역폭: 200 [kHz])'와 '908.5 [MHz] ~ 914[MHz] (대역폭: 200 [kHz])' 가운데 하나의 주파수 대역을 LBT에 사용할 주파수 대역으로 선택한다.
상기 사용 주파수 대역이 결정되면 LBT 제어부(250)는 상기 결정된 주파수 대역 내에서 랜덤 시드에 의한 랜덤 주파수 채널 인덱스 시퀀스를 생성한다(S309). 그리고 상기 랜덤 주파수 채널 인덱스 시퀀스에 따라 1개 채널을 선택하여 상기 선택된 채널을 수신하기 위한 PLL 제어신호(PLL_CLK, PLL_DATA, PLL_ENABLE)를 RF 부로 전달한다(S310). 이 때, LBT 제어부(250)는 안정된 동작을 위해 상기 PLL 값이 세팅하기 위한 시간(약 1.5 [msec]) 동안 대기한 후 다음 단계의 동작을 진행한다.
상기와 같이 PLL 값이 세팅되면 디지털 복조부(248)는 해당 채널의 신호를 수신하여 수신전계강도(RSSI)를 측정하며, LBT 제어부(250)는 상기 디지털 복조부에서 측정된 수신전계강도(RSSI)를 전달받아 단계 S302에서 세팅된 수신전계강도 임계값(LISTEN_RSSI_THRESHOLD)과 비교함으로써 해당 채널이 비어있는지 여부를 판단한다(Listen)(S311, S312). 만약 상기 측정된 수신전계강도(RSSI)가 임계값보다 크면 다른 리더가 상기 채널을 사용하고 있는 것이므로 상기 주파수 채널 인덱스 시퀀스에서 다음 채널을 선택(S314)하여 다시 Listen 과정을 수행한다. 이때, 단계 S302에서 세팅된 비어있는 채널을 탐색하기 위한 시간(MAX_LISTEN_TIME_Mmax)을 초과한 경우에는 송신 전력을 RF 전력 차단 시간(M [msec]) 동안 오프(off)한 후 주파수 대역 선택 단계(S308)부터 다시 수행한다. 즉, S302에서 세팅된 채널 탐색 시간(Mmax [msec])동안 비어있는 채널을 찾지 못하면 상기 LBT 제어부(250)는 단계 S307부터 다시 수행한다. 상기 채널 탐색 시간(Mmax [msec])은 초기에는 100 [msec]로 설정되며, 리더 제어부(210)에서 상기 값을 갱신(write)할 수 있다.
LBT 제어부(250)는 상기 Listen 과정을 통해 비어 있는 채널을 탐색하여 하나의 채널을 점유하게 되면 이를 리더 제어부(210) 또는 충돌조정 상태머신(220)에 알리고 RF부에 송신 전력을 온(on)하기 위한 제어신호를 전달한다(S315). 상기 제어신호를 입력받은 RF 부는 리더 명령을 송신하기 위하여 주파수 상향 변환기 및 송신 전력 증폭기(Power Amplifier)를 포함하는 RF 부에 전원을 인가한다.
RFID 리더는 상기 LBT 제어부에 의하여 탐색된 1개의 채널을 이용하여 태그와의 통신(Reader-to-Tag Communication; Talk)을 시작한다. 상기 태그와의 통신(Reader-to-Tag Communication; Talk(S316 ~ S318))은 복수의 태그 사이의 충돌을 조정하고 하나의 태그로부터 EPC를 획득하기 위한 충돌 조정 단계(Anti-Collision)(S316) 및 태그의 사용자 메모리(user memory)에 저장된 사용자 데이터(user-specific data)를 획득하기 위한 태그 접근 단계(Access)(S318)를 포함한다. 상기와 같은 태그와의 통신 과정(Talk)(S316 ~ S318)은 FHSS 방식을 사용하는 경우에 있어서의 태그와의 통신 과정(Talk)(S324 ~ S326)과 동일하므로 도 4 및 도 5를 참조하여 후술하도록 한다.
상기 LBT 제어부(250)는 RFID 리더가 상기 태그와의 통신 과정(Talk)을 수행하는데 소요되는 시간을 관리하기 위한 Talk 타이머(Talk timer)를 포함하며, 상기 소요 시간이 단계 S302에서 'TALK_TIME_N'변수에 의하여 세팅된 태그 정보를 획득하기 위한 채널 점유시간(N [sec])을 초과하는지 여부를 판단한다(S320). 상기 태그와의 통신(Talk)이 상기 채널 점유시간(N [sec])을 초과한 경우, 상기 LBT 제어부(250)는 충돌방지 상태머신(220)에 태그와의 통신(Talk)을 종료시키기 위한 제어신호를 전달하며 RF 부의 송신 전력을 RF 전력 차단 시간(M [msec])동안 오프(off)한 후(S307) 단계 S308부터 다시 수행한다. 반면, 태그 정보 획득에 실패하였더라도 태그와의 통신(Talk)에 소요된 시간이 상기 채널 점유시간(N [sec])을 초과하지 않은 경우에는 충돌 조정 단계(S316)부터 태그와의 통신(Talk)을 수행한다. 상기 채널 점유시간(N [sec])은 초기에는 4 [sec]로 설정될 수 있으나, 상기 리더 제어부에 의하여 갱신(write)될 수 있다.
FHSS 방식이 선택된 경우의 태그 정보 획득 단계(S321 ~ S329)는 LBT 방식이 선택된 경우와 유사하게 수행되지만 태그와의 통신에 사용할 채널 탐색 과정을 수행하지 않는다는 점에서 차이가 있다. 이하에서는 상기 주파수 점유방식 선택단계(S301)에서 FHSS 방식이 선택된 경우의 태그 정보 획득 단계(S321 ~ S329)를 설명한다.
우선, 태그와의 통신을 위한 주파수 점유방식으로 FHSS 방식이 선택(예를 들어, LBT_FHSS_SEL 변수가 '0'으로 세팅된 경우)되면 단계 S303에서 설명한 바와 같이 FHSS 수행을 위한 변수(FHSS parameter)가 FHSS 제어부(260)에 세팅된다.
단계 S305에서 태그와의 통신을 개시하기 위한 실행 명령 변수(STATE_HOLD)가 인에이블(enable)되면, 상기 FHSS 제어부(260)는 RF 송신 전력을 온(on)하기 위한 제어신호를 RF부로 전달(S321)하고 랜덤 시드에 의한 랜덤 주파수 채널 인덱스 시퀀스를 생성한다(S322). 이어서 FHSS 제어부(260)는 상기 주파수 채널 인덱스 시퀀스에 따라 1개 채널을 선택하고 PLL 제어신호(PLL_CLK, PLL_DATA, PLL_ENABLE)를 RF 부로 전달한다(S323). 이 때, 상기 FHSS 제어부(260)는 안정된 동작을 위해 상기 PLL 값이 세팅하기 위한 시간(약 1.5 [msec]) 동안 대기한 후 다음 단계의 동작을 진행한다.
FHSS 방식의 경우 상기 LBT 방식과는 달리 채널 탐색(channel Ditection)을 수행하지 않으므로 RFID 리더는 Listen 과정 없이 FHSS 제어부(260)에서 생성된 주파수 채널 인덱스 시퀀스에 따라 채널을 점유하여 태그와의 통신(Reader-to-Tag Communication; Talk)을 시작한다. 상기 태그와의 통신(Reader-to-Tag Communication; Talk(S324 ~ S326))은 충돌 조정 단계(Anti-Collision)(S324) 및 태그 접근 단계(Access)(S326)를 포함하는데, 상기와 같은 태그와의 통신 과정(Talk)(S324 ~ S326)은 상기에서 설명한 LBT 방식을 사용하는 경우와 동일하므로 도 4 및 도 5를 참조하여 후술하도록 한다.
상기 FHSS 제어부(260)는 RFID 리더가 상기 태그와의 통신 과정(Talk)을 수행하는데 소요되는 시간을 관리하기 위한 Talk 타이머(Talk timer)를 구비하며, LBT 제어부와 상기 Talk 타이머(Talk Timer)를 공유할 수 있다. 상기 FHSS 제어부(260)는 상기 태그와의 통신에 소요된 시간이 단계 S303에서 'FHSS_EXPIRE_TIME'변수에 의하여 세팅된 태그 정보를 획득하기 위한 채널 점유시간(FHSS_EXPIRE_TIME [sec])을 초과하는지 여부를 판단한다(S328). 상기 태그와의 통신(Talk)이 상기 채널 점유시간(FHSS_EXPIRE_TIME [sec])을 초과한 경우, 상기 FHSS 제어부(260)는 충돌방지 상태머신(220)에 태그와의 통신(Talk)을 종료시키기 위한 제어신호를 전달하고 상기 생성된 주파수 채널 인덱스 시퀀스에 따라 다음 채널을 선택(S329)하여 충돌 조정 단계(S324)부터 태그와의 통신 과정(Talk)을 수행한다. 한편, 태그 정보 획득에 실패하였더라도 태그와의 통신(Talk)에 소요된 시간이 상기 채널 점유시간(FHSS_EXPIRE_TIME [sec])을 초과하지 않은 경우에는 충돌 조정 단계(S324)부터 태그와의 통신 과정(Talk)을 수행한다. 상기 채널 점유시간(FHSS_EXPIRE_TIME [sec])은 초기에는 0.4 [sec]로 설정될 수 있으나, 상기 리더 제어부에 의하여 갱신(write)될 수 있다.
이하에서는 도 3에서 LBT 또는 FHSS에 의하여 수행되는 태그와의 통신 과정(Reader-to-Tag Communication; Talk)(S316 ~ S318, S324 ~ S326)을 도 4 및 도 5를 참조하여 상세하게 설명한다.
상기 태그와의 통신 과정(S316 ~ S318, S324 ~ S326)은 모바일 RFID 환경에서 리더 동작 범위 내에 복수의 태그가 존재할 경우 충돌없이 한 개의 태그 정보를 획득하고 선택된 태그 메모리에 접근하여 사용자 데이터(user-specific data)를 읽을 수 있도록 한다. 이러한 태그와의 통신 과정은 크게 충돌 조정 단계(Anti-Collision)(S316, S324)와 태그 접근 단계(Access)(S318, S326)로 나뉘어지며, 상기 태그 접근 단계(Access)를 수행할지 여부는 사용자 메모리를 읽기 위한 Read 명령어에 포함되는 word count(nWordC)변수에 의하여 결정된다. 상기 word count(nWordC)가 '0'인 경우 RFID 리더는 충돌 조정 단계(Anti-Collision)만을 수행하며, '0'이 아닌 경우에는 상기 충돌 조정 단계(Anti-Collision)에서 획득되는 EPC 데이터를 이용하여 태그 접근 단계(Access)를 추가적으로 수행한다.
상기 태그와의 통신 과정(Reader-to-Tag Communication; Talk)은 충돌조정 상태머신(220)에 의하여 제어된다. 상기 충돌조정 상태머신(220)은 CRC 및 메시지 확인부(244)로부터 전달되는 태그 정보의 수신 상태(TagResp)에 따라 태그와의 통신을 위한 리더 동작을 제어하며, 태그로부터 수신한 신호에 대한 상태 정보(RetStatus)를 리더 제어부(210)로 전달한다. 상기 태그로부터 수신된 신호의 상태(TagResp)는 태그로부터 성공적으로 태그정보를 수신한 경우('TagResp==OK'), 태그로부터 응답이 없는 경우('TagResp==No_Resp') 및 태그 데이터의 CRC에 오류가 있는 경우('TagResp==CRC_ERR')로 나뉘어진다.
도 4는 본 발명에 따라 복수의 태그 사이의 충돌을 조정하고 하나의 태그로부터 EPC를 획득하기 위한 충돌 조정 단계(Anti-Collision)(S316, S324)에서의 리더 동작을 설명하기 위한 일실시예 흐름도이다. 상기 충돌 조정 단계(Anti-Collision)에서는 기본적으로 Select, Query, Ack 의 순서에 따라 하나의 태그 정보(EPC 데이터)를 획득한다. 또한, 슬롯(slot)이 '0'이 아닌 나머지 태그의 정보(EPC 데이터)를 획득하기 위하여 QueryRep(QueryRepeat) 명령을 사용한다.
도 4를 참조하면, LBT 제어부(250) 또는 FHSS 제어부(260)에 의하여 태그와의 통신을 수행할 채널이 선택된 경우, 충돌조정 상태머신(220)은 Select 명령어를 생성할 것을 송신 메시지 생성부(232)에 명령한다(S401). 또한, 상기 충돌조정 상태머신(220)은 Q 값을 결정한 후 Q 슬롯값(Qslot)을 '2Q-1'로 세팅(S402, S403)하며, 상태 변수(TagResp, nNoResp, nCRCErr 등)를 초기화한다(S404). 본 발명의 실시예에서는 모바일 RFID 환경에서 소수의 태그를 읽기 위하여 Q = 2(4개 슬롯)를 선택한다.
이어서, 상기 충돌조정 상태머신(220)은 상기 Q값 정보를 포함하는 Query 명령어를 생성할 것을 송신 메시지 생성부(232)에 명령하며, 리더 송신부는 Query 명령을 생성하여 태그로 송신함으로써 Inventory 과정을 시작한다(S405). 태그로부터 수신된 상기 Query 명령에 대한 응답 신호는 디코더(246)에서 복호화되어 CRC 및 메시지 확인부(244)로 전달되며, 상기 CRC 및 메시지 확인부(244)는 태그 데이터의 수신 상태를 상기 충돌조정 상태머신(220)에 보고한다. 상기 충돌조정 상태머신(220)은 태그로부터 응답이 없는 경우(TagResp===No_Resp)에는 이를 리더 제어부(210)에 통보(S424)하고, 슬롯값(Qslot)을 '1' 감소시키고 상태 변수를 초기화한 후 QueryRep 명령어를 생성할 것을 송신 메시지 생성부(232)에 명령한다(S408 ~S411). 이 때 상기 슬롯값(Qslot)이 '0'인 경우에는 단계 S401부터 다시 수행한다.
상기 단계 S405에서의 Query 명령어 또는 단계 S411에서의 QueryRep 명령어에 대한 태그 응답이 수신되면, 상기 충돌조정 상태머신(220)은 Ack 명령을 생성할 것을 송신 메시지 생성부(232)에 명령한다(S412). 그리고 CRC 및 메시지 확인부(244)는 상기 Ack 명령에 대한 태그 응답 신호의 CRC(Cyclic Redundancy Check)를 체크하고, 태그 응답 상태 정보와 CRC 체크 결과를 상기 충돌조정 상태머신(220)에 전달한다(S413). 상기 충돌조정 상태머신(220)은 태그 응답이 없는 경우에는 Ack 명령 송신 과정을 2회까지 수행(S417, S418)하며, 태그로부터 계속 응답이 없으면 태그 응답이 없음(RetStatus==No_TAG)을 리더 제어부(210)에 알린다(S419). 태그로부터 수신한 데이터의 CRC에 오류가 있는 경우에도 마찬가지로 Ack 명령 송신 과정을 2회까지 수행(S421, S422)하며, CRC 오류가 계속 발견되면 CRC에 오류가 있음(RetStatus==CRC_Err)을 리더 제어부(210)에 알린다(S423). 상기와 같이 Ack 명령에 대한 태그 응답을 성공적으로 수신하지 못한 경우에는 다른 슬롯값을 갖는 태그 정보를 획득하기 단계 S408부터 다시 수행한다.
한편, Ack 명령에 대한 태그 응답이 성공적으로 수신된 경우 상기 충돌조정 상태머신(220)은 태그 응답 수신에 성공하였다는 상태 정보(RetStatus===OK)를 리더 제어부(210)에 전달하고 상기 리더 제어부에서 태그 데이터를 읽도록 하기 위한 수신 인터럽트를 발생시킨다(S415, S330). 그리고 상기 충돌조정 상태머신(220)은 사용자 데이터를 읽기 위한 변수인 word count(nWordC) 값에 따라 태그 접근 단계(Access)를 수행할 것인지 여부를 결정한다(S317). 상기 word count 값이 '0' 이고 Q 슬롯값이 '0'인 경우 충돌조정 상태머신(220)은 상기 충돌 조정 과정(Anti-Collision)을 종료시킨다. 반면, 상기 Q 슬롯값이 '0'이 아닌 경우에는 단계 S409로 분기하여 다른 슬롯값을 갖는 태그 정보를 획득하기 위한 과정을 수행한다.
도 5는 본 발명에 따른 태그 접근 단계(Access)(S318, S326)에서의 리더 동작을 설명하기 위한 일실시예 흐름도이다. 태그 접근 과정(Access)은 리드 명령어에 포함되는 word count(nWordC) 값이 '0'이 아닌 경우에 수행되며, 상기 충돌 조정 과정(Anti-Collision) 과정을 통해 획득되는 EPC 태그 데이터를 이용하여 사용자 메모리(user memory)의 사용자 데이터(user-specific data)를 획득한다.
도 5를 참조하면 상기 충돌조정 상태머신(220)은 먼저 상태 변수를 초기화(S501)한 후 Req_RN 명령어를 생성할 것을 송신 메시지 생성부(232)에 명령한다(S502). 상기 Req_RN 명령어를 수신한 태그는 태그에 대한 읽기(Read) 및 쓰기(Write)가 가능한 Open 상태 또는 Secured 상태로 전환된다. 한편, CRC 및 메시지 확인부(244)는 상기 Req_RN 명령어에 대한 태그 응답 신호의 CRC를 체크(S503)하여, 태그 응답 상태 정보와 함께 CRC 오류 존재여부를 상기 충돌조정 상태머신(220)에 전달한다. 상기 충돌조정 상태머신(220)은 태그 응답이 없는 경우(TagResp==No_Resp)에는 상기 Req_RN 명령어 전송을 2회 수행(S506, S507)하며, 태그 응답이 계속 없으면 태그 응답이 없음(RetStatus=No_TAG)을 리더 제어부(210)에 알린다(S508). 상기 충돌조정 상태머신(220)은 수신된 태그 데이터의 CRC에 오류가 있는 경우에도 상기 Req_RN 명령어 전송을 2회 수행(S510, S511)하며, 계속하여 CRC 오류가 발생하면 CRC 오류가 있음(RetStatus=CRC_Err)을 리더 제어부(210)에 알린다(S513). 상기와 같이 Req_RN에 대한 태그 응답이 성공적이지 못한 경우 RFID 리더는 도 4에서 설명한 Anti-Collision 과정을 다시 수행한다(S514).
한편, Req_RN 명령에 대한 태그 응답을 성공적으로 수신한 경우, 상기 충돌조정 상태머신(220)은 태그의 사용자 데이터(user-specific data)를 획득하기 위한 Read 명령어를 생성할 것을 송신 메시지 생성부(232)에 명령한다(S515). CRC 및 메시지 확인부(244)는 상기 Read 명령어에 대한 태그 신호의 수신 상태를 상기 충돌조정 상태머신(220)에 통보한다. 상기 충돌조정 상태머신(220)은 상기 Read 명령어에 대한 태그 응답이 없는 경우에는 이를 리더 제어부(210)에 통보(S519)하며, 상기 Read 명령어에 대한 태그 응답을 성공적으로 수신한 경우에는 태그 응답이 있음(RetStatus=OK)을 리더 제어부(210)에 알리고 리더 제어부(210)에서 사용자 데이터(user-specific data)를 읽도록 하기 위한 수신 인터럽트를 발생시킨다(S517, S330).
이하에서는 리더 제어부에서 상기 태그정보 획득단계(S306 ~ S329)를 통해 획득된 태그 정보를 전달받는 태그정보 리드단계(S330 ~ S332)에 대하여 설명한다.
리더 제어부(210)가 충돌조정 상태머신(220)으로부터 태그 정보를 성공적으로 획득하였음을 알리는 인터럽트를 수신하면, 상기 리더 제어부(210)는 수신 메시지 버퍼(242)로부터 상기 태그 정보를 읽어나간다. 더 구체적으로 설명하면 우선 상기 리더 제어부(210)는 상기 태그 정보 가운데 EPC의 길이 정보를 포함하는 PC 데이터(Protocol-Control Data)를 읽어들여 이를 분석함으로써 상기 EPC의 길이(length)를 산출한다(S330, S331). 이어서, 상기 리더 제어부(210)는 상기 산출된 길이를 기반으로 태그 정보에 포함된 EPC를 워드(word; 16bit) 단위로 읽어들임으로써 EPC 데이터를 최종 획득하게 된다.
한편, 상기 태그정보 리드단계(S330 ~ S332)에 대한 설명은 RFID 리더가 태그로부터 EPC를 획득하는 충돌 조정 과정(S316, S324)까지 수행한 경우에 대한 것이다. 만약 상기 태그정보 획득단계에서 사용자 데이터를 획득하기 위한 태그 접근 과정(S318, S326)까지 수행된 경우, 리더 제어부(210)는 충돌조정 상태머신(220)으로부터 사용자 데이터(user-specific data)를 성공적으로 획득하였음을 알리는 인터럽트를 수신하며 수신 메시지 버퍼(240)로부터 사용자 데이터(user-specific data)를 읽어들인다.
상기와 같이 획득되는 EPC(Electronic Product Code) 또는 사용자 데이터(user-specific data)는 단말 제어부(100)로 전달되어 단말 메모리(120)에 저장되거나 디스플레이(140)에 표시된다. 또한, 상기 EPC(Electronic Product Code) 또는 사용자 데이터(user-specific data)는 모바일 RFID 서비스에 있어서 이동통신망과 인터넷망을 통해 컨텐츠 서버(CS; Contents Server)에 태그 컨텐츠 정보를 요청하기 위해 이용될 수 있다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.