Интерфейс IDE (действительно Parallel ATA) хорошо описан в статье Википедии ("Parallel ATA"). Оттуда вы можете найти ссылки на актуальные спецификации. Старые версии спецификаций все бесплатно для скачивания (или были, когда я последний раз проверял).
Однако DigitalSorceress верен: на разъеме нет контактов, которые бы просто и прямо указывали приводу перемещать рычаг. (Даже интерфейс дисковода гибких дисков не так просто.) Изначально IDE-диски были предназначены для непосредственного подключения к 16-битной шине ISA в IBM PC AT. Диск декодирует несколько "портов" ввода / вывода, которые могут быть адресованы процессором. Привод интерпретирует их как "регистры". Вы загружаете различные регистры с параметрами для команды, а затем записываете команду в регистр команд. (Вы делаете это, передавая протокол шины ISA контактам на диске IDE.) Затем проверьте статус, прочитав несколько одних и тех же регистров.
Два из регистров действительно указывают номер цилиндра, но просто ввести номер цилиндра в них недостаточно, и при этом не нужно указать номер цилиндра в них просто для того, чтобы подать напряжение на контакты.
Если вы думаете о подключении накопителя к Arduino или чему-то другому (я думаю, что это должно быть что-то вроде Mega, чтобы получить достаточное количество выводов), вы, вероятно, можете заставить головы двигаться, при значительном объеме программирования. Помните, что в этом случае вы будете не только реализовывать протокол PATA, вы также будете использовать протокол ISA в своем коде. Это не очень сложно, но все это складывается, и я не знаю, будет ли Arduino достаточно быстрым, чтобы соответствовать требованиям времени в автобусе.
Было бы намного проще просто подключить диск к старому ПК. Затем вы могли бы написать небольшой ассемблерный код для вызова функций INT из BIOS для доступа к различным блокам на диске, как предложил Хастур.
Или вы можете подключить его к адаптеру PATA-USB и запустить его с более нового ПК. Нетрудно написать программу, которая взаимодействует с неформатированным жестким диском (то есть, без распознаваемой файловой системы).
Другая сложность заключается в том, что мы больше не обращаемся к жестким дискам по цилиндрам / головкам / секторам. Мы просто используем LBA - адреса логических блоков. Они начинаются с 0 и идут линейно до n-1. Диск беспокоится о том, как они отображаются в C / H / S местоположениях. Это отображение не является простым, потому что в современных приводах число секторов на дорожке изменяется от внешних цилиндров к внутренним. Честно говоря, я не знаю, могут ли современные накопители даже принимать адресацию C / H / S. Конечно, если вы просто отправите приводу серию увеличивающихся LBA, рычаг будет двигаться время от времени, когда вы пересекаете границы цилиндров.