Odczyt Winchestera: Różnice pomiędzy wersjami

Z MERA 400 wiki
Przejdź do nawigacji Przejdź do wyszukiwania
Linia 53: Linia 53:
* AVR/Atmega162 z zewnętrznym oscylatorem 16MHz w roli kontrolera dysku
* AVR/Atmega162 z zewnętrznym oscylatorem 16MHz w roli kontrolera dysku
* [http://www.ti.com/product/sn75176b Texas Instruments SN75176BP] użyty do konwersji sygnału [http://en.wikipedia.org/wiki/RS-422 RS-422] do poziomów TTL
* [http://www.ti.com/product/sn75176b Texas Instruments SN75176BP] użyty do konwersji sygnału [http://en.wikipedia.org/wiki/RS-422 RS-422] do poziomów TTL
* Saleae Logic 16 użyty jako programowalny sampler sygnału danych pracujący z częstotliwością 100MHz
* Programowalny analizator stanów logicznych użyty jako programowalny sampler sygnału danych pracujący z częstotliwością 100MHz
* FTDI FT232 RL jako interfejs USB dla kontrolera, do komunikacji z PC
* [http://www.ftdichip.com/Products/ICs/FT232R.htm FTDI FT232RL] jako interfejs USB dla kontrolera, do komunikacji z PC

Wersja z 21:16, 29 mar 2013

Winchester w zewnętrznej obudowie

Jednym z nośników danych zapisanych na MERZE-400, które przetrwały do dziś jest dysk Winchester zamontowany w minikomputerze znajdującym się w Muzeum Techniki w Warszawie. Minikomputer ten wypożyczony został Muzeum przez Politechnikę Gdańską, gdzie działał w Instytucie Okrętowym jako maszyna, na której m.in. zespół rozwijający CROOK-a pracował nad swoim systemem. Sam fakt, że dysk zawiera dane zapisane na MERZE-400 czyni go interesującym, a źródło jego pochodzenia jego wartość tylko podnosi, dając nadzieję na pozyskanie niezwykle cennych danych.

Nośnik danych

NEC D5126

Nośnik danych to dysk z interfejsem ST-506, NEC D5126. Jego podstawowe parametry:

  • 5.25"
  • pojemność: 20 MB
  • 2 talerze
  • 4 głowice w zespole poruszanym za pomocą silnika krokowego
  • 615 cylindrów
  • 17 sektorów/ścieżkę
  • brak autoparkowania, ścieżka parkingowa: 664
  • transfer: 5Mbit/s

Dysk znajduje się w zewnętrznej 19" obudowie, która oprócz niego zawiera również napęd dysków elastycznych 5,25". Elementy te podłączone są osobnymi kablami sygnałowymi do odpowiednich kontrolerów procesora peryferyjnego PLIX. Poza nimi, w obudowie zamontowany jest jedynie zasilacz +5/+12V oraz duży wentylator z tyłu obudowy.

Kontroler dysku zbudowany przez Amepol opiera się na układzie Intel C82062 zaprojektowanym dla komputerów z procesorami 80186. Realizuje on zapis i odczyt danych w standardzie MFM, który jako pierwszy używany był dla dysków z interfejsem ST-506.

Pierwsze próby odczytu

Kontroler MFM WD1006V-MM1

Ze względu na użycie przez Amepol komponentów standardowych dla architektury PC, pierwszym nasuwającym się sposobem odczytu zawartości dysku jest użycie odpowiedniego kontrolera dla PC/XT lub AT. Takie komponenty są wciąż dostępne, wymagają jedynie komputera wyposażonego w szynę ISA (8 lub 16-bit, w zależności od typu kontrolera). Złącza ISA obecne są jeszcze w stosunkowo nowych płytach głównych, co pozwala na użycie w miarę współczesnego komputera PC. Zarówno kontrolery MFM jak i dyski tego typu są wciąż obsługiwane przez system operacyjny GNU/Linux, tak więc zbudowanie kompletnego środowiska uruchomieniowego było jak najbardziej możliwe.

Próba odczytu dysku przy użyciu takiego właśnie zestawu z kontrolerem MFM Western Digital WD1006V-MM1 zakończyła się niepowodzeniem. Dysk okazał się być sprawny mechanicznie i elektrycznie, ale kontroler raportował jedynie błędy odczytu.

Początkowo nie był znany układ, którego użył Amepol do konstrukcji interfejsu dla Winchestera, istniało więc prawdopodobieństwo, że układ ten realizował zapis w standardzie RLL. Przeprowadzone zostały więc próby odczytu z dwoma różnymi kontrolerami RLL: Western Digital WD1002A-27X oraz WD1003-RA2, zakończone również niepowodzeniem.

Uniwersalny czytnik dysków Winchester

Ponieważ próby odczytu za pomocą kontrolera MFM WD1006V-MM1 nie przyniosły pozytywnego rezultatu, należało założyć, że format zapisu danych jest inny od standardu MFM dla dysków ST-506 obsługiwanych przez użyty kontroler. Jest to prawdopodobne, ponieważ na początku ery tego interfejsu kontrolery różnych producentów nie zawsze były ze sobą w pełni kompatybilne. Poszukiwanie odpowiedniego, kompatybilnego kontrolera mogłoby okazać się zadaniem trwającym wieczność, potrzebne więc było alternatywne rozwiązanie, które idealnie pozwoliłoby odczytać dane niezależnie od:

  • użytej metody zapisu,
  • formatu ścieżki i sektora,
  • stanu danych (ewentualne uszkodzenia sektorów).

Takie rozwiązanie istnieje dzięki temu, że interfejs ST-506 pozwala na dostęp do danych zapisanych na powierzchni nośnika na bardzo niskim poziomie. Sygnał danych wyprowadzony tym interfejsem jest niemalże wprost sygnałem pochodzącym z głowic dysku, bez żadnej obróbki logicznej. Można więc przeprowadzić procedurę, która polegałaby na:

  1. Zarejestrowaniu na nośniku zewnętrznym sygnału z głowic dysku, kolejno dla każdej ścieżki i głowicy.
  2. Analizie zapisu i odczytaniu z niego właściwych danych bajtowych.

Praktyczna realizacja zadania polega na:

  1. Zbudowaniu urządzenia, które będzie potrafiło:
    • zgodnie ze specyfikacją ST-506 sterować dyskiem (pozycjonować i wybierać głowice, odczytywać stanu dysku)
    • próbkować sygnał danych z odpowiednio wysoką częstotliwością
    • komunikować się z komputerem PC (otrzymywać polecenia, raportować stan dysku, przesyłać próbkowane dane)
  2. Napisaniu oprogramowania (firmware) takiego urządzenia
  3. Napisaniu oprogramowania realizującego proces obrazowania całego dysku
  4. Przeanalizowaniu otrzymanego zapisu w poszukiwaniu sposobu i formatu zapisu danych
  5. Napisaniu oprogramowania analizującego fizyczny obraz dysku i przygotowującego bajtowy obraz wynikowu

Sprzęt

"Czytnik" dysków Winchester

Dyski z interfejsem ST-506 wyposażone są w dwa złącze krawędziowe: jedno służy do przesyłania sygnałów sterujących, drugie do przesyłania danych. Wszystkie sygnały sterujące zrealizowane są w standardzie TTL z logiką ujemną (aktywne 0). Sygnały na liniach danych, zarówno odczytu jak i zapisu, to różnicowonapięciowy RS-422.

Urządzenie zostało zaimplementowane w oparciu o trzy główne elementy:

  • AVR/Atmega162 z zewnętrznym oscylatorem 16MHz w roli kontrolera dysku
  • Texas Instruments SN75176BP użyty do konwersji sygnału RS-422 do poziomów TTL
  • Programowalny analizator stanów logicznych użyty jako programowalny sampler sygnału danych pracujący z częstotliwością 100MHz
  • FTDI FT232RL jako interfejs USB dla kontrolera, do komunikacji z PC