新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于SOA架構的網(wǎng)絡硬盤控制器的設計

        基于SOA架構的網(wǎng)絡硬盤控制器的設計

        作者: 時間:2017-06-04 來源:網(wǎng)絡 收藏

        本文引用地址:http://www.104case.com/article/201706/348101.htm

        摘要:

        項目設計一種采用“流程+引擎+構件”的SOA三層架構的。系統(tǒng)采用FPGA作為系統(tǒng),在FPGA內(nèi)部MicroBlaze軟核處理器上移植PetaLinux操作系統(tǒng),加載NFS網(wǎng)絡文件系統(tǒng),將擴展Int 13H規(guī)范中定義的基本硬盤操作指令封裝成原子構件,并采用VHDL硬件描述語言實現(xiàn)各原子構件,實現(xiàn)對硬盤的基本操作。設計引擎模塊,根據(jù)NFS文件系統(tǒng)操作指令,調(diào)用相關原子操作,實現(xiàn)硬盤存儲空間管理、文件存儲操作、用戶管理等功能。本文設計可作為個人存儲服務器連接到以太網(wǎng),用戶可通過連接網(wǎng)絡的任意主機實現(xiàn)對服務器硬盤的訪問管理。

        1 引言

        隨著電子郵箱及的普及,用戶可不用攜帶存儲設備,而直接通過網(wǎng)絡進行數(shù)據(jù)的上傳和下載,實現(xiàn)個人數(shù)據(jù)的管理。然而,使用網(wǎng)絡運營商提供的網(wǎng)絡硬盤可用空間有限,且數(shù)據(jù)保密性不強。本項目旨在研究一種適合于個人應用的網(wǎng)絡硬盤存儲裝置,該網(wǎng)絡硬盤使用RJ45接口連接到以太網(wǎng),通過以太網(wǎng)以TCP/IP協(xié)議,用戶可用以太網(wǎng)上任意主機實現(xiàn)對網(wǎng)絡硬盤的管理操作,與電子郵箱及網(wǎng)絡運營商提供的網(wǎng)絡硬盤相比,此項目設計的個人網(wǎng)絡存儲硬盤有著存儲空間容量大、使用安全、可靠性較高等優(yōu)點。

        2 系統(tǒng)原理與特點

        系統(tǒng)結構如圖2-1所示。

        圖2-1 系統(tǒng)結構

        用戶通過連接網(wǎng)絡的客戶端PC機采用TCP/IP協(xié)議實現(xiàn)文件的上傳和下載,上傳文件時,用戶通過客戶端PC機向網(wǎng)絡硬盤控制器發(fā)送上傳文件指令,并發(fā)送文件數(shù)據(jù),F(xiàn)PGA內(nèi)以太網(wǎng)控制器模塊接收數(shù)據(jù)并由DDR2控制器模塊寫入到DDR2中緩存,然后根據(jù)NFS協(xié)議將數(shù)據(jù)從DDR2中讀出經(jīng)硬盤控制器模塊寫入到硬盤中保存;客戶端下載文件時,用戶通過客戶端PC機向硬盤控制器發(fā)送下載文件指令,F(xiàn)PGA內(nèi)以太網(wǎng)控制器模塊接收指令后,根據(jù)NFS協(xié)議將文件數(shù)據(jù)通過硬盤控制器模塊讀出并寫入到DDR2緩存中,然后將數(shù)據(jù)由DDR2中讀出并由以太網(wǎng)控制器模塊,加載網(wǎng)絡協(xié)議棧,將數(shù)據(jù)由網(wǎng)絡發(fā)送到客戶端PC。

        FPGA內(nèi)部調(diào)用MicroBlaze處理器,移植PetaLinux操作系統(tǒng),配置TCP/IP協(xié)議棧,加載NFS網(wǎng)絡文件系統(tǒng),利用VHDL語言設計Int13H規(guī)范中定義的對硬盤操作的原子構件,并設計對原子構件調(diào)用的引擎管理模塊,將原子構件與引擎管理模塊以用戶IP核形式添加到與MicroBlaze處理器互聯(lián)的PLB片內(nèi)總線,F(xiàn)PGA內(nèi)部系統(tǒng)模塊框圖如圖2-2所示。

        圖2-2 FPGA內(nèi)功能模塊

        3 硬盤引擎管理模塊設計

        借鑒互聯(lián)網(wǎng)分布式計算領域中網(wǎng)格計算、云計算技術廣泛采用的為核心設計思想,首先進行業(yè)務需求分析、根據(jù)業(yè)務用例、用例場景、業(yè)務步驟的分析過程找出對應的原子業(yè)務。根據(jù)業(yè)務原子業(yè)務映射到相應的系統(tǒng)需求進行系統(tǒng)建模,通過形式語義將場景步驟序列描述為由一系列原子構件的組合。完成“流程+引擎+構件”的三層SOA結構的文件系統(tǒng)設計。

        3.1 文件系統(tǒng)業(yè)務單元

        文件系統(tǒng)是操作系統(tǒng)中負責管理和存儲文件信息的軟件系統(tǒng)。主要負責對文件存儲器空間進行組織和分配,文件的存儲以及對存入的文件進行保護和檢索。文件系統(tǒng)主要包括存儲空間管理、文件存儲操作、用戶管理這三個業(yè)務單元。

        存儲實間管理主要包括對存儲空間的組織、分配和回收。文件存儲操作主要包括用戶對存儲空間文件的基本操作,包含文件的生成、刪除、打開、關閉、文件讀、文件寫等。用戶管理主要包括用戶的注冊、登錄以及用戶權限管理等。

        3.2 提取業(yè)務用例

        在提取文件系統(tǒng)的業(yè)務用例時,主要是從業(yè)務主角——用戶的角度出發(fā),對文件系統(tǒng)的每一個業(yè)務單元進行分析提取業(yè)務用例。

        3.2.1 存儲空間管理

        存儲空間管理業(yè)務單元的用例視圖如圖3-1所示。

        圖3-1 存儲空間管理用例視圖

        存儲空間管理該業(yè)務單元主要包括如下業(yè)務用例:初始化存儲空間、分配存儲空間、追加存儲空間、回收存儲空間、查詢剩余存儲空間。

        3.2.2 文件存取操作

        文件存取操作業(yè)務單元的業(yè)務用例視圖如圖3-2所示。

        圖3-2 文件存取操作用例視圖

        文件存取操作業(yè)務單元包括如下業(yè)務用例:建立文件、打開文件、讀文件、寫文件、關閉文件、保存文件、刪除文件、保存文件、列舉文件、檢索文件、復制文件等。

        3.2.3 用戶管理

        用戶管理用例視圖如圖3-3所示。

        圖3-3 用戶管理用例視圖

        用戶管理該業(yè)務單元包括的業(yè)務用例主要有填加用戶、刪除用戶、用戶登錄、用戶退出、設置用戶權限、修改用戶權限等。

        3.3業(yè)務用例場景

        3.3.1 劃分業(yè)務用例場景

        業(yè)務用例在實際執(zhí)行的進程中可能會有多種不同的情況發(fā)生,每一種情況都稱為該業(yè)務用例的一個業(yè)務用例場景,也可以說業(yè)務用例場景是指實例化的用例。通過對文件系統(tǒng)的業(yè)務用例進行分析,劃分出文件系統(tǒng)的業(yè)務用例場景如表1所示。

        表3-1 文件系統(tǒng)業(yè)務用例場景

        業(yè)務用例

        業(yè)務用例場景

        說明

        初始化存儲空間

        初始化存儲空間

        對未進行初始化設置的空間進行初始化。

        分配存儲空間

        分配存儲空間

        為新創(chuàng)建的文件分配存儲空間。

        追加存儲空間

        追加存儲空間

        對現(xiàn)有存儲空間已滿的文件追加新的存儲空間

        回收存儲空間

        回收存儲空間

        文件被刪除后,回收不用的存儲空間

        建立文件

        創(chuàng)建文檔文件

        創(chuàng)建一個新的文件并存檔

        創(chuàng)建文件夾

        建立文件的組織單元

        打開文件

        打開文檔文件

        打開一個已經(jīng)存在的文件

        打開文件夾

        打開一個已經(jīng)存在的文件夾

        讀文件

        順序讀文件

        從文件頭順序讀取文件內(nèi)容

        隨機讀文件

        從指定位置處讀取指定長度的文件內(nèi)容

        寫文件

        寫文件

        從指定位置處向已創(chuàng)建文件中寫入內(nèi)容

        關閉文件

        關閉文檔文件

        關閉已經(jīng)打開的文件

        關閉文件夾

        關閉已經(jīng)打開的文件夾

        保存文件

        保存文件

        對文件內(nèi)容或?qū)傩杂羞^更改的文件進行存檔

        刪除文件

        刪除文件內(nèi)容

        刪除指定位置處指定長度的文件內(nèi)容

        刪除文件

        刪除已經(jīng)存在的文檔性質(zhì)的文件

        刪除文件夾

        刪除已經(jīng)存在的存放文檔的文件夾

        列舉文件

        列舉當前文件夾下文件

        列舉當前文件夾目錄中的所有文件,包括文件夾和文檔文件。

        列舉存儲空間的所有文件

        列舉存儲空間中的所有文件夾和文件

        檢索文件

        在當前文件夾檢索

        在當前文件夾中查找指定名稱的文件或文件夾

        在整個存儲空間檢索

        從整個存儲空間查找指定名稱的文件或文件夾

        改變目錄

        進入子目錄

        進入當前目錄的下級目錄

        返回父目錄

        返回當前目錄的上級目錄

        填加用戶

        注冊用戶

        登記允許對存儲空間內(nèi)文件進行操作的用戶信息

        刪除用戶

        刪除用戶

        刪除已登記的文件系統(tǒng)的用戶信息

        用戶登錄

        用戶登錄

        用戶進入文件存儲空間

        用戶退出

        用戶退出

        用戶退出文件存儲空間

        修改用戶信息

        修改用戶信息

        修改已登記的用戶信息

        設置用戶權限

        設置用戶權限

        對進入文件存儲空間用戶的文件操作權限進行設置

        3.3.2 描述業(yè)務用例

        本文對文件系統(tǒng)業(yè)務用例描述采用的是用例文檔和UML的活動圖,通過畫出文件系統(tǒng)業(yè)務用例場景的活動圖,按照所用例文檔模板的格式對活動圖進行描述,建立文件系統(tǒng)的業(yè)務用例模型,得到文件系統(tǒng)的業(yè)務需求文檔。

        3.4 提取原子業(yè)務

        前面對文件系統(tǒng)進行了業(yè)務建模,分析了文件系統(tǒng)的業(yè)務參與者、業(yè)務用例和業(yè)務場景,在此小結中將分析提取文件系統(tǒng)的原子業(yè)務。主要通過分析業(yè)務場景的主干流程來進行原子業(yè)務的提取。

        3.4.1 存儲空間管理原子業(yè)務分析

        以追加存儲空間為例分析業(yè)務流程。

        前置條件:文件當前存儲空間不足,文件剩余存儲空間中有足夠的空閑空間。

        后置條件:成功為文件追加空閑存儲空間。

        該業(yè)務流程由如下業(yè)務步驟組成:

        1>.文件存儲空間不足,申請新的存儲空間;

        2>.文件定位;

        3>.追加新的存儲空間。

        分析上述業(yè)務步驟,畫出追加存儲空間業(yè)務用例場景的業(yè)務流程圖如圖3-4所示。

        圖3-4 追加存儲空間活動圖

        經(jīng)分析追加存儲空間該業(yè)務用例中可提取出兩個原子業(yè)務:文件定位、追加存儲空間。分析存儲空間管理業(yè)務單元其它業(yè)務用例場景的業(yè)務流程后,得出該業(yè)務單元原子業(yè)務樹狀結構圖如圖3-5所示。

        圖3-5 存儲空間管理原子業(yè)務模型結構圖

        3.4.2 文件存取操作原子業(yè)務分析

        以順序讀文件為例分析業(yè)務流程。

        前置條件:文件存在并且可讀。

        后置條件:從文件指定位置處順序讀取指定長度內(nèi)容。

        該業(yè)務流程由如下業(yè)務步驟組成:

        1>.確定文件所在存儲空間;

        2>.打開目標文件;

        3>.讀取指定長度的文件內(nèi)容;

        4>.關閉文件。

        分析上述業(yè)務步驟,畫出順序讀文件業(yè)務用例場景的業(yè)務流程圖如圖3-6所示。

        經(jīng)分析順序讀取文件該業(yè)務用例中可提取出四個原子業(yè)務:文件定位、打開文件、順序讀文件、關閉文件。

        分析文件存取操作業(yè)務單元其它業(yè)務用例場景的業(yè)務流程后,提取出該業(yè)務單元原子業(yè)務樹狀結構圖如圖3-7所示。

        圖3-6 順序讀取文件業(yè)務活動圖

        3.4.3 用戶管理原子業(yè)務分析

        以注冊用戶為例分析業(yè)務流程。

        前置條件:有權限成為文件系統(tǒng)用戶。

        后置條件:注冊成功,分配用戶名。

        該業(yè)務流程由如下業(yè)務步驟組成:

        1>.管理員進入存儲空間;

        2>.登記用戶信息。

        分析上述業(yè)務步驟,畫出注冊用戶業(yè)務用例場景的業(yè)務流程圖如圖3-8所示。經(jīng)分析注冊用戶該業(yè)務用例中可提取出兩個原子業(yè)務:用戶登錄、登記用戶信息。

        分析用戶管理業(yè)務單元其它業(yè)務用例場景的業(yè)務流程后,得出該業(yè)務單元原子業(yè)務部分樹狀結構圖如圖3-9所示。

        圖3-9 用戶管理原子業(yè)務模型結構圖

        通過以上對文件系統(tǒng)各業(yè)務單元的分析,提取文件系統(tǒng)完整的原子業(yè)務及其描述如表3-2所示。

        表3-2 文件系統(tǒng)原子業(yè)務及其描述

        序號

        原子業(yè)務

        描述

        1

        初始化空間(Initialize_Space)

        對文件系統(tǒng)的存儲空間容量大小和分區(qū)容量進行初始化設置。

        2

        分配空間(Allocate_Space)

        為新建文件或文件夾分配存儲空間

        3

        文件定位(Locate_File)

        確定文件所在存儲空間地址。

        4

        追加空間(Supplement_Space)

        文件存儲空間不足紿文件追加新的存儲空間。

        5

        釋放空間(Free_Space)

        將存儲空間改為未用。

        6

        查詢分區(qū)容量(Inquiry_Space)

        查詢分區(qū)空閑存儲空間大小。

        7

        設置文件為打開狀態(tài)(Set_File_Open)

        更改文件為“打開”狀態(tài)

        8

        設置文件夾為打狀態(tài)(Set_Folder_Open)

        更改文件夾為“打開”狀態(tài)

        9

        設置文件為關閉狀態(tài)(Set_File_Open)

        更改文件為“關閉”狀態(tài)

        10

        設置文件夾為關閉狀態(tài)(Set_Folder_Open)

        更改文件夾為“關閉”狀態(tài)

        11

        順序讀文件(Sequence_Read_File)

        按順序讀取指定長度的文件內(nèi)容

        12

        隨機讀文件(Random_Read_File)

        隨機讀取指定長度的文件內(nèi)容

        13

        寫文件(Write_File)

        向文件內(nèi)寫入指定長度文件內(nèi)容

        14

        更新文件(Update_File)

        文件進行讀寫后更改文年屬性和內(nèi)容

        15

        查找文件(Find_File)

        在指定空間查找指定文件名的文件

        16

        列舉文件(File_Enumeration)

        列舉指定空間的所有文件

        17

        登記用戶信息(Rsgister_User_Information)

        登記文件系統(tǒng)用戶信息。

        18

        修改用戶信息(Modify_User_Information)

        修改已登記的用戶信息

        19

        刪除用戶信息

        (Delete_User_Information)

        刪除已登記的文件系統(tǒng)用戶信息

        20

        用戶進入

        (User_Enter)

        用戶進入文件存儲空間,查看空間內(nèi)文件

        21

        用戶退出

        (User_Exit)

        用戶退出存儲空間

        22

        設置用戶權限(Set_Premissions)

        設置用戶訪問文件的權限。

        4 Petalinux及NFS網(wǎng)絡文件系統(tǒng)的移植

        Petalinux的移植主要工作為硬件平臺搭建,以及內(nèi)核的裁剪與移植,其中硬件平臺的搭建在windows操作系統(tǒng)上安裝的Xilinx EDK環(huán)境中完成,選擇Virtex5-lx110t開發(fā)板,由于網(wǎng)絡文件服務器的需要選擇以太網(wǎng)的IP核,DDR,串口,定時器等并添加相應的中斷,成功建立工程的block diagram 如圖4-1所示。

        圖4-1 搭建工程框圖

        然后進行基于Petalinux軟件平臺的配置,操作系統(tǒng)和庫選項選擇Petalinux,修改主要存儲空間和輸入輸出的當前值,軟件平臺搭建完畢,最后生成庫和板級支持包,然后生成比特流文件下載至目標板測試工程的正確性。

        Petalinux是一套開發(fā)環(huán)境,linux內(nèi)核的裁剪以及移植在安裝centos 5.6 操作系統(tǒng)的主機完成首先利用Petalinux自帶的工具創(chuàng)建嵌入式平臺,將在windows下完成的工程拷貝到Linux系統(tǒng),轉(zhuǎn)換到Linux系統(tǒng)格式,根據(jù)開發(fā)板選擇新的平臺,然后用make menuconfig 命令進入內(nèi)核裁剪的圖形化界面,合理的裁剪之后進行編譯將生成的image.bin文件通過下載線下載至開發(fā)板的DDR SDRAM中,在串口終端可以看到系統(tǒng)啟動信息,如圖4-2所示。

        圖4-2 系統(tǒng)啟動信息

        網(wǎng)絡文件系統(tǒng)支持以應用程序在客戶端通過網(wǎng)絡存取位于服務器磁盤中數(shù)據(jù)的一種文件系統(tǒng)協(xié)議,大多數(shù)網(wǎng)絡文件系統(tǒng)都分成客戶端和文件服務器兩部分。客戶端以邏輯文件塊的方式存取數(shù)據(jù),文件服務器使用塊映射存取真正的磁盤塊,并完成磁盤格式和元數(shù)據(jù)(如目錄)的管理,對客戶端完全屏蔽,一般客戶端和文件服務器以TCP/IP方式通信。NFS是網(wǎng)絡文件系統(tǒng)(Network File System)的簡稱,是分布式計算機系統(tǒng)的一個組成部分,可實現(xiàn)在異種網(wǎng)絡上共享和裝配遠程文件系統(tǒng),可讓不同操作系統(tǒng)的計算機共享數(shù)據(jù)。

        NFS服務器的移植:nfs服務器的實現(xiàn)需要內(nèi)核nfsd的支持外加兩個應用程序套件 portmap 和nfs-utils ,Petalinux中移植此應用程序,下載此應用程序的源碼,添加到petalinux的usr目錄下,修改makefile 和config.in 文件,重新配置內(nèi)核加入nfs服務器端的支持,同時交叉編譯此應用程序,將生成的可執(zhí)行文件復制到 romfs 的bin 目錄下,再在etc 目錄下添加exports 文件用來設置可掛載目錄,使得Petalinux 系統(tǒng)具有nfs服務器端的功能。

        5 IDE硬盤控制器的設計

        IDE(Integrated Drive Electronics,集成驅(qū)動電子設備)是由Compaq開發(fā)并由Western Digital公司生產(chǎn)的硬盤驅(qū)動器。IDE是在早期的ST506硬盤基礎上改進而成的,采用40線的單組電纜進行連接,數(shù)據(jù)傳輸?shù)目煽啃缘玫搅嗽鰪姡脖P制造起來變得容易,因為廠商不需要再擔心自己的硬盤是否與其他廠商生產(chǎn)的控制器兼容,對用戶而言,硬盤安裝起來也更為方便。因此IDE接口實際上是系統(tǒng)級接口,故也稱為ATA(Advanced Technology Attachment)接口,(ATA更接近于接口的協(xié)議層標準,而IDE多用于描述接口的物理結構)。其傳輸方式主要有和DMA兩種。ATA接口規(guī)范從最初的ATA-1版本已發(fā)展到ATA-7版本。

        5.1 硬盤接口信號

        ATA/ATAPI-6標準中定義的主機和設備端之間的通信連接信號如表5-1所示。其中,左邊是對信號的描述,中間表示信號的傳輸方向(由主機到設備還是由設備到主機),右邊表示信號的名稱。

        1. CS(1:0)-:主機發(fā)送給硬盤的片選信號,實現(xiàn)對寄存器的選擇;
        2. DA(2:0):主機發(fā)送給硬盤的地址信號,用來實現(xiàn)對硬盤寄存器的尋址;
        3. DD(15:0):主機與硬盤之間的數(shù)據(jù)連接線,當主機對硬盤寄存器進行讀寫時,使用該數(shù)據(jù)總線的低八位進行數(shù)據(jù)傳輸,當對數(shù)據(jù)寄存器進行讀寫時,用該總線的16位進行數(shù)據(jù)傳輸;
        4. DIOR-:HDMARDY-:HSTROBE:復用信號,表示對寄存器讀信號/Ultra DMA就緒/Ultra DMA數(shù)據(jù)輸出同步信號,DIOR-表示主機對硬盤寄存器的讀信號,HDMARDY-表示Ultra DMA數(shù)據(jù)輸入時,主機發(fā)出的就緒信號,HSTROBE表示Ultra DMA數(shù)據(jù)輸出時主機發(fā)出的時鐘同步信號,雙沿有效,即在該信號的上升沿和下降沿,主機將數(shù)據(jù)輸出;
        5. DIOW-:STOP:復用信號,表示主機寫寄存器命令/主機終止Ultra DMA突發(fā)傳輸信號,DIOW-表示主機發(fā)出的對硬盤寄存器的寫命令信號。在Ultra DMA突發(fā)傳輸時,主機可通過使能STOP信號來終止Ultra DMA突發(fā)傳輸。
        6. DMACK-:在DMA開始傳輸時,主機對硬盤發(fā)出的DMA傳輸請求的應答信號;
        7. DMARQ:當硬盤準備好數(shù)據(jù)收發(fā)時,給主機發(fā)出的DMA傳輸請求信號;
        8. INTRQ:硬盤發(fā)出的中斷請求信號;
        9. IORDY:DDMARDY-:DSTROBE:硬盤發(fā)出的I/O通道就緒/Ultra DMA硬盤就緒/Ultra DMA數(shù)據(jù)輸入同步信號。IORDY表示在數(shù)據(jù)傳輸中,當硬盤沒有準備好數(shù)據(jù)傳輸時,使能該信號無效以延長主機對硬盤的訪問時間。DDMARDY-表示在Ultra DMA數(shù)據(jù)傳輸中硬盤發(fā)出的流量控制信號,該數(shù)據(jù)有效時,表示硬盤已準備好接收Ultra DMA傳輸數(shù)據(jù),硬盤使能該信號無效可暫停Ultra DMA數(shù)據(jù)傳輸。DSTROBE表示在Ultra DMA數(shù)據(jù)傳輸時,硬盤發(fā)出的數(shù)據(jù)鎖存信號,主機可在該信號的上升沿和下降沿接收數(shù)據(jù);
        10. RESET-:主機發(fā)出的硬盤復位信號,低電平有效。

        表5-1 硬盤接口信號

        5.2 硬盤接口寄存器

        主機對硬盤的訪問是通過對接口寄存器的訪問來實現(xiàn)的。ATA-6標準規(guī)定的硬盤接口寄存器如表5-2所示。這些寄存器按照功能劃分為命令寄存器(Command block registers)和控制寄存器(Control block registers)。命令寄存器用來接收主機發(fā)出的各種命令和傳送數(shù)據(jù),包括數(shù)據(jù)寄存器、扇區(qū)計數(shù)寄存器等。控制寄存器用作控制硬盤操作,如使能硬盤中斷、選擇硬盤等。

        表5-2 硬盤端接口寄存器

        5.3 硬盤控制器模塊設計

        硬盤控制器模塊內(nèi)部結構如圖5-1所示。

        圖5-1 硬盤控制器模塊內(nèi)部結構

        5.3.1 總線接口模塊

        總線接口模塊是硬盤控制器與PLB總線的連接模塊,接收處理器通過PLB總線發(fā)來的操作命令及讀寫數(shù)據(jù)。

        5.3.2 硬盤復位模塊

        硬盤上電后需要完成一個復位過程,即ATA/ATAPI-6標準中描述的上電及硬件復位協(xié)議。復位過程既可以通過軟件編程實現(xiàn)也可以通過在硬盤控制器內(nèi)部設計專用的邏輯來實現(xiàn)。系統(tǒng)上電后,硬盤控制器通過硬盤復位模塊生成一個寬帶大于25us的低電平復位信號,復位信號回到高電平2ms后,即復位操作完成。復位信號波形如圖5-2所示。

        圖5-2 復位信號波形

        5.3.3 模塊

        該模塊的功能是產(chǎn)生讀寫硬盤內(nèi)部寄存器的時序,該模塊產(chǎn)生待訪問的硬盤寄存器的地址線,并輸出讀寫信號,根據(jù)數(shù)據(jù)傳輸方向,發(fā)送數(shù)據(jù)到數(shù)據(jù)線或從數(shù)據(jù)線上讀取數(shù)據(jù),操作完成后,釋放地址、數(shù)據(jù)線。

        根據(jù)PIO讀寫時序,該模塊應實現(xiàn)以下功能:

        1. 產(chǎn)生訪問硬盤寄存器的地址信號,并具有一定有效寬帶。
        2. 產(chǎn)生相應的讀寫信號DIOR-/DIOW-,當為寫操作時,使數(shù)據(jù)具有規(guī)定的建立和保持時間;當為讀操作時,給出讀數(shù)據(jù)的時機。
        3. 處理硬盤輸入的IORDY信號,當IORDY無效時,應延長對硬盤的讀寫周期。

        5.3.4 Ultra DMA模塊

        Ultra DMA模塊是硬盤控制器的關鍵模塊,其主要功能是實現(xiàn)Ultra DMA突發(fā)數(shù)據(jù)輸出時序的控制。Ultra DMA操作可分為三個階段,分別是初始階段、數(shù)據(jù)傳輸階段、傳輸中止階段。

        初始階段的時序描述為:當硬盤發(fā)出DMA請求信號DMARQ,控制器通過DMACK-進行應答,等到硬盤發(fā)出的DDMARDY-信號有效后,控制器開始輸出HSTROBE信號。

        數(shù)據(jù)傳輸階段的時序描述為:HSTROBE時鐘的上升沿和下降沿都觸發(fā)數(shù)據(jù)輸出,在數(shù)據(jù)傳輸過程中,控制器可通過停止產(chǎn)生HSTROBE信號來暫停數(shù)據(jù)的輸出,硬盤可以通過使DDMARDY-信號無效來暫停數(shù)據(jù)的接收。

        傳輸終止階段,控制器和硬盤都可終止數(shù)據(jù)傳輸,終止數(shù)據(jù)傳輸可分為四個過程:停止請求、停止檢查、HSTROBE返回高電平、發(fā)送CRC校驗值。對于控制器停止數(shù)據(jù)傳輸,首先停止產(chǎn)生HSTROBE時鐘信號,發(fā)出STOP命令信號,控制器檢查硬盤的DDMARDY和DMARQ均無效后,使HSTROBE返回高電平,使DMACK-無效,并在DMACK-信號跳變沿處輸出CRC校驗值到數(shù)據(jù)線DD(15:0),如圖5-3所示。對于硬盤停止數(shù)據(jù)傳輸,通過使DDMARDY和DMARQ均無效來停止數(shù)據(jù)傳輸,控制器需要在tL1時間內(nèi)發(fā)出STOP信號,使HSTROBE返回高電平,使DMACK-無效,并輸出CRC校驗值至DD(15:0),如圖5-4所示。

        圖5-3 控制器終止Ultra DMA數(shù)據(jù)傳輸時序

        圖5-4 硬盤終止Ultra DMA數(shù)據(jù)傳輸時序

        5.3.5 控制器模塊

        控制模塊是硬盤控制器的核心,該模塊的主要功能是實現(xiàn)CPU對硬盤控制器中寄存器的配置,并根據(jù)相關寄存器的寫入信息實現(xiàn)對應的控制操作。

        6 總結

        項目設計一種基于“流程+引擎+構件”SOA三層架構的網(wǎng)絡硬盤控制器。采用FPGA作為系統(tǒng)控制器,在MicroBlaze軟核處理器上移植PetaLinux操作系統(tǒng),加載NFS網(wǎng)絡文件系統(tǒng),將擴展Int 13H規(guī)范中定義的基本硬盤操作指令封裝成原子構件,采用VHDL硬件描述語言實現(xiàn)各原子構件操作。設計引擎管理模塊,根據(jù)NFS文件系統(tǒng)操作指令,調(diào)用相關原子操作,實現(xiàn)硬盤存儲空間管理、文件存儲操作、用戶管理等功能。



        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 湾仔区| 蕉岭县| 商水县| 蚌埠市| 元氏县| 贵溪市| 高邑县| 天门市| 星座| 远安县| 长武县| 曲阳县| 炎陵县| 黑水县| 福泉市| 琼结县| 夏河县| 台南县| 宕昌县| 弥勒县| 汕头市| 卫辉市| 赣州市| 卢龙县| 乐山市| 南汇区| 上思县| 同江市| 丰宁| 资溪县| 和林格尔县| 新沂市| 兴文县| 邯郸县| 齐河县| 同心县| 铁岭县| 九江市| 吉安市| 宣威市| 玉门市|