您好,欢迎访问三七文档
3标签:ATA协议ATA协议学习笔记本人近期因工作需要在学习ATA总线协议,为了更好的与同行学习交流,把我的学习笔记和心得发布出来。有兴趣的朋友欢迎加入讨论,也希望对ATA协议有研究的同行多多指点。谢谢!1、什么是ATA协议?ATA协议定义了ATA主机控制器与ATA存储设备之间的接口标准,它包括一下几个方面的内容:(1)接口的物理电气特性(2)接口信号定义(3)接口寄存器定义(4)数据传输中使用的命令定义(5)数据传输协议(6)数据传输时序2、ATA接口信号定义ATA物理接口共40根信号线,其中大部分信号由主机控制驱动,另一些由ATA设备(如硬盘)驱动,而16位数据线是双向驱动的。InterfacesignalnameassignmentsDescriptionHostDirDevAcronymCableselect(Seenote1)CSELChipselect0CS0-Chipselect1CS1-Databusbit0DD0Databusbit1DD1Databusbit2DD2Databusbit3DD3Databusbit4DD4Databusbit5DD5Databusbit6DD6Databusbit7DD7Databusbit8DD8Databusbit9DD9Databusbit10DD10Databusbit11DD11Databusbit12DD12Databusbit13DD13Databusbit14DD14Databusbit15DD15Deviceactiveorslave(device1)present(Seenote1)DASP-Deviceaddressbit0DA0Deviceaddressbit1DA1Deviceaddressbit2DA2DMAacknowledgeDMACK-DMArequestDMARQInterruptrequestINTRQI/OreadDIOR-I/OreadyIORDYI/OwriteDIOW-Passeddiagnostics(Seenote1)PDIAG-ResetRESET-Note:1Seesignaldescriptionsforinformationonsourceofthesesignals3、ATA接口的三种数据传输方式(1)PIO(ProgrammableInput-Output)传输,可以分为PIO寄存器传输和PIO数据传输。PIO寄存器传输主要用于对ATA设备中的寄存器进行读写。读写的数据位数为8位DD[7:0]。ATA主机控制器根据所要读写的寄存器地址设置CS0_、CS1_、DA[2:0]地址信号,同时将DIOW_或DIOR_设为有效,ATA主机控制器或ATA设备驱动数据总线释放数据。当DIOW_或DIOR_撤销时,ATA主机控制器或ATA设备从数据总线上读取数据。对于PIO数据传输,所读写的地址为数据端口,读写数据为16位。(2)MDMA(MultiwordDMA)传输,用于数据传输。ATA主机控制器向ATA设备下达MDMA传输命令后,等待设备向主机发送DMARQ数据传输请求信号。当主机收到DMARQ信号后,向设备发送DMACK_响应信号。MDMA数据传输过程与PIO方式大致相同,也是通过DIOW_或DIOR_的周期变化来控制数据的传输。在数据传输过程中,DMARQ和DMACK_握手信号一直保持有效。(3)UDMA(UltraDMA),也是用于数据传输。这种传输方式的传输速度比MDMA要快,ATA/ATAPI-5协议中所定义的UDMA传输方式最高数据传输速率是66MB/s。UDMA对数据传输的控制信号重新进行了定义。另外,UDMA还引入了CRC数据校验机制,保证了数据传输过程的正确性,但其传输过程较为复杂。4、ATA接口寄存器的定义ATA主机与设备的通信是通过主机对ATA接口上的寄存器的读写实现的,而这些接口寄存器由主机发送的地址信号CS1_、CS0_、DA2、DA1、DA0来进行寻址。除了在DMA传输模式下,CS1_和CS0_全有效或全无效都是不可用的地址,在这种情况下,数据线应该在释放状态下(即数据总线没有驱动源)。当CS0_无效,CS1_有效时,DA[2:0]只有在值为06H和07H时地址才为有效,在其他的无效地址状态下,设备会使数据总线处于高阻态。ATA接口寄存器可分为命令块寄存器和控制块寄存器。(1)命令块寄存器是主机用来向设备传输命令或从设备读取状态的,这组寄存器包括:柱面号高(CylinderHigh)8位寄存器柱面号低(CylinderLow)8位寄存器设备/磁头(Device/Head)寄存器扇区数(SectorCount)寄存器扇区号(SectorNumber)寄存器命令(Command)寄存器状态(Status)寄存器特征(Features)寄存器错误(Error)寄存器数据(Data)寄存器。(2)控制块寄存器是用来控制设备和替换状态,这组寄存器包括:设备控制(DeviceControl)寄存器替换状态(AlternateStatus)寄存器驱动器地址(DriveAddress)寄存器
本文标题:ATA协议学习笔记
链接地址:https://www.777doc.com/doc-2901972 .html