薛世帥,劉 丹,徐 展,李建紅
電子科技大學 電子科學技術研究院,成都 611731
有源RFID標簽安全文件系統的設計
薛世帥,劉 丹,徐 展,李建紅
電子科技大學 電子科學技術研究院,成都 611731
隨著有源RFID[1]應用技術的不斷成熟,有源RFID標簽所具有的功能也越來越復雜。在基本的RFID應用中,包括標簽ID、標簽屬性等各種標簽元數據需要存儲;在有源RFID定位系統中,標簽存儲的各種定位信息可以輔助定位算法更精確地定位標簽位置;在有源RFID用于物品管理[2]時,每個標簽都會管理大量的物品,這時必須對物品信息進行存儲;在有源RFID安全應用中,很多的安全數據需要可靠存儲。而有源RFID標簽的低功耗需求[3-5]又是不會改變的,并且需要保證有源RFID標簽有較高的存取速度。所以,在安全和速度并重的有源RFID系統應用中使用存儲效率高的FRAM[6]存儲設備進行數據存儲是一個不錯的選擇。本文結合以上需求,設計一個基于FRAM存儲設備的用于有源RFID標簽的安全文件系統。
文件系統[7]是系統用于管理數據的一種工具。例如,最熟悉的微軟操作系統上使用了FAT格式[8]、NTFS格式[9]的文件系統。Linux系統上更廣泛地支持多達幾十種文件系統。但這些文件系統大都為較大的存儲設備而設計,對于FRAM小型文件系統并不適合。在嵌入式系統上面,Contiki系統中帶有一個為FLASH設備設計的Coffee[10]文件系統,但其文件創建時就必須指定文件長度的規定使得其實用性大大降低。綜合考慮,本文通過改進FAT文件系統,實現了滿足RFID系統需要而又輕便安全的文件系統。
FAT文件系統主要由BPB(啟動參數塊)、FAT表(文件分配表)和數據區組成。FAT文件系統使用簇來管理存儲設備。簇的大小是扇區的整倍數,扇區大小為固定512 Byte。
FAT文件系統目錄項大小為32 Byte的整數倍。FAT文件元數據沒有安全控制屬性。文件的安全性極差。但是,正是這種極簡設計,使得文件系統的效率相當高,這也使得該文件系統的生命延續了幾十年,甚至現在還在使用。
本文設計的文件系統針對FAT文件系統的缺點,對其進行以下方面的改進:
(1)增加文件FAT表索引[11],以提高文件隨機訪問的性能,使隨機訪問的復雜度降低為O(1)。
(2)優化修改FAT文件的目錄項,減少其大小,增加文件安全控制選項,對系統的文件操作安全性提供充分的支持。并提供優化的打開的文件在內存中的表示。
(3)增加靈活的讀寫緩沖機制,以增加文件系統魯棒性。
3.1 增加FAT表索引
一般情況下,文件系統對文件的隨機尋址工作都是通過順序遍歷FAT鏈表來實現。如果這些FAT鏈表都在內存中,訪問速度就會很快。但是在資源有限的RFID標簽來說,這是不現實的。所以,本文在文件系統中對大文件增加了一個FAT表索引。
本文的FAT表索引就是對于一個文件FAT鏈表中的所有FAT號,每隔N個選取一個進行另外存儲。這樣無論從多少偏移進行文件讀寫,尋找對應存儲塊的時間總是不會超過N次對FAT的讀取,這樣就可以把文件的隨機訪問時間從線性復雜度降低為常數復雜度。FAT表索引存儲在單獨分配的存儲塊內,并且在文件目錄項中指示其存儲位置。
3.2 文件元數據改進
在FAT文件系統中,文件元數據就是文件目錄項。占用空間大小為32 Byte的整倍數。FRAM存儲空間非常寶貴,這里文件元數據設計要充分考慮存儲空間的使用效率以及文件系統的性能。本文件系統把文件元數據分割為目錄項和文件屬性信息兩部分,并使用目錄項和文件屬性分開分別存放的方法。這樣在RFID閱讀器發出列出目錄下面文件的時候,標簽只用應答目錄項,而不傳輸文件屬性,這對RFID的盤存效率是有很大提升的。
3.2.1 目錄項設計
本文件系統的目錄文件的內容由該目錄下的文件目錄項組成。這些信息在列表目錄時通過射頻鏈路傳送給RFID閱讀器。文件目錄項結構如表1所示。

表1 文件系統目錄項設計
由于對于RFID標簽來說,其文件的閱讀對象是RFID閱讀器,而不是人。所以其文件名僅僅起一個辨別不同文件的作用,而不必體現文件的意義。所以本文用“文件ID”替代“文件名”。這樣可以使文件名占用空間縮小到2個字節。文件標志的最高三位用來表示文件類型(包括目錄文件、普通文件兩種),其余5位是訪問權限位。文件起始塊編號標示文件數據起始所在的存儲塊編號。FAT索引起始塊編號用來提高文件隨機訪問的性能。
3.2.2 文件屬性設計
文件屬性用來記錄文件的長度、訪問密碼等信息。這部分信息在打開文件操作時,被加載進入內存。完整的文件屬性組成結構如表2所示。

表2 文件屬性
3.2.3 文件系統安全支持
安全文件操作使用目錄項中文件標志的低5位來控制對文件的讀取、修改操作。如果通過相關安全檢查則調用文件操作層接口進行文件的讀取或者修改。文件安全相關標志具體定義如表3所示,bn代表字節中的第n位。

表3 文件安全性設計
3.2.4 文件的打開及其在內存中的表示
當文件的屬性和一些文件相關的運行時信息被加載入內存的時候,文件就處于被打開狀態。在內存中,本文用棧結構來保存打開的文件信息。每打開一個目錄或者文件,其相關數據將會被壓入棧中。棧頂元素永遠是當前打開的文件,也是唯一可以進行讀寫操作的文件。緊挨著棧頂的元素則是當前打開文件所在的目錄。每關閉一個文件,就會彈出棧頂元素。文件在內存中表示的存儲結構包含目錄項、文件屬性、當前操作偏移和一些輔助提高訪問速度的域。
3.3 緩沖層設計
在本安全文件系統中,文件系統對FAT表的讀寫為每次2個字節的設備讀寫操作。這種情況會造成設備的頻繁讀寫,嚴重影響讀寫效率。根據數據讀寫的局部性原理,本文件系統設計了一個位于內存中的緩沖層來提高文件系統讀寫的效率。又考慮到有源RFID標簽RAM容量小,本緩沖層設計為可以調整內存占用大小。緩沖層最小內存占用大小可以為幾個字節。
3.3.1 緩沖層存儲設計
本文在緩沖層使用了一級緩存,多塊緩存的方法來解決系統中的緩存問題。所謂的多塊緩存是指緩沖區由一個緩存隊列組成。隊列中每個子緩存區可以緩存固定大小字節的數據,子緩存區內容可以單獨更新,子緩存之間的內容互不影響。
緩沖區由A、B兩個參數來實現緩沖區時間和空間效率的靈活調優。A標示每個子緩存區的大小,B標示緩沖區中子緩存區的的個數。緩沖區占用內存的大小可以如下計算:
(1)每個子緩沖區大小為2A;
(2)緩沖區中子緩沖區個數為2B;
(3)緩沖層占用的系統內存為2A×2BByte。
如果緩存區有效內容被改變,該子緩沖區要做出標記,并且要在以后的某個適當時刻寫回到存儲設備相應的地址。所以,每個子緩存區要有一個“dirty”標志。
緩沖層定義了2B個子緩沖區。本文把子緩存區從0到2B-1進行編號,并且把存儲設備空間從0地址開始分割為2A Byte大小的連續塊。塊的邊界是2A Byte對齊。則,存儲設備塊與子緩存區之間存在一種映射關系。令ADDR[m..n]表示存儲設備地址ADDR從第m位開始的n位二進制位組成的數字;ADDR所在的存儲設備塊內容將被緩存到編號為ADDR[A..B]的子緩存區中。一般情況下存儲設備塊數目要多于子緩存區的個數。所以,每個子緩存區要保存所存儲內容的起始地址,以便于辨別沖突情況。
3.3.2 更新緩沖區
更新緩存區的操作就是讀取存儲設備一個2A大小且起始地址2A Byte對齊的數據塊到緩存區中或者緩沖層寫操作向子緩沖區中寫入數據。如果之前緩存區的“dirty”標志位置1,要先把子緩存區內容寫回存儲設備,然后寫入新的內容。并更新緩存區管理結構中新內容的起始地址。
3.3.3 緩沖層讀寫操作
當緩沖層接收到來自文件操作層數據的讀寫請求時,緩沖層讀寫接口按照存儲設備塊進行分塊讀寫,每次讀寫一個存儲設備塊,然后循環多次來完成讀寫。對于ADDR地址開始N個字節的存儲設備塊內讀寫操作細節如下:
(1)判斷ADDR是否在緩存區內;
(2)如果ADDR在緩存區內,直接讀寫相應內容作為讀取結果,過程結束;
(3)如果ADDR不在緩存區內,更新緩存區,返回步驟(2)。
本文在2.4 GB大容量有源RFID標簽系統項目中實現了該文件系統。項目中,標簽的硬件條件為基于Cortex-M3的MCU通過SPI接口連接FM25H20的FRAM芯片(存儲容量為256 KB)。SPI接口比特率為20 Mb/s。本文的測試圍繞緩沖層的作用以及文件系統的整體性能進行。
4.1 文件系統性能測試
本節的測試用例是64 KB數據的寫入和讀寫操作。首先直接使用FRAM驅動接口從地址0開始連續向存儲設備寫入64 KB數據,然后通過文件系統接口創建文件并寫入64 KB數據。實驗數據如表4所示。

表4 文件系統性能實驗數據 μs
從表4可以看出文件系統在提供了文件管理功能之后,讀取效率降低了15.3%,寫入效率降低了3.9%。在增加了文件系統的文件管理功能之后,數據讀寫效率并沒有出現嚴重下降,仍在可接受范圍之內。
4.2 緩沖層測試
本節的測試是64 KB大小的文件寫入然后讀取的操作。操作條件分別設置為不使用緩沖區和使用緩沖區兩種。測試結果如表5所示。

表5 緩沖層效果實驗
從表5可以看出,緩沖層明顯為文件系統的讀寫提供了性能上的提高,并且極大地減少了設備訪問次數。這也直接導致了文件系統讀寫效率的提高。
4.3 文件隨機訪問性能測試
對一個64 KB大小的文件,分別讀取文件起始位置、32 KB偏移處數據和60 KB偏移處128 Byte數據,分別記錄花費時間。實驗結果如表6所示。

表6 文件隨機訪問實驗數據 μs
從表6看出,使用增加FAT索引的效果是非常明顯的。文件系統隨機訪問時間變得穩定,呈現常數的時間復雜度。
本文從有源RFID標準的實際需求出發,對FAT文件系統進行了大量的優化修改操作,并提出了增加FAT表索引的思路,為小型嵌入式系統提供了可靠的隨機文件訪問性能。從第3章的實驗數據來看,本文件系統在減輕系統內存壓力的情況下,可以為系統提供安全、快速的文件存取機制。最后,本文件系統在實際項目應用中,也表現出了不錯的性能和穩定性。
[1]包起帆,張文淵,徐盛,等.有源RFID的性能及其應用前景[J].微型電腦應用,2006,22(4):1-3.
[2]張宏宇,柴逸飛,涂時亮,等.基于傳感器網絡和有源RFID的集裝箱管理系統[J].計算機工程,2009,35(1):245-246.
[3]張繼之.超高頻RFID無源標簽的低功耗數字電路設計[D].上海:復旦大學,2012.
[4]潘盛輝,郭毅鋒,黃麗敏,等.基于MSP430F149的手持式RFID讀寫器低功耗設計[J].電子技術應用,2008(11):51-53.
[5]張東浩.無源UHF RFID標簽芯片低壓低功耗電源系統設計與實現[D].西安:西安電子科技大學,2011.
[6]趙培宇,李其華.FRAM鐵電存儲器的應用[J].江漢大學學報:自然科學版,2004(3):51-54.
[7]顧喜梅.文件系統及磁盤管理實現機制深入研究[D].南京:南京航空航天大學,2002.
[8]Microsoft Corporation.Microsoft extensible firmware initiative FAT32 file system specification[EB/OL].[2012-10-25]. http://msdn.microsoft.com/en-US/windows/hardware/gg463084.
[9]梁金千,張躍.NTFS文件系統的主要數據結構[J].計算機工程與應用,2003,39(8):116-118.
[10]Tsiftes N,Dunkels A,He Zhitao,et al.Enabling large-scale storage in sensor networks with the Coffee file system[C]// Proceedings of the 2009 International Conference on Information Processing in Sensor Networks,2009:349-360.
[11]謝力軍,楊軍.幾種索引技術的比較[J].懷化學院學報,2009,28(8):115-118.
XUE Shishuai,LIU Dan,XU Zhan,LI Jianhong
Research Institute Electronic Science and Technology,University of Electronic Science and Technology of China,Chengdu 611731,China
With the needs of miniature file system in the application of active RFID tag,and the characteristics of limited memory of the system,high speed of reading and writing files during the interrogator collecting tags,this paper begins the research on the secure file system for active RFID tag.It designs a compact,secure and efficient file system by selecting high-speed memory device and improves the FAT file system(adding flexible data cache mechanism,simplifying the file directory entry,adding file access control functionality).The experimental results show that the system works well.
active Radio Frequency Identification(RFID);File Allocation Table(FAT)file system;embedded system
針對有源RFID標簽應用中對微型文件系統的需求,圍繞標簽內存小和大量標簽盤點過程中要求文件讀寫速度快的特點,展開對有源RFID標簽安全文件系統的研究。最終通過選用高速存儲器件和對FAT文件系統進行改進(實現靈活的數據緩沖層、精簡文件目錄項、增加文件訪問控制),實現了簡潔高效安全的文件系統設計,并在實驗中展現了文件系統良好的性能。
有源無線射頻識別(RFID);文件分配表(FAT)文件系統;嵌入式
A
TP393
10.3778/j.issn.1002-8331.1301-0333
XUE Shishuai,LIU Dan,XU Zhan,et al.Design of secure file system for active RFID tag.Computer Engineering and Applications,2014,50(24):47-49.
薛世帥(1986—),男,碩士研究生,主要研究方向為嵌入式系統,物聯網等。E-mail:xishuaihear@126.com
2013-01-29
2013-04-22
1002-8331(2014)24-0047-03
CNKI網絡優先出版:2013-05-21,http∶//www.cnki.net/kcms/detail/11.2127.TP.20130521.1027.006.html