新聞中心

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

        基于單片機(jī)的IDE硬盤控制的研究與設(shè)計(jì)

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

        3.2 寫扇區(qū)操作

        如圖4所示,處理器在接收到寫扇區(qū)的命令后,讀的狀態(tài),查詢是否準(zhǔn)備好(DRDY=1?);若準(zhǔn)備好則把邏輯塊地址寫入到相應(yīng)寄存器,告之所需要操作的扇區(qū);將寫扇區(qū)命令代碼寫入命令寄存器,同時(shí)驅(qū)動(dòng)器設(shè)置狀態(tài)寄存器的DRQ位,表示準(zhǔn)備好接收數(shù)據(jù),處理器通過(guò)數(shù)據(jù)寄存器將數(shù)據(jù)寫入扇區(qū)緩沖區(qū),當(dāng)扇區(qū)緩沖區(qū)添滿后,驅(qū)動(dòng)器清除DRQ位,并置位BSY。驅(qū)動(dòng)器將扇區(qū)緩沖區(qū)中的數(shù)據(jù)寫入,當(dāng)寫盤結(jié)束,清除BSY位,發(fā)中斷請(qǐng)求信號(hào) INTRQ,CPU接收到中斷信號(hào)后,讀驅(qū)動(dòng)器狀態(tài)寄存器,同時(shí)將中斷信號(hào)INTRQ清除。而后處理器讀取狀態(tài)寄存器,若DRQ=1,則將扇區(qū)緩沖區(qū)中的數(shù)據(jù)讀走,完畢后,驅(qū)動(dòng)器置BSY,準(zhǔn)備讀下一個(gè)扇區(qū),直到請(qǐng)求的扇區(qū)全部讀完。

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

        55.jpg

        3.3邏輯塊尋址操作

        可以用兩種方法來(lái)尋址即物理尋址方式(CHS)和邏輯尋找方式(LBA)。由于LAB是將物理參數(shù)轉(zhuǎn)換成線性地址,對(duì)用戶來(lái)說(shuō)驅(qū)動(dòng)器是有由連續(xù)數(shù)據(jù)塊(扇區(qū))組成的存儲(chǔ)介質(zhì),不需要知道驅(qū)動(dòng)器的磁頭、磁道等參數(shù)。因此,本系統(tǒng)采用LBA,其與CHS影射關(guān)系為:

        LBA=(柱面號(hào)*磁頭數(shù)+磁頭號(hào))*扇區(qū)數(shù)+扇區(qū)編號(hào)1

        在該操作中,處理器根據(jù)上述映射關(guān)系通過(guò)寫4個(gè)字節(jié)LBA地址分別向磁頭號(hào)寄存器、柱面號(hào)高字節(jié)寄存器、柱面號(hào)低字節(jié)寄存器以及起始扇區(qū)號(hào)寄存器寫入數(shù)據(jù),以得出需要操作的扇區(qū)。

        3.4 ide_rd線程和ide_wr線程

        處理器通過(guò)ide_rd線程和ide_wr線程,設(shè)置8255工作模式,對(duì)的寄存器進(jìn)行讀寫操作,IDE讀寫周期。



        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 昭平县| 邯郸县| 龙南县| 外汇| 广灵县| 保德县| 西吉县| 大同市| 沾益县| 五常市| 微山县| 万荣县| 青州市| 沅江市| 民勤县| 隆尧县| 绥中县| 庆元县| 苍南县| 兴安盟| 同心县| 白水县| 神农架林区| 张家港市| 浮山县| 盈江县| 星子县| 珲春市| 高邑县| 八宿县| 怀远县| 承德县| 水城县| 通化市| 衡南县| 饶阳县| 绍兴市| 江门市| 丹棱县| 北川| 三河市|