你說『NFC萬物可用』,那NFC要怎麼用?

如果你用過『悠遊卡』、『一卡通』搭乘過捷運或公車,其實你應該已經熟悉NFC的使用方式。在《NFC說文解字》篇裡,已經提過NFC基本的三種運作模式,而其中最簡單與常用的就是所謂的『主動模式:NFC設備可作為一個讀寫器(Reader),可以主動發出電磁場去識別與讀/寫其他的NFC設備或標籤(Tag);』,也就是說,在應用情境裡,用Reader來識別Tag的身份,並存取其內的資料。

在“感應票卡搭乘捷運”的情境裡,閘口的感應區裡就有Reader,乘客手中的『悠遊卡』就是Tag,當乘客將卡靠近時,Reader就能識別悠遊卡並做扣款註記;

又譬如:玩任天堂的SWITCH,在“動物之森”的遊戲裡,使用手把上的Reader來感應某個藏在動物公仔底部的標籤Tag,就可以邀請該動物到目前的遊戲裡作客;



所以當使用情境中的Reader角色,換成你手中的NFC手機時,就可以存取感應標籤裡的資訊。而這感應標籤的形式,可以是一張貼紙或是植入在物件內的Tag,因為這個Tag不需要帶電源,所以萬物可為,就可以有無限的想像。但請記住,剛才的應用情境裡,其實有兩個要點:其一是Tag的身分識別,再者是Tag的記憶體存取。

首先,要談『Tag的身分識別』。這裡的Reader是個主動設備,可以建立一個頻率為13.56MHz的無線射頻感應場,只要有符合NFC協會規範的各型Tag進入場中,就可以透過Tag的天線來感應生電來啟動晶片,並進入等待狀態;Reader為了識別是何型的Tag在場中,會以輪詢可支援的通訊協定來做輪詢(Polling),發出REQ的探詢命令;一旦有Tag回應了這個命令,便有後續一連串取得Tag唯一識別碼(UID)、讀取其CC(Capability Container)容量資訊,或進一步解析NDEF內涵等動作。

基本上,Android 與 iOS 的手機對NFC Tag的作為,大致上依照上面相同程序來進行;但就支援的API函式庫的用語、還有表現上還是有其差異性。在Android會使用“TagTechnology”來表示識別到的Tag型態,包括:IsoDep, MifareClassic, MifareUltralight, Ndef, NdefFormatable, NfcA, NfcB, NfcBarcode, NfcF, NfcV等;而iOS則以“TagType: Protocol”來傳送,包括:NFCISO15693Tag, NFCISO7816Tag, NFCFeliCaTag, NFCMiFareTag, NFCNDEFTag 等。請參考下圖的對照表。


特別要一提的是在手機解鎖狀態下,都可以支援所謂的“Background Tag Reading”,就是可以不經特定的APP,直接在幕後讀取Tag的NDEF內涵,然後進行其指定的相關動作。也就是說,如果是ㄧ個空白的Tag,就必須用APP來啟動Reader模式,來指定某個協定或安排輪詢的方式進行Tag的存取。

當然,不同類型的Tag存取的命令與格式都會有不同,但基本上都可以下達Transceive的方式進行,細節請直接參考各平台的程式庫說明:Android | iOS 。


留言

熱門文章