Gwant Gwant
246
BLOG

Zamrażanie stanu pamięci systemu FMS

Gwant Gwant Polityka Obserwuj notkę 0

Ta notka ma niewiele wspólnego z katastrofą Tu154M PLF 101 – raczej stanowi informację dla osób, które w związku z  katastrofą próbują tworzyć własne interpretacje działania systemów komputerowych takich, jak FMS lub TAWS. Podawane tu informacje  dotyczą technologii zamrażania stanu pamięci tych systemów w momencie  wykrycia zaniku zasilania. Opisywana  metoda jest typowa dla stanu techniki mikroprocesorowej w czasie, gdy urządzenia te były konstruowane i wprowadzane do eksploatacji.

Standardem konstrukcyjnym, w zakresie  kontroli dostępu mikroprocesorów (uP)  (takich jak stosowany w FMS układ Z8000) do pamięci RAM typu statycznego podczas zaniku zasilania   było zastosowanie układu scalonego z rodziny MAX690.  Konkretnych  wersji takich  układów jest kilka – różnią się one parametrami elektrycznymi i stopniem zaawansowania zastosowanej logiki. Wersje uproszczone  mają obudowę DIP8 i oznaczenia MAX69x, gdzie x jest cyfra parzystą, a wersje zaawansowane obudowę DIP16 i oznaczenia MAX69y, gdzie y jest cyfrą nieparzystą.  Schemat aplikacyjny systemu z zastosowaniem wersji uproszczonej przedstawiono na rysunku 1.


image

Rys 1. Typowa konfiguracja systemu komputerowego wykorzystującego uproszczony układ scalony z rodziny MAX690

Istotą wszystkich wersji układów z rodziny MAX690  jest monitorowanie poziomu napięcia zasilającego system. Jeśli  napięcie to jest wyższe niż 4.65V (w niektórych wersjach układu 4.4V), układ nie ingeruje w wymianę danych między mikroprocesorem a pamięcią.   Z chwilą, kiedy napięcie zasilające spada poniżej tego progu, układ odcina  dostęp mikroprocesora do  pamięci i przełącza zasilanie tej pamięci na  baterię, a następnie wystawia sygnał /RESET do mikroprocesora, co powoduje jego całkowitą  deaktywację,  w tym wprowadzenie wszystkich jego wyjść w stan wysokiej impedancji, tzw „trzeci stan”.  Wersje zaawansowane zapewniają także prawidłowe podtrzymanie sygnału /CE dla pamięci (o czym będzie dalej), a wersje uproszczone nie dostarczają takiej możliwości.

Dla mikroprocesorów, generacji stosowanej w czasie gdy konstruowano FMS, standardowe napięcie zasilające musiało być zbliżone do 5 V z niewielkim tylko dopuszczalnym odchyleniem w dół.  Wybór wersji układu MAX z progiem 4.65V lub 4.4 V zależał  od właściwości konkretnego  mikroprocesora – stosowano  taką wersję, która zapewniała odłączenie mikroprocesora przy napięciu nadal gwarantującym jego poprawną pracę. Jeśli wybrano by wersję ze zbyt niskim progiem odcięcia, mikroprocesor mógłby zniszczyć  zawartość pamięci RAM z powodu wyjścia poza zakres normalnego działania.  

Na rysunku 2 przedstawiono schemat aplikacyjny z zastosowaniem wersji zaawansowanych układów (MAX691, MAX693 lub MAX695).  Istotą tych wersji jest monitorowanie stanu sygnału /CE  (w Z8000 nosi on nazwę /MREQ) kierowanego z mikroprocesora do pamięci. Normalna wymiana danych między pamięcią a mikroprocesorem odbywa się w ten sposób, że mikroprocesor wystawia adres na szynie adresowej A0-A15, ustawia kierunek przepływu danych sygnałem R/W i ewentualnie wystawia zapisywane dane na szynie danych D0-D15, po czym sygnałem /CE wyznacza czas cyklu dla pamięci RAM. Czas trwania sygnału /CE musi być tak dobrany, by operacja zapisu lub odczytu pamięci dawała stabilny wynik. Przy zastosowaniu układów MAX691, MAX693 lub MAX695 sygnał /CE IN z mikroprocesora  jest przechwytywany, a do pamięci RAM  kierowany jest sygnał /CE OUT. Dzięki temu układ wyznacza moment blokady i przełączenia zasilania pamięci, tak by ostatni cykl dostępu do pomięci z mikroprocesora był dostatecznie długi, gwarantujący poprawny zapis lub odczyt danych.


image

Rys 2.  Zaawansowana konfiguracja systemu z układem z rodziny MAX690

 

Związane z tym przebiegi czasowe pokazano na rysunku 3. Jak widać układ zapewnia nie tylko odcinane pamięci od reszty systemu przy zaniku zasilania, ale także prawidłowe przywracanie stanu systemu po nawrocie zasilania. Widać to na wykresie zmian sygnału /RESET, gdzie zapewniony jest 50 ms odstęp zaniku  aktywności tego sygnału od momentu powrotu napięcia zasilającego do wartości 4.7 V. Dopiero zanik tego sygnału powoduje, że wyjścia mikroprocesora wychodzą z „trzeciego stanu”, a jego licznik rozkazów rozpoczyna ich pobieranie z ustalonej lokacji pamięci RAM (w przypadku mikroprocesora Z8000 jest adres 0002, 0004 lub 0006).

Niestety samo wykorzystanie sygnałów /CE IN i /CE OUT nie gwarantuje poprawnej synchronizacji mikroprocesora i pamięci przy zaniku zasilania w przypadku tak zaawansowanych systemów jak FMS. Problem wynika stąd, że szyna wymiany danych między mikroprocesorem a pamięcią RAM ma szerokość 16 bitów, a  argumenty i wyniki niektórych operacji są dłuższe: 32 lub 64 bitowe i więcej.  Wtedy do przesłania całego kompletu danych trzeba wykonać kilka cykli dostępu pomiędzy uP a RAM. Logika odcinania pamięci od mikroprocesora nie może pozwolić na to, aby odcięcie to nastąpiło w środku przesyłania danych, bo w rezultacie w pamięci powstanie niespójny stan.

Mikroprocesor Z8000 daje możliwość rozwiązania tego problemu. Może się to odbyć przy wykorzystaniu sygnału NMI, który jest generowany przez układy z rodziny MAX690 przy spadku napięcia do poziomu 4.8V. Sygnał ten doprowadzony do uP powoduje uruchomienie przerwania niemaskowalnego.  W przerwaniu tym, które zachodzi zawsze po zakończeniu wykonywania bieżącego rozkazu, należy zastopować dalsze wykonywanie programu instrukcją HALT. Dzięki temu, podczas dalszego spadku napięcia zasilającego mikroprocesor, blokuje się możliwość wykonywania transferów danych z lub do pamięci, wymagające kilku cykli na szynie.


image

Rys 3. Koordynacja sygnałów doprowadzanych do mikroprocesora i pamięci RAM

Nie należy przywiązywać znaczenia do błędu w rysunku pt.  „Figure 6. Reset Timing” w oryginalnej notce aplikacyjnej [1], gdzie dwa różne sygnały oznaczono jako /CE IN – poprawny jest zamieszczony tu rysunek 3. Nie ma też znaczenia to, że układ powtarza stan sygnału /CE IN na wyjściu /CE OUT tuż po wzroście napięcia zasilającego powyżej 4.7 V, bez względu na stan sygnału /RESET. Nie ma  znaczenia, bo skoro aktywny jest sygnał /RESET, to mikroprocesor nie wystawi sygnału /CE IN do układu MAX.

 Położenie układu z rodziny MAX 690 na płycie głównej systemu FMS firmy UASC pokazano na rysunku 4 – w czerwonej elipsie.  Jak widać układ jest położony tuż obok baterii i wspomagany przez tranzystor jak na schemacie aplikacyjnym z rysunku 2. Nie da się odczytać(?), którą dokładnie wersję układu zastosowano, ale widać, że jest to wersja zaawansowana , w odbudowie DIP16. Powyżej widać także jakiś układ w obudowie DIP8 – być może jest to także układ z rodziny MAX690, do obsługi innych układów scalonych (np. korzystających z DMA lub pamięci konfiguracji)  wchodzących w skład systemu, pewności jednak nie ma.


image 


Rys 4. Położenie układu z rodziny MAX 690 na płycie głównej systemu FMS.

W podsumowaniu: to co napisałem należy rozumieć w ten sposób, że bateria wykorzystywana do podtrzymania stanu pamięci RAM służy tylko i włączenie  do tego celu. Po zejściu napięcia na kondensatorach wyjściowych zasilacza systemu poniżej progu 4.65V  nie ma żadnego podtrzymania normalnych funkcji systemu. Wszelkie teorie oparte na założeniu, że bateria służy do podtrzymania jakichś innych funkcji systemu są błędne – cokolwiek by się nie działo w systemie i jego otoczeniu, po zejściu zasilania poniżej progu nie ma to wpływu na stan pamięci RAM, bo układ MAX690 odcina ją od otoczenia. 

Opisane tu zachowanie się systemu z wykorzystaniem układu MAX690 nie dotyczy tylko stanów nadzwyczajnych, tj. zaniku zasilania w wyniku katastrofy. To jest normalne zachowanie się systemu w   wyniku odłączeniu zasilania po zakończeniu  lotu samolotu.

 

Literatura

[1] https://datasheets.maximintegrated.com/en/ds/MAX690-MAX695.pdf

[2] BRADLY K. FAWCETT  THE Z8000 MICROPROCESSOR A Design Handbook

[3]  Z8000 CPU Manual Zilog Inc.

Gwant
O mnie Gwant

Nowości od blogera

Komentarze

Inne tematy w dziale Polityka