ÚVOD | Novinky | 8 Bitů | Příslušenství | Drobnosti | TTL | Kontakt


SAPI-1 | ONDRA | PMI-80 | PMD-85 | klony PMD-85 | klony SM50/40 | PETR | PLAN-80A | IQ151 | TNS | FK-1 | HVĚZDA


ZPS | Technické prostředky | Programové vybavení | Dokumentace


8 bity / SAPI-1 / Technické prostředky / RKD-1




RKD-1A





RKD-1B



OCR před výrobní dokumentace k RKD-1



Popis systému kazetového disku 5Mbyte pro SAPI-1

Úvod.

Dvou deskový řadič sestávající z desek RKD-1A a RKD-1B sloužící pro připojení 1 až 4 disků CM 5403 / Zbrojovka Brno/ nebo disků CM 5400 s BLR. Celková kapacita disků je tedy 20Mbyte


Rozhráni.

Tyto disky mají signály rozhraní definovány s aktivní úrovní v nule, neboli všechny signály jsou inversní . V následujícím toto nebude uváděno a bude to bráno jako fakt. Signály rozhraní jsou přivedeny do obou desek RKD-1A a 1B. Deska RKD-1A zajišťuje generaci řídicích signálů pro disky a proto ji budeme říkat “deska řízení“ druhá deska RKD-1B zajišťuje čtení a zápis dat a proto jí budeme říkat “deska dat“ Desky jsou mezi sebou propojeny buď krátkým, kabelem nebo propojovací destičkou Propojeni mezi deskami je 1:1, to znamená že špičky stejného čísla 30 pólových konektorů FRB jsou navzájem propojeny. Propojovací konektory mezi deskami se zazívají X3 a konektory X2 slouží pro připojení disku


Na desce RKD-1A jsou tyto signály rozhraní:

S0, S1, S2, S3,
Volby jednotky 0,1,2 a 3, neboli tak zvan0 selekty jednotek. Po inicializaci řadiče je vybrána jednotka č.0

Výběr disku
Volba disku. V jednotce kazetového, disku jsou disky dva. Pevný a kazetový-výměnný. Tento signál je hladinový. To znamená že v jedné úrovni je vybrán jeden a v druhé druhý.

Výběr hlavy
Tento signál volí povrch disku /spodní nebo horní/ u vybraného disku. Je také hladinový.

Adresa stopy
Signály T1,2,4,8,16,32,64,128 volí stopu na disku. Stop je dvěstě a čtyři reservní. Pošle-li se do disku větší číslo než 203disk adresu stopy odmítne.

Strob
/stb/ Tento signál potvrzuje, že je na signálech stopy platný údaj.Strob jde do nuly na 500 ns a disk si převezme adresu stopy z vodičů T1 až T128. Po chvíli pak na tento signál odpoví buď signálem Správná adresa nebo signálem Nesprávná adresa.

Restore
/to/ Signál slouží pro zadání bezadresového návratu na stopu 0. V dokumentaci je nazýván T00. /track 00/ a není nutné ho používat pokud zadáme adresu stopy T1 až T128 a pokut nemusíme nulovat chybové obvody po chybě SEEK. Podobně jako adresy stopy musí být i tento signál doplněn signálem STROB.

Zápis povolen
Povolení zápisu je v dokumentaci nazýváno WR.

Mazání povoleno
/ERS/ Tento signál není u disků ze Zbrojovky a mazání se odvozuje ze zápisu.U disků z BLR je tento signál povinný a na RKD-1A je jeho generace, synchronní se zápisem.

Čtení povoleno
Tento signál se v dokumentaci nazývá RD.

Zapisovaná data
/WD/ Tento signál vede do disků data k zápisu společné s hodinami.

Ochrana zápisu
/WPP/ Impuls o délce 500 ns na tomto vodiči přepne vybraný disk do režimu kdy je zakázán zápis.

Jak je vidět signály z desky RKD-1A jsou pouze výstupní, Je to proto, že konektory na obou deskách /X2/ jsou zapojeny tak, že mají stejně obsazené špičky konektorů jako je tomu u paměti CM 5403 se Zbrojovky Brno. Pro výrobu kabelů pak stačí udělat kabaly 1:1 a nebo použít přímo kabely, které jsou s pamětí dodávány.


Na desce RKD-1B jsou tyto signály rozhraní:

Jednotka připravena
Signál říká, že disk je připraven. To znamená, že je založena kazeta s diskem, je dosaženo správných otáček /2400 za min./, hlavy se nacházejí v pracovní oblasti, disk je vybrán a není porucha. Tento signál je v dokumentaci nazván UNB / unit ready/.

Výběr připraven
Tento signál je v dokumentaci nazván SRDY /seek ready/. Signál znamená že je ukončeno včas a správné najatí na požadovanou stopu.

Adresa potvrzena
Tento signál má zkratku APT a je to odpověď na Strob, který zadal do disku novou adresu stopy.

Nesprávná adresa
Tento signál má zkratku NSA a je to odpověď na pokus poslat do disku adresu stopy větší než 203.

Výběr neukončen včas
Tento signál má zkratku STO /seek time out/ a znamená že vystavení hlav nemohlo být pro poruchu vykonáno v časovém limitu t.j. 0,5s.

Sektor
Tento signál má zkratku SEK a objeví se 12x nebo 24x za otáčku disku. Signál má délku 40 us. Signál znamená začátek sektoru. Druhý časovací signál z disku Index se nepoužívá.

Adresy sektoru
Tyto signály dávají v binárním kódu číslo sektoru 0 až 11 nebo 0 až 23. Signálů je proto pět a mají označení S1,S2,S4,S8 a S16. Podle těchto Čísel řadič ví který sektor se právě nachází pod hlavou.

Porucha
Tento signál se v dokumentaci nazývá ERR /error/ a znamená obecně poruchu nebo chybu jednotky disku.

Ochrana zápisu na vybraném disku
Tento signál má zkratku WPD a oznamují že je zakázán zápis na disk.

ATN 0, 1, 2, 3
Tyto signály oznamují ukončení výběru stopy (SRDY) a to jako jediné signály bez ohledu na to zda je jednotka vybrána signálem SEL.

Čtená data
Signál dat je aktivní pouze tehdy je li na disku zapsána jednicka.

Čtené hodiny
Tento signál přichází z disku, kdykoliv se čte záznam. Přijde-li mezi hodinami datový impuls přečetla se jednička, nepřijde-li tak se přečetla nula. Separátor dat a hodin je v disku.

Poznámka: Na deskách RKD-1A a B nejsou zapojeny vývody konektorů č.25 kam vede z disku +5V pro zákončovací odpory. U RKD-1 se počítá s tím, že zakončovací odpory budou pouze u posledního disku. Kdyby to však mělo dělat potíže bylo by nutné poblíž desek RKD-1 udělat ještě zapojení zakončovacích odporů. Dále není použit signál index a z disků BLR signály

  1. vysoká hustota záznamu
  2. nízké napájení
  3. adresa stopy 28 /T128/
  4. napájení +5V
  5. na špičce 26 je signál ERS – mazání pro disk BLR.


Popis desky RKD-1A.

Na desce je jeden obvod 8255, paralelní porty, a tento obvod pracuje v modu nula a má porty A a C jako výstupní a port B jako vstupní. Inicializační slovo pro řídící část obvodu je 82 Hex.

Porty jsou obsazeny takto
Bit   Port A   Port BPort C
0T1povolení vysílačů
signálů T1 až T128   
RUN=1=BUSY
1T2sel AWprotect=1
2T4sel BVýstup časovače 2.
3T8Read enableadresa potvrzena=1
4T16Status 4Write enable
5T32Status 5Hlava
6T64Status 6Disk
7T128Status 7Sel status

Podle bitu C7 "Staus sel" přichází na stavové vstupy Status 4 až 7 pokaždé .jiný význam,Tím se šetří počet vstupů portu B a také počet vodičů mezi deskami RKD-1A a 1B. Význam stavových bitů na portu B4, B5, B6 a B7 je následující:

Sel status   Status 4Status 5Status 6Status 7
PB4PB5PB6PB7
C7=0ATN 0ATN 1ATN 2ATN 3
C7=1Seek ready   Seek T out   Unit ready   Error

Poznámka:

  1. Vysílače adres stop se povolují signálem PC0=1. Povolují se na omezenou dobu kdy bude vyslán signál Strob a pak se zase zakáží PC0=0. Kvůli odběru z +5V.
  2. PC0=1 také nuluje klopný obvod signálu T00 = bez adresový výběr. Klopný obvod T00 se nastavuje zápisem D0= 1 na specielní adresu (4BH)
  3. Také signál pro nastavení ochrany zápisu na vybraném disku se generuje zápisem D4 = 1 na tuto specielní adresu (4BH)
  4. Signály Read Enable a Write Enable neovládají přímo signály rozhraní vedené do disku.Pouze se nastaví jedničky na výstupech portů / PC3 a nebo PC4/ po RUN=1 a po skomparování sektoru se zadaným,se v okamžiku skočení impulsu SEKTOR nastartuje časovač 1 a po době, která se dá před programovat v časovači 1 se nastaví klopné obvody Zápisu a ctění. Čas se programuje po 1µs.

Dále je na desce časovač 8253. Jeho tři samostatné časovače plní následující funkce:

Časovač 0 děli vstupní hodiny 2MHz dvěmi. Musí se naprogramovat do modu 2 a naplnit číslem 2.

Časovač 1 zajišťuje zpoždění mezi koncem sektorového impulsu správného sektoru a mezi začátkem čtení nebo začátkem zápisu. Programuje se na mód 5 a číslo N do něj vložené znamená zpoždění v mikrosekundách. Při zápisu je možno zvolit N=3 neboť tři mikrosekundy zpoždění přidává logika řadiče a 6 mikrosekund stačí. Při čtení je vhodné volit větší zpoždění a doporučoval bych volit asi N= 20 (64µs). Záleží také na počtu úvodních nul, které se při zápisu zapisují před značku začátku sektoru? ve všech těchto úvahách je třeba počítat s tím, že jeden byte trvá 3.2 µs.

Časovač 2 počítá Čtené nebo zapisované byte při přenosu Disk-RAM a RAM-Disk. Zde je nutné počítat s tím, že informace se neskládá pouze z dat ale že obsahuje:

Při čtení:
Adresové záhlaví 2 byte
Data 512 nebo 256 byte podle sektorů.
Kontrolní součet 2 Byte

Při zápísu :
Adresové záhlaví 2 byte
Data 512 nebo 256 Byte
Kontrolní součet 2 Byte
a 26 úvodních Byte nul a 2 byte nul po kontrolním součtu

časovač 2 pracuje v módu 0 a programuje se do něj počet přenesených byte. Počet byte se sleduj jen při přenosech mezi diskem a RAM a při čtení paměti RAM z procesoru nebo při plnění paměti RAM z procesoru musí počet byte počítat program.

Bále je na desce RKD-1A registr adresy sektoru do kterého se zapisuje inverzně pět bitů adresy sektoru u 24 sektorového disku a nebo 4 bity adresy sektoru u 12 sektorového disku. Na výstupu tohoto registru je pětibitový komparátor, který porovnává adresu sektoru, který je pod hlavou s obsahem registru a v okamžiku souhlasu je možno číst a nebo zapisovat.

Dále je zde klopný obvod RUN, kterým se startuje celá operace zápisu nebo čtení. Klopný obvod se Nastaví zápisovou instrukcí na specielní adresu portu (46H) a po operaci se RUN vynuluje. Jeho stav je možno číst do PB0 a tak sledovat zda operace byla dokončena.

Klopný obvod RUN se nuluje:

  1. signálem RESET mikropočítače
  2. přenesením přednastaveného počtu byte /časovač 2/
  3. Chybou Error z disku
  4. Nezkomparuje-li se sektor ani po 256 příchodech sektorového impulsu.

Bále je na desce generován signál RP /reset pointer/, který nuluje adresový čítač paměti RAM na desce RKD-1B. Tímto signálem se přednastaví nulová adresa paměti před čtením, zápisem nebo před pněním nebo čtením RAM.

Na desce je také dekodér adres realizovaný pamětí PROM MH 74188. Dále jsou na desce oddělovací obvody pro přenosy signálů mezi deskami A a B.

Deska RKD-1B se adresuje jako přídavné zařízené /IOW a IOR/ a nezabírá adresy paměti i když obsahuje 1Kbyte vyrovnávací paměti RAM pro jeden sektor.


Popis desky RKD-1B

Na desce jsou vstupní obvody pro příjem stavových, hodinových a datových signálů z disků. Jak již bylo řečeno některé stavové signály jdou přes multiplex /obvod D8C/ takže je nutné je číst nadvakrát. Signály ATN nejsou však tak často používány a proto se multiplexu nemusí používat často. Signály ATN mají význam pouze v konfigurací se dvěmi a více disky,kdy je potřeba provádět na více discích seek najednou a pak se dozvědět který disk dokončil operaci dříve. U sytému SAPI-1 se patrně signálů ATN nevyužije. Pro stejnou informaci poslouží signály SRDY /seek ready/ přečtený postupně ze čtyř jednotek.

Klopný obvod APT /adresa potvrzena/ zaznamenává po Strobe kladnou nebo negativní odpověď APT nebo NSA. Jeho stav se pak dá přečíst portem PB3.

Obvody kolem vyrovnávací paměti RAM jsou tvořeny:

  1. vlastní pamětí RAM 1Kbyte
  2. adresovým čítačem D6C, D7C, D2D jehož obsah se zvyšuje při každém zápisu a čteni ze strany procesoru i disku.
  3. oddělovacím zesilovačem D3C

Obvody zápisu jsou tvořeny generátorem hodin 10MHz. Interval zápisu bitu je 400ns což představuje 4 hodinové impulsy krystalového oscilátoru. čítač D2A řídí multiplexer D2B a přivádí postupně bity zápisu od D0 do D7 na vstup druhého multiplexeru, který zabezpečuje kódování záznamu na disk. Zápis se startuje jedničkou na WE.

Obvody čtení jsou tvořeny tvarovači pro úpravu dat a hodin a dále specielním zapojením, která čeká na jedničku zapsanou za úvodními nulami. Tuto první jedničku řadič nepřečte, ale všechna dat po ní již čte, skládá je po osmi bitech a dává do paměti RAM. Na disku je úvodních několik byte nul, pak je tady 80 HEX a pak již data. HEX 80 tvoří tu úvodní jedničku a proto zde musí být. Monostabilní obvody pak vytvářejí sekvenci impulsů pro zápis přečtených dat do RAM.

Formáty disku:

  1. Disk o 12-ti sektorech kompatibilní se SMEP:
    1. sektor se zapisuje asi 6 mikrosekund za impuls SEKTOR
    2. nejdříve je 26 byte 00 HEX
      potom 1 byte 80 HEX
      potom 2 byte adresa stopy
      potom 512 byte dat
      potom 2 byte 16 bitového součtu dat /součet jen dat/
      potom 2 byte 00

    Toto všechno se při zápisu pro formátování i při zápisu dat musí předem naplnit do RAM. Nepotřebná data, třeba při formátování se nahradí nulami. Do součtu se adresa stopy nepočítá, jen data.

  2. Bilo by dobré zajistit volitelně ještě formát lišící se počtem sektorů. Disk o 24 sektorem pak má bloky pouze 256 byte. Při čtení se do RAM pak dostane jako první až adresa stopi nuly a 80HEX vypadne. Kontrolní součet se musí spočítat předem dvojnásobnou aritmetikou a pak znovu po Čtení, jako kontrola a porovná se s přečtením.

Programovaní:

Inicializace.

Nejprve se musí poslat na adresu 47H data (82H) to je inicializace obvodu 8255.

Potom se pošle na adresu 43H data 14/č0/, 5A/č1/ a B0/č2/ to je inicializace módů časovačů.

Pak je potřeba poslat na adresu 40H číslo 2 aby dělič dělil dvěmi.

Některé používané sekvence:

Nulováni pointru paměti:

Stačí poslat na adresu 4AH data 80H. To se musí udělat vždy před čtením sektoru, zápisem sektoru, čtením RAM do mikropočítače a zápisem do RAM z mikropočítače.

Je možné to spojit se zápisem sektoru neboť registr v sektoru má stejnou adresu To je vhodné před zápisem a čtením sektoru z disku. POZOR sektor se zapisuje Inversně to je komplement D0 až D4! Musí se provést operace sektor + 80H = obsah registru. Stačí ovšem sektor -> A a pak A=A a bude také D7=1!

Poslání adresy stopy neboli Seek

  1. Disk musí být ready
  2. Pošleme do portu A adresu stopy / 0 až 203/ binárně
  3. Nastavíme Pc0 na jedničku. (80H do adresy 46H)
  4. Provedeme zápis IOW na adresu 48H, generace STB
  5. Zjistíme zda přišlo APT=1 adresa potvrzena jinak byla větší než 203.
  6. Pak dáme Pc0 do nuly.
  7. Počkáme teď a nebo raději až před čtením na SEEK READY

Seek na stopu T00.

  1. buď stejně jako předtím s nulovým portem A (T1 – T128)
  2. bezadresně (nuluje chybu SEEK!)
    1. Pošleme na adresu 4BH data 01H (nastavíme T00)
    2. generujem Strobe ( IOW na 48H)
    3. Počkáme na Seek Ready
    4. Příštím povolením PC0=1 signál T00 vynulujeme

Plnění RAM.

  1. Vynulujeme pointer na 4AH poslat 80H
  2. Zapíšeme IOW na 4CH data až do celkového, počtu 1024 ale nemusí být RAM plná, zapisuje se jen ten počet, kolik udává čítač 2. Můžeme připsat ještě reservní nulu.

Adresace desek RKD-1A a 1B.

Adresa je dána obsahem paměti PROM /D6A/. Pro oživování a výrobu byla zvolena tato adresace:

HEX:40IOWobvod 8253 čítač 0
41IOWobvod 8253 čítač 1
42IOWobvod 8253 čítač 2
43IOWobvod 8253 řízení čítačů - nastavení modu.
44IOWobvod 8255 port A výstup
45IORobvod 8255 port B vstup
46IOWobvod 8255 port C výstup (jde dělat set/reset bitů)
47IOWobvod 8255 Řízení portů / init HEX 82/
48IOWgenerace STB bez argumentu v akumulátoru
49IOWStart, nastavení RUN, bez argumentu v akumulátoru
4AIOWD7=1 reset pointer RAM, D0 až D4 sektor 0-11 / 0-23/ inverzně
4BIOWD7 až D3 nezajímavé, D1 set ochrana zápisu, D0 set Restore najetí na T00
4CIORW   čtení a zápis do RAM
4Dnepoužito \
4Bnepoužito - stejný projev jako 4C
4Dnepoužito /

Poznámka: adresy 40 až 44 a 46 až 4B jsou pouze zapisovací IOW
adresa 45 je pouze čtecí IOR
adresy 4D až 4F se nepoužívají ala desky tuto adresu zabírá a nesmí být použita jinde v sytému.

Poznámka: Čítače se před programují na:
čítač nula HEX 14 mód 2 dělič frekvence ,plnit 1 byte!
čítač jedna HEX 5A mód 5 monostabil, plnit 1. byte!
Čítač dva HEX B0 mód 0, plnit dva byte!

Poznámka: Co nejdříve po zapnutí je třeba poslat na HEX 47 data HEX 82

Start zápisu nebo čteni sektoru.

  1. Předpokládáme, že je vše v pořádku a pointer je vynulován
  2. Zapíšeme na 49H cokoliv = set RUN
  3. Čekáme na Pb0 =0 PB0 je vlastně BUSY i když se nazývá RUN
  4. Konec RUN mohl nastat :
    1. přečtením sektoru nebo zápisem sektoru
    2. přetečením času po 256 sektorech
    3. chybou ERROR
    4. resetem

Čtení RAM do mikropočítače.

  1. Vynulujeme pointer
  2. Tolikrát provedeme IOR na 4CH kolikrát chceme data.

Programování čítačů.

  1. Čítač 0 programujeme jen jednou data i mód (mód 14H a data 2H)
  2. Před každým zápisem nebo čtením sektoru
    1. pošleme na 43H 5AH
    2. pošleme na 41H N=3 zápis a N= 20 čtení
    3. pošleme na 43H B0H
    4. pošleme na 42 nižší počet byte které chceme přenést
    5. pošleme na 42 vyšší počet byte které chceme přenést
    6. /dva byte se musí posílat i když je počet menší než 256, jinak bychom museli směnit konstantu B0 posílanou do 43H/


Výběry

Výběr disku, hlavy a jednotky provádíme kdykoliv je vše v klidu. Provádí se pouhým zápisem do portu C. Po inicializaci obvodu 8255 Je vše vynulováno!

POZNÁMKA:

Celý program doporučuji sestavit do těchto rutin:
Volba disku 12/24 pevná!
test RAM /zápis a přečteni 1024 byte RAM/
čtení sektoru
zápis sektoru
seek na stopu N
seek na T00
plnění RAM před zápisem
čtení RAM
formátování povrchu
selekty disku, hlava, jednotka


Zapojení konektoru X3 desky RKD-1A

1SEL02SEL1
3SEL24ZEM
5SEL36T1 /stopa 1/
7T28ZEM
9T410T8
11T1612ZEM
13T3214T64
15T12816ZEM
17T0018DISK
19HLAVA      20ZEM
21WR22RD
23WPP24ZEM
2526ERS u mazání pro IZOT
27STB28ZEM
29   WD30   ZEM


Zapojení konektoru X3 desky RKD-1B

1ATN02ATN1
3ATN24ZEM
5ATN36S1
7S28ZEM
8S410S8
11S1612ZEM
13SRDY      14STO
15UNR16ZEM
17ATP18NSA
19ERR20ZEM
21SEK22
23WPD24ZEM
25   26   
27RC28ZEM
29RD30ZEM


Zapojení konektoru X2 desek RKD-1A, 1B

1ERR2RD
3ATP4WD
5SELS6SEK
7BYTE      8RC
9R710R0
11R512R2
13R114R4
15R316WP
17S218S4
19WE20S8
21S1622S1
23ZEM24WRAM
25   ST626RE
27ST428   RDRAM
29ST730ST5




Schéma RKD-1A a černobílá verze ZDE.




DPS RKD-1A




Schéma RKD-1B a černobílá verze ZDE.




DPS RKD-1B



ÚVOD | Novinky | 8 Bitů | Příslušenství | Drobnosti | TTL | Kontakt


SAPI-1 | ONDRA | PMI-80 | PMD-85 | klony PMD-85 | klony SM50/40 | PETR | PLAN-80A | IQ151 | TNS | FK-1 | HVĚZDA


ZPS | Technické prostředky | Programové vybavení | Dokumentace


8 bity / SAPI-1 / Technické prostředky / RKD-1



SAPI.cz - web o československých osmibitech, zejména SAPI-1. Provozuje EC1045 od roku 2011
Za korekce češtiny dekuji: MELSOFTovi, Silliconovi, Martinu Lukáškovi a NOSTALCOMPovi

Když začínám blbnout z 8bitů tak se chodím léčit mezi otaku.
Animefest.cz