Slide 1

Slide 1 text

NFC 近場通訊 Bill Chung 2013/05/25 http://www.dotblogs.com.tw/billchung/

Slide 2

Slide 2 text

http://mvc.tw  Microsoft Visual Basic MVP  台灣微軟特約講師  MSDN 論壇版主  部落格:海角點部落 http://www.dotblogs.com.tw/billchung/ 2 關於我

Slide 3

Slide 3 text

http://mvc.tw 3 http://www.microsoft.com/taiwan/events/win8app/

Slide 4

Slide 4 text

http://mvc.tw  Radio Frequency Identification (無線射頻識別系統)  一個在你生活中已經存在已久的東西  頻率  LF:125K/135K Hz (範圍 10K~1MHz)  HF:13.56MHz (範圍1M~400MHz)  UHF:860~960MHz (範圍400M~1GHz)  Microwave:2.4/5.8GHz 4 認識 RFID

Slide 5

Slide 5 text

http://mvc.tw 5 RFID 頻道 10 kHz 100 kHz 1 MHz 10 MHz 100 MHz 1000 MHz 300 GHz Low Freq. EAS Mid. Freq. EAS Cell Phone RFID: Item Management Data Modem AM Radio Toys Garage Door CB FM RFID: Access Control Animal ID RFID: Toll Roads & Item Management Microwave EAS TV Data Terminal RFID: Smart Cards 2.45 GHz

Slide 6

Slide 6 text

http://mvc.tw 6 常見相關ISO標準

Slide 7

Slide 7 text

http://mvc.tw  NFC (Near Field Communication 近場通訊):為奠基於 RFID 技術的延伸  組織:NFC Forum  相關標準  ISO 18092  ECMA 340  ETSI TS 102 190  操作頻率:13.56 MHz (HF)  距離: < 20公分 7 NFC 基本概觀

Slide 8

Slide 8 text

http://mvc.tw  Max bit rate: 424Kb/s  Communication modes  Active  Passive  Operating modes  Read/Write (Reader Mode)  Peer to Peer  Card emulation (Windows 8/ Phone 8 目前不支援) 8 NFC 基本概觀

Slide 9

Slide 9 text

http://mvc.tw 做為Bluetooth傳輸的認證交握 (Peer to Peer) 設備間直接傳輸 (Peer to Peer)  讀取/寫入 NFC tag (Read/Write)  電子錢包 (需搭配 SIM 卡 / Windows Phone 8) 9 Windows 8 / Phone 8 上的 NFC應用

Slide 10

Slide 10 text

http://mvc.tw  NFC Data Exchange Format  定義 NFC 通訊的內容封裝格式 10 NDEF Format

Slide 11

Slide 11 text

http://mvc.tw NDEF Record Identifiler 11  MB:Message Begin  ME:Message End  CF:Chunk Flag  SR:Short Record  IL:ID Length  IL =0:省略 ID 與 ID Length  TNF:Type Name Format

Slide 12

Slide 12 text

http://mvc.tw NDEF Record Length 12  Type Length  ID Length

Slide 13

Slide 13 text

http://mvc.tw NDEF Record Type 13  Type  ID

Slide 14

Slide 14 text

http://mvc.tw  NFC Forum Type  Type1:  96 bytes of memory, expandable up to 2KB  Compatible products : Broadcom BCM20203  Type2:  96 bytes of memory, expandable up to 2KB  Compatible products : NXP MIFARE Ultralight 14 NFC Tags (1)

Slide 15

Slide 15 text

http://mvc.tw  Type3:  Variable memory, up to 1 MB per service  Compatible products : Sony FeliCa  Type4:  Variable memory, up to 32 KB per service  Compatible products : NXP DESFire, SmartMX-JCOP 15 NFC Tags (2)

Slide 16

Slide 16 text

http://mvc.tw  NXP Specific Type  NXP Mifare Classic  Variable memory 192/768/3584 Bytes  NXP Mifare Classic Mini, 1K, 4K 16 NFC Tags (3)

Slide 17

Slide 17 text

http://mvc.tw  目前 Windows 8/ Windows Phone 8 的 NFC API 只支 援到 NDEF 格式讀寫,Tag 在使用前必須先格式化成 NDEF  NFC 晶片存在相容性的問題  NXP 的 NFC 晶片一般來說是問題比較少的 17 Tag 使用注意事項

Slide 18

Slide 18 text

http://mvc.tw  Windows.Networking.Proximity Namespace  ProximityDevice Class  ProximityMessage Class  WMAppManifest (WP8)  啟用 ID_CAP_PROXIMITY  Package.appxmanifest (Win8)  啟用 Proximity 18 Windows 8/ Phone 8 NFC API

Slide 19

Slide 19 text

http://mvc.tw 19

Slide 20

Slide 20 text

http://mvc.tw 20 NFC Sample 1 (WP8 偵測 NFC) 使用 GetDefault 方法取 得本機的 NFC 裝置 注意: 這兩個事件委派都 會在另一個 Thread 中執 行

Slide 21

Slide 21 text

http://mvc.tw NFC Sample 2 (Win8 偵測 NFC) 21 只有跨執行緒的處理不同

Slide 22

Slide 22 text

http://mvc.tw 22

Slide 23

Slide 23 text

http://mvc.tw Message Protocol 23  Windows  WindowsUri  WindowsMime  Windows:WriteTag  WindowsUri:WriteTag  WindowsMime:WriteTag  LaunchApp:WriteTag  WriteableTag  NDEF  NDEF:ext  NDEF:MIME  NDEF:URI  NDEF:wkt  NDEF:WriteTag  NDEF:Unknown 參考 ProximityDevice.PublishBinaryMessage(String, IBuffer)

Slide 24

Slide 24 text

http://mvc.tw  訊息資料包含 UTF-16LE 編碼的 URI 字串。  Windows 一律藉由提示使用者檢視收到的 URI 來處理 "WindowsUri" 訊息 (在處理特定 URI 通訊協定的 Windows 預設應用程式中),例如,http:// URI 會在預設 Web 瀏覽器 中開啟。Windows 會在預設應用程式中開啟 URI,即使有 其他應用程式也訂閱 "WindowsUri"。 24 WindowUri

Slide 25

Slide 25 text

http://mvc.tw  使用 PublishUriMessage 方法,而不是以這個通訊協定呼 叫 PublishBinaryMessage 方法。  如果您將 URI 發佈至沒有執行 Windows 的電腦,則 URI 會 自動根據您電腦支援的近接感測技術進行格式化。例如,如 果您的電腦使用近接感測的 NFC 硬體,URI 會格式化為 NDEF URI 記錄。 25 WindowUri

Slide 26

Slide 26 text

http://mvc.tw  如果您訂閱的是 "WindowsUri" 訊息,而且 Windows 電腦 會接收電腦支援之近接感測技術所格式化的訊息,則 Windows 會讀取格式化的訊息,並且只傳回 URI 做為訊息 內容。 26 WindowUri

Slide 27

Slide 27 text

http://mvc.tw 訊息資料是特定的 MIME 類型。例如,如果訊息資料是 jpeg 影像,則訊息類型為 "WindowsMime.image/jpeg"。 27 WindowsMime

Slide 28

Slide 28 text

http://mvc.tw Windows 一律藉由提示使用者檢視收到的 MIME 內容 來處理 "WindowsMime" 訊息,即使也已針對 MIME 內容訂閱應用程式。 28 WindowsMime

Slide 29

Slide 29 text

http://mvc.tw 如果您將 "WindowsMime" 訊息發佈至沒有執行 Windows 的電腦,則訊息內容會自動根據您電腦支援 的近接感測技術進行格式化。例如,如果您的電腦使用 近接感測的 NFC 硬體,訊息內容會格式化為 NDEF MIME 記錄。 29 WindowsMime

Slide 30

Slide 30 text

http://mvc.tw  如果您要發行 "WindowsMime" 訊息,您永遠都必須包含 MIME 類型。如果您訂閱的是 "WindowsMime" 訊息,則可 以使用沒有指定 MIME 類型的 "WindowsMime" 來訂閱所 有 MIME 類型訂閱。如果您訂閱的是特定 MIME 類型,而 且 Windows 電腦會接收電腦支援之近接感測技術所格式化 的訊息,則 Windows 會讀取格式化的訊息,並且只傳回 MIME 內容做為訊息內容。如果您訂閱 MIME 類型,則收到 的前 256 個位元組會是 ASCII MIME 類型字串,而剩餘 的位元組就是 MIME 內容。 30 WindowsMime

Slide 31

Slide 31 text

http://mvc.tw 由 Message Protocol 和 Sub type 組合而成  Windows.Sample  WindowsMime.image/jpeg  NDEF:URI.http://contoso.com/sometype WindowsUri 不需要 sub type 31 Message Type

Slide 32

Slide 32 text

Publish Message 32 public long PublishBinaryMessage ( string messageType, IBuffer message, MessageTransmittedHandler messageTransmittedHandler )

Slide 33

Slide 33 text

http://mvc.tw  messageType 類型: System.String  要傳遞給訂閱者之訊息的型別。  message 類型: IBuffer  要傳遞給訂閱者的二進位訊息資料。  messageTransmittedHandler 類型: MessageTransmittedHandler  已傳送訊息時所要呼叫的處理常式。 33 參數

Slide 34

Slide 34 text

http://mvc.tw  類型: System.Int64 [.NET]  已發行訊息的唯一發行集識別碼。  用途  您可以發出多個相同訊息類型的訊息,而每次發出都會有相關 聯的唯一識別碼。  您可以將 PublishBinaryMessage 方法所傳回的發行集識別 碼傳遞至 StopPublishingMessage 方法,藉此停止發行訊息。 34 回傳值

Slide 35

Slide 35 text

http://mvc.tw NFC Sample 3 (WP8 Publish Message) 35 注意: 委派會在另一個 Thread 中執行

Slide 36

Slide 36 text

http://mvc.tw 36 若要改成寫入卡片 只要改 message type 加上 :WriteTag 就可以了

Slide 37

Slide 37 text

Subscribe Message 37 public long SubscribeForMessage ( string messageType, MessageReceivedHandler messageReceivedHandler )

Slide 38

Slide 38 text

http://mvc.tw  messageType 類型: System.String [.NET]  要傳遞給這個訂閱之訊息的型別。  messageReceivedHandler 類型: MessageReceivedHandler  當鄰近提供者在傳遞訊息時將會呼叫的處理常式。 38 參數

Slide 39

Slide 39 text

http://mvc.tw  類型: System.Int64  訂閱的唯一識別碼。  用途  您可以藉由傳遞 SubscribeForMessage 方法傳回至 StopSubscribingForMessage 方法的訂閱識別碼來取消訂閱。 39 回傳值

Slide 40

Slide 40 text

http://mvc.tw NFC Sample 4 (Win8 Subcribe Message) 40 注意: 委派會在另一個 Thread 中執行

Slide 41

Slide 41 text

http://mvc.tw 41

Slide 42

Slide 42 text

http://mvc.tw  純文字  使用 PublishMessage  Uri  使用 PublishUriMessage 42 簡化 Publish

Slide 43

Slide 43 text

http://mvc.tw 以寫入 Uri 為例 43

Slide 44

Slide 44 text

http://mvc.tw  NDEF Library for Proximity APIs (NFC)  使用 PublishBinaryMessage 44 使用 NDEF 協定

Slide 45

Slide 45 text

http://mvc.tw  以下兩種分享方式,可不需程式碼,直接經由 Share Contract 透過輕觸傳送分享  Share StorageItems  Share Link 45 Win8 上的特殊用法 – Share Contract

Slide 46

Slide 46 text

http://mvc.tw 46

Slide 47

Slide 47 text

謝謝各位 • 本投影片所包含的商標與文字皆屬原著作者所有。 • 本投影片使用的圖片皆從網路搜尋。 • 本著作係採用 Creative Commons 姓名標示-非商業性-相同方式分享 3.0 台灣 (中華民國) 授權條款授權。 h t t p : / / m v c . t w