atapi接口及指令介绍

上传人:第*** 文档编号:32682569 上传时间:2018-02-12 格式:DOC 页数:17 大小:624KB
返回 下载 相关 举报
atapi接口及指令介绍_第1页
第1页 / 共17页
atapi接口及指令介绍_第2页
第2页 / 共17页
atapi接口及指令介绍_第3页
第3页 / 共17页
atapi接口及指令介绍_第4页
第4页 / 共17页
atapi接口及指令介绍_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《atapi接口及指令介绍》由会员分享,可在线阅读,更多相关《atapi接口及指令介绍(17页珍藏版)》请在金锄头文库上搜索。

1、ATA物理接口引脚图(40针)ATA接口信号定义示意图ATA接口信号描述:(1) CS0-和CS1一片选 (Chip Select)信号。ATA主机用来选择命令块寄存器或控制块寄存器。当DMACK信号为有效状态时,表示正在进行MDMA或UDMA传输,CSI和CSO应该处于无效状态。(2)DA0- DA2:设备地址(Device Address)信号。与CS0和CS1_一块构成寄存器或数据端口选择地址。(3) DD0- DD15:ATA主机控制器和设备之间的16位双向数据总线。如果是对寄存器进行操作时,只使用低8位。(4) DIOR :HDMARDY :HSTROBE:DIOR-( Device

2、 I/ O Read),用于PIO和MDMA传输方式,当其为有效时,表示主机从设备读取数据; HDMARDY_( Host DMA Ready),用于UDMA读数据方式,当其有效时表示主机准备好接收数据;HSTROBE(Host Data Strobe),用于UDMA写数据方式,在该信号的上升沿和下降沿,主机都会发送数据。(5) DIOW:STOP: DIOW-( Device I/ O Write),用于PIO和MDMA传输方式,当其为有效时,表示主机向设备写数据;STOP,用于UDMA传输方式,当其有效时表示主机将要停止读写数据。(6)DMARQ: DMA请求。当主机与设备之间进行DMA数

3、据传输时,ATA设备将会首先发出该信号。(7) DMACK :DMA响应。在ATA主机检测到设备发出DMARQ信号后,如果可以进行MDMA或UDMA数据传输,将会置该信号有效(低电平)。(8) INTRQ:中断请求信号。只有设备控制寄存器(Device Control Register)中的nIEN位为0, ATA设备才能发出INTRQ信号。(9)IORDY:DDMARDY: DSTROBE: IORDY(IO/Ready),用于PIO传输方式,当其为无效状态时(低电平),表示要延长PIO传输周期;DDMARDY (Device DMA Ready),用于UDMA写数据方式,当其有效时表示设备

4、准备好接收数据;DSTROBE( Device Data Strobe),用于UDMA数据方式,在该信号的上升沿和下降沿,设备都会发送数据。ATA接口寄存器(Task File Register)的定义及描述:ATA主机与设备的通信是通过主机对ATA接口上的寄存器实现的,而这些接口寄存器由主机发送的地址信号CS1,CS0、DA0-DA2,来进行寻址。除了在DMA传输模式下,CSl和CSO全有效或全无效都是不可用的地址,在这种情况下,数据线应在释放状态下(即数据总线没有驱动源).当CSO_无效,CS1_有效时,DA2:0只有在值为06H和07H时地址才为有效,在其他的无效地址状态下,设备会使数据

5、总线处于高阻态。ATA接口寄存器可分为命令块寄存器和控制块寄存器。命令块寄存器是主机用来向设备传输命令或从设备读取状态的,这组寄存器包括柱面号高(Cylinder High) 8位寄存器、柱面号低(Cylinder Low) 8位寄存器、设备磁头(Device/Head)寄存器、扇区数(Sector Count)寄存器、扇区号(Sector Number)寄存器、命令(Command)寄存器、状态(Status)寄存器、特征(Features)寄存器、错误(Error)寄存器和数据(Data)寄存器。控制块寄存器是用来控制设备和替换状态,这组寄存器包括设备控制(Device Control)寄

6、存器、替换状态(Alternate Status)寄存器和驱动器地址(Drive Address)寄存器。(1) 数据寄存器:是主机和设备的缓冲区之间进行数据交换用的寄存器,使用该寄存器进行数据传输的方式是PIO传输方式,数据交换的另外两种方式是MDMA和UDMA方式,这两种方式不使用数据寄存器进行数据交换。(2) 错误寄存器:该寄存器包含了本次命令执行后设备的诊断信息。在启动系统、设备复位或执行设备的诊断程序后,也在该寄存器中保存着一个诊断码。(3) 扇区数寄存器:指明所要读写的扇区总数,其中0表示传输256个扇区,如果在数据读写过程发生错误,寄存器将保存尚未读写的扇区数目。下面的扇区号寄存

7、器、柱面号寄存器、设备/磁头寄存器三者合称为介质地址寄存器。介质地址有CHS方式或LBA方式,而采用何种方式是在设备磁头寄存器中指定。(4) 扇区号寄存器:指定所要读/写的起始扇区号。(5) 柱面号寄存器:指明所要读/写的起始柱面号。(6) 驱动器磁头寄存器:指定硬盘驱动器号与磁头号和寻址方式,其中第4位的内容指定的是设备号,当为0时选即主设备,为1时选择从设备。(7) 状态寄存器:保存设备执行命令后的状态和结果,寄存器各位所表示的内容如表所示。上表中各位的功能如下:BSY位 : 为1时表示设备忙,正在执行命令。主机在发送命令前必须先判断该位是否为0;DRDY 位 :为1时表示设备准备好,可以

8、接收命令;DRQ 位: 为1表示请求主机进行数据传输(读或写);ERR位 : 该位为1表示在结束前次的命令执行时发生了无法恢复的错误,在错误寄存器中保存了更多的错误信息;#位表示该位的内容随命令的不同而不同,Obsolete位表示该位不使用。(8) 命令寄存器:包含执行的命令代码。在向命令寄存器写命令以前,相关该命令的参数必须先写入。(9) 特征寄存器:此寄存器中的内容在命令被执行时作为命令参数,只有在BSY和DRQ都为零且DMACK无效时该寄存器才能被写入。(10 )设备控制寄存器:将该寄存器的SRST位设置为1,可以使设备处于复位状态。nIEN表示是否允许中断,0为允许,设备可以发送INT

9、RQ信号。由此可见,对该寄存器发送04H命令即命令设备硬复位,其格式如表所示,其中r表示该位保留。简单总结:最基本的无非就是 16 根数据线(DD0DD15),5 根地址线(CS0,CS1,DA0-DA2),一根“读”状态信号线,一根“写”状态信号线,一根中断信号线(IRQ)。其中数据的传输过程都被主机(host)用寄存器进行了封装,我们只需要操作主机的寄存器即可!通讯的过程是这样的。根据协议,设备(device)提供了 9 个 command block 寄存器。分别是:DATA,Features,sector count, sector number,Cylinder low,cylind

10、er high,device/head,status,command。除了 command 和 status 外,其它寄存器用来为 command 提供参数。主机也会提供相应的寄存器,主要就是 addres 和 data,其它还有一些控制,反馈状态的寄存器。一次完整的读过程大致是这样的:先向主机 address 寄存器里填值,选中 device 的寄存器来进行一些设置。然后,分别向 sector count,sector number,cylinder low,cylinder high 里输入参数,最后,选中 command 寄存器,输入读写命令,device 首先会产生一个中断,通知它已经

11、准备要传输数据,然后,主机反复读 data 寄存器就可以将数据取去。常用 ATAPI 指令介绍:IDENTIFYDEVICE 0xecREADSECTOR 0x20READMULTIPLE 0xc4READDMA 0xc8WRITESECTOR 0x30WRITEMULTIPLE 0xc5WRITEDMA 0xcaSETFEATURES 0xefIDENTIFYDEVICE:该指令能使主机得到设备的一些参数确认信息。当该指令发出后,设备置BSY为0,准备传送256个字的设备参数确认信息给主机,然后设DRQ为1,清BSY为0,插入INTRQ(nIEN为0时)。主机就可以读取数据寄存器来获得256

12、字的设备信息。READSECTOR :当在传送数据时发生不可恢复的错误时,在command block寄存器中保存了第一个发生错误的sector的地址,并使传送中止。READMULTIPLE (0xc4):与READSECTOR相似,区别:READSECTOR时在传送每一个sector前,device都会插入INTRQ引发中断,而READMULTIPLE时设备仅在传送第一个sector前插入INTRQ。READDMA:主机初始化DMA通道,采用DMA方式读取数据。WRITESECTOR,WRITEMULTIPLE,WRITEDMA 与读取时相应指令类似。SETFEATURES :主机用来设定设

13、备执行动作的一些方式和特性。传输过程:1.执行设备选择: 一个 ATA 主机控制器可以接两个设备,主机每次在下达命令前都会选择执行命令的设备。首先,主机必须要确认当前所选择的设备是否已经处于空闲状态,然后主机再写设备/磁头寄存器以选择新的设备,最后保证被选择的设备处于准备阶段,可以接收新的命令。在每次主机下达ATA命令时,设备选择协议都会执行,该协议的执行过程如图所示。2.PIO数据读取:即ATA主机从设备通过PIO方式读取数据(1) 根据要读的扇区位置,向控制寄存器发送命令参数,等待设备的状态寄存器的DRDY位置1后进入下一步;(2) 主机向设备命令控制器发送读命令20H;(3) 设备设置状

14、态寄存器的BSY位,并把数据发送到缓冲区;(4) 设备准备好一个扇区的数据后,设置状态寄存器的DRQ位,跟据请求位,通知主机现在可以从设备读取数据,并清除BSY位忙信号;同时向主机发出INTRQ中断请求信号:(5) 主机响应中断请求,开始读取设备状态寄存器,以判断读命令执行的情况,同时设备清除INTRQ中断请求信号(6) 根据状态寄存器,如果读取的数据命令执行正常则进入下一步,如果有错误,进入错误处理,退出PIO数据传输;(7) 主机通过数据寄存器读取数据,当一个扇区数据被读完,扇区计数器减1,如果扇区计数器不为0,进入(3),否则进入(8),(8) 当所有请求扇区的数据被读取后,命令执行结束

15、。3.PIO数据写入即ATA主机通过PIO方式向设备写数据(1) 根据要写的扇区位置,向设备控制寄存器发出命令参数,等待设备状态寄存器的DRDY位置1后进入下一步;(2) 主机向设备命令控制器发送写命令30H;(3) 设备设置状态寄存器中DRQ数据请求位;(4) 主机通过数据寄存器向设备缓冲区发送数据;(5) 当缓冲区满或主机发送完一个扇区的数据后,设备设置状态寄存器中的BSY位,并清除DRQ数据请求信号;(6) 缓冲区中的数据开始被写入设备所指定的扇区中,当处理完一个扇区,设备马上清除BSY信号,同时设置INTRQ;(7) 主机读取设备的状态寄存器和/或错误寄存器,以判断写命令执行的情况,如

16、果有无法克服的错误(如坏道,退出PIO数据输出传输,否则进入下一步;(8) 如果还有扇区进行写操作,进入第(3)步,否则进入下一步;(9) 当所有的请求扇区的数据被写完后,命令执行结束。4. DMA传输DMA传输包括MDMA和UDMA传输方式,虽然它们在数据传输时的执行过程和速度不一样,但都遵循DMA传输协议。(1) 根据要写的扇区位置,向设备控制寄存器发出命令参数,等待设备状态寄存器的DRDY位置1后进入下一步;(2) 主机向设备命令控制器发送DMA读或DMA写命令;(3) 设备设置状态寄存器中的BSY位,开始执行命令;(4) 当设备准备好进行传输数据时,向ATA主机发出DMARQ数据请求信号;(5) 主机置DMACK数据响应信号为有效状态(低电平),开始数据传输;(6) 如果指定扇区数的数据传输完后,还有数据要传输,则进入(4),否则进入下一步;(7) 当数据传输完成或出现错误,设备设置状态寄存器和错误寄存器

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号