7 - 2013

Первый украинский SSD-диск, или Вторая жизнь швейцарского компьютера

Владимир Вечер
Сотрудник Лаборатории ­компьютерной криминалистики и информационной безопасности «ЕПОС»
Сергей Прокопенко
Начальник Лаборатории ­компьютерной криминалистики и информационной безопасности «ЕПОС»

К сожалению, огромное количество предприятий на Украине работают на устаревшем промышленном оборудовании, изготовленном 20 и более лет назад. После развала Союза и распродажи на металл станков местного производства оставшиеся на плаву предприятия начали приобретать на Западе подержанные станки с числовым программным управлением: плазморезы, дерево­, металлообрабатывающие станки, гравировальное оборудование и т.п. Но относительно невысокая стоимость такого железа имеет и обратную сторону: простои из­за отказов оборудования, недоступности запчастей, полного отсутствия поддержки.

Эта статья о том, как простая замена винчестера в деревообрабатывающем станке потребовала создания собственного твердотельного диска, и о трудностях, с которыми мы столкнулись при его разработке.

Вначале небольшая предыстория. Несколько лет назад в центр восстановления информации известной киевской компании обратился заказчик с неисправным ноутбучным диском Seagate 1,2 Гбайт выпуска 1997 года.

Винчестер использовался в станке, поэтому, когда он отслужил свое, производство остановилось. С восстановлением данных особых проблем не возникло, полную копию сделали в течение часа, и счастливый клиент уехал в Житомир. Но в тот день он еще не раз побывал в Киеве. Несколько копий на разных дисках упорно не стартовали на станке. К счастью, на складе дисков­доноров был найден такой же Seagate ST91351AG, восстановленные данные записали на него, и все заработало.

Приблизительно через год ситуация повторилась, но диск искали уже дольше — на тот момент даже на ebay его не было. И снова заказчика спас накопленный за долгие годы склад доноров — на дальней полке нашли и оживили, наверное, один из последних в мире дисков этой модели (рис. 1).

Рис. 1. Диски-доноры в центре восстановления информации

Рис. 1. Диски-доноры в центре восстановления информации

В этот раз клиенту предложили подумать о переходе на флэш, был даже найден модуль IDE Flash, изготовлены переходники (рис. 2) для его подключения к станку, сделана подмена паспорта накопителя. Но заказчик решил отказаться от такого варианта после первой неудачной попытки загрузиться с него.

Рис. 2. Один из первых переходников

Рис. 2. Один из первых переходников

Несколько месяцев спустя диск вернулся снова. На этот раз было очевидно, что постоянно искать диски более чем 15­летней давности — это не выход, и необходима модернизация станка, перевод его на современные носители. В качестве решения было предложено перейти на флэш. Причин такого выбора было несколько, но основной стало то, что твердотельные накопители намного более устойчивы к вибрациям, чем жесткие диски.

Это решение и положило начало большой серии исследований и экспериментов, которые через два месяца завершились разработкой и изготовлением рабочей версии собственного твердотельного накопителя на основе флэш­памяти. Это не совсем SSD­диск, скорее специализированный адаптер IDE­to­CompactFlash для промышленного оборудования с рядом особых функций.

Но вначале была предпринята попытка решить задачу, как говорится, в лоб. Мы собрали несколько различных модулей IDE Flash и карт CompactFlash, скопировали на них восстановленные данные и поехали в Житомир (рис. 3).

Но ни одна из флэшек не смогла загрузиться в станке. С любыми настройками BIOS и режимами подключения попытки загрузки приводили к ошибке чтения диска. Была предпринята попытка подкорректировать загрузочный сектор, в результате ошибка пропала, но система зависала сразу после старта.

Рис. 3. Наш подопечный — деревообрабатывающий станок IMA BIMA

Рис. 3. Наш подопечный — деревообрабатывающий станок IMA BIMA

Когда стало понятно, что наскоком проблему не решить, мы разобрали станок, демонтировали операторскую панель и промышленный компьютер и увезли оборудование к себе на исследование (рис. 4).

Поскольку остановить производство на длительный срок не представлялось возможным, мы собрали собственный тестовый стенд компьютера на процессоре 486DX2 с 16 Мбайт оперативной памяти. Благодаря созданию стенда, а также тому, что мы смогли отремонтировать «последний» Seagate ST91351AG, удалось избежать простоя производства во время разработки нашего диска.

Рис. 4. Стенд для исследования

Рис. 4. Стенд для исследования

Рис. 5. «Системник» NUM 1062W

Рис. 5. «Системник» NUM 1062W

Управляющий компьютер станка NUM 1062W, кстати — «чистокровный швейцарец», был разработан и собран компанией NUM в 1998 году в промышленном варианте 486DX2­66 с 24 Мбайт ОЗУ (рис. 5). Согласно сервисным отметкам на станке, последний раз обслуживание он проходил в 1999 году, еще находясь в Германии. Тогда была проведена профилактика, и после этого он бесперебойно работал до 2010 года, когда впервые вышел из строя винчестер.

В качестве операционной системы в этом промышленном компьютере используется подзабытая сейчас OS/2 WARP, управление станком осуществляется с помощью специального прикладного ПО.

Значительная часть исследований и экспериментов проводилась с помощью анализатора протоколов EPOS ATA Analyzer (рис. 6).

Рис. 6. Анализатор протоколов EPOS ATA Analyzer

Рис. 6. Анализатор протоколов EPOS ATA Analyzer

Анализатор представляет собой компактный прибор, который включается в разрыв между исследуемыми системой и накопителем с SATA­ или PATA­интерфейсом и перехватывает все команды и данные, которыми они обмениваются. Собранная информация (протокол обмена) передается по USB на отдельный инструментальный компьютер, где обрабатывается с помощью специального ПО.

Анализатор неоднократно выручал нас в подобных ситуациях, но в данном случае мы очень удивились, когда выяснилось, что по шине IDE передается какой­то «мусор», а не стандартные АТА­команды.

При анализе такого неправильного поведения анализатора со швейцарским компьютером пришлось вспомнить архитектуру 486 совместимых материнских плат. Причина была найдена — интерфейсный контроллер IDE на материнской плате выдавал на шину сигналы с уровнем 5 В. В настоящее время по требованиям стандарта АТА они должны иметь уровень 3,3 В, поэтому все современные микросхемы контроллеров попросту не могли правильно интерпретировать команды, передаваемые через интерфейс.

Решение в такой ситуации казалось очевидным. Мы взялись за разработку и изготовление конвертора уровней. Тем более что по результатам экспериментов нам уже удалось запустить операционную систему с оригинального Seagate ST91351AG на нашем тестовом стенде. Тестовые копии на CompactFlash и IDE Flash также загружали OS/2 WARP на стендовом ПК.

Через две недели получили печатные платы и собрали конвертор уровней. С его помощью были получены первые протоколы обмена данными с накопителями. И тут выяснилось, что нестандартные уровни на шине ни при чем. Более того, в результате тщательного обследования материнской платы мы поняли, что проблема завышенного напряжения была вызвана сбоящей микросхемой буфера IDE контроллера (74ACT16245DGGE4). Ее заменили, и исследования продолжились (рис. 7).

На тот момент промежуточные результаты выглядели следующим образом. На тестовом стенде OS/2 WARP загружался как с оригинального Seagate, так и практически с любых жестких дисков — IDE Flash и CompactFlash. Но на исследуемом компьютере по­прежнему запускался только Seagate.

Рис. 7. Неработающая микросхема буфера на материнской плате

Проблема была точно не в конкретном диске — эта версия была отброшена одной из первых. Проверка была сделана с помощью эмулятора паспорта диска, разработанного на базе ATA Analyzer. Суть работы эмулятора достаточно проста: при перехвате команды IDENTIFY DEVICE (по ней отдается вся конфигурационная информация диска — модель, серийный номер, поддерживаемые режимы и т.п.) он не транслирует ее в подключенный диск, а возвращает хосту нужный нам паспорт.

Чтобы выяснить, в чем же особенность этого Seagate, с помощью анализатора были сняты и тщательно проанализированы десятки протоколов. Они были практически идентичными с небольшой поправкой на разные платформы, то есть наборы команд и передаваемые данные при инициализации диска на исследуемом компьютере и тестовом стенде совпадали (рис. 8). Но после определенного момента происходило нечто необъяснимое, что в результате приводило к невозможности загрузки с любых дисков на NUM 1062W.

Мы перепробовали более двух десятков дисков — ровесников злополучного Seagate, но ни один из них не позволил загрузить систему. Тем не менее большой объем собранных данных позволил локализовать момент сбоя в загрузке, его очень внимательно проанализировали на логическом и сигнальном уровнях.

Рис. 8. Фрагмент одного из протоколов

Рис. 8. Фрагмент одного из протоколов

Проблема оказалась в ошибке реализации протокола передачи данных между хостом и диском. Фактически, в определенный момент времени IDE­контроллер материнской платы NUM 1062W формировал на шине такое состояние, которое не описано ни в одной из версий стандарта АТА. По стандарту такие состояния должны отбрасываться любым диском с сообщением об ошибке. Все диски правильно реагировали на это состояние, кроме Seagate, который игнорировал его и переходил к обработке дальнейших команд.

Таким образом, взаимодополняющие ошибки в IDE­контроллере и в прошивке диска привели к созданию уникальной системы привязки диска к оборудованию. Нам кажется, на этапе разработки материнской платы отладка производилась именно с таким Seagate, а когда выяснилось, что другие диски не очень­то и работают, это стало «фичей».

Рис. 9. Отладочный макет

Рис. 9. Отладочный макет

К сожалению, наши запросы к разработчику компьютера не принесли ощутимой пользы. Единственное, чего мы смогли добиться от швейцарцев, — такое оборудование уже давно снято с производства и не поддерживается, но если нам необходима сервисная документация, то они готовы ее предоставить, естественно за отдельную плату. При этом они сообщили, что в документации нет схемотехники и монтажных схем, а предоставить такую информацию они не могут из­за ее отсутствия.

Когда проблема была четко определена, мы начали разработку эмулятора диска непосредственно для конкретного станка. В первую очередь был разработан макет будущего устройства. Его основой стала разработанная ранее под другой проект отладочная плата прибора для обслуживания жестких дисков, построенная на микроконтроллере Atmel (рис. 9). На этом макете мы впервые добились удачной загрузки на NUM 1062W с накопителей IDE Flash и карт CompactFlash.

Затем было принято решение провести тестирование в «боевых условиях» — непосредственно на производстве. Мы поехали в Житомир на производственный участок заказчика, там подключили разработанный нами макет будущего накопителя к станку. И, о чудо — все заработало, причем положительные результаты были получены как для модулей IDE Flash, так и для CompactFlash­карт (рис. 10).

Рис. 10. Испытания макета в «боевых условиях»

Рис. 10. Испытания макета в «боевых условиях»

После пробного запуска было изготовлено несколько экземпляров твердотельных дисков в формфакторе 2,5 дюйма с интерфейсом IDE. В качестве носителя в них используется промышленная карта CompactFlash. Первый украинский «SSD­диск» получил название «Эмулятор жесткого диска для промышленного оборудования» (рис. 11 и 12).

Рис. 11. Оригинальный диск, отладочный макет, окончательный вариант нашего диска

Рис. 11. Оригинальный диск, отладочный макет, окончательный вариант нашего диска

Рис. 12. Устройство нашего диска

Рис. 12. Устройство нашего диска

Кроме того, во время тестирования макета на производстве выяснилось, что управляющие программы для станка переносят на дискетах. Это создает большие неудобства для сотрудников, поскольку в производственных условиях дискеты долго «не живут». Со слов заказчика, одной дискеты хватает на запись трех­пяти управляющих программ, после чего ее необходимо менять. Поэтому мы предложили заменить дисководы на эмуляторы FDD на основе USB­флэшек. В результате такой дополнительной модернизации обрабатывающий центр IMA BIMA был полностью переведен с магнитных технологий хранения на современные твердотельные носители.

Итоги нашей работы можно сформулировать следующим образом:

  • была решена нетривиальная проблема по замене устаревших магнитных накопителей (HDD и FDD) на современные твердотельные носители на основе Flash­памяти, что позволило продлить жизнь и повысить надежность эксплуатации деревообрабатывающего станка с ЧПУ;
  • разработанный нами «эмулятор HDD» имеет ряд специальных функций, в том числе возможность подмены паспорта, модификации протокола на лету, исправления недокументированных ошибок обмена данными. Благодаря «эмулятору HDD» можно модернизировать практически любое промышленное оборудование и нестандартную специализированную технику, в которых используются устаревшие жесткие диски с интерфейсом IDE.

P.S. В настоящее время мы работаем над созданием аналога для интерфейса SCSI, который широко применяется, например, в медицинской технике. Если тема интересна, в следующих публикациях мы постараемся описать, что у нас в результате получается. 

Связаться с авторами можно по адресу: cf@epos.ua

САПР и графика 7`2013