新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 采用FPGA和DSP直接控制硬盤實現存儲控制的方法

        采用FPGA和DSP直接控制硬盤實現存儲控制的方法

        作者: 時間:2010-01-11 來源:網絡 收藏

        傳輸40M數據結束后,主機將根據傳輸的扇區數填寫FAT表,判斷空間是否小于200M、已儲存的文件數是否大于256,如果為真則再次存儲數據時將使用下一個磁盤分區。
        4 操作控制流程
        我們一般習慣稱接口為IDE接口[3],對硬盤的操作如讀寫扇區,發送命令等都是通過讀寫寄存器來完成的,每向硬盤發送一組命令后都要讀取狀態寄存器中的信息,通過狀態寄存器的值來判斷硬盤是否已經執行完所發送的命令。
        4.1 硬盤啟動操作
        硬盤加電后應先將硬盤復位,硬盤復位方式有三種,本設計采用的是將SRST置1,當SRST被置1后硬盤立即復位,這時應至少等待2ms才讀取Status register。如果Status register的值為80h,則表明硬盤已完成復位。硬盤啟動流程見圖2。

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

        圖2 硬盤啟動程序流程圖

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



        關鍵詞: FPGA DSP 直接控制 硬盤

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 海丰县| 剑阁县| 大化| 新乡县| 延安市| 秭归县| 伽师县| 阳新县| 会泽县| 绍兴市| 阳西县| 通化县| 新建县| 昭平县| 尉犁县| 拉孜县| 太白县| 田林县| 淮滨县| 淮安市| 五河县| 溆浦县| 海安县| 临西县| 吴忠市| 林州市| 怀柔区| 淅川县| 中阳县| 西盟| 哈尔滨市| 岳普湖县| 伊春市| 贵州省| 兴山县| 洞口县| 遂宁市| 嘉禾县| 南雄市| 巴南区| 泸水县|