硬盘固件级数据恢复专家:-ATA协议概览(一)
硬盘是计算机及其信息系统中存储核心,凭借高速大容量,性价比高的优势,雄霸存储市场。而使用硬盘作为存储设备,就需要了解硬盘的工作原理和通信接口,硬盘的原理大同小异,知道个概括就够了,而通信接口方面,随着传输速度和容量的变化,不断的在进化。
硬盘的通信接口,有IDE、SATA、SCSI等,一般装机时用到的硬盘,以前是以IDE接口为主,现在以SATA接口硬盘为主,无论是IDE接口还是SATA接口,都是遵循ATA通信协议,了解了ATA协议,就可以比较清楚硬盘与主机之间的通信原理了。
在PC系统中,硬盘属于IO设备,通过PCI总线后的AT总线相连。硬盘存储设备与AT总线接口芯片相连,接口芯片与AT总线相连,接口芯片在总线协议与IO设备协议之间进行翻译。
IDE硬盘最高支持到ATA-7协议,速度可达到Ultra-ATA/100、Ultra-ATA/133。ATA协议在内容上看,主要包括:1、接口信号的定义:主要是40针IDE接口,各个管脚信号的用途定义。
图1 IDE接口
其中16根双向数据线DD0-DD15,主机到设备的2根片选线CS1-CS0,主机到设备的3根地址线DA2-DA0,设备到主机的1根DMARQ请求线,主机到设备的1根DMACK-应答线,设备到主机的1根INTRQ请求线,主机到设备的1根DIOR-、HDMARDY-、HSTROBE复用线,设备到主机的1根IORDY、DDMARDY-、DSTROBE复用线、主机到设备的1根DIOW-、STOP复用线,主机到设备的1根RESET-线,主机到设备的1根数据电缆选择线CSEL,设备到主机的1根PDIAG-、CBLID-复用线,设备到主机的1根DASP-线。2、接口寄存器定义及其功能描述:见表1
表1 ATA-6 中定义的接口寄存器
CS1- | CS0- | DA2 | DA1 | DA0 | ADDR | READ | WRITE |
0 | 1 | 1 | 1 | 0 | 0x0E | Alternate Status | |
1 | 0 | 1 | 1 | 1 | 0x17 | Command | |
1 | 1 | X | X | X | Data Port | Data Port | |
1 | 0 | 0 | 0 | 0 | 0x10 | Data | Data |
1 | 0 | 1 | 1 | 0 | 0x16 | Device | Device |
0 | 1 | 1 | 1 | 0 | 0x0E | Device Control | |
1 | 0 | 0 | 0 | 1 | 0x11 | Error | Features |
1 | 0 | 1 | 0 | 1 | 0x15 | LBA High | LBA High |
1 | 0 | 0 | 1 | 1 | 0x13 | LBA Low | LBA Low |
1 | 0 | 1 | 0 | 0 | 0x14 | LBA Mid | LBA Mid |
1 | 0 | 0 | 1 | 0 | 0x12 | Sector Count | Sector Count |
1 | 0 | 1 | 1 | 1 | 0x17 | Status |
3、常用的操作命令:
表2 ATA-6 中定义的常用命令
Command | Code | Protocol |
Device Reset | 0x08 | Device reset |
Flush Cache | 0xE7 | Non-data |
Flush Cache Ext | 0xEA | Non-data |
Identify Device | 0xEC | PIO data-in |
Idle | 0xE3 | Non-data |
Idle Immediate | 0xE1 | Non-data |
Read DMA | 0xC8 | DMA |
Read DMA Ext | 0x25 | DMA |
Read Multiple | 0xC4 | PIO data-in |
Read Multiple Ext | 0x29 | PIO data-in |
Read Sector | 0x20 | PIO data-in |
Read Sector Ext | 0x24 | PIO data-in |
Read Verify Sector | 0x40 | Non-data |
Read Verify Sector Ext | 0x42 | Non-data |
Seek | 0x70 | Non-data |
Set Features | 0xEF | Non-data |
Set Multiple Mode | 0xC6 | Non-data |
Standby | 0xE2 | Non-data |
Standby Immediate | 0xE0 | Non-data |
Write DMA | 0xCA | DMA |
Write DMA Ext | 0x35 | DMA |
Write Multiple | 0xC5 | PIO data-out |
Write Multiple Ext | 0x39 | PIO data-out |
Write Sector | 0x30 | PIO data-out |
Write Sector Ext | 0x34 | PIO data-out |
系统开机后,主机先向设备发送Device Reset命令,设置设备为默认状态,之后,主机向设备发送Identify Device命令,获得设备的型号、序列号和传输方式等信息,之后使用Set Feature命令设置主机和设备之间传输数据的方式。其中Read DMA和Read Multiple分别采用DMA IN和PIO方式读取设备数据。Write DMA和Write Multiple分别用DMA OUT和PIO方式向设备写入数据。
4、常见命令操作流程
INDENTIFY DEVICE命令操作流程:
HOST向DEVICE的命令寄存器写入IDENTIFY DEVICE命令,DEVICE接收命令后,准备相应的设备信息数据,设置INTRQ信号有效。HOST将读取状态寄存器查看DEVICE状态,如果状态为0x51,说明DEVICE准备就绪了,如果是其他状态,说明DEVICE操作出错。HOST为了确认操作对象,再次向DEVICE的Device寄存器写入操作对象(ATA主盘或者ATA从盘),再一次读取状态进行确认。如果DEVICE状态正确,则HOST连续读取256次数据(512个字节)的设备描述信息。最后, HOST再次确认操作对象信息和状态。
READ/WRITE MULTIPLE命令操作流程:
HOST首先通过设置DEVICE的Sector Count、LBA Low、LBA Mid、LBA High、Device、Features寄存器,设定数据传输的扇区个数、LBA起始地址等等参数。在确认DEVICE状态正确的情况下,HOST向Command寄存器写入READ/WRITE MULTIPLE命令。DEVICE在准备好数据传输后,将设置INTRQ信号线有效。HOST在确认DEVICE的状态后,进行数据读/写操作。在读/写完命令指定的数据后,HOST再次读取DEVICE的状态信息,完成整个数据传输过程。
READ/WRITE DMA命令操作流程:
HOST首先通过设置Sector Count、Device、LBA Low、LBA Mid、LBA High寄存器,设置数据传输的扇区个数,LBA起始地址等等参数。HOST向DEVICE的Command寄存器写入READ/WRITE DMA命令。DEVICE在接收到命令后,准备就绪后,设置DMARQ请求有效,和HOST之间传输部分数据。一般传输扇区个数超过8个扇区,则HOST和DEVICE必须通过几次DMA传输才能传输完所有的数据。在每次传输中传输数据的个数并不是固定的。传输完所有的数据后,DEVICE设置INTRQ信号有效,HOST读取DEVICE的状态完成整个传输过程。
了解了ATA-6协议的寄存器和常规命令后,再结合各个子协议的时序图,就基本上可以分析清楚ATA协议的基本内容了,下一篇文章中,将重点分析ATA的子协议的实现与详细的时序。
图2 硬盘时序图举例
未完待续。。。。
关于达思科技
达思科技的全称是达思凯瑞技术(北京)有限公司,是数据恢复行业的著名品牌,在全国乃至整个亚洲地区具有较高的知名度。达思科技是一家真正掌握数据恢复核心技术的企业,公司的数据恢复技术研发中心不但承担公司自主知识产权数据恢复软件的研发任务,还为众多大型企事业单位担当数据安全顾问的角色。达思科技对数据恢复技术的深入研究,尤其在Unix及Linux大型存储设备的数据恢复方面(包括EXT3文件系统删除数据、UFS文件系统数据恢复、XFS文件系统数据恢复技术、IBM-AIX JFS2文件系统数据恢复高端技术、Vmware虚拟机数据恢复技术等)独树一帜,在同行业中具有较为明显的优势,达思科技承接的其他公司无法恢复的疑难案例不计其数。
达思科技数据恢复技术研发中心于2009年10月启动了科技创新计划,陆续发布了多款自主软件产品。截止到2013年12月,达思科技自主知识产权的数据恢复软件达到23款,其中Unix和Linux企业级数据恢复技术以及手机等移动终端数据恢复技术国际领先!
达思科技职业院校数据恢复实训室是国内职业院校的首选,已经在多家学校正式运营,其中北京劳动保障职业学院、北京政法职业学院、北京商贸学校等中高职均采用达思数据恢复实训室,开设了数据恢复专业课程。开展了深度校企合作,深受师生青睐。
达思数据恢复实验室解决方案是多家涉密单位和科研机构指定建设单位,达思科技具备大型、中型和小型数据恢复实验室设计与建设的能力,为涉密单位提供了安全保密数据恢复实验室,为数据安全筑起最后一道防线。典型成功案例有天津市国家保密局数据恢复实验室项目、总装备部装甲兵工程学院数据恢复实验室项目、中央和国家机关涉密载体销毁中心数据恢复项目等。
达思北京数据恢复中心(全国总部)
数据恢复服务咨询:400-700-0017
数据恢复培训咨询:010-62672127
达思数据恢复软件:010-62670586
达思软件技术支持:010-62670165
达思总部
数据恢复实验室: 010-62672127
数据恢复实训室: 010-62672381
电子取证实验室: 13522681842
软件销售QQ: 151208
远程协助QQ: 12869803
邮件联系:sos@dstchina.cn
邮件支持:support@dstchina.cn
24小时免费电话:400-700-0017
24小时监督电话:13671390603