Z80 SIO

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Z80 SIO/0 Z80 SIO (Z80 Serial Input/Output) je integrovaný obvod z rodiny procesoru Z80. Jedná se obvod poskytující dvě sériové brány (označované jako brána A a brána B). Protože se jedná obvod z rodiny procesoru Z80, umožňuje plně využívat možnosti přerušovacího systému procesoru Z80. Podobný obvod v rodině procesoru Intel je obvod Intel 8251.

Obvod je použit např. společně s obvody WD2797, Z80 CTC a Z80 PIO v univerzální I/O kartě EXIO k počítačům Sharp. +more Může také být základem interface MIDI.

...

Varianty obvodu

Obvod existuje v několika provedeních, Z80 SIO/0, Z80 SIO/1 a Z80 SIO/2 jsou provedeny ve 40pinovém pouzdru DIP, Z80 SIO/3 ve 44pinovém pouzdru QFP a Z80 SIO/4 ve 44pinovém pouzdru PLCC.

Existence tří variant obvodu v pouzdru DIP je způsobena nedostatečným počtem pinů v těchto pouzdrech, tyto varianty se tak vzájemně liší tím, které signály brány B jsou vyvedeny: * Z80 SIO/0 má vyvedeny všechny signály brány B s tím, že signály /TxCB a /RxCB sdílejí stejný pin, * Z80 SIO/1 nemá vyveden signál /DTRB, * Z80 SIO/2 nemá vyveden signál /SYNCB.

Režimy sériových bran

Brány mohou pracovat v následujících režimech: * režim pollingu, * režim přenosu řízený přerušením, * blokový režim přenosu.

Specifikace sériového přenosu

vstupy a výstupy v logice TTL, * duplexní přenos, * 5, 6, 7 nebo 8 bitů na znak, * 1, 1,5, nebo 2 stop bity, * sudá, lichá, nebo žádná parita.

Konfigurace obvodu

Obvod je možné konfigurovat pomocí osmi registrů pro zápis a stav obvodu může být čten pomocí tří registrů pro čtení.

registrvýznam
WR0Základní příkazy
WR1Nastavení generování přerušení a signálu Wait/Ready
WR2Vektor přerušení (tento registr je přístupný pouze při konfiguraci kanálu B)
WR3Řízení příjmu
WR4Nastavení vlastností přenosu
WR5Nastavení vysílání
WR6Nastavení synchronizačního znaku, resp. +more adresy pro režim SDLC
WR7Nastavení synchronizačního znaku, resp. adresy pro režim SDLC
.

registrvýznam
RR0Příznaky stavu příjmu a vysílání
RR1Příznaky stavu příjmu a vysílání
RR2Vektor přerušení (tento registr je přístupný pouze při konfiguraci kanálu B)

Kromě zápisu do registru WR0 je zápis do registrů prováděn zápisem dvou po jdoucích bajtů, kdy první bajt obsahuje číslo registru, pro který je určen následující bajt. Stejným způsobem jsou vybírány registry pro čtení. +more Pokud neproběhne výběr registru pro čtení, je čten registr RR0.

Registr WR0
bit76543210
bitreset CRC: 00 - žádný příkaz 01 - reset výpočtu CRC příchozích dat 10 - reset výpočtu CRC odchozích dat 11 - reset příznaku podtečení při vysíláníreset CRC: 00 - žádný příkaz 01 - reset výpočtu CRC příchozích dat 10 - reset výpočtu CRC odchozích dat 11 - reset příznaku podtečení při vysílánípříkaz pro provedení: 000 - žádný příkaz 001 - ukončení vysílání (pouze v režimu SDLC) 010 - reset příznaku přerušení 011 - reset kanálu 100 - povolení generování přerušení při dalším přijatém znaku 101 - reset generování přerušení při prázdném odesílacím bufferu 110 - reset příznaku chyby 111 - návrat z přerušenípříkaz pro provedení: 000 - žádný příkaz 001 - ukončení vysílání (pouze v režimu SDLC) 010 - reset příznaku přerušení 011 - reset kanálu 100 - povolení generování přerušení při dalším přijatém znaku 101 - reset generování přerušení při prázdném odesílacím bufferu 110 - reset příznaku chyby 111 - návrat z přerušenípříkaz pro provedení: 000 - žádný příkaz 001 - ukončení vysílání (pouze v režimu SDLC) 010 - reset příznaku přerušení 011 - reset kanálu 100 - povolení generování přerušení při dalším přijatém znaku 101 - reset generování přerušení při prázdném odesílacím bufferu 110 - reset příznaku chyby 111 - návrat z přerušeníčíslo registru se kterým bude prováděna následující operace zápisu nebo čteníčíslo registru se kterým bude prováděna následující operace zápisu nebo čteníčíslo registru se kterým bude prováděna následující operace zápisu nebo čtení

Registr WR1
bit76543210
bitpovolení signálů Wait/Readypřepínání režimu Wait/Ready: 0 - Wait 1 - Ready0 - Wait/Ready funguje pro odesílání 1 - Wait/Ready funguje pro přijímánínastavení generování přerušení při vysílání: 00 - zakázáno 01 - pro první příchozí znak 10 - pro jakýkoliv příchozí znak, chyba parity je speciální podmínka při příjmu 11 - pro jakýkoliv příchozí znak, chyba parity není speciální podmínka při příjmunastavení generování přerušení při vysílání: 00 - zakázáno 01 - pro první příchozí znak 10 - pro jakýkoliv příchozí znak, chyba parity je speciální podmínka při příjmu 11 - pro jakýkoliv příchozí znak, chyba parity není speciální podmínka při příjmuproměnný vektor přerušení podle události, která přerušení vyvolala (bit je přístupný pouze při konfiguraci kanálu B)povolení generování přerušení při prázdném odchozím bufferupovolení generování přerušení stavem vnějšího zařízení (signály /CDC, /CTS, /SYNC) nebo při vysílání CRC nebo synchronizačního znaku

Registr WR2
bit76543210
bitvektor přerušenívektor přerušenívektor přerušenívektor přerušenívektor přerušenívektor přerušenívektor přerušenívektor přerušení

Registr WR3
bit76543210
bitpočet bitů na znak při příjmu: 00 - 5 10 - 6 01 - 7 11 - 8počet bitů na znak při příjmu: 00 - 5 10 - 6 01 - 7 11 - 8automatické spuštění odesílání a příjmu při aktivních signálech /DCD a /CTSvstup do režimu Huntpovolení výpočtu CRC příchozích datpotlačení příjmu zpráv, které neobsahují adresu definovanou registrem WR6 (pro režim SDLC)potlačení příjmu příchozího synchronizačního znakupovolení příjmu

Registr WR4
bit76543210
bitnastavení časování (TxC, RxC) vůči rychlosti přenosu dat (TxD, RxD) 00 - xC = xD x 1 01 - xC = xD x 16 10 - xC = xD x 32 11 - xC = xD x 64nastavení časování (TxC, RxC) vůči rychlosti přenosu dat (TxD, RxD) 00 - xC = xD x 1 01 - xC = xD x 16 10 - xC = xD x 32 11 - xC = xD x 64nastavení synchronizace 00 - 8bitový synchronizační znak 01 - 16bitový synchronizační znak 10 - režim SDLC 11 - externí synchronizacenastavení synchronizace 00 - 8bitový synchronizační znak 01 - 16bitový synchronizační znak 10 - režim SDLC 11 - externí synchronizacenastavení stop bitu 00 - synchronní režim 01 - 1 stop bit 10 - 1 1/2 stop bitu 11 - 2 stop bitynastavení stop bitu 00 - synchronní režim 01 - 1 stop bit 10 - 1 1/2 stop bitu 11 - 2 stop bitynastavení parity (0 - lichá, 1 - sudá)zapnutí vysílání a příjmu paritního bitu

Registr WR5
bit76543210
bitsignál DTRpočet bitů znaku odesílaných do vysílacího bufferu 00 - 5 a méně 01 - 6 10 - 7 11 - 8počet bitů znaku odesílaných do vysílacího bufferu 00 - 5 a méně 01 - 6 10 - 7 11 - 8signál přerušení vysílánípovolení odeslání datpolynom výpočtu CRC: 0 - polynom CRC-16 X16 + X15 + X2 + 1 1 - 0 - polynom SDLC X16 + X12 + X5 + 1signál RTSzapnutí výpočtu CRC při odesílání

Registr WR6
bit76543210
bitv závislosti na režimu: * synchronizační znak, * prvních 8 bitů synchronizačního znaku, * adresa přijímacího čipu (v režimu SDLC), který bude vyslán. v závislosti na režimu: * synchronizační znak, * prvních 8 bitů synchronizačního znaku, * adresa přijímacího čipu (v režimu SDLC), který bude vyslán. +morev závislosti na režimu: * synchronizační znak, * prvních 8 bitů synchronizačního znaku, * adresa přijímacího čipu (v režimu SDLC), který bude vyslán. v závislosti na režimu: * synchronizační znak, * prvních 8 bitů synchronizačního znaku, * adresa přijímacího čipu (v režimu SDLC), který bude vyslán. v závislosti na režimu: * synchronizační znak, * prvních 8 bitů synchronizačního znaku, * adresa přijímacího čipu (v režimu SDLC), který bude vyslán. v závislosti na režimu: * synchronizační znak, * prvních 8 bitů synchronizačního znaku, * adresa přijímacího čipu (v režimu SDLC), který bude vyslán. v závislosti na režimu: * synchronizační znak, * prvních 8 bitů synchronizačního znaku, * adresa přijímacího čipu (v režimu SDLC), který bude vyslán. v závislosti na režimu: * synchronizační znak, * prvních 8 bitů synchronizačního znaku, * adresa přijímacího čipu (v režimu SDLC), který bude vyslán.
.

Registr WR7
bit76543210
bitv závislosti na režimu: * synchronizační znak, * prvních 8 bitů synchronizačního znaku, * příznakový znak 0111 1110 (v režimu SDLC). v závislosti na režimu: * synchronizační znak, * prvních 8 bitů synchronizačního znaku, * příznakový znak 0111 1110 (v režimu SDLC). +morev závislosti na režimu: * synchronizační znak, * prvních 8 bitů synchronizačního znaku, * příznakový znak 0111 1110 (v režimu SDLC). v závislosti na režimu: * synchronizační znak, * prvních 8 bitů synchronizačního znaku, * příznakový znak 0111 1110 (v režimu SDLC). v závislosti na režimu: * synchronizační znak, * prvních 8 bitů synchronizačního znaku, * příznakový znak 0111 1110 (v režimu SDLC). v závislosti na režimu: * synchronizační znak, * prvních 8 bitů synchronizačního znaku, * příznakový znak 0111 1110 (v režimu SDLC). v závislosti na režimu: * synchronizační znak, * prvních 8 bitů synchronizačního znaku, * příznakový znak 0111 1110 (v režimu SDLC). v závislosti na režimu: * synchronizační znak, * prvních 8 bitů synchronizačního znaku, * příznakový znak 0111 1110 (v režimu SDLC).
.

Registr RR0
bit76543210
bitpříznak přečtení znaku signalizujícího přerušení vysílání vysílací stranoupříznak podtečení při odesílánísignál CTSSync/Huntsignál DCD v okamžiku, kdy byly splněny speciální podmínky pro vznik přerušenívysílací buffer je prázdnýnastaly podmínky pro vznik přerušení (pouze pro kanál A, pro kanál B vždy nulový)příznak přítomnosti alespoň 1 znaku v přijímacím bufferu

Registr RR1
bit76543210
bitkonec přijatého rámce (v režimu SDLC)příznak chyby CRC/rozdělení na rámcepřetečení přijímací bufferu (přijímací buffer může obsahovat nejvýše tři znaky)příznak chyby paritydélka I-pole v režimu SDLCdélka I-pole v režimu SDLCdélka I-pole v režimu SDLCpříznak odeslání všech znaků z vysílacího bufferu

Registr RR2
bit76543210
bitvektor přerušení (bity 1-3 se v závislosti na režimu mohou lišit od jejich naprogramovaných hodnot registrem WR2)vektor přerušení (bity 1-3 se v závislosti na režimu mohou lišit od jejich naprogramovaných hodnot registrem WR2)vektor přerušení (bity 1-3 se v závislosti na režimu mohou lišit od jejich naprogramovaných hodnot registrem WR2)vektor přerušení (bity 1-3 se v závislosti na režimu mohou lišit od jejich naprogramovaných hodnot registrem WR2)vektor přerušení (bity 1-3 se v závislosti na režimu mohou lišit od jejich naprogramovaných hodnot registrem WR2)vektor přerušení (bity 1-3 se v závislosti na režimu mohou lišit od jejich naprogramovaných hodnot registrem WR2)vektor přerušení (bity 1-3 se v závislosti na režimu mohou lišit od jejich naprogramovaných hodnot registrem WR2)vektor přerušení (bity 1-3 se v závislosti na režimu mohou lišit od jejich naprogramovaných hodnot registrem WR2)

Přerušení

Obvod může generovat přerušení při následujících událostech: * při přijmutí prvního znaku, * při přijmutí každého znaku, * při splnění speciálních podmínek.

Priorita událostí pro generování přerušení: * příjem znaku/prvního znaku kanálem A, * vyslání všech znaků kanálem A, * výskyt speciální podmínky vzniku přerušení na kanále A, * příjem znaku/prvního znaku kanálem B, * vyslání všech znaků kanálem B, * výskyt speciální podmínky vzniku přerušení na kanále B.

Vektor přerušení je možné nastavit a číst pomocí registrů WR2 a RR2 pouze v řídicích registrech kanálu B.

Poznámky

Reference

Literatura

Externí odkazy

[url=http://z80.info/zip/um0081.pdf]Zilog Z80 CPU Peripherals user manual[/url] na z80.info

Kategorie:Z80 Kategorie:Vstupně/výstupní obvody

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top