Du musst einen USB-Device-Controller an den von Dir verwendeten
Microcontroller anschließen oder aber einen Microcontroller mit
integriertem USB-Device-Controller verwenden.
Desweiteren musst Du die IDE-Schnittstelle der Festplatte an den
verwendeten Microcontroller anschließen und Softwarefunktionen
entwickeln, die das Lesen und Schreiben einzelner Sektoren auf der
Festplatte ermöglichen.
Dann musst Du einen USB-Device-Stack und Unterstützung für die
Standardgeräteklasse "USB Mass Storage Device" auf Deinem
Microcontroller implementieren.
Eine reine Softwarelösung analog zum USB-Seriell-Adapter von Igor Cesko
ist bei dieser Anwendung nicht möglich, da "Mass Storage Devices" nicht
mit der niedrigen Datenrate "low speed-USB" (1.5 MBit/sec) betrieben
werden können.
Ein geeigneter Controller für diese Aufgabe könnte ein AT91SAM7Sxxx
sein, da dieser über den erforderlichen USB-Device-Controller verfügt,
auch dürfte die Ansteuerung des IDE-Interfaces durch die Möglichkeit von
16-Bit-I/O-Zugriffen deutlich leichter als bei einem reinen
8-Bit-Controller wie einem AVR sein.
Eine Alternative wäre eines der "Konkurrenzprodukte" aus der
LPC214x-Reihe von NXP (ehemals Philips), für die gibt es sogar ein
Softwarebeispiel für die Implementierung eines "USB Mass Storage
Device".
Anzumerken ist natürlich, daß alle diese Lösungen nur USB1.1 bzw. die
verhältnismäßig niedrige Datenrate davon umsetzen können; die heutzutage
üblichen USB-IDE-Adapter verwenden das bedeutend schnellere USB2.0.