F💻W/Standard

Type 2 Tag (T2T)

천숭이 2023. 2. 6. 15:36

Type 2 호환이 되는 태그의 종류로는 NXP MIFARE의 UltraLight 와 NTAG 203이 있다.

 

 

# Type 2 Tag Objective
- NFC Forum Type 2 Tag가 동작하는 방법

- NFC Type 2 Tag의 Reader/Writer 동작하는 방법

 

 


# Category
- section 2,3 : Type3 태그의 커뮤니케이션 방법 기초, Analog 층으로 이루어진 Type 2 Tag의 Framing과 태그의 전달방법 다루기.
- section 4 : Type 2 Tag의 메모리 구조. Type 2 Tag 명령어 셋을 이해하기 위한 전제 조건
- section 5 : Type 2 Tag의 명령어 셋
- section 6 : Type 2 Tag state machine
- section 7 : NDEF가 Type 2 Tag에 저장되고 접근하는 방식 (NDEF Mapping)

 

 


# Glossary

- TLV : Tag, Length, Value (data format)

- Poll Mode : NFC Device가 명령을 보내고 응답을 받는 상태
- Poller : Poll mode에 있는 NFC Forum Device
- Sector : 256 블럭으로 이루어진 메모리의 부분
- Technology : NFC-A,B,F,V 모두 같은 주파수를 사용 (13.56MHz)
- Technology Subset :
  Type 1 : 안티콜리전이 빠진 NFC-A
  Type 2 : 안티콜리전이 있는 NFC-A
  Type 3 : NFC-F (Felica)
  Type 4 : 안티콜리전이 있는 NFC-A,B
  Type 5 : 안티콜리전이 있는 NFC-V

- Type 2 Tag : Listener의 역할

 

 

 

# Frame Format

- short frame의 ACK와 NACK 응답은 4 data bits로 구성되어 있다

 

 

 

# # Memory

Block(4byte)로 수정

 

- Memory layout

 

 

# Static and Dynamic Memory structures

Static/Dynamic Memory Structure

 

# Internal Bytes

Internal Bytes

 

- Internal_0 ~ Internal_7은 읽기 전용이기에 어떠한 값도 쓸 수 없다. Tag가 이 영역에 WRITE 명령을 받으면 NACK으로 응답한다

 

# Static Lock Bytes

Static Lock Bytes

- Static Lock Bytes는 52 bytes를 lock 하기 위한 읽기 전용 데이터이다

- 이 52 bytes 들은 ByteAddr 12~63에 위치해있다. CC를 포함하고 있다

StatLock_0, StatLock_1 meaning
FFh read만 가능
00h read, write 모두 가능

(위 표의 수식은 이 문서에서 많이 쓰임)

 

 

 

# Capability Container (CC)

Capability Container

- CC는 NDEF Message를 읽고 쓰기위한 정보를 담고 있다

- CC인 CC_0~CC_3은 Block Three에 위치한다

 

 

# CC 데이터 내용

Byte Parameter Value Description
  CC_0   Magic Number   E1h T2T
  CC_1   Version   10h Mapping Version
Byte coding :

  CC_2   Size   See descr. T2T_Area 사이즈 encoding 내용 포함
T2T_Area 사이즈 계산 : T2T_Area_Size = Size*8

  CC_3   Access Conditions   See descr. NDEF Message를 읽고 쓰기 위한 access 조건을 기술해놓음


표현 방식 :

 

 

 

# Dynamic lock

동적 잠금 비트는 DynLock_Area가 T2T_Area 다음의 첫 번째 바이트에서 시작하거나 잠금 제어 TLV를 사용하여 정의되기 때문에 "동적"이라고 합니다. 이는 위치가 고정된 정적 잠금 바이트와 대조됩니다.

T2T Area가 48 Bytes 보다 크다면 Dynamic Lock bits가 요구된다

 

- position과 DynLock_Area 인코딩하는 두가지 방법 :

1. Lock control TLV를 사용

2. 기본 position과 Dynamic Lock bits 세팅된 갯수를 사용한다

 

두번째 방법인 Default Setting 방법에 대해 살펴보겠다

 

 

 

# Default Setting for the Dynamic Lock bits

position : T2T_Area 다음에 위치

만약 Lock bits가 8의 배수가 아니라면, Dynamic Lock byte의 마지막 바이트는 부분적으로 채워진다.

lsb부터 msb까지 채우고, 마지막 바이트의 남은 비트들은(Dynamic Lock bits를 포함하지 않는) 

'Reserved Bits'라고 불리고 0b로 세팅됨

 

 

 

# Control TLVs

Reader/WRITER 는 TLVs_Area에만 쓰기읽기가 가능하다

- TLV 구조

T : Tag field (T-field). 한 바이트 안에 있는 TLV의 타입 기술됨.

L : Length field (L-field). V-field의 사이즈

    L은 Tag field에 따라서 존재할수도 안할수도 있는데, 만약 존재한다면 1-Byte or 3-Byte이다.

V : Value field(V-field). 만약 존재한다면 TLV를 제어하는 데이터를 담고있음

     L이 00h 이거나 L 필드에 내용이 없다면 V필드는 존재하지 않는다

 

 

 

# # COMMAND

 

 

# READ, WRITE 커맨드 내용 스킵

 

 

# SECTOR_SELECT

- Reader/Writer 가 SECTOR_SELECT 명령 패킷1을 보낸다. 태그가 ACK를 보낸 후에, 성공적으로 수신이 되면, R/W는 명령 패킷2를 보낸다

- 성공적으로 완료함을 알리기 위해서, T2T는 PAT이라는 명령어를 사용한다.

 

 

 

# ACK & NACK

- ACK 는 1010b이고, 이를 제외한 2진수 4bit는 모두 NACK이다

 

 

 

# Checking the Presence of a T2T

- RF필드 내에 T2T가 있는지 감지하기 위해서는 Presence Check Procedure를 이용해야 한다.

- T2T의 어떠한 응답이라도 받는것이 목적 (존재만 알면됨)

- 응답을 보내고 디바이스는 200ms를 기다린다

Checking the Presence Command에 따른 여러가지 응답
valid Response T2T가 Field에 있음
다른 명령 받을 준비가 됨 (READ, WRITE, SECTOR_SELECT)
NACK T2T가 Field에 있지만 READ 명령을 받고있는 상황

 

 

 

 

 

 

 

 

 

 

 

'F💻W > Standard' 카테고리의 다른 글

Type 1~5 설명  (0) 2023.04.24
Type별 비교  (0) 2023.02.14
type 2,3 비교  (0) 2023.02.10
ISO/IEC 15693 정리  (0) 2022.12.21
Felica 정리  (0) 2022.12.13
11143 세미나 피드백  (0) 2022.11.16