• No results found

Monoselector t.b.v. gehandicapten op basis van een single-chip microcomputer met infrarood afstandsbediening

N/A
N/A
Protected

Academic year: 2021

Share "Monoselector t.b.v. gehandicapten op basis van een single-chip microcomputer met infrarood afstandsbediening"

Copied!
101
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Citation for published version (APA):

van Tintelen, T. B. W. (1981). Monoselector t.b.v. gehandicapten op basis van een single-chip microcomputer met infrarood afstandsbediening. Technische Hogeschool Eindhoven.

Document status and date: Gepubliceerd: 01/01/1981 Document Version:

Uitgevers PDF, ook bekend als Version of Record Please check the document version of this publication:

• A submitted manuscript is the version of the article upon submission and before peer-review. There can be important differences between the submitted version and the official published version of record. People interested in the research are advised to contact the author for the final version of the publication, or visit the DOI to the publisher's website.

• The final author version and the galley proof are versions of the publication after peer review.

• The final published version features the final layout of the paper including the volume, issue and page numbers.

Link to publication

General rights

Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain

• You may freely distribute the URL identifying the publication in the public portal.

If the publication is distributed under the terms of Article 25fa of the Dutch Copyright Act, indicated by the “Taverne” license above, please follow below link for the End User Agreement:

www.tue.nl/taverne Take down policy

If you believe that this document breaches copyright please contact us at: openaccess@tue.nl

providing details and we will investigate your claim.

(2)

Vakgroep rv'~dische Elektrotechnlek

MONOSELEC10R

rsv.

GEHANDrCAPTEN

op basis v.

e.

singie-ch'lp micro computer

met infrarood afstandsbedlemng

door T. B.W. van Tintel en

Rapport van de afstudeeropdracht voor de H.T.S. te Eindhoven

uitgevoerd van sept/eo

tIm

mei

la'

In opdracht van ir: W.H. Leliveld

onder I eidlng van ing. R. So kk~r

(3)

gehandicapt persoon die d.m.v. dit apparaat een aantal funkties in zijn omgeving via een enkele drukknop kan bedienen. Op deze wijze kan de gehandicapte een grotere onafhankelijkheid van zijn omgeving realiseren, hij is nu in staat een aantal beslissingen zelfstandig te nemen.

De hier beschreven monoselector is opgebouwd rond een single-chip microcomputer en is voorzien van een infrarood afstandsbediening. Er kunnen totaal 56 funkties op afstand worden bediend met de nieuwe monoselector. Door toepassing van de single-chip microcomputer was het mogelijk de monoselector als een klein handzaam apparaatje te realiseren.

(4)

geweest binnen de groep gehandicaptenzorg van de onderafdeling Medische Elektrotechniek. Bij deze wilik dan ook mijn directe begeleiders:

lr. W.H.Lelieveld, lng. R.Bakker en Dhr. H.Ossevoort hartelijk danken voor de geboden ondersteuning tijdens mijn afstudeerperiode.

Aan de lezers van dit rapport wil ik tenslotte nog mededelen dat er geen verslag is gedaan van de ontvangerschakelingen van de afstands-bediening voor de monoselector. Ten tijde van het afronden van dit verslag waren de daarvoor bestelde onderdelen nog niet binnengekomen.

(5)

Voorwoord Inhoudsopgave

Hoofdstuk 1: Inleiding

Hoofdstuk 2: Principebeschrijving van de Monoselector

Hoofdstuk 3: De 8748 Single Chip Microcomputer 3.1 Inleiding

3.2 De architectuur van de 8748 3.2.1 De rekenkundige sectie 3.2.2 Het programma geheugen 3.2.3 Het datageheugen

3.2.4 Input/Output

3.2.5 De programma-teller en stack 3.2.6 Het programma status woord 3.2.7 De conditionele spronglogica 3.2.8 Interrupt

3.2.9 De Timer/Event Counter 3.2.10 De klok en timing circuits 3.2.11 De Reset

3.2.12 De Single Step Mode 3.2.13 De External Access Mode 3.3 Penbeschrijving van de 8748

3.4 Programmeren, controleren en wissen van de EPROM 3.4.1 Programmeren en controleren van de EPROM 3.4.2 Wissen van het EPROM-geheugen

3.5 Test- en controlemogelijkheden van de 8748 3.5.1 De Single Step Mode

3.5.2 De Exrernal Access Mode

3.5.3 Lezen van het programmageheugen

2 3 5 6 8 8 8 :3 10 11 12 15 17 1~ 18 20 22 24 24 26 1~ ~g ~g 2.cr 30 31 31

(6)

3.6.4 Vlag instructies 3.6.5 Sprong instructies 3.6.6 Subroutine instructies

3.6.7 Timer/Event counter instructies 3.6.8 Controle instructies

3.6.9 Input/Output instructies Hoofdstuk 4: De Infrarood afstandsbesturing

4.1 Inleiding 4.2 De Informatie overdracht 4.3 De zender 4.4 De ontvanger 4.4.1 De voorversterker 4.4.2 De SAB 3271 ontvanger 4.4.3 De selectieschakeling

Hoofdstuk 5: Beschri.iving van de t-1onoselectorschakeling

5.1 Inleiding 5.2 Blokschema Monoselectorschakeling 5.3 De Monoselector schakeling 5.4 Ulterlijk t-1onoselector 34 34 35 35 35 35 36 36 36 3e 40 40 41 44 46 46 46 4~

54

Hoofdstuk 6: De oro;;rammabeschrijving 55 6 . 1 Inleiding 55

6.2 Blokschema voor het Monoselector/zender programma 55

6.3 Ret Monoselector/zender programma 58

6.4 De Zendcode tabel 67

Literatuurli,ist

Bijlage I De instructieset van den 8748

Bijlage II : De print lay-out + componenten

Bijlage III: Data-sheets

69

84

(7)

rood afstandbediening. De reden dat de monoselector met een single-chip microcomputer moest worden opgebouwd lag in het feit dat men een handzaam apparaatje wilde. De software van de microcomputer zou de meeste funkties van de monoselector moeten realiseren. Door de infrarood afstandsbediening zou het apparaat mobiel worden en minder installatieproblemen opleveren. De bestaande monoseJector heeft nl. als nadelen dat hij niet als hand-apparaat te gebruiken is en veel installatiewerkzaamheden, met bijbehorende kosten, met zich meebrengt. De nieuwe monoselector zou, indien mogelijk, ook meerdere funkties moeten kunnen bedienen omdat de 16 funktiemogelijkheden van de bestaande monoselector niet toereikend worden gevonden. Yet principe van de oude monoselector is overgenomen in deze nieuwe versie.

Het rapport wordt begonnen met een uitgebreidere principe-beschrijving, waarbij ook het principe van de vorige monoselector wordt aangegeven. Daar de single-chip microcomputer centraal staat in de mono-selector wordt deze in hoofdstuk 3 uitgebreid beschreven. In hoofdstuk 4 komt de infrarood afstandsbediening aan de orde, waarbij nader wordt

ingegaan op de zender, de ontvanger en de wijze van informatie~overdracht.

De realisatie van de monoselector met infrarood zender komt in hoofdstuk 5 aan de orde. In hoofdstuk 6 wordt tenslotte de software in de microcomputer beschreven.

(8)

schakelen van deze monoselector worden de kanalen, met een tussentijd van ongeveer 2 sec., cyclisch doorlopen. De selectieprocedure van.een bepaald kanaal verloopt nu als voIgt: na het inschakelen van het kanaal wordt er op de drukknop gedrukt ten teken dat men het kanaal wil selec-teren. Er gaat dan een wachttijd in waarbinnen een bevestiging van de selectie moet worden gegeven door nogmaals de drukknop te bedienen.

Is dit gebeurd dan wordt de aan het geselecteerde kanaal verbonden funktie uitgevoerd. In het andere geval wordt na het einde van de wachttijd het volgende kanaal ingeschakeld. Deze seleetieprocedure wordt overgenomen in de hier beschreven monoselector.

Met de nieuwe monoselector zullen, zoals zal blijken uit dit rapport, 56 kanalen worden gerealiseerd. De methode van het cyclisch door-lopen is dan niet erg efficient meer, zodat we overgaan op een indeling van de kanalen in groepen. Er is daarbij gekozen voor een indeling van

8 groepen met ieder

7

kanalen. De ingeschakelde groep wordt aangegeven door

een

7

segment-display en de kanalen worden aangegeven d.m.v.

7

LED's.

Na het inschakelen van de monoselector komt deze in een rust-toestand die wordt aangegeven als groep 1. Na net bedienen van de drukknop

worden de groepen 1 maal cyclisch doorlopen. Iede~e groep kan dan

geselec-teerd owrden volgens de aangegeven selectieprocedure. Na selectie van een bepaalde groep worden de bijbehorende kanalen eenmaal cyclisch doorlopen, ook ieder kanaal kan op de aangegeven wijze worden geselecteerd. Na het doorlopen van de kanalen wordt de volgende groep ingeschakeld. Als alle groepen zijn doorlopen komt de monoselector weer in de rusttoestand.

Na het definitief selecteren van een bepaald kanaal uit een van de groepen wordt door de infrarood zender de, bij dit kan3al behorende,

code uitgezonden. De ontvanger die is afgesteld op deze code zal dan reageren en de bijbehorende funktie uitvoeren. De monoselector kan dan in het totaal 56 ontvangers aansturen.

(9)

de kanalen van groep 1 zeer snel bereikbaar zijn zodat hier de rneest urgente funkties kunnen worden ondergebracht.

Tenslotte nog enkele oprnerkingen. In de vorige rnonoselector worden op voorzijde de geselecteerde kanalen aangegeven. Djt is bij de nieuwe

rnonoselector niet rnogelijk orndat er geen terugkoppeling is tussen zender en ontvanger. Daarorn wordt er op iedere ontvanger een indicatie aange-bracht die aangeeft of de ontvanger het infrarood commando heeft opge-vangen. Verder kan opgernerkt worden dat de bediening van de drukknop ook op andere wijze kan plaatsvinden bijv. d.rn.v. een akoustisch sjgnaal of door het opwekken van een drukverschil (blazen of zuigenl.

Tenslotte kan opgernerkt worden dat de te verrichten funkties niet uit~

sluitend van elektrische aard hoeven te zijn. Ook andere funkties die bijv. door een elektrornotor of -rnagneet te bedienen zijn, kunnen door de rnonoselector gestuurd worden.

(10)

Door het toepassen van nieuwe ontwikkelingen in de ~10S-tec~!olo­

gie is men er bij Intel in geslaagd een single-chip microcomputer te ont-wikkelen die alle functies, nodig in een digitaal processing systeem, in zich heeft. De hieruit voortgekomen set single-chip microcomputers met bij-behorende peripherie wordt de MCS-48 microcomputer-familie genoemd.

Het hoofd van de familie, de 8048 microcomputer, is behuisd in een 40 pen's package en bevat de volgende functies:

1) 8 bit Cpp

2) 1 K x 8 ROM programmageheugen 3) 64 x 8 RAM datageheugen

4) 27 I/O-lijnen

5) 8 bit Timer/Event Counter.

Met een minimum machine-cyclustijd van 2.5~sec. en een repertoire van meer

dan 90 instructies, die alle 1 of 2 machine-cycli omvatten, is de 8048 in prestatie te vergelijken met de laatste multi-chip NMOS microprocessor.

Omdat de 8048, door toepassing van ROM programmageheugen, 21echt toepasbaar is voor systeemontwikkeling, heeft men ook een EPROM-versie, de 8748, op de markt gebracht. Deze versie is vooral bedoeld voor het ontwikke-len van prototypes, vandaar dat hij hier wordt toegepast voor de

mono-selector.

In dit hoofdstuk wordt verder ingegaan op de 8748 microcomputer. Allereerst wordt in3.2 aan de hand van het blokschema de architectuur van de 8748 besproken. Daarna wordt in3.3 een penbeschrijving van het IC gege-Yen. In3.4 wordt ingegaan op de behandeling van de EPROM waarna in3.5 de test- en controlemogelijkheden van de 8748 worden aangegeven. Tenslotte wordt in3.6 ingegaan op de instructieset van de 8748.

3.2 De architectuur van de 8748

In deze paragraaf wordt de 8748 onderverdeeld in een aantal functionele blokken, die dan in detail worden beschreven. Deze onderverde-ling is gemaakt aan de hand van het blokschema van de 8748 dat in fig. 3. 1 wordt weergegeven.

(11)

~ES'OENT ~AMARFIAY 54, • )7 MUL TIPLEXER I FlEGISTEFI

,

i ~EGISTER I I FlEGISTER 2 : QEGISTER J , QEGISTER • ! REGISTER 5 FlEGISTERREGISTER , "- 8 lEVEL STACK / (VARIABl.e LENGTH! OPTIONAL SECONO REGISTER SA-Nit OATASTO~E I I I

I

I

L

TEST , TEST ()

ACC BITTeST TIMERFLAG ACC CARRY INT FLA.GO FlAG 1 '---./'1'CONOITIONAl BRANCH LOGIC y j

SINGLE READ WRITE

SUP STROBES CONTROL AND TIMING

E.... XTA.ll XTAL1 ALE ! I I i , INT ~ ~oo l ~ t ! I~HI;'l'lE· ; ! •

INTfRFH,JPT PROMI CPU, O$CllLArOft ADORESS PROGR,l.M EXPANDER. MEMORY (TAL LATCH "'EMORY

STR08£ S(PARATE'- STROBE EHA8llE CYCLE CLOCk . il.

U

~. r, I i ij L ~. l' V

<!

V ~; ,,/ PORT' . --"'-- ::.L ...::.::._:- .;;L -::._L ~ ---'" aus B! c---....".-~,/1 a~~;R LArCH [~GNO FlJ~~V Yl

figuur 3.1: Het blokschema van de 8748 3.2.1 De rekenkundige sectie

De rekenkundige sectie bevat de fundarnentele datarnanipulatie-functies van de 8748 en kan onderverdeeld worden in de volgende blokken:

Arithmetic Logic Unit (ALU) Accumulator

Carry-vlag

Instructie-decoder.

In een typische operatie wordt data, opgeslagen in de accumulator, in de ALU gecombineerd met data van een andere bron, die eveneens is aangesloten op de interne bus (zoals een register of een I/O-poortJ. Het resultaat wordt opgeborgen in de accumulator of in een ander register. In het onderstaande worden de genoemde blokken in detail besproken.

(12)

*

Instructie Decoder: Het opcode-gedeelte van iedere programma-instructie wordt opgeslagen in de instructie-decoder en geconverteerd naar een aantal lijnen die de functies van de afzonderlijke blokken van de rekenkundige sectie sturen. Deze lijnen sturen de bron van de data, het bestemmingsregister en de functie uitgevoerd in de ALU.

*

Arithmetic Logic Unit: De ALU accepteert 8 bit data-woorden van 1 of 2

bronnen en genereert, onder controle van de instructie-decoder, een 8 bit resultaat. De ALU kan de volgende functies uitvoeren:

- optellen met of zonder carry - And, Or, Exclusive Or

- 1 verhogen of verlagen - een bit inverteren

- naar links en rechts schuiven - omwisselen van nibble's (4 bit) - omzetten in BCD-code.

*

Carry-vlag: Als het resultaat van een operatie, uitgevoerd in de ALU,

wordt gepresenteerd door een woord van meer dan 8 bit, wordt de carry-vlag geset in het programma status woord.

*

Accumulator: De accumulator is het belangrijkste dataregister in de

pro-cessor. De accumulator is een van de databronnen voor de ALU en vaak de be stemming van het resultaat van de, in de ALU uitgevoerde opdracht. Data-transporten van en naar de I/O-poorten en het geheu-gen gaan in het norrnale geval ook via de accumulator.

3.2.2 Het programmageheugen

Het programrnageheugen bestaat uit 1024 woorden, 8 bit breed, die

geadresseerd worden door de programma-teller. In de 8748 bestaat dit

geheu-gen uit een, door de gebruiverprogrammeerbare en uitwisbare EPROM.

In het programmageheugen is aan drie locaties een speciale bete-kenis gegeven, deze locaties, met hun speciale betebete-kenis, zijn:

*

Locatie 0: Het activeren van de reset-lijn van de processor

heeft tot gevolg dat de eerste instructie wordt op-gehaald in locatie O.

(13)

Daarom moet de eerste instructie, die na initiali-satie moet worden uitgevoerd, opgeborgen worden in locatie O.

*

Locatie 3: Het activeren van de interrupt-ingangslijn van de

processor veroorzaakt een sprong naar locatie 3. Daarom moet het eerste woord van de externe interrupt service routine worden opgeborgen in locatie 3.

*

Locatie 7: Ee~ Timer/Counter interrupt, voortvloeiende uit een

overflow, veroorzaakt een sprong naar locatie

7.

Daarom moet het eerste woord van de Timer/Counter

service routine worden opgeborgen in locatie

7.

De sprongen naar locaties 3 of 7 vinden aileen plaats als de betreffende

interrupts zijn toegestaan. 3.2.3 Het datageheugen

Het datageheugen bestaat uit 64 woorden van 8 bit breedte. Aile geheugenlocaties zijn indirect adresseerbaar door een van de twee

RAM Pointer registers, RO en R1, die zich bevinden in locaties 0 en 1 va~

het datageheugen.

De eerste 8 locaties (0 tim 7) ZlJn bestemd als werkregisters,

deze zijn door verscheidene instructies direct adresseerbaar. Om deze reden worden ze vaak gebruikt voor tijdelijke opslag van tussenresultaten die her-haald in het programma nodig zijn.

Door het verwerken van een Register Bank Switch instructie

(SEL RB) worden de locaties 24 tim 31 aangewezen als werkregisters in plaats

van locaties 0 tim 7. Deze tweede registerbank is ook door verscheidene

instructies direct adresseerbaar en kan gebruikt worden als uitbreiding van de eerste bank. Ook kan men deze t,veede bank reserveren voor gebruik tijdens een interrupt service routine, zodat de registers van bank 0, die worden gebruikt in het hoofdprogramma, ongeschonden blijven. Indien geen gebruik

wordt gemaakt van de tweede bank zijn de locaties 24 tim 31 normaal

adres-seerbaar door de RAM pointer registers. Omdat de twee RAM pointer registers deel uitmaken van de registerbank worden, door invoering van de tweede bank, twee extra pointer registers gecreeerd. Op deze wijze zijn 4 RAM-locaties gemakkelijk bereikbaar.

(14)

I I

A~~~~~:LEj WHENBA~K1I IS SELECTED , i ---J ADDRESSED INOIAECll \' THROUGH HIORRO IRO'DRRI"'

~I

I I OIRECTl y l ADDRESSABLEI WHEN BANK 0j IS SHECTED :

--lJ

USER RAM J2.8 SANK 1 WORKING REGISTERS 8.8 - - - -RT" - - - -- - - -Rii' - - -8lEVEl S1ACl( OH USER RA'04 ~IiJlY BANK 0 WORKING REGISTERS &.8 ----Ri--- ----iiQ---32 31 6J 24 23

programma- en data-geheugen wordt in

LOCATION 3 - E>CTERNA' IN l''f,RRUPT VECTORS !'ROOAAY. HERS

LOCA. nUN] - TIMER INTERRUPT VECTQP5 PROGRAM HERE itE:SE'T VECTORS ..- - PROGRAM HERE ~

-I 'lsls1413121'l o 8 7 8 5 AOOHESS 1023 o figuur 3.2: Het programma- en data-geheugen

De RAM locaties 8 tim 23 vervullen eveneens een dubbele rol omdat zij de programmateller stack bevatten (zie3.2.6). Deze locaties worden bij het aanroepen van een subroutine geadresseerd door de stack-pointer, zij kunnen echter ook gewoon door de RAM pointer registers worden geadresseerd. Indien er minder dan 8 niveaus diep genest wordt, zijn niet alle stackregisters nodig, deze kunnen dan als gewone RAM locaties worden

gebruikt. Per niveau dat minder diep genest wordt, komen _e~ 2 RAM

loca-ties vrij.

De configuratie van het figuur 3.2 nogmaals weergegeven.

3.2.4 Input/Output

De 8748 heeft 27 lijnen die gebruikt kunnen worden voor input-of outputfuncties. Deze lijnen zijn verdeeld in drie poorten (P1, P2 en BUS) met 8 lijnen, die kunnen dienen als ingangen, uitgangen of bidirectionele lijnen, en 3 testingangen (TO, T1 en INT) die het programmaverloop kunnen beinvloeden wanneer ze getest worden door conditionele spronginstructies. In het onderstaande worden de I/O-mogelijkheden van de 8748 meer in detail besproken.

(15)

Poort 1 en 2

Poort 1 en 2 zijn beide 8 bit breed en hebben identieke eigen-schappen. Data, weggeschreven naar deze poorten, worden aldaar opgeslagen en blijven onveranderd totdat ze overschreven worden door nieuwe data. Als input-poorten bezitten deze lijnen geen opslagmogelijkheid voor data, dit houdt in dat de input-data op de poort aanwezig rnoeten blijven totdat

ze gelezen worden door een input-inst~~ctie.

De lijnen van poort 1 en 2 worden quasi-bidirectioneel genoernd vanwege de speciale uitgangscircuit-structuur waarrnee iedere lijn kan dienen als ingang , uitgang of beide. Deze poortstructuur wordt in figuur 3.3 weergegeven. ORl. ANl <-5V +5V a 0 .. SOK 0 I/O FLIP PIN FLOP PQRT 1 AND2 elK a -INTERNAL BUS -+----1 WRITE- t - - - . - . . - - - . . . J PULSE IN

(16)

Zoals blijkt uit de figuur, wordt iedere lijn continue opge-trokken naar +5V door een relatief hoge impedantie van 50 k.n.. Deze "pullup" is voldoende voor het leveren van de stroom voor een hoog TTL-niveau maar kan tevens laag getrokken worden door een standaard TTL-gate. Op deze wijze wordt de mogelijkheid geschapen voor input en output op dezelfde pin.

Hanneer een "1" wordt weggeschreven naar de I/O-pin, wordt

gedure~de de Write-puts (! 500 ns) de bovenste FET opengestuurd.Deze FET

vertegenwoordigt een relatief hoge impedantie

(!

5 ~), waardoor een snelle

0-1 overgang mogelijk wordt. Bij het wegschrijven van een "0" wordt de

onderste FET, die een impedantie vertegenwoordigt van + 300JL ,

openge-stuurd zodat de uitgang naar "0" wordt getrokken. Omdat de onderste FET een relatief lage impedantie heeft moet er, voordat een I/O-pin als

input kan worden gebruikt, een "1" naar deze lijn worden geschreven om de onderste FET dicht te sturen. Door een systeem-reset worden aIle lijnen ...leer in de hoog-impedante "1 "-status gebracht, beide FET' s zijn dan dichtgestuurd.

De hierboven geschetste poort-structuur geeft de mogelijkheid tot input en output op dezelfde I/O-pin en een mix van input- en output-lijnen op dezelfde poort. De quasi-bidirectionele poorten, in combinatie met de ANL en ORL-instructies, geven voldoende mogelijkheden aan de proces-sor voor het verwerken van input en output op afzonderlijke lijnen.

BUS

BUS is een 8 bit bidirectionele poort met daarbij behorende input- en output-pulsen. Indien de bidirectionele eigenschap van BUS niet benodigd wordt, kan deze dienen als output-poort met en input-poort zonder data-opslagmogelijkheid. Een combinatie van input- en output-lijnen is bij deze poort niet mogelijk.

Bij gebruik van BUS als statische poort worden data weggeschreven en opgeslagen d.m.v. een OUTL-instructie, het binnenhalen van data geschiedt d.m.v. een INS-instructie. Deze INS- en OUTL-instructies genereren pulsen

op de corresponderende

RD-

en WR-outputlijnen, echter bij gebruik van BUS

(17)

Bij gebruik als bidirectionele poort worden de MOVX-instructies toegepast voor het lezen van en schrijven naar de poort. Bij het wegschrij-ven van data naar BUS wordt er een puls gegenereerd op de WR-outputlijn, deze outputdata zijn geldig voor het externe systeem op de stijgende flank van WR. Bij het uitlezen van BUS wordt er een pUls gegenereerd op de RD-outputlijn, inputdata moe ten op de BUS-lijnen aanwezig zijn op de stijgende flank van RD. Wanneer er niet gelezen of geschreven wordt zijn de lijnen

van BUS in de hoog impedante "1" status.

Test en OO-inputs

Drie I/O-pennen, TO, T1 en INT, dienen als inputs en kunnen ge-test worden d.m.v. conditionele'spronginstructies.-Deze pennen creeren de mogelijkheid om sprongen in het programma te maken op grond van input-waarden, die niet eerst via een input-poort in de accumulator gehaald moeten worden.

De TO, T1 en INT pennen kunnen ook nog andere funkties hebben, maar deze

worden beschreven in de pen-beschrijving (zie 3.3). 3.2.5 De programma-teller en de stack

De programma-teller is een onafhankelijke teller, terwijl de

programma-teller stack is aangewezen op het gebruik van registerparen in het

datageheugen. Slechts 10 bit's van de programma-teller worden gebruikt voor

het adresseren van de 1024 woorden van het eigen programmageheugen. De 2

meest signifikante bit's van de 12 bit's pro'gramma-teller' worden gebruikt

voor het adresseren van extra extern programmageheugen. Bij een systeem-reset wordt de programma-teller op nul gezet.

Bij een interrupt of een subroutine-CALL wordt de inhoud van de teller opgeborgen in een van de 8 registerparen van de programma-teller stack. Het registerpaar dat hiervoor gebruikt moet worden, wordt aangeduid door een 3 bit's stack-pointer, deze stack-pointer is een deel

van het programma status woord (PSW). Locaties 8 tim 23 van het datageheugen

zijn beschikbaar als stackregisters en worden gebruikt voor het opbergen va~

de programma-teller en 4 bit's van het progr~ma status woord. In figuur

(18)

101 100 011 010 001 000

·

·

• • • •

·

·

·

". •"PSW PCs_" PC4-7PCGJ 18 17 16 15 14 13 12 11 10 9 A8 MSB lSB

figuur 3.4: de programma-teller stack

Wanneer de stackpointer, bij de systeem-reset, op 000 wordt gezet

wijst hij de RAM-locaties 8 en

9

aan. De eerste interrupt of sprong naar

een subroutine resulteert in het opbergen van de programma-teller in

locaties 8 en 9. De stack-pointer wordt dan met 1 verhoogd en wijst naar

locaties 10 en 11 in afwachting van een volgende subroutine-CALL. Het nesten van de subroutines binnen subroutines kan maximaal 8 niveaus diep gaan voordat er een stack-overflow optreedt. Indien er een overflow

optreedt wordt het eerste opgeborgen terugkeeradres overschreven (locaties

8 en 9) omdat de stack-pointer overgaat van 111 naar 000. Een underflow

van 000 naar 111 is ook mogelijk.

Aan het einde van een subroutine, dat aangegeven wordt door een return-instructie (RET of RETR) wordt de stack-pointer met 1 verminderd

en de inhoud van het dan aangeduidde registerpaar wordt overgebracht

(19)

3.2.6 Het programma status woord

Het programma status woord is in feite een verzarneling van een

aantal FF's uit de machine, die zijn sarnengebracht in een 8 bit'~ woord.

Het programma status woord kan naar de accumulator worden overgebracht, waar getest en veranderd kan worden, en daarna weer worden teruggezet. Dit geeft een mogelijkheid voor een snel en gemakkelijk herstel van de

machine-status na een storing in de voedingsspanning.

In

figuur3.5 wordt

de sarnenstelling van het programma status woord weergegeven. SAVED IN STACK

! STACK POINTER(

~I-'

_cV--,-i_A_C_ _

FO_~

lSB

figuur 3.5: het programma status woord

De 4 meest signifikante bit's van het programma status woord worden bij iedere interrupt en bij iedere subroutine-CALL opgeborgen in de programma-teller stack. Bij terugkeer uit de subroutine met een RETR-instructie worden deze 4 bit's weer in het programma status woord terugge-zet, bij terugkeer d.m.v. een RET-instructie is dit niet het geval.

De bit's van het programma status woord zijn als volgt gedefinieerd:

bit 0-2: de stack-pointer (SO, S1, S2)

bit 3 niet gebruikt (niveau "1" bij lezen)

bit 4 werkregister bank aanduiding~ 0

=

bank 0; 1

=

bank 1

bit 5 vlag 0 (FO), .dit is een door de gebruiker controleerbare vlag, die

getest kan worden d.m.v. een conditionele spronginstructie (JFO).

bit 6 auxiliary carry (AC), deze carry wordt gegenereerd door een

ADD-instructie en wordt gebruikt bij het omzetten van een binaire code in BCD-code.

bit 7 carry (CY), deze carry geeft aan dat de voorgaande operatie

(20)

3.2.7 De conditionele sprong logica

De conditionele sprong logica binnen de processor brengt ver-schillende interne en externe condities naar de processor alwaar ze getest kunnen worden door het gebruikersprogramma. Door gebruik te maken van con-ditionele spronginstructies kunnen de volgende condities een verandering teweeg brengen in de volgorde van de programma-executie.

Testbaar onderdeel Sprongcondities

Accumulator

=

0 f- 0

Accumulator-bit

-

1

Carry-vlag 0 1

Gebruikers-vlaggen

-

1

(FO, F1)

Timer overflow vlag

-

1

Test inputs (TO,T1) 0 1

Interrupt-input (INT) 0

-3.2.8 Interrupt

Een interrupt-routine wordt gestart door het aanbrengen van een "0" niveau op de INT input-pin. Een interrupt wordt gedetecteerd op een niveau en is laag actief om de gebruiker de mogelijkheid te geven meerdere interruptbronnen via een OR-funktie aan de lNT-pin te hangen. De interrupt-lijn wordt iedere machine-cyclus gecontroleerd en wanneer een interrupt wordt gedetecteerd veroorzaakt dit, nadat aIle cycli van de lopende instruc-tie zijn afgewerkt, een sprong naar de subroutine op locainstruc-tie 3 van het

programmageheugen. Zoals bij iedere sprong naar een subroutine worden de programma-teller en het programma status woord opgeborgen in de progrmrrna-teller stack. Geheugenlocatie 3 van het prpgrammageheugen bevat meestal een niet-conditionele jump naar een interrupt service routine elders in het programma-geheugen.

Het einde van de interrupt service routine wordt aangegeven door een

RETR-instructie, de progra~a-teller en het programma status woord worden dan

(21)

Het interrupt-systeern heeft slechts niveau, dit houdt in dat na het optreden van een interrupt alle daarop volgende interrupts worden genegeerd totdat een RETR-instructie de interrupt input logica weer vrij-geeft. Dit geldt eveneens voor een interne tLmer/counter-interrupt gegene-reerd door een timer-overflow. Indien een interne timer/counter interrupt en een externe interrupt gelijktijdig optreden wordt alleen de externe bron erkend. Indien noodzakelijk, kan een tweede externe interrupt worden gecreeerd door de timer/counter-interrupt toe te staan, de timer/counter te laden met FF en deze te gebruiken als event-counter. Een 1-0 overgang

op de T1 input veroorzaakt dan een sprong naar locatie

7

van het

programma-geheugen. In figuur 3.6 wordt de interrupt-logica van de 8748 weergegeven.

TIMER TERHurl COGNIZED XTERNAL Te'tRUpT COGNIZED - S CONDITIONAL JUMP LOGIC TIMER FLAG INTERRUPT

J '

R EXECUTEDCALL

I

--'

CLR

0r-~

D RE S 0 TIMER

Ci~'N

OVERFLOW

'Jf

FF CLK 1 HE R

:

,

-

1

]

-

"'

J J ')

-

S a

-

INTERRUPT IN PROGRESS S 0 FF - R 1 TIMER INT ENABLE ]

"

R at--.J

-A

~ D I INT i RESF FF !"lETR a

-

EXECUTED

-

CLK

U-LE ]

"'

y LE J

-EN I S 0 -EXECUTEO INT ENABLE

J )

R

-DIS I EXECUTED RESET RESET DIS TCNTI EXECUTED A LAST CYC OF INST. TIMER OVERFLOW iNT PIN RESET EN TCNTI EXECUTED TIMER INT RECOGNIZ EXECUTED JTF EXECUTED RESET

(22)

moet ongedaan gemaakt worden voordat de RETR-instructie verwerkt wordt, omdat anders de service-routine direkt na terugkeer in het hoofdprograrnma opnieuw wordt aangeroepen. Dit kan men o.a. realiseren door een van de uitgangslijnen van de 8748 te bestemmen als interrupt-aanvraag bevestiging, deze lijn wordt geactiveerd door de service-routine en maakt de externe interrupt-aanvraag ongedaan.

De INT-pin kan ook getest worden m.b.v. een conditionele sprong-instructie(jNI). Deze instructie kan worden gebruikt voor het detecteren van een aanwezige interrupt als interrupts nog niet door het gebruikers-porgramma worden toegestaan. Indien interrupts in het geheel niet worden toegestaan of niet benodigd zijn, kan de INT-pin als testingang worden gebruikt zoals de TO- en de T1-pin.

3.2.9 De Timer/Event Counter

De 8748 bevat een teller die de gebruiker in staat stelt externe gebeurtenissen te tellen (Event Counter mode) en precise tijdsintervallen te genereren (Timer mode) zonder daarmee de processor te belasten. De funktie van de teller is in beide modes hetzelfde, het verschil ligt in de bron van input.

De omhoogtellende 8 bit binaire teller kan geladen en gelezen worden d.m.v. twee MOV-instructies die de accumulator-inhoud naar de teller overbrengen en omgekeerd. De tellerinhoud wordt niet belnvloed door een systeem-reset en kan alleen veranderd worden door een MOV T,A-instructie.

De teller wordt gestopt bij een systeern-rest of door een STOP TC~T instructie,

hij kan daarna opnieuw opgestart worden als Timer, door een STRT T-instructie of als Event Counter, door een STRT CNT-instructie. Na het starten van de teller wordt deze steeds met 1 verhoogd tot het maximum FF, waarna een overflow optreedt naar 0 terwijl de teller gewoon doorloopt.

(23)

Bij een overflow van FF naar 0 wordt de overflow vlag FF geset en er wordt een interrupt-aanvraag gegenereerd. Deze overflow vlag kan getest worden met een conditionele spronginstructie, na deze test wordt de over-flow flag gereset, dit laatste gebeurt ook na een systeem-rest. De inter-rupt-aanvraag wordt opgeslagen in een FF en in een OR-poort gestopt tezamen met de ext erne interrupt-input.

Een Timer-interrupt wordt, onafhankelijk van de externe interrupt, al of niet toegestaan door het gebruikersprogramma door de EN TONTI en DIS TCNTI instructies. Indien een Timer-interrupt is toegestaan zal een over-flow van de teller resulteren in een sprong naar locatie 7 van het programma-geheugen, alwaar de eerste instructie van de Timer/Counter service routine is opgeslagen. Indien de Timer/Counter interrupt en de externe interrupt gelijktijdig verschijnen zal de externe bron erkend worden met als resultaat een sprong naar locatie 3 van het programmageheugen. Omdat-de

rimer-inter-rupt wordt vastgehouden, blijft deze geldig tot het externe apparaat

ver-zorgd is en zal, na terugkeer u~t de interrupt service routine, direkt

erkend worden zodat dan direkt naar locatie 7 van het programmageheugen wordt gesprongen. De Timer interrupt FF wordt gereset na een sprong naar locatie 7 van het programmageheugen of door het verwerken van een DIS TCNTI instructie.

De teller kan in de Event Counter-mode of in de Timer-mode worden gebruj.kt. Beide modes worden nu nader bekeken, het bijbehorende blokschema wordt weergegeven in figuur 3.7.

PRESCALER

X T A L , 1 5 - 32

ENABLE

o

STOP T NOT CLEARED ON RESET

JUMP ON TIMER FLAG LOAD OR READ

I

B BIT TIMER! EVENT COUNTER START TIMER EDGE DETECTOR . . . . - - - - -... START COUNTER CLEARED ON START TIMER

(24)

waarmee dit kan gebeuren is een maal per drie instructie-cycli en zodoende afhankelijk van de kristalfrequentie, er is geen minimum snelheid. De T1-input moet bij gebruik van een 6 MHz-kristal minstens 500 nsec. hoog blijven. De Timer Mode

Door een STRT T instructie wordt een interne klok met de teller verbonden, tevens wordt de teller vrijgegeven. Deze interne klok wordt

af-geleid van de machine cyclusklok ALE (ALE

=

kristalfrequentie:15) die door

een 32-deler wordt gevoerd. De uitgang van deze deler wordt aan de teller wlJze

gekoppeld die op dezevsteeds verhoogd wordt met een frequentie gelijk aan

de kristalfrequentie:480. De 32-deler wordt gereset bij het starten van de Timer.

De verschillende tijdvertragingen worden gerealiseerd door

tel-pulsen tussen 0 en 256 te tellen • Grote tijdvertragingen 0~nnen worden

gerealiseerd door het tellen van Timer-overflows in een van de werkregisters onder controle van het gebruikersprogramma. Voor zeer korte tijdsintervallen kan een externe klok op de T1-pin worden aangeboden terwijl de teller gebruikt wordt in de Event Counter Mode, de machine cyclusklbk (ALE) kan hiervoor

gebruikt worden. Zeer kleine tijdsvertragingen kunnen eveneens gerealiseerd worden d.m.v. software vertragingslussen.

3.2.10 De klok en timing circuits

De timing van de 8748 microcomputer wordt geheel intern verzorgd met uitzondering van een frequentie-referentie die kan bestaan uit een kristal, een spoel of een externe klok. De klok en timing circuits kunnen onderverdeeld worden in de volgende funktionele blokken.

Oscillator

De interne oscillator is een haag kwalitatief serie resonantie

circuit met een frequentiebereik van 1 tat 6 MHz. De X1-pin is de ingang

(25)

Een kristal of spoel, bevestigd tussen

Xl

en

X2,

zorgt voor de terugkoppe-ling en fase-verschuiving nodig voor oscillatie. Bij gebruik van een spoel

ligt het frequentiebereik van de interne oscillator tussen 3 en

5

MHz, de

nauwkeurigheid van de frequentiereferentie is in dit geval veel lager

dan bij gebruik van een kristal. Voor frequenties hoger dan

5

MHz moet

altijd een kristal worden toegepast. Een extern gegenereerde klok kan ook met

X1-X2

worden verbonden en dienen als frequentiereferentie.

State Counter

De uitgangsfrequentie van de interne oscillator wordt in de state-counter door 3 gedeeld. De klok aan de uitgang van de state-state-counter (CLK) definieert de duur van een machine-toestand (state). CLK kan extern beschik-baar gemaakt worden op pin TO door executie van de ENTO CLK-instructie. Het uitsturen van CLK op de TO-pin wordt ongedaan gemaakt door een systeem-reset.

Cycle-Counter

CLK wordt in de cycle-counter door

5

gedeeld voor het opwekken van

een klok die de duur van een machine-cyclus, bestaande uit

5

toestanden,

definieert. Deze klok wordt Address Latch Enable (ALE) genoemd vanwege zijn funktie in MCS-48 systemen met extern geheugen. Deze klok is constant aan-wezig op de ALE output pin.

In figuur 3.8 worden de klok en timing circuits schematisch weerge-geven, waarbij tevens het verband met de instructiecyclus wordt gelegd. In het tijddiagram worden beide klokken aangegeven.

.

2.5UHCCYCLE ,

I 55 51 S2 SJ I Sol I 55 51

I INPUTIN5T. DECODE EXECUTION INPUT

OUTPUT ADDRESS INC. PC OUTPUT ADDRESS

I

I

I

I

I

I

55 S3 S2 SI S5 Sol S2 Sf ALE --If----+---+--J CLOCK OUT ON TO

(26)

3.2.11 De Reset

De 8748 processor wordt gelnitialiseerd m.b.v. de reset-input. Deze Schmitt-trigger ingang heeft een interne "pullup" weerstand die in

combinatie met een externe 1ftF condensator een puls genereerd van zodanige

lengte dat alle interne circuits gereset worden. Indien de resetpuls extern gegenereerd wordt, moet de reset-pin, na inschakelen van de voedingsspanning, minstens 10 mslaag gehouden worden. Indien de voedingsspanning en de

oscillator al stabiel zijn, hoeft de lengte van de resetpuls slechts 5

machine-cycli te bedragen. Beide reset-mogelijkheden, de externe reset en de power on reset worden in figuur 3.9 aangegeven.

POWER ON RESET EXTERNAL RESET

~

TTL

Rm0T~

, DlCTIVf PUlllH'

figyur 3.9: de externe en power on reset

Tijdens een systeem-reset worden de volgende acties uitgevoerd:

1.

De programma-teller wordt op nul gezet.

~. De stack-pointer wordt op nul gezet.

1.

Registerbank 0 wordt geselecteerd.

~. Gegeheugenbank 0 wordt geselecteerd .

.2,. BUS wordt in de hoog impedante toestand gebracht (behalve wanneer

EA = 5V).

~. Poort 1 en 2 worden in de input-mode gezet.

~. Interrupts worden niet toegestaan.

1i.

De interne teller wordt gestopt.

~. De Timer/Counter vlag wordt gereset.

~. Vlag 0 en 1 worden gereset.

11.

CLK wordt niet uitgestuurd op TO.

3.1.12 De Single SteD Mode

In de single-step-mode kan de processor het programma per instructie doorlopen.

(27)

Als de processor stilstaat, is het adres van de volgende te verwerken in-structie aanwezig op BUS en de onderste helft van poort 2. Op deze wijze kan de gebruiker zijn programma volgen in iedere instructiestap en contro-leren op eventuele fouten. In de single-step-mode gaat de inhoud van de BUS-buffer verloren, heeft men deze informatie echter nodig dan moet een externe buffer worden aangebracht.

De 8748 opereert in de single-step-mode als voigt:

l.

De processor wordt gevraagd te stoppen door het aanbrengen van een laag

niveau op de SS-pin.

~. De processor beantwoordt deze aanvraag door te stoppen tijdens de

in-structie-fetch van de volgende instructie. Wanneer een inst~~ctie,

be-staande uit 2 machine-cycli, wordt verwerkt tijdens het single-step-commando, worden beide cycli afgewerkt voordat de processor stopt.

~. De processor bevestigt zijn stilstand door ALE hoog te maken. In deze

toestand, die onbeperkt lang kan duren, is het adres van de volgende op te halen instructie aanwezig op BUS en de onderste helft op poort 2. 4. ~wordt daarna weer hoog gemaakt om de processor uit stilstand te halen

zodat de volgende instructie opgehaald kan worden. Het uit stilstand komen wordt door de processor aangegeven door ALE laag te maken.

~. Om de processor te laten stoppen bij de volgende instructie moet SS

opnieuw.laag gemaakt worden nadat ALE laag is geworden. Indien SS hoog blijft, blijft de processor gewoon doorlopen.

In figuur 3.10 wordt het tijddiagram van de single-step-mode weergegeven, hierin zijn duidelijk de hierboven beschreven acties te erkennen.

A.lE--!

l\

/

::

t

ss

~

OAT A

c:

)---BUS _ _ _ _ _ _

-<

PCO~7

)

PeO 1

P20-23 I{O

X

PC8·11

X

I/O

x::

pee·}l

>C

ACTIVE CYCLE SlOP CYCLE STOP CYCLE

(28)

3.2.13 De External Access Mode

In het normale geval worden de eerste 1024 woorden van het pro-grammageheugen uit de interne EPROM gehaald. M.b.v. de EA input-pin kan de processor gedwongen worden een prograrmna ui teen externgeheugen te ver-werken, het interne programmageheugen is dan niet bereikbaar. Deze external

access mode wordt opgestart bij een hoog niveau op de SA-pin. Om problemen

te voorkomen moet tijdens het omschakelen een systeem reset plaats vinden. De external access mode kan zeer veel nut hebben bij het testen van het

systeemprogr~~a,hierop wordt in par. 3.5.2 verder ingegaan.

3.3 De Pen-beschrijving van de 8748

De 8748 microcomputer is behuisd in een 40 pin's dual in line

package. In fi~~ur 3.11 wordt de pin-configuratie van de 8748 gegeven,

tevens wordt het logisch symbool weergegeven.

TO Vee XTAL 1 T1 PORT , 1 lTAL 2 1'27 1Ifn'f 1'25

"

1'25 PORT INT 1'2_ ' 2 lEA 1'17 1m 1'16 PUN 1'15 WR 1'1. ALE !I13 080 1'12 08 1 I'll 082 1'10 083 Voo 08. PROG 08 5 1'23 08, P22 1'21 BUS 087 Vu 1'20

(29)

In de onderstaande lijst worden de symbolen, gebruikt in figuur 3.11 nader verklaard. De funkties van de diverse pennen zijn in het voor-gaande besproken of komen in de volgende paragraven nog aan de orde. AIleen

indien anders gespecificeerdJ zijn aIle ingangen TTl-compatible en

kunnen aIle uitgangen 1 TTL-Load leveren. Aanduiding Vss

Vdd

Vee PROG P10-P17 P20-P27 DO- D7 TO T1

00

RD

RESET WR ALE PSEN SS EA XTAL 1 XTAL 2 Pin 20 26 40 25 27-34 21-24 35-38 12-19 1 39 6 8 4 10 11 9 5 7 2 3 Betekenis circuit-aarde programmeer-voedingsspanning-inp~t algehele voedingsspanning-input programmeer-puls-input

poort 1 (8 bit quasibidirectionele poort) (interne

pullup 50 kJ})

poort 2 (8 bit quasibidirectionele poort) (inter~e

pullup 50 kJL)

BUS (8 bit bidirectionele poort)

Test O-input Test 1-input Interrupt-input Read-output

Reset-input (interne pullup 200 kA)

Write-output

Address Latch Enable Program Store Enable

Single Step Input (interne pullup 300 k~

External Access input (interne pullup 10 M~

input externe frequentie-referentie input extern frequentie-referentie

AIleen indien anders aangegeven hebben de ingangen geen interne pullup-weerstand.

(30)

3.4 Het programmeren, controleren en wissen van de EPROM

In deze paragraaf wordt aangegeven hoe het interne

programmo-geheugen van de 8748 kan worden geprogr~meerd en gewist.

3.4.1 Programmeren en controleren van het EPROM-geheugen

Kort sarnengevat bestaat het progr~rocesuit de volgende

handelingen: het activeren van de programmeer-mode, het aanbieden van een adres, het opslaan van dit adres, het aanbieden van data en het aanbieden van een programmeerpuls. Ieder data-woord wordt eerst volledig geprograrn-meerd voordat het volgende data-woord wordt aangeboden. Na het programmeren van een woord volgt steeds 'een controle-stap.

De pinnen die gebruikt worden tijdens het progr&~erenmet

bijbe-horende funkties worden hieronder weergegeven:

pin funktie

XTAL 1 klok-input (1-6 MHz)

RESET initialisatie en adres-opslag

TestO selectie van de programmeer- (OV) of controle-mode'SV)

EA activeren van de programma/controle mode

BUS adres- en data-input, data-output gedurende controle

P20-21 adres-input

Vdd programmeer voedingsspanning

PROG programmeer-puls-input.

Hieronder worden de verschillende stappen in het programmeer/ controleproces besproken, het bijbehorende tijddiagram wordt weergegeven in figuur 3. 12.

Programmeer/controle volgorde

1. Vee' = 5 V, de interne oscillator is in werking.

RESET

=

0 V ~' initialisatle van de 8748.

Test 0

=

5 V, EA

=

5 V, BUS en PROG onbepaald.

£.

Inbrengen va~ de 8748 in de programmeervoet.

3. Test 0

=

0 V~ selecteer de programmeermode.

(31)

2'

Adres aanbieden aan BUS en Pao~1, dit adres geeft de plaats aan waar de data moeten worden weggeschreven.

£L.

RESET

=

5 V~ binnenhalen v&~ het adres.

L.

Data aanbieden aan BUS.

&.

Vdd

=

25 V~ inschakelen programmeer-voeding.

~ PROG

=

0 V gevolgd door een puis van 23 V gedurende 50 ms ~:

data worden opgeslagen in de EPROM.

lQ.. Vdd :: 5 V -._ ui tschakelen prograrnmeer-voeding.

11.

Test 0

=

5 V~- selecteer de controle-mode.

~. Lezen en controleren van de data op BUS.

13. Test 0

=

0 V ~_-' selecteer de programmeermode.

~. RESET

=

0 V ~ terugkeren naar stap 5 voor het programmeren van het

volgende data-woord.

~ Wanneer de 8748 wordt verwijderduit de prograrrmeervoet moeten de

condities gegeven in stap 1 gelden.

+5V

0

-EA

1---,--- BUS AND PROG CAN BE DRIVEN ONLY DURING THIS TIME - ---1

+5V - - - ,

I

--"

.---TEST 0

W

o I I +a;,V

1---+5V . ~--~<:DATAaUT BUS

<

ADDRESS AO-A7

X

DATA

)

P20·21 PREVIOUS

X

ADDRESS AS-Ag

ADDRESS +25V VDD +5V -+ZJV

I

FLOAT PROG +OV , ' - - _

figuur 3.12: tijddiagram programmeer/controle-mode

FLOAT

'-_...J'-- -

---3.2.4 Wissen van het EPROM-ge!1eugen

De aanbevolen wisprocedure voor de EPROM is blootstellen aan kortgolvig ultraviolet licht met een golflengte van 253,7 nm. De

stralings-dosis voor wissen moet minimaal 15 Ws/cm2 zijn. De wistijd bij deze dosis is

ongeveer 15

a

20 minuten, gebruik makend van een UV-lamp met een vermogen

2

van 12000 W/cm . Tijdens het wissen moet de 8748 zich op minder dan 2,5 em van

de UV-lamp bevinden. Wanneer de8748 gewist is bevat het geheugen allemaal logi.sche nullen.

(32)

3.5 De Test- en Controle-mogelijkheden van de 8748

In deze paragraaf worden enkele eigenschappen van de 8748,

beschreven in voorgaande paragraven, bekeken op mogelijkheden voor het testen en controleren van de systemen met de 8748.

3.5.1 De Single Step Mode

De single step mode, eerder beschreven in sectie 3.2.12, geeft de gebruiker de mogelijkheid het programma per instructie, bestaande uit 1 of 2 machinecycli, te doorlopen. Na het verwerken van een instructie stopt de processor en geeft het adres van de volgende te verwerken instructie vrij op BUS en de onderste helft van poort 2 zoals aangegeven in figuur 3.13.

-~--- -P23 P22 P21 P20 DB7 DB6 DB5 DB4 DB3 DB2 OBI DBD

figuur 3.13: adres output gedurende de single step mode

De single step mode geeft op deze wijze de gebruiker de mogelijk-heid de volgorde van de instructie-executie te controleren en zo eventuele fouten in zijn programma te ontdekken. Wanneer de processor stilstaat is de I/O-informatie op BUS en de onderste helft van poort 2 niet beschikbaar. Deze I/O-informatie is aileen beschikbaar op de stijgende flank van ALE en kan dan, indien noodzakelijk, extern worden opgeslagen door van ALE gebruik te maken. Voor nadere informatie omtrent de te gebruiken schakeling wordt verwezen naar de MCS-48 User's Manual.

(33)

3.5.2 De External Access Mod~

Het aanbrengen van + 5 V op de EA-pin brengt de 8748 in de external access mode, waarin het interne geheugen niet bereikbaar is en alle instruc-ties uit een extern geheugen worden gehaald. In dit externe geheugen kunnen bijvoorbeeld testroutines worden opgeborgen voor het testen van de 8748 met bijbehorende schakeling. Ook kan men in dit externe geheugen het gebruikers-programma opslaan voor controle van het goed funktioneren van de 8748 EPROM. De gegevens over het aansluiten van het externe geheugen zijn terug te vinden in het User's Manual van de MCS-48-familie.

3.5·.3 Lezen van het programmageheugen

Het progammeergeheugen van de 8748 kan onafhankelijk van de

processor uitgelezen worden door geb~Jik te maken van de controle-mode. Deze

mode wordt ook gebruikt tijdens het programmeren van de EPROM.

De 8748 wordt in deze READ-mode gebracht door 23 V op de EA-pin en +5 V op de TO-pin aan te brengen. RESET moet gelijk zijn aan 0 V als er spanning op de EA-pin wordt aangebracht. Daarna wordt het adres van de te lezen locatie aangeboden aan BUS en de onderste helft van poort 2. Dit adres

wordt ingehaald op een.O-1 overgang:op RESET, even laterverschijnen de

mode

geadresseerde data op BUS. Voordat men deze READVverlaat moet RESET terugge-bracht worden naar 0 V. In figuur 3.14 worden de hierboven beschreven acties nogmaals weergegeven in een tijddiagram.

TO 8748 ONLY sv RESET Tl;tV(+23V) EA sv

(

><

BUS ADDRESS OATA sv

(

P20-21 -.DDR£SS

(34)

bestaan uit een of twee byte's, meer dan 70% is slechts een byte lang. Daarom kunnen alle instructies worden verwerkt in 1 of 2 machine-cycli, meer dan 50% omvat slechts een machine-cyclus. In deze paragraaf worden de mogelijkheden van de instructieset nader uitgewerkt, voor een gedetailleerde

beschrijving van de verschillende instructies wordt verwezen naar Bijlage I. 3.6.1 Data transport instructies

Het centrale punt van alle datatransporten is, zoals uit figuur 3.15 blijkt, de 8 bit's accumulator. In figuur 3.15 worden alle. data transport instructies weergegeven.

I

I 8748

I

- - - '~ MOV ADD ANl ORl XRl XCH ADD MOV MOVP MOVPJ ANl ORl XRl ~OVX EXTERNAL ~ MEMORY , ....--=-BU::.::S'-'(;;::.8)_-.-/ AND L..---....,.,...---"""'7":----"""'7":---' PER1P~ERAlS

1 - - - - _ - , _

- - - l

'I PROGRAM MEMORYDATA

I

MEMORY MOV I

I

(=dala) I WORKING REG I :

I

I

MOVD ANlD ORlD EXPAND ER/w----==e:,:14:::..:) ::...1--'''-IfQ PORTS 4-7 --~--- -~.

(35)

Tussen de 8 werkregisters van iedere registerbank en de accumu-lator is een direct data transport mogelijk, zowel de bron als de bestem-ming van de data worden in de betreffende instructies aangegeven. De overige locaties van het interne RAM geheugen worden gezien als datageheugen en in-direkt geadresseerd door RO of R1 van de actieve werkregisterbank. Data

transport van en naar het RAM-geheugen omvat een machinecyclus. Constanten uit het programmageheugen kunnen direct overgebracht worden naarde accumu-lator en de 8 werkregisters. Directe data transporten zijn ook mogelijk tussen de accumulator en de interne Timer/Event counter en tussen de accumulator en het programma status woord.

3.6.2 Accumulator instructies

Data uit de 2e byte van de instructie, uit het datageheugen of

uit de werkregisters kunnen met of zonder carry worden opgeteld bij de

accumu-lator. De genoemde bronnen kunnen ook een AND, OR of Exclusive OR-fu~~tie

uitvoeren met de accumulator. Data transporten zijn mogelijk tussen de accumulator en de werkregisters of het datageheugen. De twee woorden kunnen ook uitgewisseld worden in een enkele instructie.

Het is tevens mogelijk de 4 laagste bit's van de accumulator uit te wisselen tegen de 4 laagste bit's van een RAM locatie. Deze instructie vereenvoudigt, tezamen met een instructie die de 4 hoogste en de 4 laagste bit's van de accumulator omwisselt, het werken met 4 bit's woorden, zoals in BCD-code, aanzienlijk. Voor het verkrijgen van resultaten in BCD is een

Decimal Adjust inst~Jctie opgenomen, deze instructie zet het binaire

resul-taat in de accumulator om in BCD.

Verdere operaties die met de accumulatorinhoud kunnen worden ultge-voerd zijn: 1 verhogen of verlagen, gelijk aan 0 maken, complementeren en roteren naar links en rechts over 1 bit met of zonder carry.

3.6.3 Register instructies

De werkregisters worden ber~ikt via de accumulator of

(36)

Verder kunnen aIle werkregisters direct met 1 verhoogd of verlaagd worden. AIle werkregisters kunnen gebruikt worden voor het tellen van het aantal keren dat een programmalus wordt doorlopen door gebruik te maken van een instructie die de registerinhoud met een verlaagd en vervolgens een sprong uitvoert als de registerinhoud ongelijk aan 0 is.

Het gehele datageheugen, inclusief de werkregisters, kan worden bereikt d.m.v. indirecte instructies en iedere geheugenlocatie kan op deze wijze rechtstreeks met 1 verminderd worden.

3.6.4 Vlag instructies

Vier vlaggen in de 8748 ZlJn bereikbaar voor de gebn1iker nl. Carry, AuxilIary Carry, FO en F1. De eerste drie vlaggen maken deel uit

van het programma status woord en kunnen via de accumulator worden veranderd. Verder kunnen de Carry-, FO- en F1-vlaggen worden weggehaald of gecomplemen-teerd door aparte instructies.

3.6.5 Sprong-instructies

D.m.v. de niet conditionele sproneinstructie, die bestaat uit twee byte's, kunnen sprongen naar ieder adres in het interne programma-geheugen worden uitgevoerd. De conditionele spronginstructies testen eerst een bepaalde conditie in de machine of op de ingangen en voeren, afhankelijk van het testresultaat, al dan niet een sprong uit. De condities waarop kan worden gesprongen worden weergegeven in sectie 3.2.7. Conditionele sprongen

zijn aIleen mogelijk binnen de pagina (256 woorden) waar de programma

executie bezig is. De condities waarop gesprongen wordt zijn .- altijd

momentane waarden op het moment dat de spronginstructie wordt verwerkt. Naast bovengenoemde spronginstructies zijn er nog twee andere spronginstructies. De eerste instructie verlaagt de registerinhoud met en voert vervolgens een sprong uit indien deze inhoud ongelijk aan nul is. Deze sprong kan aIleen plaatsvinden binnen de pagina waar de processor op dat moment bezig is. De tweede spronginstructie is een enkel byte's indirec-te spronginstructie waarbij de accumulator de geheugenlocatie aanduidt waar het sprongadres zich bevindt.

(37)

3.6.6 Subroutine instructies

Subroutines worden aangeroepen door een CALL-instructie, deze kan ieder adres binnen het interne geheugen aanroepen. Twee verschillende return-instructies bepalen of de machine status al dan niet hersteld wordt na terugkeer uit de subroutine.

3.6.7 Timer/Event Counter instructies

De interne Timer/Event Counter kan worden geladen en gelezen door de accumulator onafhankelijk van het feit of de teller loopt of stilstaat. Er zijn twee verschillende startinstructies voor de teller nl. voor het starten van de Timer-mode en van de Event Counter mode. Er is een enkele instructie voor het stoppen van de teller. Daarnaast zijn er nog twee instructies die de Timer-interrupt al dan niet toestaan.

3.6.8 Controle instructies

M.b.v. twee instructies kan men aangeven of externe interrupts wel of niet zijn toegestaan. Verder zijn er vier geheugen bank selectie-instructies, twee daarvan bepalen welke registerbank actief is en de andere twee bepalen de programmageheugenbank. Als laatste is er een controle

instructie die CLK naar buiten brengt op pin TO. 3.6.9 Input/Output instructies

Alle I/O-poorten, P1, P2 en BUS, kunnen worden geladen en gelezen

door de acc~~ulator. Tevens kunnen alle poorten een AND- of OR-funktie

uit-voeren met direct in de instructie gespecificeerde maskers, het resultaat blijft op de poort. De drie interne poorten kunnen worden uitgebreid door 'de 4 bit expander BUS die bestaat uit de onderste helft van poort 2.

De expander BUS kan geladen en gelezen worden via de accumulator, tevens zijn er eigen AND en OR instructies.

(38)

Hoofdstuk 4: De Infrarood afstandsbediening

i.:.l

Inleiding

Voor het realiseren van een draadloze afstandsbediening komt zowel ultrasoon als infrarood als transportmedium voor informatie in aan-merking. Hier is echter gekozen voor infrarood omdat dit medium duidelijke voordelen biedt boven ultrasoon. Het eerste voordeel van infrarood is de grotere verbreidingssnelheid van de straling, waardoor geen storingen

op-treden t.g.v. interferentie, dopplereffect of ruimtereflecties. Verder hebben omgevingsgeluiden geen invloed op het infrarood-signaal. Door sterke lichtinvloeden kan de rei.kwijdte van de infraroodstraling verminderen, di t leidt echterniet tot storingen in de over te brengen informatie. Met optische middelen, zoals reflectoren en lenzen, kan het infrarood-signaal gebundeld worden om een gerichtere overdracht met een groter bereik te

ver-krijgen. Als laatste kan worden opgemerkt dat de snelheid van de inforn~tie­

overdracht groter is door toepassing van infrarood.

In dit hoofdstuk wordt de infrarood-afstandsbediening nader beke-ken. Allereerst wordt in 4.2 nader ingegaan op de wijze van informatie-overdracht. Daarna wordt ingegaan op de zender en op de ontvanger. De hele infrarood-afstandsbedien1ng is gebaseerd op het IR 60 systeem van Siemens. Dit systeem bevat een aantal zenders en ontvangers waarmee verschillende afstandsbedieningen kunnen worden gerealiseerd.

4.2 De informatie-overdracht

Bij de overdracht van de. binaire informatie wordt gebruik gemaakt van Puls-Code-modulatie. Ieder bevel van de zender bestaat uit 6 informatie-bit's die in bifase-code worden uitgezonden. Dit houdt in dat ieder uitgezon-den bit voor de ene helft bestaat uit een infrarood impulspakket en voor de andere helft uit een paU!e. De bit-informatie ligt opgeborgen in de volgorde

van beide toestanden. De bifase-codering van een logische

"1"

en een logische

(39)

H

L

H

L

LOGISCHE 1 LOGISCHE 0 figuur 4.1: de bifase-codering

Voor het eerste informatie-bit wordt een start-bit uitgezonden om de ontvanger de ligging van de informatie-bit's in de tijd mede te delen. De waarde van het start-bit moet van te voren worden vastgelegd in de ont-vanger en biedt op deze wijze een extra onderscheidingsmogelijkheid voor de ontvanger. Op deze wijze is het mogelijk twee verschillende systemen met een

en dezelfde afstandsbediening te besturen. Aan de combinatie start-bit + 6

informatie-bit's gaat nog een voorsignaal vooraf. Dit signaal is bedoeld om de voorversterker in de ontvanger de mogelijkheid te geven zijn versterkings-factor in te stellen, zodat de ontvanger een signaal van constante grootte aangeboden krijgt, onafhankelijk van de onderlinge afstand tussen de zender en de ontvanger. In figuur 4.2 wordt het tijddiagram van de informatie-over-dracht met bifase-codering en toepassing van puls-code-modulatie weergegeven.

IvoorI ~tart : A : B C 0 E I F I signaal 1 0 0 I I 38 I 1 I I 1 I 0 I 1

~.VOI

-0

I

~

I I I I figuur 4.2: de informatie-overdracht

(40)

16 infraroodpulsen worden uitgezonden. Het infraroodsignaal wordt gemodu-leerd om aan de ontvangzijde het zendsignaal te kunnen onderscheiden van continue infrarood licht en storingen. Door het toepassen van puls-code-modulatie is de kans op storingen in de informatie-overdracht zeer gering.

In de meeste gevallen wordt een commando, bestaande uit een voor-signaal, een start-bit en zes informatie bit's, meerdere malen achter

elkaar uitg~zonden. Tussen de herhalingen van het commando moet de zender

een pauze houden van ongeveer 120 ms. Aan het einde van een serie

herha-lingen van een bepaald commando dient er altijd een slotco~mando te worden

uitgezonden. M.b.v. de zes corrmando bit's kunnen 64 corrmando's worden ge-vormd waarvan commando 111110 het slotcommando is. Bij gebrJik van verschil-lende start-bitwaarden dient men er rekening mee te houden dat het commando

111111 met start-bit 1 overeenkomt met commando 000000 met start-bit O. 4.3 De zender

De infrarood zender wordt opgebouwd uit de 8748 microcomputer, een puls-code-modulatieschakeling en een stuurschakeling voor de infrarood LEO's. Er wordt hier geen gebruik gemaakt van een van de zenders van de IR 60 serie omdat deze niet op eenvoudige wijze door de 8748 kan worden gestuurd. Deze zenders zlJn nl. bedoeld om een bevel, gegeven vanuit een matrix van schakelaars, om te zetten in een 6 bit's informatie-code, die daarna in bifase-code en puls gemoduleerd wordt uitgezonden. In de 8748 microcomputer is deze 6 bit's informatiecode echter aanwezig op het moment dat de zender moet worden aangestuurd. Het omzetten van deze informatie naar een matrixvorm zou onnodig werk betekenen. Bovendien zou dit een gecompli-ceerde software en een zware belasting van de I/O-lijnen van de 8748 inhou-den. Zoals hieronder zal blijken is het tijddiagram van de informatie-overdracht, weergegeven in figuur 4.2, d.m.v. software vrij goed te realiseren. Alleen de puls-code-modulatie en de stuurschakeling voor de infrarood LEO's moeten extern worden gerealiseerd.

(41)

tal n zo gekozen ~~ordt dat de uitgangsfrequentie binnen de gegeven marge ligt. De waarde die het dichtst bij de 35 KHz komt wordt gekozen om een zo hoog mogelijke seinsnelheid te verkrijgen. De uitgang van de n-deler wordt toegevoerd aan een ingang van een AND-poort. Aan de andere ingang van de AND-poort wordt het infraroodcommando, bestaande uit een voorsignaal, een start-bit en 6 informatie bit's, aangeboden vanuit de 8748. De hierboven beschreven configuratie wordt in figuur 4.3 aangegeven.

infrarood commando _ r

-

-~. n-deler ... naar stuurschakeling figuur 4.3: de puls-code-modulatieschakeling

Omdat de modulatiefrequentie is afgeleid van de machineklok ALE bestaat er een direkt verband tussen de duur van een machinecyclus en de periodetijd T van de modulatiefrequentie. Er geldt nl. dat T gelijk is aan de lengte van n machinecycli. Tijdens het aansturen van de zender moet er

om de 32 T sec (= 32 n machinecyclil een nieuw bit worden uitgezonden.

Vanwege de bifase-codering moet dit bit 16 T sec (= 16 n machinecycli) later

worden geinverteerd." Beide operaties, zowel het uitsturen van een bit als het inverteren daarna, worden door de software van de 8748 uitgevoerd. Uit het bovenstaande blijkt dat de processor om de 16 T sec een outputinstructie, bestaande uit 2 machinecycli, moet verwerken tijdens een zendcyclus. Deze outputinstructie stuurt de I/O pin aan die verbonden is met een van de ingangen van de AND-poort. Tussen 2 outputinstructies dienen nu (16n-2l machinecycli plaats te vinden, dit wordt gerealiseerd door het verwerken van een aantal instructies.

(42)

Dit kunnen instructies zijn voor het voorbereiden van de nieuwe output of een aantal instructies die eenwachtlus vormen. In ieder geval wordt op deze wijze de tijdsduur 16 T sec zeer nauwkeurig gerealiseerd. Voor de exacte weergave van de software voor de zender wordt verwezen naar de programmabeschrijving in .hoofdstuk 6 .

. De uitgang van de AND-poort bevat het correcte zendsignaal en '...rordt verbonden met de stuurschakeling van de infrarood LEO's. Deze

schakeling wordt beschreven in hoofdstuk

5.

Als infrarood LED's worden de

LD 271 GaAs LED's van Siemens gebruikt, deze LED's worden in alle IR 60 systemen toegepast.

4.4 De ontvanger

Iedere ontvanger is opgebouwd uit een voorversterker met foto-diode, een SAB 3271 ontvanger en een selectieschakeling. Alle delen, behalve

de selectieschakeling, zijn a~Aomstiguit het IR 60 systeem en worden

hieronder beschreven. 4.4.1 De voorversterker

De complete voorversterker met fotodiode is in een vaste behui-zing beschikbaar, wat zeer handig is bij inbouw. In figuur 4.4 worden een aantal behuizingen weergegeven, de twee rechtse behuizingen hebben een lens voor de fotodiode.

~~.';~i't1"

~·l.~~

l

~~

..

,-1 .~- ~.~

(43)

de zender te verplaatsen zonder daarbij het risico te lopen de ontvanger op te blazen. Door begrenzing van de ingangssignalen op 1 Vtt en een regel-omvang van 77 dB kan de voorversterker infraroodsignalen met een onderlinge verschilfactor van 105 zonder problemen verwerken. De tijdsduur voor het

uitzenden van een infrarood commando bedraagt ongeveer

9

ms. Gedurende deze

tijd mag men de afstand tussen zender en ontvanger als constant beschouwen. Daarom is het voldoende de voorversterker een maal per infrarood commando in te stellen. Een bandbreedte van ongeveer 8 KHz maakt enerzijds een

voorselectie van storingen mogelijk en zorgt anderzijds voor een vervormings-arme impulsversterking.

Alle voorversterkers bevatten een, met het TDA 4050 Ie opge-bouwde, selectieve versterker die een grote versterkingsfactor heeft en oversturingsvast is. Aan de voorversterkeringang wordt de pulsgemoduleerde

infraroodstraling opgevaD~en door de fotodiode BP 104. In serie met de

fotodiode staat een dempende, afgestemde parallelresonantiekring. Deze kring wordt via een emittervolger aan de ingang van de TDA 4050 gekoppeld.

De TDA 4050 bevat 3 in cascade geschakelde versterkers, waarvan de eerste geregeld wordt. De derde, een operationele versterker, wordt ver-bonden met een dubbel T-filter zodat een actief filter ontstaat die een constante versterking garandeert. Het uitgangssignaal van de TDA 4050 wordt via een Schmitt-trigger aan de SAB 3271 toegevoerd.

4.4.2 De SAB 3271 ontvanger

De SAB 3271 ontvanger bestaat uit een ontvanggedeelte, een schuif-register met een serie uitgang en zes paralleluitgangen, een start-bit

in/uitgang, twee flip-flopuitgangen, een schakeling voor single- en repeat-enable-signalen en een schakeling voor de paralleluitgangen. Het blokschema van de SAB 3271 wordt in figuur 4.5 weergegeven.

(44)

DLER DLES DATA 1

-RSIG~

I I CL

~---­

I ! , Q,SU QF Q( Qo Qc a6 0.. ~---../-_._----~ RS- FlIpFlop -Ausgang Wechsel- Flip-Flop-Ausgang Parallel- Ausgange

figuur 4.5: het blokschema van de SAB 3271

Het ontvangstgedeelte controleert het in bifase-code gezonden infrarood commando bestaande uit een voorsignaal, een start-bit en 6 informatiebit's. Beide start-bitwaarden worden door het ontvangstgedeelte geaccepteerd. Voor een infrarood commando met start-bit 0 moet de start-bit aansluiting Q1SU laag en voor start-bit 1 hoog gemaakt worden. Tussen het voorsignaal en het start-bit wordt een stilte-test van 64 T sec uitgevoerd. Daarna volgt het inlezen en controleren van het start-bit en de zes infor-matiebit's. Na een tweede stilte-test van 150 T sec wordt begonnen aan de uitgifte van de informatiecode. Tijdens deuitgifte is de infrarood ingang gesperd om onderbrekingen door stoorpulsen te voorkomen.

(45)

Na het ontvangen van het eerste infrarood commando wordt

aller-eerst de informatie-code naar de paralleluitgangen Q

A tim QF gestuurd. Deze

paralleluitgangen blijven, ook na ontvangen van herhalingen van het comman-do, in dezelfde toestand. Pas na het ontvangen van het slotbevel worden de

uitgangen Q

A tim QF weer laag getrokken.

Na de paralleluitgifte volgt een serie uitgifte van de informa-tiecode via de uitgang DATA. Tijdens de serie uitgifte worden beide enable-uitgangen DLES en DLER hoog gemaakt. De uitgang DLES (Single) wordt alleen na het eerste bevel hoog en blijft ook bij het slotbevel laag. De uitgang DLER (Repeat) wordt bij iedere herhaling van het commando en bij het slot-bevel opnieuw hoog tijdens de serie uitgifte. Op de DATA-uitgang wordt na iedere herhaling van het infrarood commando de informatiecode in serie

uitgegeven, voorafgegaan door een Leading-bit LB

=

1. Na het ontvangen

van het slotbevel wordt deze operatie gestopt. In figuur 4.6 wordt een gedetailleerd tijddiagram van de serie uitgifte weergegeven.

-L H l L DATA I A 8 I c D

I

E ,

8/<Z;

, OLE ~---.Ji-! ---,---..,..---'---:----,l-, DLER

t----'

figuur 4.6: tijddiagram van de serie uitgifte van de commando-code De klok CL is de uitgang van de interne oscillator van de SAB 3271, die m.b.v. een externe LC-kring wordt ingesteld op twee maal de modulatiefrequentie van de zender. Hoe dit moet gebeuren wordt aange-geven in figuur 4.7.

(46)

Een wissel-flip-flopuitgang wisselt bij ontvangst van een bepaald infrarood commando van toe stand en blijft hierin totdat dat bepaalde

commando opnieuw wordt ontvangen. De toestandsverandering treedt niet op tijdens herhalingen van dat commando voor het slotbevel. De

wissel-flip-flopuitgangen Q2 en Q

3 reageren resp. op commando 34 (100010) en commando

35 (100011). Uitgang Q1SU kan ook als impulsuitgang worden gebruikt, bij

ontvangst van commando 33 (100001) wordt er op Q1SU een puIs gegenereerd.

De commando's 33, 34 en 35 worden bij ontvangst niet uitgegevenop de paralleluitgangen.

In figuur 4.8 zlJn de bovengenoemde acties nogmaals samenge-bracht in een tijddiagram.

L 13.Befehl ISch\unbefehl \

,

r---,lllillliI.--~'~ I I I . ~ ! I t\' I i . Befehl I2. Befehl II \ \ RSIG HL

----...

-I I a,-Q, H :I L OLER HL

n

n

OLES d

n

figuur 4.8: tijddiagra~van de infrarood signalen en de uitgangssignalen

Wanneer in het infrarood signaal een storing optreedt wordt het

gestoorde bevel niet erkend. 20 kan het voorkomen dat er tijdens een aantal

herhalingen van een bevel een commando wegvalt. Bij het inschakelen va~ de

voedingsspaning van de SAB 3271 worden aIle uitgangen laag getrokken. 4.4.3 De selectieschakeling

De selectieschakeling zorgt ervoor dat de ontvanger slechts op een commando code reageert.Hoe deze schakeling is opgebouwd wordt weerge-geven in figuur 4.9.

(47)

r-Q A , II E)( . OR Q B ,. Q C

L::::

I

E.<. OR

~

Q D Q E Q F ~ E:x. OR

t-I

--l - I A

I

Ex. OR I NOR

-B ~ instel-C I poort baar D I Ex. OR

I

....--E

-F I Ex. OR figuur 4.9: de selectieschakeling

In deze selectieschakeling wordt de ingestelde code vergeleken met de ontvangen code. Dit gebeurt d.m.v. een 6-tal Exclusive OR puorten, waarin de codes bit voor bit worden vergeleken; Als beide codes 0vereen-stemmen zijn de uitgangen van aIle Exclusive OR poorten gelijk aan O.

Deze uitgangen worden toegevoerd a~~ een NOR-poort die een 1 aan de

uitgang geeft als aIle ingangswaarden

a

zijn. Dit is het geval als de

ingestelde en ontvangen code gelijk zijn.

De codes die kunnen worden ingesteld in de ontvanger worden aangegeven in par. 6.4.

Referenties

GERELATEERDE DOCUMENTEN

[r]

[r]

[r]

[r]

Op basis van de antwoorden kunnen we niet alleen de vraag beantwoorden welke eigenschappen goede lokaal bestuurders in het algemeen bezitten, maar ook de vraag welke

Ook is het belangrijk om als docent kennis te nemen van deze nieuwe manier van communiceren, om meer begrip te krijgen voor deze dagelijks gebruikte iconische taal, zodat je

Kinderen blijken overigens goed in staat dit we als auteurs, voordat we bruik- bare handvatten geven voor in je eigen praktijk, eerst verduidelijken wat we bedoelen met spelend

Laat mij in elk geval, in dit blad voor mensen met een goed hart en een slecht karakter, dat ook pater Wims lijfblad was, zonder blad voor de mond getuigen dat pater Wim van Essche