Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

Contents

NDEF

NDEF(NFC Data exchange Format)는 NFC를 이용한 데이터 통신에서 사용하는 "데이터 교환 형식"이다. 대부분의 NFC 태그는 NDEF 형식으로 저장된 데이터를 전송하는 passive elements로 작동한다. 우리가 폰을 이용해서 NFC 태그에 접촉하면, 애플리케이션은 NDEF 데이터를 읽는다.

NDEF 메시지와 NDEF 레코드

NDEF 메시지는 하나 이상의 NDEF 레코드로 구성된다. NDEF 메시지가 인캡슐할 수 있는 레코드의 갯수는 애플리케이션과 태그 타입에 따라 다르다. NDEF 레코드는 "Header"와 "PayLoad"로 구성된다 아래 그림은 NDEF의 메시지 구성이다.

아래는 NFC Tag로 부터 읽은 데이터의 hexa code의 예제다. "joinc.com"을 전송했다.
03 0e d1 01 0a 55 03 6a 6f 69 6e 63 2e 63 6f 6d 0a
  • 03 : 레코드의 타입이다. NDEF 레코드는 03을 사용한다.
  • 0e : 페이로드의 길이다. 단위는 바이트다.
  • d1 : 가변길이 레코드다. 여기에 담고 있는 정보를 아래에 정리했다.
    d1 을 바이너리 값으로 변환하면 11010001 
  • MB = 1 : 이 레코드는 NDEF 메시지의 첫번째 레코드다.
  • ME = 1 : NDEF 메시지의 마지막 레코드다. 이 값이 0이면 아직 레코드가 더 남아있음을 의미한다.
  • CF = 0 : chunked 메시지가 아니다.
  • SR = 1 : 짧은 레코드인지 아닌지. 레코드가 페이로드를 가지지 않는다면 0을 설정한다.
  • IL = 0 : ID Length를 설정할지를 결정한다. 값이 1 이면 ID_LENGTH 필드가 헤더에 1 옥텟의 크기로 설정된다.
  • TNF = 001 : Type 필드의 값을 명시한다. 0x01은 NFC Forum webll-known type이다.
  • 01 (Type Length) : TYPE_LENGTH 필드는 8-bit 부호없는 정수형으로 TYPE 필드의 길이를 명시한다. TNF가 0x00, 0x05, 0x06이면 항상 0이다.
  • 0a (Payload Length) : 부호없는 integer 타입이다. Payload length 필드의 크기는 SR flag에 의해서 결정된다.
  • 55 : 페이로드의 데이터 타입이다. ASCII 테이블에서 55는 'U'로, URL 타입의 데이터를 의미한다.
  • 03 : 0x03은 URI identifity다.("http://")
  • Payload : 6a 6f 69 6e 63 2e 63 6f 6d 0a (joinc.com)

참고