Zegar czasu rzeczywistego Amepolu
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).
- (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.
- (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".
- (0x0xxx) - zeruj bit MS.
- (0xx0xx) - ustaw bit DR (odczyt daty).
- (0xx1xx) - zeruj bit DR.
- (0xxx0x) - ustaw bit TR (odczyt czasu).
- (0xxx1x) - zeruj bit TR.
- (0xxxx1) - odblokuj przerwania zegarowe. Przerwania generowane są co 0,5 s.
- (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.