顯示具有 NFC 標籤的文章。 顯示所有文章
顯示具有 NFC 標籤的文章。 顯示所有文章

2011年8月7日 星期日

linux nfc kernel driver pn544

讀 linux kernel "Documentation/nfc/nfc-pn544.txt"

感謝作者: Jari Vanhala
聯絡方式: Matti Aaltonen (matti.j.aaltonen at nokia.com)

兩個可參考的驅動程式: "drivers/nfc/pn533.c", "drivers/nfc/pn544.c" 感謝 Nokia 的愛心。

使用 linux kernel 的 misc device, device name /dev/pn544
其中 pn544 有 I2C, SPI, HSU 三種介面但驅動程式只提供 I2C 介面實作

對 user space 介面有 sysfs 的硬體測試與 IOCTL 切換 HCI, firmware update 兩種工作模式,傳輸訊息的方式有三種:read, write, poll

由 user space 傳訊息到 PN544  晶片進行控制,驅動程式目前只傳遞訊息不瞭解訊息內容

溝通協定

正常的 HCI 模式與 firmware update 模式的 read/write 行為不太一樣,因為兩種模式的訊息格式與溝通協定都不同。

HCI模式的溝通協定採用 ETSI 的 HCI spec,firmware update 則另有特殊協定。

HCI 訊息有 8 bit header 跟訊息內容。header 包括訊息長度,最大 33 bytes。傳送出去的訊息需要經過 checksum 驗證。

Firmware update 訊息長度存在第二(MSB)跟第三(LSB)位元組,最大值 1024 bytes.

sysfs 的硬體測試指的是讀取 sysfs 檔案後能將 pn544 轉為 firmware update mode,如果未提供測試則不需要建立此 sysfs 檔案。

使用範例:

 60 Example:
 61 > cat /sys/module/pn544/drivers/i2c\:pn544/3-002b/nfc_test
 62 1

正常運作流程:
device 檔案 open 後 pn544 就給電,未開啟前斷電,一次只能有單一使用者。user space 應用程式使用 HCI 訊息控制。 當有資料可讀時就發出一次中斷,當 user space 下 read 時才從 pn544 實際讀取資料,poll() 檢查 read interrupt state。設定與單元測試都由 user space 的 read/write 完成。

範例 platform data:


78 static int rx71_pn544_nfc_request_resources(struct i2c_client *client)
79 {
80 /* Get and setup the HW resources for the device */
81 }
82
83 static void rx71_pn544_nfc_free_resources(void)
84 {
85 /* Release the HW resources */
86 }
87
88 static void rx71_pn544_nfc_enable(int fw)
89 {
90 /* Turn the device on */
91 }
92
93 static int rx71_pn544_nfc_test(void)
94 {
95 /*
96 * Put the device into the FW update mode
97 * and then back to the normal mode.
98 * Check the behavior and return one on success,
99 * zero on failure.
100 */
101 }
102
103 static void rx71_pn544_nfc_disable(void)
104 {
105 /* turn the power off */
106 }
107
108 static struct pn544_nfc_platform_data rx71_nfc_data = {
109 .request_resources = rx71_pn544_nfc_request_resources,
110 .free_resources = rx71_pn544_nfc_free_resources,
111 .enable = rx71_pn544_nfc_enable,
112 .test = rx71_pn544_nfc_test,
113 .disable = rx71_pn544_nfc_disable,
114 };


NXP pn544 introduction pdf
including: contact less procotols, host interfaces, power cosumption

NXP NFC 的 peer to peer, card emulation, Reader三種模式與使用的溝同協定說明

值得注意的是,就專利版圖來看,目前 NFC 市場並沒有真正的大廠,前六強分別是 Sony, Broadcom, IBM, Nokia, Panasonic, NXP

2011年1月5日 星期三

RFID 產業與 Google Android 2.3 NFC 關係

Barcode 條碼、RFID(電子標籤)的技術組成分為

1. RF tag(標籤)

源由:Barcode 條碼,發展以地域分類:
  1. 美系:統一商品條碼"(Universal Product Code簡稱UPC)
  2. 歐系:歐洲商品條碼"(European Article Number簡稱EAN)
RFID 高頻標籤頻段:800MHz, 900MHz
UHF (超高頻) Class1 RFID
安全加密驗證:TI 與 Certicom 的研究
EPC(Electronic Product Code) code, next generation barcode(EGC Gen 2)
條碼標準概觀: http://www.gs1tw.org/twct/web/EPC/epc01.html
使用廠商:沃爾瑪、美國國防部、麥德龍、思科
tag 與 code的關係:RFID tag 這種封裝技術,載有 EPC code

2. RFID 專利持有公司
表一 RFID專利許可證合夥機構與RFID智慧產財權授權計畫之比較

RFID智慧產財權授權計畫 (Rapid Start RFID Licensing Program)
參與廠商: SAMSys, Zebra科技, 飛利浦半導體、夏普、Sensormatic以及TransCore公司
目的: 能夠更為明確那些廠商具有合法使用Intermec公司145項專利RFID技術的權利

RFID專利許可合夥機構 (RFID Patent Licensing Consortium)
參與廠商: Alien科技公司, Applied 無線辨識組織, Avery Dennison, Moore Wallace,
Symbol科技, ThingMagic, Tyco Fire & Security, Zebra科技
目的: 讓廠商簡化使用全部廠商之RFID專利,一共3,000多項專利.

Source : 財團法人國家實驗研究院科技政策研究與資訊中心 整理,2005年8月

3. 條碼與讀取器間問題:
  1. 多標籤碰撞解法與讀取速度的取捨
  2. tag 受應用材料影響頻率訊號
  3. 天線方向影響讀取率,假如 tag 與 reader 兩天線正交則無訊號

4. RFID 相對於傳統條碼的優點
  1. 可長距離(超過 7 公尺), 在 0.2秒(200milli seconds)有 95% 讀取率
  2. 可多標籤讀取

5. RF Reader(讀取器),
  1. Data logger, 以 cloud computing 術語來看是 (embedded) thin client

6. Middleware(中介系統軟層),
  1. 分為 Server 端與 Client 端兩大類

7. Application(終端應用程式與使用者介面)
  1. 系統廠或承包服務廠商撰寫

8. Network, Cloud computing, 物聯網
  1. 應用:物聯網(網路伺服器),
  2. 飲料應用條碼, 追溯條碼,
  3. 物流應用:大賣場(Wall-Mart)、貨運公司(DHL)
  4. 國際標準:EPCglobal Network Framework, 組織(GS1)
傳統的手機加 Camera 再下載條碼掃瞄軟體,就視為 reader 端。
最近 Google 在 Android 2.3 力推 NFC:
  1. 用在取代信用卡、現金的電子錢包上就偏 tag 端,而店家、廠商就需要使用 NFC reader 端機器來讀取手機上的 NFC tag。
  2.  用在廣告客製化上 Android 2.3 + NFC 也是 tag 端,廣告播放機則需要有 NFC reader.
2011/05/14 update

Google I/O 2011: How to NFC 的一小時現場 demo,可以看到目前 Google 是把 Android 的 NFC 功能當作複製 Android 使用者環境與行
為的工具,比如複製看到的文字、圖型檔案,應用程式,在對戰遊戲中
甚至可以直接 NFC 連線對戰,如果對方還沒安裝 NFC 也會自動導向該
遊戲的 Android Market(Google Play) 網頁,讓你直接下載新遊戲。

Google 的 NFC demo 除了前述功能外,還強調了克隆、複製 Android 使用情境。

Google I/O 2011: How to NFC
http://www.youtube.com/watch?v=49L7z3rxz4Q

2011/06/06 update:
Google 為了推廣 NFC 的電子錢包應用,五月推出了 Google Wallet 
應用推廣專頁,Google 錢包一推出就被 Paypal 告侵權,但 Google 目
前否認有竊取 Paypal 的商業機密。

2011/06/13 update:
Why is NFC so important? 一文中提出了 NFC 與 RFID 等相近協定的
差異之處,讓我們瞭解為何 NFC 的推出值得我們注意。
  1. NFC 在一個 reader 前可以當作被動的裝置,可以提供簡易的條碼序號,也可能當作一個無線信用卡,因此我們可以將 NFC 裝置當作電子錢包使用。有 NFC 被動裝置就可以在任何可以讀取 NFC 的機器購買東西。
  2. NFC 可以讀取被動裝置,因此 NFC 也可以讀取別人的信用卡資訊,也可以讀取折購優惠資訊,因此你的手機也可以讓你賣東西給任何擁有類似 Visa Wave 無線感應卡片的買家。
  3. NFC 支援 Reader 之間的溝通,因此任兩支手機可以透過 NFC 進行溝通,如果手機中儲存了電子金錢的資訊,就可以達到個人對個人的金流交易。
看完以上三點,很明顯的讓我們知道 NFC 的使用將有極大潛力改變未
來的金流方式。

參考:
  1. 中研院-RFID產業標準-EPCglobal Network介紹
  2. RFID產業組織提議成立專利權許可合夥機構
  3. 傳技資訊 RFID 產業發展現況與挑戰
  4. Google Wallet