[連載] 03-1 深入NDEF規範

NFC的手機與NFC標籤之所以可以達到許多網際連接與互動訊息,就是依靠解析存放在TAG記憶體內NDEF訊息區塊的資料,所得到的指示與行動。

你大概也知道,現在市面上的智慧型手機,有著不同的作業系統(OS)。就像APPLE的iPhone是iOS、Google的手機用Android。而不同廠牌的手機,就算是都以Android為主,也都還會有一些小小的差異。如果要讓不同廠牌、甚至不同作業系統的NFC手機之間,都可以讀取同一個NFC標籤,來共享信息的交換的話,就必須制定出一套標準,如同網頁的HTML語法。

這就是NFC協會所制定NDEF規範的目的:即便是使用不同的NFC的手機,都可以用來讀取NFC標籤的資料。而之所以可以完成網際連接與互動訊息的傳遞,就是依靠解析存放在標籤記憶體內NDEF訊息區塊的資料,所得到的指示與行動。 基本上,NDEF訊息的複雜程度和存放的記憶體的容量大小,有著一定的關係。 這意味著只要有足夠的容量,可以設定不只是網際資源的連接,還可以包含自行定義特殊格式(Proprietary)的資料。當然,這些自行定義的資料,你必須開發特定的App來解讀。

在NDEF訊息區塊內所描述的資源記錄(Record)可以不只一筆(如下圖),但均需符合NFC協會的記錄類別標準(RTD; Record Type Definition)文件裡所定義的規範。

(圖03-1-1 NDEF訊息的基本格式)


NDEF的記錄格式

在 NFC協會所定義最簡單的資源記錄(Record)中,如:文字記錄(RTD_TEXT)、資源定址記錄(RTD_URI)或是 MIME媒體位址記錄(Media Recoed),大都只包含單獨的一筆記錄。 而較複雜的智慧型海報記錄(RTD_SMART_POSTER) 與數位簽章記錄(RTD_SIGNATURE),則可以包含多筆的記錄來組成。 

這些所謂不同類別的記錄,均以同一種格式,但其內的資料長度可能不同的方式來描述;為了能達到完整描述一連串的資料,均採用表頭(Header)+資料內容(Payload)的方式;而這裡所謂的表頭,其實是指這筆記錄的類別與型式(Flags & TNF);每一筆記錄資料內容的長度,就由表頭這個位元組來定義,並依此決定其後所存在的欄位組成。

一筆正常的記錄其資料格式如(圖.03-1-2)所示:大致包含有此記錄類別名稱的長度(TYPE_LENGTH)、最多有4個位元組的資料內容長度(PAYLOAD_LENGTH3~0)、資源標識碼的長度(ID_LENGTH)、類別名稱(TYPE_NAME)、資源標識碼(ID)與資料本身的內容(DATA PAYLOAD)。

(圖.03-1-2 只含單筆資源紀錄的NDEF訊息格式)



留言

熱門文章