Zegar czasu rzeczywistego Amepolu: Różnice pomiędzy wersjami

Z MERA 400 wiki
Przejdź do nawigacji Przejdź do wyszukiwania
Linia 79: Linia 79:


# '''(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.
# '''(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.
# ''''(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.
# '''(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.
# '''(00xxxx)''' - zeruj bit HS. Powoduje wyzerowanie bitu HS i tym samym zakończenie wykonywania przez zegar operacji HS.
# '''(00xxxx)''' - zeruj bit HS. Powoduje wyzerowanie bitu HS i tym samym zakończenie wykonywania przez zegar operacji HS.
# '''(0x1xxx)''' - ustaw bit MS (nastawianie minut). Działanie identyczne jak dla operacji "ustaw bit HS".
# '''(0x1xxx)''' - ustaw bit MS (nastawianie minut). Działanie identyczne jak dla operacji "ustaw bit HS".
Linia 91: Linia 91:


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.
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.
{| class="wikitable"
! colspan="2" | Rodzaj pracy zegara !! rowspan="2" | Uaktywnione<br />wejścia sterujące !! rowspan="2" | Czas wyświetlania inf.<br />od momentu uaktywnienia<br />wejść sterujących
|-
! Pokazywanie !! Nastawianie
|-
| godzin, minut || || - || w sposób ciągły
|-
| sekund || || TR || po 1,25s pokazywane na przemian z godziną i minutami z częstotliwością 1Hz
|-
| miesiąca, dnia || || DR lub TR, DR || przez 1,25s
|-
| || godzin || HS lub HS, TR || czasowi uaktywnienia
|-
| || minut || MS lub MS, DR || czasowi uaktywnienia
|-
| || godzin i minut || MS, HS lub MS, HS, DR || czasowi uaktywnienia
|-
| || miesięcy || HS, DR || czasowi uaktywnienia
|-
| || dni || HS, TR, DR || czasowi uaktywnienia
|-
|}
Po włączeniu zasilania lub po ustawieniu minut, sekundy zą zerowane i liczenie zostaje wznowione po uaktywnieniu wejścia TR. Nie zaleca się stosowania następującej kombinacji operacji: (MS, TR), (MS, TR, DR), (MS, HS, TR) oraz (MS, HS, TR, DR) gdyż w tych przypadkach przy nastawieniu minut nie wstrzymywane jest liczenie sekund.
== Przerwania ==
Układ zgłasza do procesora przerwania zegaowe po ich odblokowaniu operacją "odblokuj przerwania". Przerwania są zgłaszane co 0,5s. Specyfikacja tych przerwań podawana na szyny -P-DTIN 5-7 jest równa (000). Przerwania wykorzystywane są przez system operacyjny i określają momenty generowania operacji dotyczących zegara.
== Dekoder rozkazów ==
Strob operacji pobrania -P-F po ziloczynowaniu z sygnałem -D-AD0 i jego negacją na bramkach E3-3 i E3-11 tworzy sygnały FAD0 i ~FAD0. Dodatkowo po małym opóźnieniu zrealizowanym na elementach R15, C5 generowany jest sygnał odpowiedzi -P-OK. Każda operacja pobrania skierowana do pakietu zegara kwitowana jest odpowiedzią OK.
== Rejestr operacji i układ przerwań ==

Wersja z 15:14, 1 kwi 2013

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.

Rodzaj pracy zegara Uaktywnione
wejścia sterujące
Czas wyświetlania inf.
od momentu uaktywnienia
wejść sterujących
Pokazywanie Nastawianie
godzin, minut - w sposób ciągły
sekund TR po 1,25s pokazywane na przemian z godziną i minutami z częstotliwością 1Hz
miesiąca, dnia DR lub TR, DR przez 1,25s
godzin HS lub HS, TR czasowi uaktywnienia
minut MS lub MS, DR czasowi uaktywnienia
godzin i minut MS, HS lub MS, HS, DR czasowi uaktywnienia
miesięcy HS, DR czasowi uaktywnienia
dni HS, TR, DR czasowi uaktywnienia

Po włączeniu zasilania lub po ustawieniu minut, sekundy zą zerowane i liczenie zostaje wznowione po uaktywnieniu wejścia TR. Nie zaleca się stosowania następującej kombinacji operacji: (MS, TR), (MS, TR, DR), (MS, HS, TR) oraz (MS, HS, TR, DR) gdyż w tych przypadkach przy nastawieniu minut nie wstrzymywane jest liczenie sekund.

Przerwania

Układ zgłasza do procesora przerwania zegaowe po ich odblokowaniu operacją "odblokuj przerwania". Przerwania są zgłaszane co 0,5s. Specyfikacja tych przerwań podawana na szyny -P-DTIN 5-7 jest równa (000). Przerwania wykorzystywane są przez system operacyjny i określają momenty generowania operacji dotyczących zegara.

Dekoder rozkazów

Strob operacji pobrania -P-F po ziloczynowaniu z sygnałem -D-AD0 i jego negacją na bramkach E3-3 i E3-11 tworzy sygnały FAD0 i ~FAD0. Dodatkowo po małym opóźnieniu zrealizowanym na elementach R15, C5 generowany jest sygnał odpowiedzi -P-OK. Każda operacja pobrania skierowana do pakietu zegara kwitowana jest odpowiedzią OK.

Rejestr operacji i układ przerwań