数据恢复深度技术:单片机硬盘扇区读写工具
在数据恢复实际工作中,当计算机不认硬盘,或者硬盘的坏道较多,计算机无法做镜像时,需要用额外的设备工具来读取硬盘数据,或者维修硬盘的固件使硬盘复活。这种比较专业的操作,数据恢复工程师一般使用PC3000这类的专业工具来做,但是这些工具价格上都比较贵,对偶尔遇到硬盘物理故障需要修复硬盘恢复数据的用户来说,成本偏高。有没有既便宜又好用的方法呢?其实只要掌握一些单片机编程和基础的电子线路知识,是完全可以自己DIY一个读写硬盘数据的小工具的,如果结合一些硬盘维修指令的知识,这个小工具也能修修硬盘。
单片机由于其成本低廉,性能可靠,在工业控制领域广泛运用,而且现在的单片机开发环境也比较简单易用,用C语言就可以编程。因此采用单片机来读写硬盘,是个不错的选择,唯一的缺点就是速度太慢,这个算是代价吧。
常用的单片机一般都是8位机,例如8051系列、PIC系列、AVR系列等,低速的DSP也可以看做是16位的单片机,一些32位的ARM片子,如果不上操作系统,也可当做单片机用,就是资源比较丰富而已。我们这里先采用8位的AVR单片机来做这个小工具。基本的思路就是用AVR的Mega16单片机的IO口,读写硬盘的IO口、控制线和地址线。但是Mega16的每个IO口是8位,硬盘的数据线是16位,需要做IO的扩展,将8位数据线扩展成16位数据线,来读写硬盘。
IO扩展可以用CPLD或者像8255之类的扩展芯片,用CPLD比较灵活,但是涉及到硬件描述语言HDL的编程和下载调试,比较复杂。采用8255比较简单,只需要在单片机端编程控制就可以了,但是8255有个缺点,就是在工作模式切换时,IO管脚会全部拉低,此时,接到硬盘复位管脚上的信号也被拉低,引起硬盘的意外复位。因此需要采用一个倒相器,将8255输出的硬盘控制信号反相,这样当8255输出口全部拉低时,硬盘复位信号经倒相器后处于拉高状态,就不会引起硬盘的意外复位了。8255的具体使用和倒相器的连接见下图所示:
图1 8255使用说明
我们用8255的A口和B口连接到硬盘的16根数据线上,C口的8根线连接到硬盘的地址线和控制线上,通过以前ATA协议的分析,若采用PIO方式读写硬盘,且不考虑IORDY信号,可以只用5根地址线(CS1、CS0、DA2、DA1、DA0)和三根控制线(IOW、IOR和RESET)来实现PIO模式下的寄存器传输和数据传输。因此,可利用8255的C口来实现。大家要是有人分析过PC3000的PCI版,就会发现,ACE也是这个思路,只是他用的是复杂一些的xilinx FPGA和245芯片实现罢了。再来看一下倒相器的使用:
图2 倒相器
采用的是74HC04,将RST信号,IOW和IOR信号,CS1和CS0信号接到反相器,保证了8255模式切换时,不会引起硬盘的误操作。
在核心的单片机端,使用了PA口的8根IO连接到8255的数据线,PB口的5根IO连接到8255的控制线和地址线。具体看下图:
图3 Mega16单片机
除了PA和PB口外,PC口用于连接到JTAG调试端,实现在线调试。PD口用于连接串口输出,用于调试和观察硬盘数据。
按照原理图绘制电路板,画好的电路板效果图为:
图4 电路效果图
板子制作好调通,剩下的工作就是单片机编程了,采用C语言来实现是比较简单的,主要就是硬盘寄存器的读写,比如状态寄存器和命令寄存器等,结合PIO时序要求,编写相应的程序就行了,如果有示波器,可以看一下控制管脚输出信号的时序,对加快软件调试非常有用。后续文章会进一步讲解单片机读写硬盘的编程知识。
将程序编好调试好后,通过JTAG或ISP接口下载到单片机当中,就完成了单片机读写硬盘小工具的制作,利用这个小工具,可以进一步学习ATA协议和硬盘维修指令,提高数据恢复技能。
关于达思科技
达思科技的全称是达思凯瑞技术(北京)有限公司,是数据恢复行业的著名品牌,在全国乃至整个亚洲地区具有较高的知名度。达思科技是一家真正掌握数据恢复核心技术的企业,公司的数据恢复技术研发中心不但承担公司自主知识产权数据恢复软件的研发任务,还为众多大型企事业单位担当数据安全顾问的角色。达思科技对数据恢复技术的深入研究,尤其在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