Универсальный эмулятор ATA/ATAPI устройств

Описания, советы, ремонт, эксплуатация старых IBM PC-совместимых ПК
sintech
Junior Member
Сообщения: 129
Зарегистрирован: 23.08.2015,16:00
Откуда: Moscow

Вклад в сообщество

Универсальный эмулятор ATA/ATAPI устройств

Сообщение sintech » 14.07.2021,17:16

Всем привет.
Я решил, что проект дошел до той степени готовности, когда можно рассказать о нем уважаемому сообществу.
Тема ATA/ATAPI давно меня интересовала, хотелось понять, как оно работает изнутри, да и чувствовалось, что есть потребность в подобном устройстве. Особенно для эмуляции ATAPI.
Основной идеей при разработке была универсальность. Я хотел создать такое сочетание железа и софта, чтобы одним устройством можно было покрыть все возникающие задачи и требования:
  • Эмуляция ATA НЖМД произвольного объема, поддержка CHS/LBA адресации.
  • Эмуляция ATAPI CD-ROM. Поддержка аналогового вывода для AUDIO дорожек.
  • Эмуляция прочих ATAPI устройств, в частности Iomega ZIP.
  • Поддержка режимов передачи: PIO/DMA/UDMA.
  • Возможность работы в режиме хоста: накопитель подключается к эмулятору. Для снятия дампов идентификаторов, просмотра секторов, копирования в образ.
  • Носитель для образов: SD карта. Отсутствие необходимости конвертировать образы в спецформат.
  • USB-интерфейс для настройки и вывода отладочной консоли.
  • Возможность подключения I2C OLED экрана для отображения статуса устройства.
  • Минимум три кнопки для оперативного выбора образа, настроек.
  • Возможность работы как с очень старыми, так и с современными компьютерами и устройствами.
Что получилось на данный момент:
► Показать
Для ATA реализована поддержка всех Mandatory и части Optional команд с определенными упрощениями. Для ATAPI CD-ROM и CHANGER Model поддерживаются почти все Mandatory. Для других ATAPI устройств сделаны Vendor-specific команды.

Особенностью устройства является гибкость в работе с идентификационными данными. При наличии дампов “IDENTIFY DEVICE” для ATA или “IDENTIFY PACKET DEVICE”, “INQUIRY”, “MODE SENSE” для ATAPI устройств, эмулятор выглядит для компьютера именно тем устройством, с которого сняты дампы. Устройство поддерживает несколько профилей эмуляции с возможностью переключения между ними на лету.
Для соответствия информации в ATA ID конкретному образу, при его загрузке производится изменение параметров, отвечающих за объем накопителя. Также изменяются параметры, отвечающие за режим передачи данных PIO/DMA/UDMA для приведения их в соответствие возможностям эмулятора.

Для ATAPI ZIP100 реализованы vendor specific команды получения ID дискеты. На данный момент работает только чтение и запись в заранее подготовленные 100Мб RAW образы. Образы монтируются как виртуальный диск в Windows.

Тестирование на соответствие стандартам ATA/ATAPI производилось с помощью утилиты ATACT (www.ata-atapi.com). Неоднократные часовые прогоны ошибок не выявили.
Устройство проверялось на компьютерах:
  • 386 c ISA Multi-I/O картой как в качестве основного диска, так и CD-ROM/ZIP100 с подключением к IDE порту звуковой платы.
  • Pentium/AMD-K6 Socket 7 в различных режимах.
  • Core i5 c USB-IDE адаптером в режиме ATA HDD и ATAPI CD-ROM.
К сожалению, не удалось найти музыкальное оборудование с поддержкой ATA/ATAPI/ZIP, чтобы протестировать на нем.

Вопросы:
  • Нужна ли поддержка SPDIF-выхода аудио данных?
  • Насколько нужна поддержка UDMA и высокоскоростных режимов PIO/DMA?
  • Нужна ли поддержка выбора образа из самой хост-системы? Например, с помощью программы для DOS/Windows, получающей список образов с SD карты и позволяющей его выбрать.
  • Нужна ли поддержка одновременной работы в Master и Slave режиме с возможностью эмуляции разных приводов? Сейчас поддерживается только одно устройство Master-only.
На данный момент осталось 2 свободных экземпляра печатной платы прототипа, для которых еще должны прийти детали. Я предлагаю купить их по специальной цене в 5000 р. людям, которые будут готовы помогать с разработкой, тестировать устройство на различном оборудовании, создавать баг-репорты и т. д. Предпочтительно Москва и область. В исключительных случаях может потребоваться мое личное присутствие, чтобы снять дампы логическим анализатором.
В комплекте только полностью спаянное и проверенное устройство без доп. модуля I2S DAC PCM5102, который можно купить на али или в интернет-магазинах.
После появления финальной версии прототип будет бесплатно заменен (по желанию).

Буду рад вопросам и предложениям.
ATAPI2SD_Rev1.JPG

Аватара пользователя
Rio444
Почётный пользователь
Сообщения: 26861
Зарегистрирован: 14.09.2014,19:11
Откуда: Ростов-на-Дону

Вклад в сообщество

Универсальный эмулятор ATA/ATAPI устройств

Сообщение Rio444 » 14.07.2021,17:28

sintech писал(а): 14.07.2021,17:16 Эмуляция ATAPI CD-ROM. Поддержка аналогового вывода для AUDIO дорожек.
Думаю автору темы будет интересно https://phantom.sannata.org/viewtopic.php?f=12&t=39687
Электронка: Изображение копия Изображение

sintech
Junior Member
Сообщения: 129
Зарегистрирован: 23.08.2015,16:00
Откуда: Moscow

Вклад в сообщество

Универсальный эмулятор ATA/ATAPI устройств

Сообщение sintech » 14.07.2021,17:42

Rio444 писал(а): 14.07.2021,17:28 Думаю автору темы будет интересно
Да, я читал про этот проект. Но он заточен только под ATAPI СDROM а у меня универсальное устройство.

Jager
Advanced Member
Сообщения: 1469
Зарегистрирован: 10.11.2018,21:27

Универсальный эмулятор ATA/ATAPI устройств

Сообщение Jager » 14.07.2021,17:48

Нужна ли поддержка SPDIF-выхода аудио данных? - Нет
Насколько нужна поддержка UDMA и высокоскоростных режимов PIO/DMA? - Полезно, но не дальше ATA/33, т.к. дальше проще на SATA перейти
Нужна ли поддержка выбора образа из самой хост-системы? Фича приятная, но и без неё можно жить.
Нужна ли поддержка одновременной работы в Master и Slave режиме с возможностью эмуляции разных приводов? Да, имхо - без одновременной эмуляции HDD и CD получится слишком нишевый продукт.
Еще из идей - альтернативный носитель, все-таки SD не самая надежная железяка. Контроллер вроде STM32, USB HS возможно уже есть - а выбор среди USB носителей больше.

geg
Advanced Member
Сообщения: 12303
Зарегистрирован: 21.11.2010,12:04

Универсальный эмулятор ATA/ATAPI устройств

Сообщение geg » 14.07.2021,17:52

sintech писал(а): 14.07.2021,17:16 Носитель для образов: SD карта.
Это неприемлимо. Не FDD эмулируем. Носитель должен быть либо ATA или SATA накопитель.
sintech писал(а): 14.07.2021,17:16 Отсутствие необходимости конвертировать образы в спецформат.
Объясните, ничего не понятно.
sintech писал(а): 14.07.2021,17:16 Нужна ли поддержка SPDIF-выхода аудио данных?
Нет.
sintech писал(а): 14.07.2021,17:16 Насколько нужна поддержка UDMA и высокоскоростных режимов PIO/DMA?
На 146%.
sintech писал(а): 14.07.2021,17:16 Нужна ли поддержка выбора образа из самой хост-системы? Например, с помощью программы для DOS/Windows, получающей список образов с SD карты и позволяющей его выбрать.
Нет.
sintech писал(а): 14.07.2021,17:16 Нужна ли поддержка одновременной работы в Master и Slave режиме с возможностью эмуляции разных приводов? Сейчас поддерживается только одно устройство Master-only.
Нет.
sintech писал(а): 14.07.2021,17:16 Носитель для образов: SD карта.
А ФС на карте, случайно, не FAT32?

Аватара пользователя
Rio444
Почётный пользователь
Сообщения: 26861
Зарегистрирован: 14.09.2014,19:11
Откуда: Ростов-на-Дону

Вклад в сообщество

Универсальный эмулятор ATA/ATAPI устройств

Сообщение Rio444 » 14.07.2021,18:14

Ну вот раскритиковали :frown:
Имхо устройство слишком универсально и потому сложно и громоздко.
sintech, но если считаете, что все эти фичи необходимы, никого не слушайте и делайте как считаете нужным.
Всё равно все мнения учесть не получится. :)
Электронка: Изображение копия Изображение

sintech
Junior Member
Сообщения: 129
Зарегистрирован: 23.08.2015,16:00
Откуда: Moscow

Вклад в сообщество

Универсальный эмулятор ATA/ATAPI устройств

Сообщение sintech » 14.07.2021,18:14

Jager писал(а): 14.07.2021,17:48 Еще из идей - альтернативный носитель, все-таки SD не самая надежная железяка. Контроллер вроде STM32, USB HS возможно уже есть - а выбор среди USB носителей больше.
Спасибо за идею, но мне кажется надежность SD не сильно отличается от надежности USB флешек. HS со встроенным PHY есть только в самых жирных чипах, а с внешним не хочется заморачиваться.
По скорости у меня выходило до 3 мбайт/с на конечном устройстве со всеми оверхедами. Чего на мой взгляд более чем достаточно и для ретрокомпьютинга и для других применений.
Последний раз редактировалось sintech 14.07.2021,18:16, всего редактировалось 2 раза.

Аватара пользователя
Rio444
Почётный пользователь
Сообщения: 26861
Зарегистрирован: 14.09.2014,19:11
Откуда: Ростов-на-Дону

Вклад в сообщество

Универсальный эмулятор ATA/ATAPI устройств

Сообщение Rio444 » 14.07.2021,18:16

sintech писал(а): 14.07.2021,18:14 мне кажется надежность SD не сильно отличается от надежности USB флешек
Почему-то тоже так кажется.
Но UBS флешка всё-таки удобнее.
Электронка: Изображение копия Изображение

sintech
Junior Member
Сообщения: 129
Зарегистрирован: 23.08.2015,16:00
Откуда: Moscow

Вклад в сообщество

Универсальный эмулятор ATA/ATAPI устройств

Сообщение sintech » 14.07.2021,18:21

aleksvolgin писал(а): 14.07.2021,17:52
sintech писал(а): 14.07.2021,17:16 Носитель для образов: SD карта.
Это неприемлимо. Не FDD эмулируем. Носитель должен быть либо ATA или SATA накопитель.
Это уже перебор ;)
aleksvolgin писал(а): 14.07.2021,17:52
sintech писал(а): 14.07.2021,17:16 Отсутствие необходимости конвертировать образы в спецформат.
Объясните, ничего не понятно.
Имелось ввиду, что поддерживаются нативные образы которые можно скачать с трекера или получить широкоизвестными утилитами. А не специальные форматы типа HFE для флопиков
aleksvolgin писал(а): 14.07.2021,17:52
sintech писал(а): 14.07.2021,17:16 Носитель для образов: SD карта.
А ФС на карте, случайно, не FAT32?
На карте может быть и fat32 и exfat с поддержкой длинных имен файлов и прочего добра.
Последний раз редактировалось sintech 14.07.2021,21:00, всего редактировалось 1 раз.

balamutang
Newbie
Сообщения: 64
Зарегистрирован: 02.08.2020,18:50
Откуда: Калининград

Универсальный эмулятор ATA/ATAPI устройств

Сообщение balamutang » 14.07.2021,18:52

Очень круто, погонял бы прототип на roland sp808ex вместо zip, но к сожалению далеко от Москвы живу
Мой предыдущий проект https://habr.com/ru/post/439822/ same article on english

Jager
Advanced Member
Сообщения: 1469
Зарегистрирован: 10.11.2018,21:27

Универсальный эмулятор ATA/ATAPI устройств

Сообщение Jager » 14.07.2021,18:53

sintech писал(а): 14.07.2021,18:14 но мне кажется надежность SD не сильно отличается от надежности USB флешек
USB mass storage это не только флешки, но и USB-HDD или SSD. Там надежность все-таки заметно выше SD-карт.
sintech писал(а): 14.07.2021,18:14 По скорости у меня выходило до 3 мбайт/с на конечном устройстве со всеми оверхедами.
Не совсем понял в каком это случае, но имхо маловато. С ценами на STM сейчас наверняка все плохо, но какая примерно разница между текущим контроллером и вариантом с USB HS PHY?

Ответить