新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于單片機的IDE硬盤控制的研究與設計

        基于單片機的IDE硬盤控制的研究與設計

        作者: 時間:2012-03-29 來源:網絡 收藏

        在PIO[4]工作模式下,向發出命令前,必須先檢測驅動器是否忙(BSY)。如果在規定時間內驅動器一直忙碌,置超時錯,否則表示驅動器空閑,可接受命令,對硬盤進行相應操作。接口通過兩個協議來執行命令:PI協議(讀扇區)和PO協議(寫扇區)。

        3.1 讀扇區操作

        處理器在接收到讀扇區的命令后,首先調用ide_rd線程,將8255數據線端口配置成輸入模式,然后讀出的狀態,查詢硬盤是否準備好(DRDY=1?);若準備好則調用wr_lba線程,把邏輯塊地址寫入到相應寄存器;調用ide_wr線程,將8255數據線端口配置成輸出模式,把命令代碼寫入命令寄存器,讀扇區命令開始執行。此時對驅動器狀態寄存器的BSY位置1,同時將硬盤上指定扇區上的數據送入扇區緩沖區。當扇區緩沖區準備好時,置位DRQ位,清除BSY位,發中斷請求INTRQ信號。

        而后處理器讀取狀態寄存器,若DRQ=1,則將扇區緩沖區中的數據讀走,完畢后,驅動器置BSY,準備讀下一個扇區,直到請求的扇區全部讀完。

        在讀的過程中查詢狀態寄存器的ERR位,若有錯誤產生,則跳入錯誤處理子程序。

        其程序流程圖如圖3:

        54.jpg



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 皋兰县| 开远市| 伊吾县| 朝阳市| 隆子县| 罗平县| 会泽县| 连云港市| 蒙自县| 马边| 麦盖提县| 巴楚县| 长宁区| 蕲春县| 拜城县| 沐川县| 丁青县| 冕宁县| 株洲县| 周宁县| 当雄县| 乐至县| 黄冈市| 兰西县| 卓尼县| 兴安县| 东海县| 固原市| 扶余县| 图木舒克市| 湛江市| 吉隆县| 临江市| 汕尾市| 车险| 邵阳市| 松潘县| 南江县| 镇康县| 武胜县| 姚安县|