KOMTMKACIJSKI KRMILNIK Rado SLATINEK, Bnr)<>i30 SCC, časovnik 6840, 128/512 kB DRAM, 1/16/32/64 kB EHIIOM, vezje 8038 FIO, dodeljevalnik lokalnega vodila in vmesnik ?.n po- vezavo z multipleksiranim sistemskim vodilom. Krmilnik omogoča vzpostavljanjo povezav preko osmih asinhronili ali sin- hronih serijskih komunikacijskih kanalov 7, raznovrstno torminalsko opremo ter povozavo računalniškega sistema v lokal- ne in javne komunikacijske mreze za prenos podnlknv. COMMUNICATION CONTROLLER: The paper describes a functional structure and operating of a microprocessor based communication controllef, which is part of the computer workstation TK 68000. llie controller is composed of the 68000 microprocessor, four 8530 serial communication controllers, llie 6840 timer, 128/512 kll of DRAM, 4/16/32/64 kl3 of EPROM, 8038 input/output interfnce unit,an arbiter and an interface to the host's inultiplexed sytem bus. The controller enables connection with different terminal equipment and with local and public data networks on eight asynchronous and synchronous communication chanels. 1. UVOD V današnjem času, ko prehajamo na distribuirano obdela- vo podatkov, je potreba po komuniciranju med računal- niškimi sistemi čedalje večja. Povezovanje računalniške opreme (veliki sistemi, procesni računalniki, delovne po- staje, osebni računalniki itd.) različuih proizvajalcev je zaradi neenotnih komunikacijskih protokolov posameznih sistemov zelo oteženo. Univerzalni komunikacijski modul delovne postaje rešuje komunikacijske potrebe uporabnika na nivoju terminal - delovna postaja, hkrati pa omorioča izmenjavo podatkov s preostalimi računalniškimi aistemi v organizaciji in izven nje. Komunikacijski krmilnik (KK) je zaključen mikroračunal- niški sistem, ki lahko prevzame od centralnega računal- nika večino komunikacijskih opravil. Omogoča pretok po- datkov in procesiranje mrežnih protokolov na nižjih nivo- jih med računalnikom in nanj priključenimi napravami. KK je riačrtovan kot sestavni del delovne postaje TK 68000 z večuporabniškim operacijskim sistemom, vendar lahko deluje tudi kot samostojna enota z lastnim operacijskim sistemom. Pri načrtovanju univerzalnega modula komunikacijskega procesorja smo upoštevali cenovno optimizacijo ter do- segljivost materialne opreme, nizke stroške razvoja in predvideli široke možnosti uporabe komunikacijskega kr- tnilnika. Predvideno delovno okolje zahteva več serijskih komunikacijskih kanalov, od katerih sta vsaj dva sinhrona (SNA/SDLC, X.25 ali medsebojna povezava računalnikov TK 68000) preostali pa asinhroni za priključitev termina- lov in druge periferne opreme. Krmilnik je mikroračunal- niški modul z osmimi serijskimi komunikacijskimi kanali za priključitev različne računalniške, terminalske in pe- riferne opreme na delovno postajo. Zasnovan je tako, da z ustrezno programsko podporo omogoča povezavo delov- ne postaje v lokalno računalniško in javno podatkovno mre- žo ter pod določenimi pogoji tudi na PADX naročniško tele- fonsko centralo. 2. ZGRADBA KOMUNIKACUSKEGA KRMILNIKA Krmilnik je povezan s centralnim procesorjem preko si- stemskega vodila. Časovno multipleksirano naslovno-po- datkovno sistemsko vodilo (24-bitni naslovni in 16-bitni podatkovni del) povezuje vse module račnnalniškega si- stema TK 68000. V osnovni konfiguraciji vsebuje sistem procesorski tnodul, DRAM modul, komunikacijski krmil- nik ter modula.za priključitev zunanjega masovnega po- mnilnika in konzole. V razširjeni sestavi ima raciuialnik še DMA modul, dodatni DRAM pomnilnik in module za različno periferijo. Slika 1 prikazuje povezavo modulov preko sistemskega vodila. Materialno opremo KK grobo delimo v dva velika funkcio- nalna sklopa: - vmesnik za vodilo TK 68000 in - komunikacijski procesor. Vmesnik je zasnovan tako, da opravlja naslednje nalocje: - skrbi za pravilno odzivanje, ko glavni procesor (GP) ali DMA naslovni KK, - demultipleksira naslovno-podatkovno vodilo TK 680OO, - omogoča pravilno dodeljevanje lokalnega vodila, - pri bralnem ciklu generira pariteto podatkov, ob vpis- nem pa jo preverja, - signalizira napako pri prenosu podatkov med GP in KK ter dvojno napako na lokalnem vodilu, - krmilni naslovni števnik. Sestavljajo ga: - demultipleksor, - naslovni dekodirnik, - naslovni števnik, - vezje 8038 FIO, ki vsebuje 128 bytov globoko FIKO vrsto in dva sporočilna registra. 297 Komunikacijski procesor je zgrajen iz naslednjih sklopov: - lokalnega procesorja 68000, - naslovnega dekodarnika in povezovalnih sestavov, - pomnilnika EPROM kapacitete 4/16/32/64 kB, - dinamičnega RAM-a 128/512 kB, - registra prioritete, - perifernih vmesnikov 8530 SCC, - merilnika časovnih intervalov PTM 6840 in - linijskih vmesnikov po standardih RS-232 ali RS-422. Slika 2 prikazuje zgradbo komunikacijskega krmilnika. 3. DELOVANJE KOMUNIKACIJSKEGA KRMILNIKA Sistemsko vodilo je povezano z lokalnim preko naslovnega števnika in vmesnikov. Dodeljevalnik (arbiter) skrbi za pravilen prenos podatkov med vodiloma, tako da lokalno vodilo zaseda hkrati le en procesor. Na vodilu ne sme pri- • ti do trkov prenosov različnih procesorjev, zato dodelje- valnik izmenično dodeljuje vodilo GP in KP, kadar oba za- htevata dostop na lokalno vodilo. S pomočjo sporočilnih registrov elementa FIO se GP in KP obveščata o pomemb- nih dogodkih in potrebnih ukrepih. FIFO vrsta je usmerje- na od lokalnega k TK vodilu. Namenjena je za prenos zna- kov s periferije h glavnemu procesorju. To je ugodna re- šitev, ker omogoča znakovnemu prenosu prioriteto nad blokovnim, kar zagotovi dobre odzivne čase pri inter- aktivnem delu. FIFO obenem zagotovi časovno enakomeren priliv znakov, zaradi tega GP-ju ni več potrebno togo sle- diti dogodkom na znakovnih komunikacijskih kanalih. KK ima samo en FIO element zaradi prostorske in cenovne optimizacijevezja, ne da bi se zaradi tega bistveno zmanj- šale njegove zmogljivosti. Za blokovni prenos ima GP neposreden pristop na lokalno vodilo. Če bi itnel možnost naključnega naslavljanja, bi moral biti ves naslovni prostor KP viden GP-ju kot del nje- govega naslovnega prostora. Ker je mogoče v sistem vklju- čiti več KK, bi vsi skupaj zasedli dobršen del nnslovov, ki . so sicer namenjeni pomnilnikom. Mehanizem okna zmanj- ša potrebno število naslovov na najmanjšo možno mero. KK zavzema v naslovnem polju le 16 naslovov: H'FFXXX0 - podatkovni register FIO H'FFXXX2 - kontrolni register FIO H'FFXXX4 - MSW - zgornji del naslovnega števnika H'FFXXX6 - LSW - spodnji del naslovnega števnika H'FFXXX8 - R/W - okno k lokalnemu vodilu H'FFXXXA- RI/VI - okno k lokalnemu vodilu H'FFXXXC - R1/WI - okno k lokalnemu vodilu H'FFXXXE - RD/WD - okno k lokalnemu vodilu Slika 3 prikazuje naslovna področja računalniškega siste- ma TK 68000 in komunikacijskega krmilnika. FIO zavzema prve štiri naslove (v resnici se nahaja po- datkovni register na naslovu H'FFXXX1, kontrolni pa na H'FFXXX3). Na naslovnih H'FFXXX4 do H'FFXXX7 je na- slovni števnik (MSW, LSW). Vanj je potrebno vpisati vred- nost, ki ustreza želenemu naslovu na lokalnem vodilu. To lahko storimo npr. z inštrukcijo MOVE.L ADR,2FFXXX4. Z izbiro enega ali dveh naslovov (MOVE.B ali MOVE.W) izmed preostalih osem, generiramo na lokalnem vodilu naslov, ki je določen z vsebino naslovnega števnika. V od- visnosti od izbire adresnega načina.(MOVE.B, MOVE.W ali MOVE.L) in naslova v oknu ostane vsebina naslovnega števnika nespremenjena, se poveča ali zmanjša za 2 ali 4. Okno na naslovu H'FFXXX8 kaže vedno na eno lokacijo, do- kler GP ne spremeni vsebino naslovnega števnika. Okna na naslovih od H'FFXXXA do H'FFXXXE omogočajo sekven- čni pristop, kjer se po vsakem prenosu podatka skozi okno vrednost naslovnega števnika ustrezno spremeni. Ob na- slovitvi enega od oken se sproži proces dodeljevanja lo- kalnega vodila. Pri tem velja princip "sprosti na zahtevo". Če bi uporabili princip "sprosti, ko si opravil", bi hilo ogroženo delovanje operacijskega sistema GP. Vsakič, ko GP naslovi lokalno vodilo, mora v povprecju čakati nekaj več kot 1/2 časa izvajanja cikla na vodilu. Dodeljevanje lokalnega vodila smo optimirali tako, da se lokalni procesor izklopi potem, ko je postoril vsaopravi- la. GP tedaj ob naslovitvi KK takoj doseže želeno lokacijo. Stanje bita v registru prioritete opravil je kriterij za iz- klop lokalnega procesorja. Potem, ko je končal s tekoči- mi opravili, vpiše v register prioritete vrednost "0". S tem se izklopi in GP lahko doseže lokalno vodilo brez ča- kanja. Katerakoli prekinitev povzroči, da se vsebina re- gistra prioritete postavi na "1". To povzroči vklop KP in dodeljevanje vodila "r\a zahtevo". Za pravilno delovanje sistema je potrebno uporabiti na- slednji programski prijem: Prekdnitvene rutine za vsak dogodek postavijo ustrezno bit, ki pove monitorju, kaj mu je storiti. Poleg teh bitov je potrebno definirati še dodatnega, imenujmo ga INT bit. Le-tega mora postaviti na "1" vsaka prekinitvena rutina. Monitor ciklično preglejuje bite posameznih dogodkov in glede na njih stanje ustrezno ukrepa. Ob začetku cikla postavi INT bit na "0" in nato nadaljuje s pregledovanjem ostalih bitov. Ko pregleda vse (in seveda konča z opravili), testira še INT bit. Če ima le-ta v tem trenutku vrednost "0", lahko vpiše "0" v register prjori- tete in s tem izklopi procesor. V nasprotnem primeru mora nadaljevati delo na začetku cikla, ne da bi vpisal prioriteto "0". 4. PROGRAMSKA OPREMA KOMUNIKACIJSKEGA KRMILNIKA KK ima rezidenčno progrartisko opremo vpisano v EPROM in programe, ki jih naloži GP. Po vklopu računalnika LP z rezidenčnim testnim programom preveri lokalna vezja (DRAM, SCC, FIO in PTM). Če materialna oprema deluje pravilno, GP naloži komunikacijsko programsko opremo v lokalni DRAM KK. Nato se inicializirajo parametri, ki omogočajo pravilno delovanje LP (sistemske spremenljiv- ke LP) in komunikacijskih kanalov (inicializacija logičnih in fizičnih kanalov). Po inicializaciji vezij (FIO, SCC in PTM) je KK pripravljen za sprejem in oddajo podatkov po komunikacijskih kanalih. Ker komunikacijski programi niso rezidenčni, lahko hi- tro in preprosto reinicializiramo posamezni kanal za drugačni način prenosa podatkov. Programe lahko pred- hodno vpišemo tudi v lokalni EPROM pomnilnik in tako sprostimo del bralno-vpisnega pomnilnika za pretok po- datkov. Tedaj ne moremo programsko spreminjati delo- vanja komunikacijskih kanalov, vendar lahko KK deluje popolnoma samostojno. Komunikacijsko programsko opremo sestavljajo rutine in povezovalni program (jedro). Procesiranje posamezne rutine se sproži pod določenimi pogoji. Prekinitev sproži eno izmed prekinitvenih rutin. Rutine prenesejo podatke med.vmesniki (FIO ali SCC) in vmesnim pomnilfiikom (buffer) ali pa sprožijo 'time-out' proceduro (PTM) pri sinhronem prenosu podatkov. Rutine za obdelavo podntkov 298 omogočajo različne operacije nad podatki in procesiranje kontrolnih znakov in informacije v blokih podatkov (ko- diranje/dekodiranje, zaščita podatkov, kontrola pretoka, odmev, ...). Prekladalne rutine premeščajo podatke iz vmesnih pomnilnikov v vrste, v katerih podatki čakajo na prenos v sistem ali v komunikacijski kanal in omogočajo prenos kontrolnih sporočil med LP in Gl' v obeh smoreh. Kontrolna sporočila se izmenjujejo skozi ukazni kanaL (sporočilna registra v FIO elementu), preko katerega si LP in GP posredujeta informacije o zasedenosti kanalov oziroma vrst in načinih delovanja. Jedro programske opreme ugotavlja pogoje za skok v posamezno rutino. KK lahko ima dodatne programe za statistično obdelavo pre- toka podatkov. 5. PRETOK PODATKOV SKOZI KOMUNIKACIJSKI KRMILNIK Pretok podatkov skozi KK do procesa v centralnem raču- nalniku poteka skozi znakovni (asinhroni prenos) ali blo- kovni (asinhroni in sinhroni prenos) kanal. V znakovnem kanalu se podatki prenašajo skozi KK znak za znakom, medtem ko blokovni kanal prenaša bloke podatkov. Pri asinhronem blokovnem prenosu se prenašajo vrstice in pri sinhronem prenosu paketi (podatkovni del HDLC/ /SDLC nabora) podatkov. Prednost blokovnega prenosa je veliko večja propustnost sistema, saj procesor ne iz- gublja časa z vsakim posameznim podatkom posebej. Ulo- ke podatkov lahko preko sistemskega vodila izredno hitro prenaša tudi DMA krmilnik. GP ima dve možnosti komuniciranja z napravami na lo- kalnem vodilu: prenos skozi FIFO vrsto (enosmerni zna- kovni kanal k GP) in prenos skozi okno (dvosmerni blo- kovni kanal in enosmerni znakovni kanal k LP). Prikazan je asinhron znakovni pretok podatkov skozi KK, ki je uporabljen z osnovnim monitorjem za testiranje de- lovanja KK. Sprejem podatka po znakovnem kanalu spro- ži prekinitveno rutino (Rv), ki podatek prepiše v vmesni pomnilnik (buffer). Vsak znakovni kanal ima svoj vmesni pomnilnik. Podatki se iz vmesnega pomnilnika prepišejo v FIFO register FIO elementa. FIFO register se uporablja kot vmesni kanal za prenos podatkov k GP. Enakomernej- ši pretok skozi KK za vse znakovne kanale dosežemo z zaporednim praznenjem vseh zasedenih vmesnih pomnil- nikov. Rutina Rf prenese iz vmesnega pomnilnika v FIO le en znak in nato preskoči na naslednji buffer neglede na to, koliko je ta buffer zaseden. Hitri znakovni kanali tako ne morejo "odriniti" počasnejših. Vsak podatek spremlja tudi kontrolna informacija, ki določa, skozi ka- teri kanal je bil podatek sprejet. V GP rutina Rs prepiše podatek iz FIO v ustrezni sprejemni vmesni pomnilnik, ki je dodeljen posameznemu kanalu. Tu je podatek na voljo operacijskemu sistemu računalnika oz. uporabniškemu programu. r KK ima samo en FIO element, zato mora GP uporabljati pri oddajanju podatkov (rutina Ro) pomnilnik KK kot vmes- ni kaiial med GP in LP. Takšna konfiguracija je izbrana za- radi večjega izhodnega toka podatkov, ki ni časovno kriti- čen. Kadar želi GP odposlati podatke, skozi okno napolni izhodno vrsto z enim ali več znaki. LP dobi preko ukazne- ga kanala (sporočilni register FIO) sporočilo o zasede- nosti vrste. Rutina Rz sproži rutino Ri, ki prenese podni- ke v ustrezni periferni vmesnik SCC oz. komunikacijski kanal. Ko je vrsta prazna, LP preko ukaznega kanala spro- ži GP, da lahko ponovno napolni vrsto. Rutina Rp omotjocM, da Ro lahko izprazni oddajni vmesni pomnilnik. Slika 4 prikazuje preprost pretok podatkov skozi znakovne asinhrone vhodno/izhodne kanale. Paketi podatkov (blokovni kanal) se po sprejemu shranijo v vmesnem pomnilniku. Vsak fizični kanal ima svoj buffer za en paket. Poln sprejemni buffer se mora čimprej izprnz- nit, da je pripravljen na sprejem novega paketa. Paketi se prenesejo v vrsto, kjer čakajo, dokler se vmesni kanal ne sprosti. Med prenosom LP obdela celotni blok in ustreznn ukrepa. Vmesni kanal je del pomnilnika, iz katerega (il* prenese blok v svoje delovno področje oziroma višjim tii- vojem operacijskega sistema. Preko ukazanega kanali si procesorja izmenjujeta sporočila o zasedenosti vrslo. Ocl- pošiljanje blokov podatkov poteka po enakom principu kot sprejem. Splošen pretok podatkov skozi KK prikazuje sli- ka 5. 6. ZAKLJUČEK V zasnovi KK smo upoštevali različne pogoje obratovanja krmilnika, zato pričakujemo, da bo KK uspešen komuni- kacijski sestav z izredno široko uporabo, ne samo v sklo- pu računalnika TK 68000, temveč tudi kot samostojna ono- ta. 7. REFERENCE (1)1. Dolinšek, P. Knaflič: "Specifikacija zahtev do inteligentnega komunikacijskega krmilnika", interni dokument ISKRE TELEMATIKE, dec. 1984, str. 12, Ljubljana, (2) R. Slatinek, N. Črnko: "Poročilool. fazi razvoja komunikacijskega krmilnika", delovno poročilo za ISKRO TELEMATIKO, jan. 1985, str. 42, Maribor. CPU 71 DRAM sistemsko vodilo JL TK 68000 CSL konrola L II KK DISK. M. diskovni pogon komunikacijski kanali Slika 1: Osnovni moduli računalnika TK 68000 299 SISTEMSKO VOOILO RAM ALNO Slika 2: Zgradba komunikacijskega krmilnika SISTEM (GP) Slika 3: Razporeditev naslovov sistema in KK 300 komunikacijski krmilnik TK 68000 sistem I-(RI)-T-[MTTTTP — SHka 4: Znakovni asinhroni vhodno/izhodni kanali komunikacijski kanal vhodni kanal izhodni kanal vrste višji nivoji OS Slika 5: Pretok podatkov skozi KK