ГлавБухАрик
Громадський захисник корпорацій
- Реєстрація
- 01.01.24
- Місто
- Kyiv
Перший український SSD диск чи друге життя швейцарського комп'ютера
На жаль, величезна кількість підприємств в Україні працюють на застарілому промисловому устаткуванні, виготовленому кілька десятків і більше років тому. Після розвалу Союзу та розпродажу на метал верстатів місцевої розробки підприємства, що залишилися на плаву, почали купувати на Заході вживані верстати з числовим програмним управлінням: плазморізи, дерево-, металообробні верстати, гравірувальне обладнання тощо. Але відносно невисока вартість такого заліза має і зворотний бік – простої через відмову, недоступність запчастин, повну відсутність підтримки.
Ця розповідь про те, як проста заміна вінчестера в деревообробному верстаті вимагає створення власного твердотільного диска, і з якими труднощами ми зіткнулися при його розробці.
Спочатку невелика передісторія. Кілька років тому до центру відновлення інформації відомої київської компанії звернувся замовник із несправним ноутбучним диском Seagate 1,2 ГБ випуску 1997 року.
Вінчестер використовувався у верстаті, тому коли він таки відслужив своє, виробництво зупинилося. Із відновленням даних особливих проблем не виникло, повну копію зробили протягом години та щасливий клієнт поїхав до Житомира. Але того ж дня він ще кілька разів побував у Києві. Декілька копій на різних дисках завзято не стартували на верстаті. На щастя, на складі дисків-донорів було знайдено саме такий же Seagate ST91351AG, відновлені дані записали на нього і все запрацювало.
Приблизно через рік ситуація повторилася, але диск вже шукали довше – на той момент навіть на ebay його не було. І знову замовника врятував накопичений за довгі роки склад донорів – на дальній полиці знайшли та відновили, напевно, один із останніх у світі дисків цієї моделі.
Цього разу клієнту запропонували подумати про перехід на флеш, навіть було знайдено модуль IDE Flash, виготовлено перехідники для його підключення до верстата, зроблено заміну паспорта накопичувача. Але замовник вирішив не морочитися і після першої невдалої спроби завантажитись з нього відмовився від цієї ідеї.
Кілька місяців тому диск повернувся знову. Цього разу було очевидно, що постійно шукати диски більш ніж 15-річної давності – це не вихід, і потрібна модернізація верстата, переведення його на сучасні носії. Як рішення було запропоновано перейти на флеш. Причин такого вибору було кілька, але основною стало те, що твердотільні накопичувачі набагато стійкіші до вібрацій, ніж жорсткі диски.
Це рішення і започаткувало велику серію досліджень та експериментів, які завершилися розробкою та виготовленням через два місяці робочої версії власного твердотільного накопичувача на основі флеш пам'яті. Це не зовсім SSD диск, швидше за спеціалізований адаптер IDE-to-CompactFlash для промислового обладнання з низкою унікальних функцій.
Але спочатку була спроба вирішити завдання, що називається, в лоб. Ми зібрали кілька різних модулів IDE Flash та карт CompactFlash, скопіювали на них відновлені дані та поїхали до Житомира.
Але жодна з флешок не змогла завантажитись у верстаті. З будь-якими параметрами БІОС та режимами підключення спроби завантаження призводили до помилки читання диска. Була спроба підкоригувати завантажувальний сектор, в результаті помилка зникла, але система зависала відразу після старту.
Коли стало зрозуміло, що кавалерійським наскоком проблему не вирішити, ми розібрали верстат, демонтували операторську панель та промисловий комп'ютер та відвезли обладнання до себе на дослідження.
Оскільки зупинити виробництво на якийсь тривалий термін не було можливим, паралельно ми зібрали власний тестовий стенд комп'ютера на 486DX2 процесорі з 16 Мб оперативної пам'яті. Завдяки цьому, а також тому, що ми змогли відремонтувати останній Seagate ST91351AG, вдалося уникнути простою виробництва під час розробки нашого диска.
Керуючий комп'ютер верстата NUM 1062W, до речі «чистокровний швейцарець», був розроблений та зібраний компанією NUM у 1998 році у промисловому варіанті 486DX2-66 з 24 Мб ОЗУ. Згідно з сервісними відмітками на верстаті, останній раз обслуговування він проходив у 1999 році, перебуваючи ще в Німеччині. Тоді було проведено профілактику, і після цього він безперебійно працював до 2010 року, коли вперше вийшов з ладу вінчестер.
Як операційна система в цьому промисловому комп'ютері використовується призабута зараз OS/2 WARP, управління верстатом здійснюється за допомогою спеціального прикладного ПЗ.
Значна частина досліджень та експериментів проводилася за допомогою аналізатора протоколів EPOS ATA Analyzer.
Аналізатор є компактним приладом, який включається в розрив між досліджуваними системою і накопичувачем з SATA або PATA інтерфейсом і перехоплює всі команди і дані, якими вони обмінюються. Зібрана інформація (протокол обміну) передається USB на окремий інструментальний комп'ютер, де обробляється за допомогою спеціального ПЗ.
Аналізатор вже неодноразово виручав нас у подібних ситуаціях, тим більшим було наше здивування, коли з'ясувалося, що по шині IDE передається якесь сміття, а не стандартні АТА команди.
При аналізі такої неправильної поведінки аналізатора зі швейцарським комп'ютером довелося нагадати собі архітектуру 486 сумісних материнських плат. Причину було знайдено – інтерфейсний контролер IDE на материнці видавав на шину сигнали з рівнем 5В. В даний час за вимогами стандарту АТА вони повинні мати рівень 3,3В, тому всі сучасні мікросхеми контролерів просто не могли правильно інтерпретувати команди, які передавалися через інтерфейс.
Рішення у такій ситуації здавалося очевидним. Ми взялися за розробку та виготовлення конвертора рівнів. Тим більше, що за результатами експериментів нам вже вдалося запустити операційну систему з оригінального Seagate ST91351AG на нашому тестовому стенді. Тестові копії на CompactFlash та IDE Flash також завантажували OS/2 WARP на стендовому ПК.
За кілька тижнів отримали друковані плати та зібрали конвертор рівнів. З його допомогою було отримано перші протоколи обміну даними із накопичувачами. І тут з'ясувалося, що проблема зовсім не на нестандартних рівнях на шині. Більш того, в результаті ретельного обстеження материнської плати з'ясувалося, що проблема підвищеної напруги була викликана мікросхемою буфера IDE контролера (74ACT16245DGGE4). Її замінили та дослідження продовжилися.
На той момент проміжні результати виглядали так. На нашому тестовому стенді OS/2 WARP завантажувався як з оригінального Seagate, так і практично з будь-яких жорстких дисків, IDE Flash і CompactFlash. Але на досліджуваному комп'ютері, як і раніше, запускався тільки Seagate.
Питання точно було не в прив'язці до конкретного диска - ця версія була відкинута однією з перших. Перевірку було зроблено за допомогою емулятора паспорта диска, розробленого на базі ATA Analyzer. Суть роботи емулятора досить проста - при перехопленні команди IDENTIFY DEVICE (по ній віддається вся конфігураційна інформація диска - модель, серійний номер, режими, що підтримуються і т.п.), він не транслює команду в підключений диск, а повертає хосту потрібний нам паспорт.
Щоб з'ясувати, чим цей Seagate такий особливий, за допомогою аналізатора були зняті і ретельно проаналізовані десятки протоколів. Вони були ідентичними з невеликою поправкою на різні платформи – тобто набори команд і дані, що передаються при ініціалізації диска на досліджуваному комп'ютері і тестовому стенді збігалися. Але після певного моменту відбувалося щось незрозуміле, що призводило до неможливості завантаження з будь-яких дисків на NUM 1062W.
Ми перепробували понад два десятки дисків – ровесників злощасного Сигейту, але жоден із них не дозволив завантажити систему. Проте великий обсяг зібраних даних дозволив локалізувати момент збою в завантаженні. Цей момент дуже уважно проаналізували на логічному та сигнальному рівнях.
Проблема виявилася помилкою реалізації протоколу передачі між хостом і диском. Фактично, у певний момент часу IDE контролер материнської плати NUM 1062W формував на шині такий стан, який не описаний в жодній версії стандарту АТА. За стандартом такі стани повинні відкидатися будь-яким диском з повідомленням про помилку. Всі диски правильно реагували на цей стан, крім цього Сигейту, який ігнорував його та переходив до обробки подальших команд.
Таким чином, взаємодоповнюючі помилки в IDE контролері та у прошивці диска призвели до створення унікальної системи прив'язки диска до обладнання. Мені здається, на етапі розробки материнки налагодження проводилося саме з таким Сигейтом, а коли з'ясувалося, що інші диски не дуже працюють, це стало фічею.
На жаль, наші запити до розробника комп'ютера не принесли суттєвої користі. Єдине, чого ми змогли добитися від швейцарців, – таке обладнання вже давно зняте з виробництва і не підтримується, але якщо нам потрібна сервісна документація, вони готові її надати, природно, за окрему плату. При цьому вони повідомили, що у документації немає схемотехніки та монтажних схем, а надати таку інформацію вони не можуть за її відсутністю.
Коли проблему було чітко визначено, ми почали розробку емулятора диска безпосередньо для конкретного верстата. Насамперед було розроблено макет майбутнього пристрою. Його основою стала розроблена раніше під інший проект налагоджувальна плата приладу для обслуговування жорстких дисків, побудована на мікроконтролері Atmel. На цьому макеті ми вперше досягли вдалого завантаження на NUM 1062W з накопичувачів IDE Flash та карт CompactFlash.
Після цього було ухвалено рішення провести тестування у «бойових умовах» — безпосередньо на виробництві. Ми поїхали до Житомира на виробничу ділянку замовника, там підключили розроблений нами макет майбутнього накопичувача до верстата. О диво – все запрацювало, причому позитивні результати були отримані як для модулів IDE Flash, так і для CompactFlash карт.
Після пробного запуску було виготовлено кілька екземплярів твердотільних дисків у форм-факторі 2,5” з інтерфейсом IDE. Як носій у них використовується промислова карта CompactFlash
Оригінальний диск, налагоджувальний макет, остаточний варіант нашого диска
Внутрішня будова нашого диска
Крім того, під час тестування макета на виробництві з'ясувалося, що керуючі програми для верстата носять на дискетах. Це створює великі незручності для співробітників, оскільки у виробничих умовах дискети довго «не живуть». Внаслідок такої додаткової модернізації обробний центр IMA BIMA був повністю переведений з магнітних технологій зберігання на сучасні твердотільні носії.
• Розроблений нами «емулятор HDD» має низку спеціальних функцій, зокрема можливість заміни паспорта, модифікації протоколу на льоту, виправлення недокументованих помилок обміну даними. Завдяки цьому можна модернізувати практично будь-яке промислове обладнання та нестандартну спеціалізовану техніку, в яких використовуються застарілі жорсткі диски з інтерфейсом IDE.
Сергій Прокопенко , начальник Лабораторії комп'ютерної криміналістики та інформаційної безпеки
Володимир Вечір , фахівець Лабораторії комп'ютерної криміналістики та інформаційної безпеки
©ЕПОС 2013р.
Вінчестер використовувався у верстаті, тому коли він таки відслужив своє, виробництво зупинилося. Із відновленням даних особливих проблем не виникло, повну копію зробили протягом години та щасливий клієнт поїхав до Житомира. Але того ж дня він ще кілька разів побував у Києві. Декілька копій на різних дисках завзято не стартували на верстаті. На щастя, на складі дисків-донорів було знайдено саме такий же Seagate ST91351AG, відновлені дані записали на нього і все запрацювало.
Приблизно через рік ситуація повторилася, але диск вже шукали довше – на той момент навіть на ebay його не було. І знову замовника врятував накопичений за довгі роки склад донорів – на дальній полиці знайшли та відновили, напевно, один із останніх у світі дисків цієї моделі.
Цього разу клієнту запропонували подумати про перехід на флеш, навіть було знайдено модуль IDE Flash, виготовлено перехідники для його підключення до верстата, зроблено заміну паспорта накопичувача. Але замовник вирішив не морочитися і після першої невдалої спроби завантажитись з нього відмовився від цієї ідеї.
Кілька місяців тому диск повернувся знову. Цього разу було очевидно, що постійно шукати диски більш ніж 15-річної давності – це не вихід, і потрібна модернізація верстата, переведення його на сучасні носії. Як рішення було запропоновано перейти на флеш. Причин такого вибору було кілька, але основною стало те, що твердотільні накопичувачі набагато стійкіші до вібрацій, ніж жорсткі диски.
Це рішення і започаткувало велику серію досліджень та експериментів, які завершилися розробкою та виготовленням через два місяці робочої версії власного твердотільного накопичувача на основі флеш пам'яті. Це не зовсім SSD диск, швидше за спеціалізований адаптер IDE-to-CompactFlash для промислового обладнання з низкою унікальних функцій.
Але спочатку була спроба вирішити завдання, що називається, в лоб. Ми зібрали кілька різних модулів IDE Flash та карт CompactFlash, скопіювали на них відновлені дані та поїхали до Житомира.
Але жодна з флешок не змогла завантажитись у верстаті. З будь-якими параметрами БІОС та режимами підключення спроби завантаження призводили до помилки читання диска. Була спроба підкоригувати завантажувальний сектор, в результаті помилка зникла, але система зависала відразу після старту.
Коли стало зрозуміло, що кавалерійським наскоком проблему не вирішити, ми розібрали верстат, демонтували операторську панель та промисловий комп'ютер та відвезли обладнання до себе на дослідження.
Оскільки зупинити виробництво на якийсь тривалий термін не було можливим, паралельно ми зібрали власний тестовий стенд комп'ютера на 486DX2 процесорі з 16 Мб оперативної пам'яті. Завдяки цьому, а також тому, що ми змогли відремонтувати останній Seagate ST91351AG, вдалося уникнути простою виробництва під час розробки нашого диска.
Керуючий комп'ютер верстата NUM 1062W, до речі «чистокровний швейцарець», був розроблений та зібраний компанією NUM у 1998 році у промисловому варіанті 486DX2-66 з 24 Мб ОЗУ. Згідно з сервісними відмітками на верстаті, останній раз обслуговування він проходив у 1999 році, перебуваючи ще в Німеччині. Тоді було проведено профілактику, і після цього він безперебійно працював до 2010 року, коли вперше вийшов з ладу вінчестер.
Як операційна система в цьому промисловому комп'ютері використовується призабута зараз OS/2 WARP, управління верстатом здійснюється за допомогою спеціального прикладного ПЗ.
Значна частина досліджень та експериментів проводилася за допомогою аналізатора протоколів EPOS ATA Analyzer.
Аналізатор є компактним приладом, який включається в розрив між досліджуваними системою і накопичувачем з SATA або PATA інтерфейсом і перехоплює всі команди і дані, якими вони обмінюються. Зібрана інформація (протокол обміну) передається USB на окремий інструментальний комп'ютер, де обробляється за допомогою спеціального ПЗ.
Аналізатор вже неодноразово виручав нас у подібних ситуаціях, тим більшим було наше здивування, коли з'ясувалося, що по шині IDE передається якесь сміття, а не стандартні АТА команди.
При аналізі такої неправильної поведінки аналізатора зі швейцарським комп'ютером довелося нагадати собі архітектуру 486 сумісних материнських плат. Причину було знайдено – інтерфейсний контролер IDE на материнці видавав на шину сигнали з рівнем 5В. В даний час за вимогами стандарту АТА вони повинні мати рівень 3,3В, тому всі сучасні мікросхеми контролерів просто не могли правильно інтерпретувати команди, які передавалися через інтерфейс.
Рішення у такій ситуації здавалося очевидним. Ми взялися за розробку та виготовлення конвертора рівнів. Тим більше, що за результатами експериментів нам вже вдалося запустити операційну систему з оригінального Seagate ST91351AG на нашому тестовому стенді. Тестові копії на CompactFlash та IDE Flash також завантажували OS/2 WARP на стендовому ПК.
За кілька тижнів отримали друковані плати та зібрали конвертор рівнів. З його допомогою було отримано перші протоколи обміну даними із накопичувачами. І тут з'ясувалося, що проблема зовсім не на нестандартних рівнях на шині. Більш того, в результаті ретельного обстеження материнської плати з'ясувалося, що проблема підвищеної напруги була викликана мікросхемою буфера IDE контролера (74ACT16245DGGE4). Її замінили та дослідження продовжилися.
На той момент проміжні результати виглядали так. На нашому тестовому стенді OS/2 WARP завантажувався як з оригінального Seagate, так і практично з будь-яких жорстких дисків, IDE Flash і CompactFlash. Але на досліджуваному комп'ютері, як і раніше, запускався тільки Seagate.
Питання точно було не в прив'язці до конкретного диска - ця версія була відкинута однією з перших. Перевірку було зроблено за допомогою емулятора паспорта диска, розробленого на базі ATA Analyzer. Суть роботи емулятора досить проста - при перехопленні команди IDENTIFY DEVICE (по ній віддається вся конфігураційна інформація диска - модель, серійний номер, режими, що підтримуються і т.п.), він не транслює команду в підключений диск, а повертає хосту потрібний нам паспорт.
Щоб з'ясувати, чим цей Seagate такий особливий, за допомогою аналізатора були зняті і ретельно проаналізовані десятки протоколів. Вони були ідентичними з невеликою поправкою на різні платформи – тобто набори команд і дані, що передаються при ініціалізації диска на досліджуваному комп'ютері і тестовому стенді збігалися. Але після певного моменту відбувалося щось незрозуміле, що призводило до неможливості завантаження з будь-яких дисків на NUM 1062W.
Ми перепробували понад два десятки дисків – ровесників злощасного Сигейту, але жоден із них не дозволив завантажити систему. Проте великий обсяг зібраних даних дозволив локалізувати момент збою в завантаженні. Цей момент дуже уважно проаналізували на логічному та сигнальному рівнях.
Проблема виявилася помилкою реалізації протоколу передачі між хостом і диском. Фактично, у певний момент часу IDE контролер материнської плати NUM 1062W формував на шині такий стан, який не описаний в жодній версії стандарту АТА. За стандартом такі стани повинні відкидатися будь-яким диском з повідомленням про помилку. Всі диски правильно реагували на цей стан, крім цього Сигейту, який ігнорував його та переходив до обробки подальших команд.
Таким чином, взаємодоповнюючі помилки в IDE контролері та у прошивці диска призвели до створення унікальної системи прив'язки диска до обладнання. Мені здається, на етапі розробки материнки налагодження проводилося саме з таким Сигейтом, а коли з'ясувалося, що інші диски не дуже працюють, це стало фічею.
На жаль, наші запити до розробника комп'ютера не принесли суттєвої користі. Єдине, чого ми змогли добитися від швейцарців, – таке обладнання вже давно зняте з виробництва і не підтримується, але якщо нам потрібна сервісна документація, вони готові її надати, природно, за окрему плату. При цьому вони повідомили, що у документації немає схемотехніки та монтажних схем, а надати таку інформацію вони не можуть за її відсутністю.
Коли проблему було чітко визначено, ми почали розробку емулятора диска безпосередньо для конкретного верстата. Насамперед було розроблено макет майбутнього пристрою. Його основою стала розроблена раніше під інший проект налагоджувальна плата приладу для обслуговування жорстких дисків, побудована на мікроконтролері Atmel. На цьому макеті ми вперше досягли вдалого завантаження на NUM 1062W з накопичувачів IDE Flash та карт CompactFlash.
Після цього було ухвалено рішення провести тестування у «бойових умовах» — безпосередньо на виробництві. Ми поїхали до Житомира на виробничу ділянку замовника, там підключили розроблений нами макет майбутнього накопичувача до верстата. О диво – все запрацювало, причому позитивні результати були отримані як для модулів IDE Flash, так і для CompactFlash карт.
Після пробного запуску було виготовлено кілька екземплярів твердотільних дисків у форм-факторі 2,5” з інтерфейсом IDE. Як носій у них використовується промислова карта CompactFlash
Оригінальний диск, налагоджувальний макет, остаточний варіант нашого диска
Внутрішня будова нашого диска
Крім того, під час тестування макета на виробництві з'ясувалося, що керуючі програми для верстата носять на дискетах. Це створює великі незручності для співробітників, оскільки у виробничих умовах дискети довго «не живуть». Внаслідок такої додаткової модернізації обробний центр IMA BIMA був повністю переведений з магнітних технологій зберігання на сучасні твердотільні носії.
Підсумки:
• Була вирішена нетривіальна проблема щодо заміни застарілих магнітних накопичувачів (HDD та FDD) на сучасні твердотільні носії на основі Flash пам'яті, що дозволило продовжити життя та підвищити надійність експлуатації деревообробного верстата з ЧПУ.• Розроблений нами «емулятор HDD» має низку спеціальних функцій, зокрема можливість заміни паспорта, модифікації протоколу на льоту, виправлення недокументованих помилок обміну даними. Завдяки цьому можна модернізувати практично будь-яке промислове обладнання та нестандартну спеціалізовану техніку, в яких використовуються застарілі жорсткі диски з інтерфейсом IDE.
Сергій Прокопенко , начальник Лабораторії комп'ютерної криміналістики та інформаційної безпеки
Володимир Вечір , фахівець Лабораторії комп'ютерної криміналістики та інформаційної безпеки
©ЕПОС 2013р.
З.І.Тему навіяно
маю на вирибництві старе обладнання (імпотрні станки з чпу випуску 80-90 років), і вже не раз користувався відновленими планками и платами. Навіть відновлені жорсткі диски купляв. Так лотерея, але коли нема альтернативи, то саме то. Мало того можу сказати що іноді таке відновлене може коштувати не малих грошей.
Останнє редагування: