IDE接口硬盘读写技术

时间:2025-04-21

IDE接口硬盘读写技术

第31卷 第6期 电 子 科 技 大 学 学 报 Vol.31 No.6 2002年12月 Journal of UEST of China Dec. 2002

IDE接口硬盘读写技术

徐小玲*

(浙江教育学院计算机系 杭州 310012)

【摘要】分析了IDE接口硬盘控制寄存器模型;论述了IDE接口硬盘的读写几项技术;给出了设计硬盘克

隆软件的思想和方法,方法针对硬盘物理扇区进行读写,与硬盘上安装的具体操作系统的类型无关,并与硬

盘驱动器的物理结构无关。结合C语言与汇编语言,经实际应用验证,方法简便,具有较强的实用性。

关 键 词 IDE接口; 硬盘控制寄存器; LBA寻址; ATA标准

中图分类号 TP302

Technology of Read-Write IDE Interface Hard Disk

Xu Xiaoling

(Department of Computers, ZheJiang Education College HangZhou 310012)

Abstract This paper analyse the model of controller registers for IDE interface hard disk

drive, summarized some key technic about read-write hard disk drive and a design about clone hard disk. We can directly read-write the sector ,and it has no concern with operating system and the structure of hard disk drive. Combine with C and Assemble language, We give an realy application . the method is easy and useful.

Key words IDE interface; hard disk control register; LBA seek; ATA standard

硬盘读写是一个复杂的过程,它涉及到硬盘的接口方式、寻址方式、控制寄存器模型等。硬盘的存储介质经历了从磁性材料、光磁介质到Flash半导体存储材料,对它们的读写方法和寻址方式都一样,因为这些存储介质与计算机的接口共同遵循着ATA标准。主机与硬盘之间的数据传输按程序I/O或DMA方式进行,硬盘的寻址方式可按CHS或LBA。在计算机应用中,掌握硬盘读写技术很有必要, 像UNIX系统的dd命令和目前流行的Ghost、DiskEdit等软件,都可以把数十个GB容量硬盘上庞大的软件系统,在短时间内复制完成。这些工具软件的构造正是基于该技术而设计的。本文从IDE控制器的寄存器模型入手,分析硬盘的读写方法和寻址方式,结合实例剖析了这类复杂硬盘工具软件的设计思路及制作方法。

1 IDE控制器的寄存器模型

计算机主机对IDE接口硬盘的控制是通过硬盘控制器上的二组寄存器实现[1]。一组为命令寄存器组(Task File Registers),I/O的端口地址为1F0H~1F7H,其作用是传送命令与命令参数,如表1所示。另一组为控制/诊断寄存器(Control/Diagnostic Registers),I/O的端口地址为3F6H~3F7H,其作用是控制硬盘驱动器,如表2所示。 2002年4月23日收稿

* 女 39岁 大学 讲师

IDE接口硬盘读写技术

第6期 徐小玲: IDE接口硬盘读写技术

表1 Task File Registers命令寄存器组

I/O地址

1F0H

1F1H

1F2H

1F3H

1F4H

1F5H

1F6H

1F7H 读(主机从硬盘读数据) 数据寄存器 错误寄存器(只读寄存器) 扇区计数寄存器 扇区号寄存器或LBA块地址0~7 磁道数低8位或LBA块地址8~15 磁道数高8位或LBA块地址16~23 驱动器/磁头或LBA块地址24~27 状态寄存器 写(主机数据写入硬盘) 数据寄存器 特征寄存器 扇区计数寄存器 扇区号或LBA块地址0~7 磁道数低8位或LBA块地址8~15 磁道数高8位或LBA块地址16~23 驱动器/磁头或LBA块地址24~27 命令寄存器 637

表2 Control/Diagnostic Registers控制/诊断寄存器

I/O地址

3F6H

3F7H 读 交换状态寄存器(只读寄存器) 驱动器地址寄存器 写 设备控制寄存器(复位)

在硬盘执行读写过程中,为了节省I/O地址空间,用相同的地址来标识不同的寄存器。例如,如表1中端口地址1F7H,在向硬盘写入数据时作为命令寄存器,而向硬盘读取数据时作为状态寄存器。表1中各寄存器功能如下:

数据寄存器:是主机和硬盘控制器的缓冲区之间进行8位或16位数据交换用的寄存器,使用该寄存器进行数据传输的方式称程序输入输出方式,即PIO方式,数据交换的另一种方式是通过DMA通道,这种方式不使用数据寄存器进行数据交换;

错误寄存器:该寄存器包含了上次命令执行后硬盘的诊断信息。每位意义见表3,在启动系统、硬盘复位或执行硬盘的诊断程序后,也在该寄存器中保存着一个诊断码。

表3 IDE错误寄存器

位 意 义

0 AMNF,没找到所要访问的扇区的数据区。

1 TK0NF,在执行恢复RECALIBRATE命令时,0磁道没有发现。

2 ABRT,对硬盘发非法指令或因硬盘驱动器故障而造成命令执行的中断。

3 MAC,该信号用来向主机发出通知,表示介质的改变。

4 IDNF,没有找到访问的扇区,或CRC发生错误。

5 MC, 这是发送给主机一个信号以通知主机使用新的传输介质。

6 UNC,在读扇区命令时出现不能校正的ECC错误,因此此次数据传输无效。

7 BBK,在访问扇区的ID数据场发现坏的数据块时会置1。

下面的扇区数寄存器、磁道数寄存器、驱动器/磁头寄存器三者合称为介质地址寄存器,介质地址可以用CHS方式或LBA方式,在驱动器/磁头寄存器中指定用何种方式。

扇区计数寄存器:指明所要读/写的扇区总数,其中0表示传输256个扇区,如果在数据读写过程发生错误,寄存器将保存尚未读写的扇区数目。

磁道数寄存器:指明 …… 此处隐藏:4408字,全部文档内容请下载后查看。喜欢就下载吧 ……

IDE接口硬盘读写技术.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219