种豆资源网

当前位置:首页 > 百科 > 百科综合 / 正文

IDE命令

(2019-12-01 02:45:53) 百科综合
IDE命令

IDE命令

IDE命令是电子设备中的一个按钮所会执行的功能

基本介绍

  • 中文名:IDE命令
  • 属于:ATA标準
  • 分类:强制、可选
  • 数量:近四十种IDE命令

简介

在ATA标準中定义了近四十种IDE命令,其中十种为基本的(或叫强制性的),其他是可选的。
1.部分基本IDE命令的功能
以下命令名后面括弧中数字为该命令的控制代码。
①驱动器诊断(90H):该命令启动驱动器内部的诊断程式。
②格式化磁轨(50H):该命令用来格式化一个磁轨。扇区数暂存器、柱面号暂存器、驱动器/磁头暂存器必须设定成规定的值,
③扇区读(20H允许重试,2lH禁止重试):使用该命令从磁碟读取一个指定的扇区。在读的过程中如果发生错误,接下来的处理则取决于是否允许重试。如果使用禁止重试命令(21H),则操作将被禁止,反之,驱动器将重读出错的扇区,重複的次数由製造商决定。
④扇区写(30H允许重试,3lH禁止重试):该命令类似于读命令,只是数据传送的方向不同。
⑤扇区长读(22H允许重试,23H禁止重试):与扇区读命令不同点在于,读时还包括扇区的ECC(ErrorCorrectionCode)位元组。
⑥扇区长写(32H允许重试,33H禁止重试):与扇区写命令的区别在于ECC位元组也要写入。
⑦寻道(7XH):该命令使磁头移动到地址暂存器指定的磁轨上。
⑧扇区校验(40H允许重试,4lH禁止重试):与扇区读命令相似,不传送数据,只对读出的数据进行校验。
IDE命令

可选IDE命令功能

①DMA方式读(C8H允许重试,C9H禁止重试):该命令与扇区读类似,只是它使用DMA方式读扇区缓冲区的内容。在执行该命令前,应初始化相应的DMA通道。
②DMA方式写(CAH允许重试,CBH禁止重试):该命令与扇区写类似,只是向扇区缓冲区写入数据时使用DMA方式。
③设定多扇区模式(C6H):用该命令设定多扇区操作时的扇区数。
④多扇区读(C4H):它与扇区读类似,但按块读取,一块内包括多个扇区,只有当请求的多个扇区全部读完后才产生中断。
⑤多扇区写(C5H):除数据传送方向外,该命令的其他操作与多扇区读命令相同。3.IDE命令的执行过程
让驱动器执行IDE命令需要有一个过程。在发命令前先应做一些準备,即对有关暂存器进行设定,命令发出后,要读取状态暂存器,判断规定的操作是否完成,有无错误,如有错误,还需作出相应的处理。ATA标準关于IDE命令的执行一共有五个协定。它们是PI协定针对PIO方式读命令、PO协定针对PIO方式读命令、ND协定针对没有数据传输的命令、DM协定针对使用DMA数据传输的命令、VS协定商家确定的协定。与此相对应,ATA标準将IDE命令分成了五类。这里仅以PI协定命令和PO协定命令为例说明IDE命令的执行过程。
(1)PI协定命令的执行过程
PI(PIOIn)协定是针对PIO方式读命令的。PIO方式读命令包括对扇区及缓冲区的一次或多次读等多个命令,可将它们统称为PI协定命令。按照协定,该类命令应该按下面的过程执行。首先,主机把执行命令过程中所需要的所有参数写入地址暂存器(1F3H~1F6H)和特性暂存器(如果需要),然后把命令码写入命令暂存器,命令开始执行。这时驱动器设定状态暂存器中的BSY信号,同时将磁碟上指定扇区的数据送入扇区缓冲区。当扇区缓冲区準备好,置位DRQ,清BSY,发中断请求信号INTRQ。操作时序如图10.19所示。
然后,主机开始读取状态暂存器,同时驱动器清除中断请求信号INTRQ。如果状态暂存器的DRQ位为1,主机就从扇区缓冲区读取数据。数据读完后,驱动器复位DRQ位。如果是多扇区读(前面设定时,还要设定扇区数暂存器),此时驱动器就重新设定BSY位,準备读下一个扇区,直到请求的扇区全部读完。
在读的过程中,如果发生了错误,驱动器仍然準备读下一个扇区,同时设定状态暂存器中的出错位,让主机决定是否继续进行。
2.PO协定命令的执行过程
PO(PIOOut)协定是针对:PIO方式写命令的。按照协定,该类命令应该按下面的过程执行。首先,主机把必要的参数写入对应的地址暂存器,等待DRDY有效,然后将命令码写入命令暂存器,此时驱动器设定状态暂存器的DRQ位,表示準备接收数据。主机通过数据暂存器将数据写入扇区缓冲区,当扇区缓冲区填满时,驱动器清除DRQ位,并置位BSY。驱动器开始将扇区缓冲区中的数据写入磁碟。一旦写盘结束,它会马上清除BSY位,并发出中断请求信号INTRQ。主机接收到中断信号后,读驱动器的状态暂存器,同时将中断信号清除。如果是写一个扇区,则写命令到此结束。如果是多扇区写,此时驱动器会重新设定DRQ,开始处理下一个扇区。
从上面的PI协定命令和PO协定命令的执行过程可以看到,对磁碟介质的读或写是由驱动器具体完成的,
而主机发出的扇区读/写命令只是针对扇区缓冲区的。这一点也适用于DMA协定命令。
下面的TurboC程式是用PIO方式读取一个扇区的内容。该例有助于理解PI协定命令的执行过程。

标 签

搜索
随机推荐

Powered By 种豆资源网||