标签:
ATA协议
本人近期因工作需要在学习ATA总线协议,为了更好的与同行学习交流,把我的学习笔记和心得发布出来。有兴趣的朋友欢迎加入讨论,也希望对ATA协议有研究的同行多多指点。谢谢!
1、什么是ATA协议?
ATA协议定义了ATA主机控制器与ATA存储设备之间的接口标准,它包括一下几个方面的内容:
(1)接口的物理电气特性
(2)接口信号定义
(3)接口寄存器定义
(4)数据传输中使用的命令定义
(5)数据传输协议
(6)数据传输时序
2、ATA接口信号定义
ATA物理接口共40根信号线,其中大部分信号由主机控制驱动,另一些由ATA设备(如硬盘)驱动,而16位数据线是双向驱动的。
Interface signal name assignments
|
Description |
Host |
Dir |
Dev |
Acronym |
|
Cable select |
(See note 1) |
CSEL |
|
Chip select 0 |
|
® |
|
CS0- |
|
Chip select 1 |
|
® |
|
CS1- |
|
Data bus bit 0 |
|
« |
|
DD0 |
|
Data bus bit 1 |
|
« |
|
DD1 |
|
Data bus bit 2 |
|
« |
|
DD2 |
|
Data bus bit 3 |
|
« |
|
DD3 |
|
Data bus bit 4 |
|
« |
|
DD4 |
|
Data bus bit 5 |
|
« |
|
DD5 |
|
Data bus bit 6 |
|
« |
|
DD6 |
|
Data bus bit 7 |
|
« |
|
DD7 |
|
Data bus bit 8 |
|
« |
|
DD8 |
|
Data bus bit 9 |
|
« |
|
DD9 |
|
Data bus bit 10 |
|
« |
|
DD10 |
|
Data bus bit 11 |
|
« |
|
DD11 |
|
Data bus bit 12 |
|
« |
|
DD12 |
|
Data bus bit 13 |
|
« |
|
DD13 |
|
Data bus bit 14 |
|
« |
|
DD14 |
|
Data bus bit 15 |
|
« |
|
DD15 |
|
Device active or slave (device 1) present |
(See note 1) |
DASP- |
|
Device address bit 0 |
|
® |
|
DA0 |
|
Device address bit 1 |
|
® |
|
DA1 |
|
Device address bit 2 |
|
® |
|
DA2 |
|
DMA acknowledge |
|
® |
|
DMACK- |
|
DMA request |
|
¬ |
|
DMARQ |
|
Interrupt request |
|
¬ |
|
INTRQ |
|
I/O read |
|
® |
|
DIOR- |
|
I/O ready |
|
¬ |
|
IORDY |
|
I/O write |
|
® |
|
DIOW- |
|
Passed diagnostics |
(See note 1) |
PDIAG- |
|
Reset |
|
® |
|
RESET- |
|
Note:
1 See signal descriptions for information on source of these signals |
3、ATA接口的三种数据传输方式
(1)PIO(Programmable Input-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(Multiword DMA)传输,用于数据传输。ATA主机控制器向ATA设备下达MDMA传输命令后,等待设备向主机发送DMARQ数据传输请求信号。当主机收到DMARQ信号后,向设备发送DMACK_响应信号。MDMA数据传输过程与PIO方式大致相同,也是通过DIOW_或DIOR_