薛世帥,劉 丹,徐 展,李建紅
電子科技大學(xué) 電子科學(xué)技術(shù)研究院,成都 611731
有源RFID標(biāo)簽安全文件系統(tǒng)的設(shè)計(jì)
薛世帥,劉 丹,徐 展,李建紅
電子科技大學(xué) 電子科學(xué)技術(shù)研究院,成都 611731
隨著有源RFID[1]應(yīng)用技術(shù)的不斷成熟,有源RFID標(biāo)簽所具有的功能也越來(lái)越復(fù)雜。在基本的RFID應(yīng)用中,包括標(biāo)簽ID、標(biāo)簽屬性等各種標(biāo)簽元數(shù)據(jù)需要存儲(chǔ);在有源RFID定位系統(tǒng)中,標(biāo)簽存儲(chǔ)的各種定位信息可以輔助定位算法更精確地定位標(biāo)簽位置;在有源RFID用于物品管理[2]時(shí),每個(gè)標(biāo)簽都會(huì)管理大量的物品,這時(shí)必須對(duì)物品信息進(jìn)行存儲(chǔ);在有源RFID安全應(yīng)用中,很多的安全數(shù)據(jù)需要可靠存儲(chǔ)。而有源RFID標(biāo)簽的低功耗需求[3-5]又是不會(huì)改變的,并且需要保證有源RFID標(biāo)簽有較高的存取速度。所以,在安全和速度并重的有源RFID系統(tǒng)應(yīng)用中使用存儲(chǔ)效率高的FRAM[6]存儲(chǔ)設(shè)備進(jìn)行數(shù)據(jù)存儲(chǔ)是一個(gè)不錯(cuò)的選擇。本文結(jié)合以上需求,設(shè)計(jì)一個(gè)基于FRAM存儲(chǔ)設(shè)備的用于有源RFID標(biāo)簽的安全文件系統(tǒng)。
文件系統(tǒng)[7]是系統(tǒng)用于管理數(shù)據(jù)的一種工具。例如,最熟悉的微軟操作系統(tǒng)上使用了FAT格式[8]、NTFS格式[9]的文件系統(tǒng)。Linux系統(tǒng)上更廣泛地支持多達(dá)幾十種文件系統(tǒng)。但這些文件系統(tǒng)大都為較大的存儲(chǔ)設(shè)備而設(shè)計(jì),對(duì)于FRAM小型文件系統(tǒng)并不適合。在嵌入式系統(tǒng)上面,Contiki系統(tǒng)中帶有一個(gè)為FLASH設(shè)備設(shè)計(jì)的Coffee[10]文件系統(tǒng),但其文件創(chuàng)建時(shí)就必須指定文件長(zhǎng)度的規(guī)定使得其實(shí)用性大大降低。綜合考慮,本文通過(guò)改進(jìn)FAT文件系統(tǒng),實(shí)現(xiàn)了滿足RFID系統(tǒng)需要而又輕便安全的文件系統(tǒng)。
FAT文件系統(tǒng)主要由BPB(啟動(dòng)參數(shù)塊)、FAT表(文件分配表)和數(shù)據(jù)區(qū)組成。FAT文件系統(tǒng)使用簇來(lái)管理存儲(chǔ)設(shè)備。簇的大小是扇區(qū)的整倍數(shù),扇區(qū)大小為固定512 Byte。
FAT文件系統(tǒng)目錄項(xiàng)大小為32 Byte的整數(shù)倍。FAT文件元數(shù)據(jù)沒(méi)有安全控制屬性。文件的安全性極差。但是,正是這種極簡(jiǎn)設(shè)計(jì),使得文件系統(tǒng)的效率相當(dāng)高,這也使得該文件系統(tǒng)的生命延續(xù)了幾十年,甚至現(xiàn)在還在使用。
本文設(shè)計(jì)的文件系統(tǒng)針對(duì)FAT文件系統(tǒng)的缺點(diǎn),對(duì)其進(jìn)行以下方面的改進(jìn):
(1)增加文件FAT表索引[11],以提高文件隨機(jī)訪問(wèn)的性能,使隨機(jī)訪問(wèn)的復(fù)雜度降低為O(1)。
(2)優(yōu)化修改FAT文件的目錄項(xiàng),減少其大小,增加文件安全控制選項(xiàng),對(duì)系統(tǒng)的文件操作安全性提供充分的支持。并提供優(yōu)化的打開(kāi)的文件在內(nèi)存中的表示。
(3)增加靈活的讀寫(xiě)緩沖機(jī)制,以增加文件系統(tǒng)魯棒性。
3.1 增加FAT表索引
一般情況下,文件系統(tǒng)對(duì)文件的隨機(jī)尋址工作都是通過(guò)順序遍歷FAT鏈表來(lái)實(shí)現(xiàn)。如果這些FAT鏈表都在內(nèi)存中,訪問(wèn)速度就會(huì)很快。但是在資源有限的RFID標(biāo)簽來(lái)說(shuō),這是不現(xiàn)實(shí)的。所以,本文在文件系統(tǒng)中對(duì)大文件增加了一個(gè)FAT表索引。
本文的FAT表索引就是對(duì)于一個(gè)文件FAT鏈表中的所有FAT號(hào),每隔N個(gè)選取一個(gè)進(jìn)行另外存儲(chǔ)。這樣無(wú)論從多少偏移進(jìn)行文件讀寫(xiě),尋找對(duì)應(yīng)存儲(chǔ)塊的時(shí)間總是不會(huì)超過(guò)N次對(duì)FAT的讀取,這樣就可以把文件的隨機(jī)訪問(wèn)時(shí)間從線性復(fù)雜度降低為常數(shù)復(fù)雜度。FAT表索引存儲(chǔ)在單獨(dú)分配的存儲(chǔ)塊內(nèi),并且在文件目錄項(xiàng)中指示其存儲(chǔ)位置。
3.2 文件元數(shù)據(jù)改進(jìn)
在FAT文件系統(tǒng)中,文件元數(shù)據(jù)就是文件目錄項(xiàng)。占用空間大小為32 Byte的整倍數(shù)。FRAM存儲(chǔ)空間非常寶貴,這里文件元數(shù)據(jù)設(shè)計(jì)要充分考慮存儲(chǔ)空間的使用效率以及文件系統(tǒng)的性能。本文件系統(tǒng)把文件元數(shù)據(jù)分割為目錄項(xiàng)和文件屬性信息兩部分,并使用目錄項(xiàng)和文件屬性分開(kāi)分別存放的方法。這樣在RFID閱讀器發(fā)出列出目錄下面文件的時(shí)候,標(biāo)簽只用應(yīng)答目錄項(xiàng),而不傳輸文件屬性,這對(duì)RFID的盤(pán)存效率是有很大提升的。
3.2.1 目錄項(xiàng)設(shè)計(jì)
本文件系統(tǒng)的目錄文件的內(nèi)容由該目錄下的文件目錄項(xiàng)組成。這些信息在列表目錄時(shí)通過(guò)射頻鏈路傳送給RFID閱讀器。文件目錄項(xiàng)結(jié)構(gòu)如表1所示。
表1 文件系統(tǒng)目錄項(xiàng)設(shè)計(jì)
由于對(duì)于RFID標(biāo)簽來(lái)說(shuō),其文件的閱讀對(duì)象是RFID閱讀器,而不是人。所以其文件名僅僅起一個(gè)辨別不同文件的作用,而不必體現(xiàn)文件的意義。所以本文用“文件ID”替代“文件名”。這樣可以使文件名占用空間縮小到2個(gè)字節(jié)。文件標(biāo)志的最高三位用來(lái)表示文件類型(包括目錄文件、普通文件兩種),其余5位是訪問(wèn)權(quán)限位。文件起始?jí)K編號(hào)標(biāo)示文件數(shù)據(jù)起始所在的存儲(chǔ)塊編號(hào)。FAT索引起始?jí)K編號(hào)用來(lái)提高文件隨機(jī)訪問(wèn)的性能。
3.2.2 文件屬性設(shè)計(jì)
文件屬性用來(lái)記錄文件的長(zhǎng)度、訪問(wèn)密碼等信息。這部分信息在打開(kāi)文件操作時(shí),被加載進(jìn)入內(nèi)存。完整的文件屬性組成結(jié)構(gòu)如表2所示。
表2 文件屬性
3.2.3 文件系統(tǒng)安全支持
安全文件操作使用目錄項(xiàng)中文件標(biāo)志的低5位來(lái)控制對(duì)文件的讀取、修改操作。如果通過(guò)相關(guān)安全檢查則調(diào)用文件操作層接口進(jìn)行文件的讀取或者修改。文件安全相關(guān)標(biāo)志具體定義如表3所示,bn代表字節(jié)中的第n位。
表3 文件安全性設(shè)計(jì)
3.2.4 文件的打開(kāi)及其在內(nèi)存中的表示
當(dāng)文件的屬性和一些文件相關(guān)的運(yùn)行時(shí)信息被加載入內(nèi)存的時(shí)候,文件就處于被打開(kāi)狀態(tài)。在內(nèi)存中,本文用棧結(jié)構(gòu)來(lái)保存打開(kāi)的文件信息。每打開(kāi)一個(gè)目錄或者文件,其相關(guān)數(shù)據(jù)將會(huì)被壓入棧中。棧頂元素永遠(yuǎn)是當(dāng)前打開(kāi)的文件,也是唯一可以進(jìn)行讀寫(xiě)操作的文件。緊挨著棧頂?shù)脑貏t是當(dāng)前打開(kāi)文件所在的目錄。每關(guān)閉一個(gè)文件,就會(huì)彈出棧頂元素。文件在內(nèi)存中表示的存儲(chǔ)結(jié)構(gòu)包含目錄項(xiàng)、文件屬性、當(dāng)前操作偏移和一些輔助提高訪問(wèn)速度的域。
3.3 緩沖層設(shè)計(jì)
在本安全文件系統(tǒng)中,文件系統(tǒng)對(duì)FAT表的讀寫(xiě)為每次2個(gè)字節(jié)的設(shè)備讀寫(xiě)操作。這種情況會(huì)造成設(shè)備的頻繁讀寫(xiě),嚴(yán)重影響讀寫(xiě)效率。根據(jù)數(shù)據(jù)讀寫(xiě)的局部性原理,本文件系統(tǒng)設(shè)計(jì)了一個(gè)位于內(nèi)存中的緩沖層來(lái)提高文件系統(tǒng)讀寫(xiě)的效率。又考慮到有源RFID標(biāo)簽RAM容量小,本緩沖層設(shè)計(jì)為可以調(diào)整內(nèi)存占用大小。緩沖層最小內(nèi)存占用大小可以為幾個(gè)字節(jié)。
3.3.1 緩沖層存儲(chǔ)設(shè)計(jì)
本文在緩沖層使用了一級(jí)緩存,多塊緩存的方法來(lái)解決系統(tǒng)中的緩存問(wèn)題。所謂的多塊緩存是指緩沖區(qū)由一個(gè)緩存隊(duì)列組成。隊(duì)列中每個(gè)子緩存區(qū)可以緩存固定大小字節(jié)的數(shù)據(jù),子緩存區(qū)內(nèi)容可以單獨(dú)更新,子緩存之間的內(nèi)容互不影響。
緩沖區(qū)由A、B兩個(gè)參數(shù)來(lái)實(shí)現(xiàn)緩沖區(qū)時(shí)間和空間效率的靈活調(diào)優(yōu)。A標(biāo)示每個(gè)子緩存區(qū)的大小,B標(biāo)示緩沖區(qū)中子緩存區(qū)的的個(gè)數(shù)。緩沖區(qū)占用內(nèi)存的大小可以如下計(jì)算:
(1)每個(gè)子緩沖區(qū)大小為2A;
(2)緩沖區(qū)中子緩沖區(qū)個(gè)數(shù)為2B;
(3)緩沖層占用的系統(tǒng)內(nèi)存為2A×2BByte。
如果緩存區(qū)有效內(nèi)容被改變,該子緩沖區(qū)要做出標(biāo)記,并且要在以后的某個(gè)適當(dāng)時(shí)刻寫(xiě)回到存儲(chǔ)設(shè)備相應(yīng)的地址。所以,每個(gè)子緩存區(qū)要有一個(gè)“dirty”標(biāo)志。
緩沖層定義了2B個(gè)子緩沖區(qū)。本文把子緩存區(qū)從0到2B-1進(jìn)行編號(hào),并且把存儲(chǔ)設(shè)備空間從0地址開(kāi)始分割為2A Byte大小的連續(xù)塊。塊的邊界是2A Byte對(duì)齊。則,存儲(chǔ)設(shè)備塊與子緩存區(qū)之間存在一種映射關(guān)系。令A(yù)DDR[m..n]表示存儲(chǔ)設(shè)備地址ADDR從第m位開(kāi)始的n位二進(jìn)制位組成的數(shù)字;ADDR所在的存儲(chǔ)設(shè)備塊內(nèi)容將被緩存到編號(hào)為ADDR[A..B]的子緩存區(qū)中。一般情況下存儲(chǔ)設(shè)備塊數(shù)目要多于子緩存區(qū)的個(gè)數(shù)。所以,每個(gè)子緩存區(qū)要保存所存儲(chǔ)內(nèi)容的起始地址,以便于辨別沖突情況。
3.3.2 更新緩沖區(qū)
更新緩存區(qū)的操作就是讀取存儲(chǔ)設(shè)備一個(gè)2A大小且起始地址2A Byte對(duì)齊的數(shù)據(jù)塊到緩存區(qū)中或者緩沖層寫(xiě)操作向子緩沖區(qū)中寫(xiě)入數(shù)據(jù)。如果之前緩存區(qū)的“dirty”標(biāo)志位置1,要先把子緩存區(qū)內(nèi)容寫(xiě)回存儲(chǔ)設(shè)備,然后寫(xiě)入新的內(nèi)容。并更新緩存區(qū)管理結(jié)構(gòu)中新內(nèi)容的起始地址。
3.3.3 緩沖層讀寫(xiě)操作
當(dāng)緩沖層接收到來(lái)自文件操作層數(shù)據(jù)的讀寫(xiě)請(qǐng)求時(shí),緩沖層讀寫(xiě)接口按照存儲(chǔ)設(shè)備塊進(jìn)行分塊讀寫(xiě),每次讀寫(xiě)一個(gè)存儲(chǔ)設(shè)備塊,然后循環(huán)多次來(lái)完成讀寫(xiě)。對(duì)于ADDR地址開(kāi)始N個(gè)字節(jié)的存儲(chǔ)設(shè)備塊內(nèi)讀寫(xiě)操作細(xì)節(jié)如下:
(1)判斷ADDR是否在緩存區(qū)內(nèi);
(2)如果ADDR在緩存區(qū)內(nèi),直接讀寫(xiě)相應(yīng)內(nèi)容作為讀取結(jié)果,過(guò)程結(jié)束;
(3)如果ADDR不在緩存區(qū)內(nèi),更新緩存區(qū),返回步驟(2)。
本文在2.4 GB大容量有源RFID標(biāo)簽系統(tǒng)項(xiàng)目中實(shí)現(xiàn)了該文件系統(tǒng)。項(xiàng)目中,標(biāo)簽的硬件條件為基于Cortex-M3的MCU通過(guò)SPI接口連接FM25H20的FRAM芯片(存儲(chǔ)容量為256 KB)。SPI接口比特率為20 Mb/s。本文的測(cè)試圍繞緩沖層的作用以及文件系統(tǒng)的整體性能進(jìn)行。
4.1 文件系統(tǒng)性能測(cè)試
本節(jié)的測(cè)試用例是64 KB數(shù)據(jù)的寫(xiě)入和讀寫(xiě)操作。首先直接使用FRAM驅(qū)動(dòng)接口從地址0開(kāi)始連續(xù)向存儲(chǔ)設(shè)備寫(xiě)入64 KB數(shù)據(jù),然后通過(guò)文件系統(tǒng)接口創(chuàng)建文件并寫(xiě)入64 KB數(shù)據(jù)。實(shí)驗(yàn)數(shù)據(jù)如表4所示。
表4 文件系統(tǒng)性能實(shí)驗(yàn)數(shù)據(jù) μs
從表4可以看出文件系統(tǒng)在提供了文件管理功能之后,讀取效率降低了15.3%,寫(xiě)入效率降低了3.9%。在增加了文件系統(tǒng)的文件管理功能之后,數(shù)據(jù)讀寫(xiě)效率并沒(méi)有出現(xiàn)嚴(yán)重下降,仍在可接受范圍之內(nèi)。
4.2 緩沖層測(cè)試
本節(jié)的測(cè)試是64 KB大小的文件寫(xiě)入然后讀取的操作。操作條件分別設(shè)置為不使用緩沖區(qū)和使用緩沖區(qū)兩種。測(cè)試結(jié)果如表5所示。
表5 緩沖層效果實(shí)驗(yàn)
從表5可以看出,緩沖層明顯為文件系統(tǒng)的讀寫(xiě)提供了性能上的提高,并且極大地減少了設(shè)備訪問(wèn)次數(shù)。這也直接導(dǎo)致了文件系統(tǒng)讀寫(xiě)效率的提高。
4.3 文件隨機(jī)訪問(wèn)性能測(cè)試
對(duì)一個(gè)64 KB大小的文件,分別讀取文件起始位置、32 KB偏移處數(shù)據(jù)和60 KB偏移處128 Byte數(shù)據(jù),分別記錄花費(fèi)時(shí)間。實(shí)驗(yàn)結(jié)果如表6所示。
表6 文件隨機(jī)訪問(wèn)實(shí)驗(yàn)數(shù)據(jù) μs
從表6看出,使用增加FAT索引的效果是非常明顯的。文件系統(tǒng)隨機(jī)訪問(wèn)時(shí)間變得穩(wěn)定,呈現(xiàn)常數(shù)的時(shí)間復(fù)雜度。
本文從有源RFID標(biāo)準(zhǔn)的實(shí)際需求出發(fā),對(duì)FAT文件系統(tǒng)進(jìn)行了大量的優(yōu)化修改操作,并提出了增加FAT表索引的思路,為小型嵌入式系統(tǒng)提供了可靠的隨機(jī)文件訪問(wèn)性能。從第3章的實(shí)驗(yàn)數(shù)據(jù)來(lái)看,本文件系統(tǒng)在減輕系統(tǒng)內(nèi)存壓力的情況下,可以為系統(tǒng)提供安全、快速的文件存取機(jī)制。最后,本文件系統(tǒng)在實(shí)際項(xiàng)目應(yīng)用中,也表現(xiàn)出了不錯(cuò)的性能和穩(wěn)定性。
[1]包起帆,張文淵,徐盛,等.有源RFID的性能及其應(yīng)用前景[J].微型電腦應(yīng)用,2006,22(4):1-3.
[2]張宏宇,柴逸飛,涂時(shí)亮,等.基于傳感器網(wǎng)絡(luò)和有源RFID的集裝箱管理系統(tǒng)[J].計(jì)算機(jī)工程,2009,35(1):245-246.
[3]張繼之.超高頻RFID無(wú)源標(biāo)簽的低功耗數(shù)字電路設(shè)計(jì)[D].上海:復(fù)旦大學(xué),2012.
[4]潘盛輝,郭毅鋒,黃麗敏,等.基于MSP430F149的手持式RFID讀寫(xiě)器低功耗設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2008(11):51-53.
[5]張東浩.無(wú)源UHF RFID標(biāo)簽芯片低壓低功耗電源系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2011.
[6]趙培宇,李其華.FRAM鐵電存儲(chǔ)器的應(yīng)用[J].江漢大學(xué)學(xué)報(bào):自然科學(xué)版,2004(3):51-54.
[7]顧喜梅.文件系統(tǒng)及磁盤(pán)管理實(shí)現(xiàn)機(jī)制深入研究[D].南京:南京航空航天大學(xué),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文件系統(tǒng)的主要數(shù)據(jù)結(jié)構(gòu)[J].計(jì)算機(jī)工程與應(yīng)用,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]謝力軍,楊軍.幾種索引技術(shù)的比較[J].懷化學(xué)院學(xué)報(bào),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
針對(duì)有源RFID標(biāo)簽應(yīng)用中對(duì)微型文件系統(tǒng)的需求,圍繞標(biāo)簽內(nèi)存小和大量標(biāo)簽盤(pán)點(diǎn)過(guò)程中要求文件讀寫(xiě)速度快的特點(diǎn),展開(kāi)對(duì)有源RFID標(biāo)簽安全文件系統(tǒng)的研究。最終通過(guò)選用高速存儲(chǔ)器件和對(duì)FAT文件系統(tǒng)進(jìn)行改進(jìn)(實(shí)現(xiàn)靈活的數(shù)據(jù)緩沖層、精簡(jiǎn)文件目錄項(xiàng)、增加文件訪問(wèn)控制),實(shí)現(xiàn)了簡(jiǎn)潔高效安全的文件系統(tǒng)設(shè)計(jì),并在實(shí)驗(yàn)中展現(xiàn)了文件系統(tǒng)良好的性能。
有源無(wú)線射頻識(shí)別(RFID);文件分配表(FAT)文件系統(tǒng);嵌入式
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—),男,碩士研究生,主要研究方向?yàn)榍度胧较到y(tǒng),物聯(lián)網(wǎng)等。E-mail:xishuaihear@126.com
2013-01-29
2013-04-22
1002-8331(2014)24-0047-03
CNKI網(wǎng)絡(luò)優(yōu)先出版:2013-05-21,http∶//www.cnki.net/kcms/detail/11.2127.TP.20130521.1027.006.html