RFID(무선 주파수 통신) 기술의 총체로
카드 모드, 태그 쓰기/읽기 모드, P2P 모드로 사용할 수 있다.
NDEF (NFC Data Exchange Format)
NFC 데이터 교환에 이용되는 데이터 교환 포멧으로 NFC 포럼에서 정의
NDEF Message
기본적인 NFC 데이터 교환 메시지 단위 하나를 NDEF Message라고 한다.
하나의 NDEF Message는 한개 이상의 NDEF Record로 구성되며, 하나의 NDEF Record는 하나의 데이터를 가지고 이를
'페이로드(payload)' 라고 한다.
개념도
이미지 : http://ibadrinath.blogspot.kr/2012/07/nfc-data-exchange-format-ndef.html
NDEF Record 구성
항목 |
길이 |
설명 |
레코드 헤더 (header) |
1byte |
레코드에 대한 기본적인 정보 |
타입 길이 (type length) |
1byte |
데이터 타입의 길이 |
페이로드 길이 (payload length) |
1byte 혹은 4byte |
페이로드의 길이 |
ID 길이 (id length) |
1byte |
ID의 길이 |
타입 (type) |
'타입 길이' byte |
레코드가 담고 있는 페이로드의 타입 |
ID |
'ID 길이' byte |
페이로드 ID |
페이로드 (payload) |
'페이로드 길이' byte |
레코드가 담고 있는 페이로드 |
-표 출처 : http://blog.startnfc.com/entry/NDEF
레코드 헤더(header)의 구성
헤더 항목 |
길이 |
설명 |
MB (Message Begin) |
1bit |
NDEF 메시지의 첫 레코드는 이 비트가 1 입니다. |
ME (Message End) |
1bit |
NDEF 메시지의 마지막 레코드는 이 비트가 1입니다. |
CF (Chunk Flag) |
1bit |
하나의 페이로드를 여러 개의 레코드로 나누어 전송하는 경우가 있는데, 이때 사용합니다. |
SR (Short Record) |
1bit |
이 비트가 1이면 '페이로드 길이'의 크기는 1byte이고, 0이면 4byte입니다. |
IL (ID Length) |
1bit |
레코드 ID가 존재하는 경우 이 비트가 1입니다. |
TNF (Type Name Format) |
3bit |
(별도로 설명) |
-표 출처 : http://blog.startnfc.com/entry/NDEF
NDEF Record - 타입(type)과 TNF
인터넷에 존재하는 대부분의 콘텐츠는 MIME 타입으로 구분이 가능하다.
하지만 NFC에서는 MIME 타입 이외에 다른 타입도 포함한다.
TNF는 위와 같은 타입이 어떤 형태로 되어 있는지를 나타낸다.
Android 에서 사용되는 TNF의 종류는 아래와 같다.
(자세한 사항은 클릭)
3비트 TNF의 구성
TNF (Type Name Format) |
값 |
설명 |
Empty |
0x00 |
비어있는 레코드. 즉, 페이로드가 없음. |
WKT (NFC Forum well-known type) |
0x01 |
NFC 포럼에서 정의한 타입 형식. (예: URI, Text, Smart Poster) |
MIME (MIME Media type) |
0x02 |
MIME 타입 형식. (예: plain/text, image/jpeg) |
AURI (Absolute URI type) |
0x03 |
예를 들어 XML의 경우 URI 형식의 DTD나 XML Schema를 타입으로 사용함. (예: http://www.w3.org/TR/html4/strict.dtd, http://www.w3.org/2000/svg) |
EXT (NFC Forum external type) |
0x04 |
NFC 포럼에서 정의한 규칙대로, 임의의 타입 형식을 만들어 사용할 수 있음. (예: startnfc.com:U) |
Unknown |
0x05 |
알 수 없는 형식의 페이로드. 그냥 byte 덩어리로 취급됨. |
Unchanged |
0x06 |
데이터를 여러 조각으로 나누어 전송하는 경우 (chunked record) 이전 레코드의 타입과 같은 타입이라는 것을 나타내기 위해 사용. |
Reserved |
0x07 |
사용하지 않음. |
-표 출처 : http://blog.startnfc.com/entry/NDEF
2020/12/16 - [개발노트] - Code 128 Barcode의 Check Digit 계산방법
2020/12/15 - [iOS/Tips] - 디버깅 차단 처리 (Anti Debug)
2020/12/14 - [iOS/Tips] - bundle id 알아내기
2020/12/12 - [AI/Algorithm] - 2D 충돌처리
2020/12/11 - [iOS/Swift] - UIViewController 스위칭
2020/12/11 - [개발노트] - PlantUML 설치 (Mac OS X)
2020/12/10 - [iOS/Objective-C] - 웹뷰에서 javascript 함수 동기식 호출
2020/12/10 - [iOS/Tips] - Fat Static Library 빌드 (2/2)
2020/12/10 - [iOS/Tips] - Fat Static Library 빌드 (1/2)
2020/12/10 - [iOS/Tips] - Custom UserAgent 설정
2020/12/10 - [iOS/Tips] - CocoaPods 설치 및 제거
2020/12/10 - [iOS/Tips] - Clang diagnostic 경고 무시하기
2020/12/10 - [개발노트] - Bluetooth UUID
2020/12/08 - [개발노트] - 모바일 앱 메모리덤프 이슈 해결방법
'개발 > Note' 카테고리의 다른 글
Luhn 알고리즘 (0) | 2020.06.02 |
---|---|
NFC Xcode 설정 (0) | 2020.05.29 |
NFC Tag 저장용량 (0) | 2020.05.29 |
NDEF (0) | 2020.05.29 |
Mifare (0) | 2020.05.29 |