Odczyt Winchestera: Różnice pomiędzy wersjami
m (→Sprzęt) |
Nie podano opisu zmian |
||
Linia 3: | Linia 3: | ||
= Nośnik danych = | = Nośnik danych = | ||
[[File:Nec-mera.jpg|thumb|NEC D5126]] | [[File:Nec-mera.jpg|thumb|NEC D5126]] | ||
Nośnik danych to dysk z interfejsem [http://en.wikipedia.org/wiki/ST-506 ST-506], [http://support.necam.com/Legacy/Harddrives/D5126.cfm NEC D5126]. Jego podstawowe parametry: | Nośnik danych to dysk z interfejsem [http://en.wikipedia.org/wiki/ST-506 ST-506], [http://support.necam.com/Legacy/Harddrives/D5126.cfm NEC D5126]. Jego podstawowe parametry: | ||
Linia 18: | Linia 19: | ||
= Pierwsze próby odczytu = | = Pierwsze próby odczytu = | ||
[[File:Wd1006v-mm1.jpg|thumb|Kontroler MFM WD1006V-MM1]] | [[File:Wd1006v-mm1.jpg|thumb|Kontroler MFM WD1006V-MM1]] | ||
Amepol używał w swoich konstrukcjach standardowych komponentów, używanych również w początkach ery komputerów PC. Pierwszym nasuwającym się sposobem odczytu zawartości dysku było więc 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. | Amepol używał w swoich konstrukcjach standardowych komponentów, używanych również w początkach ery komputerów PC. Pierwszym nasuwającym się sposobem odczytu zawartości dysku było więc 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. | ||
Linia 46: | Linia 48: | ||
# Napisaniu oprogramowania analizującego fizyczny obraz dysku i przygotowującego bajtowy obraz wynikowy | # Napisaniu oprogramowania analizującego fizyczny obraz dysku i przygotowującego bajtowy obraz wynikowy | ||
== | == Realizacja == | ||
[[File:Czytnik_winchester.jpg|thumb|"Czytnik" dysków Winchester]] | [[File:Czytnik_winchester.jpg|thumb|"Czytnik" dysków Winchester]] | ||
Dyski z [http://en.wikipedia.org/wiki/ST-506 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 [http://en.wikipedia.org/wiki/RS-422 RS-422]. | Dyski z [http://en.wikipedia.org/wiki/ST-506 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 [http://en.wikipedia.org/wiki/RS-422 RS-422]. | ||
Linia 55: | Linia 58: | ||
* Programowalny analizator stanów logicznych użyty jako sampler sygnału danych pracujący z częstotliwością 100MHz | * Programowalny analizator stanów logicznych użyty jako sampler sygnału danych pracujący z częstotliwością 100MHz | ||
* [http://www.ftdichip.com/Products/ICs/FT232R.htm FTDI FT232RL] 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 | ||
[[File:Wdc-schemat.png|center|Schemat blokowy "czytnika" dysków Winchester]] | |||
Zarówno kontroler jak i sampler podłączone są do komputera PC za pomocą złącz USB. Kontroler widziany jest jako urządzenie za portem szeregowym, sampler używa własnego protokołu transmisji i jest dostępny dzięki bibliotece dostarczonej przez producenta. W całym systemie są trzy elementy programowe: | |||
# '''WDC''' (Winchester Disk Controller, C) - oprogramowanie mikrokontrolera AVR, tłumaczące komendy odbierane z portu szeregowego na sekwencje sygnałów sterujących dyskiem i zapewniające jego obsługę zgodnie z wymaganiami standardu | |||
# '''WDS''' (Winchester Data Sampler, C++) - oprogramowanie automatyzujące proces obrazowania dysku, które realizuje dwie funkcje: | |||
#* komunikuje się kontrolerem w celu wybrania dysku, ustalenia pozycji głowic, wybrania głowicy i odczytu stanu napędu | |||
#* komunikuje się z samplerem inicjalizując proces obrazowania ścieżki i zapisuje obrazy kolejnych ścieżek na dysk komputera | |||
# '''WDA''' (Winchester Data Analyzer, Python) - umożliwia przeprowadzenie analizy fizycznego obrazu dysku i zapisuje bajtowy obraz danych |
Wersja z 09:58, 30 mar 2013
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
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
Amepol używał w swoich konstrukcjach standardowych komponentów, używanych również w początkach ery komputerów PC. Pierwszym nasuwającym się sposobem odczytu zawartości dysku było więc 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:
- Zarejestrowaniu na nośniku zewnętrznym sygnału z głowic dysku, kolejno dla każdej ścieżki i głowicy.
- Analizie zapisu i odczytaniu z niego właściwych danych bajtowych.
Praktyczna realizacja zadania polega na:
- Zbudowaniu urządzenia, które będzie potrafiło:
- zgodnie ze specyfikacją ST-506 sterować dyskiem (pozycjonować i wybierać głowice, odczytywać stan 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)
- Napisaniu oprogramowania (firmware) takiego urządzenia
- Napisaniu oprogramowania realizującego proces obrazowania całego dysku
- Przeanalizowaniu otrzymanego zapisu w poszukiwaniu sposobu i formatu zapisu danych
- Napisaniu oprogramowania analizującego fizyczny obraz dysku i przygotowującego bajtowy obraz wynikowy
Realizacja
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 cztery 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 sampler sygnału danych pracujący z częstotliwością 100MHz
- FTDI FT232RL jako interfejs USB dla kontrolera, do komunikacji z PC
Zarówno kontroler jak i sampler podłączone są do komputera PC za pomocą złącz USB. Kontroler widziany jest jako urządzenie za portem szeregowym, sampler używa własnego protokołu transmisji i jest dostępny dzięki bibliotece dostarczonej przez producenta. W całym systemie są trzy elementy programowe:
- WDC (Winchester Disk Controller, C) - oprogramowanie mikrokontrolera AVR, tłumaczące komendy odbierane z portu szeregowego na sekwencje sygnałów sterujących dyskiem i zapewniające jego obsługę zgodnie z wymaganiami standardu
- WDS (Winchester Data Sampler, C++) - oprogramowanie automatyzujące proces obrazowania dysku, które realizuje dwie funkcje:
- komunikuje się kontrolerem w celu wybrania dysku, ustalenia pozycji głowic, wybrania głowicy i odczytu stanu napędu
- komunikuje się z samplerem inicjalizując proces obrazowania ścieżki i zapisuje obrazy kolejnych ścieżek na dysk komputera
- WDA (Winchester Data Analyzer, Python) - umożliwia przeprowadzenie analizy fizycznego obrazu dysku i zapisuje bajtowy obraz danych