Zegar czasu rzeczywistego Amepolu

Z MERA 400 wiki
Przejdź do nawigacji Przejdź do wyszukiwania

Opis funkcjonalny

Zegar czasu rzeczywistego z loaderem systemu opracowany dla m.c. MERA-400 ma za zadanie usprawnienie czynności operatorskich podczas uruchamiania systemu. Układ składa się z dwóch części:

  • z części zegarowej, która ma za zadanie odliczanie czasu i umożliwienie odczytania bieżącego czasu i daty przez procesor,
  • z części dotyczącej przechowywania loadera systemu w pamięci PROM i jego odczytu do pamięci operacyjnej przez procesor.

Obie te części korzystają ze wspólnego dekodera rozkazów, który umożliwia na podstawie kodu operacji selektywną współpracę procesora z jednym lub drugim układem. Układ pracuje w kanale znakowym minikomputera w miejscu przeznaczonym dla jednostek sterujących urządzeń znakowych na dowolnej z ośmiu pozycji, która określa jego nymer.

Operacje wykonywane przez układ zegar + loader

Procesor współpracuje z opisywanym układem przy pomocy rozkazu IN - wykonującego operację pobrania informacji z urządzenia. Argument efektywny rozkazu niesie informację określającą:

Bity argumentu Znaczenie
0-5 kod operacji
6 kod niewykorzystany
8-10 numer urządzenia w kanale znakowym
11-14 numer kanału znakowego
15 = 0 (bit określający rozkaz wysłany do kanału

Zależnie od kodu operacji zawartego na bitach 0-6 urządzenie może wykonywać operacje przedstawione w tabeli:

Kod operacji Treść operacji Odpowiedź
1xxxxx Czytaj znak z pamięci PROM zawierającej loader systemu.
R)A)8-15 := ZNAK
OK
01xxxx Ustaw bit HS w rejestrze trybu pracy zegara.
R)A)0-15 := STAN ZEGARA
OK
00xxxx Zeruj bit HS.
R)A)0-15 := STAN ZEGARA
OK
0x1xxx Ustaw bit MS w rejestrze trybu pracy zegara.
R)A)0-15 := STAN ZEGARA
OK
0x0xxx Zeruj bit MS.
R)A)0-15 := STAN ZEGARA
OK
0xx0xx Ustaw bit DR w rejestrze trybu pracy zegara.
R)A)0-15 := STAN ZEGARA
OK
0xx1xx Zeruj bit DR.
R)A)0-15 := STAN ZEGARA
OK
0xxx0x Ustaw bit TR w rejestrze trybu pracy zegara.
R)A)0-15 := STAN ZEGARA
OK
0xxxx1 Odblokuj przerwania zegarowe.
R)A)0-15 := STAN ZEGARA
OK
0xxxx0 Zablokuj przerwania zegarowe.
R)A)0-15 := STAN ZEGARA
OK

Poszczególne operacje dotyczące zegara (bit N0=0) można sumować przez ustawienie odpowiednich bitów N1-N5. Urządzenie zgłasza do procesora przerwania zegarowe po uprzednim ich odblokowaniu. Specyfikacja tego przerwania podawana na szyny P-DTIN 5-7 ma wartość 0.

Budowa i działanie układu zegara z loaderem

Styk urządzenia z kanałem znakowym

Wykorzystywane są następujące sygnały interface'u znakowego:

  • P-Fi - strob operacji pobrania
  • P-OK - potwierdzenie wykonania operacji
  • P-AD0-5 - kod operacji
  • P-DTIN0-15 - informacja urządzenia
  • P-IN - zgłoszenie przerwania
  • P-PSPi - żądanie specyfikacji przerwania
  • P-CL - zerowanie ogólne

Indeks "i" związany jest z numerem fizycznym urządzenia zależnym od miejsca zajmowanego w kanale.

Operacje wykonywane przez urządzenie

Urządzenie odbiera z kanału znakowego strob -P-F oraz sygnały -P-AD0-5 zawierające kod operacji i może wykonać następujące operacje pobrania (w nawiasach podano kod operacji odpowiadający bitom -P-AD0-5, "x" oznacza dowolną wartość bitu).

  1. (1xxxxx) - czytaj znak z pamięci PROM zawierającej loader systemu. Po każdym pobraniu licznik adresu zwiększany jest o 1. Zerowanie licznika adresu realizowane jest sygnałem zerowania ogólnego lub w wyniku przepełnienia po odczytaniu ostatniego znaku zapisanego w pamięci. Każda operacja kwitowana jest odpowiedzią OK.
  2. '(01xxxx)' - ustaw bit HS (nastawianie godzin) w rejestrze trybu racy zegara. Ustawienie tego bitu powoduje wysterowanie wejścia HS zegara i wykonywanie operacji HS. Operacja ta realizowana jest tak długo jak długo bit HS w rejestrze trybu pracy zegara jest ustawiony, czyli do momentu wykonania operacji zeruj bit HS.
  3. (00xxxx) - zeruj bit HS. Powoduje wyzerowanie bitu HS i tym samym zakończenie wykonywania przez zegar operacji HS.
  4. (0x1xxx) - ustaw bit MS (nastawianie minut). Działanie identyczne jak dla operacji "ustaw bit HS".
  5. (0x0xxx) - zeruj bit MS.
  6. (0xx0xx) - ustaw bit DR (odczyt daty).
  7. (0xx1xx) - zeruj bit DR.
  8. (0xxx0x) - ustaw bit TR (odczyt czasu).
  9. (0xxx1x) - zeruj bit TR.
  10. (0xxxx1) - odblokuj przerwania zegarowe. Przerwania generowane są co 0,5 s.
  11. (0xxxx0) - zablokuj przerwania zegarowe.

Poszczególne operacje dotyczące zegara mogą być wykonywane łącznie, przez ustawienie lub wyzerowanie odpowiednich bitów kodu operacji. Sposób pracy zegara przy uaktualnieniu odpowiednich wejść sterujących pokazuje tabela.