본문 바로가기
프로그래밍 언어/c(일반)

[펌]RFID/NFC[3]

by [Akashic Records] 개발의선지자 2024. 11. 27.

후리그냥 낭탕 워

위 실제 RFID 컨트롤러 Datashee PDF 파일 같이 보면 더 깊은 이해와 도움이 될거라 생각한다.

 

2. 기술의 내용

1) 네트워크 구성

RFID는 다른 무선 기술들과 달리, 태그가 리더기의 신호를 받을 수 있는 범위 내에 있는 짧은 시간 동안 연결을 갖고, 그 범위를 벗어나게 되면 연결이 끊어지게 된다. 일반적으로 연결이 유지되는 기간은 1초 이내이며, 이 기간 동안 리더기와 태그 사이에 정보의 전송이 완료가 된다. 이 기간 동안 리더기와 태그는 일대일의 관계를 갖게 된다. 만약, 리더기의 범위 안에 여러 개의 태그가 있는 경우에는 상황에 따라서 리더기의 반응은 달라지게 되는데, 사용자에게 하나의 태그를 선택하도록 알림을 줄 수도 있고, 또는 모든 태그로부터 수신되는 정보를 한꺼번에 처리할 수도 있다. 전자는 교통 카드를 사용하는 경우에 해당하고, 후자의 경우는 마라톤과 같이 RFID를 부착한 많은 선수들이 한꺼번에 출발선을 통과하는 경우, 모든 태그들의 정보를 기록해야 하는 경우에 해당한다.

태그 간에 통신이 이루어지는 경우는 없으므로, 비록 리더기가 여러 개의 태그와 통신을 하는 것처럼 보여도 리더기와 태그 간의 일대일 연결이라고 봐야 한다.

리더기는 호출기(Interrogator), 또는 PCD(Proximity Coupling Device)이라고 하며, 태그(Tag)는 라벨(label), Transponder, 또는 PICC(Proximity Integrated Circuit)라고 한다. 여담이지만, 우리가 교통카드를 사용할 때 리더기에 “찍는다"라는 표현을 사용하는데, 이 찍다에 해당하는 말이 ‘태그’이다. 이처럼 우리는 “찍다"를 매우 다양한 상황에서 사용한다. 교통카드, 음식, 사진, 도장, 심지어 사람을 찍기도 한다.

2) 주파수 대역/채널

RFID는 사용하는 주파수 대역에 따라 3가지 유형으로 구분된다. 첫째는 30~500 kHz의 낮은 주파수 대역(LF, Low Frequency)를 사용하는 경우로, 인식범위 50 cm 이내의 근거리 위주로 사용이 되며 RFID기술 중에서는 가장 오래된 기술이다. 125kHz와 134.2kHz가 가장 많이 사용되는데, 125 kHz는 출입통제,방문증,재고자산 추적,자동차 키 등에 사용이 되고, 134.2 kHz는 동물식별 등에 사용이 되며, 현재 귀에 부착하는 형태로 돼지, 소, 양 등에 널리 쓰이고 있다. 134.2kHz는 ISO 11784와 ISO 11785에서 표준으로 사용하고 있다.

둘째는 13.56MHz 의 높은 주파수 대역(HF, High Frequency)을 사용하는 경우로 인식범위가 수 cm, 또는 1m 이하로 짧으며, 교통카드,IC 카드/스마트카드 등에 주로 사용이 된다. ISO/IEC 14443은 13.56MHz를 사용하는 규격이며, 이 규격을 일부 사용하는 NFC(Near Field Communication)가 이를 기반으로 하고 있다. 데이터속도는 106, 212, 424 kbps이다. 마이페어(Mifare)는 ISO/IEC 14443 를 구현한 대표적인 솔루션으로 NXP사의 제품이다. 우리 나라에서는 1996년 교통카드 시스템을 도입할 때 사용되었는데, 2004년에 스마트 티머니로 대체되었다. 마이페어는 메모리 카드인데 비하여, 스마트 티머니는 IC 기반이다. 스마트 티머니에 사용된 KS X 6923도 ISO 14443에 기반을 두고 있다.

한편, ISO/IED 15693은 통신범위가 1m정도되는데, 도서관에 소장되어 있는 책들에 부착이 되어 사용되거나, 스키장에서 리프트 권에 사용된다. 데이터 전송 속도는 26kbps이하이다.

 

 
NFC 표준
비접촉식 스마트 카드 표준
ISO/IEC 18092
ISO/IEC 14443
ISO/IEC 15693
동작 모드
기기 간 통신
리더/카드
리더/카드
전력 공급
능동 및 수동
수동
수동
통신 범위
10cm
10cm
1m
데이터 속도
106, 212, 424 kbps
106 kbps
26kbps 이하
응용 분야
모바일 기기
스마트 카드(교통 카드, 신용 카드)
스마트 레이블(출입증, 상품인식)

 

[표] 13.56 MHz 대역 비접촉식 표준 무선통신기술 비교

마지막으로 400MHz 이상의 매우 높은 주파수(UHF, Ultra High Frequency)를 사용하는 경우로, 433 MHz 대는 주로 능동형으로 사용되며, 인식거리는 50~100 m에 이른다. 국방용,컨테이너 관리,원격시동장치 등에 사용이 된다. 한편, 860~960 MHz는 주로 수동형으로 사용이 되며, 인식거리는 3.5~10 m에 달한다. 이 대역은 전파특성이 우수하여 `상품의 유통/물류 관리 등` 용도에 가장 적합한 RFID 대역으로 인식되고 있다. 일명 주차카드로 불리며 주차장 출입통제용으로 사용된다. 변조방식은 ASK를 사용하며, 데이터 전송속도는 40 kbps 이다.

3. 기술의 동작

1) 주소

ISO/IEC 14443 표준에서는 3가지 종류의 길이를 갖는 주소를 소개하고 있는데, 4바이트(single size), 7바이트(double size),10바이트(triple size)가 이에 해당한다. MIFARE의 경우 4바이트의 UID를 사용했으나, 이미 오래 전에 할당 가능한 주소가 고갈되어서 현재는 7바이트의 UID를 사용하고 있다. 다만, ISO 규정에 따라서 4바이트의 ID를 사용할 수 있는데, 이 경우의 ID는 전세계적으로 유일한 값은 주소는 아니며, 어딘가에서 중복사용되어 질 수도 있다.

[그림 1] RFID의 주소(UID)

주소의 제일 뒤에 붙는 BCC(Block Check Character)는 앞에 있는 4 바이트, 즉 UID0, UID1, UID2, UID3를 XOR(exclusive-or)하여 계산이 된다. CT(Cascade Tag)는 현재의 데이터 세트에 이어서 오는 데이터 세트가 있는 것을 나타내는데, 이 때의 값은 0x88이다.

2) 데이터의 전송

ISO 14443 타입 A의 경우 리더기로부터 태그로의 정보 및 에너지 전송을 위해서 100% 진폭 변조를 사용하며, 인코딩 방식으로는 변형된 밀러 방식을 사용한다. 이 때 데이터 전송 속도는 106kbps이다. 타입B의 경우에는 10% 진폭 변조를 사용하며, 인코딩 방식으로는 NRZ(Non Return to Zero)을 사용한다. 데이터 전송 속도는 타입 A와 같다

 

 

PCD -> PICC
Type A
Type B
Frequency
13.56 MHz
13.56 MHz
Modulation
100% ASK
10% ASK
Bit coding
Modified Miller
NRZ
Data rate
106 kb/s
106 kb/s

 

[표] 리더기로부터 태그로의 정보 전송

[그림 2] 100% ASK 변조+변형된 밀러 : 타입A

[그림 3] 10% ASK 변조+NRZ : 타입B

한편, ISO 14443 타입 A의 경우 태그로부터의 리더기로의 정보 전송의 경우에는 847kHz의 반송파를 사용하고, OOK(On/Off Keying) 변조 방식을 사용한다. 인코딩 방식으로는 맨체스터 방식을 사용한다. 타입B의 경우에는 동일한 반송파를 사용하며 BPSK 변조 방식과 NRZ-L인코딩 방식을 사용한다.

 

PICC > PCD
Type A
Type B
Modulation
subcarrier load modulation
subcarrier load modulation
Modulation
OOK
BPSK
Subcarrier
847kHz
847kHZ
Bit coding
Manchester
NRZ-L

 

[표] 태그로부터 리더기로의 정보 전송

[그림 4] OOK + 맨체스터 : 타입A

[그림 5] BPSK + NRZ-L : 타입B

3) 데이터 포맷

ISO 14443에서는 2가지 타입의 데이터 프레임이 존재한다. 첫째는 표준 데이터 프레임이고, 둘째는 축소형 데이터 프레임이다. 먼저, 표준 프레임의 경우에는 8비트의 데이터로 구성이 되며 앞 뒤로 시작을 알리는 비트와 끝을 알리는 비트가 붙어 있다.

[그림 6] 표준 데이터 프레임

아래는 anti-collision 루프가 실행 중인 상황에서 PCD와 PICC가 주고받는 표준 프레임의 예를 보여주고 있다.

[그림 7] anti-collision 루프가 실행 중인 상황에서 PCD와 PICC가 주고받는 표준 프레임

축소형 데이터 프레임의 경우에는 데이터 전송을 동반하지 않고, 상태 변화를 목적으로 하는 경우에 사용이 되는 명령어에 사용이 된다. 7비트로 구성이 되며, REQA(Request Type A, 0x26)와 WUPA(Wake Up Type A, 0x52)가 대표적인데, 이들은 HALT 상태의 PICC를 활성화(ACTIVE) 상태로 천이시키는 명령이다.

[그림 8] 축소된 프레임

4) 연결

이제, UID를 이용해서 처음으로 PCD와 PICC가 연결되는 과정을 살펴 본다. 먼저, PCD는 PICC를 향해서 REQA(Request Type A, 0x26) 명령을 반복적으로 전송한다. 물론, 특정한 PICC를 향해서 전송하는 것은 아니며, 근처에 PICC가 있건 없건 PCD는 이 명령을 전송한다. 이는 PICC로부터 회신을 받을 때까지 반복된다.

 

한편, PCD로부터 REQA를 수신한 PICC는 ATQA(Answer to Request)를 PCD로 회신한다. 이때, 충돌 방지 기능을 지원하는지도 PCD에 알려주게 된다. PCD도 현재 여러 개의 PICC가 존재하는 상황임을 파악하게 된다. ATQA의 내용 중 UID size는 single(‘00’), double(‘01’), triple(‘10’), RFU(‘11’)중에 하나가 사용된다.

[그림 9] ATQA(Answer to Request)

PICC가 충돌 방지 기능을 지원한다고 하면, PCD는 충돌 방지(anti-collision)명령인 CL1(0x93)을 전송한다. 이를 수신한 PICC는 자신의 UID 정보를 회신하게 된다. 이미 여러 개의 PICC가 있는 상황을 ATQA를 통해서 파악하였으므로, PCD는 여러 개의 PICC로부터 회신이 있을 것을 예상할 수 있다. 한편, 동시에 여러 개의 PICC 들로부터 전송된 데이터들은 정상적으로 회신된 것을 확신할 수 없게 된다. 데이터의 전송 도중에 서로의 신호 간섭 현상에 의해서 영향을 받았었을 수 있기 때문이다. 따라서, PCD는 수신된 데이터를 비트 단위로 비교해 나가면서, 몇번째 비트까지가 동일하고, 몇번째 비트부터 달라지는지를 파악한다. 그리고 달라지기 시작한 비트 직전까지의 값을 포함하는 anti-collision 명령을 PICC에게 재전송하게 되며, PICC는 PCD로부터 받은 주소 값이 자신과 동일한 경우에 나머지 부분의 해당하는 주소를 회신하게 되고, 그렇지 않으면 회신을 하지 않는다.

아래 예에서는 최초의 anti-collision명령에 대해서 PICC로부터 회신된 값을 비교한 결과 4번째 비트부터 달라진 것을 확인할 수 있고, PCD는 이 중에서 0001을 선택하여 PICC에게 나머지 UID 정보를 회신해 줄 것을 요청하는 명령을 전송하고 있다.

[그림 10] Anticollision loop

먼저 4바이트에 해당하는 UID가 확보가 되면, PCD는 PICC에게 SELECT 명령을 통해서 내용을 확인한다. SELECT 명령은 NVB에 0x70이 들어가게 된다. 이에 대해서 PICC는 SAK(Select Acknowlegement)을 회신한다. 만약, PICC가 회신한 SAK 에서 cascade 값이 1이면, 추가로 전송되어야 하는 UID값이 있음을 의미한다. 즉 현재 사용 중인 주소는 4바이트가 아니라 7바이트, 혹은 10바이트임을 의미하므로, 앞에서 진행한 절차를 반복해야 한다.

위와 같은 절차를 통해서 최종적으로 하나의 PICC가 남을 때까지 진행이 되는데, 10바이트의 주소 체계를 사용하는 경우에는 위의 절차를 3번 반복하게 된다.

 

SEL(1byte)
NVB(1byte)
UID(0 to 40 bits)
‘93’ – Cascade level 1
Byte count
(upper 4 bits)
2~7
Bit count
(lower 4 bits)
 
Search criterion
 
‘95’ – Cascade level 2
‘97’ – Cascade level 3

 

[표] SELECT 명령

마지막으로, PCD가 보낸 SELECT에 대한 PICC의 SAK회신 속에는 또 다른 정보가 들어 있는데, SAK 의 6번째 비트값이 1이면, PICC가 MiFARE 프로토콜을 지원함을 의미하며, 만약 그 값이 0이면, ISO 14443-4를 지원함을 의미한다.

[그림 11] 리더기와 태그의 연결 알고리즘

4. 기술의 구현

.

1) 시스템 구성

RFID를 기반으로 하는 어플리케이션 시스템은 크게, 어플리케이션이 실행이 되는 컴퓨터 시스템, 컴퓨터와 원격지에서 연결이 되어 있는 RFID 리더, 그리고 RFID 태그이다.

[그림 12] RFID의 시스템 구성

RFID 리더측에서 자기장을 발생시키면 태그(카드) 측의 코일에서는 유도전류가 발생한다. 리더측에서 자기장을 발생시키는 방법에는 두 종류가 있다. 첫째는 루프코일 형태의 안테나에서 발생하는 자기장을 이용하는 방식이고, 둘째는 일반 UHF대역 안테나에서 발생하는 전자기장을 이용하는 방식으로, 레이더의 원리인 후방산란 (Back-scattering) 방식이 사용된다. 첫째 방식은 125/135KHz 대역과 13.56MHz 대역의 RFID 시스템에 사용되고, 둘째 방식은 900MHz 대역의 RFID 시스템에 사용된다.

태그(Tag), 또는 레이블(Label)은 크게 3부분으로 이루어진다. 첫째는 리더기로부터의 신호를 받거나, 또는 리더기로 신호를 전송하는 안테나, 둘째는 리더기로부터 발생된 자기장 신호로부터 직류 전류를 모으는 부분, 셋째는 정보를 처리하고 저장하는 집적 회로이다.

한편, 태그가 동작하는 전원에 따라서 태그의 종류는 3가지로 구분이 된다. 첫째는 수동형으로 태그에 전원을 공급하는 배터리 없으며, 따라서 태그 전원은 리더기에서 발생시키는 자기장으로부터 얻게 된다. 이러한 방식으로는 낮은 전력만 사용가능하므로 무선 인식 거리도 짧다. 추가적인 부품이 적기 때문에 다른 방식에 비해 제품단가가 당연히 제일 낮다. 따라서 대규모 수량으로 사용되는 물류나 유통에 적용된다. 둘째는 능동형으로 태그 전원 공급을 위해 별도의 배터리를 사용한다. 일반적으로 배터리는 최소한 수년간 사용 가능하다. 수동형 태그에 비해 정확도가 높고 인식 거리도 더 길다. 당연히 제품 단가가 높고, 군수, 의료 등 개별 제품의 중요도가 높은 산업 분야에 적용이 된다. 셋째 반수동형은 수동형과 능동형 태그의 장점을 조합한 형태로, 태그의 전원으로 별도의 배터리가 연결되어 있어서 내부의 집적회로를 동작시키는데 사용된다. 다만 응답 데이터를 리더기쪽으로 보내는 전원은 수동형과 같이 리더기에서 발생시킨 자기장에 의존한다. 능동형 태그보다 인식거리가 더 길지만, 능동형 태그보다 저가이다. 통행료 징수 시스템에 적용이 된다.

또한, 태그는 읽기와 쓰기의 가능 여부에 따라서 구분이 가능하다. 먼저 읽기만 가능한 경우인데, 공장에서 제작될 당시에 부여된 일련번호를 저장하고 있다가, 리더기의 신호가 포착이 되면 저장된 일련번호를 전송한다. 그 다음으로 읽기 쓰기가 가능한 경우에는 사용자가 특수한 장비를 사용해서 태그의 메모리에 영역에 사용자 데이터를 저장할 수 있다. 이 경우에도 단 한번만 기록이 가능한 경우와 여러 번 기록이 가능한 경우로 나눌 수 있다.

5. 기술의 응용(NFC)

스마트폰에의 우선적인 적용을 염두해 두고 만들어진 NFC는 직비와 유사하다. 즉, 직비는 IEEE 802.15.4 표준을 물리계층과 MAC계층으로 사용하고 직비 협회에서 어플이케이션 계층에 대해서 규정을 하는 것과 같이, NFC는 ISO/IEC 14443 과 ISO 18092를 물리계층으로 하고 NFC 포럼에서 어플리케이션 계층에 대해서 규정을 한다. 좀더 직관적인 이해를 돕는다면 직비는 저전력 저속도의 무선 통신 표준을 바탕으로 직비 협회가 새로운 표준을 만든 것이고, NFC 는 RFID라는 무선 통신 표준을 바탕으로 NFC 포럼에서 새로운 표준을 만든 것이다.

2004년에는 ISO 14443 타입 A 와 14443 타입 C 에 추가되지 못했던 Felica 라는 기술을 포함해서 ISO 18092 표준을 제정했는데, 이것이 NFC 라는 기술의 공식적인 첫 표준이며, NFC IP-1 이라 부른다. 이 새로운 표준에는 기존에 ISO 14443 에는 없던 기기간 통신(peer-to-peer) 기술 내용이 추가되었다. 2005년에는 ISO 14443 타입 B 와 ISO 15693 그리고 ISO 18092(NFC IP-1) 를 포괄하는 ISO 21481 표준을 제정했으며, 이는 NFC IP-2 라고 부른다. 이를 통해 13.56MHz 를 쓰는 비접촉식 통신 기술을 모두 NFC 범주에 포함시키게 되었다. ISO 14443 은 근접형(Proximity) 통신으로 10cm 근방의 범위를 갖고, ISO 15693 은 주변형(Vicinity) 통신으로 1m 범위를 갖는다

이처럼, NFC는 무선태그(RFID) 기술 중 하나로 13.56MHz의 주파수 대역을 사용하는 비접촉식 통신 기술이다. 다만, 통신거리가 10cm이내로 제한하고 있어서, 다른 RFID 와 구별이 된다. 또한, RFID는 태그와 리더(reader)의 역할이 고정되어 있으며, 따라서 데이터 전송 방향으로 단방향이다. 그러나, NFC는 상황에 따라서 태그와 리더 역할을 변경할 수 있으며, 따라서 데이터는 양방향으로 전송이 가능하다.

NFC의 짧은 통신 거리는 단점이지만, 짧은 거리이기 때문에 기존 유통 위주의 RFID 기술보다 보안성이 높고 데이터를 교환하기 위해 통신 대상 기기에 이용자가 스마트폰을 직접 터치해야 한다. 이용자의 행동을 기반으로 의도를 인식하여 다양한 이용자 맞춤형 서비스들과 연결하기가 좋은 장점이 있다.

오늘날에도 최신형 스마트폰에는 NFC 기능에 내장되고 있으며 교통카드, 신용카드, 멤버십카드, 쿠폰, 신분증 등 다양한 분야에서 활용되고 있다. 또한, NFC를 활용하면 스마트폰으로 도어락을 간편하게 여닫을 수 있으며, 와이 파이 설정 등을 손쉽게 할 수 있다. 2011 MWC(Mobile World Congress) 기조연설에서 구글의 에릭 슈미트 CEO는 ‘위치정보와 광고의 결합으로 인해 모바일 결제서비스와 NFC가 활성화될 것이며, 이는 엄청난(Mega-scale) 기회’라고 한 바 있다.

아래 그림은 NFC의 소프트웨어 스택을 보여주고 있다. 이중 가운데 있는 Tag Type 은 NFC 포럼에서 분류한 태그(카드) 플랫폼을 의미한다. Type 1 Tag은 ISO 14443 A 표준을 기반으로 삼으며 Innovation Topaz 제품에서 사용된다. Type 2 Tag도 ISO 14443 A 표준을 기반으로 삼으며 NXP 의 Mifare 제품에서 사용된다. Type 3 Tag은 ISO 18092 표준으로 삼으며, Felica 기술인 JIS X 6319-4 를 기반으로 한다. Type 4 Tag은 ISO 14443 A, B 표준을 완전히 만족하며, NXP 의 DESFire, SmartMX-JCOP 제품에서 사용된다.

[그림 14] NFC 계층 구조