| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
| 1 | L | 1 | DEV | HS3 | HS2 | HS1 | HS0 |
HS0~HS3(磁頭選擇):在LBA方式中,是邏輯扇區(qū)的高4位。
DEV驅(qū)動(dòng)器選擇:0選擇主驅(qū)動(dòng)器,1選擇從驅(qū)動(dòng)器。
L(LBA方式):L=1,置驅(qū)動(dòng)器為L(zhǎng)BA模式;L=0,置驅(qū)動(dòng)器為CHS模式。
·狀態(tài)寄存器(177 R);反映了硬盤(pán)執(zhí)行命令后的狀態(tài)。讀該寄存器清除中斷請(qǐng)求信號(hào),為避免清除中斷,可以讀輔助狀態(tài)寄存器376h。這兩個(gè)寄存器的內(nèi)容完全一樣。在A(yíng)TA/ATAPI-4中其定義如表3所示。
BSY:驅(qū)動(dòng)器忙。
DRDY:驅(qū)動(dòng)器準(zhǔn)備好。
DRQ:請(qǐng)求服務(wù),驅(qū)動(dòng)器請(qǐng)求通過(guò)寄存器與處理器交換一個(gè)字節(jié)數(shù)據(jù)。
ERR:命令執(zhí)行錯(cuò)誤。
3.2 硬盤(pán)PIO方式下特定區(qū)域多扇區(qū)讀的操作
如果想從硬盤(pán)的特定扇區(qū)讀出碼流信息,首先主機(jī)(C8051F015)要對(duì)驅(qū)動(dòng)器/磁頭寄存器、柱面號(hào)寄存器、扇區(qū)號(hào)寄存器、扇區(qū)數(shù)寄存器設(shè)置參數(shù)。完畢后要等待至少400ns才能去讀狀態(tài)寄存器的參數(shù)判斷以上設(shè)置是否有效。硬盤(pán)接收命令后置BSY=1,并開(kāi)始執(zhí)行命令。硬盤(pán)如果準(zhǔn)備好傳送數(shù)據(jù)包,就置DRQ=1,同時(shí)清零BSY。當(dāng)機(jī)循環(huán)讀狀態(tài)寄存器或輔助狀態(tài)寄存器判斷BSY=0&DRQ=1,一旦硬盤(pán)狀態(tài)符合要求,主機(jī)寫(xiě)參數(shù)0x80(128扇區(qū))到數(shù)據(jù)寄存器(0x170),并寫(xiě)0x20(PIO讀)到命令寄存器(0x177),表示要求讀出硬盤(pán)相應(yīng)地址里的數(shù)據(jù)塊。硬盤(pán)判斷數(shù)據(jù)寄存器被置數(shù)后立即置BSY=1&DRQ=0。主機(jī)讀到置位信息后給硬盤(pán)讀時(shí)鐘,硬盤(pán)輸出數(shù)據(jù)直到數(shù)據(jù)包傳完為止。
表3 狀態(tài)寄存器在A(yíng)TA/ATAPI-4中的定義
| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
| BSY | DRDY | # | # | DRQ | obsolete | obsolete | ERR |





