felica的檔案系統使用“系統資料塊”的結構,如下圖所示。通過這種結構實作對卡片非易失性存儲區的使用和操作。
felica的檔案系統圖
1、資料塊
在felica卡的檔案系統中,非易失性記憶體操作的最小容量機關是16位元組,稱為資料塊。所有的使用者資料以資料塊為機關存取。如果使用者的資料超過16位元組就要以多塊的形式存儲。除了使用者資料,檔案系統的管理資訊也以資料塊的形式存儲。事實上,使用者并不需要直接對資料塊進行操作,而是通過一種被稱為“服務”的機制實作存取。
2、服務
“服務”是檔案系統中資料塊的集合,“服務”提供了集合中資料塊的存取控制。所有資料塊的存取都是通過服務來實作的,是以,向卡片的檔案系統注冊“服務”才有可能存取資料塊。
為了操作“服務”管理下的資料塊,首先通過一個2位元組的服務代碼辨別一個服務,然後使用1個位元組的資料塊号确定服務中資料塊的位置。任何一個服務中的資料塊号都是從0開始。
有3種不同類型的服務:
(1) 随機服務:這是一種普通用途的服務,可以讀寫服務中任一指定的資料塊。
(2) 循環服務:這種服務中的資料滾動管理。寫入新資料的同時将删除最舊的資料。
(3) 錢包服務:這種服務中的資料采用收費滾動管理,自動對塊中指定的資料進行數值操作。
每種服務的存取方法不同。服務的通路屬性可設定為“讀/寫”、“隻讀”、“操作前需要認證”等。
3、域
felica使用“服務”用來管理資料塊,同時使用“域”來管理非易失性存儲區剩餘的可用資料塊或用來配置設定資料塊給服務。
所有的服務都處于某一域的管理之下。是以服務建立的時候需要向主管它的域申請配置設定資料塊。域之間也可以交叉管理,一個域下的資料塊可以配置設定給其他的域,也可以被其他域管理。域使用2位元組的域代碼辨別,其中域0是根域,在卡中總是存在,代碼為0000h。
4、系統
系統是是檔案系統的最進階,一個系統被看成一張邏輯卡片。通過系統分割,可以在一張實體卡片中生成多個系統,與域和服務類似,系統也使用一個兩位元組的系統代碼來表示。
為了識别一張卡片,讀寫器必須使用輪詢指令巡檢射頻場中未知數目的卡片。系統代碼作為輪詢指令的參數,在防沖突的過程中,隻有系統代碼相符的系統做出響應。卡片上如果分了多個系統,讀寫器則像對待一張單獨的卡片一樣對待卡上的每一個系統。
5、域和服務之間的關系
系統中的域和服務使用兩位元組的代碼辨別,每個服務隻能配置設定一個代碼,且在系統中唯一,而域則配置設定了一個代碼段。域所管理的服務代碼中最前面的服務代碼同時又是該域的域代碼。
例如一個服務的服務代碼是12c8h,它所在的域管理的代碼範圍是12c0h~3fffh,則域代碼是12c0h。
域和服務之間以及域和域之間的父子關系通過以下方式确定:
(1) 如果一個服務的服務代碼位于一個域管理的服務代碼範圍内,則該域與對應的服務形成父子關系。
(2)
如果域a管理的的服務代碼位于域b管理的服務代碼範圍内,則該域b與域a形成父子關系。