《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于FPGA的C/S模式網(wǎng)絡(luò)硬盤設(shè)計與實現(xiàn)
基于FPGA的C/S模式網(wǎng)絡(luò)硬盤設(shè)計與實現(xiàn)
2014年電子技術(shù)應(yīng)用第12期
郭燕妮,,何 杰,,張 剛
(太原理工大學(xué) 信息工程學(xué)院,山西 太原030024)
摘要: 針對目前多數(shù)B/S(Browser/Server,,瀏覽器/服務(wù)器)模式網(wǎng)絡(luò)硬盤存在的安全性問題以及文件格式和文件大小受限等問題,,提出并實現(xiàn)了一種基于FPGA的C/S(Client/Server,,客戶端/服務(wù)器)模式網(wǎng)絡(luò)硬盤,分別在用戶層,、內(nèi)核層對NFS(Network File System,網(wǎng)絡(luò)文件系統(tǒng))服務(wù)器,、FAT32文件系統(tǒng)進行了設(shè)計及改進,并在硬件層設(shè)計了硬盤控制器IP核及其所需的驅(qū)動程序,,最后通過Petalinux操作系統(tǒng)移植到Microblaze中,,利用軟硬件協(xié)同設(shè)計的方式在XUPV5_LX110T開發(fā)板上驗證通過。驗證結(jié)果表明,,該網(wǎng)絡(luò)硬盤可實現(xiàn)遠程文件在線訪問及其他基本操作,并且對文件格式,、單個文件大小無限制,。
中圖分類號: TP393
文獻標識碼: A
文章編號: 0258-7998(2014)12-0030-03
The design and implement of C/S mode network hard disk based on FPGA
Guo Yanni,He Jie,,Zhang Gang
College of Information and Engineering,,Taiyuan University of Technology,Taiyuan 030024,,China
Abstract: Aiming at the problems of most existing B/S (browser/Server) mode network hard disks, such as security problem, the limitation of file format and file size, this paper proposes and implements a kind of C/S(Client/Server) mode network hard disk based on FPGA. It designs and improves the NFS server and FAT32 file system in the user layer and inner nuclear layer, then designs hard disk controller IP core and required drivers in the hardware layer. Finally, through the transplantation of Petalinux operating system to the Microblaze, using co-design of hardware and software,,the system is verified on XUPV5_LX110T board. Verification results show that this network hard disk can realize remote file access and other basic operations online, and has no limitation of file format and a single file size.
Key words : C/S mode;NFS,;FAT32 file system,;Intellectual Property core;system transplantation

0 引言

  隨著網(wǎng)絡(luò)技術(shù)的不斷進步以及網(wǎng)絡(luò)應(yīng)用程序的增加,,人們對簡單快捷易管理易攜帶存儲方式的需求愈加強烈,,而網(wǎng)絡(luò)硬盤可以不需要攜帶任何存儲設(shè)備,只要通過網(wǎng)絡(luò)就能隨時隨地對目標文件進行訪問,。

  目前,,已有眾多企業(yè)推出了各類的網(wǎng)絡(luò)硬盤比如百度網(wǎng)盤、微軟Skydrive、華為網(wǎng)盤等,,注冊用戶可以通過賬號密碼隨時隨地訪問自己的已經(jīng)上傳的內(nèi)容,,對文件進行管理,實現(xiàn)了無存儲設(shè)備的遠程訪問,,并且不會損壞文件,。但是,目前已有的網(wǎng)絡(luò)硬盤均是基于B/S模式的,,雖然支持文件的一次性上傳下載及在線瀏覽等功能,,但與操作本地文件之間有本質(zhì)區(qū)別,用戶不能在線對文件進行編輯保存,。此外,,該模式的網(wǎng)絡(luò)硬盤還存在安全性能差,對服務(wù)器性能要求高,、與服務(wù)器交互性差及存儲數(shù)據(jù)傳輸速度慢等問題,。

  本文通過FPGA編程設(shè)計實現(xiàn)了一種基于C/S模式的網(wǎng)絡(luò)硬盤,與現(xiàn)有B/S模式網(wǎng)絡(luò)硬盤不同,,它是通過客戶端與服務(wù)器進行直接相連的,,沒有中間環(huán)節(jié),因此具有響應(yīng)速度快,、交互性強,、網(wǎng)絡(luò)通信量低、易于處理大量數(shù)據(jù)等特點,而且,,通過網(wǎng)絡(luò)用戶可以對文件進行在線操作,。

1 系統(tǒng)簡介及平臺搭建

  1.1 系統(tǒng)整體架構(gòu)


001.jpg


  本文設(shè)計實現(xiàn)了一種基于FPGA的C/S模式網(wǎng)絡(luò)硬盤,其系統(tǒng)整體框架如圖1所示,,主要包括用戶層,、內(nèi)核層和硬件層。其中,,用戶層主要完成的是客戶端與服務(wù)器通信,;硬件層負責(zé)對存儲硬盤的操作,可以通過ATA硬盤控制器對上層命令進行解析,,對硬盤進行數(shù)據(jù)讀取和存入,;內(nèi)核層是用戶層與硬件層之間的連接樞紐,該層可以通過文件系統(tǒng)以及驅(qū)動程序?qū)τ脩魧影l(fā)送的請求進行處理并對硬件層硬盤進行調(diào)用訪問,。

  1.2 系統(tǒng)硬件平臺搭建


002.jpg

  系統(tǒng)是在XUPV5_LX110T開發(fā)板上外接ATA硬盤以及網(wǎng)線實現(xiàn)的,,結(jié)構(gòu)組成如圖2所示。平臺是以Xilinx公司的XUPV5_LX110T FPGA開發(fā)板為基礎(chǔ)搭建的,,通過對開發(fā)板內(nèi)嵌的各個模塊進行選擇,,然后連接DDR2_SRAM,、Hard_Ethernet_MAC、RS232_Uart_1等基本外部設(shè)備,,最后添加硬盤控制器IP核,,完成系統(tǒng)整體平臺的搭建。其中,,核心處理器選擇的是Microblaze軟核處理器,。

2 系統(tǒng)設(shè)計

  2.1 硬件層設(shè)計

  由于選用的XUPV5_LX110T FPGA開發(fā)板可以提供圖2中的大部分模塊,因此,,系統(tǒng)的硬件層主要是對ATA硬盤控制器IP核[1]的設(shè)計,。本文通過對ATA/ATAPI-6協(xié)議進行分析,用VHDL語言設(shè)計實現(xiàn)對硬盤數(shù)據(jù)進行扇區(qū)讀寫操作,,其具體模塊結(jié)構(gòu)圖3所示,。

003.jpg

  硬盤控制器按照功能模塊共劃分為BRAM接收和發(fā)送模塊、指令解析模塊,、硬盤訪問控制模塊,、CRC校驗?zāi)K以及差錯處理模塊。其中,,指令解析模塊負責(zé)對上層發(fā)送的請求進行監(jiān)控解析,,并觸發(fā)硬盤訪問控制模塊從而對硬盤操作;硬盤訪問控制模塊在接收到觸發(fā)命令后,,對基本控制時序進行設(shè)置,,包括硬盤硬件復(fù)位、硬盤模式設(shè)置,、扇區(qū)讀寫等,;CRC校驗?zāi)K對讀寫的數(shù)據(jù)進行校驗;差錯處理模塊是對錯誤指令或指令執(zhí)行異常的情況進行處理,。以上所有模塊均是用VHDL語言實現(xiàn)的,并通過仿真調(diào)試及測試,。

  系統(tǒng)中內(nèi)核層與硬盤之間是以PLB總線掛載的方式互連的,,掛載后,可以通過硬盤驅(qū)動程序[2],,以寄存器的方式訪問硬盤數(shù)據(jù),,因此在以上功能模塊設(shè)計以后,要對硬盤控制器按照自定義IP核的方法進行IP核封裝來作為外接設(shè)備,。

  2.2 內(nèi)核層設(shè)計

  本系統(tǒng)采用FAT32文件系統(tǒng)[3]對用戶數(shù)據(jù)進行管理,。為適應(yīng)上層用戶層的調(diào)用,本文對FAT32文件系統(tǒng)進行了改進:首先對文件系統(tǒng)信息建立全局變量struct fs_fat32 fatfs,,并用struct node_fat32初始化文件節(jié)點,;然后重寫對文件及目錄的操作函數(shù)以適應(yīng)上層NFS的調(diào)用;最后編寫FAT32文件系統(tǒng)的Makefile文件進行測試。測試證明可以對文件以及目錄進行正確讀寫,、修改,、刪除等基本操作。

  2.3 用戶層設(shè)計

  用戶層設(shè)計是系統(tǒng)的核心部分,,主要是對NFS服務(wù)器端的設(shè)計,。NFS是一種分布式文件系統(tǒng)協(xié)議,通過網(wǎng)絡(luò),,用戶可以像訪問本地文件一樣訪問遠端系統(tǒng)上的文件,。因此結(jié)合RPC(Remote Procedure Call,遠程過程調(diào)用)和XDR(External Data Representation,,外部數(shù)據(jù)表示),,就可以實現(xiàn)跨網(wǎng)絡(luò)、跨操作系統(tǒng),、跨文件系統(tǒng)的訪問,。其中,RPC是可實現(xiàn)遠程客戶端對服務(wù)器端函數(shù)的調(diào)用,。而XDR保證了數(shù)據(jù)格式的一致性,。

004.jpg

  NFS服務(wù)器端[4]設(shè)計主要是實現(xiàn)一次完整的NFS文件訪問,通過客戶端與服務(wù)器端RPC的Portmap,、Mountd,、NFSD 3個模塊間的交互完成,其交互的具體過程如圖4所示,。在交互過程中,,每當(dāng)服務(wù)器端NFSD模塊接收到客戶端請求時,就會對接收到的數(shù)據(jù)進行XDR解碼處理,,并根據(jù)解碼得到的過程號調(diào)用NFSD程序中的過程進行操作,,NFSD過程會通過調(diào)用底層文件系統(tǒng)對請求進行處理,并將處理結(jié)果進行XDR編碼后發(fā)送回客戶端,,其具體操作流程如圖5所示,。

005.jpg

  考慮到NFS整體與內(nèi)核聯(lián)系緊密,可移植性低,,因此本文在保持NFS功能的基礎(chǔ)上對其進行了簡化設(shè)計及改進,,首先將Portmap(RPCbind)、Mountd,、NFSD寫成應(yīng)用程序,,采用Linux中混合多端口的異步Socket[5]編程方法。分別基于TCP和UDP傳輸協(xié)議對NFSD,、Mountd,、Portmap進行套接字創(chuàng)建,,然后設(shè)置全局變量svc_fdset、fd_set對Socket進行管理,,并利用select函數(shù)選擇有請求的套接字,,最后用recv函數(shù)和send函數(shù)進行數(shù)據(jù)接收和發(fā)送。其中,,本文對NFSD,、Mountd、Portmap這三個進程用結(jié)構(gòu)體svc_program進行定義,,并用結(jié)構(gòu)體中pg_next將各個進程加入鏈表,,其中,鏈表頭為NFSD程序,。在接收到請求后,,服務(wù)器端從鏈表頭對鏈表進行順序查找,找到需要的服務(wù),,對其按照圖5所示的流程進行處理,。

3 系統(tǒng)驗證


006.jpg

  本系統(tǒng)經(jīng)過系統(tǒng)移植[6]將軟硬件進行整合來完成系統(tǒng)的整體設(shè)計。先下載petalinux-v0.40-final內(nèi)核源碼到虛擬機“/root/桌面”目錄下移植Petalinux操作系統(tǒng),,然后將硬件平臺信息及硬件工程添加到操作系統(tǒng)中,,最后將NFS服務(wù)程序以應(yīng)用程序的形式添加到操作系統(tǒng)內(nèi)核,同時將硬盤控制器封裝為IP核添加到內(nèi)核中,。添加完成后對內(nèi)核進行編譯并燒寫到開發(fā)板中,,運行整個系統(tǒng)。

  系統(tǒng)運行后,,打開客戶端,,在客戶端輸入掛載命令:sudo mount-t nfs-o nolock 192.168.xx.xx:/ /tmp/nfs,其中,192.168.xx.xx為開發(fā)板IP地址,,本文中為192.168.0.10,,

  “/tmp/nfs”為客戶端掛載目錄。測試結(jié)果如圖6所示,,圖中在客戶端“/tmp/nfs”中顯示的文件,,實際為服務(wù)器端硬盤中的文件,在客戶端nfs目錄下即可打開這些文件,,在線對文件進行讀寫,、修改保存等操作,,而且拖動文件即可實現(xiàn)文件下載上傳,,速度可達1.3 MB/s。實驗表明,,設(shè)計的基于FPGA的C/S模式網(wǎng)絡(luò)硬盤具有以下優(yōu)勢:(1)交互性強,,支持用戶在線操作文件,;(2)實用性廣,可進行硬盤陣列擴展,,擴大內(nèi)存,;(3)兼容性強,C/S模式網(wǎng)絡(luò)硬盤具有與本地硬盤相同的兼容性,,不限制存儲文件的格式,、大小及存儲時間;(4)安全性高,,采取賬號密碼映射IP的方式,,存儲文件僅登錄用戶可見。

4 結(jié)論

  本文設(shè)計了一種基于FPGA的C/S模式網(wǎng)絡(luò)硬盤,,在XUPV5_LX110T開發(fā)板搭建了系統(tǒng)并驗證通過,。結(jié)果表明該種網(wǎng)絡(luò)硬盤具備很好的可行性,可以實現(xiàn)遠程訪問,,而且傳輸速度快,,支持在線編輯,具有廣泛的應(yīng)用前景及參考價值。

參考文獻

  [1] 彭維.基于PLB總線的用戶IP核接口技術(shù)研究[D].合肥:合肥工業(yè)大學(xué),,2011.

  [2] 宋寶華.Linux設(shè)備驅(qū)動開發(fā)詳解(第二版)[M].北京:人民郵電出版社,,2010.

  [3] 楊明極,陳方縣,,吳學(xué)君.嵌入式系統(tǒng)中SD卡的FAT32文件系統(tǒng)的設(shè)計[J].電聲技術(shù),,2010,34(4):36-39.

  [4] 劉榮勝.一種基于異步回調(diào)機制的NFS服務(wù)端設(shè)計與實現(xiàn)[J].蘇州市職業(yè)大學(xué)學(xué)報,,2013(1):41-43.

  [5] STEVENS W R.Linux network programming——Socket[Z].2011.

  [6] 薛慧敏,,武傳華,路后兵.MicroBlaze處理器的PetaLinux操作系統(tǒng)移植[J].單片機與嵌入式系統(tǒng)應(yīng)用,,2011,,11(4):67-69.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。