新聞中心

EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 采用FPGA和DSP直接控制硬盤(pán)實(shí)現(xiàn)存儲(chǔ)控制的方法

采用FPGA和DSP直接控制硬盤(pán)實(shí)現(xiàn)存儲(chǔ)控制的方法

作者: 時(shí)間:2010-01-11 來(lái)源:網(wǎng)絡(luò) 收藏

傳輸40M數(shù)據(jù)結(jié)束后,主機(jī)將根據(jù)傳輸?shù)纳葏^(qū)數(shù)填寫(xiě)FAT表,判斷空間是否小于200M、已儲(chǔ)存的文件數(shù)是否大于256,如果為真則再次存儲(chǔ)數(shù)據(jù)時(shí)將使用下一個(gè)磁盤(pán)分區(qū)。
4 操作控制流程
我們一般習(xí)慣稱接口為IDE接口[3],對(duì)硬盤(pán)的操作如讀寫(xiě)扇區(qū),發(fā)送命令等都是通過(guò)讀寫(xiě)寄存器來(lái)完成的,每向硬盤(pán)發(fā)送一組命令后都要讀取狀態(tài)寄存器中的信息,通過(guò)狀態(tài)寄存器的值來(lái)判斷硬盤(pán)是否已經(jīng)執(zhí)行完所發(fā)送的命令。
4.1 硬盤(pán)啟動(dòng)操作
硬盤(pán)加電后應(yīng)先將硬盤(pán)復(fù)位,硬盤(pán)復(fù)位方式有三種,本設(shè)計(jì)采用的是將SRST置1,當(dāng)SRST被置1后硬盤(pán)立即復(fù)位,這時(shí)應(yīng)至少等待2ms才讀取Status register。如果Status register的值為80h,則表明硬盤(pán)已完成復(fù)位。硬盤(pán)啟動(dòng)流程見(jiàn)圖2。

本文引用地址:http://www.butianyuan.cn/article/191820.htm

圖2 硬盤(pán)啟動(dòng)程序流程圖

圖3 扇區(qū)讀寫(xiě)操作程序流程圖
4.2 扇區(qū)讀寫(xiě)操作
首先應(yīng)向硬盤(pán)發(fā)送命令參數(shù),將要讀寫(xiě)的扇區(qū)數(shù)目寫(xiě)入Sector count register,將扇區(qū)的邏輯地址寫(xiě)入LBA High register、LBA Mid register和LBA Low register,將要接收命令的設(shè)備號(hào)寫(xiě)入Device register。流程見(jiàn)圖3。
LBA=(柱面編號(hào)×磁頭數(shù)+磁頭編號(hào))×扇區(qū)數(shù)+扇區(qū)編號(hào)-1
將命令READ SECTOR或WRITE SECTOR寫(xiě)入Command register后,在400ns內(nèi)Status register的值并不可靠,所以需等待400ns才能讀取Status register,這段等待時(shí)間可以通過(guò)讀取Alternate Status register和Error register度過(guò),讀取的數(shù)值應(yīng)被丟棄。當(dāng)狀態(tài)寄存器的值為58h時(shí),表示硬盤(pán)已經(jīng)可以從Data register接收或傳輸數(shù)據(jù)。



關(guān)鍵詞: FPGA DSP 直接控制 硬盤(pán)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉