STAVOVÝ REGISTER 0  RR0
Tento register obsahuje stav prijímacieho a vysielacieho bufra,
DCD,CTS a SYNC vstupy, pamäť pre priebeh vysielania,koniec
správy a prerušenia.
D0=1 register prijímača obsahuje aspoň jeden znak
D1=1 tento bit je čitateľný iba cez kanál A. Nastavenie tohto
     bitu spósobí u oboch kanálov každá podmienka na prerušenie.
D2=1 register vysielača prázdny (okrem výstupu CRC); Tento bit
     bude nastavený pri vyprázdnení vysielacieho bufra, okrem
     toho keď v synchronnej prevádzke bude vyslaný CRC znak.
     ___                            ___
D3=1 DCD vstup=0; udáva stav vstupu DCD pri poslednej zmene
     extern/status bitu. Každá zmena logickej úrovne na DCD
     vstupe spôsobí vyvolanie externého-status prerušenia.
     Čítaniu aktuálneho stavu DCD bitu musí nasledovať priamo
     príkazu k zhodeniu externého satus interruptu.    ____
D4=1 vyhľadávací modus (HUNT-MODE) alebo úroveň vývodu SYNC ;
     Význam tohto bitu bude závislý od nastaveného druhu
     prevádzky. V asynchrónnom móde pôsobí tento bit podobne ako
     bit D3, iba stým rozdielom, že je sledovaný vstup SYNC.
     V synchrónnej prevádzke je tento bit zhodený, keď bol
     dosiahnutý synchronizacný znak. Bude nastavený prostrední-
     ctvom zvolenia vyhľadávacieho módu. (bit D4 vo WR3). Stav
     bitu D4 RR0 je pritom nazávislý od SYNC.
     ___                            ___
D5=1 CTS vstup=0; tento bit sleduje CTS. Funkcia odpovedá pritom
     bitu D3
D6=1 bude vyslané CRC slovo alebo synchronizačný znak;
     Bit svojim stavom indikuje, že pri synchrónnom prenose dat
     je bufer vysielača prvý krát prázdny. Potom bude vyslané
     slovo CRC alebo synchronizačný znak. V závislosti od
     aktuálneho stavu tohto bitu (D6=1) asleduje výroba
     extern/status interruptu, v prípade že odpovedajúce
     uvoľnené. Keď bude D6=1 a D2=0, potom bude nasledovne
     vyslaný CRC znak. Ak platí D6=d2=1, nasleduje synchr. znak.
D7=1 vyslanie ABORT- následnosť znakov  111...111 (SDLC-modus)
     tento bit je použiteľný iba v asynchrónnej prevádzke
     a v SDLC mode. V asynchrónnej prevádzke je tento bit
     nastavený, keď bolo prerušenie. Pri odpovedajúcom uvoľnení
     bude pri dosadenom bite znovu vyrobené extern/status
     prerušenie. Po opätovnom uvoľneni prerušenia (príkaz z WR0)
     zostáva D7 nastavený, až bude zosadený pauzou.
     V SDLC-mode bude bit D7 audopický pauze asynchr. modu
     prostredníctvom  sponového prerušenia (7 alebo viac jedno-
     tiek) ovplyvnený!
                     STAVOVÝ REGISTER 1  RR1
Bit D0 bude nastavený v asynchrónnom mode, keď všetky bity
vysielača budú prázdne. V synchrónnej prevádzke je D0 vždy
nastavený. Nebude však možné žiadne prerušenie.
Bity D3,D2,D1 tvoria v SDLC mode Rest-kód, ktorý platný po
nastavení formátového konca bitu (D7 v RR1), kde po rozpoznaní
Schlup flag. Bity označujú hranice datového poľa (informačného
poľa) v prípadoch kde počet datových bitov je neúplný vzhľadom
na paritnú dľžku slova. Slúžia takisto na ohraničenie dat. poľa
v CRC poli.
 ______________________________________________________________
|Flag 7EH| ADRESA | DATOVÉ POLE |1.CRC ZN. |2.CRC ZN. |FLAG 7EH|
|________|________|_____________|__________|__________|________|
  8 bit    8 bit     inf. pole
Formát dat pri SDLC prevádzke.
Príklad: Pre prijímač, ktorý má nastavený formát na 8 znakov,
majú REST kódy nasledovný význam:
 ____________________________________________
|    |    |    | Datové bity v | Datové bity |
| R2 | R1 | R0 | predposlednom | v poslednom |
|    |    |    | bajte         | bajte       |
|____|____|____|_______________|_____________|
| 1  | 0  | 0  |     3         |     0       |
| 0  | 1  | 0  |     4         |     0       |
| 1  | 1  | 0  |     5         |     0       |
| 0  | 0  | 1  |     6         |     0       |
| 1  | 0  | 1  |     7         |     0       |
| 0  | 1  | 1  |     8         |     0       |
| 1  | 1  | 1  |     8         |     1       |
| 0  | 0  | 0  |     8         |     2       |
|____|____|____|_______________|_____________|
Pri iných tvaroch možno vždy podobný prehľad vytvoriť. Výstupným
bodom pritom je REST kód, ktorý pri určení hraníc dat. poľa
a CRC poľa platí:
 ______________
| R2 | R1 | R0 |
| 0  | 1  | 1  |
|____|____|____|
Bit D4 udáva pri preskúšaní parity (zvolené cez WR4) aktívnym
aktívnym stavom (D4=1), že nastala chyba parity. Tento stav bude
zapamätaný, až príde odpovedajúce zhodenie (príkaz 6 vo WR0)
Bit D5 bude nastavený, keď boli prijaté viac ako 4 znaky, bez
toho, aby boli načítané s CPU. Tento bit bude ovplyvnený iba
vtedy, keď bude datové slovo prečítané CPU jednotkou predtým,
než bolo prepísané. Potom zostáva bit uchovaný, až bol príkaz
6 WRO prevedený. Pri odpovedajúcom uvedení nasleduje vyslanie
prerušenia prijímača vektorom pre špeciálne podmienky prijmu.
Bit D6 udáva, že pri asynchrónnej prevádzke bola spoznaná chyba
formátu. Bit nebude zapamätaný. Spoznanie chyby formátu spôsobí
vsunutie polovičného čau bitu, takže táto chyba nie je ako nový
štart bit interpretovaný. V synchrónnej prevádzke predstavuje
tento bit stretnutie CRC chyby.
D7 slúži v SDLC k oznamu, že platný koniec flagu bol prijatý
a tak isto správe chyby a REST kod môžu byť prečítané.
D0=1 všetky znaky vyslané
D1,D2,D3 vlastnosti poľa dát v SDLC mode
D4=1 chyba parity
D5=1 pretečenie registra prijímača
D6=1 chyba formátu slova (asynchrónna prevádzka) alebo CRC chyba
D7=1 prijatie ukončujúceho flagu v SDLC mode
                     STAVIVÝ REGISTER 2  RR2
Obsahuje aktuálny interrupt vektor. (kanálu B)
Tento register obsahuje v registri WR2 zapísaný interrupt vektor
keď stav vektora nemá byť ovplyvnený. (D0=0 vo WR1)
Ak je tento riadiaci bit nastavený, obsahuje register RR2 v
okamihu čítania presne ten vektor, ktorý pri prerušení obvod SIO
dodá. Ak sa nepredpokladá v takomto prípade žiadna požiadavka na
prerušenia, platia V3=0, V2=1 a V1=1. Tento register je prirade-
ný iba kanálu B a iba cez tento kanál ho možno čítať.
                 SIO A JEHO ZÁKLADNÉ VLASTNOSTI
-napájacie napätie 5V
-jednofázové systémové hodiny (5V)
-dva nezávislé, plne duplexne pracujúce kanály
-prenosová rýchlosť až 550 Kbit/s
-datový register prijímača 4 miestny (4 znaky)
-datový register vysielača 2 bajtový
-asynchrónna prevádzka:-5,6,7 alebo 8 bitov na znak
                       -1,1 1/2,2 stop bity
                       -párna,nepárna alebo potlačená parita
                       -rozpoznanie a výroba prerušenia
                       -rozpoznanie chyby parity, pretečenia
                        a tvaru
-bajtovo orientované synchrónne mody
-vnútorná alebo externá synchronizácia
-jeden alebo dva synchronizačné znaky v oddelených registroch
-automatické zavedenie druhu synchronizácie
-CRC výroba a testovanie
-bitovo orientovaný synchrónny mód:
 SDLC alebo IBM SDLC procedúry
 automatické nulovanie
 automatické riadenie flagov
 rozpoznanie adresového poľa
 výroba v následných prerušení a rozpoznaie
 ochrana platných prijatých dat pred prepísaním
 CRC výroba a testovanie
-modemové riadiace signály (na kanál dva vstupy a dva výstupy)
-pre CRC vyšetrenie sú CRC-16 a CRC-CCITT spôsoby implementované
-rozdelenie prerušení prostredníctvom reťazovej logiky
-automatická výroba interrupt vektora (v závislosti od vyvola-
 ných udalostí)
-TTL kompatabilné všetky vstupy a výstupy
SIO poskytuje obsiahle možnosti požiadaviek na prerušenie
a umožňuje rýchle reakcie na prerušenia. Register WR2 a RR2
kanálu B obsahujú Interrupt vektor, ktorý v spojení s I regist.
CPU ukazuje na bod v pamäti, kde je začiatok interrupt programu.
Prerušenie od SIO možno vyrobiť na základe rôznych podmienok,
ktoré však musia byť naprogramované. Tým je vylúčené aby CPU
muselo pred prevedením Interrupt programu testovať stavové slovo
SIO môže dodať 8 róznych Interrupt vektorov. Bit D2 registra WR1
kanálu B ukazuje, či stav vektora bude menený. Keď tento bit bol
nastavený, bude vektor vo WR2 odpovedajúci danej priorite
modifikovaný danými interrupt podmienkami.
Hlavnými príčinami prerušenia sú prijímač ,vysielač,
externé/stavové prerušenie. Každé z týchto prerušení musí byť
uvoľnené programovaním, pričom kanál A má vyššiu prioritu ako B
Rozdelenie priority:
I  preruš.   preruš.   preruš.   preruš.   preruš.   preruš.  I
E  prijím.   vysiel.   stavové   prijím.   vysiel.   stavové  E
I  _______   _______   _______   _______   _______   _______  O
*-|IEI IEO|-|IEI IEO|-|IEI IEO|-|IEI IEO|-|IEI IEO|-|IEI IEO|-*
  |_______| |_______| |_______| |_______| |_______| |_______|
  najvyššia                                         najnižšia
  priorita                                          priorita
  <---------- kanál A -------->|<-------- kanál B ---------->
Keď vysielač bude mať uvoľnené prerušenia, tak ho vyrobí vtedy,
ak register vysielača bude prázdny. To znamená, že v ňom musel
byť aspoň jeden znak, aby v čase programovania nebolo vyrobené
prerušenie.
Prijímač môže za splnenia podmienky prerušenia vyvolať
prerušenie pri:
a) prvom prijatom znaku
b) pri každom prijatom znaku
c) špeciálnych podmienkach príjmu
Posledné prerušenie je možné iba vtedy, ak boli uvoľnené obe
predošlé prerušenia. Prerušenie pri prvom prijatom znaku sa
najčastejšie používa pri blokovom prenose dat.
Prerušenie pri každom prijatom znaku dáva možnosť modifikovať
interrupt vektor pri objavení chyby parity.
Prerušenie pri špeciálnych podmienkach príjmu možno vyvolať napr
pri pretečení prijímača, formátovaní koncov pri SDLC-móde.
Externý/stavový interrupt slúži hlavne na zabezpečenie, kontrolu
signálových prechodov vývodov CTS, DCD, SYNC. Okrem toho možno
toto prerušenie vyvolať pri prázdnom vysielači alebo pri rozpoz-
naní prerušenia (pri asynchrónnom režime).
Toto prerušenie možno vyvolať ako na začiatku, tak i na konci
príčiny, ktorá ho vyvolala. To umožňuje usporiadaný prenos správ
Pri blokovom prenose dat možno riadenou funkciou ako od CPU, tak
aj od DMA kontrolu previesť. Pri prenose budú WAIT-READY výstupy
spojené s WAIT-READY bitmi zápis. registra WR1.
WAIT-READY výstup možno programom definovať ako READY vodič pri
riadení cez DMA.
READY výstup SIO hovorí, že SIO je pripravený na prenos dat
z alebo do pamäti. Naproti tomu výstup WAIT hovorí,že pre prenos
dat ešte nie je pripravený a CPU musí vložiť, resp. predlžovať
vstupný, resp. výstupný cyklus.
Pri programovaní SIO je nutné nastaviť základný spósob prevádzky
a špecialne podmienky zvoleného módu. Ešte predtým, než budú
zapísané ostatné parametre, musí sa špecifikovať register WR4,
lebo význam ostatných parametrov je od toho závislý.
Pre každý kanál je určených 8 zápisových registrov. SIO sa
adresuje 4 adresami (vstupy B/A a C/D)
Všetky zápisové registre až na WR0 používajú 2 bajty na progra-
movanie.Nižšie tri bity prvého bajtu špecifikujú adresu registra
do ktorého bude zapísané nasledujúce riadiace slovo.
Výnimku tvorí len register WR0. Signálom RESET, vnútorne, alebo
vonkajšie vyvolaným, sa inicializuje obvod SIO k prístupu na
register WR0. Všetky základné príkazy a CRC riadenie možno
1 bajtom v spojení s registrom WR0 urobiť. V podstate prístup ku
registrom WR1-WR7 je prostredníctvom adresovania s WR0.
Ak register WR0 má ostať bez zmeny, dosadzujú sa za bity
D7-D3 nuly  (nulový kód)
                           VYSIELANIE
Inicializácia:priradenie spôsobu prevádzky vysielača je žiadúce
dosiahnúť programovaním. Inicializácia obsahuje tieto parametre:
a) párna, alebo nepárna parita, alebo bez parity
b) x1 takt modus
c) 8 bitový, alebo 16 bitový synchronizačný znak
d) CRC polynóm
e) uvoľnenie vysielania      ___
f) požiadavka na vysielanie (RTS)  ___
g) datový terminál pripravený     (DTR)
h) mód prerušenia
i) dľžka vysielaného znaku
Pri tejto inicializácii treba dať pozor, aby boli najprv špeci-
fikované parametre registra WR4 a až potom sa môžu naplniť
riadiacimi príkazmi ostatné registre.
V synchrónnej prevádzke môžu byť zvolené dva polynómy a to:
CRC16 (x^16+x^15+x^2+1) alebo CRC-CCITT (x^16+x^12+x^5+1)
V oboch prípadoch (SDLC mód nezvolený) budú CRC generátor a CRC
skúšač vynulovaný.Pri inicializácii vysielača bude CRC generátor
vykonaním príkazu "vynuluj CRC generátor vysielača" (register
WR0) inicializovaný. Ako vysielač tak i prijímač používajú ten
samý polynom. K prenosu dat možno zvoliť uvoľnenie prerušenia
vysielača, alebo WAIT/READY uvoľnenie. Modus extern/status
interrupt bude použitý, aby tak ako stav CTS vstupu tak aj pamäť
pre SENDEUNTERLAUF/NACHRICHTENDE zabezpečená. Vzniká tak možnosť
pomocou samočinného uvoľnenia vysielača dosiahnuť prerušenie ak
CTS je aktívny. Prvý datový prenos ku SIO môže nasledovať, keď
nastúpi extern/status interrupt (CTS starý bit je nastavený),
alebo bezprostredne príkazom uvoľnenia vysielača, keď je modus
samočinného uvoľnenia nastavený. Výstup dat vysielača bude spus-
tený, a síce po zhodení, alebo keď vysielač nie je uvoľnený.
Prerušenie možno vytvoriť aj programovo, keď je bit prerušenia
vysielača nastavený. Keď je vysielač úplne nastavený a uvoľnený,
je to iba základná situácia aby boli vyslané 8 alebo 16 bitové
synchronizačné znaky.
                           PRENOS DAT
keď je uvoľňovací bit pre prerušenie vysielania(WR1,D1)nastavený
prerušenie bude vždy vyrobené, keď vysielací bufer bude prázdny.
Na to možno reagovať buď zapísaním ďaľšieho znaku do vysielača,
alebo prijímačovú pamäť pre prerušenie vysielania odpovedajúcim
nulovacím príkazom nulovať (WR0 , príkaz 5). Keď bude prerušenie
kvitované týmto príkazom a žiadne ďaľšie znaky nebudú do vysie-
lača zapísané, nemožno ďaľšie prerušenie vyvolať na základe
prázdneho buferu vysielača, ale iba následkom vyprázdnenia
prerušenie možno vyvolať. Tento spósob sa nazýva SENDEUNTERLAUF.
Na zachovanie synchronizácie budú vkladané v BI-SYNC prevádzke
pri výskyte SENDUNTERLAUF (vysielané ďaľšie znaky k použitiu)
plniace znaky do datového prúdu. Obvod SIO má dve možnosti:
Môže uložiť buď synchronizačné znaky, alebo vyšle naposledy ge-
nerovaný CRC znak, nasledujúci po synchronizačnom znaku.
Voľba sa deje riadením príkazom "zaraď SENDER./NAUCHRICHTENDE"
(register RR0, D6) bude nastavený, potom nasleduje automatické
vloženie synchronizačných znakov, keď nie sú k dispozícii žiadne
data. Pri tomto automatickom vkladaní synchronizačných znakov
nebude CRC slovo spočítané. Keď CPU objaví koniec správy, možno
príkazom zhodiť stavový bit SENDERUNTERLAUF/NACHRICHTENDE. To
povolí vysielaču vyslať CRC, keď žiadne data nie sú k dispozícii
SIO vysiela v tomto prípade CRC, nasledujúce po synchronizačných
znakoch, aby správu uzavrelo. Keď bude opätovne nastavené, tak
po prvom naplnenom znaku bude vyslané 16 bitové CRC slovo
a nasledujúci synchronizačný znak, keď vysielač po prvý raz namá
data k vysielaniu. Pre SENDERUNTERLAUF bude vurobený
extern/status interrupt, keď bit SENDERUNTERLAUF/NACHRICHTENDE
bude nastavený. V prípade vloženia synchronizačných znakov sa
prerušenie vyrobí, ale iba po prvom vloženom synchronizačnom
znaku. Stav indikuje, že bity pre SEND./NACH. a prázdny bufer sú
nastavené. V prípade uloženia CRC je bit S/N nastavený, a bit
"sende bufer prázdny" je zhodený, zatiaľ čo CRC bude vyslané.
Keď CRC bolo úplne vyslané, je stavový bit "bufer vysielača
prázdny" nastavený a jednotka CPU je prostredníctvom prerušenia
oboznamené, že môže zaslať ďaľšiu správu. Keď žiadne ďaľšie
správy niesúna vysielanie, možno program prenosu zhodením RTS
a zablokovaním vysielača (WR5, D3) ukončiť.Ak majú byť vysielané
plné znaky, možno to dosiahnúť,keď CPU nastaví do módu 8 bitov.
a FFH vloži do bufru vysielača,  zatiaľ  čo  CRC  bude  vyslané.