Felica的文件系统
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形成父子關系。
總結
以上是生活随笔為你收集整理的Felica的文件系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java程序员简历模板
- 下一篇: 一个很酷的快速开发代码生成器系统