硬盘数据恢复技术之SATA协议分析(一)

中国教育装备采购网2016-03-25 09:51围观1049次我要分享

  做数据恢复与取证技术,每天都要跟硬盘打交道。不论机械硬盘还是固态硬盘,几乎都是SATA接口。如果说并行总线的IDE接口所使用的PATA协议还好理解的话,那么SATA这种高速串行协议理解起来就比较有难度了。好在这种高速协议也不是从石头缝里突然冒出来的,如果对网络的TCP/IP协议之类的有所了解,理解起来就不那么费劲了。

  随着数据传输速率的提升,并行 ATA 传输技术的各种问题如信号扭曲和串扰、设备寻址能力有限等都已成为提高协议数据传输效率的主要障碍,因此让数据进行串行传输成为一种选择。

  在 2001年8月,Seagate公司宣布Serial ATA 1.0标准,Serial ATA 规范正式确立,协议规定数据传输率理论值为 150MB/s,大大高于并行 ATA 协议。随着SATA II及SATAIII 协议标准陆续制定,其接口数据传输速率可提高到 300MB/s 甚至600MB/s。2013年,SerialATA 委员会正式批准了SATA 3.2 标准协议。该版本最重要的变化就是引入了使 SATA和PCI-E接口共存的“SATA Express”解决方案。借助 PCI-E 标准接口多通道技术的优势,SATA 3.2标准协议所提供的最高传输速率高达 2GB/s。同时还引入了M.2 产品规格、micro SSD 标准、改进的电源管理(Dev Sleep)和 RAID 阵列重建助手(Rebuild Assist)等新技术。

  SATA 标准接口以光纤通道(Fiber Channel)作为物理设计蓝本,共由 7 根线组成。其中,3 根为地线,用于削弱消除串行信号线间的干扰,另外 4 根作为两对差分线(1 对发送、1 对接收)进行数据传输功能。SATA 串行传输采用低压差分信号(Low Voltage Differential Signaling,LVDS),其工作电压的峰峰值仅为250m V(最高 500m V),因此大大降低了系统的功耗,减小了系统复杂度。另外,SATA 标准接口电源供电部分由 15 根线组成,分别提供+3.3V、+5V 和+12V 电源。其管脚分配如图 1、表 1和表 2所示。

硬盘数据恢复技术之SATA协议分析(一)

  图1SATA接口管脚图

  表1 SATA接口之信号管脚

硬盘数据恢复技术之SATA协议分析(一)

  表2 SATA接口之电源管脚

硬盘数据恢复技术之SATA协议分析(一)

  SATA 标准协议参考了开放系统互连(OSI)参考模型,根据实现功能的不同和服务对象的不同将整个 SATA 体系划分为 5 层:物理层(Physical Layer)、数据链路层(Link Layer)、传输层(Transport Layer)、命令层(Command Layer)和应用层(Application Layer)。也可以将命令层并入应用层,将整个体系划分为4层。

硬盘数据恢复技术之SATA协议分析(一)

  图2SATA体系结构

  物理层包含两条单工高速的低压差分信号收发器通道,一条负责数据的接收,另一条负责数据的发送,它还包含串行器和解串行器,能提供 OOB(OutOf Band)信号检查总线上是否挂载设备,并处理设备的加电顺序和数据传输速度的协商。

  链路层主要负责控制帧的传输过程,通过维持收发数据的完整性来保证数据传输的可靠性,包括对数据包的纠错校验(CRC)、8b/10b 编解码、信号加扰和解扰等。链路层定义了帧起始原语(SOF)和结束原语(EOF),接收方通过辨别它们来判断一个帧的边界。链路层给帧信息封装上 SOF 和 EOF原语,以及 CRC校验和数据后,再将待发送的数据进行扰码,扰码完毕后再进行8b/10b 编码,最后由物理层发送,从物理层接收数据后的处理过程正好相反。链路层向物理层发送来自传输层的指令信号原语,接收来自物理层的原始字符,将其转化为可供传输层识别的指令信号,并发送至传输层。

  传输层面向应用层和链路层来调整适应两层传输的数据格式,它根据应用层的读写请求指令和链路层的应答信息来启动数据包的传送,传输层控制主机和硬盘之间传输控制指令和数据的帧信息结构(Frame Information Structures,FIS)的格式。传输层不会改变传输数据的内容,只会将要传输至应用层的数据打包成数据帧的结构,并且将接收到的数据帧还原成数据传输至链路层。

  应用层是 SATA 协议的顶层结构,它负责所有ATA指令的执行与解析,向处理器报告当前硬盘运行状态,生成对数据的读写请求,读取和设置硬盘的工作性能模式,还包括对控制指令模块寄存器的访问。应用层会分析得到的硬盘操作命令并根据协议进行相应的解析,解析成对应的传输请求,最后根据数据传输请求要求传输层进行数据的传输操作。

  总体上看,发送数据时,是按照应用层->传输层->链路层->物理层的顺序,数据逐一流过这4个层,在每一层都对数据做一些打包的处理,最后由物理层通过4根差分信号线将数据传送出去;接收数据时,是按照物理层->链路层->传输层->应用层的顺序,数据逐一流过4个层,在每一层都对数据进行“瘦身”解包,最终传输到应用层,就是我们看到的逻辑上的数据了。这样理解就容易多了。关于协议的细节,将在下一篇文章中介绍,敬请关注。

  关于达思科技

  达思科技,国家级高新技术企业,天津市国家保密局涉密载体数据恢复唯一协作单位,数据恢复行业著名品牌,在国内乃至全亚洲数据恢复技术领先!

  达思科技中国数据恢复与取证真专家!热线:4007000017

  更多数据恢复与取证前沿技术请关注微信公众账号:woocs

  微信号:woocs

硬盘数据恢复技术之SATA协议分析(一)

  长按识别二维码关注

  专注数据恢复与取证技术、互联网

  投稿:woocs@qq.com

来源:达思凯瑞技术(北京)有限公司作者:达思凯瑞技术(北京)有限公司

相关阅读