Pri prevádzke 3 (bitový vstup/výstup) sa týmto riadiacim slovom
určuje ešte:
a) generovanie prerušenia signálom 1 alebo 0 na vodiči
b) generovanie prerušenia cez logický súčin alebo logický súčet
spojenia signálov
c) maskovacie prerušenie schopných vodičov
D7 D6 D5 D4 D3 D2 D1 D0
________________________________
|INT|UND/| | | | | | |
|EI |ODER|0/1|MA | 0 | 1 | 1 | 1 |
|___|____|___|___|___|___|___|___|
_____ __________________________________________________
|D6|D5| | D4| |
|__|__|_____________________________|___|________________|
|0 |0 | logický súčet so signálom 0 | 0 - bez maskovania |
|0 |1 | logický súčet so signálom 1 | 1 - s maskovaním |
|1 |0 | logický súčin so signálom 0 | |
|1 |1 | logický súčin so signálom 1 | |
|__|__|_____________________________|____________________|
Ak je D4=MA=1 musí sa za týmto riadiacim slovom prerušenia
vyslať ešte maskovacie riadiacie slovo
D7 D6 D5 D4 D3 D2 D1 D0
_______________________
|MB|MB|MB|MB|MB|MB|MB|MB| MB 0 - maskovací bit bude určený
|__|__|__|__|__|__|__|__| ku generovaniu prerušenia
1 - maskovací bit nebude určený
ku získaniu prerušenia INICIALIZÁCIA PIO
prevedie sa vtedy, ak je pripojené napájacie napátie a ak sa
pripojí sigmál M1 bez pohotovosti signálov RD alebo IORQ.
(s nástupnou hranou nasleduje inicializácia)
Inicializácia spósobí:
a) zbernice portov budú v treťom stave; READY výstupy dávajú 0
b) výstupný register bude zhodený
c) maskovací register bude zhodený
d) INTERRUPT klopný obvod FF bude zhodený
(generovanie prerušenia bude zablokované)
e) INTERRUPT vektor register nebude anulovaný !!!
PREVÁDZKA 0 (výstup bajtu)
Časový priebeh:
1) Signálom WR CPU zapíše výstupné data, ktoré sú na datovej
zbernici do výstupného registra a zostupnou hranou hodín sa
vytvorí signál RDY, ktorým PIO oznámi periférii platnosť dát.
2) Od periférie prišlý strobovací STB signál slúži ako signál
potvrdenia, že periféria prevzala výstupné slovo. Signál STB
trvá počas signálu RDY, jeho nástupnou hranou nastáva
generovanie signálu INT a zhodenie signálu RDY.
PREVÁDZKA 1 (vstup bajtu)
1) Data, ktoré sú na vstupe portu budú signálom STB od periférie
zapísané do vstupného registra.
2) Nástupnou hranou STB sa vytvorí signál RDY1,ktorým periféria
oznamuje, že nemôže vyslať ďaľšie slovo. Paralelne s týmto
nastane vyvolanie prerušenia INT a pomocou obslužného progr.
sa toto slovo prečíta procesorom signálom RD.
3) Nástupnou hranou signálu RD sa zhodí signál RDY1, čím PIO
oznamuje, že je schopný prijať ďaľšie data.
PREVÁDZKA 2 (vstup aj výstup bajtu)
Ako riadiace signály pre výstup slúžia A STB a A RDY a pre
výstup B STB a B RDY
PREVÁDZKA 3 (bitový vstup/výstup)
Zmeny dát vyvolajú prerušenie, odpovedajúce maske, úrovni
a logickému spojeniu. Vytvorením signálu RD nasleduje zápis dat
ležiacich na zbernici. Pri výstupe bitov bude vyslaný obsah
registra OUT. Výstup sa deje ako pri prevádzke 0, avšak bez
vplyvu vodičov STB a RDY.
Z80 - CTC
___________
D0 <--->| 25 23 |<---- CLK/TRG0
D1 <--->| 26 22 |<---- CLK/TRG1
D2 <--->| 27 21 |<---- CLK/TRG2
D3 <--->| 28 20 |<---- CLK/TRG3
D4 <--->| 1 7 |----> ZC/TO0
D5 <--->| 2 8 |----> ZC/TO1
D6 <--->| 3 9 |----> ZC/TO2
D7 <--->| 4 | __
__ | 16 |<---- CE
RD ---->| 6 19 |<---- CS0
____ | 18 |<---- CS1
IORQ --->| 10 | _____
IEI <----| 11 17 |<---- RESET
___ | 15 |<---- o
IEO ---->| 13 24 |<---- + 5V
___ | 5 |<---- GND
INT <----| 12 |
__ | |
M1 ---->| 14 |
| U857D |
|___________|D0-D7 - datové vstupy-výstupy ; trojstavové
__
RD - signál vyslaný priamo od CPU 1-cyklus zápisu
____ 0-cyklus čítania
IORQ - požiadavka na spoluprácu s vstupno-výstupným obvodom.
Tento signál vzniká ako následok použitia ištrukcie
OUT, IN priamo od CPU.
IEI - Interrupt-Enable-In : tento signál nachádza uplatnenie
v spojení s určovaním priority prerušenia.
IEO - Interrupt-Enable-Out : rovnako ako IEI
___
INT - požiadavka na prerušenie
__
M1 - M1 - cyklus ; prichádza priamo od CPU a synchronizuje
vnútorný beh.
CLK/TRG- taktovací,resp. spúšťací vstup; externý taktovací vstup
pre režim "čítač"(kmitočet nex o/2)alebo spúšťací vstup
pri externom spustení časovača (šírka impulzu >=100 ns)
ZC/TO - prechod nulou ; výstupný signál aktívny v nule, dľžka
impulzu 1 takt. perioda. Prepojením výstupu so vstupom
nasledujúceho čítača možno zväčšiť kapacitu čítača
__ respektíve časovača.
CE - výber (select) čipu
CS0-1 - voľba kanálu
_____
RESET - inicializácia čipu ________
|register| _______
|vektorov| | |
|preruš. |<==||==>|kanál 3|
|________| || |_______|<--- CLK/TRG 3
________ ||
|interná | || _______
|riadiaca| || | |---> ZC/TO 2
|logika |<==||==>|kanál 2|
|________| || |_______|<--- CLK/TRG 2
_________ ||
D0-D8 |budič | || _______
<=====>|zosilovač| vnútorná || | |---> ZC/TO 1
|zbernice |<============||==>|kanál 1|
======>|_________| zbernica || |_______|<--- CLK/TRG 1
riadenie 6 bit ________ ||
|logika | || _______
|riadiaca| || | |---> ZC/TO 0
<=================|preruš. |<==||==>|kanál 0|
3 bit |________| |_______|<--- CLK/TRG 0 ______________ ________
| | | |
takt o | 8 bitový | | vratný |------> ZC/TO
------->| delič |---->| čítač |
| 16 alebo 256 | | 8 bit |<----- CLK/TRG
|______________| |________|
^ || /\
vnútorná | || ||
===============================|| ||
zberinica || | || ||
_____\/__|_ __\/__||_
| riadiaci | |register | (jeden kanál)
| register | |konštanty|
| kanálu | | 8 bit |
| 8 bit | |_________|
|___________|Obsahuje 4 nezávislé programovateľné čítače s taktovacím vstupom
CLK/TRG a výstupom ZC/TO. Každý kanál obsahuje 8-stupňový spätný
čítač; 8-stupňový delič; riadiaci register a 8-stupňový register
konštanty. CTC je pripojený na datovú zbernicu a riadiacimi
signálmi M1,IORQ,RD je spojený s CPU a taktovaný hodinami
systému o. Každý čítač môže pracovať v dvoch režimoch:
a) čítač
b) časovač
V režime ČÍTAČ sa bude čítač vyprázdňovať nábežnou alebo
zostupnou hranou externého signálu privedeného na vstup CLK.
Vstupný signál je synchronizovaný nábežnou hranou hodinového
signálu o. Pri prechode čítača cez nulu sa na výstupe ZC objaví
impulz úrovne H. Potom čítač sa znovu začne vyprázdňovať od
hodnoty, nastavenej v registri konštanty. V okamihu prechodu
čítača cez nulu možno vyvolať požiadavku na prerušenie ak
programovaním CTC a stav prioritného reťazca pre daný kanál je
odblokovaný vstup pre prerušenie. Vnútri CTC majú vyššiu priori-
tu kanály s nižším číslom.
V režime ČASOVAČ je čítač kanálu vyprázdňovaný hodinami o,pričom
tieto sú delené buď 16-timi alebo 256-timi. Spustenie časovača
nastáva nástupnou, alebo zostupnou hranou externého TRG signálu.
Nulový stav čítača je oznámený na výstupe TO (mimo čítača kanálu
3) alebo ako požiadavka na prerušenie sa vyhodnotí.
Aktuálny stav čítača všetkých štyroch kanálov u oboch registrov
možno zistiť prostredníctvom CPU v ľubovoľnom čase.
Výstupné operácie smerom k CTC sú obmedzené iba na programovanie
a stopnutie, prípadne štartnutie čítača.
Vektor prerušenia pre všetky štyri kanály je daný 5-timi
najvyššími bitmi v kanáli 0. Bit B0 musí byť nulový (B0=0)
Interrupt vektory pre jednotlivé kanály sú rozlíšené bitmi B1,B2
Riadiace slovo ( B0=1 ) slúži na zvolenie režimu a funkcie pre
každý kanál.
VÝZNAM JEDNOTLIVÝCH BITOV RIADIACEHO SLOVA
B7 - 0 blokovanie prerušenia
- 1 uvoľnenie prerušenia
B6 - 0 režim Casovač
- 1 režim čítač
B5 - 0 deliteľ 16 hodín systému o v prevádzke časovač
- 1 deliteľ 256 hodín systému 0 v prevádzke časovač
B4 - 0 zostupná hrana dekrementuje čítač, prípadne štartuje
časovač
- 1 nábežná hrana dekrementuje čítač, prípadne štartuje
časovač
B3 - 0 štart časovača programove po riadiacom slove
v nasledujúcom strojovom cykle pri B2=0 alebo
po konštante pri B2=1
- 1 štart časovača po strojovom cykle, v ktorom príde
spúšťacia hrana externého signálu (B2=0) ; po naplnení
čas. konštantou (B2=1)
B2 - 0 za riadiacim slovom neprichádza nová konštanta
(stará zostáva platná)
- 1 za riadiacim cyklom prichádza nová konštanta
B1 - 0 bežiace odpočítavanie nebude riadiacim slovom prerušené
- 1 bežiace odpočítavanie bude stopnuté. Kanálu prislúchajúci
výstup ZC/TO bude neaktívny, kanál nebude generovať
prerušenie. Kanál bude neaktívny až do dodania novej
časovej konšanty.
B0 - 0 interrupt vektor
- 1 riadiace slovo
_____
Signálom RESET možno počiatočný stav CTC kedykoľvek nastaviť.VRATNÝ ČÍTAČ - naplní sa hodnotou registra konštanty
a dekrementuje vnútorný alebo vonkajším signálom. Pri dosiahnutí
nuly generuje výstupný signál, generuje prerušenie a opätovne sa
naplní hodnotou časovej konštanty. V režime čítač možno v ľubo-
voľnom čase zistiť čítaním z CPU stav čítača
RIADIACI REGISTER - naplní sa slovom z CPU
INTERRUPT VEKTOR REGISTER - 5-bitový register k uchovaniu nižšej
časti vektora, ktorý dopľňa v móde IM2 CPU obsah registra I CPU
na 16-bitovú adresu.
RIADIACA LOGIKA PRERUŠENIA obstaráva riadenie priority.
Kanál 0 má najvyššiu prioritu, so vzrastajúcim číslom kanálu
priorita klesá.
PROGRAMOVANIE KANÁLOV
___________________
| CS1 | CS0 | kanál |
| A1 | A0 | |
|_____|_____|_______|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 2 |
| 1 | 1 | 3 |
|_____|_____|_______|
Obsah Interrupt vektora + I registra vytvorí 16-bitovú adresu
ktorá slúži ako ukazovateľ pre tabuľku, v ktorej ležia príslušné
obslužné rutiny prerušenia.
Kanál vyvolávajúci prerušenie vytvára a na datovú zbernicu
(D1-D2) dodáva číslo kanálu
Riadiace slovo pre časovú konštantu musí nasledovať za riadiacim
slovom,v ktorom je bit2=0. Časová konštanta 00 je interpretovaná
ako 256.
INICIALIZÁCIA CTC
signálom RESET nastane:
a) prerušenie počítania u všetkých kanálov
b) zablokovanie prerušení u všetkých kanalov
c) výstupy INT, ZC/TO0 až ZC/TO2 budú neaktívne
d) všetky ostatné výstupy budú v treťom stave
Pomocou zápisného cyklu budú zapísané do CTC vektor prerušenia,
riadiace slovo a časová konštanta. Pomocou čítacieho cyklu možno
zistiť okamžitý stav čítača, ktorý odpovedá nábežnej hrane taktu