国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于FPGA的IDE硬盤接口卡的實現(xiàn)

發(fā)布時間:2010-7-18 22:48    發(fā)布者:conniede
關鍵詞: FPGA , IDE硬盤 , 接口卡
引言

本文采用FPGA實現(xiàn)了IDE硬盤接口協(xié)議。系統(tǒng)提供兩套符合ATA-6規(guī)范的IDE接口,一個與普通IDE硬盤連接,另一個與計算機主板上的IDE接口相連。系統(tǒng)采用FPGA實現(xiàn)接口協(xié)議,完成接口數(shù)據(jù)的截獲、處理(在本文中主要是數(shù)據(jù)加密)和轉發(fā),支持PIO和Ultra DMA兩種數(shù)據(jù)傳輸模式。下面重點介紹用FPGA實現(xiàn)接口協(xié)議的方法。

1 IDE接口協(xié)議簡介

1.1 IDE接口引腳定義

IDE(Integrated Drive Electronics)即“電子集成驅動器”,又稱為ATA接口。表1列出了ATA標準中IDE接口上的信號。其中,帶“-”的信號(如RESET-)表示低電平有效。“方向”是相對于硬盤而言,I表示進入硬盤,O表示從硬盤出來,I/O表示雙向。

  表1:IDE接口引腳定義

1.2 IDE控制器的寄存器組

主機對IDE硬盤的控制是通過硬盤控制器上的兩組寄存器來實現(xiàn)的。一組為命令寄存器組;另一組為控制/診斷寄存器,如表2所示。
  

表2:寄存器組

特征寄存器中的內容作為命令的一個參數(shù),其作用隨命令而變。扇區(qū)數(shù)寄存器指示該次命令所需傳輸數(shù)據(jù)的扇區(qū)數(shù)。扇區(qū)號寄存器、柱面數(shù)寄存器(低、高)、驅動器/磁頭寄存器三者合稱為介質地址寄存器,指示該次命令所需傳輸數(shù)據(jù)首扇區(qū)的地址,尋址方式可以用“柱面/磁頭/扇區(qū)(CHS)”或“邏輯塊地址(LBA)”方式,在驅動器/磁頭寄存器中指定。

命令寄存器存儲執(zhí)行的命令代碼。當向命令寄存器寫入命令時,相關的參數(shù)必須先寫入。命令寫入后,硬盤立即開始命令的執(zhí)行。狀態(tài)寄存器保存硬盤執(zhí)行命令后的結果,供主機讀取。其主要位有:BSY-驅動器忙,DRDY-驅動器準備好,DF-驅動器故障,DRQ-數(shù)據(jù)請求,ERR-命令執(zhí)行出錯。輔助狀態(tài)寄存器與狀態(tài)寄存器的內容完全相同,但讀該寄存器時不清除中斷請求。錯誤寄存器包含了命令執(zhí)行出錯時硬盤的診斷信息。

數(shù)據(jù)寄存器為PIO傳輸模式下,主機和硬盤控制器的緩沖區(qū)之間進行數(shù)據(jù)交換的寄存器。數(shù)據(jù)端口為DMA傳輸模式下專用的數(shù)據(jù)傳輸通道。

1.3 IDE數(shù)據(jù)傳輸方式

IDE接口的數(shù)據(jù)傳輸包括PIO和DMA兩種方式。PIO模式是硬盤數(shù)據(jù)傳輸?shù)幕痉绞健T赑IO方式下,數(shù)據(jù)的傳輸以數(shù)據(jù)塊(1個或者多個扇區(qū))為單位,每傳輸完一個數(shù)據(jù)塊后,硬盤都會產(chǎn)生一個中斷請求,并向主機報告命令執(zhí)行結果。

在DMA方式下,主機和硬盤之間需要通過一系列握手信號建立一個DMA通道,數(shù)據(jù)以數(shù)據(jù)流的形式傳輸。當傳輸完一個命令的所有數(shù)據(jù)時,硬盤產(chǎn)生一個中斷請求,并向主機報告命令執(zhí)行結果。DMA方式又分為Ultra DMA和Multiword DMA兩種。Ultra DMA方式在選通信號的上升沿和下降沿均鎖定數(shù)據(jù),提高了數(shù)據(jù)的傳輸速率,并且在數(shù)據(jù)傳輸結束時還要進行CRC校驗。

2 FPGA內部框圖

本設計采用Actel公司的ProASIC PLUS系列FPGA芯片,其內部框圖如圖1所示。

寄存器組一保存從主機寫入的命令及命令參數(shù),在控制模塊的作用下轉發(fā)給硬盤。寄存器組二保存從硬盤讀出的命令執(zhí)行結果,供主機讀取。控制模塊負責產(chǎn)生對主機及對硬盤的各種IDE協(xié)議控制信號,并協(xié)調各模塊之間的工作。控制模塊采用狀態(tài)機的設計方法,其軟件設計流程將在下一節(jié)中詳細介紹。數(shù)據(jù)處理單元對數(shù)據(jù)進行加/解密運算。緩沖區(qū)一、二則作為數(shù)據(jù)處理單元的輸入/輸出緩存。在PIO方式下,數(shù)據(jù)的處理以數(shù)據(jù)塊為單位,緩沖區(qū)充當RAM的作用;在Ultra DMA方式下,數(shù)據(jù)以數(shù)據(jù)流的形式處理,緩沖區(qū)充當FIFO的作用。

3 系統(tǒng)軟件流程

開機時,F(xiàn)PGA檢測到復位信號,初始化內部寄存器組,并對硬盤進行復位操作,硬盤復位完畢后FPGA進入空閑狀態(tài)。FPGA在空閑狀態(tài)時會檢測主機是否有寫命令操作(通常一個命令的寫入,要先寫特征寄存器、扇區(qū)數(shù)寄存器、扇區(qū)號寄存器、柱面數(shù)低位寄存器、柱面數(shù)高位寄存器、驅動器/磁頭寄存器6個命令參數(shù)寄存器,最后將命令寫入命令寄存器)。當主機依次將寄存器組一寫完后,F(xiàn)PGA對主機置BSY位,并將命令轉發(fā)給硬盤,同時判斷命令類型,根據(jù)不同的命令,進入相應的命令處理流程。

如果是無數(shù)據(jù)命令,F(xiàn)PGA等待硬盤命令的執(zhí)行,命令執(zhí)行完畢后,硬盤產(chǎn)生一個中斷請求,此時FPGA將執(zhí)行結果讀入寄存器組二中,并向主機產(chǎn)生中斷請求。如果是有數(shù)據(jù)命令,則根據(jù)數(shù)據(jù)傳輸?shù)哪J剑謩e進入到下述的PIO命令處理流程及Ultra DMA命令處理流程。




3.1 PIO命令處理流程
以PIO模式傳輸數(shù)據(jù)的命令有Write Sectors、Write Multiple、Read Sectors和Read Multiple。當FPGA判斷出是PIO模式的數(shù)據(jù)傳輸命令時,轉向PIO命令處理流程。下面我們以PIO寫操作為例介紹。

FPGA首先查詢硬盤的BSY位。若BSY為0則將硬盤的狀態(tài)寄存器讀入寄存器組二,并查詢DRQ位。若DRQ為1則表明硬盤已準備好接收數(shù)據(jù)。此時主機可以向緩沖區(qū)一寫入數(shù)據(jù)塊(本設計中,我們設定數(shù)據(jù)塊的大小為1個扇區(qū)共512字節(jié))。主機寫完一個數(shù)據(jù)塊后FPGA對主機置BSY位,數(shù)據(jù)處理單元開始進行加密運算,并將加密后的數(shù)據(jù)寫入緩沖區(qū)二。加密運算完成后,F(xiàn)PGA將緩沖區(qū)二中的數(shù)據(jù)寫入硬盤數(shù)據(jù)緩存區(qū),并進入等待狀態(tài)。硬盤將數(shù)據(jù)寫入物理介質(磁碟)后會產(chǎn)生一個中斷請求,報告已完成該數(shù)據(jù)塊的寫操作。FPGA將執(zhí)行結果讀入寄存器組二中,向主機產(chǎn)生中斷請求,并再次查詢DRQ位,若DRQ為1則進入下一個PIO數(shù)據(jù)塊的傳輸過程,若DRQ為0則表示該命令所有數(shù)據(jù)全部傳完,F(xiàn)PGA進入空閑狀態(tài)。

此外,Identify Device命令是主機以PIO方式從硬盤讀出512字節(jié)的屬性信息(包括硬盤的型號、容量等)。此時,數(shù)據(jù)處理單元不應對該命令的數(shù)據(jù)進行加/解密運算。

3.2 Ultra DMA命令處理流程

以Ultra DMA模式傳輸數(shù)據(jù)的命令有Write DMA和Read DMA。下面我們以Ultra DMA寫操作為例介紹Ultra DMA命令處理流程。

DMA傳輸通道的建立都是由硬盤通過DMARQ來請求的。FPGA接收到硬盤的DMA請求后首先初始化主機至FPGA的DMA通道,緊接著初始化FPGA至硬盤的DMA通道。此時主機經(jīng)FPGA到硬盤的DMA通道即已建立,主機向緩沖區(qū)一寫入數(shù)據(jù),同時數(shù)據(jù)處理單元對數(shù)據(jù)進行加密運算,并將加密后的數(shù)據(jù)寫入緩沖區(qū)二,F(xiàn)PGA則將緩沖區(qū)二中的數(shù)據(jù)寫入硬盤。在傳輸過程中,若硬盤要求暫停或者緩沖區(qū)二空,則FPGA暫停向硬盤發(fā)送數(shù)據(jù);若緩沖區(qū)一滿,則FPGA要求主機暫停發(fā)送數(shù)據(jù)。
  
圖3 PIO命令處理流程

主機和硬盤都可以隨時停止當前的DMA傳輸,未傳完的數(shù)據(jù)將等待硬盤下一次的DMA請求時再進行傳輸。如果硬盤提出中止傳輸,F(xiàn)PGA將撤除FPGA至硬盤的DMA通道,同時向主機提出中止傳輸,撤除主機至FPGA的DMA通道,并計算該次所傳數(shù)據(jù)的CRC校驗。然后FPGA進入等待狀態(tài),等待硬盤下一次的DMA請求。

如果主機提出中止傳輸,F(xiàn)PGA將撤除主機至FPGA的DMA通道,同時繼續(xù)向硬盤發(fā)送數(shù)據(jù),直到將接收到主機的數(shù)據(jù)發(fā)送完畢,即緩沖區(qū)二空后,向硬盤提出中止傳輸,撤除FPGA至硬盤的DMA通道,并計算CRC校驗。然后FPGA進入等待狀態(tài),等待硬盤下一次的DMA請求。

在等待狀態(tài)下,若FPGA接收到硬盤的中斷請求,則說明該次命令的所有數(shù)據(jù)已經(jīng)傳完,命令結束。FPGA將命令執(zhí)行結果讀入寄存器組二,向主機產(chǎn)生中斷請求,進入空閑狀態(tài)。若接收到硬盤的DMA請求,則說明硬盤還未接收到該次命令的所有數(shù)據(jù),此時需要判斷主機是否已將所有數(shù)據(jù)發(fā)送完。如果主機并沒有將所有數(shù)據(jù)發(fā)送完,則再次建立FPGA兩側的DMA通道,開始新一輪的DMA傳輸;如果主機已將所有數(shù)據(jù)發(fā)送完,則重新建立FPGA至硬盤的DMA通道,直到將緩沖區(qū)二中的數(shù)據(jù)發(fā)送完,并計算CRC校驗。


4 結束語

本文采用FPGA實現(xiàn)了兩套符合ATA-6規(guī)范的IDE接口,完成主機與硬盤之間數(shù)據(jù)的截獲、處理和轉發(fā)。經(jīng)測試,系統(tǒng)在DOS、Windows 98、Windows? 2000、Windows XP及 Red Hat Linux 9.0操作系統(tǒng)環(huán)境下,使用希捷、邁拓、三星、西數(shù)等公司的多種型號硬盤均工作正常,支持PIO和Ultra DMA兩種數(shù)據(jù)傳輸模式。由于通過FPGA實現(xiàn)一個完整的IDE接口,若對系統(tǒng)稍加改動,如在數(shù)據(jù)處理單元中加入相應的文件系統(tǒng),即可實現(xiàn)脫機讀寫IDE硬盤,用于數(shù)據(jù)采集的海量存儲等多種場合,使系統(tǒng)具有較好的通用性。

本文作者創(chuàng)新點:作者針對硬盤數(shù)據(jù)易泄密及高速大容量數(shù)據(jù)采集困難等問題,提出在主機和硬盤之間使用FPGA芯片構建一個雙向IDE硬盤通道,實現(xiàn)兩套符合ATA-6規(guī)范的IDE接口,F(xiàn)PGA對主機與硬盤間的數(shù)據(jù)流進行處理及轉發(fā),以實現(xiàn)硬盤數(shù)據(jù)加密、數(shù)據(jù)高速采集存儲及脫機控制硬盤等操作。系統(tǒng)支持PIO和Ultra DMA兩種數(shù)據(jù)傳輸模式,對操作系統(tǒng)透明,較常見的單向IDE通道,該系統(tǒng)通用性強,有較好的推廣價值。本文側重于用FPGA實現(xiàn)IDE接口協(xié)議,對實現(xiàn)過程及方法做了詳細描述,對讀者有較高的參考實用價值。
本文地址:http://www.qingdxww.cn/thread-15549-1-1.html     【打印本頁】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據(jù)著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 深度體驗Microchip自動輔助駕駛應用方案——2025巡展開啟報名!
  • 更佳設計的解決方案——Microchip模擬開發(fā)生態(tài)系統(tǒng)
  • 我們是Microchip
  • 利用模擬開發(fā)工具生態(tài)系統(tǒng)進行安全電路設計
  • 貿澤電子(Mouser)專區(qū)

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线精品自拍 | 99热最新在线观看 | 国产精品久久久久久久久久妇女 | 亚洲毛片一级带毛片基地 | 亚洲高清一区二区三区 | 欧美又大粗又爽又黄大片视频黑人 | 国产噜噜噜 | 国产精品亚洲第五区在线 | 三级欧美在线 | 99热视热频这里只有精品 | 欧美一级欧美三级在线 | 18视频免费网站 | 成人国产精品一区二区网站 | 久久只有精品视频 | 网球王子在线观看 | 天天操天天插天天干 | 青青操国产在线 | 色视频免费在线 | 日韩在线视频免费看 | 欧美高清在线播放 | 日本在线免费 | 麻豆精品国产自产在线 | 四虎在线精品 | 日韩久久一区二区三区 | 精品国产亚一区二区三区 | 亚洲欧美一区二区三区 | 亚洲综合一区二区三区四区 | 91精品国产综合久久久久 | 国产在线观看不卡免费高清 | 午夜精品一区二区三区免费视频 | 亚洲第一黄色网 | 日本色播| 久久se精品动漫一区二区三区 | 嫩草成人影院 | 婷婷中文网 | 99色图 | 亚洲第一成年免费网站 | 国产精品老牛影视 | 国产午夜精品一区二区三区 | 韩剧网最新的韩国电视剧免费观看 | 精品视频网 |