×
Namespaces

Variants
Actions

Entendendo as mensagens NFC Data Exchange Format (NDEF)

From Nokia Developer Wiki
Jump to: navigation, search

Este artigo explica a estrutura de uma mensagem NDEF com simples Identificador Uniforme de Recursos (URI), (Uniform Resource Identifier, (em inglês)) que descreve o endereço da página web.

Article Metadata

Compatibilidade
Plataforma(s):
Symbian

Artigo
Tradução:
Por cronius
Última alteração feita por hamishwillee em 25 Jul 2013

Introdução

A maioria das tags NFC são elementos passivos que armazenam dados para o leitor (por telemóveis habilitados com NFC) em formato NDEF (NFC Data Exchange Format). Quando tocamos os nossos telemóveis com qualquer tag NFC habilitada, na verdade, é lida a mensagem NDEF pela nossa aplicação. Isto acontece através da aplicação NFC para pilha de protocolos, em seguida o driver de baixo nível, e finalmente as partes de rádio frequência (RF) recuperam os dados das tags.

Neste artigo, vamos tentar explicar a estrutura da mensagem NDEF com simples Uniform Resource Identifier (URI) para descrever o endereço da página web. Nós proporcionamos um exemplo de aplicação da Qt mobility que pode ser usado para testar.

Mensagem NDEF e registo NDEF

O NFC Data Exchange Format (NDEF) especificação define um formato de encapsulamento mensagem para troca de informações, por exemplo, entre um dispositivo Fórum NFC e outro dispositivo Fórum NFC ou um Tag do tipo Fórum NFC. NDEF é um formato de mensagem leve, binário que pode ser utilizado para encapsular uma ou mais cargas de aplicações definidas de tipo e tamanhos arbitrários numa única mensagem.

Uma mensagem NDEF é composto de um ou mais registos NDEF. Pode haver vários registos numa mensagem NDEF. Basicamente uma mensagem NDEF é uma matriz de registos NDEF. Quantos registos podem encapsular numa mensagem NDEF que depende da nossa aplicação e do tipo de tag. Para os nossos propósitos de análise, usamos apenas um registo NDEF. Este registo NDEF guarda lojas http://nokia.com. A seguinte imagem mostra de uma forma generalizada o formato duma mensagem NDEF[1][2].

NdefrecodPT.png

Quando nos comunicamos com os nossos dispositivos de leitura NFC (telemóveis) para ler ou gravar dadospara a tag NFC que lemos, basicamente, (por exemplo http: //nokia . com) o seguinte código hexa:

03 0e d1 01 0a 55 03 6e 6f 6b 69 61 2e 63 6f 6d fe
  • 03 - Este é um byte que define o tipo de registo é isso. Um registo NDEF é representado pelo byte hex 03, com o API da Qt mobility não oferecemos isso, aqueles que são adicionados para nós.
  • 0e - Este é um byte que diz ao leitor quantos bytes estão na carga. Com a API da Qt mobility nós não fornecemos isso, aqueles são adicionados para nós pela plataforma.
  • d1 - Os registos NDEF são registos de comprimento variável com um formato comum ilustrado na figura abaixo.
d1 é código binário (11010001) 

Ndeftnf.png

No nosso caso:

  • MB = 1 (Message Begin significa que este é o primeiro registo na mensagem NDEF)
  • ME = 1 (Message End significa que ele é o último registo na mensagem NDEF, se for 0 diz a aplicação que mais registos estão à frente)
  • CF = 0 (significa esta mensagem não é fragmentada, uma mensagem de NDEF pode conter zero ou mais cargas fragmentadas. Cada fragmento é codificado como um pedaço de registo inicial, seguido de zero ou mais blocos de registo médio e, finalmente, por um pedaço de registo final, no nosso caso simplificamos o nosso registo como não fragmentado)
  • SR = 1 (SR significa breve registo, se definida, que o campo de comprimento da carga é um único octeto. Este layout do registo curto destina-se para o encapsulamento compacto de pequenas cargas que se encaixam dentro de campos de carga de tamanho variando entre 0 e 255 octetos.)
  • IL = 0(IL representa o comprimento de identificação, caso configurado, o campo ID_LENGTH está presente no cabeçalho como um único octeto. Se o sinalizador IL é zero, o campo ID_LENGTH é omitido do cabeçalho de registo e o campo de identificação também é omitido do registo)
  • TNF = 001(O valor do campo de TNF indica a estrutura do valor do campo TYPE. O valor 0x01 (é um tipo bem conhecido no Forum NFC) indica que o campo TYPE contém um valor que segue o formato do nome do tipo RTD definido na especificação do Forum NFC RTD)
    Ndeffullrecod.png
  • 01 (Tipo Comprimento) - O campo TYPE_LENGTH é um inteiro não assinado de 8 bits que especifica o comprimento em octetos do campo TYPE. O campo TYPE_LENGTH é sempre zero para determinados valores do campo de TNF.
  • 0A (Comprimento da carga) - O campo PAYLOAD_LENGTH é um inteiro não assinado que específica o comprimento em octetos do campo da carga (a carga da aplicação). O tamanho do campo PAYLOAD_LENGTH é determinado pelo valor da bandeira SR
  • 55 (TYPE - O valor do campo TYPE é um identificador que descreve o tipo da carga, o tipo de registo URI (“U”) )
  • 03 - 0x03 identificador URI (“http://”)
  • Payload - O resto da string em UTF-8 (nokia.com)
  • Byte final FE. Este é último byte adicionado pela plataforma.

Referências

  1. http://www.developer.nokia.com/info/sw.nokia.com/id/bdaa4a0f-fcf3-4a4b-b800-c664387d6894/Introduction_to_NFC.html
  2. http://www.nfc-forum.org/specs/
This page was last modified on 25 July 2013, at 23:41.
74 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×