Zegar systemowy, cykl rozkazowy

Mikrokomputer 8048 zawiera wewnątrz układu generator, który po dołączeniu zewnętrznego rezonatora do wejść XTAL wytwarza sygnał zegarowy, taktujący układ sterowania. Rezonator zewnętrzny określa częstotliwość sygnału zegarowego, która powinna być nie mniejsza niż 1 MHz i nie większa niż 6,8 lub 11 MHz - w zależności od wykonania i producenta układu. Może być użyty dowolny rezonator, np. ceramiczny. Tylko w przypadku, gdy w danym zastosowaniu jest wymagana duża dokładność częstotliwości zegara, należy użyć rezonatora kwarcowego. Na rysunku pokazano zalecany sposób dołączania rezonatorów:
Jest też możliwe wykorzystanie zewnętrznego sygnału zegarowego o częstotliwości takiej jak poprzednio. Zewnętrzny sygnał zegarowy dołącza się do wejść XTAL w sposób pokazany na rys. powyżej. Niezbędne jest w tym układzie zastosowanie bramek z otwartym kolektorem i oporników podciągających. Wynika to z faktu, że wymagany poziom stanu wysokiego na wejściach XTAL jest większy niż minimalny, gwarantowany w standardzie TTL.

Każdy cykl maszynowy (ang. machine cycle) jest wykonywany w czasie równym 15 taktom zegara. Cykl dzieli się na pięć stanów (ang. states) - po 3 takty każdy. W jednym stanie są wykonywane określone elementarne operacje. W stanie S1 z pamięci programu (z komórki o adresie zawartym w liczniku rozkazów) jest pobierany kod rozkazu (ang. instruction code fetch). W stanie S2 następuje jego zdekodowanie oraz zwiększenie o 1 zawartości licznika rozkazów. W stanach od S3 do S5 wykonują się operacje wynikające z treści rozkazu.

Na wyjściu licznika stanów (ang. state counter), który dzieli przez 3 częstotliwość zegara systemowego, powstaje sygnał zegarowy CLK wyznaczający stany cyklu. Może być on wyprowadzony na zewnątrz mikrokomputera. Dokonuje się tego programowo, za pomocą rozkazu ENTO CLK, którego wykonanie powoduje dołączenie sygnału CLK do końcówki T0 układu. Odłączenie zegara CLK od wyjścia T0 następuje tylko w wyniku wyzerowania systemu. Poza tym, na wyjście ALE jest wysyłany sygnał wyznaczający cykle maszynowe, powstający na wyjściu licznika cykli (ang. cycle counter). Sygnał ten, o częstotliwości 5 razy mniejszej niż CLK, może być użyty jako sygnał zegarowy oraz pełni funkcję sygnału sterującego - strobu adresu. Parametry sygnałów CLK i ALE dla typowych częstotliwości zegara systemowego (rezonatora) podano w tablicy: TABKICA 2.1. Na cykl rozkazowy (ang. instruction cycle) składają się jeden lub dwa cykle maszynowe. W dwóch cyklach maszynowych są wykonywane wszystkie rozkazy dwubajtowe (z argumentem lub adresem bezpośrednim) oraz te jednobajtowe, przy wykonaniu których następuje przesłanie danych do lub z zewnętrznej pamięci danych, pamięci programu lub portu.

Należy tu zwrócić uwagę na różne sprawy. Po pierwsze, zwiększenie o 1 zawartości licznika z układu czasowo- licznikowego (jeżeli licznik był uruchomiony) nastąpi w stanie S4 tylko pierwszego cyklu maszynowego w cyklu rozkazowym. Po drugie, w drugim cyklu maszynowym rozkazów skoku, po pobraniu adresu nie zwiększy się licznik rozkazów.

Podczas wykonywania cykli maszynowych są generowane sygnały sterujące do współpracy mikrokomputera z zewnętrznymi układami pamięci i wejścia -wyjścia. Oto one:

ALE - sygnał zegarowy wysyłany w każdym cyklu maszynowy jest on strobem adresu podanego na port
BUS - przy każdym odczytywaniu z zewnętrznej pamięci programu oraz przy komunikacji z zewnętrzną pamięcią danych (w czasie wykonywania rozkazów:
MOV A, @Ri i MOV @Ri, A) w obu przypadkach adres jest obecny na porcie BUS w chwili opadającego zbocza sygnału ALE i dotyczy przesłania wykonywanego w następnym cyklu maszynowym;
/PSEN - sygnał odczytywania z zewnętrznej pamięci programu; jest on wytwarzany przy każdym pobraniu z tej pamięci kodu rozkazu lub argumentu;
/RD, /WR - sygnały odczytywania, zapisywania do zewnętrznej pamięci danych; są one wytwarzane podczas wykonywania rozkazów:
MOV A, @Ri i MOV @Ri, A, a także rozkazów:
INS A, BUS i OUTL BUS, A
PROG - sygnał do komunikacji z portami ekspandera 8243, wytwarzany w czasie wykonywania rozkazów:
MOVD A, Pp, MOVD Pp, A, ANLD Pp, A i ORLD Pp, A.

Powrót