网站大量收购独家精品文档,联系QQ:2885784924

AT硬盘控制器编程.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AT硬盘控制器编程 由Hi_Cracker整理自赵炯老师的《Linux内核完全注释》 @whu 1,AT硬盘接口寄存器 表e - 2 AT硬盘控制器寄存器端口及作用 端口 名称 读操作 写擁作 tbclftj HD_DAFA 数据寄存器 -扇区数据賤写 、翳式化) 0x1 fl HD ERROR 错误寄存器(错泯状态) 写前伏补偿需存器 0x1 £2 IID_NSECTOR 扇区数寄存器 “扇区敢(it.写“检验、格式化) OxlD HD_SECTOR 扇区号寄存器 ?起始扇区(i孰 写 0x114 HD^LCYL 柱面号寄存器 -杖面号低字* (读 、写、检验、格式化〕 0x1 e HDJKYL 柱面号寄存器 -柱面号高字节(读 、写、检脸、格式化) 0x1 fc HD_CXKRENT 塑幼戕磁头寄存器-驱动器引磁头号「 1 Oldlildili. dF驱动器号 r hmS头号) flxlf; HDSTATLTS 主状态寄存器(HD STATLS) 命令寄存器 Ox?伍 HD_CW 硬盘控制寄召器(HD CMD) 数字输入寄存器(与1.2M软盘合用) — 下面对各端口寄存器进行详细说明。 ?数据寄存器(HD_DATA OxIfO) 这是一对16位高速PIO数据传输器,用于扇区读、写和磁道格式化操作。 CPU通 过该数据寄存器向硬盘写入或从硬盘读出 1个扇区的数据,也即要使用命令rep outsw 或rep insw重复读/写cx=256字。 ?错误寄存器(读)/写前预补偿寄存器(写)(HD_ERROR0x1f1) 在读时,该寄存器存放有8位的错误状态。但只有当主状态寄存器(HD_STATU,S)x1f7) 的位0=1时该寄存器中的数据才有效。执行控制器诊断命令时的含义与其它命令时的不 同。见下表所示 表6-3硬f 盘控制器错误寄存器 值 诊断命令时 其它命令吋 OxO 1 无错课 数据标志丢失 0x02 控常 ?器出错 磁道0错 0x03 扇区缓冲区 错 0x04 ECC部件错 命令放弃 0x05 控帚 (J处理器 I 0x10 ID春找到 0x40 ECC错误 0x80 坏扇区 在写操作时,该寄存器即作为写前预补偿寄存器。它记录写预补偿起始柱面号。对 应于与硬盘基本参数表位移 0x05处的一个字,需除4后输出。 ?扇区数寄存器(HD_NSECTOJR0x1f2) 该寄存器存放读、写、检验和格式化命令指定的扇区数。当用于多扇区操作时,每 完成1扇区的操作该寄存器就自动减1,直到为0。若初值为0,则表示传输最大扇区 数 256。 ?扇区号寄存器(HD_SECTOR0x1f3) 该寄存器存放读、写、检验操作命令指定的扇区号。在多扇区操作时,保存的是起 始扇区号,而每完成1扇区的操作就自动增1。 ?柱面号寄存器(HD_LCYL HD_HCYL 0x1f4, 0x1f5) 该两个柱面号寄存器分别存放有柱面号的低 8位和高2位。 ?驱动器/磁头寄存器(HD_CURREN,T0x1f6) 该寄存器存放有读、写、检验、寻道和格式化命令指定的驱动器和磁头号。其位格 式为101dhhhh。其中101表示采用ECC校验码和每扇区为512字节;d表示选择的驱 动器(0或1); hhhh表示选择的磁头。 ?主状态寄存器(读)/命令寄存器(写)(HD_STATUS/HD_COMMAND0x1f7) 在读时,对应一个8位主状态寄存器。反映硬盘控制器在执行命令前后的操作状态 各位的含义见下表所示 表咅 4 位主状态寄存器 名称 屛蔽码 说明 0 ERR_SIAT Ok-01 命令执行梢 状态冷存蛊 i生 专违位置位时说明前一个命令凶出帯结求.此时出错寄存器和 中的岀持位會有引起蛰農的一些佶息B 1 INIEX_£TAT 0x02 收到盧引. F磁盘旋轴遇到窪引标志时会进宜该位’ ECC_STAT OxtM ECCS验新 这弼情况不 N I遐到一个可恢亘的裁据帮決而且匚得到纠正,就会设童该tL 会屮断一介爭扇区谨援作口 DRQ_£TAT (MS 敌据请求战 何传输一个 务,U该们■枢讶忡时,表示駆功蒔已经汕無好在主忙和垃抑骑CIZ 字或一个字节的数盜。 麵动器-扌道 结F讶伸嵌丙佝时.表亦#遊KHT已经完戌?域久已鏡円衣州 4 SEEK STAT 0x10 疋的6^道:k ?当发生错谋时,该位并芋会改变.只有主机读取r状在番存器后, 该位就套再 次去示当前#道的完成状态* 5 WRERH STAT 应D 驰期器故障 「马出诸)”十发生错误时.该位并车会改先口只有主机读収『状态 崙存器后 该也就会再次表示 i怪侔的出锚状恵。 好(就绪儿农示驱动爲已经准备好接收命令口气屋生错遢时,该位 6 KEADY STAT 0x40 井不会改变 ?只有主机读厢了状态寄齐器

文档评论(0)

wq1987 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档