2016-02-12 4 views
1

Я работаю над проектом Python с помощью моей малины Pi и платы RFID-RC522. В качестве тегов NFC я использую NXP NTAG213. Теперь я планирую хранить ссылки на теги. Я могу читать/писать на них без проблем. Но я не понимаю, как определить заголовок NDEF для сохраненных данных в тегах.Определение сообщения NDEF

Когда я пишу ссылку на тегах с помощью своего смартфона и читать его с моей программой данные, сохраненные в теге выглядит следующим образом:

Заголовок ЦНК для URL «http://www.gmx.at» является

[3, 11, 209, 1, 7, 85, 1, ... (Data)] 

Я узнал, что некоторые из этих параметров меняются, когда я пишу другую ссылку, но некоторые остаются неизменными.

Я нашел это tutorial, который описывает различные поля заголовка NDEF, но я все еще не понимаю, как мне нужно установить их для хранения ссылки на веб-сайт.

Я был бы очень рад, если кто-нибудь сможет описать, как мне нужно правильно рассчитать/определить параметры для ссылки.

ответ

2

Для того, чтобы понять формат NDEF и способ хранения данных в формате NDEF в теге NFC Forum Type 2 (который является платформой тегов, который реализуется NTAG213), я предлагаю вам прочитать следующий форум NFC характеристики:

данные, которые вы читаете п rom тег - это объект TLV сообщения NDEF, содержащий сообщение NDEF, состоящее из одной записи URI.

  • NDEF Сообщение TLV:

     
    0x03    TLV tag = NDEF Message TLV 
        0x0B   TLV length = 11 bytes 
        0xD1 ... 0x74 TLV value = NDEF message 
    

    Это означает, что тег содержит сообщение ЦНК с длиной 11 байтов. Сообщение NDEF: 0xD1 ... 0x74.

  • ЦНК сообщение:

     
    0xD1    Record header 
            Bit 7 = MB = 1: first record of NDEF message 
            Bit 6 = ME = 1: last record of NDEF message 
            Bit 5 = CF = 0: last or only record of chain 
            Bit 4 = SR = 1: short record length field 
            Bit 3 = IL = 0: no ID/ID length fields 
            Bit 2..0 = TNF = 0x1: Type field represents an NFC Forum 
                 well-known type name 
        0x01   Type length = 1 byte 
        0x07   Payload length = 7 bytes 
        0x55   Type field = "U" (in US-ASCII) = binary form of type name urn:nfc:wkt:U 
        0x01 ... 0x74 Payload field = URI record payload 
    

    Это означает, что сообщение ЦНК состоит из одной записи URI (имя типа урн: НФК: WKT: U) после определения типа URI записи.

  • URI записи полезной нагрузки:

     
    0x01    Identifier byte = URI prefix "http://www." 
    0x67 ... 0x74 URI field (UTF-8 encoded) = "gmx.at" 
    

    Это означает, что URI запись указывает на URI "http://www.gmx.at".

Смежные вопросы