欢迎来到天天文库
浏览记录
ID:9233275
大小:51.46 KB
页数:6页
时间:2018-04-24
《ide接口硬盘读写技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第31卷第6期电子科技大学学报Vol.31No.62002年12月JournalofUESTofChinaDec.2002IDE接口硬盘读写技术*徐小玲(浙江教育学院计算机系杭州310012)【摘要】分析了IDE接口硬盘控制寄存器模型;论述了IDE接口硬盘的读写几项技术;给出了设计硬盘克隆软件的思想和方法,方法针对硬盘物理扇区进行读写,与硬盘上安装的具体操作系统的类型无关,并与硬盘驱动器的物理结构无关。结合C语言与汇编语言,经实际应用验证,方法简便,具有较强的实用性。关键词IDE接口;硬盘控制寄存器;LBA寻址;ATA标准中图分类号TP302Techn
2、ologyofRead-WriteIDEInterfaceHardDiskXuXiaoling(DepartmentofComputers,ZheJiangEducationCollegeHangZhou310012)AbstractThispaperanalysethemodelofcontrollerregistersforIDEinterfaceharddiskdrive,summarizedsomekeytechnicaboutread-writeharddiskdriveandadesignaboutcloneharddisk.Wecandi
3、rectlyread-writethesector,andithasnoconcernwithoperatingsystemandthestructureofharddiskdrive.CombinewithCandAssemblelanguage,Wegiveanrealyapplication.themethodiseasyanduseful.KeywordsIDEinterface;harddiskcontrolregister;LBAseek;ATAstandard硬盘读写是一个复杂的过程,它涉及到硬盘的接口方式、寻址方式、控制寄存器模型等。硬
4、盘的存储介质经历了从磁性材料、光磁介质到Flash半导体存储材料,对它们的读写方法和寻址方式都一样,因为这些存储介质与计算机的接口共同遵循着ATA标准。主机与硬盘之间的数据传输按程序I/O或DMA方式进行,硬盘的寻址方式可按CHS或LBA。在计算机应用中,掌握硬盘读写技术很有必要,像UNIX系统的dd命令和目前流行的Ghost、DiskEdit等软件,都可以把数十个GB容量硬盘上庞大的软件系统,在短时间内复制完成。这些工具软件的构造正是基于该技术而设计的。本文从IDE控制器的寄存器模型入手,分析硬盘的读写方法和寻址方式,结合实例剖析了这类复杂硬盘工具软
5、件的设计思路及制作方法。1IDE控制器的寄存器模型[1]计算机主机对IDE接口硬盘的控制是通过硬盘控制器上的二组寄存器实现。一组为命令寄存器组(TaskFileRegisters),I/O的端口地址为1F0H~1F7H,其作用是传送命令与命令参数,如表1所示。另一组为控制/诊断寄存器(Control/DiagnosticRegisters),I/O的端口地址为3F6H~3F7H,其作用是控制硬盘驱动器,如表2所示。2002年4月23日收稿*女39岁大学讲师第6期徐小玲:IDE接口硬盘读写技术637表1TaskFileRegisters命令寄存器组I/O
6、地址读(主机从硬盘读数据)写(主机数据写入硬盘)1F0H数据寄存器数据寄存器1F1H错误寄存器(只读寄存器)特征寄存器1F2H扇区计数寄存器扇区计数寄存器1F3H扇区号寄存器或LBA块地址0~7扇区号或LBA块地址0~71F4H磁道数低8位或LBA块地址8~15磁道数低8位或LBA块地址8~151F5H磁道数高8位或LBA块地址16~23磁道数高8位或LBA块地址16~231F6H驱动器/磁头或LBA块地址24~27驱动器/磁头或LBA块地址24~271F7H状态寄存器命令寄存器表2Control/DiagnosticRegisters控制/诊断寄存器
7、I/O地址读写3F6H交换状态寄存器(只读寄存器)设备控制寄存器(复位)3F7H驱动器地址寄存器在硬盘执行读写过程中,为了节省I/O地址空间,用相同的地址来标识不同的寄存器。例如,如表1中端口地址1F7H,在向硬盘写入数据时作为命令寄存器,而向硬盘读取数据时作为状态寄存器。表1中各寄存器功能如下:数据寄存器:是主机和硬盘控制器的缓冲区之间进行8位或16位数据交换用的寄存器,使用该寄存器进行数据传输的方式称程序输入输出方式,即PIO方式,数据交换的另一种方式是通过DMA通道,这种方式不使用数据寄存器进行数据交换;错误寄存器:该寄存器包含了上次命令执行后硬
8、盘的诊断信息。每位意义见表3,在启动系统、硬盘复位或执行硬盘的诊断程序后,也在该寄存器中保存着
此文档下载收益归作者所有