<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

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

          3.1 讀扇區(qū)操作

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

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

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

          其程序流程圖如圖3:

          54.jpg



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();