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比對,如果不同卡片不會對指令做出反應。這種機制實作了射頻場中的卡片選擇。