首页 > 数据恢复 > 正文

数据恢复深度技术:单片机硬盘扇区读写工具

分类:数据恢复 作者:上海电脑维修 来源:www.dy68.com 发布:2015-04-09

数据恢复深度技术:单片机硬盘扇区读写工具

在数据恢复实际工作中,当计算机不认硬盘,或者硬盘的坏道较多,计算机无法做镜像时,需要用额外的设备工具来读取硬盘数据,或者维修硬盘的固件使硬盘复活。这种比较专业的操作,数据恢复工程师一般使用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协议和硬盘维修指令,提高数据恢复技能。

-

联系方式

联 系 人:骆先生

联系手机:13801663620

联系电话:021-66012631

网 址:http://www.dy68.com

E-Mail:13801663620@139.com

在线咨询

点击这里给我发消息   点击这里给我发消息

        因为专业,所以卓越!
-
24小时电话:13801663620|电话:021-66012631
Copyright © 2009-2015|沪ICP备09012912号-2|
『上海电脑维修_上海笔记本电脑维修_上海电脑上门维修_上海上门维修电脑-上海电脑维修网欢迎您的光临』 Inc.