Vorige Inhoud Volgende _________________________________________________________________ Bus 860409 (c) 1986 by ORD-GROUP 8 Databus De databus gedraagt zich als een normale 8-bits databus. De kaarten hoeven geen signalen aan te maken om diverse buffers buiten deze kaarten aan te zetten. Met andere woorden: de kaarten behoeven alleen de eigen buffers te besturen. Vanwege de struc- tuur van de ORDINATOR was dit de aangewezen weg, en daarom hebben we hiervoor gekozen. De databus heeft pull-up weerstanden om te garanderen dat een niet bestaande I/O poort of geheugenplaats de waarde FF(hex) teruggeeft. De interupts maken hier gebruik van, zie 'inter- rupts'. Controlbus De controlbus bevat de gebruikelijke Z80 control signalen. Daarnaast bevat deze bus ook diverse clocksignalen, zoals Z80-phi (de klokfrekwentie van de Z80) en 16Mhz (dit signaal gaat verwijnen, zie daarvoor 'problemen'). Ook bevat de controlbus een aantal signalen die naar het CPU- board toegaan. Hieronder vallen INT (INTerrupt request) en WAIT. Omdat deze signalen door meerdere kaarten opgewekt kunnen worden, kunnen de uitgangen van deze kaarten geen totempaalstructuur hebben. Daarom is gekozen voor een open-collector structuur. Deze structuur wordt ook gebruikt voor de interuupts - zie daarvoor het volgende hoofdstuk. Interrupts Het servicen van interrupts is een probleem op zich: interrupts worden aangevraagd via een open-collector poort, maar de inter- rupts moeten naar een adres wijzen dat de interuupt serviced. Daarom moeten vectored interrupts worden gebruikt. Er zijn verschillende systemen bekend om dit te verwezelijken, waarvan we er nu enkele zullen bespreken. Het Zilog-systeem werkt met chips zie met de CPU meelezen en een bepaalde instructie zelf uitdecoderen. Omdat niet alle peri- pheral-chips van Zilog zijn, kan het Zilog-systeem niet worden gebruikt, want het systeem is verschrikkelijk lastig als het met 'eigen' hardware moet worden geimplementeerd. Een andere mogelijkheid zou een daisy-chain kunnen zijn. In het door ons gebruikte bussysteem zijn 'open slots' (slots zonder kaart) mogelijk. Dit sluit de daisy-chain uit, want daar zijn deze open slots niet mogelijk. Daarom is gekozen voor een ander systeem: de kaart geeft via de open-collectorlijn 'INT' aan dat een interrupt wordt aangevraagd. Als de CPU deze interrupt acknowledged, maakt deze tegelijk de M1- en de IORQ-lijn laag (dit is standaard Z80). Het device dat de interrupt aanvroeg, geeft dit te kennen door een bepaalde databuslijn laag te maken. Op de CPU-kaart zit een priority-encoder die deze databussignalen omzet in een vector, welke hij aan de CPU aanbiedt. Deze vector wordt door de CPU op de normale (Z80) manier verwerkt. _________________________________________________________________ Vorige Inhoud Volgende