2016-02-12 71 views
1

我正在使用Raspberry Pi和RFID-RC522板開發Python項目。作爲NFC標籤,我使用恩智浦NTAG213。我現在的計劃是在標籤上存儲鏈接。我可以讀/寫他們沒有問題。但我不明白如何爲標籤上存儲的數據定義NDEF頭。定義NDEF消息

當我寫在標籤上的鏈接與我的智能手機,並與我的程序讀取它在標籤上存儲的數據是這樣的:

的NDEF報頭的URL「http://www.gmx.at」是

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

我認識到,當我編寫另一個鏈接時,其中一些參數會發生變化,但有些仍然保持不變。

我發現這tutorial它描述了NDEF標題的不同字段,但我仍然沒有得到如何設置它們來存儲鏈接到網站。

如果有人能描述我需要如何正確計算/定義鏈接的參數,我會非常高興。

回答

2

爲了解NDEF格式和NDEF格式數據如何存儲在NFC論壇2型標籤(這是由NTAG213實現的標籤平臺),我建議您閱讀以下NFC論壇規格:

你讀f顯示數據rom標記是一個NDEF Message TLV對象,它包含一個由一個URI記錄組成的NDEF消息。

  • NDEF消息的TLV:

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

    這意味着,標籤包含具有11字節長度的NDEF消息。 NDEF消息是0xD1 ... 0x74

  • NDEF消息:

     
    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 
    

    這意味着NDEF消息由一個URI記錄(類型名甕U:NFC:WKT)的下面的URI記錄類型定義。

  • URI記錄有效載荷:

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

    這意味着URI記錄指向URI 「http://www.gmx.at」。