天天看點

射頻識别技術漫談(25)——Felica簡介

felica是sony公司開發的射頻識别技術,該技術使用的載波頻率與iso14443a和iso14443b一樣,都是13.56mhz,是以有人把它稱為iso14443c,但sony并沒有正式接受這樣的稱謂。

    felica技術并不是一個完全公開的協定,尤其是該技術涉及安全認證和加密的部分,sony的保密做的很好。本文介紹的也僅是其公開的部分資訊。

    felica技術的通訊協定包括三層:實體層描述資料傳輸的實體和電氣特性;

資料鍊路層描述資料傳輸和錯誤檢測的格式;應用層描述指令的功能和規範.

    felica射頻傳輸的實體特性如下表所示

 felica射頻接口的實體特性

資料傳輸方法

半雙工同步系統

載波頻率

13.56mhz

調制方法

ask

位編碼方法

manchester編碼,msb在前

資料傳輸速率

212/424 kbps

    felica卡片和讀寫器之間的資料傳輸使用資料包。資料包的格式如下:

資料包各部分定義

名稱

位元組長度

定義

前導碼

6

00 00 00 00 00 00

同步碼

2

b2 4d

資料長度

1

包資料長度+1

包資料

n

指令包或傳回包中的資料

crc

基于crc-ccitt的校驗,

初始值=0000h,

生成多項式:x16+x12+x5+1

    felica技術應用層的指令包由指令碼和指令資料兩部分組成,包括1位元組的指令碼和n位元組的指令資料。指令碼辨別指令的類型,指令資料為本條指令執行所需的資料。讀卡器指令發出後卡片回複一個響應包,響應包由1位元組響應碼和n位元組響應資料兩部分組成。響應碼辨別響應的類型,響應資料為本條指令執行後卡片傳回的資料。

    felica指令清單如下:

指令

指令碼

響應碼

功能簡述

輪詢

00h

01h

探測識别卡片

請求服務

02h

03h

驗證卡片上是否存在指定的域或服務

請求響應

04h

05h

驗證射頻場中是否有卡

不需認證讀

06h

07h

從不需認證的服務中讀取資料塊

不需認證寫

08h

09h

向不需認證的服務中寫入資料塊

請求系統碼

0ch

0dh

讀取卡片上已注冊的系統碼

認證1

10h

11h

讀寫器認證卡片

認證2

12h

13h

卡片認證讀寫器

14h

15h

從需認證的服務中讀取資料塊

16h

17h

向需認證的服務中寫入資料塊

    felica有兩個重要的參數:出廠識别碼(idm)和出廠參數(pmm)。idm和pmm可以使用輪詢指令獲得,idm和pmm在出廠時固化在卡片中,卡片出廠後不能修改。

    felica使用出廠識别碼(idm)在通訊中識别一張卡片。idm包含制造商代碼和卡片識别碼兩部分。

    出廠參數(pmm)包括2位元組的晶片類型(用來識别産品)和6位元組的最大響應時間參數(用來确定每一條指令的逾時時間)。

    felica采用基于時隙的方法實作卡片的防沖突機制。為了識别一張卡片,讀寫器必須使用輪詢指令輪詢未知數量的卡片。卡片收到輪詢指令後,以随機的方式選擇一個時隙,并在讀寫器呼叫該時隙時予以應答,進而實作防沖突。

    當讀寫器正确接收一個卡片對于輪詢指令的應答,讀寫器可以獲得卡片的idm,在之後的通訊中,讀寫器通過在指令包中包含idm,就可以從射頻場的多張卡片中唯一的指定一張進行通訊。卡片收到指令後将把自己的idm與指令包中的idm比對,如果不同卡片不會對指令做出反應。這種機制實作了射頻場中的卡片選擇。