lba48 也差不多,但是我自己没有试过读 160G 的硬盘(没160G硬盘..),下面是英文原始资料 里面有表格贴不上来。
6.33 READ MULTIPLE EXT
6.33.1 Command code
29h
6.33.2 Feature set
48-bit Address feature set
− Mandatory for all devices implementing the 48-bit Address feature set.
− Use prohibited when the PACKET command feature set is implemented
6.33.3 Protocol
PIO data-in (See Clause 11).
6.33.4 Inputs
Sector Count Current -
number of sectors to be transferred low order, bits (7:0).
Sector Count Previous -
number of sectors to be transferred high order, bits (15:8). 0000h in the Sector Count register
specifies that 65,536 sectors are to be transferred.
LBA Low Current -
LBA (7:0).
LBA Low Previous -
LBA (31:24).
LBA Mid Current -
LBA (15:8).
LBA Mid Previous -
LBA (39:32).
LBA High Current -
LBA (23:16).
LBA High Previous -
LBA (47:40).
Device -
DEV shall specify the selected device.
LBA shall be set to one
6.33.7 Prerequisites
DRDY set to one. If bit 8 of IDENTIFY DEVICE data word 59 is cleared to zero, a successful SET MULTIPLE
MODE command shall precede a READ MULTIPLE EXT command.
6.33.8 Description
This command reads the number of sectors specified in the Sector Count register.
The number of sectors per block is defined by a successful SET MULTIPLE command. If no successful SET
MULTIPLE command has been issued, the block is defined by the device’s default value for number of
sectors per block as defined in bits (7:0) in word 47 in the IDENTIFY DEVICE data. The device shall interrupt
for each DRQ block transferred.
When the READ MULTIPLE EXT command is issued, the Sector Count register contains the number of
sectors (not the number of blocks) requested.
If the number of requested sectors is not evenly divisible by the block count, as many full blocks as possible
are transferred, followed by a final, partial block transfer. The partial block transfer shall be for n sectors,
where n = remainder (sector count/ block count).
If the READ MULTIPLE EXT command is received when READ MULTIPLE commands are disabled, the
READ MULTIPLE operation shall be rejected with command aborted.
Device errors encountered during READ MULTIPLE EXT commands are posted at the beginning of the
block or partial block transfer, but the DRQ bit is still set to one and the data transfer shall take place,
including transfer of corrupted data, if any. The contents of the Command Block Registers following the transfer of a data block that had a sector in error are undefined. The host should retry the transfer as
individual requests to obtain valid error information.
Subsequent blocks or partial blocks are transferred only if the error was a correctable data error. All other
errors cause the command to stop after transfer of the block that contained the error.