Інтерфейс IDE (дійсно паралельний ATA) добре описаний у статті Вікіпедії ("Паралельна ATA"). Звідти ви можете знайти посилання на фактичні характеристики. Старіші версії специфікацій безкоштовно завантажувати (або були, востаннє я перевіряв).
Однак DigitalSorceress є правильним: на роз'ємі немає штифтів, які просто і безпосередньо підкажуть приводу перемістити руку. (Навіть інтерфейс дискети не такий простий.) Диски IDE спочатку були розроблені для прямого підключення до 16-бітної шини ISA в IBM PC AT. Привід декодує декілька "портів вводу / виводу", на які адресується процесор. Привід інтерпретує їх як "регістри". Ви завантажуєте різні регістри з параметрами для команди, а потім пишете команду в регістр команд. (Ви робите це, промовляючи протокол шини ISA до штифтів IDE-накопичувача.) Потім перевірте стан, прочитавши назад ті самі регістри.
Два регістри вказують номер циліндра, але просто встановлення номера циліндра в них недостатньо, а також введення номера циліндра в них не є лише справою встановлення деяких напруг на штифтах.
Якщо ви думали приєднати накопичувач до Arduino або щось подібне (я думаю, це повинно бути щось на зразок Меги, щоб отримати достатньо шпильок, я думаю), ви, ймовірно, могли змусити голови рухатися, маючи значну кількість програмування. Пам'ятайте, що в цьому випадку ви не тільки будете реалізовувати протокол PATA, але і будете запускати протокол ISA у своєму коді. Це не страшно складно, але все це додає, і я не знаю, чи Arduino був би досить швидким, щоб задовольнити вимоги до терміну в автобусі.
Набагато простіше було б просто підключити накопичувач до старого ПК. Тоді ви можете написати невеликий код складання, щоб викликати функції INT із BIOS для доступу до різних блоків на диску, як запропонував Гастур.
Або ви можете підключити його до адаптера PATA до USB і запустити його з більш нового ПК. Не важко написати програму, яка спілкується на неформатованому жорсткому диску (тобто такій, що не має визнаної файлової системи).
Ще одне ускладнення полягає в тому, що ми вже не вирішуємо жорсткі диски циліндром / головою / сектором. Ми просто використовуємо LBA - адреси логічних блоків. Вони починаються з 0 і йдуть лінійно до n-1. Диск турбується про те, як ці карти відображаються на C / H / S місцях. Таке відображення не є простим, оскільки в сучасних приводах кількість секторів на доріжку змінюється від зовнішніх циліндрів до внутрішніх. Я, відверто кажучи, не знаю, чи можуть сучасні накопичувачі більше приймати C / H / S. Звичайно, якщо ви просто надішліть накопичувачу ряд збільшуючих LBA, рука буде рухатися раз у раз, коли трапляється перетинати межі циліндрів.