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.
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.