deltagere - kekker.dkog elektroteknik ved institut for elektroniske systemer på aalborg universitet...
TRANSCRIPT
![Page 1: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/1.jpg)
![Page 2: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/2.jpg)
![Page 3: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/3.jpg)
Aalborg UniversitetElektronik og ElektroteknikFredrik Bajers Vej 5, Postboks 159DK-9100 AalborgTlf. (+45) 9635 8080http://www.aau.dk
Titel:
Indendørs positioneringssystem
Tema:
Mikrodatamatsystemer
Projektperiode:
E4, forårssemesteret 2006
Projektgruppe:
06gr414
Deltagere:
Brian Thorarins Jensen
Christian Fink Petersen
Jens Karsten Nedergaard Boll
Mads Kronborg Agesen
Søren Vagndorf Schjødt Kristensen
Vejleder:
Henrik Vie Christensen
Oplagstal: 8
Sideantal: 136
Heraf appendiks: 53
Bilagsantal og –art: 1 stk. CD-ROM
Afsluttet den 29-05-2006
Synopsis:
Dette projekt omhandler en del af et indendørspositioneringssystem, som via infrarøde signalermuliggør, at en mobilenhed kan udregne sin po-sition i et rum. I dette projekt konstrueres envægenhed, som skal modtage og sende de infrarø-de signaler fra og til en mobilenhed. Vægenhedenkonstrueres bl.a. med det formål, at eftervise prin-cippet med at benytte et mikrodatamatsystem tilat genkende et serielt signal og sende et serieltsvarsignal til brug ved positionsbestemmelse.
Vægenheden er baseret på et minimumssystemmed en Motorola 68000 processor. Dertil er derkonstrueret moduler, der kan modtage og sendeinfrarøde signaler. Der er skrevet software til væg-enheden, der kan genkende et bestemt signal førder udsendes et svarsignal efter en bestemt tid.Det er desuden muligt via software at ændre føl-gende parametre i vægenheden vha. en RS232 for-bindelse og en pc: signalet der skal svares på, sig-nalet der skal sendes samt tiden der ventes fra etsignal er genkendt, til et svar udsendes.
Vægenheden er designet med udgangspunkt i deprimære brugerkrav, og overholder disse. Dermedkan vægenheden skelne forskellige signaler fra hin-anden og udsende et bestemt svarsignal efter enbestemt tid. Derimod er de sekundære bruger-krav om virkeområde indenfor 0,5 til 10 m ik-ke overholdt, hvilket skyldes at de konstrueredemodtager- og sendermoduler ikke tillader, at af-standen mellem vægenheden og mobilenheden erstørre end ca. 30 cm.
Videreudvikling af vægenheden kan indebære atdesigne sender- og modtagermoduler efter at kun-ne overholde de sekundære brugerkrav, samt æn-dre softwaren således, at der tillades støj i detmodtagne signal.
Rapportens indhold er frit tilgængeligt, men offentliggørelse (med kildeangivelse) må kun ske efter aftale medforfatterne.
![Page 4: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/4.jpg)
![Page 5: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/5.jpg)
Aalborg UniversitetElektronik og ElektroteknikFredrik Bajers Vej 5, Postboks 159DK-9100 AalborgTlf. (+45) 9635 8080http://www.aau.dk
Title:
Indoor positioning system
Theme:
Mikroprocessor system
Project period:
E4, spring term 2006
Project group:
06gr414
Participants:
Brian Thorarins Jensen
Christian Fink Petersen
Jens Karsten Nedergaard Boll
Mads Kronborg Agesen
Søren Vagndorf Schjødt Kristensen
Supervisor:
Henrik Vie Christensen
Copies: 8
Number of pages: 136
Appendices hereof: 53
Attachment: 1 CD-ROM
Finished 05-29-2006
Abstract:
This report deals with a part of an indoor po-sitioning system. It allows for a mobile unit tocalculate its position in a room by use of infra-red signals. In this report the development of awall unit for such a system will be treated. Thewall unit must detect and verify an infrared sig-nal, and then wait a given time before it respondsby transmitting an infrared signal to the mobileunit. The wall unit is primarily developed to de-monstrate that a microprocessor can be used toverify a serial signal and respond by transmittinganother serial signal that can be used by the mo-bile unit to determine its position.The wall unit is based on a Motorola 68000 micro-processor, to which there is designed additionalmodules that enables the wall unit to receive andtransmit infrared signals. There has been writtensoftware that allows for recognizing a certain sig-nal before a response signal is transmitted after apreset time. Furthermore it’s possible to changewhat signal the wall unit shall respond to, whatsignal it shall transmit back to the mobile unitand the time it must wait before the response istransmitted. This feature is incorporated with aRS232 connection.Design of the wall unit is based on keeping theprimary user demands, which contains the abili-ty to discern signals and respond appropriatelyby transmitting a response signal after a chosentime when a correct signal is detected. The secon-dary user demands that state the system must befunctional from 0.5 m to 10 m are not meet. Withthe used transmitter and receiver, it does not al-low for signals to be transmitted and received ata distance greater then 30 cm.Further development of the wall unit might con-tain designing better transmitter and receiver u-nits to meet the secondary user demands, and alsochanging the software to allow for a certain amo-unt of noise in the received signal.
The content of this report is freely accessible, though publication (with reference) may only occur after permissionfrom the authors.
![Page 6: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/6.jpg)
![Page 7: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/7.jpg)
ForordDenne rapport er udfærdiget på 4. semester af projektgruppe 06gr414 på retningen Elektronikog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1.februar 2006 til og med 29. maj 2006.
Formålet med projektforløbet er ifølge studieordningen pr. 01-09-2005 for 3. - 5. semester Elek-tronik- og elektrotekniksektoren:
1. At give viden om systembegrebet, herunder metoder på anvendelsesniveau til ned-brydning af systemer i delsystemer og forståelse for metoder til beskrivelse afsystemer.
2. At give forståelse for metoder til konstruktion af sammensatte digitale systemer,herunder en indføring i grundlæggende digitale kredsløbsblokke, deres brug ogbegrænsninger.
3. At give forståelse for grundlæggende begreber for datamaters arkitektur.
4. At give viden om programmelsystemer, herunder operativsystemer, udviklings-programmel og andet systemprogrammel.
5. At give metoder på anvendelsesniveau til specifikation, konstruktion, realisation,test og dokumentation af programmel og af maskinel.
Projektets tema er ”Mikrodatamatsystemer”, og tager udgangspunkt i projektforslag 16 stillet afPh.D. studerende Henrik Vie Christensen, v/ Inst. for elektroniske systemer, Aalborg Universitet.
LæsevejledningAktivt lave signaler angives med en linie over signalet eller benets navn. For eksempel angivesdet aktivt lave signal CS i rapporten med CS. I diagramtegninger vil der stå RESET*, hvilket erdet samme som RESET. Ligeledes vil der på diagramtegninger kunne stå C_P, hvilket i tekstenvil være skrevet som CP . Hexadecimaltal betegnes med et $ foran. Ved angivelse af lagerstørrelseskrives der ’b’ hvis det er byte, og ’bit’ hvis det er bit størrelse.
Kildehenvisninger er lavet efter Harvard-metoden, således at f.eks. ”Microprocessor Systems De-sign” henvises til ved hjælp af [Clements, 1997]. I litteraturlisten ses hele forfatterens navn, titel,ISBN/URL, forlag, sted samt år for udgivelse og evt. note.
Bilag, som kun forefindes på den vedlagte CD, henvises til ved at skrive placeringen og filnavnettil pågældende bilag. For eksempel (/hardware/ir testsender/data.hex).
v
![Page 8: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/8.jpg)
Brian Thorarins Jensen
Christian Fink Petersen
Jens Karsten Nedergaard Boll
Mads Kronborg Agesen
Søren V. Schjødt Kristensen
![Page 9: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/9.jpg)
Indhold
1 Indledning 1
2 Kravspecifikation 3
2.1 Beskrivelse af vægenhedens funktioner . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Struktur for kravspecifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 Brugerkrav . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4 Systemkrav . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3 Design af vægenhed 11
3.1 Systemoversigt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2 Begrænsninger ved design af vægenhed . . . . . . . . . . . . . . . . . . . . . . . . 12
4 Design af mikrodatamat 13
4.1 Motorola 68000 processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2 Lager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.3 Adressedekodning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.4 Seriel datakommunikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.5 Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.6 Test af mikrodatamatsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5 Design af infrarød sender- og modtagermodul 37
vii
![Page 10: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/10.jpg)
Indhold
5.1 Design af sendermodul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.2 Design af modtagermodul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.3 Test af sender- og modtagermodul . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6 Softwaredesign 45
6.1 Programdesign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.2 Initialisering af vægenhed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.3 Databehandling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.4 Send signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
6.5 Konfiguration af vægenhed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
7 Accepttest 63
7.1 Test af primære brugerkrav . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7.2 Test af sekundære brugerkrav . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8 Konklusion 67
9 Udvidelsesmuligheder 69
9.1 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
9.2 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Litteraturliste 72
A Accepttestspecifikation 73
B Systemkravtestspecifikation 77
C Simuleret mobilenhed 81
D Testjournal 85
E Brugervejledning 89
F RAM allokering 93
viii
![Page 11: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/11.jpg)
INDHOLD
G PEEL kode 95
H Assembler kode 101
I Komponentliste 121
J Diagram 123
K Placeringsdiagram 125
ix
![Page 12: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/12.jpg)
Indhold
x
![Page 13: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/13.jpg)
Kapitel 1Indledning
Til positionsbestemmelse anvendes ofte GPS. Dette har dog visse begrænsninger ved f.eks. in-dendørs brug grundet problemer med at opnå tilstrækkeligt signal. Ydermere er systemets nøjag-tighed en begrænsning. Den typiske nøjagtighed for et civilt system er i størrelsen meter, hvilketikke vil være tilstrækkeligt til indendørs brug [Statsgeodæt Per Knudsen & Landinspektør Cas-per Jepsen, 2000].
Et system til indendørs positionsbestemmelse er anvendeligt i mange sammenhænge, og ønskesaf Institut for Elektroniske Systemer (IES) ved Aalborg Universitet (AAU) fremstillet. Detteprojekt omhandler udviklingen af en vægenhed, som skal indgå i et indendørs positioneringssy-stem. Vægenheden udvikles med henblik på at det samlede indendørs positioneringssystem, somminimum tillader positionsbestemmelse i et rum på 10 m gange 10 m.
Positionsbestemmelsen er af IES bestemt til at foregå vha. infrarøde signaler. En infrarød sender-og modtagerenhed er placeret på en mobil enhed, der har brug for at kende sin position. På væg-gene i rummet monteres et antal vægenheder, der indeholder sender og modtager. Mobilenhedenudsender et infrarødt signal, der opfanges af enhederne på væggene. Såfremt disse signaler verifi-ceres i vægenheden, returneres et forudbestemt svarsignal til mobilenheden. I både vægenhederneog i mobilenheden skal de modtagne signaler verificeres iht. et referencesignal, således enheder-ne ikke aktiveres fejlagtigt af støj fra f.eks. en fjernbetjening eller andre enheder, der udsenderinfrarøde signaler. I vægenheden skal det være muligt, at indstille en ventetid der angiver hvorlang tid, vægenheden skal vente med at sende et svarsignal, efter et modtaget signal er godkendt.Dermed kan vægenhederne svare på forskellige tidspunkter, således mobilenheden ikke modtagersvar fra flere på en gang.
Princippet i selve positionsbestemmelsen er, at mobilenheden beregner vinklen mellem densretning, og de signaler den modtager fra vægenhederne, som illustreret på Figur 1.1. Vinklen kanbestemmes ved, at mobilenheden har påmonteret et antal modtagere og ud fra signalstyrken frahver af modtagerne, kan vinklen bestemmes.
Der er fra IES’ side stillet krav om, at vægenhederne ikke skal være forbundet elektrisk, dasystemet skal være mobilt og let at installere. Da der ligeledes er ønske om senere, at kunneudbygge systemet og optimere det til givne omgivelser, skal signalerne der accepteres som værende
1
![Page 14: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/14.jpg)
1 Indledning
Mobilenhed
Vægenhed
Retning
Signal
Figur 1.1: Illustration af indendørs positioneringssystem
fra mobilenheden, samt det signal der sendes retur, kunne ændres via en computer.
Systemet kan gøres mobilt ved at montere vægenhederne i kegler, hvilket gør det muligt atanvende systemet uafhængigt af enhver anden installation. En sådan anvendelsesmulighed kunnevære til selvkørende gulvvaskerobotter i f.eks. industrihaller eller gymnastiksale. Samme principvil kunne anvendes til f.eks. selvkørende støvsugere i private hjem.
2
![Page 15: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/15.jpg)
Kapitel 2Kravspecifikation
Der udføres en analyse baseret på SPU-UML med henblik på at kunne opstille en kravspecifika-tion og accepttest. I denne analyse beskrives vægenheden som et samlet system. Først beskrivesvægenhedens funktionalitet, og de enkelte funktioner opdeles i Use Cases. Derefter opstilles enkravspecifikation og udfra denne en accepttestspecifikation til det samlede produkt.
2.1 Beskrivelse af vægenhedens funktioner
For at få et overblik over systemets funktioner benyttes Use Case metoden. Ved at lave Use Casesfor systemets hovedfunktioner fås et indblik i hvilke krav der kan opstilles. På Figur 2.1 ses enillustration af systemet og dets funktioner. Til hver funktion er der knyttet en aktør. Disse vilblive beskrevet senere.
Figur 2.1: Illustration af de to Use Cases modtag/send signal og konfiguration af vægenhed samt aktører til disse
De to Use Cases, modtag/send signal og konfiguration af vægenhed, der ses på Figur 2.1 beskrivesherefter.
3
![Page 16: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/16.jpg)
2 Kravspecifikation
2.1.1 Modtag/send signal
Vægenheden modtager et infrarødt triggersignal fra mobilenheden, og dette signal verificeres iht.et referencesignal lagret i hukommelsen. Såfremt det modtagne signal kan verificeres iht. refe-rencesignalet, udsendes et svarsignal efter den angivne ventetid. Denne ventetid sikrer, at flerevægenheder ikke svarer mobilenheden samtidig, hvilket medfører en nem adskillelse af svarsig-nalerne. Er de enkelte vægenheders ventetider kendt af mobilenheden, ved den hvornår den skalforvente et svar fra hver enkelt vægenhed.
Normal scenario
1. Et infrarødt triggersignal modtages fra mobilenheden
2. Et korrekt triggersignal verificeres iht. referencesignalet
3. Der ventes i en forudbestemt periode før svarsignalet udsendes
4. Et forudbestemt infrarødt svarsignal udsendes
Undtagelser
Såfremt det modtagne triggersignal ikke kan godkendes iht. referencesignalet udsendes ikke etsvarsignal, og der afventes et nyt signal.
For at overskueliggøre Use Casen modtag/send signal laves et flowdiagram over forløbet, somkan ses På Figur 2.2. Det kan endvidere ses, hvor undtagelsen træder ind.
Modtag signal
Databehandling
Vent
Afsend signal
Ja
Signal genkendt?
Nej
Triggersignal
Svarsignal
Mobilenhed
Figur 2.2: Flowdiagram over Use Casen send/modtag signal med undtagelse
4
![Page 17: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/17.jpg)
2.2. Struktur for kravspecifikation
2.1.2 Konfiguration af vægenhed
Det skal være muligt at ændre følgende parametre i vægenheden vha. en pc: referencesignalet dersammenlignes med, svarsignalet der sendes ud, samt ventetiden der går fra at der er modtagetet korrekt triggersignal, til der sendes et svarsignal. Det skal desuden være muligt at udlæseparametrene til en pc.
Normal scenario
1. En pc tilsluttes vægenheden
2. Data modtages fra eller sendes til den tilsluttede pc
Undtagelser
Indtastes en forkert kommando, udskrives en fejlmelding.
2.1.3 Aktører
Aktører er de ting eller personer, der har indflydelse på, eller bliver påvirket af funktioner isystemet. Til dette system er der to aktører; mobilenheden og brugeren.
Mobilenhed
Mobilenheden er den aktør, der sender et triggersignal, som efterfølgende skal opfanges af vægen-hederne. Mobilenheden kan være en selvkørende robot eller lignende. Mobilenheden udsender etbestemt triggersignal, og forventer derefter at få bestemte svarsignaler tilbage fra vægenhederne.Ud fra disse svarsignaler beregner mobilenheden, hvor den befinder sig.
Bruger
Den anden aktør er brugeren af systemet, der via en pc kan konfigurere vægenheden. Brugerenkan ændre triggersignal, svarsignal samt ventetiden mellem et korrekt triggersignal modtages tilet svarsignal udsendes.
2.2 Struktur for kravspecifikation
Kravspecifikationen opstilles ud fra de krav, som brugeren af det færdige produkt stiller. Brugerener oftest kunden til produktet, men i dette projekt er det IES. Med disse krav kan der udarbejdeskrav til systemet på et mere teknisk niveau. Dette niveau kaldes systemkrav og opdeles i hardwareog software. En illustration over strukturen af kravspecifikation kan ses på Figur 2.3.
5
![Page 18: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/18.jpg)
2 Kravspecifikation
BrugerkravSystemkrav
Hardware Software
Figur 2.3: Illustration af kravspecifikationens opbygning
Projektforslagsstilleren angiver brugerkravene og ud fra disse opstilles systemkrav til hhv. hard-og software. Næste afsnit beskriver brugerkravene og systemkravene.
2.3 Brugerkrav
Brugerkrav er de krav, som kunden sætter til det samlede system. Disse krav er opdelt i primærebrugerkrav, PBK, og sekundære brugerkrav, SBK.
2.3.1 Primære brugerkrav
De primære brugerkrav er krav, hvor der kun ses på den funktionelle virkemåde. Det vil sige, atder f.eks. ikke er krav til afstand og vinkel mellem mobil- og vægenhed. De primære brugerkravopstilles ud fra de opstillede Use Cases.
Modtag/send signal
PBK01: Vægenheden skal kunne modtage et infrarødt triggersignal
PBK02: Det modtagne triggersignal skal kunne verificeres iht. til et referencesignal
PBK03: Der ventes med en tolerance på ±1 sample ved en ventetid på 512 samples, mellem ettriggersignal modtages til et svarsignal udsendes
PBK04: Et svarsignal skal udsendes, såfremt der modtages et korrekt triggersignal
PBK05: Det modtagne triggersignal, referencesignalet og svarsignalet skal være på 16 bit. PåFigur 2.4 ses en model for signalerne.
Hver bit i signalet består af 32 samples, og der er dermed 512 samples i et komplet signal. For aten bit bestående af 32 samples skal betegnes som en logisk høj, skal de tre første samples værelave, de næste tre skal være høje, og de resterende 26 samples skal være lave. En lav bit skalbestå af 32 lave samples.
6
![Page 19: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/19.jpg)
2.3. Brugerkrav
32 samples
512 samples = 16 bit
1 bit
Figur 2.4: Model for referencesignal
Konfiguration af vægenhed
PBK06: Der skal anvendes en RS232 forbindelse til overførsel af data mellem pc og vægenhed
PBK07: Brugerfladen på pc’en skal være et konsolprogram som f.eks. Hyper Terminal
PBK08: Ændring af referencesignalet som det modtagne signal verificeres i henhold til skal væremulig
PBK09: Ændring af svarsignalet som sendes retur til mobilenheden skal være mulig
PBK10: Ændring af ventetiden mellem et triggersignal er modtaget og godkendt, til et svarsignaludsendes skal være mulig
PBK11: Udlæsning af den aktuelle konfiguration skal være mulig
2.3.2 Sekundære brugerkrav
Sekundære brugerkrav, SBK, til vægenheden beskrives ud fra de opstillede Use Cases.
Modtag/send signal
SBK01: Der skal kunne modtages et infrarødt signal fra en sender, der sender med konstantsendestyrke, i en afstand på 0,5 m til 10 m
SBK02: Der skal kunne modtages et infrarødt signal i en vinkel på ±90 i forhold til den retning,vægenheden peger SBK03: Ét forudbestemt svarsignal udsendes med en sendestyrke, der sikrerat svarsignalet kan modtages, af en modtager svarende til den der sidder på vægenheden, i enafstand på 0,5 m til 10 m
7
![Page 20: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/20.jpg)
2 Kravspecifikation
2.4 Systemkrav
Ud fra brugerkravene opstilles systemkravene. Disse er opdelt i hhv. hardwaresystemkrav, HSK,og softwaresystemkrav, SSK.
I vægenheden benyttes et mikrodatamatsystem bestående af en Motorola 68000-processor medtilhørende perifere enheder, da undervisningen på 4. semester er baseret på denne.
Efter hvert krav er kravets oprindelse angivet i parantes. Det kan enten være et brugerkrav elleret valg fra gruppens side, GPV.
2.4.1 Hardware
Kravene til hardware er opdelt i krav til hhv. senderen og modtageren. Sender- og modtager-modulerne betragtes således, at de indeholder den nødvendige hardware til at tilslutte modulernedirekte til et mikrodatamatsystem.
2.4.2 Krav til sender/modtager
1. Krav til infrarød modtager
HSK01: Signalet skal samples med en frekvens på 9,6 kHz. Dette krav er valgt af gruppen,da denne samplingshastighed vurderes til at give tid nok til signalgenkendelse (GPV).Dermed vil mobilenheden kunne få opdateret sin position 9 gange i sekundet, se Formel2.1.
H =((9600 Hz)−1 · 2 · 512 samples
)−1= 9, 375 (2.1)
Hvor H er opdateringshyppigheden per sekund
2. Krav til infrarød sender
HSK02: Der skal kunne sendes samples med 9,6 kHz, således at der sendes samples medsamme frekvens, som der modtages iht. HSK01 (GPV)
2.4.3 Software
Kravene til softwaren er opdelt efter de enkelte programdele, der er nødvendige i projektet.
1. Databehandling
SSK01: Softwaren skal sample et signal bestående af 512 samples fra den infrarøde mod-tager (PBK05)
SSK02: Et korrekt modtaget triggersignal skal kunne genkendes og skelnes fra andre sig-naler. Ved en høj bit i et signal tillades at hhv. første eller sidste høje sample modtagessom en lav (PBK02)
8
![Page 21: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/21.jpg)
2.4. Systemkrav
SSK03: Databehandlingstiden per sample må ikke overskride periodetiden af samplings-frekvensen. Dette sikrer, at alle samples kan behandles, inden næste sample modtages(HSK01)
2. Send signal
SSK04: Der ventes i et forudbestemt tidsrum med en tolerance på ±1 sample, målt veden ventetid på 512 samples (SBK03)
SSK05: Svarsignalet skal være i overensstemmelse med signalkodningen. Desuden skalsignalet der sendes være i overensstemmelse med det ønskede svarsignal. Der tillades enafvigelse i et helt signals længde på ±1 sample (PBK05)
3. Konfiguration af vægenhed
SSK06: Ind- og udlæsning af konfigurationer, herunder referencesignal, svarsignal samtventetid, skal være mulig via et konsolprogram (PBK07)
Accepttestspecifikationen kan ses i Appendiks A Accepttestspecifikation på side 73.
9
![Page 22: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/22.jpg)
2 Kravspecifikation
10
![Page 23: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/23.jpg)
Kapitel 3Design af vægenhed
I dette kapitel beskrives systemets hardwareblokke, mht. deres funktioner og integration i densamlede vægenhed.
3.1 Systemoversigt
På Figur 3.1 ses en oversigt over hardwareblokkene i en vægenhed til det indendørs positione-ringssystem.
IR-modtager Forstærker A/D-konverter
DriverIR-sender
Modtagermodul
Sendermodul
Lager
Seriel kommunikation
Adresse-dekoder
Mikrodatamat
68K processor
Figur 3.1: Oversigt over hardware-blokke i en vægenhed til det indendørs positioneringssystem
Vægenheden er opdelt i 3 hovedblokke: Modtagermodul, mikrodatamat og sendermodul.
Modtagermodulet består af en IR-modtager, som modtager et infrarødt signal og omdanner dettil et analogt signal. Det analoge signal bliver forstærket og konverteret til et digitalt signal. Detdigitale signal indlæses af mikrodatamaten til videre databehandling.
11
![Page 24: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/24.jpg)
3 Design af vægenhed
Mikrodatamatsystemet består af hukommelse, adressedekoder, seriel kommunikation og en pro-cessor. Hukommelsen anvendes til at lagre software og data. Adressedekoderen styrer hvilkeenheder, der kan tilgå databussen, ud fra hvilken adresse processoren skriver på adressebussen.Den serielle kommunikation består af to RS232 forbindelser, hvor den ene bruges til at kommu-nikere med TS2 debugger/monitor, og den anden bruges til konfiguration af vægenheden. Derbenyttes to forbindelser, idet at der under en testproces således vil være mulighed for at benyttebegge forbindelser samtidigt, og på den måde fejlfinde i softwaren. Processoren foretager allenødvendige beregninger på de modtagne data.
Mikrodatamatens funktion er at lagre det modtagne triggersignal fra modtagermodulet, og sam-menligne signalet med et referencesignal. Såfremt det modtagne signal er magen til referencesig-nalet, udsendes et svarsignal vha. sendermodulet.
Sendermodulet består af en driver og en IR-sender. Mikrodatamaten skal styre hvornår IR-senderen skal sende, mens adressedekoderen genererer et signal til driveren, når processorenskriver til sendermodulet. Vha. et databen på processoren overføres signal til sendermodulet.
3.2 Begrænsninger ved design af vægenhed
Designfasen tager udgangspunkt i de primære brugerkrav, samt de opstillede systemkrav. Y-dermere tages der ikke højde for størrelse, vægt og strømforbrug, da der i dette projekt kunkonstrueres en prototype af en vægenhed. Disse aspekter samt de sekundære brugerkrav vil skul-le tilgodeses i et endeligt design. Vægenheden vil således kunne drives af batterier, monteres påen væg eller i f.eks. en kegle for optimal systemfleksibilitet.
I de to efterfølgende kapitler designes mikrodatamat samt sender- og modtagermodul.
12
![Page 25: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/25.jpg)
Kapitel 4Design af mikrodatamat
I dette kapitel beskrives udviklingen af et minimums mikrodatamatsystem baseret på en Motorola68000 processoren.
4.1 Motorola 68000 processor
I dette afsnit beskrives Motorola 68000 processorens benforbindelser, og hvorledes der genereresen clock. Desuden vil et power-up-reset kredsløb blive beskrevet.
4.1.1 Beskrivelse af Motorola 68000 processoren og benforbindelser
Der anvendes i dette projekt en processor af typen MC68HC000FN12.
Benforbindelser
Motorola 68000 processoren der anvendes i dette projekt har ialt 68 ben. En oversigt over ben-grupperingerne ses på Figur 4.1.
Benforbindelserne kan inddeles i tre kategorier [Clements, 1997]:
1. Systemben
2. Styring af hukommelse og eksterne enheder
3. Specialben
13
![Page 26: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/26.jpg)
4 Design af mikrodatamat
VCC
GND
Clock
Reset
Systemben
MC68HC000
D0-D15
A1-A23
AS*
R/W*
UDS*
LDS*
DTACK*Ben til styring af hukommelse og
eksterne enheder FC0-FC2
IPL0*-IPL2*
BR*
BG*
BGACK*
BERR*
E
VMA*
VPA*
Specialben
Halt
Figur 4.1: Oversigt over benforbindelser på Motorola 68000 processor. Modificeret figur fra [Clements, 1997]
Systemben er følgende:
Power supply: Benene VCC og GND er til spændingsforsyningen på 5 V og 0 V til processoren.
Clock: TTL-kompatibelt signal der angiver processorens clockhastighed. Clockfrekvensen kandermed indstilles efter behov. Den maksimale clockfrekvens for den aktuelle processor er 20 MHz[Motorola, 1993].
Reset: Nulstiller processoren, så den kommer tilbage i den tilstand, som den er ved power-up.Under opstart af processoren skal benene Reset og Halt være lave i mindst 100 ms, såledesat forsyningsspændingerne har tid til at stabilisere sig. Når processoren kører, og den ønskesgenstartet skal Reset og Halt være aktive i mindst 10 clockcykler. Resetbenet fungerer også somet output. Hvis instruktionen ’reset’ udføres i processoren, går Reset benet lavt i 124 clockcycles.Reset benet kan dermed benyttes til at nulstille perifere enheder uden at resette processoren[Motorola, 1993].
Halt: Dette ben er aktivt lavt, og standser processoren når den aktuelle bus cycle er færdig.Dermed kan processoren tvinges til at udføre en bus cycle af gangen. Dette er anvendeligt veddebugging af program. Halt benet kan ligesom resetknappen også virke som output. Hvis hukom-melsen ikke svarer korrekt på en read- eller write cycle, så stopper processoren og sætter Haltbenet. Dermed er det muligt at følge med i om processoren er stoppet.
Styring af hukommelse og eksterne enheder er følgende:UDS og LDS: Upper Data Strobe og Lower Data Strobe er signaler, der kontrollerer databussen.Hvis der læses eller skrives et word til hukommelsen er både UDS og LDS aktive, og hvis derskrives en byte er det enten LDS eller UDS der er aktiv. Hvis LDS er aktiv benyttes ben D0 tilD7, og hvis UDS er aktiv så benyttes ben D8 til D15.
14
![Page 27: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/27.jpg)
4.1. Motorola 68000 processor
Adressebus: Benene A1 til A23 anvendes til processorens 24 bit adressebus. LDS og UDS kanregnes som A0, hvilket giver at 224 16 bit ord kan adresseres. Adressebussen benyttes til at vælgehvor i hukommelsen, der skal skrives data til og læses data fra.
Databus: Benene D0 til D15 anvendes til den 16 bit databus hvor data til og fra processorentransporteres. Tilgås et word bruges alle benene i databussen, men hvis der kun tilgås en byte,benyttes enten ben D0 til D7 eller ben D8 til D15.
Ud over adresse- og databussen er der fem kontrolsignaler til at styre overførslen af data til ogfra processoren. Disse fem signaler er:
AS: Adress Strobe. Såfremt AS er lav er adresserne på adressebussen er gyldige.
R/W: Read/Write. Angiver om der læses fra hukommelsen eller skrives til hukommelsen. Såfremtder læses fra hukommelsen er R/W høj, og hvis der skrives til hukommelsen er R/W lav. R/W erdesuden høj når processoren hverken skriver eller læser i hukommelsen, hvilket vil sige at R/Wkun er lav når der skrives til hukommelsen.
R/W UDS LDS Operation D08-D15 D00-D07
0 1 1 Ingen operation Ugyldig Ugyldig0 1 0 Skriv nedre byte D00-D07 Gyldige data0 0 1 Skriv øvre byte Gyldige data D08-D15
0 0 0 Skriv word Gyldige data Gyldige data1 1 1 Ingen operation Ugyldige Ugyldige1 1 0 Læs nedre byte Ugyldige Gyldige data1 0 1 Læs øvre byte Gyldige data Ugyldige1 0 0 Læs word Gyldige data Gyldige data
Tabel 4.1: Kontrol af databussen vha. LDS, UDS og R/W , modificeret figur i forhold til [Clements, 1997]
I Tabel 4.1 vises sammenhængen mellem R/W, UDS, LDS og hvornår der er gyldige data pådatabenene.
DTACK: Data Transfer ACKnowledge. Signal fra perifere enheder hvorfra der hentes ellergemmes data. Hvis DTACK er lav angiver det, at data på databussen er gyldig, og at processorenkan fortsætte til næste instruktion. Såfremt DTACK er høj indsætter processoren wait-states,hvor den ikke udfører beregninger. Det vil sige, at processoren venter til den perifere enhedmelder, at data er klar.
VPA: Valid Peripheral Address. Signal fra perifere enheder der angiver, at processoren haradresseret en gyldig adresse.
VMA: Valid Memory Address. Signal fra processoren der angiver at der er en gyldig adresse påadressebussen, når processoren har modtaget et VPA signal.
E: Enable. Et asymmetrisk clocksignal der bruges til timing ved kommunikation med Motorola6800-enheder. En clockcycle svarer til 10 af processorens clockcycles.
15
![Page 28: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/28.jpg)
4 Design af mikrodatamat
Specialben er følgende:Disse ben kan inddeles i fire undergrupper:
• Bus fejlkontrolGør det muligt for processoren at arbejde videre selvom der opstår en fejl i hukommelses-systemet
• BusstyringGør det muligt at flere processorer deler adresse- og databussen
• FunktionsudgangeAngiver hvilken type operation processoren udfører, og kan bruges til at kontrollere adgan-gen til hukommelsen
• InterruptstyringGør det muligt for en ekstern enhed at bede om processorens opmærksomhed, og angivehvilken ekstern enhed der ønsker opmærksomhed
1. Bus fejlkontrol:
Benet BERR gør det muligt for en ekstern enhed at tilkendegive overfor processoren, at der ergået noget galt med den aktuelle bus cycle. Dermed kan processoren enten forsøge at gentage denfejlagtige bus cycle eller udføre en undtagelse og dermed lade softwaren løse problemet. Detteben anvendes ikke i dette projekt, hvorfor dette tilsluttes til VCC via en 10 kΩ modstand.
2. Busstyring:
Benene BR, Bus Request, og BG, Bus Grant, muliggør at to eller flere processorer kan dele densamme data- og adressebus. Den processor der har kontrollen over data- og adressebus modtageren forespørgsel via BR benet fra den processor, der ønsker at tilgå data- og adressebus. Derefterafgiver den første processor kontrollen med data- og adressebus via BG benet. Dermed harprocessor to kontrol over de to busser, og melder dette tilbage via benet BGACK, Bus GrantACKnowledge. Benene BR, BG og BGACK benyttes ikke i dette projekt, hvorfor disse tilsluttestil VCC via en 10 kΩ modstand.
3. Funktionsudgange:
Funktionskontrolbenene, FC0, FC1 og FC2, kobles til en 3 til 8-funktionsdekoder
De tre ben FC0, FC1 og FC2 benyttes til at angive processorens statusinformation. Disse treben benyttes i dette projekt kun i forbindelse med Interrupt Acknowledge, og kobles til en 3til 8-dekoder for nemmere at kunne overvåge processorens status ved evt. fejlsøgning. Statusin-formation er f.eks. information om, hvorvidt processoren arbejder med data eller programmel. ITabel 4.2 ses en oversigt over betydningen af de tre funktionsudgange.
De udefinerede, reserverede tilstande er reserverede til senere udvidelser i nye udgaver af Mo-torola 68000 processoren. Det ses, at FC2 angiver om processoren arbejder i user mode ellersupervisor mode. Benet FC1 angiver at processoren arbejder i program mode, og FC0 angiver atprocessoren arbejder i data mode. Tilstanden ’CPU space (interrupt acknowledge)’ forekommer,når en perifer enhed genererer en interrupt request, og processoren behandler denne. Opdelingen
16
![Page 29: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/29.jpg)
4.1. Motorola 68000 processor
FC2 FC1 FC0 Clock cycle type
0 0 0 Udefineret, reserveret0 0 1 User data0 1 0 User program0 1 1 Udefineret, reserveret1 0 0 Udefineret, reserveret1 0 1 Supervisor data1 1 0 Supervisor program1 1 1 CPU space (interrupt acknowledge)
Tabel 4.2: Oversigt over betydningen af funktionskontrolbenene [Clements, 1997]
i user og supervisor mode udføres fordi, at visse instruktioner kun kan udføres i supervisor mode.Processoren starter altid i supervisor mode, og kan skifte til user mode via software men ikkeomvendt. Ydermere kan processoren kun skifte fra user mode til supervisor mode hvis der skeren undtagelse. En undtagelse kan være, hvis der kommer et interrupt fra en perifer enhed.
4. Interruptstyring:
Interruptstyring består af tre inputben på processoren benævnt IPL0, IPL1 og IPL2. Såfremten perifer enhed ønsker processorens opmærksomhed, sender den et interrupt request. Der er treinterrupt request inputben, hvilket muliggør otte forskellige interrupts requests fra 0 til 7, meninterrupt 0 benyttes ikke. En perifer enhed har typisk kun et ben til at angive den ønsker inter-rupt. Derfor er det nødvendigt med digital logik, der angiver den rette interrupt til processoren.Som prioritetsenkoder anvendes en 8 til 3-enkoder. Interruptniveau 0 har den laveste prioritet,og interrupt niveau 7 har højest prioritet. Interrupt request 7 vil altid blive behandlet af proces-soren. I processorens statusregister er der tre bits I0, I1 og I2, der angiver hvilken interruptniveauder behandles. Såfremt I0-I2 er 5, behandles interrupt request 5 og interrupt requests med lavereprioritet ikke. Processoren sætter ydermere adressebenene A1, A2 og A3 med tilsvarende kodesom er på IPL-benene. De tre adresseben bliver dekodet i en 3 til 8-dekoder, og anvendes somniveaudekoder til interrupt behandling.
4.1.2 Generering af clock
Processorens clockhastighed styres via ben 15 på processoren, hvor der tilsluttes en clockgeneratormed den ønskede frekvens. I dette projekt vælges det at køre med 8 MHz clockfrekvens. Derfortilsluttes en oscillator af typen MCO 1425 B - 8 MHz som vist på Figur 4.2.
Ben 14 på oscillatoren tilsluttes 5 V spændingsforsyning, og ben 7 tilsluttes til 0 V. Mellemben 7 og ben 8 tilsluttes en belastningskondensator, C2, som er angivet i databladet til 15 pF[Komponenten, 1993]. Ben 8 på oscillatoren tilsluttes ben 15 på Motorola 68000 processoren.Ben 1 benyttes ikke.
17
![Page 30: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/30.jpg)
4 Design af mikrodatamat
MCO1425B
14 8
71
V_CC
5 V
C2
15 pF
CLK
--- D:\Dokumenter\AAU\4. semester\Gruppemappe\Rapport\Figur\Prefigur\cpuclock.asc ---
Figur 4.2: Diagram over clockkredsløb til Motorola 68000 processor
4.1.3 Opbygning af power-up-reset kredsløb
Til opbygningen af power-up-reset kredsløbet anvendes en TL7705 kreds fra Texas Instruments,da denne er fremstillet til dette formål.
Benene på TL7705 kredsen har følgende funktioner:
REF: Reference. Angiver referencespændingen for kredsen. Tilsluttes normalt til stel.
RESIN: Reset Input. Hvis dette ben trækkes lavt, genererer TL7705 kredsen et reset signal påudgangen. Dvs. en kontakt kan tilsluttes til dette ben, så processoren kan genstartes via denne.
SENSE: TL7705 kredsen overvåger forsyningsspændingen via SENSE benet, så dette tilsluttesVCC .
CT: Hvis TL7705 kredsen på SENSE benet registrerer, at forsyningsspændingen går under 3,6V, går reset aktiv. Reset forbliver aktiv i en periode efter forsyningsspændingen er steget igen.Denne periode, td, angives af en kondensator, der monteres mellem stel og benet CT på TL7705kredsen. Perioden td udregnes således ud fra databladet for TL7705 [Instruments, 2003]:
td = 1, 3 · 104 · Ct (4.1)
Hvor td angiver forsinkelsen i sekunder, og Ct angiver størrelsen af kondensatoren i Farad.
Periodetiden for en clockcyklus når processoren kører 8 MHz er 125 ns, og reset skal være aktiv imindst 10 clock cycles, før processoren genstarter. 1,25 µs er mindre end de 100 ms hvor reset skalvære aktiv ved opstart af processoren, og derfor dimensioneres kondensatoren der skal tilsluttesmellem benet CT og stel således, at reset benet er aktivt i 100 ms vha. Formel 4.1:
td = 1, 3 · 104 · Ct ⇔ Ct =td
1, 3 · 104⇒
Ct =100 · 10−3 s
1, 3 · 104= 7, 7 µF (4.2)
Denne værdi afrundes til 10 µF hvilket giver en ventetid, td, på 130 ms.
GND og VCC: Tilsluttes til stel og forsyningsspændingen på 5 V.
RESET og RESET: TL7705 kredsen kan anvendes både til kredse der har aktivt lavt resetog aktivt højt reset signal. Motorola 68000 processoren har aktivt lavt reset signal, så derforbenyttes ben 5 på TL7705 kredsen, da det er aktivt lavt. Begge reset ben har open-collectorudgang, og der skal derfor anvendes pull-up modstande.
18
![Page 31: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/31.jpg)
4.2. Lager
På Figur 4.3 ses et diagram over power-up-reset kredsløbet.
R1
10 k
C1
0,1 uF
VCC
5 V
C_t
10 uF
R2
10 k
Reset
D1
D
D2
D
R3
10 k
R4
10 k
REF
RESIN*
CT
GND
VCC
SENSE
RESET
RESET*
TL77051
2
3
4 5
6
7
8
VCC
VCC
VCC
VCC
Halt*
Reset*
VCC
VCC
--- D:\Dokumenter\AAU\4. semester\Gruppemappe\Rapport\Figur\Prefigur\Power-up-reset.asc ---
Figur 4.3: Diagram over power-up-reset kredsløb
Ben 1, REF, er tilsluttet til stel via en afkoblingskondensator med størrelsen 100 nF, da det-te er angivet i databladet [Instruments, 2003]. Ben 2, RESIN, er tilsluttet en modstand og enresetkontakt, således processoren kan genstartes manuelt. Ben 3, CT, tilsluttes til stel via kon-densatoren Ct der bestemmer hvor lang tid, reset er aktiv. Størrelsen af denne kondensator erudregnet i Formel 4.2. Ben 4, GND, er tilsluttet stel. Ben 5, RESET, tilsluttes HALT og RESETpå processoren. Dioderne D1 og D2 bevirker, at HALT og RESET ikke kan påvirke hinanden.Ben 6, RESET, tilsluttes stel gennem en 10 kΩ modstand, da den ikke benyttes. Ben 7, SENSE,og ben 8, VCC , tilsluttes forsyningsspændingen.
4.2 Lager
I vægenheden anvendes der to typer af lager, ROM og RAM. Som ROM kan f.eks. bruges E-PROM eller Flash-RAM. ROM bruges til at lagre softwaren, som skal køres af processoren, dadataene ikke bliver slettet, når forsyningsspændingen fjernes. RAM derimod mister deres data,når forsyningsspændingen fjernes.
I dette projekt skal der bruges lager til to ting. Det er hhv. til TS2 debugger/monitor der skalbruge lager til software og data, og til software og data der giver vægenheden dens funktionalitet.TS2 debugger/monitor stiller krav med hensyn til mængde og placering i memorymap. TS2debugger/monitor kræver 2·128kbit·8 EPROM eller Flash-RAM på adresserne $0-$1200. RAMtil TS2 skal være på adresserne $40000-$40FFF.
4.2.1 ROM - Read Only Memory
ROM er et kombinations kredsløb med n indgange og b udgange, hvert input giver et bestemtoutput. Et ROM-kredsløb kan f.eks. være en 3 til 8 dekoder, som har 3 indgange og 8 udgange.En ROM kreds har typisk to kontrol inputs, output enable (OE) og chip select (CS) som beggeskal være aktive, når der skal læses fra ROM’en. Nogle ROM kredse kan slettes, og programmeres
19
![Page 32: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/32.jpg)
4 Design af mikrodatamat
efter behov. En oversigt over forskellige ROM-typer ses i Tabel 4.3. Læse-cyklus angiver tidenfra der anmodes om data til data’en er tilgængelig. Skrive-cyklus angiver tiden fra data’en derskal gemmes er til rådighed, til de er gemt.
Type Teknologi Læse-cyklus Skrive-cyklus Kommentarer
Mask ROM NMOS, CMOS 10-200 ns - En skrivning, lav effektforbrugMask ROM Bipolar < 100 ns - En skrivning, høj effektforbrugPROM Bipolar < 100 ns 10-50 µs/byte En skrivning, høj effektforbrug,
ingen udgifter ved skrivningEPROM NMOS, CMOS 25-200 ns 10-50 µs/byte Kan slettes og programmeres,
lav effektforbrug,ingen udgifter ved skrivning
EEPROM NMOS 50-200 ns 10-50 µs/byte 10.000-100.000skrivninger/læsninger,ingen udgifter ved skrivning
Tabel 4.3: Oversigt over typer af ROM-kredse [Wakerly, 2002]
Mask ROM er en ældre type ROM-kredse, som bliver fremstillet af producenten, udfra kundensønsker om input/output relationer. Disse kredse kan ikke ændres efter fremstilling, og benyttesderfor sjældent.
PROM: Programmable Read-Only Memory. Gør det muligt for kunden selv at programmere sinROM-kreds.
EPROM: Erasable Programmable Read-Only Memory. En PROM hvor det er muligt at sletteindholdet med ultra-violet lys, og derefter indlæse nye data.
EEPROM: Electrically Erasable Programmable Read-Only Memory. Kan slettes elektrisk hvilketmuliggør omprogrammering, mens den er implementeret i et system.
ROM-kredse er dermed anvendelige, hvis der skal bruges data, som ikke skal ændres mens syste-met kører. Men hvis der er behov for at gemme eller ændre data, mens et system kører, vil dettypisk være bedre at bruge RAM istedet for ROM.
4.2.2 RAM - Random Access Memory
RAM er en hukommelseskreds, hvor den tid det tager at skrive eller læse en bit er uafhængig afplaceringen i RAM kredsen. Alle RAM kredse har i modsætning til ROM kredse data inputs.RAM kredse har et ekstra kontrol input, Write Enable (WE), som sammen med CS skal væreaktive, når der skal skrives til RAM’en. Dermed kan data på databenene skrives til en bestemtadresse bestemt af adressebenene. Der er typisk to typer af RAM, statisk og dynamisk. StatiskRAM gemmer alt data, når de først er skrevet én gang til RAM’en, så længe der er strøm påkredsen. Dynamisk RAM skal have opdateret indholdet periodisk for ikke at miste data.
20
![Page 33: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/33.jpg)
4.3. Adressedekodning
4.2.3 Valg af ROM
Som ROM vælges at benytte kredse af typen flash-RAM. Det vælges at bruge kredsen 29F010, dadenne kreds er tilgængelig i laboratoriet og opfylder kravene. Kredsen har en læse- og skrivecyklustid på 90 ns. Kredsen er designet til at kunne programmeres, implementeret i et mikrodatamat-system, via adresse- og databussen.
Benene på kredsen har følgende funktioner [AMD, 1995]:
A0-A16: Adressebenene som skal forbindes til processoren via adressebussen.
DQ0-DQ7: Databenene der skal forbindes til databussen.
CE: Chip Enable. Modsvarer chip select på andre kredse. Styres via adressedekodning.
OE: Output Enable. Skal være lav, når der skal læses fra kredsen. Styres via adressedekodning.
WE: Write Enable. Skal være lav, når der skal skrives til kredsen. Styres via adressedekodning.
VCC: Forsyning til kredsen og forbindes til 5 V med en afkoblingskondensator.
VSS: Ground. Forbindes til stel.
4.2.4 Valg af RAM
Til RAM vælges at benytte kredse af typen HM628512, da de er tilgængelige i laboratoriumet.Kredsen har en læse- og skrivecyklus tid på 70 ns.
HM628512 har samme type benforbindelser som 29F010. Adressebenene A0-A18, databeneneI/O0-I/O7 og samme type kontrolben CE, OE og WE [Hitachi, 1994].
4.3 Adressedekodning
Adressedekoderens formål er, at generere chipselect, CS, til de enheder der kan tilgå databussen.I det følgende afsnit beskrives adressefordelingen på adressebussen. Dekodnings- samt styrelogikprogrammeres efterfølgende i en Programmable Electrically Erasable Logic kreds, (PEEL kreds).
4.3.1 Adressefordeling
På Figur 4.4 ses en indledende adressefordeling. De forskellige enheder der skal memorymappes erinddelt i tre hovedområder: Hukommelse for TS2 debugger/monitor, specifikt kode samt bruger-lager (memory), adresser til kommunikation (COM) og sidst adresser forbeholdt Input/Output(I/O).
Denne opdeling gør det overskueligt at udvide f.eks. hukommelsesområdet eller tilføje flereInput/Output-enheder.
21
![Page 34: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/34.jpg)
4 Design af mikrodatamat
TS2 D/M ACIA
$800 000 $BFF FFF$A00 001$800 003 $A00 003
...Konfig.ACIA
...
$C00 000 $FFF FFF$??? ???$??? ??? $??? ???
(RAM3)
RAM1ROM1
8-bit DAC
8-bit ADC
Konfig. ACIA
TS2 D/M ACIA
(RAM4)
RAM2ROM2
LDS(D7-D0)
$0 $1 000 000$800 000 $C00 000
Memory COM I/O
$0 $7F FFFF$4 0000 $13 FFFF
FLASH ROM 1+2 RAM 1+2 …
00 000103 FFFF
00 000003 FFFE
04 0001
13 FFFF
04 0000
13 FFFE14 0001
23 FFFF
14 0000
23 FFFE24 00012F FFFF
24 00002F FFFE30 0000
3F FFFE40 0000
4F FFFE50 0000
5F FFFE60 0000
60 FFFE70 0000
70 FFFE80 0001
9F FFFF
80 0000
9F FFFEA0 0001
BF FFFF
A0 0000
BF FFFEC0 0001
DF FFFF
C0 0000
DF FFFEE0 0001
FF FFFF
E0 0000
FF FFFE
30 0001
3F FFFF40 0001
4F FFFF50 0001
5F FFFF60 0001
60 FFFF70 0001
70 FFFF
UDS(D15-D8)
Figur 4.4: Tildeling af adresseområder
4.3.2 Hukommelse
Af TS2 debugger/monitor stilles en række krav til placering af hukommelse samt den ene kom-munikationsforbindelse. TS2 debugger/monitor kræver, at der er ROM på adresserne $0 til $1200samt at der forefindes RAM på adresserne fra $40000 til $40FFF. Dette medfører, at adresseom-rådet skal deles op i områder bestående af $40000 adresser, således alt ROM kan adresseres medsamme CS. Et område bestående af $40000 adresser, giver 256 kb hukommelse. Den samledemængde adresserbare hukommelse for en Motorola 68000 processoren er 16 Mb. Der skal derfordekodes ned til en 1/64 af den samlede hukommelse. En opdeling i 64 områder kan opnås ved atdekode på et antal adresseben bestemt ud fra Formel 4.3.
n =log (m)log (2)
, m > 0 (4.3)
Hvor n er antal adresseben og m er antallet af områder der ønskes dekodet.
Dermed kan antallet af adresseben udregnes vha. Formel 4.5.
n =log (64)log (2)
(4.4)
n = 6 (4.5)
Dermed dekodes på de 6 øverste adresseben (A23-A18).
Som beskrevet i afsnit 4.2 Lager på side 19, anvendes to ROM-blokke af typen AM29F010, somhver kan indeholde 1 Mbit ordnet som 128 k × 8 bit. Placeres to blokke af denne type fra adresse$0, således at den ene blok adresseres til Lower Data Strobe, LDS, mens den anden adresserestil Upper Data Strobe, UDS, udfylder disse tilsammen det første hukommelsesområde fra $0 til$3FFFF.Ydermere anvendes to RAM-blokke af typen HM628512 til statisk RAM, som hver kan indeholde4 Mbit ordnet som 512 k × 8 bit. Disse placeres lige efter ROM-blokkene for at overholde kravetstillet af TS2 debugger/monitor, og kommer dermed til at ligge i adresseområdet fra $40000 til$13FFFF, ligeledes til hhv. LDS og UDS.Det samlede memorymap for CPU’ens adresseområde ses på Figur 4.5.
Der skal således dekodes på de 6 øverste adresseben (A23-A18), datastrobe (LDS/UDS) samtadressestrobe, AS, for at chipselect, CS, først genereres, når der er en gyldig adresse på adresse-bussen.
I adresseområderne markeret som TS2 ACIA, Konfig. ACIA, ADC og IR driver forekommerspejling. I TS2 ACIA og Konfig. ACIA bruges 2 adresser i hver. Disse adresser spejles på deresterende adresser i området, da adressedekodningen ikke er fuldstændig. I adresseområderneADC og IR driver, benyttes kun 1 adresse i hver. Dette giver spejling der betyder, at alle adresseri områderne vil aktivere hhv. ADC’en eller IR driveren.
22
![Page 35: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/35.jpg)
4.3. Adressedekodning
IR driverE0 0001E3 FFFF
E0 0000E3 FFFEE4 0000
FF FFFE
E4 0001
FF FFFF
ADCC0 0001C3 FFFF
C0 0000C3 FFFEC4 0000
DF FFFE
C4 0001
DF FFFF
Konfig. ACIAA0 0001A3 FFFF
A0 0000A3 FFFEA4 0000
BF FFFE
A4 0001
BF FFFF
TS2 D/M ACIA80 000183 FFFF
80 000083 FFFE84 0000
9F FFFE
84 0001
9F FFFF
RAM1 RAM2
RAM1 RAM2
RAM1 RAM2
RAM1 RAM2
ROM1 ROM2
LDS(D7-D0)
00 000103 FFFF
00 000003 FFFE
UDS(D15-D8)
04 000107 FFFF
04 000007 FFFE
08 00010B FFFF
08 00000B FFFE
0C 00010F FFFF
0C 00000F FFFE
10 000113 FFFF
10 000013 FFFE14 0000
7F FFFE
14 0001
7F FFFF
Figur 4.5: Memorymap over processorens 16 Mb adresseområde (adresser er angivet i hex). De grå felter angiverubenyttede områder der ikke adresseres. Dermed menes at der ikke chipselectes nogle kredse på disse adresser. Degrå felter med stiplet linie angiver, at de spænder over et større område.
Placeringen af RAM’en i memorymappen samt deres størrelse betyder, at data ikke vil bliveplaceret fortløbende i den fysiske RAM. Dette skyldes, at det mest betydende adresseben påRAM-blokkene er mere betydende end det mindst betydende ben, der dekodes på i adressedeko-deren.
$ 7 FFFF $ BF FFFE
RAM 1 adresser
$ 4 0000 $ 04 0000
$ 3 FFFF $ 13 FFFE
$ 0 0000 $ C0 0000
Processor adresser
Figur 4.6: Omsætning af adresser fra processor til RAM1
På Figur 4.6 ses sammenhængen mellem den faktiske adresse processoren tilgår, og den adressesplacering i RAM’en. På Figur 4.6 ses det ligeledes at processoren spænder over flere adresser endRAM1. Dette skyldes, at RAM1 kun ligger på de lige adresser i hukommelsen. Dette har ikke
23
![Page 36: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/36.jpg)
4 Design af mikrodatamat
betydning i den anvendte konfiguration, da der ikke anvendes Direct Memory Access (DMA).Hvis det derimod var tilfældet, at flere enheder kunne styre bussen, var det nødvendigt at sikreenten fortløbende placering af data eller ens datatilgang til bussen.
Styrelogik til perifere enheder
Styrelogikken har til opgave at generere output enable, OE, og write enable, WE, til de perifereenheder. Ovennævnte genereres ud fra CPU’ens asynkrone kontrolbus, hvor AS er lav ved gyldigadresse på adressebussen, mens R/W er høj, når CPU’en er i read-mode og lav i write-mode.
En sandhedstabel over styrelogikken på kontrolbussen ses i Tabel 4.4.
Input OutputAS R/W OE WE
0 0 1 00 1 0 11 0 1 11 1 1 1
Tabel 4.4: Sandhedstabel over styrelogik til RAM- og ROM-kredse
4.3.3 Kommunikation
Af TS2 debugger/monitor stilles et krav om placering af en ACIA-kreds. Denne skal placeres påadresserne $800001 og $800003. Kredsen er placeret på ulige adresser, og forbindes derfor til dennedre del af databussen (D0-D7), og adresseres vha. adressebenene samt LDS og AS.
Udover ACIA-kredsene tilkobles I/O-enheder til kommunikation med sender- og modtagerkreds-løb for IR-signaler. Disse er placeret i den øverste del af adresseområdet jf. adressefordelingen påFigur 4.4. Sender og modtager adresseres til den nedre del af bussen vha. LDS. Placeringen kanses af memorymappen, Figur 4.5.
4.3.4 PEEL kode for Adressedekoder
Som beskrevet tidligere programmeres addressedekodningen i en PEEL kreds. Her opstilles de lo-giske udtryk på baggrund af det opstillede memorymap, der ses på Figur 4.5. Adressedekodningenopstilles i en tabel over adresseområder og adresseben, se Tabel 4.5.
Ud fra Tabel 4.5 kan der opstilles følgende logiske ABEL1 udtryk for generering af CS. ACIA1i udtrykkene henviser til ACIA-kredsen, der bruges til TS2 debugger/monitor, mens ACIA2henviser til ACIA-kredsen, der anvendes i forbindelse med konfiguration af systemet.
1Advanced Boolean Expression Language - kodesprog til generering af kode til f.eks. PEEL kredse
24
![Page 37: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/37.jpg)
4.4. Seriel datakommunikation
Enhed A23 A22 A21 A20 A19 A18 A17-A1 LDS UDS AS
ROM1 0 0 0 0 0 0 X X 0 0ROM2 0 0 0 0 0 0 X 0 X 0RAM1 0 0 0 0 0 1 X X 0 0
0 0 0 0 1 X X X 0 00 0 0 1 0 0 X X 0 0
RAM2 0 0 0 0 0 1 X 0 X 00 0 0 0 1 X X 0 X 00 0 0 1 0 0 X 0 X 0
TS2 ACIA 1 0 0 0 0 0 X 0 X 0Konf. ACIA 1 0 1 0 0 0 X 0 X 0IR Rx 1 1 0 0 0 0 X 0 X 0IR Tx 1 1 1 0 0 0 X 0 X 0
Tabel 4.5: Tabel over logiske niveauer for generering af CS til CPU’ens perifere kredsløb. 1 = høj, 0 = lav mensX angiver en don’t care
!ROM1 = !A23 & !A22 & !A21 & !A20 & !A19 & !A18 & !UDS & !AS;!ROM2 = !A23 & !A22 & !A21 & !A20 & !A19 & !A18 & !LDS & !AS;!RAM1 = !A23 & !A22 & !A21 &
((!A20 & !A19 & A18) # (!A20 & A19) # (A20 & !A19 & !A18))& !UDS & !AS;
!RAM2 = !A23 & !A22 & !A21 &((!A20 & !A19 & A18) # (!A20 & A19) # (A20 & !A19 & !A18))& !LDS & !AS;
!ACIA1 = A23 & !A22 & !A21 & !A20 & !A19 & !A18 & !LDS & !AS;!ACIA2 = A23 & !A22 & A21 & !A20 & !A19 & !A18 & !LDS & !AS;!Rx = A23 & A22 & !A21 & !A20 & !A19 & !A18 & !LDS & !AS;!Tx = A23 & A22 & A21 & !A20 & !A19 & !A18 & !LDS & !AS;
For styrelogikken til kontrolbussen opstilles følgende udtryk på baggrund af sandhedstabellen,se Tabel 4.4 på side 24.
!OE = !AS & RW;!WE = !AS & !RW;
Ovenstående udtryk programmeres i en PEEL kreds af typen ICT 22CV10A. Denne tager optil 22 input, hvoraf 10 kan anvendes som output. De 10 opstillede udtryk giver tilsammen 10outputs vha. 10 inputs.Den endelige PEEL kode ses i Appendiks G.
4.4 Seriel datakommunikation
For at mikrocomputeren kan kommunikere med andre enheder, benyttes der seriel datakom-munikation. Denne kommunikation sker gennem en RS232 forbindelse. Først beskrives RS232
25
![Page 38: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/38.jpg)
4 Design af mikrodatamat
forbindelsen, dernæst den tilknyttede ACIA2 med baudgenerator og NMI-kontakt der benyttestil TS2 debugger/monitor. Sidst beskrives hvorledes interrupt request (IRQ) i forbindelse medden serielle datakommunikation håndteres.
4.4.1 Beskrivelse af RS232
RS232 er en serielt brugerflade, der f.eks. kan anvendes til at transmittere data mellem en pc og enmikrodatamat. I dette projekt benyttes denne type forbindelse, når vægenheden skal konfigureres,og når TS2 debugger/monitor anvendes.
Med seriel dataoverførsel forstås, at når der transmitteres data mellem mikrodatamaten og enpc, sendes én bit af gangen. Til at indikere hvornår en datasekvens starter og stopper, benyttesstart- og stopbit. På Figur 4.7 ses et eksempel på et bitmønster for seriel data ved brug af RS232.
Start bit
Data bits Paritet bit
Stop bit
En karakter
LSB MSB
Figur 4.7: Illustration af et serielt datasignal iht. RS232 standarden. Signalet indeholder en startbit, 7 databits,en paritetsbit og en stopbit [Clements, 1997]
Når der ikke sendes data over den serielle forbindelse er det logiske niveau 1. Når en datasekvensskal sendes, er den første bit en startbit. En startbit er altid lav. Derefter følger 7 eller 8 bits,som er databits. Efter disse kan der følge en paritetsbit. Til sidst er der en eller to stopbit somaltid er høje. Det vælges om signalet pariteten skal være lige, ulige eller helt uden paritet. Vælgespariteten til ulige, vil paritetsbitten være høj hvis der i databittene er et lige antal høje bits, oglav hvis der er et ulige antal [Clements, 1997]. Alt i alt giver det 12 forskellige muligheder fordatasekvenser. I datasekvensen er den første bit efter startbitten LSB, og bitten lige før et evt.paritetsbit eller stopbit er MSB.
RS232 driver
Når bitsignalet kommer fra processoren er dets spændingsniveau enten 0 V eller 5 V. Standardenfor RS232 foreskriver spændingsniveauer mellem ±5 V og ±25 V [Clements, 1997]. Derfor ersignalet fra processoren nødt til at blive forstærket, og flyttet således det ligger omkring 0 V. Dettekan gøres med en RS232-driver. I dette projekt anvendes en RS232 driver af typen MAX232A.Ud fra 0 V og 5 V kan denne driver konvertere spændingsniveauerne til ±8 V, hvilket er indenforspecifikationerne i standarden.
Denne driver har ligeledes den egenskab, at den kan bruges, når et signal skal konverteres ned til0 V og 5 V fra RS232 forbindelsen. Det vil sige, at et signal med spændingsniveauer mellem -25V og 25 V bliver til 0 V og 5 V.
2Asynchronous Communications Interface Adapter
26
![Page 39: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/39.jpg)
4.4. Seriel datakommunikation
MAX232A kan håndtere to serielle forbindelser, hvilket gør at den benyttes til både TS2 debug-ger/monitor og konfiguration via PC.
4.4.2 Parallel/seriel konverter
Databussen på Motorola 68000 processoren er en parallel bus. Derfor benyttes en ACIA kredstil at konvertere data mellem parallel og seriel form. Denne konvertering benyttes både til TS2debugger/monitor og til den anden serielle port der benyttes til at konfigurere vægenheden viaen pc. I dette projekt benyttes en MC6850 ACIA kreds [Semiconductors, 1994]. De datamæssigtrelevante benforbindelser beskrives efterfølgende.
D0-D7: Databen som er koblet på mikroprocessoren.
RxD: Databen til modtagelse af data fra seriel forbindelse.
RxCLK: Clock input til ACIA kredsen. Clock’en bruges til modtagelse af data.
TxCLK: Clock til timing af TxD. Ofte koblet sammen med RxCLK.
TxD: Transmit Data. Databenet hvorpå der sendes seriel data. Når der ikke sendes data ertilstanden høj.
E: Enable. Clock til read/write mellem ACIA kredsen og processoren.
VPA: Valid Peripheral Address. Går lav når en synkron buscyklus ønskes fra processoren.
VMA: Valid Memory Address. Indikerer for ACIA kredsen, at der er en gyldig adresse påadressebussen. VMA går lav som følge af at VPA går lav.
IRQ: Interrupt Request. Interruptben fra ACIA kredsen, som sættes lav når en byte er modtaget.
RS: Register Select. Højimpedant indgang der anvendes til at vælge ACIA kredsens interne regi-stre. Et højt niveau vælger send/modtag dataregistre og et lavt vælger kontrol/status registrene.
R/W: Read/Write. Styrer retningen at dataflowet i ACIA kredsen. Når den er høj er ACIAkredsens udgang aktiveret og registre læses. Når den er lav er udgangene ikke aktive og derskrives i ACIA kredsens interne registre.
ACIA kredsen er koblet på databussen ligesom hukommelse. ACIA kredsen benytter ikke sammeclock som processoren, og derfor benyttes tre kontrolsignaler, E, VPA og VMA, fra processorentil styring. Databenene D0 til D7 på ACIA kredsen kobles til D0 til D7 på processoren.
Generering af chipselect af ACIA kredsene
To af ACIA kredsens tre chipselectben, CS0 og CS1, sættes høje. Derved er de aktive og kredsenvælges derefter, når CS2 er lav. ACIA kredsenes chipselect genereres ud fra VMA, LDS, ASog adressebenene A18 til A23. Adressebenene A18 til A23 samt AS udgør adresseringen i denkonstruerede adressedekoder, se afsnit 4.3, og betegnes her som adresseringssignalet. Adresse-ringssignalet genererer VPA til processoren. Når VPA går lav, starter processoren umiddelbart
27
![Page 40: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/40.jpg)
4 Design af mikrodatamat
herefter en synkron buscyklus, og sætter derefter VMA lav. VMA, LDS og adresseringssignalettil ACIA kredsen fra adressedekoderen logisk AND’es, og laver chipselect, CS2 for pc eller TS2debugger/monitor.
Desuden benyttes R/W til at indikere overfor ACIA kredsen, om der skrives til den eller læsesfra den. Adressebenet A1 på processoren kobles til RS på ACIA kredsen, og vælger hvilke registreder skal bruges.
4.4.3 ACIA kredsens registre
ACIA kredsen har fire interne registre. To write-only, benævnt kontrolregister (CR) og senddataregister (TDR) og to read-only, benævnt statusregister (SR) og modtag dataregister (RDR).Registrene CR og SR vil efterfølgende blive beskrevet.
Kontrolregister
ACIA kredsens kontrolregister sættes op til at styre, hvordan kredsen skal operere. Kontrolregi-steret er på 8 bit og delt op i 4 felter. I Tabel 4.6 ses en oversigt over registeret.
Bit CR7 CR6 CR5 CR4 CR3 CR2 CR1 CR0
Funktion Modtager interrupt Sender Valg af bitmønster Clockdivision
Tabel 4.6: Tabel over ACIA kredsens statusregister og dets bits funktioner [Clements, 1997]
Efterfølgende vil statusregisterets funktioner blive gennemgået.
ClockdivisionCR0 og CR1 vælges til at bestemme clockdivisionen i ACIA kredsen. Det vil sige neddelingenaf den clock, der tilsluttes på benene RxCLK og TxCLK. Der er tre delingsforhold, 1, 16 og 64.I dette projekt vælges den til 16, hvilket giver at CR0 = 1 og CR1 = 0. Når begge bit er høje,nulstilles kredsen.
Valg af bitmønsterCR2, CR3 og CR4 bruges til at bestemme antallet af databit, paritet og antal stopbits. Antalletaf databit vælges til at være 8 bit. Der skal ikke være nogen paritet, og der kan være en stopbit,hvilket giver CR2 = 1, CR3 = 0, CR4 = 1.
SenderCR5 og CR6 bestemmer RTS og Transmitter interrupt. RTS bestemmer, om IRQ skal sætteslav, når der skal sendes data. Hvis Transmitter Interrupt er aktiv, laver senderen et interrupt såsnart TDR er tomt.
Modtager interruptCR7 bestemmer om ACIA’en må generere interrupt til mikroprocessoren.
28
![Page 41: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/41.jpg)
4.4. Seriel datakommunikation
Statusregister
Statusregistret bruges til at mikroprocessoren kan udlæse status for ACIA kredsen. For at udlæsestatusregistret skal RS være lav og R/W høj. I Tabel 4.7 ses registrets bits og deres funktion.
Bit SR7 SR6 SR5 SR4 SR3 SR2 SR1 SR0
Funktion IRQ PE OVRN FE CTS DCD TDRE RDRF
Tabel 4.7: Tabel over statusregistret med bitnummer og funktion [Clements, 1997]
Efterfølgende vil hver funktion blive beskrevet.
RDRF: Receive Data Register Full. Angiver at modtaget data er læst ind i modtager dataregi-steret, og klar til at blive læst af mikroprocessoren.
TDRE: Transmit Data Register Empty. En høj bit angiver, at data fra sender dataregisteret ersendt, og klart til at blive fyldt op igen. En lav bit angiver, at registeret er fyldt.
DCD: Data Carrier Detect. Bruges når den serielle forbindelse kobles til et modem. Angiver omder er data på forbindelsen.
CTS: Clear-To-Send. Når signalet er lavt er f.eks. et modem klart til at sende data til kredsen.
FE: Framing Error. Fejlmeddelselse der angiver fejl i synkroniseringen. FE sættes høj, hvis detmodtagne signal ikke indeholder både start- og stopbit.
OVRN: Receiver Overrun. Angiver at data ikke er modtaget. For eksempel hvis modtag data-registeret ikke er blevet læst, inden der er blevet sendt en ny byte.
PE: Parity Error. Er høj hvis den forudindstillede paritet ikke passer med den modtagne.
IRQ: Interrupt Request. Når IRQ er høj i statusregisteret, er IRQ-udgangen lav. Den blivernulstillet, når en skrive- eller læseoperation udføres.
4.4.4 Baudgenerator
Når der sendes data over en seriel forbindelse efter RS232 standarden sendes clock-pulserne ikkemed. Derfor skal der genereres nye clockpulser hos modtageren med samme hastighed som isenderen.
TS2 debugger/monitor kræver en baudhastighed på 9600 baud (bits/sekund). ACIA kredsen ervalgt til at dele med 16. På baggrund af dette kan frekvensen af clockgeneratoren, fclk, beregnesi Formel 4.6.
fclk = 16 · 9600 Hz = 153, 6 kHz (4.6)
Denne frekvens er ikke tilgængelig som integreret clockgenerator eller krystal, og derfor anvendesen oscillator med højere frekvens, der kan neddeles til 153,6 kHz. Baudganeratoren konstrueresherefter med en rippletæller af typen 74HC4040 samt en oscillator på 2,4576 MHz, hvilket er 16gange højere end den ønskede frekvens.
29
![Page 42: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/42.jpg)
4 Design af mikrodatamat
Oscillatoren kobles til, CLK, på rippletælleren og udgangen med den korrekte neddeling koblestil clock på ACIA kredsen. Ifølge datablad for rippletælleren neddeler Q4 med 16 [Philips, 2005].Ben 11, RST, bruges til reset af kredsen. Da rippletælleren anvendes til at neddele en clock ogikke til at tælle tilsluttes dette ben til stel.
4.4.5 Interrupt request
Når der modtages data på en af RS232 forbindelserne benyttes autovektoriseret interrupt forat få processorens opmærksomhed. Interrupt request fra de to ACIA kredse enkodes via pri-oritetsenkoderen til processoren, som svarer med tilhørende IACK på niveaudekoderen. TS2debugger/monitoren kræver interrupt 7 til kommunikation, mens det vælges at den anden ACIAkreds skal benytte interrupt 5. Således genereres der individuelle IACK for ACIA kreds til pc ogTS2 debugger/monitor. Disse benævnes hhv. IACK5 og IACK7.
I en PEEL kreds logisk AND’s IACK5 med IRQ5 og IACK7 med IRQ7. Såfremt IACK5 ellerIACK7 går lav, går VPA ligeledes lav, hvis den tilhørende IRQ er aktiv. Dermed chipselectesden perifere enhed.
4.4.6 PEEL kode for chipselect og interruptstyrring af ACIA
Som beskrevet anvendes en PEEL kreds til styring af en del af kommunikationen mellem proces-soren og ACIA’erne. I Tabel 4.8 ses sammenhængen ind- og udgange.
Udgang VMA LDS ACIA_PCI ACIA_DMI IRQ5 NMI IACK5 IACK7
VPA X X 0 X X X X XX X X 0 X X X XX X X X 0 1 0 1X X X X 1 0 1 0
ACIA_PCO 0 0 1 0 X X X XACIA_DMO 0 0 0 1 X X X X
Tabel 4.8: Tabel over ind- og udgange for ACIA PEEL kreds
Ud fra Tabel 4.8 opstilles følgende ABEL udtryk, der efterfølgende programmeres i en PEELkreds.
!VPA = !CS_ACIA_PCI # !CS_ACIA_DMI;!VPA = !IRQ5 & !IACK5;!VPA = !NMI & !IACK7;!CS_ACIA_PCO = !VMA & !LDS & CS_ACIA_PCI & !CS_ACIA_DMI;!CS_ACIA_DMO = !VMA & !LDS & !CS_ACIA_PCI & CS_ACIA_DMI;
ABEL koden programmeres i en PEEL kreds af typen ICT 22CV10A. Den endelige PEEL kodeses i Appendiks G.
30
![Page 43: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/43.jpg)
4.5. Timing
4.4.7 NMI funktion
Som interrupt til TS2 debugger/monitor benyttes interrupt request 7. Interrupt 7 har højestprioritet, og får adgang med det samme, hvis den sættes lav.
Interruptet laves af en mekanisk kontakt, da det er brugeren af systemet, der bestemmer nårfunktionen ønskes benyttet. Procedureren kunne i teorien laves ved, at en kontakt trækker IRQ7på prioritetsdekoderen lav. Når en mekanisk kontakt påvirkes opstår der prell, hvorved metodenikke virker, da der vil komme mange interrupt requests. Derfor laves en prell-fri knap, hvorvedskiftet fra høj til lav foregår uden prell.
En måde at lave denne prell-fri kontakt er ved at lave en bistabil multivibrator. På Figur 4.8 seset diagram over en bistabil multivibrator.
5
5
4
4
3
3
2
2
1
1
D D
C C
B B
A A
NMI
NMI*
VCC VCC
Title
Size Document Number Rev
Date: Sheet of
<Doc> <RevCode>
<Title>
A
1 1Wednesday, May 03, 2006
Title
Size Document Number Rev
Date: Sheet of
<Doc> <RevCode>
<Title>
A
1 1Wednesday, May 03, 2006
Title
Size Document Number Rev
Date: Sheet of
<Doc> <RevCode>
<Title>
A
1 1Wednesday, May 03, 2006
A
B
12
3
12
3
Figur 4.8: Diagram over prell-fri kontakt lavet som en bistabil multivibrator
Virkemåden ved dette kredsløb er, at i off-tilstand er NMI høj og bliver ført ned som indgangpå NAND-gate B. Når der skiftes til on-tilstand går NMI lav og føres ned på NAND-gate B. Daden ene indgang er lav på NAND-gate B, sker der ikke noget ved at der er prell på den andenindgang på NAND-gate B. Det tilsvarende sker når NMI skifter fra lav til høj. Til at opbygge denprell-fri kontakt benyttes en 74HC03 kreds, som indeholder 4 stk. 2-input NAND-gates [Philips,1990].
4.5 Timing
For at mikrodatamatsystemet skal virke efter hensigten, er timingen af stor betydning. Medtiming forståes tidsafhængigheden af logiske niveauer på de signaler der forbinder processorenog enheder som f.eks. RAM og ROM.
Da ingen af de anvendte kredse kan generere DTACK til processoren, skal DTACK genereres påanden vis. Hvordan DTACK skal genereres afhænger af om timingen for de anvendte RAM- ogROM-kredse samt øvrige I/O enheder umiddelbart passer i processorens læse- og skrivecyklus.Hvis disse er hurtige nok, kan DTACK forbindes til AS. På den måde vil processoren læse gyldigdata på databussen umiddelbart efter, at den har sat en gyldig adresse på adressebussen. Hviskredsene derimod er for langsomme til denne konfiguration, skal der vha. en DTACK-generator
31
![Page 44: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/44.jpg)
4 Design af mikrodatamat
indsættes wait states således at DTACK først genereres, når RAM- og ROM-kredsene er klartil det. DTACK-konfigurationen afgøres ud fra den forsinkelse, der er fra AS går lav, til derer gyldig data på databussen. I dette tilfælde forsinkelsen i adressedekoderen samt i RAM- ogROM-kredsene, samt øvrige enheder der kan tilgå databussen.
I det følgende beskrives læse- og skrivecyklus for busoperationer med hukommelsen med hen-blik på, at bestemme om DTACK kan forbindes direkte med AS. Øvrige enheder der kan tilgådatabussen, er valgt efter at passe med denne timing.
4.5.1 Læsecyklus
Timingen for en læsecyklys er illustreret på Figur 4.9. Parametrene på timingdiagrammet, samtde relevante tidsparametre for RAM, ROM og den anvendte PEEL kreds til adressedekodningses i Tabel 4.9.
t1
t3
t4
t2
t5
Figur 4.9: Læsecyklus for Motorola 68000 processor. Modificeret figur fra datablad for Motorola 68000 processor[Motorola, 1993]
Accesstider Delays CPU-timing (Se også Figur 4.9)
tACC,ROM tACC,RAM tadr t1 t2 t3 t4 t5
≤ 90 ns ≤ 70 ns ≤ 10 ns ≤ 62 ns ≤ 55 ns ≤ 60 ns ≥ 10 ns ≥ 10 ns
Tabel 4.9: Tidsparametre for anvendte kredse samt CPU i forbindelse med en læsecyklus. Data fra datablade forhhv. ROM [AMD, 1995], RAM [Hitachi, 1994], PEEL kreds [ICT, 2004] samt Motorola 68000 processor [Motorola,1993]
Tiden, t5, i Tabel 4.9 er processorens krav til, hvornår data skal være gyldig på databussen.Tiden, t5 ≥ 10 ns skal overholdes, hvis der ikke skal indsættes wait states. Tiden, t5, kan findesved at betragte tiden fra stigende flanke i STATE 2 (S2) til faldende flanke i S7, hvorfra der
32
![Page 45: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/45.jpg)
4.5. Timing
trækkes tiden det tager processoren at generere AS, t3, accesstiden på hukommelsen, tACC , samtforsinkelsen i adressedekoderen, tadr.
Den aktuelle t5 udregnes dermed på følgende vis.
t5 ≥ 1fclk
· 2, 5− (t3 + tadr + tACC,ROM) (4.7)
Ovenstående udtryk er udledt af timingdiagrammet for processorens læsecyklus, se Figur 4.9,hvor det første led er tiden fra stigende flanke i S2 til faldende flanke i S7.
Tiden tACC,ROM anvendes, da det er denne kreds, der har det største delay i read-mode for RAMog ROM. Indsættes værdier i udtrykket fås følgende.
t5 ≥ 125 ns · 2, 5− (60 ns + 10 ns + 90 ns) (4.8)t5 ≥ 152, 5 ns (4.9)
Denne tid overholder kravet, t5 ≥ 10 ns. Skrivecyklus beskrives i følgende afsnit med henblik påat bestemme timing i forbindelse med denne.
4.5.2 Skrivecyklus
Timingen for en skrivecyklys er illustreret på Figur 4.10. Parametrene på timingdiagrammet,samt de relevante tidsparametre for RAM, ROM og den anvendte PEEL kreds til adressedekod-ning ses i Tabel 4.10.
t1 t3 t6
t7
t4
t2
Figur 4.10: Skrivecyklus for Motorola 68000 processor. Modificeret figur fra datablad for Motorola 68000 processor[Motorola, 1993]
Af datablade for de anvendte RAM og ROM fremgår det, at data skal være på databussen min.30 ns før, den af WE eller CS der senest går høj, går høj igen [Hitachi, 1994] [AMD, 1995]. Denne
33
![Page 46: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/46.jpg)
4 Design af mikrodatamat
Data setup Delays CPU-timing (Se også Figur 4.10)
tDS,ROM tDS,RAM tadr t1 t2 t3 t4 t6 t7
≥ 30 ns ≥ 30 ns ≤ 10 ns ≤ 62 ns ≤ 55 ns ≤ 60 ns ≥ 10 ns ≤ 62 ns ≤ 62 ns
Tabel 4.10: Tidsparametre for anvendte kredse samt CPU i forbindelse med en skrivecyklus. Data fra databladefor hhv. ROM [AMD, 1995], RAM [Hitachi, 1994], PEEL kreds [ICT, 2004] samt Motorola 68000 processor[Motorola, 1993]
tid, tDS ≥ 30 ns skal overholdes, hvis der ikke skal indsættes wait states. Tiden tDS kan udregnesved at betragte tiden fra stigende flanke i S4 til faldende flanke i S7, hvortil der lægges den tiddet minimum tager fra faldende flanke i S6, til processoren har sat AS, t6, samt den mindsteforsinkelse i adressedekoderen, tadr, dvs. 0 ns. Fra denne tid trækkes tiden fra stigende flanke iS4 til LDS/UDS er sat, t3 samt forsinkelsen i adressedekoderen, tadr, indtil WE samt CS er sataktiv. Dermed fås følgende udtryk for tDS.
tDS ≥ 1fclk
· 1, 5 + t6,min + tadr,min − t3 − tadr (4.10)
Indsættes værdier i udtrykket fås følgende.
tDS ≥ 125 ns · 1, 5 + 0 ns + 0 ns− 60 ns− 10 ns (4.11)tDS ≥ 117, 5 ns (4.12)
Gyldig data er af processoren sat på databussen før WE samt CS er sat aktiv, da t7 < 1fclk
+t3,min + tadr,min og dermed sikrer at gyldig data er på bussen.
Dermed er kravet, tDS ≥ 30 ns, overholdt samtidig med kravet, t5 ≥ 10 ns, i læsecyklen.
4.5.3 Generering af Data Transfer Acknowledge
Da kravene til tiderne, tDS og t5, overholdes, kan der genereres DTACK til processoren ved atforbinde DTACK til AS. På den måde indsættes ikke wait states, da DTACK er genereret mereend t4 = 10 ns fra faldende flanke af S5, som databladet for Motorola 68000 foreskriver hvis derikke skal indsættes wait states [Motorola, 1993].
4.6 Test af mikrodatamatsystem
Mikrodatamatsystemet er testet vha. TS2 debugger/monitor, som er brændt i ROM kredsene.Ved hjælp af Hyper Terminal på en pc kommunikeres der med mikrodatamatsystemet, og da TS2debugger/monitor fungerer efter hensigten konkluderes det, at RAM og ROM fungerer efter hen-sigten. TS2 debugger/monitor anvender både RAM og ROM, og da det er muligt at kommunikeremed mikrodatamatsystemet fungerer ACIA kredsløbet, der anvendes til TS2 debugger/monitorligeledes.
RS232 forbindelsen, der anvendes til ind- og udlæsning af parametre i vægenheden, testes vha. ettestprogram. Dette testprogram gemmer de karakterer, der sendes til vægenheden fra pc’en, og
34
![Page 47: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/47.jpg)
4.6. Test af mikrodatamatsystem
sender derefter karaktererne retur til pc’en. Programmet indlæses i vægenheden, og der sendeskarakterer vha. Hyper Terminal på pc’en. Programmet og vægenheden fungerer efter hensigten,og dermed fungerer ACIA kredsløbet efter hensigten. Testprogrammet kan ses på den vedlagteCD (/hardware/testprogrammer/rs232.asm).
35
![Page 48: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/48.jpg)
4 Design af mikrodatamat
36
![Page 49: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/49.jpg)
Kapitel 5Design af infrarød sender- og modtagermodul
For at vægenheden kan kommunikere med en mobilenhed, skal der anvendes et infrarødt sender-og modtagermodul. Designfasen tager udgangspunkt i de primære krav til vægenheden, da detprimære mål for projektet er at eftervise en funktionalitet. Når denne funktionalitet er eftervist,kan der efterfølgende bruges mere tid på at designe sender- og modtagermodul således, at desekundære krav kan overholdes.
5.1 Design af sendermodul
Senderen konstrueres i første omgang til kun, at kunne sende med én styrke. Signalet, der skalsendes, er et digitalt signal. Det er nødvendigt med en en spænding til strøm konvertering,da det er strømmen igennem lysdioden, der bestemmer intensiteten, den lyser med. Senderenkonstrueres som vist på Figur 5.1.
R_IN BD137
R_C
R_IN
1 k Ohm
BC547
1,5 OhmR_C
BD137
SFH487P SFH487P
+5V +5V
+Input
_
+
Input
_
--- C:\Documents and Settings\Boll\Skrivebord\P4\Medlemsmapper\Boll\tx1pdf.asc ---
Figur 5.1: Diagram over sendermodulets opbygning
Der anvendes to transistorer i en Darlington-kobling, da der dimensioneres efter, at kunne trækkeen strøm på én ampere ned igennem dioden. Transistorer der kan tåle en sådan strøm, har enlav strømforstærkning i forhold til småsignalstransistorer, og vil derfor belaste signalforsyningen.
37
![Page 50: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/50.jpg)
5 Design af infrarød sender- og modtagermodul
Der er lavet forsøg med en signalgenerator monteret direkte som kilde til modulet, hvor der kunvar monteret en BD137 som udgangstransistor, og her var belastningen for stor.
Indgangsmodstanden, RIN , er monteret for at sikre en indgangsmodstand på mindst 1 kΩ. Mod-standen begrænser også inputstrømmen til ca. 3,8 mA, når der sættes 5 V på indgangen. Kol-lektormodstanden, RC , er dimensioneret ud fra oplysninger i databladende for lysdioden ogtransistoren ud fra følgende formel:
RC =VCC − Vce − Vd
Id(5.1)
Den maksimale kollektor-emitter spænding over transistoren, Vce, er opgivet til 0,5 V, og ved enampere igennem lysdioden er der opgivet et typisk spændingsfald, Vd, på 3 V. Dette giver ved5 V forsyningsspænding, at kollektormodstanden skal være 1,5 Ω for at begrænse strømmen, Id,til én ampere. Denne strøm er valgt, fordi det er den maksimale strøm dioden kan tåle med denaktuelle duty cycle, når der sendes et signal på 16 bit.
På Figur 5.2 ses inputsignalet til sendermodulet og spændingen på diodens anode. Inputsignaleter et firkantsignal med en frekvens på 9,6 kHz og en duty cycle på ca. 10 %.
2 2.5 3 3.5x 10-4
-1
0
1
2
3
4
5
6
inputsignal
anode
tid [s]
Spæ
ndin
g [V
]
Figur 5.2: Spændinger på anoden af senderdioden SFH487P målt i forhold til stel samt inputsignalet
Ud fra spændingen på anoden kan det bestemmes, at der løber ca. én ampere ned igennemdioden, når denne lyser.
5.1.1 Driver
Sendermodulet er memorymappet, så den kan tilgås af processoren via adressebussen. Der bliversåledes genereret et chipselectsignal, Tx, i adressedekoderen, når sendermodulet skal benyttes. Forat sende data til sendermodulet benyttes databenet D0 fra processoren, da der sendes et serieltsignal. Ved at skrive 1 til sendermodulets adresse genereres chipselect, og databenet D0 går højt.Chipselect og data på databenet forsvinder igen, når en skrivecyklus er slut, og dermed sendersendermodulet ikke længere. Der anvendes derfor en JK flip-flop til at fastholde de sidst skrevnedata til sendermodulet. Flip-floppens to indgange tilsluttes hhv. til spændingsforsyningen, VCC ,
38
![Page 51: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/51.jpg)
5.2. Design af modtagermodul
og stel. En PEEL kreds genererer hhv. clock, CLK, og clear, CLR, til flip-floppen. Sammenhængenmellem chip select, Tx, databenet D0, clock, CLK, og CLR er givet i Tabel 5.1.
Input OutputTx D0 CLK CLR
0 0 1 00 1 0 11 0 1 11 1 1 1
Tabel 5.1: Sammenhæng mellem Tx, D0, CLK og CLR i PEEL kredsen
Ud fra Tabel 5.1 opskrives følgende PEEL kode:
!Clk = !Tx & D0!Clr = !Tx & !D0
Ovenstående PEEL kode er implementeret i kredsen TX PEEL. Den endelige PEEL kode ses iAppendiks G. Ved hjælp af flip-floppen og PEEL kredsen aktiveres sendermodulet ved at skrive1 til dets adresse, og det slukkes igen ved at skrive 0.
Det vælges desuden at montere en jumper, der kan afbryde forsyningsspændingen til sender-modulet, således dette kan slukkes, da dioden ikke kan tåle at være tændt i lang tid, som villekunne forekomme ved brug af TS2 debugger/monitor.
5.2 Design af modtagermodul
Til at konvertere det infrarøde lyssignal om til strøm og spænding anvendes en fotodiode. Denvalgte fotodiode har ifølge databladet størst følsomhed ved samme bølgelængder som det in-frarøde lys, der udsendes fra lysdioden i sendertrinet. Fotodioden genererer en strøm, der erproportional med lysstyrken, den udsættes for.
Modtagermodulet ses på Figur 5.3. Der anvendes en operationsforstærker opkoblet som en ikkeinverterende forstærker med 26 ganges forstærkning. Parallelt over fotodioden er placeret enmodstand og et højpasfilter med en knækfrekvens på 2,5 kHz. Modstanden, R1, bestemmer hvorstor spænding der genereres fra fotodioden, og filteret er der for at fjerne lavfrekvent støj fra foreksempel lysstofrør, der ved test viste sig som 100 Hz sinus.
Udgangsspændingen fra modtagermodulet ses sammen med input til sendermodulet, der er etfirkantsignal med en frekvens på 9,6 kHz og en duty cycle på ca. 10 %, på Figur 5.4.
Det ses, at signalet ud af modtagermodulet er forsinket i forhold til inputsignalet. Dette tyder på,at operationsforstærkeren i modtageren er gået i mætning. Dette kan løses ved at øge afstandenmellem sender og modtager. Bliver amplituden af signalet ud af modtageren for lille ved dette,kan forstærkningen i modtageren øges ved at montere en mindre modstand RA, eller en størretilbagekoblingsmodstand, RF , da det er forholdet mellem disse, der bestemmer forstærkningen.
39
![Page 52: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/52.jpg)
5 Design af infrarød sender- og modtagermodul
R14,99 k Ohm
R260,4 k Ohm
C1
1 nF
R_A
40,2 Ohm
R_F
1 k OhmU1
BPW34+
output -
--- C:\Documents and Settings\Boll\Skrivebord\P4\Medlemsmapper\Boll\rx1pdf.asc ---
Figur 5.3: Diagram over modtagermodulets opbygning
2 2.2 2.4 2.6 2.8 3 3.2 3.4 3.6 3.8x 10-4
-1
0
1
2
3
4
5
6
output
inputsignal
tid [s]
Spæ
ndin
g [V
]
Figur 5.4: Plot af signalet fra sendermodulet og spændingen der kan måles på udgangen af modtagermodulet,målt med ca. 5 cm mellem sender- og modtagerdiode
En anden mulighed er at montere en større modstand, R1, parallelt over fotodioden, da dettevil bevirke at spændingen der forstærkes bliver større.
Under implementeringen blev det konstateret, at modtageren ikke fungerede som forventet. Detteskyldes, at frekvensen der blev testet med under konstruktionen er forkert. Der skulle have værettestet med et signal med en frekvens på 300 Hz og en duty cycle på 9,4 %, da dette er bitfrekvensenog duty cycle for en høj bit i et sendt signal. Bitfrekvensen udregnes som
fbit =fs
n⇒ 9600 Hz
32= 300Hz (5.2)
Hvor n er antallet af samples i en bit, mens fs er den anvendte samplingsfrekvens. Duty cycle erudregnet ud fra definitionen på en høj bit.
D =nh
n⇒ 3
32= 9, 375 % (5.3)
Hvor nh er antallet af høje samples i en høj bit.
Resultatet af denne forkerte måling betød, at der med det rigtige signal til dioden ikke var detkorrekte signal på indgangen af operationsforstærkeren. Kondensatoren, C1, kunne ikke holde
40
![Page 53: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/53.jpg)
5.2. Design af modtagermodul
spændingen på indgangen af operationsforstærkeren efter at have overført skiftet fra lav til høj.Dette bevirkede, at der kunne måles en afladekurve på indgangen af operationsforstærkeren. Kon-densatoren er derfor afmonteret og erstattet af en kortslutning. Dette bevirker, at støjniveauetpå udgangen hæves, da spændingen over modtagerdioden fra baggrundslyset nu ikke filtreres fra.
5.2.1 Analog til digital konverter
Til at konvertere den analoge spænding ud af modtagermodulet til en digital værdi processorenkan håndtere, anvendes en analog til digital konverter.
Der er stillet et krav om, at signalet der sendes og modtages skal bestå af 16 bit, og hvert bitskal samples 32 gange. Ydermere er der fra gruppens side valgt en samplingsfrekvens på 9,6 kHz.Med 512 samples på et 16 bit signal vil det tage 53,3 ms at modtage eller sende signalet medden valgte samplingsfrekvens. Samplingsfrekvensen vælges, da denne i forvejen er tilgængelig iforbindelse med den serielle kommunikation, og fremkommer ved at neddele 2,4576 MHz 256gange. Desuden vælges det at montere en jumper, hvor det er muligt at vælge seks frekvenser,fra 9,6 kHz til 307,2 kHz. Dette giver mulighed for senere, at kunne teste om samplingsfrekvensenkan øges.
Som ADC vælges ADC0820, da den er designet til indgå i et mikrodatamatsystem, og dermedkan optræde som en perifer enhed på en bestemt adresse. ADC0820 kan tri-state udgangene,og kan dermed kobles direkte på databussen. Kredsen har desuden indbygget sample-hold påindgangen, der kan håndtere at spændingen ændrer sig op til 100 mV/µs. Det analoge signal fraIR-modtageren varierer mellem 0 V og 5 V, som skal samples i ADC’en, har ifølge målinger, derses på Figur 5.4, stige- og faldetider på ca. 4 µs. Der vil i værste fald ske én sampling på flanken,men dette tages der højde for i softwaren via en tolerance, som tillader et antal dårlige samples.
Processoren henter en sample fra ADC’en, når der kommer et interrupt 4. Herefter starter pro-cessoren en ny konvertering i ADC’en. På den måde vil de indlæste samples altid være en samplebagud, men dette betyder ikke noget for systemets funktion.
ADC’en sættes op til at operere i WR-RD mode, da processoren dermed kun behøver at kom-munikere med ADC’en, når der skal hentes en sample, og når der skal startes en konvertering.Til kontrol af ADC’en benyttes signalerne CS, WR og RD, se Figur 5.5.
For at starte ADC’en skal der genereres CS og WR i minimum 600 ns (tWR). Konverteringen erfærdig, når INT går lav, typisk 800 ns (tINT) efter WR er gået høj igen. For at læse konverteringengenereres CS og RD, og typisk 70 ns (tACC2) efter er der gyldig data på udgangen. Udgangenbliver tri-stated typisk 100 ns (t1H) efter, at RD går høj igen. [Corporation, 2004]
Pulsforlænger
For at starte ADC’en skal der genereres CS og WR i minimum 600 ns, hvilket processoren ikkekan generere.
I afsnit 4.5 Timing på side 31 er beskrevet hvorledes LDS/UDS genererer CS. Ud fra dette samtprocessorens timing, se Figur 4.10 på side 33, kan den tid CS er aktiv, tCS, udregnes. LDS/UDS
41
![Page 54: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/54.jpg)
5 Design af infrarød sender- og modtagermodul
Figur 5.5: Timingdiagram over i ADC’en ADC0820 [Corporation, 2004]
sættes lav senest tiden t3 efter stigende flanke i S3, og går tidligst høj igen ved faldende flanke iS6. Dette giver følgende udtryk.
tCS ≥ 1fclk
· 1, 5− t3,maks (5.4)
tCS ≥ 125 ns · 1, 5− 60 ns (5.5)tCS ≥ 127, 5 ns (5.6)
Derved bliver der ikke genereret CS i lang tid nok, hvilket medfører at det er nødvendigt atanvende et pulsforlængerkredsløb. Til dette benyttes samme type kredsløb, som er benyttet tilgenerering af RESET til processoren. Kredsen TL7705 kan forlænge en puls i en tid, som erbestemt af en ekstern kondensator. Med følgende formel kan tiden, td, beregnes, hvorved en pulsbliver forlænget udfra kondensatoren Ct1 [Instruments, 2003].
td = 1, 3 · 104 · Ct1 ⇔ Ct1 =td
1, 3 · 104⇒
Ct1 ≥ 600 ns− 127, 5 ns
1, 3 · 104= 36, 3 pF (5.7)
Den beregnede kondensator er på den konstruerede vægenhed erstattet med en 12 pF kondensa-tor, da dette gav en tid tættere på det beregnede.
ADC timing
Som beskrevet i afsnit 4.5 Timing på side 31 er der et krav vedrørende timing til alle perifereenheder, som processoren skal tilgå via databussen. Når processeren skal læse data fra ADC’en,skal data være gyldig minimum 10 ns før faldende flanke i S7 af processorens skrivecyklus. ForADC’en går der maks 120 ns (tACC2), fra der er genereret CS og RD til der er gyldig data på
42
![Page 55: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/55.jpg)
5.2. Design af modtagermodul
udgangen. Udfra Figur 4.10 i afsnit 4.5 Timing på side 33, kan det beregnes hvor lang tid der ergyldig data på databussen før faldende flanke i S7. Denne tid, tDATA, mellem stigende flanke i S2og faldende flanke i S7, kan udregnes som angivet i Formel 5.8, hvor t3,maks er den maksimale tidfra stigende flanke i S2 til processoren har genereret AS og LDS/UDS. Tiden tadr er forsinkelseni adressedekoderen til chipselect af ADC’en.
tDATA ≥ 1fclk
· 2, 5− t3,maks − tadr − tACC2 (5.8)
tDATA ≥ 125 ns · 2, 5− 60 ns− 10 ns− 120 ns (5.9)tDATA ≥ 122, 5 ns (5.10)
Dermed overholder ADC’en kravet, da der er gyldig data 122,5 ns før faldende flanke i S7.
Opkobling af ADC
Til styring af ADC’en benyttes signalerne OE, WE og Rx fra adressedekoderne, hvor Rx erchip select til ADC’en. Benet CS på ADC’en sættes til stel, og dermed styres ADC’en kun medbenene RD og WR, se Figur 5.6. Der opstilles derfor en sandhedstabel på baggrund af styring afADC’en.
Input OutputOE WE Rx WR RD
0 1 0 1 00 1 1 1 11 0 0 0 11 0 1 1 1
Tabel 5.2: Sandhedstabel over styring af ADC’en i PEEL kredsen
Udfra Tabel 5.2 opskrives følgende PEEL kode:
!RD = !OE & WE & !Rx!WR = OE & !WE & !Rx
Den samlede PEEL kode kan ses i Appendiks G
ADC’en og pulsforlængerkredsløbet er koblet op som vist på Figur 5.6.
REF+ og REF- angiver det spændingsinterval, som ADC’en konverterer indenfor. Når indgangener lig REF- er ADC’ens udgange, D0 til D7, 0, og når indgangen er lig REF+, er udgangenADC’ens udgange lig 1. Idet ADC’en skal konvertere et signal med en amplitude mellem 0 V og5 V forbindes REF- til GND og REF+ til VCC . Hvis indgangssignalet overstiger REF+, sætterADC’en signalet OFL, som indikerer overflow. Denne funktion benyttes ikke, da overflow i denanvendte sammenhæng ikke er mulig.
Signalet INT kan bruges til at generere interrupt til processoren, som signal om at konverteringener færdig. På den måde kan der opnås den maksimale samplingsfrekvens, som ADC’en tillader.
43
![Page 56: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/56.jpg)
5 Design af infrarød sender- og modtagermodul
5
5
4
4
3
3
2
2
1
1
D D
C C
B B
A A
D3D4D5D6D7
D0D1D2
WR*
RD*
Vcc
Vcc
Vcc
Title
Size Document Number Rev
Date: Sheet of
<Doc> <RevCod
<Title>
A3
1 1Thursday, May 25, 2006
Title
Size Document Number Rev
Date: Sheet of
<Doc> <RevCod
<Title>
A3
1 1Thursday, May 25, 2006
Title
Size Document Number Rev
Date: Sheet of
<Doc> <RevCod
<Title>
A3
1 1Thursday, May 25, 2006
IR_inDatabus
C8100n
C8100n
Delay
TL7705B
Delay
TL7705B
CT3
SEN7
RESIN2
REF1 RST 6
RST 5
R3310kR3310k
R30
10k
R30
10k
ADC
ADC0820
ADC
ADC0820
VIN1
REF+12REF-11
D0 2D1 3D2 4D3 5D4 14D5 15D6 16D7 17
INT 9OFL 18
CS13
MODE7RD8
WR/RDY6C_t1
47p
C_t1
47p
Figur 5.6: Opkobling af ADC0820 til WR-RD-mode
Da der går 104 µs mellem hver sampling, og ADC’en har en konverteringstid på maksimalt 1,52µs i WR-RD-mode, vil konverteringen altid være færdig, når der læses en sample, og det erdermed ikke nødvendigt at benytte INT.
5.3 Test af sender- og modtagermodul
For at teste sender- og modtagermodul benyttes et testprogram, der er skrevet i assembler.Sender- og modtagermodul testes samtidigt, dog uden selve den infrarøde sender og modtagermonteret, som beskrevet i Appendiks B Systemkravtestspecifikation på side 77. Dermed er detkun de dele der interagerer med processoren, der er testet og ikke den infrarøde kommunikation.
Ved eksekvering af programmet og udlæsning af data udlæstes $FF og $00 som forventet. Det kon-kluderes derfor, at driveren til sendermodulet og konverteringsdelen af modtagermodulet fungererkorrekt. Testprogrammet kan ses på vedlagte på CD (/hardware/testprogrammer/IRTest.asm).
44
![Page 57: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/57.jpg)
Kapitel 6Softwaredesign
I dette kapitel beskrives opbygningen af softwaren til vægenheden. Først opdeles softwaren iprocesser vha. et flowdiagram, hvorefter de enkelte processer beskrives.
6.1 Programdesign
I dette afsnit beskrives hovedfunktionerne i softwaren. Flowdiagrammet på Figur 6.1 viser sam-menhængen mellem hovedprocesserne i softwaren.
Tænd
Initialisering
Interrupt 7
Kør TS2 debugger/
monitor
Interrupt 5
Konfigurer vægenhed
Data-behandling
Interrupt 4
RTE
Send eller modtag?
Send sample
Modtag sample
Send Modtag
RTE
Nye data?
Ja
Nej
RTE
Main program
Interruptrutine 4Interruptrutine 5Interruptrutine 7
Figur 6.1: Flowdiagram over hovedprocesserne i softwaren. RTE angiver Return From Exception
Softwaren er opdelt i en Initialisering, et Main program og tre Interruptrutiner. Initialiseringenudføres kun, når vægenheden har været slukket, eller er blevet genstartet. Efter initialiseringenbegynder processoren at udføre main programmet. Processoren vil blive ved med at udføre main
45
![Page 58: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/58.jpg)
6 Softwaredesign
programmet, indtil den modtager et interrupt. Når processoren får et interrupt, vil den afbrydemain programmet og begynde behandlingen af den interruptrutine, der hører til det modtagedeinterrupt. Når processoren behandler en interruptrutine, vil interrupts med samme eller lavereprioritet blive ignoreret. Prioriteten er den samme som interruptnummeret. Når interruptrutinenafsluttes returneres til main programmet, hvor processoren blev afbrudt af interruptet.
Processen Initialisering skal indstille vægenheden til at modtage signal og starte en konverte-ring i ADC’en, således at der er gyldig data at hente, når processen Modtag signal køres førstegang. Det kan dog forekomme, at ADC’en ikke kan nå at lave en komplet konvertering, indender hentes data. Dette kan dog kun ske første gang, der hentes data fra ADC’en, efter vægen-heden er blevet tændt eller genstartet. Processen opsætter også ACIA kredsløbet, der håndtererkommunikationen med pc’en. Den opsættes til at køre med 8 databit, ingen paritet, ét stopbitog en intern clockdivision på 16. Herved er denne ACIA opsat til at bruge samme format, somden der automatisk opsættes af TS2 debugger/monitor. Derudover opsættes ACIA kredsen, derhåndterer kommunikationen med pc’en, til at kunne generere interrupts.
I vægenheden anvendes der 3 interrupts. Interruptprioriteterne er delvist valgt frit. Gruppen harvalgt, at der ikke skal kunne modtages eller sendes IR-signaler, når vægenheden konfigureres viaRS232 forbindelsen. Det vælges derfor, at Konfiguration af vægenhed har interrupt 5, og Modtageller Send signal processerne aktiveres af interrupt 4. TS2 debugger/monitor stiller krav til, ataktivering skal ske via interrupt 7, som er den højeste prioritet.
Main programmet starter med at aflæse et flag, der indikerer, om der er nye data, der skalsammenlignes med referencesignalet. Processoren vil blive ved med at foretage denne sammen-ligning, indtil den modtager et interrupt, hvorved den springer til den respektive interruptrutine.Har der været et interrupt 4, og der er modtaget data, vil processoren fortsætte til processenDatabehandling, når den er returneret fra interruptrutinen. Processen Databehandling udførerkontrollen om, hvorvidt de modtagne data udgør et gyldigt signal. Det er også i processen Da-tabehandling, der skiftes mellem, om der skal sendes eller modtages data, når der kommer etinterrupt 4.
Ved et interrupt 4 springer processoren fra main programmet til interruptrutine 4. I interrup-trutinen startes enten processen Modtag sample eller Send sample. Processen Modtag samplehenter data fra ADC’en, gemmer dataene i hukommelsen og sætter et flag der indikerer, at derer modtaget ny data, hvorefter den starter en ny konvertering i ADC’en. Herefter afsluttes in-terruptrutinen og processoren returnerer til main programmet. Processen Send sample afsenderen sample til mobilenheden vha. det infrarøde sendermodul. Ventetiden, fra der er modtaget etgyldigt signal, til der afsendes et svar, er også indeholdt i denne proces, da der ikke afsendessvarsignal, før der er ventet det antal interrupts, der er angivet af brugeren. Interrupt 4 aktiveresaf en ekstern clock med en frekvens på 9,6 kHz.
Ved interrupt 5 startes interruptrutine 5, der indeholder processen Konfigurer vægenhed. Denneproces muliggør ændring af referencesignal, svarsignal og ventetid vha. en RS232 forbindelse tilen pc. Interrupt 5 genereres, når der sendes en karakter til vægenheden via RS232 forbindelsen.Efter Konfigurer vægenhed processen er startet, indstilles vægenheden til at ignorere interrupt 5og derunder. Dermed modtages eller sendes der ikke IR-signaler. Selvom der genereres interrupt5, hver gang der sendes til vægenheden, ignoreres dette, da det er valgt, at der anvendes pollingved konfigurering af vægenheden. Processen Konfigurer vægenhed og interruptrutine 5 afsluttesaf brugeren, hvorefter vægenheden igen indstilles til at modtage alle interrupts. Herefter vil
46
![Page 59: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/59.jpg)
6.2. Initialisering af vægenhed
processoren returnere til main programmet eller interruptrutine 4, alt efter hvor den var, dainterrupt 5 blev genereret.
Ved tryk på NMI-knappen modtager processoren interrupt 7 og springer til interruptrutine 7, derindeholder processen TS2 debugger/monitor. Interrupt 7 afsluttes, når brugeren af vægenhedenafslutter TS2 debugger/monitor, ved enten at skrive ’go’ eller genstarte vægenheden. Alt efterhvordan processen og dermed interruptrutinen afsluttes, returnerer processoren dertil, hvor denvar da interruptet blev genereret.
Softwaren er dermed delt op i seks processer, som efterfølgende vil blive behandlet.
• Initialisering af vægenhed
• Databehandling
• Send signal
• Modtag signal
• Konfiguration af vægenhed
• TS2 debugger/monitor
Processen Modtag signal beskrives ikke videre, da denne kun henter data fra ADC’ens adresse,som det er blevet beskrevet. Ligeledes vil processen TS2 debugger/monitor ikke blive beskre-vet yderligere da det er udviklingsværktøj der er skrevet af forfatteren til [Clements, 1997] ogredigeret af Sofus Birkedal Nielsen, Associate professor, AAU.
En samlet oversigt over RAM allokering ses i Appendiks F RAM allokering på side 93.
6.2 Initialisering af vægenhed
Processen Initialisering af vægenhed køres når vægenheden tændes og skal udføre følgende:
1. Initialisere ACIA til RS232 forbindelsen der anvendes til konfiguration af vægenheden
2. Indlæse standardværdier for referencesignal, svarsignal, ventetid og høj bit referencen
3. Indstille tilstands- og dataflag
I de følgende afsnit beskrives de ovenstående punkter.
I Initialisering af vægenhed indstilles statusregisteret først til $2500, således processoren ignorererinterruptniveau 5 og derunder. Dette gøres for at sikre, at initialiseringen ikke bliver afbrudtaf et interrupt. Som den sidste instruktion i Initialisering af vægenhed indstilles processorensstatusregister til $2000, således alle interruptniveauer behandles.
47
![Page 60: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/60.jpg)
6 Softwaredesign
Initialisering af ACIA kreds
ACIA kredsen skal initialiseres, så det er muligt at sende og modtage data via RS232 forbin-delsen. Dette gøres ved hjælp af kontrolregisteret. Først laves masterreset af ACIA kredsen, ogderefter sættes den op til den ønskede virkemåde. Masterreset laves ved at skrive $03 til kontrol-registeret. Ved at sætte kontrolregisteret til $95 konfigureres ACIA kredsen til at kunne generereinterrupts, ikke kunne modtage interrupt, datalængde på 8 bit, ingen paritet, ét stopbit og internclockdivision på 16.
Indlæs standardværdier for referencesignal, svarsignal, ventetid og høj bit referencen
Når vægenheden starter op, skal der i hukommelsen ligge standardværdier for referencesignal,svarsignal og ventetid. Disse værdier indlæses lige efter initialiseringen af ACIA kredsen.
I en endelig udgave af vægenheden vil de senest indlæste paramtere blive gemt i ROM, såledesdisse parametre gemmes selv om forsyningsspændingen fjernes.
Standardværdierne, der senere kan vises i hyper terminalen, gemmes som ASCII værdier i hukom-melsen. Når et 0 indtastes i hyper terminalen, er det repræsenteret ved ASCII værdien $30, 1med $31, 2 med $32 osv. Fra disse trækkes $30 inden de lagres i hukommelsen, således at de errepræsenteret med hhv. $00, $01 og $02. Dette betyder, at når der skal gemmes en bitstreng på16 bit, fylder det i hukommelsen 16 byte. Disse 16 byte gemmes som 4 longword. Referencesignalog svarsignal består af 16 bit, mens ventetiden er bestemt til at være repræsenteret ved en hex-værdi, gemt i et longword. Ydermere gemmes indtastede værdier for ventetiden i et midlertidigtlager, da udlæsning af data dermed vil kunne gøres på en overskuelig måde ved blot at udlæsedet midlertidige lager. Der indlæses desuden en høj bit reference, der anvendes i Send signalprocessen, som beskrives senere.
Indstille tilstands- og dataflag
Det vælges at lagre et tilstandsflag på adressen $70000, som angiver, om der skal sendes ellermodtages ved næste interrupt 4. Flaget defineres til at 1 angiver send, og 0 angiver modtag.Ligeledes defineres et dataflag, der indikerer, at der er nye data. Flaget defineres til 1, når derer nye data. Flaget benyttes til at opfylde betingelsen for at udføre processen Databehandling,når der returneres til main programmet fra interruptrutine 4. I Initialiseringsprocessen indstillestilstandsflaget til at modtage og dataflaget sættes til, at der ikke er nye data.
6.3 Databehandling
Processen Databehandling skal genkende et triggersignal i de modtagne data fra ADC’en. Denefterfølgende beskrivelse er med udgangspunkt i flow diagrammet vist på Figur 6.2 Det vælgesat opdele processen i følgende tre moduler:
• Søgning efter første bit
48
![Page 61: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/61.jpg)
6.3. Databehandling
• Søgning efter høj bit
• Søgning efter lav bit
Når der modtages data, benyttes Søgning efter første bit modulet til at finde den første høje biti de modtagne data. Efter den første bit er fundet, skal der søges i de efterfølgende data efterenten en høj eller en lav bit iht. referencesignalet.
Databuffer = 38000000 v30000000?
Konverter sample til 1
eller 0
Høj
Ja
Flyt sample ind i
databuffer
Databuffer = 1C000000?Nej
Ja
Sammenlign-ingsflag = 0
Tæl bit op
Databuffer = 0C000000?
Nej
Ja
Sammenlign-ignsflag = 1
Tæl bit op
Flyt sample ind i
databuffer Nej
Modtaget 32 samples?
NejJa
Databuffer = 1C000000 v0C000000 v18000000?
Første bit?
Ja
Tæl bit op Nulstil
sampletæller
Nej
Sammenlig-ningflag = 1?
Ja
Nej
Ja
Nej
Nulstil
Tæl bit op Nulstil
sampletæller
Sampletæl-ler +1
Søger efter høj eller lav bit?Lav
Flyt sample ind i
databuffer
Sampletæl-ler +1
Modtaget 32 samples?
Nej
Ja
Databuffer = 00000000?
Nulstil
Nej
Tæl bit op Nulstil
sampletæller
Ja
Nulstil
main
Start proces
Figur 6.2: Flowdiagram over processen Databehandling
Fælles for de tre moduler er, at der benyttes en databuffer, som kan indeholde 32 samples,svarende til en bit i referencesignalet. Det vælges at anvende en af processorens dataregistre somdatabuffer, da det er hurtigere at gemme og hente data i dataregistrene frem for i RAM. Vedat have databufferen i dataregistrene giver det mere tid, mellem hver sample hentes, til at søgeefter et indkommende signal. Ved indsættelse af en høj sample i databufferen, udføres ’Logic
49
![Page 62: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/62.jpg)
6 Softwaredesign
Shift Left’ (LSL) på databufferen og denne logisk OR’es med et ettal. Dermed er databufferensindhold blevet flyttet en sample til venstre og et ettal er sat ind i starten. Ved indsættelse af enlav sample udføres kun LSL på databufferen, da det der flyttes ind, er et nul. Data fra ADC’enfylder en byte, og da der ikke er plads til 32 bytes i et af processorens dataregistre konvertereshver sample til en bit. Dette gøres vha. en funktion der sammenligner den hentede sample medværdien $32, hvilket svarer til en femtedel af ADC’ens opløsning. I dette tilfælde, hvor ADC’enmåler værdier mellem 0 og 5 V, vil grænseværdien være 1 V. En sampleværdi på $32 og derunder,konverteres til en 0 bit, mens en sampleværdi over $32, konverteres til en 1 bit. Ved at konverterede enkelte samples til enkelte bit er det muligt at lagre 32 konverterede samples i et dataregister.
I processen Databehandling benyttes følgende data- og adresseregistre:
• D0: Sidste modtagede sample fra ADC’en efter konvertering til 0 eller 1.
• D1: Sampletæller. Tæller antallet af samples indlæst i databufferen.
• D2: Bittæller. Tæller antallet af genkendte bits i triggersignalet.
• D5: Sammenligningsflag der indikerer om det første bit i triggersignalet bestod af 2 højesamples eller 3 høje samples.
• D6: Databuffer til de sidste 32 modtagede og konverterede samples fra ADC’en.
• A5: Referencepointer som peger på det bit i referencesignalet der skal sammenlignes med
Databehandlingen starter med, at undersøge om der søges efter en høj eller lav bit ud fra, hvadreferencepointeren peger på. Hvis der søges efter en høj bit, undersøges der, om den er første biti referencesignalet.
Når der søges efter den første bit, som altid er en høj, flyttes hver sample ind i databufferen,og der sammenlignes med referencesignalets første bit efter hver interrupt, se Figur 6.2. På denmåde opnås en løbende søgning, der sammenligner de 32 senest modtagede samples med en højbit i referencesignalet. Hvis disse samples ikke indeholder en høj bit, hentes én ny sample ogdatabufferens indhold rykkes, så den første kasseres, se Figur 6.3. Således fungerer databufferenefter First In First Out (FIFO) princippet.
Samples som binær udtryk
Samples som hex udtryk
Figur 6.3: Illustration af FIFO princippet ved søgning efter første bit
Processorens dataregistre kan indeholde fire bytes. Derfor sammenlignes databufferens indholdmed $1C000000, som svarer til en høj bit i referencesignalet. Det tillades, at kun to af tre sampleser høje, og derfor godkendes indholdet af databufferen også, hvis den indeholder $0C000000,hvilket svarer til, at den første af de tre høje samples er lav. Hvis den sidste af de tre højesamples i en høj bit er lav, vil der også stå $0C000000 i databufferen, da det binære signal
50
![Page 63: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/63.jpg)
6.3. Databehandling
000011000... vil blive registreret før 000110000..., og derfor sammenlignes der kun med det.Dermed er der en risiko for, at databehandlingen kan komme en sample foran i forhold til detsignal, der bliver sendt. Derfor sættes et sammenligningsflag, hvis den første genkendte bit beståraf to høje samples, således at der tages højde for dette ved sammenligning af signalets resterendehøje bits. Det er valgt fra gruppens side, at der ikke tillades støj på triggersignalet. Hverken påen høj eller en lav bit i triggersignalet.
Hvis den første bit findes, tælles bittælleren og referencepointeren op med en, og der ventes pånæste interrupt.
Når den første bit er fundet, er der blevet synkroniseret og der sammenlignes herefter på bitniveaui referencesignalet, når databufferen er fyldt med 32 samples. Når der søges efter en høj bit,sammenlignes databufferen med $1C000000, $0C000000 og $18000000 for at godkende en højbit. Hvis dette ikke medførte en godkendelse, undersøges det, om sammenligningsflaget er sat, seFigur 6.2, da der dermed skal tages højde for, at behandlingen kan være én sample foran. Hvisdette er tilfældet, skal databufferens indhold også godkendes, hvis det indeholder $38000000 eller$30000000, som svarer til, at $1C000000 og $18000000 er rykket én bit. Hvis en bit ikke blivergodkendt, skal der nulstilles og startes forfra med at søge efter det første bit. Ved nulstillingsættes bittælleren til 0, referencepointeren sættes til at pege på referencesignalets første bit,sampletælleren sættes til 0 og sammenligningsflaget sættes til 0.
Søgning efter en lav bit foregår på samme måde som ved søgning efter en høj bit. Men vedsammenligning, sammenlignes databufferens indhold kun med $00000000. Er indholdet ikke$00000000 nulstilles der igen, og der søges efter første bit. Ellers tælles bittæller og referen-cepointer op med en.
Assemblerkoden til Databehandling kan ses i Appendiks H på side 101.
6.3.1 Procestest af databehandling
Som beskrevet i kravspecifikationen skal et modtaget triggersignal kunne genkendes. Ydermereskal de syv givne testsignaler kunne skelnes fra hinanden. De syv testsignaler kan ses i AppendiksC Simuleret mobilenhed på side 81.
Testen udføres som beskrevet i Appendiks B Systemkravtestspecifikation på side 77, hvor til-standsflaget er sat til 1 under hele forløbet, så der kun modtages. Ydermere tælles antallet afgenkendte signaler op i et dataregister.
Det fremgår af resultaterne i Tabel 6.1, at det var muligt at skelne alle signaler fra hinandensamt at genkende de korrekte testsignaler. Dermed er kravene til databehandlingen overholdt.
Ved simulering af processen Databehandling i programmet 68000 IDE er det aflæst, at processenbruger ca. 550 clockcycles på at søge efter det første bit. Med den valgte samplingsfrekvens ogclockfrekvens på processoren er der ca. 833 clockcycles mellem hver interrupt. Dermed overholderDatabehandlingen kravet om, at kunne behandle data inden den næste interrupt.
51
![Page 64: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/64.jpg)
6 Softwaredesign
Referencesignal Testsignal
Signal 1 Signal 1 !
Signal 1 Øvrige %
Signal 2 Signal 2 !
Signal 2 Øvrige %
Signal 3 Signal 3 !
Signal 3 Øvrige %
Signal 4 Signal 4 !
Signal 4 Øvrige %
Signal 5 Signal 5 !
Signal 5 Øvrige %
Signal 6 Signal 6 !
Signal 6 Øvrige %
Signal 7 Signal 7 !
Signal 7 Øvrige %
Tabel 6.1: Resultater for procestest af behandling af data. ! er opnået ved overensstemmelse mellem antal sendteog godkendte signaler
6.4 Send signal
Processen Send signal aktiveres ved interrupt 4, når tilstandsflaget er 1. Ud fra funktionsbeskri-velsen i afsnit 6.1 Programdesign skal processen udføre følgende:
1. Afgøre om der skal sendes et signal eller ventes inden afsendelsen påbegyndes
2. Hvis der skal ventes afsluttes interruptrutinen uden der sendes
3. Hvis der skal sendes, skal det afgøres om der skal sendes en høj eller lav bit
4. Hvis der skal sendes en lav bit, sendes en lav sample
5. Hvis der skal sendes en høj bit, skal der sendes enten en høj eller en lav sample i henholdtil referencen for, hvordan en høj bit i svarsignalet skal se ud
Ovenstående funktionsbeskrivelse kan ses på flowdiagrammet på Figur 6.4.
Svarsignalet, der sendes til mobilenheden består af 512 samples, som tidligere beskrevet. Derforbenyttes to referencer til at bestemme, om den sample der skal afsendes, skal være høj eller lav:
• Svarsignal:Svarsignalet gemmes som bit, der enten er 1 eller 0, og gemmes som 1 byte i hukommelsen.
• Høj reference bit:De 32 samples, der udgør en høj bit, gemmes som 32 bytes, hvor 4., 5. og 6. byte harværdien 1, og resten har værdien 0.
52
![Page 65: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/65.jpg)
6.4. Send signal
Vent eller send signal?Ventetæller + 1
Er sampletæller
32?
Nulstil sampletæller. Bittæller +1
Er antallet af sendte bit 16?
Nulstil sampletæller, bittæller og ventetæller.
Sæt tilstandsflag til at modtage
Sendes der en høj eller en lav
bit i svarsignalet?
Skriv 0 til sendermodulet.
Sampletæller + 1
Send værdien af den sample som sampletælleren angiver i høj bit
referencen.Sample + 1
Vent
Send
Ja
Nej
Ja
Nej
Høj Lav
Retur fra proces
Start på proces
Figur 6.4: Flowdiagram over Send signal processen
Herved kræves kun 48 bytes til at gemme svarsignalet i, istedet for de 512 bytes det ville havekrævet, hvis hele signalet skulle gemmes som en lang række af bytes. Dette gør det også lettereat ændre en høj bit i svarsignal, hvis denne senere skal have en anden kodning. Det vil dog ikkeumiddelbart være muligt at ændre denne vha. Konfigurationsprocessen. Der lagres ikke en lavreference bit, da alle samples her er lave. I processen benyttes følgende adresse- og dataregistre:
• D1: Sampletæller. Angiver hvilken sample, der sendes. Sampletælleren har en værdi mellem0 og 31, da den nulstilles når der er afsendt 1 bit i svarsignalet.
• D2: Bittæller. Angiver hvilken bit i svarsignalet, der sendes. Bittælleren har dermed enværdi mellem 0 og 15.
• D3: Ventetid. Hvis der skal ventes, lægges der 1 til dette dataregister, indtil registeret harsamme værdi som ventetiden specificeret af brugeren.
• A1: Adresse på den sample der afsendes, når der afsendes en sample af en høj bit i svar-signalet.
• A2: Adresse på svarsignalet. Registeret peger på den bit, der sendes en sample af. Registeretbenyttes til at afgøre, om der skal sendes en sample af en høj eller en lav bit i svarsignalet.
53
![Page 66: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/66.jpg)
6 Softwaredesign
I henhold til Figur 6.4 skal det først afgøres, om der skal sendes et svarsignal, eller om derskal ventes inden svarsignalet udsendes. Dette udføres ved at tælle antallet af interrupts ogsammenligne med ventetiden angivet af brugeren. Først når der har været et antal interruptssvarende til ventetiden angivet af brugeren, påbegyndes afsendelsen af signalet.
Når ventetiden er overstået, kontrolleres det, om antallet af sendte samples er 31, og hvis det ertilfældet, nulstilles sampletælleren og bittælleren tælles op med 1. Derefter kontrolleres det, omantallet af sendte bits i svarsignalet er 16. Hvis dette er tilfældet, nulstilles sampletæller, bittæller,interrupttæller, adresseregistre og tilstandsflaget sættes til at modtage ved næste interrupt 4.
Såfremt signalet ikke er afsendt, skal det undersøges, om der skal sendes en sample af en høj elleren lav bit i svarsignalet. Dette gøres vha. bittælleren og svarsignalet i hukommelsen. Afhængigtaf om der skal sendes en sample af en høj eller en lav bit, springes til den rutine, der afsender ensample af en høj bit eller en lav bit.
Rutinen, der afsender en høj bit i svarsignalet, benytter høj bit referencen og sampletællerentil at undersøge, om den aktuelle sample skal være høj eller lav. Sampletælleren lægges til denadresse, hvor høj bit referencen er gemt, og indholdet af adressen angiver, om samplen skal værehøj eller lav. Indholdet skrives til sendermodulet, og sampletælleren tælles op med 1.
Ved afsendelse af en lav bit er alle samples lave. Derfor skrives der 0 til sendermodulet, ogbittælleren tælles op med 1.
Assembler koden for Send signal kan ses i Appendiks H Assembler kode på side 101.
6.4.1 Procestest af send signal
Processen Send signal testes som beskrevet i Appendiks B Systemkravtestspecifikation på side 77.Signalet, der sendes, skal være i overensstemmelse med signalkodningen. Desuden skal signalet,der sendes, være i overensstemmelse med det ønskede svarsignal.
Ud fra den ønskede bitkodning af et signal samt afvigelsen på ±1 sample over et helt signal kanafvigelsen i antal samples, n, udregnes.
1fbit
=512 + n
512· 1fs· 32 (6.1)
n =fs · 512fbit · 32
− 512 (6.2)
Hvor fs er samplingsfrekvensen. Bitfrekvensen, fbit = 299,9 Hz, blev målt mellem to høje bits iet sendt signal. Indsættes dette i ovenstående udtryk fås.
n =9600 Hz · 512299, 9 Hz · 32
− 512 (6.3)
n = 0, 17 (6.4)
På Figur 6.5 ses det udsendte signal sammenholdt med det simulerede svarsignal med den valgtebitkodning.
54
![Page 67: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/67.jpg)
6.5. Konfiguration af vægenhed
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05-1
0
1
2
3
4
5
6Simuleret svarsignal
Tid [s]
Spæ
ndin
g [V
]
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05-1
0
1
2
3
4
5
6Målt svarsignal
Tid [s]
Spæ
ndin
g [V
]
Figur 6.5: Resultat af måling på udsendt svarsignal sammenholdt med det simulerede svarsignal
Som det ses, stemmer det udsendte signal overens med det simulerede svarsignal. Hermed erkravene om korrekt bitkodning og maksimal sampleafvigelse overholdt.
6.5 Konfiguration af vægenhed
Denne proces aktiveres, når der sendes data til vægenheden via RS232 forbindelsen. Processenstartes når processoren modtager et interrupt 5. Efter processen er aktiveret, ignoreres interrupt5, og der anvendes istedet polling til at hente data fra ACIA kredsen. Et flowdiagram overprocessen ses på Figur 6.6.
Ved interrupt 5 skal konfiguration af vægenhed udføre følgende:
1. Hvis indlæs data vælges, skal brugeren indtaste det nye referencesignal, svarsignal ellerventetid. Disse data lagres i hukommelsen
2. Hvis udlæs data vælges, udlæses referencesignal, svarsignal og ventetid fra hukommelsentil pc’en
Processen opdeles i fem moduler:
• Initialisering af ACIA
• Send/modtag ASCII koder fra RS232 forbindelse
• Kontrollér kommando
55
![Page 68: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/68.jpg)
6 Softwaredesign
• Udlæs konfiguration
• Indlæs konfiguration
Modulet Initialisering af ACIA foretages i processen Initialisering af vægenhed og beskrives derforikke nærmere. Det vælges at bruge et terminalprogram på en pc til at skrive og læse tegn. Et ter-minalprogram fungerer ved at det sender og modtager ACSII værdier. I processen Konfigurationaf vægenhed benyttes følgende data- og adresseregistre:
• D0: Karakterbuffer. Indeholder de ASCII værdier, der bliver modtaget og skal sendes viaRS232 forbindelsen
• A2: Pointer til adressebuffer. Peger på den adresse næste karakterer der modtages, skalgemmes på
• A3: Adressepointer for parametrene reference- og svarsignal samt ventetid, der er gemt ihukommelsen
• A4: Adressepointer for ventetiden angivet i hexadecimal
• A7: Stackpointer
Send/modtag en byte gennem RS232 forbindelse
Når der skal sendes en byte gennem RS232 forbindelsen til pc’en, skal det først undersøges, omACIA kredsen er klar til at sende. Dette gøres ved at sammenligne TDRE i ACIA kredsensstatusregister med et 1 tal. Dette indikerer, om send data registeret er tomt. Hvis det ikke ertomt, køres en løkke, der står og kontrollerer, om det er tomt. Når det er tomt, skal data flyttestil ACIA kredsens send data register, og ACIA kredsen sender herefter byte’en. Det vælges atdataene, der skal sendes via RS232 forbindelsen, først lagres i D0.
Når der skal modtages en byte, undersøges det, om modtag data registeret er fyldt. Dette gøresved at sammenligne RDRF i ACIA kredsens statusregister med et 0. Er receive data registeretfyldt, overføres denne byte til D0.
Kontrollér kommando
For at kunne kontrollere indtastede kommandoer, lægges hver karakter ind i en inputbuffer.Der benyttes et adresseregister, A2, til at pege på inputbufferen, som ligger på adresse $42000.Adresseregisteret tælles op for hver modtaget karakter, og det er derefter muligt at se, hvad detforrige indtastede var. Når konsollen skal modtage ASCII koder fra hyper terminalen, sættesinputbuffer, adresseregister A2, til $42000. Hver gang der er modtaget en ASCII kode, lægges1 til A2. Efter hver modtagen ASCII kode undersøges det, om denne er ’ENTER’. Hvis det ertilfældet, skal det undersøges, om der er indtastet enten ”load”, ”read” eller ”exit”. Hvis A2 minus1 ikke er karakteren ’d’, springes der til en ny rutine, der undersøger om det er et ’t’. Hvis det
56
![Page 69: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/69.jpg)
6.5. Konfiguration af vægenhed
Skriver ”Menu”
Henter indtastet
tegn
Trykket return?
Nej
Ja
Tastet ”load”?
Skriver:1: ref2: ans3: time
Ja
Nej
Henter indtastet
tegn
Trykket return?
Nej
Ja
Tastet ”1”?
Nej
Ja
Henter indtastet
referencesignal
Tastet ”2”?
Henter indtastet
svarsignal
Ja
Tastet ”3”?
Nej
Ja
Henter indtastet vente tid
Nej
Skriver ”Invalid
command”
Tastet ”read”? Ja
Udskriver parametrene:
refAnstime
Tastet ”exit”?
Nej
Ja
Nej
Skriver ”Invalid
command”
main
Start proces
Trykket ESC?
Nej
Ja
Figur 6.6: Flowdiagram over processen Konfiguration af vægenhed
er tilfældet undersøges, om det før er ’i’ osv. Hvis karakteren før ’ENTER’ var et ’d’ undersøgesdet om det før er ’a’ osv.
Hvis der indtastes en kommando, som ikke er enten ”load”, ”read” eller ”exit”, springes til rutinenUgyldig kommando. Denne rutine skriver ”Invalid Command”, og brugeren får derefter mulighedfor at indtaste en ny kommando da der springes tilbage til menuen.
57
![Page 70: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/70.jpg)
6 Softwaredesign
Udlæs konfiguration
De indlæste parametre er gemt fra adresse $43000 til $4302B. De to parametre, ref. og svar,fylder hver 16 byte, mens tiden er lagret to steder; et sted som hexværdi og i et midlertidigt lagersom indeholder de indtastede cifre.
Ved udlæsning af ref. og svar kopieres $43000 ind i adresseregister A3. Derefter udskrives det A3peger på og A3 tælles op med 1. Det A3 nu peger på udskrives og tælles igen op med 1 osv. Nårref. er udskrevet hoppes videre til svar og derefter til tid.
Indlæs konfiguration
Når der indtastes ”load” i menuen, får brugeren valget om at indtaste parameter for ref., svar ogtid, samt at gå tilbage til menuen. Ref. vælges ved at taste 1, svar ved at taste 2, tid ved at taste3 og for at gå tilbage til menuen skal brugeren trykke ’ESC’.
Først kontrolleres om den sidst indtastede karakter er ’ESC’. Hvis dette ikke er tilfældet, kon-trolleres om det er ’ENTER’. Hvis der er trykket ’ENTER’, kontrolleres om der er tastet enten”1”, ”2” eller ”3”.
Parametrene, ref og svar, indtastes i hyper terminalen som et 16 bit word bestående af 0 og 1,alle andre karakterer udelukkes. Første bit af ref. lagres på adresse $43000, næste bit lagres på$43001 osv. Når de 16 bit er indtastet springes tilbage til menuen.
Proceduren er den samme for svar, bortset fra at det 16 bit word lagres fra $43010.
Ved indlæsning af ventetiden, skal det indlæste konverteres til hex og lagres som et word på$43020. Desuden skal de indlæste tal forblive lagret, som deres ASCII værdier fratrukket $30,fra adresse $43024. Desuden tillades alle tal fra 0-9 og ikke kun 0 og 1, som ved reference- ogsvarsignal.
Assemblerkoden for konfiguration af vægenhed kan ses i Appendiks H Assembler kode på side101.
6.5.1 Procestest af konsolprogram
Konsolprogrammets funktionalitet testes jf. systemkravtestspecifikationen, der ses i AppendiksB Systemkravtestspecifikation på side 77.
Udlæsning af standardkonfiguration
I denne test sikres det først, at indlæste standardværdier for hhv. reference- og svarsignal samtventetid er placeret i hukommelsen på de ønskede adresser. Dette gøres jf. acceptspecifikationenmed TS2 debugger/monitor. På Figur 6.7 ses de standardværdier, der er indlæst i vægenheden.
På Figur 6.7c angiver xx indholdet af de adresser i hukommelsen, der ikke benyttes. På disse
58
![Page 71: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/71.jpg)
6.5. Konfiguration af vægenhed
Adresse: $43000 $4300FVærdi: 01 00 01 01 00 01 01 01 00 01 00 00 00 01 01 01
(a) Indlæst referencesignal
Adresse: $43010 $4301FVærdi: 01 01 01 00 00 00 00 00 01 01 01 01 00 00 00 01
(b) Indlæst svarsignal
Adresse: $43020 $4302FVærdi: 02 00 xx xx 00 05 01 02 xx xx xx xx xx xx xx xx
(c) Indlæst ventetid
Figur 6.7: Indlæste standardværdier, (a) Referencesignal, (b) Svarsignal, (c) Ventetid
adresser vil der således være tilfældig data.
Ved udlæsning af hukommelsen med TS2 debugger/monitor, ses de forventede bytes på de for-ventede adresser, og udlæsningsmodulet kan nu testes. På Figur 6.8 ses teksten i konsollen underudlæsning af konfigurationen.
MENU:readRef: 1011011101000111Ans: 1110000111100001Time: 0512
MENU:
Figur 6.8: Udlæsning af konfiguration via konsol
Da det udlæste er lig standardværdierne er konsolprogrammet i stand til at udlæse korrekt data.
59
![Page 72: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/72.jpg)
6 Softwaredesign
Indlæsning af konfiguration
Der indlæses et referencesignal, svarsignal samt en ventetid, som efterfølgende kontrolleres ihukommelsen vha. TS2 debugger/monitor. Dette gøres ved brug af MEM-kommandoen, somlister indholdet af adresser. Figur 6.9 viser indlæsning i konsollen i venstre spalte samt denudlæste hukommelse via TS2 debugger/monitor vist i højre spalte.
Indlæsning af konfiguration:
MENU:load1: Ref.2: Ans.3: TimeESC: MENU1Ref. 1101111000101110
MENU:load1: Ref.2: Ans.3: TimeESC: MENU2Ans. 1110001011101101
MENU:load1: Ref.2: Ans.3: TimeESC: MENU3Time. 0000
MENU:
Kontrol via TS2:
#MEM 43000##00043000 0101 + <- ref.signal start#00043002 0001 +#00043004 0101 +#00043006 0100 +#00043008 0000 +#0004300A 0100 +#0004300C 0101 +#0004300E 0100 +#00043010 0101 + <- svarsignal start#00043012 0100 +#00043014 0000 +#00043016 0100 +#00043018 0101 +#0004301A 0100 +#0004301C 0101 +#0004301E 0001 +#00043020 0000 + <- ventetid i hextal#00043022 2F29 +#00043024 0000 + <- ventetid i decimaltal#00043026 0000 + <- repræsenteret ved bytes#00043028 4751 +#0004302A 2F6F +#0004302C 4F2F +#0004302E 7B0F
Figur 6.9: Indlæsning af konfiguration via konsol. Til venstre: Indlæst konfiguration. Til højre: Verificering viaTS2 debugger/monitor
Som det ses af udlæsningen af data via TS2 debugger/monitor, er der overensstemmelse mellemhukommelse og indlæst konfiguration, og indlæsningsmodulet virker dermed som ventet.
60
![Page 73: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/73.jpg)
6.5. Konfiguration af vægenhed
Udlæsning af indlæst konfiguration
Sidst verificeres at en indlæst konfiguration kan udlæses via den tidligere verificerede udlæsnings-procedure.
Denne test er udført i forlængelse af test af indlæsningsrutinen. Det er dermed også sammeværdier, som netop indlæst, der udlæses.
På Figur 6.10 ses udlæsningen af konfigurationen via konsollen.
MENU:readRef: 1101111000101110Ans: 1110001011101101Time: 0000
MENU:
Figur 6.10: Udlæsning af indlæst konfiguration via konsol
Da de udlæste værdier stemmer overens med de indlæste værdier, kan det konstateres, at kon-solprogrammet virker efter hensigten.
61
![Page 74: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/74.jpg)
6 Softwaredesign
62
![Page 75: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/75.jpg)
Kapitel 7Accepttest
Accepttesten udføres som beskrevet i Appendiks A Accepttestspecifikation på side 73. Testenudføres for at verificere at kravene opstillet i afnit 2 Kravspecifikation på side 3 overholdes. Førsttestes de primære brugerkrav og derefter de sekundære.
Til at udføre testen benyttes en simuleret mobilenhed. Denne mobilenhed består af en testsenderog et modtagermodul, der modtager svarsignalet fra vægenheden, og forstærker det op. Densimulerede mobilenhed er beskrevet nærmere i Appendiks C Simuleret mobilenhed på side 81.
7.1 Test af primære brugerkrav
De primære brugerkrav, der verificeres, er beskrevet i Kapitel 2 Kravspecifikation på side 3.
7.1.1 Vægenhedens respons ved korrekt triggersignal
Den simulerede mobilenhed udsender et infrarødt triggersignal med et kendt bitmønster. Væ-genheden skal modtage dette triggersignal, sammenligne det med et referencesignal og efter enventetid på 512 samples sende et svarsignal. Den simulerede mobilenhed skal detektere dettesvarsignal.
Ud fra måleproceduren i afsnit D Testjournal på side 85 måles signalerne, og disse kan ses påFigur 7.1. Det ses, at svarsignalet detekteres af mobilenheden efter den bestemte ventetid. Ven-tetiden er på et oscilloskop målt til 512,3 samples.
Det bemærkes, at svarsignalets offsetniveau ligger højere end ved test af modtagermodulet iafsnit 5.3 Test af sender- og modtagermodul på side 44, hvor dette er beskrevet nærmere. Dettevil også gøre sig gældende i de efterfølgende tests.
63
![Page 76: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/76.jpg)
7 Accepttest
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.20.5
1
1.5
2
2.5
3
3.5
4
4.5
5
5.5
Tid [s]
Spæ
ndin
g [V
]
Triggersignal
Svarsignal
Figur 7.1: Måling af testsignaler på den simulerede mobilenhed. Øverste kurve er spændingen på anoden afsenderdioden, og nederste kurve er spændingen ud af modtageren.
7.1.2 Vægenhedens respons ved ukorrekt triggersignal
Den simulerede mobilenhed skal udsende et triggersignal, der ikke stemmer overens med detreferencesignal, der er gemt i vægenheden. Ventetiden er stadig 512 samples. Da triggersignaletog referencesignalet ikke er ens, skal vægenheden derfor ikke udsende et svarsignal.
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.20.5
1
1.5
2
2.5
3
3.5
4
4.5
5
5.5
Tid [s]
Spæ
ndin
g [V
]
Triggersignal
Svarsignal
Figur 7.2: Måling af testsignaler på den simulerede mobilenhed. Øverste kurve er spændingen på anoden afsenderdioden, og nederste kurve er spændingen ud af modtagermodulet.
Det ses på Figur 7.2, at der ikke udsendes et svarsignal, når det tilsendte signal ikke er ligreferencen.
Ud fra ovenstående to tests kan det konstateres, at følgende krav i kravspecifikationen overholdt:PBK01, PBK02, PBK03, PBK04 og PBK05.
64
![Page 77: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/77.jpg)
7.2. Test af sekundære brugerkrav
7.1.3 Vægenhedens respons ved ændrede parametre
Der indlæses nye parametre for referencesignal, svarsignal og ventetid i vægenheden. Den simu-lerede mobilenhed skal udsende et triggersignal svarende til vægenhedens nye referencesignal, ogdet nye svarsignal skal sendes til mobilenheden.
Efter ændring af referencesignal, svarsignal og ventetid fungerer vægenheden efter hensigten. Denudsender det nye svarsignal, når det tilsendte triggersignal er lig referencesignalet, og den nyeventetid fungerer ligeledes. Derfor er dette krav overholdt.
Det testes ligeledes, hvorvidt den simulerede mobilenheds øvrige triggersignaler kan godkendesmed tilsvarende referencesignaler indlæst i vægenheden. I afsnit 6.3 Databehandling på side 52kan det i Tabel 6.1 ses, at alle triggersignaler kan godkendes under procestesten af Databehandlingprocessen.
De tre parametre, referencesignal, svarsignal og ventetid, i vægenheden udlæses i et konsolpro-gram.
De udlæste parametre var lig de indlæste i ovenstående punkt.
Dermed er følgende krav i kravspecifikationen overholdt: PBK06, PBK07, PBK08, PBK09,PBK10, og PBK11.
7.2 Test af sekundære brugerkrav
De sekundære brugerkrav der testes, er beskrevet i Kapitel 2 Kravspecifikation side 3.
7.2.1 Krav til afstand og vinkel
Under test af de sekundære brugerkrav benyttes testproceduren fra de primære brugerkrav, hvorder yderligere stilles krav til følgende:
1. 0,5 m mellem vægenheden og den simulerede mobilenhed, samt vinkel på 0
2. 10 m mellem vægenheden og den simulerede mobilenhed, samt vinkel på 0
3. 0,5 m mellem vægenheden og den simulerede mobilenhed, samt vinkel på 90
4. 10 m mellem vægenheden og den simulerede mobilenhed, samt vinkel på 90
Ved en afstand på ca. 30 cm kan der ikke længere registreres et signal fra den simulerede mobilen-hed i vægenhedens modtager, og vægenheden overholder derfor ikke ovenstående krav. Sender-og modtagermodulerne i vægenheden og den simulerede mobilenhed er konstrueret ens hvilketmedfører, at samme problem opstår, når der sendes fra vægenheden til mobilenheden. Dermedoverholder vægenheden ikke følgende sekundære brugerkrav: SBK01, SBK02 og SBK03.
65
![Page 78: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/78.jpg)
7 Accepttest
For at kunne overholde de sekundære brugerkrav, skal der designes nyt hardware. Dette kræverbl.a. en anden type IR-diode, da den anvendte er specificeret til en strøm gennem dioden påmaksimal 1 A ved den anvendte duty cycle. Modtagermodulerne skal kunne filtrere støj fra,så grænsen for ’lav’-niveau i software kan sættes ned. Der skal ligeledes være DC-adskillelseefter modtagerdioden, så påvirkning fra baggrundsbelysning elimineres. Der kan desuden evt.implementeres støjfiltrering i softwaren.
66
![Page 79: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/79.jpg)
Kapitel 8KonklusionDette projekt omhandler konstruktionen af en vægenhed til et indendørs positioneringssystem.Vægenhedens opgave er at afvente et infrarødt triggersignal fra en mobilenhed, hvorpå der skaludsendes et svarsignal. Signalet der modtages, sammenlignes i vægenheden med et reference-signal, og er disse ens, udsendes et svarsignalet til mobilenheden efter en forudbestemt tid.Vægenhedens opgave er dermed, at kunne modtage, genkende og udsende et infrarødt signal.Desuden skal det være muligt at ændre referencesignalet, svarsignalet og ventetiden via en pc.
Udgangspunktet for dette projekt er et minimumssystem baseret på en Motorola 68000 mikro-processor. Minimumssystemet udgør en platform for de hardwaremoduler, der skal tilføjes, for atkunne opfylde kravene til vægenheden. Dette er konstrueret således, at kravene for udviklings-værktøjet TS2 debugger/monitor overholdes.
Det konstruerede minimumssystem er delvist interruptstyret, idet vægenhedens sende- og mod-tagefunktioner er styret af en oscillator, der generer interrupt med samplingsfrekvensen 9,6 kHz.Modtagelse og afsendelse af signaler sker gennem dertil konstruerede moduler. Signalerne derbehandles i vægenheden, har en længde af 16 bit, hvor hver bit består af 32 samples. Konfigu-ration af vægenheden sker gennem en implementeret RS232 forbindelse, hvortil der benyttes etterminalprogram på en pc.
Det konstruerede minimumssystem er afprøvet med TS2 debugger/monitor, hvorved det blevkonstateret, at det virkede. Sender- og modtagermodulerne er konstrueret og testet separat,hvilket resulterede i, at modtagermodulet blev testet med et forkert signal. Modtagermoduletblev modificeret således, at det var muligt at udføre en accepttest for de primære brugerkrav.Resultatet af modifikationen blev, at baggrundsbelysningen ikke blev filtreret fra som før mo-difikationen. Ved de små afstande der testes ved, er dette ikke en begrænsning i forhold til deprimære krav, men bevirker, at de sekundære brugerkrav ikke kan overholdes. De primære bru-gerkrav er krav til funktionaliteten af vægenheden, mens de sekundære brugerkrav omhandlerafstande og vinkler mellem vægenhed og mobilenhed.
Den konstruerede vægenhed er testet med syv forskellige triggersignaler og er i stand til atskelne alle signalerne fra hinanden. Under testen sendte vægenheden derefter et svarsignal, deroverholdte kravet til dette. Ydermere er kravet til ventetiden overholdt. Det er ligeledes muligtat ind- og udlæse parametre fra en pc til vægenheden via en RS232 forbindelse. Herved er deprimære krav til vægenheden overholdt.
67
![Page 80: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/80.jpg)
8 Konklusion
68
![Page 81: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/81.jpg)
Kapitel 9Udvidelsesmuligheder
I dette kapitel beskrives nogle af de udvidelsesmuligheder og forbedringer, gruppen har overvejetmen ikke implementeret.
9.1 Software
Ud over at optimere koden således det er muligt at genkende triggersignalet med færre clockcycles,har gruppen overvejet følgende:
Filtrering
Ved at lave en filtrering i softwaren vil det være muligt at skelne høje samples bedre fra lavesamples. En sådan filtrering kunne være, at implementere en varierende grænse for, hvornår ensample er høj eller lav. En måde at gøre dette på, kunne for eksempel være at finde en middelværdifor de sidste 64 samples. Grænsen for hvornår der skelnes mellem en høj og en lav sample placeressåledes lidt over denne middelværdi. Dermed vil det være af mindre betydning om amplituden udaf modtagermodulet er 1, 2 eller 3 V, blot signalerne er højere end den udregnede middelværdi.
Tillade støj i triggersignalet
Ved at tillade støj gøres tolerancen for triggersignalet større. Dette dækker over, at systemetskal kunne tillade enkelte høje samples i triggersignalet, hvor der skulle have været lave samples.Som genkendelsessoftwaren er bygget op nu, tillades ingen høje samples, når der skal modtagesen lav bit. Udover de tre samples der skal være høje i en høj bit, tillades der heller ikke andrehøje samples.
69
![Page 82: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/82.jpg)
9 Udvidelsesmuligheder
9.2 Hardware
Denne del af kapitlet beskriver udvidelsesmuligheder i hardwaren. Ud over at øge sendestyrkeni sendermodulet og forstærkningen i modtagermodulet, kan ligeledes laves en filtrering af detmodtagne signal i modtagermodulet.
Varierende sendestyrke
En udvidelsesmulighed kunne være, at sendestyrken varieres således sendermodulet i vægenhe-den ikke lyser så kraftigt, når mobilenheden er tæt på vægenheden. Sendestyrken kunne justeresud fra hvor kraftigt et signal, der modtages fra mobilenheden, således at ved et svagt trigger-signal, udsendes et kraftigere svarsignal. Fordelen ved at kunne sende med svag sendestyrke er,at mobilenhedens modtagermodul ikke vil gå i mætning, når den er tæt på vægenheden. Enanden fordel ved varierende sendestyrke er, at der kan laves større forstærkning i mobilenhedensmodtagermodul, så denne kan modtage et svarsignal i en større afstand.
Højere clockfrekvens til processoren
Såfremt processorens clockfrekvens øges, kan der udføres flere instruktioner mellem hvert inter-rupt 4, og dermed kan samplingsfrekvensen muligvis øges. Med den nuværende software er detikke muligt at øge samplingsfrekvensen i modtagermodulet uden at skulle øge clockfrekvensen.Øges processorens clockfrekvens, kan der dog opstå problemer med timingen mellem processorenog de perifere enheder.
70
![Page 83: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/83.jpg)
Litteraturliste
[AMD, 1995]Advanced Micro Devices AMD: Am29F010.Advanced Micro Devices, 1995URL: http://www.farnell.com/datasheets/5830.pdfNote: Datablad
[Clements, 1997]Clements, Alan: Microprocessor Systems Design.PWS Publishing Company, 20 Park Plaza; Boston, MA 02116, 1997ISBN: 0-534-94822-7Note: Third edition
[Corporation, 2004]National Semiconductor Corporation: ADC0820 8-Bit High Speed ìP Compatible A/D Con-verter with Track/Hold Function.National Semiconductor Corporation, 2004URL: http://cache.national.com/ds/DC/ADC0820.pdfNote: Datablad
[Hitachi, 1994]Hitachi: HM628512 Series 524288-word x 8-bit High Speed CMOS Static RAM.Hitachi, Ltd., Semiconductor & Integrated Circuits, Nippon Bldg., 2-6-2, Ohte-machi,Chiyoda-ku, Tokyo 100-0004, Japan, 1994URL: http://www.chipcatalog.com/Datasheet/0B6659869B1E72F80DC5A69B128DD471.htmNote: Datablad
[ICT, 2004]ICT: PEEL 22CV10A-7/-10/-15/-25.ICT, Anachip Corp., 2F, No. 24-2, Industry E. Rd. IV, Science-Based,Industrial Park, Hsinchu,300, Taiwan, 2004URL: http://www.anachip.com/eng/product/search/datasheets/PEEL22CV10A.pdfNote: Datablad
[Instruments, 2003]Texas Instruments: TL7705 Supply Voltage Supervisors.Texas Instruments, Post Office Box 655303; Dallas - Texas 75265, 2003
71
![Page 84: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/84.jpg)
Litteraturliste
URL: http://focus.ti.com/lit/ds/symlink/tl7705a.pdfNote: Datablad
[Komponenten, 1993]TQ Elektronik Komponenten: TTL Quartz Crystal Oscillators.TQ Elektronik Komponenten GMBH, Landstrasse; D-6924 Neckarbischofsheim, 1993Note: Datablad
[Motorola, 1993]Motorola: M68000 8-/16-/32-Bit Microprocessors Users Manual; Ninth edition.Motorola INC., 1993URL: http://acoustics.aau.dk/fc/mikro/MC68000UM.pdfNote: Manual til Motorola 68000 processor
[Philips, 1990]Philips: 74HC/HCT03.Koninklijke Philips Electronics N.V., The Netherlands, 1990URL: http://www.standardics.philips.com/products/hc/pdf/74hc03.74hct03.pdfNote: Datablad
[Philips, 2005]Philips: 74HC4040.Koninklijke Philips Electronics N.V., The Netherlands, 2005URL: http://www.semiconductors.philips.com/acrobat/datasheets/74HC_HCT4040_3.pdfNote: Datablad
[Semiconductors, 1994]Motorola Semiconductors: MC6850.Motorola Ltd., European Literature Center, 88 Tanners Drive, Blakelands, Milton Keynes,MK14 5BP, England, 1994URL: http://www.ortodoxism.ro/datasheets/motorola/MC6850.pdfNote: Datablad
[Statsgeodæt Per Knudsen & Landinspektør Casper Jepsen, 2000]Statsgeodæt Per Knudsen & Landinspektør Casper Jepsen, Kort & Matrikelstyrelsen: Posi-tionsbestemmelse med GPS er blevet mere nøjagtig.Dansk Selskab for Rumfartsforskning, Dansk Selskab for Rumfartsforskning, Postboks 31, K-1002 København K, 2000URL: http://www.rumfart.dk/vis.asp?artikelid=78Note: Hentet 01-03-2006
[Wakerly, 2002]John F. Wakerly: Digital Design.Cisco Systems, Inc. Stanford University, 2002ISBN: 0-13-090772-3
72
![Page 85: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/85.jpg)
Appendiks AAccepttestspecifikation
Acceptestspecifikationen udarbejdes med henblik på, at kunne udføre en acceptest, der tester, omkravene opstillet i Kapitel 2 Kravspecifikation på side 3 er overholdt. Accepttestspecifikationendeles op i primære og sekundære brugerkrav.
Primære brugerkrav
Acceptesten af de primære krav verificeres ved brug af en simuleret mobilenhed. Den simuleredemobilenhed er beskrevet i Appendiks C Simuleret mobilenhed på side 81.
Modtagermodulet i den simulerede mobilenhed er koblet til et oscilloskop, så det kan ses omvægenhedens svarsignal, er som det ønskede. Accepttesten af de primære brugerkrav udføresuden krav til afstand og vinkel.
Vægenhedens respons ved korrekt triggersignalDer laves en opstilling, hvor den simulerede mobilenhed er placeret ca. 10 cm fra vægenheden.
1. Den simulerede mobilenhed udsender et triggersignal magen til referencesignalet i vægen-heden
2. Den simulerede mobilenhed registrerer svarsignalet fra vægenheden efter den ønskede ven-tetid
Accept:Den simulerede mobilenhed modtager et korrekt svarsignal til den ønskede svartid med en tole-rance på ±1 sample.
Vægenhedens respons ved ukorrekt triggersignalDer anvendes sammen opstilling som i første test. Denne test udføres for at verificere, at der kunsendes svarsignal ved modtagelse af et korrekt triggersignal.
73
![Page 86: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/86.jpg)
A Accepttestspecifikation
1. Den simulerede mobilenhed udsender et signal, der er forskellig fra referencesignalet i væ-genheden
2. Den simulerede mobilenhed registrerer ikke et svarsignal fra vægenheden
Accept:Den simulerede mobilenhed modtager ikke et svarsignal. Ved accept af de to ovenstående testser følgende krav i kravspecifikationen overholdt: PBK01, PBK02, PBK03, PBK04 og PBK05.
Vægenhedens respons ved ændrede parametreDer anvendes samme opstilling som i de to første test. Testen udføres for at verificere, at der kansendes nye parametre til vægenheden via en RS232 forbindelse, og disse kan anvendes. Desudenskal der kunne modtages parametre fra vægenheden.
1. Nye data for referencesignal, svarsignal og ventetid sendes til vægenheden
2. De to ovenstående tests af de primære brugerkrav gentages
3. Referencesignalet, svarsignalet og ventetiden sendes til pc’en, og sammenlignes med designaler, der blev sendt i punkt 1
Accept:Der kan sendes et nyt referencesignal, svarsignal og en ny ventetid, og vægenheden fungererkorrekt med de nye signaler. Desuden skal de gemte data, der udlæses i punkt 3 være magentil de signaler, der er indlæst i punkt 1. Såfremt vægenheden overholde ovenstående tests, erde følgende primære brugerkrav overholdt: PBK01, PBK02, PBK03, PBK04, PBK05, PBK06,PBK07, PBK08, PBK09, PBK10 og PBK11.
Sekundære brugerkrav
Accepttesten til de sekundære krav opstilles udfra de sekundære krav opgivet i afsnittet 2 Krav-specifikation på side 3. Testen af de sekundære brugerkrav udføres ved, at udføre den første testunder Primære brugerkrav fire gange, hvor nedenstående betingelser opfyldes en af gangen.
Modtage og sende signal af vægenheden med krav til afstanden og vinkelen.
1. Accepttesten udføres i en afstand på 0,5 m mellem vægenheden og den simulerede mobi-lenhed, i en vinkel på 0 ifht. vinkelret på den flade, hvorpå vægenheden er monteret
2. Accepttesten udføres i en afstand på 10 m mellem vægenheden og den simulerede mobilen-hed, i en vinkel på 0 ifht. vinkelret på den flade, hvorpå vægenheden er monteret
3. Accepttesten udføres i en afstand på 0,5 m mellem vægenheden og den simulerede mobi-lenhed, i en vinkel på 90 ifht. vinkelret på den flade, hvorpå vægenheden er monteret
4. Accepttesten udføres i en afstand på 10 m mellem vægenheden og den simulerede mobilen-hed, i en vinkel på 90 ifht. vinkelret på den flade, hvorpå vægenheden er monteret
74
![Page 87: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/87.jpg)
Accept:Den simulerede mobilenhed modtager et korrekt svarsignal fra vægenheden, når der afsendeset triggersignal magen til referencesignalet, i alle fire tilfælde. Dermed er følgende sekundærebrugerkrav opfyldt SBK01, SBK02 og SBK03.
75
![Page 88: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/88.jpg)
A Accepttestspecifikation
76
![Page 89: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/89.jpg)
Appendiks BSystemkravtestspecifikation
Systemkravtestspecifikationen udarbejdes for at verificere systemkravene, opstillet i afsnit 2 Krav-specifikation på side 3, kan overholdes. I dette appendiks beskrives testprocedurerne for system-kravene, da der ikke udføres en målejournal for disse.
Hardware
1. Modtager
HSK01: Signalet skal samples med en frekvens på 9,6 kHz
Testprocedure:Dette krav betragtes som designkrav og testes gennem den software, der anvender detdesignede hardware.
2. Sender
HSK02: Der skal kunne sendes samples med 9,6 kHz, således at der sendes samples medsamme frekvens som der modtages iht. HSK01
Testprocedure:Dette krav betragtes som designkrav og testes gennem den software, der anvender detdesignede hardware.
Hardwaren testes dog ved brug af testsoftware, der anvender de designede moduler, ved atmodtage en sendt sample. Proceduren er som følger.
Testprocedure:
1. Driveren til sendertrinet forbindes direkte til ADC’en. Derved kan den spænding driverenleverer til sendertrinet læses fra ADC’en.
2. Et testprogram skrevet i assembler eksekveres.Testprogrammet er vedlagt på CD (/hardware/testprogrammer/IRTest.asm).
77
![Page 90: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/90.jpg)
B Systemkravtestspecifikation
3. Data indlæst i hukommelsen udlæses vha. TS2 debugger/monitor, og bør skiftevis være$FF og $00 svarende til en høj og en lav sample.
Det anvendte testprogram er interruptstyret. Når der ikke behandles interrupt udføres komman-doen ’NOP’ (no operation) i en uendelig løkke. Ved interrupt 4 startes en interruptrutine, derskifter mellem at sende og modtage data. Det vil sige, at der sendes data første gang der kommerinterrupt 4, og at der modtages data næste gang, der kommer interrupt 4. Når der sendes skiftesder desuden mellem at sende hhv. en høj og en lav sample. Ved modtagelse gemmes data fraADC’en i en ringbuffer i hukommelsen.
Software
1. Databehandling
SSK01: Softwaren skal sample et signal bestående af 512 samples fra den infrarøde mod-tager. Dette kommer af brugerkravene om et 16 bit signal hvor hver bit samples 32 gange(PBK05)
Testprocedure:Indirekte testet ved accept af SSK02, idet signaler ikke kan genkendes hvis ikke softwarenkan behandle et signal bestående af 512 samples da modtagne signaler har netop dennekodning.Accept:SSK02 skal overholdes for at dette krav er overholdt.
SSK02: Et korrekt modtaget testsignal skal kunne genkendes og skelnes fra andre signaler.Ved en høj bit i et signal tillades at første eller sidste høje sample modtages som en lav.(PBK02)
Testprocedure:
(a) Tilstandsflaget sættes til 1 under hele forløbet så der kun modtages signaler
(b) Antallet af genkendte samples tælles op i et af processorens dataregistre
(c) En konstrueret simuleret mobilenhed udsender et kendt antal signaler svarende tilreferencesignalet for genkendelsesproceduren
(d) Det verifeceres, at databehandlingen har genkendt et antal signaler svarende til an-tallet af sendte testsignaler med TS2 debugger/monitor
(e) Den simulerede mobilenhed indstilles til at udsende et testsignal, der ikke skal kunnegenkendes som værende et korrekt signal
(f) Det verificeres, at databehandlingen ikke har genkendt nogle korrekte signaler medTS2 debugger/monitor
Ovenstående udføres til databehandlingen er testet med alle kombinationer af test- ogreferencesignaler.
Accept:Antallet af verificerede signaler skal være lig antallet af sendte korrekte testsignaler for allekombinationer
78
![Page 91: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/91.jpg)
SSK03: Databehandlingstiden per sample må ikke overskride periodetiden af samplings-frekvensen. Dette sikrer, at alle samples kan behandles inden næste sample hentes (HSK01)
Testprocedure:Indirekte testet ved accept af SSK02, idet signaler ikke kan genkendes hvis ikke alle sampleser færdigbehandlet inden næste sample hentes. Desuden udføres en simulering af anvendteclockcyles med simuleringsprogrammet 68000 IDE, for at kontrollere at antallet af clock-cycles ikke overstiger det tilladte.Accept:Overholdes SSK02 overholdes dette krav også overholdt. Antallet af anvendte clockcyclesper sample må ikke overskride 833.
2. Send signal
SSK04: Der ventes i et forudbestemt tidsrum med en tolerance på ±1 sample, målt veden ventetid på 512 samples.
Denne test udføres i den endelige accepttest da ventetiden ikke han testes ved test af denenkelte softwareproces, og er nærmere beskrevet i Appendiks A Accepttestspecifikation påside 73.
SSK05: Signalet, der sendes, skal være i overensstemmelse med signalkodningen (PBK05).Desuden skal signalet der sendes være i overensstemmelse med det ønskede svarsignal. Dertillades en afvigelse i signallængden på ±1 sample.
Testprocedure:
(a) Send signal procesen gentages med udsendelse af et kendt svarsignal bestående af 16bit, indkodet i hukommelsen
(b) Det verificeres på oscilloskop, at det udsendte svarsignal overholder signalkodningensamt at bitmønsteret er i overensstemmelse med det indkodede signal
Accept:Signalet skal være i overensstemmelse med det indkodede signal. Ydermere skal en højbit være repræsenteret ved tre lave samples efterfulgt af tre høje og efterfølgende lave,mens en lav bit repræsenteres ved 32 lave samples jf. signalkodningen beskrevet i afsnit 2Kravspecifikation på side 3.
3. Konfiguration af vægenhed
SSK06: Ind- og udlæsning af konfigurationer, herunder referencesignal, svarsignal samtventetid, skal være mulig via et konsolprogram.
Testprocedure:
(a) Indlæste standardværdier verificeres i hukommelsen via TS2 debugger/monitor, ogudlæses via RS232 forbindelsen
(b) Der indlæses et nyt referencesignal, svarsignal samt ny ventetid via RS232 forbindel-sen, som verificeres i hukommelsen via TS2 debugger/monitor
(c) En konfiguration indlæst via RS232 forbindelsen udlæses via RS232 forbindelsen
Accept:De udlæste værdier stemmer overens med de indlæste værdier.
79
![Page 92: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/92.jpg)
B Systemkravtestspecifikation
80
![Page 93: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/93.jpg)
Appendiks CSimuleret mobilenhed
For at verificere at vægenheden fungerer, konstrueres der en IR testsender, som kan sende for-skellige signaler med samme frekvens, som vægenheden sampler med. Der konstrueres ligeledes etmodtagermodul med samme specifikationer som det, der benyttes i vægenheden. Disse to udgørden simulerede mobilenhed, se Figur C.1.
Vægenhed med IR-modtager og sendere
IR test sender
IR modtager
Simuleret mobilenhed
Oscilloskop
IR test sender
IR modtager
Simuleret mobilenhed
Figur C.1: Illustration af simuleret mobilenhed
Et diagram over IR testsenderen ses på Figur C.3. Senderen styres af en oscillator på 2,4576MHz, som neddeles til 6 forskellige frekvenser for at have mulighed for at sende med forskelligefrekvenser. Den laveste frekvens er 9600 Hz, og den højeste er 307,2 kHz. Valget af frekvenserstyres med en dip-switch. Den valgte frekvens bruges som clock i en tæller, hvor udgangsbenenebruges som adresseben til en EPROM. Tælleren kan tælle til 4096 svarende til 4096 samples. Daet signal er 512 samples langt, er der signal 1
8 af den tid, det tager tælleren at tælle op til 4096,hvorefter den starter forfra. Dermed er der en pause før signalet gentages. EPROM’en har 8databen, hvoraf de 7 (Q1 −Q7) bruges til at sende 7 forskellige signaler, se Tabel C.1. Det sidstedataben (Q0) benyttes til en lysdiode, der blinker med en duty cycle på 50 %. Denne indikerer, atden simulerede mobilenhed er aktiv. EPROM’ens databen vælges med en dip-switch, og tilsluttesudgangstrinet som beskrevet i afsnit 5.1 Design af sendermodul på side 37. Lysdioden drives afen operationsforstærker, der fungerer som en strømforstærker for lysdioden.
De data, der er brændt i EPROM’en, ses på den vedlagte CD (/hardware/ir testsender/data.hex).Ydermere er der vedlagt et regneark med samme data (/hardware/ir testsender/data.xls).
81
![Page 94: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/94.jpg)
C Simuleret mobilenhed
Bit nr.Databen 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Q1 - signal 1 1 1 1 0 1 1 0 1 1 1 1 0 0 0 1 0Q2 - signal 2 1 1 1 0 1 1 0 1 0 0 0 1 1 1 0 1Q3 - signal 3 1 1 1 0 0 0 1 0 1 1 1 0 1 1 0 1Q4 - signal 4 1 1 0 1 1 1 1 0 0 0 1 0 1 1 1 0Q5 - signal 5 1 0 1 1 0 1 1 1 1 0 1 1 1 0 0 0Q6 - signal 6 1 0 1 1 0 1 1 1 0 1 0 0 0 1 1 1Q7 - signal 7 1 0 0 0 1 0 1 1 0 1 1 1 1 0 1 1
Tabel C.1: Tabel over signaler der er programmeret i EPROM’en
Ved test af IR testsenderen måles signalet med et oscilloskop som beskrevet i afsnit 5.1 Designaf sendermodul på side 37. Målinger af signal 1 er vist på Figur C.2. Det ses, at det målte signalstemmer overens med det forventede for signal 1.
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.050
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
5.5
Tid [s]
Spæ
ndin
g [V
]
Figur C.2: Målinger af signal 1 udsendt af IR testsenderen, hvor de lodrette linier markerer bitadskillelse
Samme målinger er foretaget med de øvrige signaler, og var ligeledes det forventede. Dermedkonkluderes at IR testsenderen fungerer.
82
![Page 95: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/95.jpg)
5 5
4 4
3 3
2 2
1 1
DD
CC
BB
AA
Vcc
Vcc
Title
Size
Doc
umen
t Num
ber
Rev
Dat
e:Sh
eet
of
<Doc
><R
evC
od
<Titl
e>
A3
11
Tues
day,
May
23,
200
6
Title
Size
Doc
umen
t Num
ber
Rev
Dat
e:Sh
eet
of
<Doc
><R
evC
od
<Titl
e>
A3
11
Tues
day,
May
23,
200
6
Title
Size
Doc
umen
t Num
ber
Rev
Dat
e:Sh
eet
of
<Doc
><R
evC
od
<Titl
e>
A3
11
Tues
day,
May
23,
200
6
U12
74H
C40
40
U12
74H
C40
40Q
121
Q6
2Q
53
Q7
4
Q4
5Q
36
Q2
7Q
19
CLK
10
RS
T11
Q9
12Q
813
Q10
14Q
1115
U31
M27
128A
U31
M27
128A
A0
10A
19
A2
8A
37
A4
6A
55
A6
4A
73
A8
25A
924
A10
21A
1123
A12
2A
1326
VP
P1
O0
11O
112
O2
13O
315
O4
16O
517
O6
18O
719
CE
20
OE
22P
GM
27
J6 JUM
PER
7
J6 JUM
PER
7
12
34
56
78
910
1112
1314
R36
10k
R36
10k
D4
L813
DD
4L8
13D
R39
150
R39
150
C10
15pF
C10
15pF
R38
1kR38
1k
R37
1.5
R37
1.5
J5
JUM
PER
6J5
JUM
PER
6
12
34
56
78
910
1112
D3
SFH
487P
D3
SFH
487P
S1 SWIT
CH
1X2
S1 SWIT
CH
1X2
U33
74H
C40
40
U33
74H
C40
40Q
121
Q6
2Q
53
Q7
4
Q4
5Q
36
Q2
7Q
19
CLK
10
RS
T11
Q9
12Q
813
Q10
14Q
1115
U34
A
TLC
071
U34
A
TLC
071
+
3
-
2O
UT
6
Q1
BC54
7Q
1BC
547
Q2
BD13
7Q
2BD
137
R40
10k
R40
10k
U11
CO
C/T
2.4
576M
Hz
U11
CO
C/T
2.4
576M
Hz
1 1
7 788
1414
Figur C.3: Diagram over IR testsender
83
![Page 96: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/96.jpg)
C Simuleret mobilenhed
84
![Page 97: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/97.jpg)
Appendiks DTestjournal
Formål
Formålet med denne test er at udføre verificering af de opstillede brugerkrav. De efterfølgendetests tager udgangspunkt i Appendiks A Accepttestspecifikation på side 73.
Måleopstilling for test af primære brugerkrav
Da der ikke er krav til afstand og vinkel mellem vægenheden, og den simulerede mobilenhedvælges det at placere enhederne ca. 10 cm fra hinanden. På Figur D.1 ses testopstillingen.
Vægenhed med IR-modtager og sender
IR test sender
IR modtager
Simuleret mobilenhed
Oscilloskop
IR test sender
IR modtager
Simuleret mobilenhedFigur D.1: Måleopstilling anvendt under test af primære brugerkrav
På IR-testsenderen måles spændingen på anoden af senderdioden, og på IR-modtageren målesspændingen ud af modtageren, der er konstrueret som beskrevet i afsnit 5.2 Design af modtager-modul på side 39.
85
![Page 98: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/98.jpg)
D Testjournal
Måleopstilling for test af sekundære brugerkrav
Der anvendes samme måleopstilling som ved test af de primære brugerkrav. Dog øges afstandenmellem den simulerede mobilenhed og vægenheden.
Apparaturliste
En oversigt over benyttet apparatur ses i Tabel D.1.
Type Mærke Model AAU nr. AAU placering
Strømforsyning Mascot 6823 02143-09 B1-104Oscilloskop Agilent 54621A 33863 B1-101-F-2
Tabel D.1: Anvendt måleapparatur for test af brugerkrav
Måleprocedure
Måleproceduren for verificering af de primære brugerkrav opdeles i følgende:
1. Vægenhedens respons ved korrekt triggersignal
2. Vægenhedens respons ved ukorrekt triggersignal
3. Vægenhedens respons ved ændrede parametre
Vægenhedens respons ved korrekt triggersignal
Den simulerede mobilenhed indstilles til at sende signal 6 (1011011101000111). Referencesignal,svarsignal samt ventetid sættes til standardværdierne (1011011101000111, 1110000011110001 og512 samples).
1. Stel fra strømforsyningen kobles til vægenheden, den simulerede mobilenhed og oscil-loskopet
2. Oscilloskopets probe 1 kobles til anoden på sendermodulets IR-diode
3. Oscilloskopets probe 2 kobles til udgangen på modtagermodulet
4. På den simulerede mobilenhed vælges signal 6 vha. dip-switchen
5. 5 V fra strømforsyningen kobles til vægenheden og den simulerede mobilenhed
6. Oscilloskopet indstilles således at triggersignalet til vægenheden kan ses to gange
86
![Page 99: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/99.jpg)
7. På oscilloskopet aflæses tiden fra faldende flanke på det sidste bit i triggersignalet tilstigende flange af første bit i svarsignalet
8. Datapunkter udlæses til videre databehandling
Den simulerede mobilenhed er beskrevet i Appendiks C Simuleret mobilenhed på side 81.
Vægenhedens respons ved ukorrekt triggersignal
Den simulerede mobilenhed indstilles til at sende signal 7 (1000101101111011). Referencesignal,svarsignal samt ventetid sættes til standardværdierne (1011011101000111, 1110000011110001 og512 samples).
1. Stel fra strømforsyningen kobles til vægenheden, den simulerede mobilenhed og oscil-loskopet
2. Oscilloskopets probe 1 kobles til anoden på sendermodulets IR-diode
3. Oscilloskopets probe 2 kobles til modtagermodulets udgang
4. På den simulerede mobilenhed vælges signal 7 vha. dip-switchen
5. 5 V fra strømforsyningen kobles til vægenheden og den simulerede mobilenhed
6. Oscilloskopet indstilles således at triggersignalet til vægenheden kan ses to gange
7. Datapunkter udlæses til videre databehandling
Vægenhedens respons ved ændrede parametre
Vægenhedens referencesignal ændres via konfigurationsprogrammet til 1101111000101110, svar-signalet til 1110001011101101 og ventetiden til 0 samples.
1. Stel fra strømforsyningen kobles til vægenheden, den simulerede mobilenhed og oscil-loskopet
2. Oscilloskopets probe 1 kobles til anoden på sendermodulets IR-diode
3. Oscilloskopets probe 2 kobles til modtagermodulets udgang
4. På den simulerede mobilenhed vælges signal 7 vha. dip-switchen
5. Parametrene i vægenheden ændres til de førnævnte
6. 5 V fra strømforsyningen kobles til vægenheden og den simulerede mobilenhed
7. Oscilloskopet indstilles således at triggersignalet til vægenheden kan ses to gange
87
![Page 100: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/100.jpg)
D Testjournal
Måleresultater
Grafer over måleresultaterne ses i Kapitel 7 Accepttest på side 63.
88
![Page 101: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/101.jpg)
Appendiks EBrugervejledning
Denne brugervejledning er udarbejdet til brug ved anvendelse af vægenheden til et indendørspositioneringssystem. Brugervejledningen indeholder en systembeskrivelse samt en vejledning ikonfiguration og brug af vægenheden.
Systembeskrivelse
Vægenheden er en del af et samlet positioneringssystem til indendørs brug, der gør brug afinfrarøde signaler. Vægenheden indeholder foruden hardware til databehandling også en infrarødsender og modtager. På Figur E.1 ses en illustration af systemet.
Mobilenhed
Vægenhed
Retning
Triggersignal
Svarsignal
Figur E.1: Illustration af positioneringssystem
Signalet, som mobilenheden udsender, kaldes et triggersignal, mens signalet, som vægenheden
89
![Page 102: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/102.jpg)
E Brugervejledning
udsender som svar på triggersignalet, kaldes et svarsignal. Parametre i databehandlingen somtriggersignal samt svarsignal kan ændres gennem et konfigurationsprogram, der tilgås via en pctilsluttet vægenheden med en RS232 forbindelse. Foruden disse parametre kan ventetiden, fra ettriggersignal er modtaget til et svarsignal udsendelse, ændres.
Brug af systemet
Beskrivelsen af brug af systemet er opdelt i tre emner; Opsætning af pc, Menuen i konfigura-tionsprogrammet, Afbrydelse af sendermodulet. Disse beskrives herefter.
E.0.1 Opsætning af pc
For at konfigurere vægenheden tilsluttes denne til en pc via en RS232 forbindelse, og et terminal-program som f.eks. Hyper Terminal startes. Terminalprogrammet indstilles til at kommunikeremed følgende indstillinger:
• 9600 bit/s
• 8 databit
• Ingen paritet
• 1 stopbit
• Ingen flowstyring
E.0.2 Menuen i konfigurationsprogrammet
Efter opsætning af terminalprogrammet på pc’en aktiveres vægenhendens konfigurationsprogramved tryk på en vilkårlig tast på tastaturet, herefter vises et terminalvinduet som vist på FigurE.2.
MENU:r
Figur E.2: Eksempel på opstart af konfigurationprogrammet, her er den vilkårlige tast valgt til r
I menuen vælges der mellem at udlæse data og indlæse data med kommandoerne ”read” og”load” efterfulgt af Enter . Ønskes ingen af delene bruges kommandoen ”exit” efterfulgt af Enter, hvorefter forbindelsen mellem terminalprogrammet og vægenheden afbrydes.
90
![Page 103: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/103.jpg)
Udlæs data
Vælges det at udlæse data tastes kommandoen ”read” efterfulgt af Enter . Herefter udskrivesdet aktuelle referencesignal, svarsignal og ventetiden. Et eksempel af en sådan udlæsning ses påFigur E.3.
MENU:readRef: 1011011101000111Ans: 1110000111100001Time: 0512
MENU:
Figur E.3: Eksempel på udlæsning af parametre
Efter udskrivning af disse parametre vender programmet tilbage til menuen.
Indlæs data
Vælges det at indlæse data tastes kommandoen ”load” efterfulgt af Enter . Herefter vises enundermenu, hvor der vælges mellem at indlæse enten referencesignal, svarsignal eller ventetid.Her skal der tastes:
1 : For at indlæse referencesignalet. Der skal indtastes et 16 bit langt referencesignal beståendeaf en kombination af tallene 0 og 1. Herefter vender programmet tilbage til menuen. Den førstindtastede karakter i referencen er ligeledes den første bit der sammenlignes med. N.B. Det førstebit skal derfor være 1 for at vægenheden skal være i stand til at genkende det ønskede signal.
2 : For at indlæse svarsignalet. Der skal indtastes et 16 bit langt svarsignal bestående afen kombination af tallene 0 og 1. Herefter vender programmet tilbage til menuen. Den førstindtastede karakter vil være den først afsendte bit i svarsignalet.
3 : For at indlæse ventetiden. Der skal indtastes et tal på 4 cifre. Tallet angiver det antalsamples, der ønskes at vente. Samplingsfrekvens er 9600 Hz, hvilket svarer til at der er 104,17 µsmellem hver sample.
Esc : For at vende tilbage til menuen
Et eksempel på indlæsning af et referencesignal ses på Figur E.4.
Eksempel på udregning af den faktiske ventetid, hvis der indtastes 0022:
22 · 104, 17 µs = 2, 29 ms (E.1)
Det vil sige, at der ventes 2,29 ms, inden svarsignalet sendes.
91
![Page 104: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/104.jpg)
E Brugervejledning
MENU:load1 Ref.2 Ans.3 TimeESC: MENU1Ref. 1100110011001100
MENU:
Figur E.4: Eksempel på indlæsning af et referencesignal
Den minimale ventetid er 0 og det maksimale er 9999. Ved 9999 er ventetiden:
9999 · 104, 17 µs = 1, 04 s (E.2)
Den maksimale ventetid er dermed 1,04 s.
Hvis der på noget tidspunkt tastes en ugyldig kommando, skrives der ’Invalid Command’ ikonsolprogrammet, og der vendes tilbage til menuen.
E.0.3 Afbrydelse af sendermodulet
Det er muligt at udlæse og indlæse til hukommelsen i vægenheden via TS2 debugger/monitor.Programmet tilgåes ved at trykke på NMI knappen på fronten af vægenheden, og afbryder alleigangværende processer.
Da det ikke kan vides om vægenhedens sendermodul er igang med at sende, når der trykkes påNMI-knappen, er der monteret en jumper til at afbryde forsyningsspændingen til sendermodulet,så IR-dioden ikke brænder af.
92
![Page 105: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/105.jpg)
Appendiks FRAM allokering
På Figur F.1 ses en oversigt over allokering af adresseområder i RAM kredsene. De grå områderer uudnyttede adresseområder.
TS2 debugger/monitor
Referencesignal
Svarsignal
Ventetid i hex
Ventetid i decimal
Høj bit reference
Software
Lager til samples
Tilstandsflag
Dataflag
04 000004 0FFF04 000004 0FFF04 300004 300F04 301004 301F04 002004 002204 002404 002804 003004 004F04 005004 4FFF04 500004 5A1604 5A1705 01FF05 020005 03FF05 040006 FFFF
07 0000
07 0001
07 000213 FFFF
RAM allokering
Figur F.1: Oversigt over RAM allokering. De grå områder er adresseområder der ikke anvendes.
93
![Page 106: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/106.jpg)
F RAM allokering
94
![Page 107: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/107.jpg)
Appendiks GPEEL kode
PEEL kode for Adressedekoder
module _adrdek
" TITLEtitle ’Adressedekoder, 17-04-2006’
" DEVICEadrdek device ’P22V10’;
" INPUTA23, A22, A21, A20, A19, A18 pin 2,3,4,5,6,7;AS, LDS, RW, UDS pin 8,9,10,11;
" OUTPUTROM1, ROM2, RAM1, RAM2 pin 14,15,16,17;ACIA1, ACIA2, Tx, Rx pin 18,19,20,21;WE pin 22;
" ISTYPEROM1, ROM2, RAM1, RAM2,ACIA1, ACIA2, Tx, Rx,WE istype ’pos,com’;
X=.X.;
" EQUATIONS
95
![Page 108: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/108.jpg)
G PEEL kode
equations!ROM1 = !A23 & !A22 & !A21 & !A20 & !A19 & !A18 & !UDS & !AS;!ROM2 = !A23 & !A22 & !A21 & !A20 & !A19 & !A18 & !LDS & !AS;!RAM1 = !A23 & !A22 & !A21 &
((!A20 & !A19 & A18) # (!A20 & A19) # (A20 & !A19 & !A18))& !UDS & !AS;
!RAM2 = !A23 & !A22 & !A21 &((!A20 & !A19 & A18) # (!A20 & A19) # (A20 & !A19 & !A18))& !LDS & !AS;
!ACIA1 = A23 & !A22 & !A21 & !A20 & !A19 & !A18 & !LDS & !AS;!ACIA2 = A23 & !A22 & A21 & !A20 & !A19 & !A18 & !LDS & !AS;!Rx = A23 & A22 & !A21 & !A20 & !A19 & !A18 & !LDS & !AS;!Tx = A23 & A22 & A21 & !A20 & !A19 & !A18 & !LDS & !AS;
!WE = !AS & !RW;
test_vectors ’memory’( [A23,A22,A21,A20,A19,A18,LDS,UDS,AS]->[ROM1,ROM2,RAM1,RAM2,ACIA1,ACIA2,Tx,Rx])" ROM:[0,0,0,0,0,0,1,0,0] -> [0,1,1,1,1,1,1,1];[0,0,0,0,0,0,0,0,0] -> [0,0,1,1,1,1,1,1];[0,0,0,0,0,0,1,1,0] -> [1,1,1,1,1,1,1,1];[0,0,0,0,0,0,0,1,0] -> [1,0,1,1,1,1,1,1];[0,0,0,0,0,0,X,X,1] -> [1,1,1,1,1,1,1,1];
" RAM:[0,0,0,0,0,1,1,0,0] -> [1,1,0,1,1,1,1,1];[0,0,0,0,0,1,0,0,0] -> [1,1,0,0,1,1,1,1];[0,0,0,0,0,1,1,1,0] -> [1,1,1,1,1,1,1,1];[0,0,0,0,0,1,0,1,0] -> [1,1,1,0,1,1,1,1];[0,0,0,0,0,1,X,X,1] -> [1,1,1,1,1,1,1,1];
[0,0,0,0,1,X,1,0,0] -> [1,1,0,1,1,1,1,1];[0,0,0,0,1,X,0,0,0] -> [1,1,0,0,1,1,1,1];[0,0,0,0,1,X,1,1,0] -> [1,1,1,1,1,1,1,1];[0,0,0,0,1,X,0,1,0] -> [1,1,1,0,1,1,1,1];[0,0,0,0,1,X,X,X,1] -> [1,1,1,1,1,1,1,1];
[0,0,0,1,0,0,1,0,0] -> [1,1,0,1,1,1,1,1];[0,0,0,1,0,0,0,0,0] -> [1,1,0,0,1,1,1,1];[0,0,0,1,0,0,1,1,0] -> [1,1,1,1,1,1,1,1];[0,0,0,1,0,0,0,1,0] -> [1,1,1,0,1,1,1,1];[0,0,0,1,0,0,X,X,1] -> [1,1,1,1,1,1,1,1];
test_vectors ’com’
96
![Page 109: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/109.jpg)
( [A23,A22,A21,A20,A19,A18,LDS,AS] -> [ROM1,ROM2,RAM1,RAM2,ACIA1,ACIA2,Tx,Rx])" ACIA1:[1,0,0,0,0,0,1,0] -> [1,1,1,1,1,1,1,1];[1,0,0,0,0,0,0,0] -> [1,1,1,1,0,1,1,1];[1,0,0,0,0,0,1,1] -> [1,1,1,1,1,1,1,1];[1,0,0,0,0,0,0,1] -> [1,1,1,1,1,1,1,1];
" ACIA2:[1,0,1,0,0,0,1,0] -> [1,1,1,1,1,1,1,1];[1,0,1,0,0,0,0,0] -> [1,1,1,1,1,0,1,1];[1,0,1,0,0,0,1,1] -> [1,1,1,1,1,1,1,1];[1,0,1,0,0,0,0,1] -> [1,1,1,1,1,1,1,1];
test_vectors ’I/O’( [A23,A22,A21,A20,A19,A18,LDS,AS] -> [ROM1,ROM2,RAM1,RAM2,ACIA1,ACIA2,Tx,Rx])" Tx:[1,1,0,0,0,0,1,0] -> [1,1,1,1,1,1,1,1];[1,1,0,0,0,0,0,0] -> [1,1,1,1,1,1,1,0];[1,1,0,0,0,0,1,1] -> [1,1,1,1,1,1,1,1];[1,1,0,0,0,0,0,1] -> [1,1,1,1,1,1,1,1];
" Rx:[1,1,1,0,0,0,1,0] -> [1,1,1,1,1,1,1,1];[1,1,1,0,0,0,0,0] -> [1,1,1,1,1,1,0,1];[1,1,1,0,0,0,1,1] -> [1,1,1,1,1,1,1,1];[1,1,1,0,0,0,0,1] -> [1,1,1,1,1,1,1,1];
test_vectors ’kontrolbus’( [RW,AS] -> [WE])[0,0] -> [0];[0,1] -> [1];[1,0] -> [1];[1,1] -> [1];end _adrdek
PEEL kode for ACIA PEEL
module _aciairqtitle ’Acia select, 20-04-2006’aciairq device ’P22V10’;
"Pin layout"input pinsRW, VMA, LDS, CS_ACIA_PCI, CS_ACIA_DMI pin 1, 2, 3, 4, 5;IRQ5, NMI, IACK5, IACK7 pin 6, 7, 8, 9;Rx, Tx, AS, WE, D0, OEin pin 10, 11, 13, 14, 15, 17;
97
![Page 110: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/110.jpg)
G PEEL kode
"output pinsOEout, VPA, CS_ACIA_PCO, CS_ACIA_DMO pin 16, 18, 19, 20;WR, RD pin 21, 22;
" ISTYPEOEout, VPA, CS_ACIA_PCO, CS_ACIA_DMO,WR, RD istype ’pos,com’;X = .X.;
equations
!VPA = !CS_ACIA_PCI # !CS_ACIA_DMI;
!VPA = !IRQ5 & !IACK5;
!VPA = !NMI & !IACK7;
"--------------------------------------------------------------
!CS_ACIA_PCO = !VMA & !LDS & CS_ACIA_PCI & !CS_ACIA_DMI;
!CS_ACIA_DMO = !VMA & !LDS & !CS_ACIA_PCI & CS_ACIA_DMI;
"--------------------------------------------------------------
!RD = !OEin & WE & !Rx;!WR = OEin & !WE & !Rx;
"-------------------------------------------------------------
!OEout = !AS & RW;
"-------------------------------------------------------------
test_vectors ’CHIPSELECT’([VMA,LDS,CS_ACIA_PCI,CS_ACIA_DMI] -> [CS_ACIA_PCO,CS_ACIA_DMO]);[0,0,0,0]->[1,1];[0,0,0,1]->[1,0];[0,0,1,0]->[0,1];[0,0,1,1]->[1,1];[0,1,X,X]->[1,1];[1,X,X,X]->[1,1];
test_vectors ’VPA’([NMI,IACK7,IRQ5,IACK5,CS_ACIA_PCI,CS_ACIA_DMI] -> [VPA]);
98
![Page 111: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/111.jpg)
[X,X,0,0,X,X]->[0];[0,0,X,X,X,X]->[0];[X,X,X,X,X,0]->[0];[X,X,X,X,0,X]->[0];[0,1,0,1,1,1]->[1];[0,1,1,0,1,1]->[1];[0,1,1,1,1,1]->[1];[1,0,0,1,1,1]->[1];[1,0,1,0,1,1]->[1];[1,0,1,1,1,1]->[1];[1,1,0,1,1,1]->[1];[1,1,1,0,1,1]->[1];[1,1,1,1,1,1]->[1];
test_vectors ’modtag’([OEin,WE,Rx] -> [WR,RD]);"[0,0,0]->[0,0];[0,0,1]->[1,1];[0,1,0]->[1,0];[0,1,1]->[1,1];[1,0,0]->[0,1];[1,0,1]->[1,1];[1,1,0]->[1,1];[1,1,1]->[1,1];
test_vectors ’kontrolbus’([RW,AS] -> [OEout]);[0,0] -> [1];[0,1] -> [1];[1,0] -> [0];[1,1] -> [1];
end _aciairq
PEEL kode for TX PEEL
module _Tx
" TITLEtitle ’Tx, 17-04-2006’
" DEVICETxPEEL device ’P22V10’;
" INPUTTx, D0, IACK4, IRQ4 pin 2,3,4,5;
99
![Page 112: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/112.jpg)
G PEEL kode
" OUTPUTTxClk, TxClr, VPA pin 14,15,16;
" ISTYPETxClk, TxClr, VPA istype ’pos,com’;
" EQUATIONSequations!TxClk = !Tx & D0;!TxClr = !Tx & !D0;
!VPA = !IACK4 & !IRQ4;
test_vectors ’Tx’([Tx,D0]->[TxClk,TxClr]);[0,0]->[1,0];[0,1]->[0,1];[1,0]->[1,1];[1,1]->[1,1];
test_vectors ’VPA’([IRQ4,IACK4]->[VPA]);[0,0]->[0];[1,0]->[1];[0,1]->[1];[1,1]->[1];
end _Tx
100
![Page 113: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/113.jpg)
Appendiks HAssembler kode
* Projekt inkluder: main.asm* interrupt4.asm* konsol.asm* load.asm* read.asm* sammenlign.asm**************************************************************************
************************** Interruptvektortabel **************************
org $400E0 ;Adr. for autovektor til interrupt 4jmp sendmodtag ;Spring til interruptrutine 4
org $400E8 ;Adr. for autovektor til interrupt 5jmp konsol ;Spring til interruptrutine 5
************************** Initialisering **************************
org $45000 ;Programstart adresse $45000
* Sæt SR til ikke at tillade interrupts mens der initialiseres ******
move.w #$2500,SR ;Ignorer interrupt 5 og alle lavere
* Placering af flag, hukommelsesområder, etc. ******ref_signal equ $043000 ;Placering af referencesignallagerstart equ $050200 ;Lagerstart for samplingerlagermax equ $0503FF ;Sidste adresse i samplingslager
101
![Page 114: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/114.jpg)
H Assembler kode
tilstflag equ $070000 ;0 = send, 1 = modtagdataflag equ $070001 ;1 = ny data til behandlingADC equ $C00001 ;Adr. på ADCIRud equ $E00001 ;Adr. på IR sendermodul
refbitadr equ $43010 ;Svarsignalet er lagret fra denne adr.;og fremefter (16 bit, hver på 1 byte)
ventetid equ $43020 ;Adr. hvor ventetiden er lagret (word)refsampleadr equ $43030 ;Adr. hvor referencesignal for 1 høj
;bit i svarsignal er gemt som 32;samples, hver på 1 byte
* Initialisering af RS232-forbindelse til konsol ******ACIACR equ $A00001 ;ACIA kontrol- og statusreg adr.ACIADR equ $A00003 ;ACIA dataregistrets adresseRDRF equ 0 ;ACIA Receive Data Register FullTDRE equ 1 ;ACIA Transmit Data Register Empty
move.b #$03,ACIACR ;Masterreset af ACIAmove.b #$95,ACIACR ;Opsætning af ACIA til generering af
;interrupt, 8 bit data, ingen paritet,;1 stopbit, intern clock division 16
* Initialisering af brugerflade i konsol ******
move.b #$0C,D0 ;NewPagebsr Output ;Rutine til at skrive ud på konsolmove.b #$0A,D0 ;ASCII NewLinebsr Outputmove.b #$0D,D0 ;ASCII returnbsr Outputmove.b #$4D,D0 ;ASCII Mbsr Outputmove.b #$45,D0 ;ASCII Ebsr Outputmove.b #$4E,D0 ;ASCII Nbsr Outputmove.b #$55,D0 ;ASCII Ubsr Outputmove.b #$0A,D0 ;ASCII NewLinebsr Outputmove.b #$0D,D0 ;ASCII returnbsr Outputmove.b #$3A,D0 ;ASCII :bsr Outputclr.b D0 ;Nulstil dataregister
102
![Page 115: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/115.jpg)
* Indlæs standardværdier for signaler og ventetid ******
move.l #$01000101,$43000 ;Reference signal (ref_signal)move.l #$00010101,$43004 ;hvilket signal der skal svares påmove.l #$00010000,$43008 ;1011.0111.0100.0111move.l #$00010101,$4300Cmove.l #$01010100,$43010 ;Svar signalmove.l #$00000001,$43014 ;hvilket signal skal svares tilbagemove.l #$01010100,$43018 ;1110.0001.1110.0001move.l #$00000001,$4301Cmove.w #$0200,$43020 ;Ventetid gemt som hex værdimove.l #$00050102,$43024 ;Ventetid som bytes for lettere
;udlæsning i konsol
* Indlæs udseende for høj referencebit ******
move.l #$00000001,$43030 ;Høj bit reference bestående afmove.l #$01010000,$43034 ;32 samples = 32 bytesmove.l #$00000000,$43038 ;udseende (. for læselighed):move.l #$00000000,$4303C ;00011100.00000000.00000000.00000000move.l #$00000000,$43040move.l #$00000000,$43044move.l #$00000000,$43048move.l #$00000000,$4304C
* Indlæs standardpointere og sæt flag ******
move.l #lagerstart,A0 ;Nulstil lagerpointer til $50200move.l #lagerstart,A1 ;Nulstil signalstartpointer til $50200move.l #ref_signal,A5 ;bitpointer i referencesignalmove.b #1,(tilstflag) ;sæt til modtagmove.b #0,(dataflag) ;ingen ny data der skal behandles
* Sæt SR til at tillade alle interrupts ******
move.w #$2000,SR ;Accepter alle interrupts
************************** Main program **************************start cmp.b #1,(dataflag) ;Er der ny data?
bne start ;Nej -> spring til label startmove.b #0,(dataflag) ;Ja -> Nulstiller dataflagjmp genkend ;Spring til genkendelsesrutine
* Interruptrutine 4*************************************************************’
103
![Page 116: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/116.jpg)
H Assembler kode
*************************** Valget send/modtag ***************************sendmodtag move.b (ADC),D0 ;Flytter data fra ADC til dataregister
;D0, og fjerner interrupt 4cmp.b #0,(tilstflag) ;Skal der sendes?beq send ;Ja -> spring til label sendmove.b #1,(dataflag) ;Nej -> Sætter dataflag = 1move.b #1,ADC ;Starter en ny konvertering i ADCrte ;Afslut interruptrutine 4,
;sidste sample fra ADC ligger i D0
* Processen Send sample i interruptrutine 4 ******
************************** Vente eller sende? **************************send cmp.w (ventetid),D3 ;Er antal interrupts >= ventetid?
bge afsend ;Ja -> spring til afsendadd.w #1,D3 ;Nej -> tæl antal interrupts op med 1rte ;Afslut interruptrutine
************************** Afsendelse af sample **************************
afsend cmp.b #31,D1 ;Er sampletæller = 31?beq nybit ;Ja -> spring til nybitcmp.b #16,D2 ;Er bittæller = 16?beq saetflag ;Ja -> spring til saetflagmove.l #refbitadr,A3 ;Nej -> Flyt refbitadr. til A3add.l D2,A3 ;Refbitadr. tælles op med bitnr.cmp.b #1,(A3) ;Er bitværdien i svarsignal = 1?bne sendlav ;Nej -> spring til sendlav
sendhoej move.l #refsampleadr,A2 ;Flyt refsampleadr. til A2add.l D1,A2 ;Adder refsampleadr. med sampletællermove.b (A2),IRud ;Sender sample til IR-sendermoduladd.w #1,D1 ;Tæl sampletæller op med 1rte ;Afslut interruptrutine
sendlav move.b #0,IRud ;Send et 0 til IR-sendermoduladd.w #1,D1 ;Tæller sampletælleren op med 1rte ;Afslut interruptrutine
nybit clr D1 ;Nulstiller sampletælleren
104
![Page 117: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/117.jpg)
add.w #1,D2 ;Tæller bitnummeret op med 1rte ;Afslut interruptrutine
saetflag clr D1 ;Nulstiller sampletællerenclr D2 ;Nulstiller bittællerenclr D3 ;Nulstiller ventetidstællerenmove.l #$0,A2 ;Nulstiller refsampleadr.move.l #$0,A3 ;Nulstiller refbitadr.move.b #1,tilstflag ;Tilstandsflag = 1, så der modtages
;sample ved næste interrupt 4rte ;Afslut interruptrutine
* Konfigurationsprogram* Anvendes til at konfigurere* Startes af interrupt 5**********************
************************** Konsol rutine **************************konsol move.b #0,IRud ;Slukker sendedioden
move.l D0,-(A7) ;D0 -> stakkenmove.l A2,-(A7) ;A2 -> stakkenmove.l A3,-(A7) ;A3 -> stakkenmove.l A4,-(A7) ;A4 -> stakken
move.l #$42000,A2 ;Inputbuffer start
* Ryd skærm/vindue i konsol og skriv menu på skærmen ******reset move.b #$0C,D0 ;NewPage
bsr Output ;Spring til Output rutine
kons_go move.b #$0A,D0 ;ASCII NewLinebsr Outputmove.b #$0D,D0 ;ASCII returnbsr Outputmove.b #$4D,D0 ;ASCII Mbsr Outputmove.b #$45,D0 ;ASCII Ebsr Outputmove.b #$4E,D0 ;ASCII Nbsr Outputmove.b #$55,D0 ;ASCII Ubsr Outputmove.b #$0A,D0 ;ASCII NewLinebsr Outputmove.b #$0D,D0 ;ASCII return
105
![Page 118: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/118.jpg)
H Assembler kode
bsr Outputmove.b #$3A,D0 ;ASCII :bsr Output
* input af konfigurationsdata ******conf bsr Input ;Spring til Input
move.b D0,(A2) ;Input flyttes til inputbuffercmp.b #$0D,D0 ;Er der tastet ASCII return?beq chkload ;Ja -> spring til chkloadadda #1,A2 ;Nej -> Tæl inputbuffer en opbsr Output ;Skriv input tilbage via RS232jmp conf ;Spring til conf
;Kør indlæsningsløkken igen
* kontroller om der er tastet ’load’, der testes bagfra ******chkload cmp.b #$64,-(A2) ;ASCII d
bne chkexitcmp.b #$61,-(A2) ;ASCII abne invalidcmp.b #$6F,-(A2) ;ASCII obne chkreadcmp.b #$6C,-(A2) ;ASCII lbne invalidjmp load ;Der er tastet ’load’, spring til load
* kontroller om der er tastet ’read’, der testes bagfra hvor ’ad’ delen er* testet under chkload*****chkread adda #1,A2 ;Læg 1 til inputbufferen, da der blev
;trukket en fra for at teste for ’o’ i;’load’
cmp.b #$65,-(A2) ;ASCII ebne invalidcmp.b #$72,-(A2) ;ASCII rbne invalidjmp read ;Der er tastet ’read’, spring til read
* kontroller om der er tastet ’exit’, der testes bagfra ******chkexit adda #1,A2
cmp.b #$74,-(A2) ;ASCII tbne invalidcmp.b #$69,-(A2) ;ASCII ibne invalidcmp.b #$78,-(A2) ;ASCII xbne invalid
106
![Page 119: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/119.jpg)
cmp.b #$65,-(A2) ;ASCII ebne invalid
* er der tastet ’exit’, skrives ’Bye!’ ******
move.b #$0A,D0 ;ASCII NewLinebsr Outputmove.b #$0D,D0 ;ASCII returnbsr Outputmove.b #$42,D0 ;ASCII Bbsr Outputmove.b #$79,D0 ;ASCII ybsr Outputmove.b #$65,D0 ;ASCII ebsr Outputmove.b #$21,D0 ;ASCII !bsr Outputmove.b #$0A,D0 ;ASCII NewLinebsr Outputmove.b #$0D,D0 ;ASCII returnbsr Outputjmp niceend ;Spring til niceend
* Udskriver ’Invalid command’ på konsol ******invalid move.l #$42000,A2 ;Nulstil Inputbuffer
move.b #$0A,D0 ;ASCII NewLinebsr Outputmove.b #$0D,D0 ;ASCII returnbsr Outputmove.b #$49,D0 ;ASCII Ibsr Outputmove.b #$6E,D0 ;ASCII nbsr Outputmove.b #$76,D0 ;ASCII vbsr Outputmove.b #$61,D0 ;ASCII absr Outputmove.b #$6C,D0 ;ASCII lbsr Outputmove.b #$69,D0 ;ASCII ibsr Outputmove.b #$64,D0 ;ASCII dbsr Outputmove.b #$20,D0 ;ASCII spacebsr Outputmove.b #$63,D0 ;ASCII cbsr Output
107
![Page 120: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/120.jpg)
H Assembler kode
move.b #$6F,D0 ;ASCII obsr Outputmove.b #$6D,D0 ;ASCII mbsr Outputmove.b #$6D,D0 ;ASCII mbsr Outputmove.b #$61,D0 ;ASCII absr Outputmove.b #$6E,D0 ;ASCII nbsr Outputmove.b #$64,D0 ;ASCII dbsr Outputmove.b #$7,D0 ;ASCII BELL (lyd)bsr Outputmove.b #$0A,D0 ;ASCII NewLinebsr Outputmove.b #$0D,D0 ;ASCII returnbsr Outputmove.b #$0A,D0 ;ASCII NewLinebsr Outputmove.b #$3A,D0 ;ASCII returnbsr Outputjmp conf ;Spring til conf
* Genskab adresse- og dataregistre til hvad de var før interruptrutine 5 ******niceend move.l (A7)+,A4 ;Indlæs gammel værdi til A4
move.l (A7)+,A3 ;Indlæs gammel værdi til A3move.l (A7)+,A2 ;Indlæs gammel værdi til A2move.l (A7)+,D0 ;Indlæs gammel værdi til D0rte ;Afslut interruptrutine
* RS232 INPUT OUTPUT rutiner ******
************************** Input rutine **************************
Input btst.b #RDRF,ACIACR ;Bittest, Receive Data Register Full;er 0 i ACIA kontrol- og statusreg.
beq Input ;Ja -> spring til Input, udfør;polling efter data
move.b ACIADR,D0 ;Kopier ACIA Data Register -> D0rts ;Afslut input rutine
*************************
108
![Page 121: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/121.jpg)
* Output rutine **************************
Output btst.b #TDRE,ACIACR ;Bittest, Transmit Data Registe Empty;er 1 i ACIA kontrol- og statusreg.
beq Output ;Ja -> spring til Outputmove.b D0,ACIADR ;Kopier D0 -> ACIA Data Registerrts ;Afslut output rutine
* Indlæs data til system* ref = Referencesignal der skal genkendes* ans = svarsignal* time = antal interrupts der skal ventes fra signal er genkendt til der sendes******
* Menu’en til udskriv med gyldige valgmuligheder ******load move.l #$42000,A2 ;Nulstil Inputbuffer
move.b #$0A,D0 ;ASCII NewLinebsr Output ;Udskriv til konsol via RS232move.b #$0D,D0 ;ASCII Returnbsr Outputmove.b #$31,D0 ;ASCII 1bsr Outputmove.b #$3A,D0 ;ASCII :bsr Outputmove.b #$20,D0 ;ASCII spacebsr Outputmove.b #$52,D0 ;ASCII Rbsr Outputmove.b #$65,D0 ;ASCII ebsr Outputmove.b #$66,D0 ;ASCII fbsr Outputmove.b #$2E,D0 ;ASCII .bsr Outputmove.b #$0A,D0 ;ASCII NewLinebsr Outputmove.b #$0D,D0 ;ASCII returnbsr Outputmove.b #$32,D0 ;ASCII 2bsr Outputmove.b #$3A,D0 ;ASCII :bsr Outputmove.b #$20,D0 ;ASCII spacebsr Outputmove.b #$41,D0 ;ASCII Absr Output
109
![Page 122: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/122.jpg)
H Assembler kode
move.b #$6E,D0 ;ASCII nbsr Outputmove.b #$73,D0 ;ASCII sbsr Outputmove.b #$2E,D0 ;ASCII .bsr Outputmove.b #$0A,D0 ;ASCII NewLinebsr Outputmove.b #$0D,D0 ;ASCII returnbsr Outputmove.b #$33,D0 ;ASCII 3bsr Outputmove.b #$3A,D0 ;ASCII :bsr Outputmove.b #$20,D0 ;ASCII spacebsr Outputmove.b #$54,D0 ;ASCII Tbsr Outputmove.b #$69,D0 ;ASCII ibsr Outputmove.b #$6D,D0 ;ASCII mbsr Outputmove.b #$65,D0 ;ASCII ebsr Outputmove.b #$0A,D0 ;ASCII NewLinebsr Outputmove.b #$0D,D0 ;ASCII returnbsr Outputmove.b #$45,D0 ;ASCII Ebsr Outputmove.b #$53,D0 ;ASCII Sbsr Outputmove.b #$43,D0 ;ASCII Cbsr Outputmove.b #$3A,D0 ;ASCII :bsr Outputmove.b #$20,D0 ;ASCII spacebsr Outputmove.b #$4D,D0 ;ASCII Mbsr Outputmove.b #$45,D0 ;ASCII Ebsr Outputmove.b #$4E,D0 ;ASCII Nbsr Outputmove.b #$55,D0 ;ASCII Ubsr Outputmove.b #$0A,D0 ;ASCII NewLinebsr Output
110
![Page 123: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/123.jpg)
move.b #$0D,D0 ;ASCII returnbsr Output
* Afvent indtastning og bestem hvad der er tastet ******loadcom bsr Input ;Spring til Input, afvent indtastning
move.b D0,(A2) ;Kopier D0 -> databuffercmp.b #$1B,D0 ;Er der tastes ASCII ESC?beq reset ;Ja -> spring til resetcmp.b #$0D,D0 ;Er der tastet ASCII return?beq command ;Ja -> spring til commandadda #1,A2 ;Læg 1 til A2, databufferbsr Outputjmp loadcom ;Spring til loadcom
command cmp.b #$31,-(A2) ;Er der tastet ASCII 1?beq loadref ;Ja -> spring til loadrefcmp.b #$32,(A2) ;Nej -> Er der tastet ASCII 2?beq loadans ;Ja -> spring til loadanscmp.b #$33,(A2) ;Nej -> Er der tastet ASCII 3?beq loadtime ;Ja -> spring til loadtimejmp invalid ;Nej -> spring til invalid
* Indlæs referencesignal ******loadref move.b #$0A,D0 ;ASCII NewLine
bsr Outputmove.b #$0D,D0 ;ASCII returnbsr Outputmove.b #$52,D0 ;ASCII Rbsr Outputmove.b #$65,D0 ;ASCII ebsr Outputmove.b #$66,D0 ;ASCII fbsr Outputmove.b #$2E,D0 ;ASCII .bsr Outputmove.b #$09,D0 ;ASCII TABbsr Output
move.l #$43000,A3 ;Læg startadr. for ref.signal -> A3refin bsr Input ;Spring til Input
cmp.b #$30,D0 ;Er der tastet ASCII 0?beq refnext ;Ja -> spring til refnextcmp.b #$31,D0 ;Nej -> Er der tastet ASCII 1?bne refin ;Nej -> spring til refin, ignorer
;indtastninger der ikke er 0 ell. 1refnext bsr Output ;Ja -> skriv indtastning på konsol
111
![Page 124: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/124.jpg)
H Assembler kode
sub.b #$30,D0 ;Træk $30 fra indtastede ASCII kode,;så det gemmes som 0 og 1 i hukommelse
move.b D0,(A3) ;Gem indtastning i hukommelseadda #1,A3 ;Læg 1 til A3cmp.l #$43010,A3 ;Er der indtastet et komplet signal?bne refin ;Nej -> spring til refinmove.b #$0A,D0 ;Ja -> Udskriv ASCII NewLinebsr Outputmove.b #$0D,D0 ;ASCII returnbsr Outputjmp kons_go ;Spring til kons_go
* Indlæs svarsignal ******loadans move.b #$0A,D0 ;ASCII NewLine
bsr Outputmove.b #$0D,D0 ;ASCII returnbsr Outputmove.b #$41,D0 ;ASCII Absr Outputmove.b #$6E,D0 ;ASCII nbsr Outputmove.b #$73,D0 ;ASCII sbsr Outputmove.b #$2E,D0 ;ASCII .bsr Outputmove.b #$09,D0 ;ASCII TABbsr Output
move.l #$43010,A3 ;Læg startadr. for svarsignal -> A3ansin bsr Input ;Spring til Input
cmp.b #$30,D0 ;Er der tastet ASCII 0?beq ansnext ;Ja -> spring til ansnextcmp.b #$31,D0 ;Nej -> Er der tastet ASCII 1?bne ansin ;Nej -> spring til ansin, ignorer
;indtastninger der ikke er 0 ell. 1ansnext bsr Output ;Ja -> skriv indtastning på konsol
sub.b #$30,D0 ;Træk $30 fra indtastede ASCII kode,;så det gemmes som 0 og 1 i hukommelse
move.b D0,(A3) ;Gem indtastning i hukommelseadda #1,A3 ;Læg 1 til A3cmp.l #$43020,A3 ;Er der indtastet et komplet signal?bne ansin ;Nej -> spring til refinmove.b #$0A,D0 ;Ja -> Udskriv ASCII NewLinebsr Outputmove.b #$0D,D0 ;ASCII returnbsr Outputjmp kons_go ;Spring til kons_go
112
![Page 125: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/125.jpg)
* Indlæs svartid ******loadtime move.b #$0A,D0 ;ASCII NewLine
bsr Outputmove.b #$0D,D0 ;ASCII returnbsr Outputmove.b #$54,D0 ;ASCII Tbsr Outputmove.b #$69,D0 ;ASCII ibsr Outputmove.b #$6D,D0 ;ASCII mbsr Outputmove.b #$65,D0 ;ASCII ebsr Outputmove.b #$2E,D0 ;ASCII .bsr Outputmove.b #$09,D0 ;ASCII TABbsr Output
move.l #$43024,A3 ;Læg startadr. for ventetid -> A3timein bsr Input ;Spring til Input
cmp.b #$30,D0 ;Er der tastet ASCII 0?beq timenext ;Ja -> spring til timenextcmp.b #$31,D0 ;Er der tastet ASCII 1?beq timenext ;Ja -> spring til timenextcmp.b #$32,D0 ;Er der tastet ASCII 2?beq timenext ;Ja -> spring til timenextcmp.b #$33,D0 ;Er der tastet ASCII 3?beq timenext ;Ja -> spring til timenextcmp.b #$34,D0 ;Er der tastet ASCII 4?beq timenext ;Ja -> spring til timenextcmp.b #$35,D0 ;Er der tastet ASCII 5?beq timenext ;Ja -> spring til timenextcmp.b #$36,D0 ;Er der tastet ASCII 6?beq timenext ;Ja -> spring til timenextcmp.b #$37,D0 ;Er der tastet ASCII 7?beq timenext ;Ja -> spring til timenextcmp.b #$38,D0 ;Er der tastet ASCII 8?beq timenext ;Ja -> spring til timenextcmp.b #$39,D0 ;Er der tastet ASCII 9?bne timein ;Nej -> spring til timein
timenext bsr Output ;Ja -> skriv indtastning på konsolsub.b #$30,D0 ;Træk $30 fra indtastede ASCII kode
;så der kan gemmes som 0,1,..9 i;hukommelse i stedet for ASCII koden
move.b D0,(A3) ;Gem indtastning i hukommelseadda #1,A3 ;Læg 1 til A3
113
![Page 126: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/126.jpg)
H Assembler kode
cmp.l #$43028,A3 ;Er der skrevet 4 tegn?bne timein ;Nej -> spring til timein
;Ja -> konverter indtastede til hex
* Konvertering til hex påbegyndes. Anvendes for at have den indtastede ventetid* gemt som word for at lette sammenligningen i processen Send.*****
move.l #$43020,A4 ;Læg startadr. for ventetid hex -> A4move.b -(A3),D0 ;Flyt mindst betydende til D0move.w D0,(A4) ;Flyt mindst betydende til (A4)move.b -(A3),D0 ;Flyt 10’er til D0mulu #10,D0 ;Multiplicitet af tal: 10add.w D0,(A4) ;Adder tallet til (A4)clr D0move.b -(A3),D0 ;Flyt 100’er til D0mulu #100,D0 ;Multiplicitet af tal: 100add.w D0,(A4) ;Adder tallet til (A4)clr D0move.b -(A3),D0 ;Flyt 1000’er til D0mulu #1000,D0 ;Multiplicitet af tal: 1000add.w D0,(A4) ;Adder tallet til (A4)
* Konvertering afsluttet******
move.b #$0A,D0 ;ASCII NewLinebsr Outputmove.b #$0D,D0 ;ASCII returnbsr Outputjmp kons_go ;Spring til kons_go
* Udlæser data fra system* ref = referencesignal der skal svares på* ans = svarsignalet der udsendes når der er genkendt et signal* time = antal interrupts der skal ventes fra signal genkendt til svar sendes*****read move.l #$42000,A2 ;Nulstil Inputbuffer
* udlæs referencesignalet ******ref move.b #$0A,D0 ;ASCII NewLine
bsr Output ;Udskriv til konsol via RS232move.b #$0D,D0 ;ASCII returnbsr Outputmove.b #$52,D0 ;ASCII Rbsr Outputmove.b #$65,D0 ;ASCII ebsr Outputmove.b #$66,D0 ;ASCII f
114
![Page 127: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/127.jpg)
bsr Outputmove.b #$3A,D0 ;ASCII :bsr Outputmove.b #$9,D0 ;ASCII TABbsr Output
move.l #$43000,A3 ;Kopier startadr. for ref.signal -> A3refout move.b (A3),D0 ;Kopier det A3 peger på -> D0
add.b #$30,D0 ;Læg $30 til D0, så der skrives ASCII;0 og 1 på konsol i stedet for det;ACSII kode 0 og 1 angiver
bsr Outputadda #1,A3 ;Læg 1 til A3, så A3 peger på næste
;adr. i referencesignaletcmp.l #$43010,A3 ;Er hele referencesignalet skrevet ud?beq ans ;Ja -> spring til ansjmp refout ;Nej -> spring til refout
* Udlæs svarsignalet ******ans move.b #$0A,D0 ;ASCII NewLine
bsr Outputmove.b #$0D,D0 ;ASCII Returnbsr Outputmove.b #$41,D0 ;ASCII Absr Outputmove.b #$6E,D0 ;ASCII nbsr Outputmove.b #$73,D0 ;ASCII sbsr Outputmove.b #$3A,D0 ;ASCII :bsr Outputmove.b #$9,D0 ;ASCII TABbsr Output
move.l #$43010,A3 ;Kopier startadr. for svarsignal -> A3ansout move.b (A3),D0 ;Kopier det A3 peger på -> D0
add.b #$30,D0 ;Læg $30 til D0, så der skrives ASCII;0 og 1 på konsol i stedet for det;ACSII kode 0 og 1 angiver
bsr Outputadda #1,A3 ;Læg 1 til A3, så A3 peger på næste
;adr. i svarsignaletcmp.l #$43020,A3 ;Er hele svarsignalet skrevet ud?beq time ;Ja -> spring til timejmp ansout ;Nej -> spring til ansout
* Udlæs ventetid *
115
![Page 128: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/128.jpg)
H Assembler kode
*****time move.b #$0A,D0 ;ASCII NewLine
bsr Outputmove.b #$0D,D0 ;ASCII returnbsr Outputmove.b #$54,D0 ;ASCII Tbsr Outputmove.b #$69,D0 ;ASCII ibsr Outputmove.b #$6D,D0 ;ASCII mbsr Outputmove.b #$65,D0 ;ASCII ebsr Outputmove.b #$3A,D0 ;ASCII :bsr Outputmove.b #$9,D0 ;ASCII TABbsr Output
move.l #$43024,A3 ;Kopier startadr. for ventetid -> A3timeout move.b (A3),D0 ;Kopier det A3 peger på -> D0
add.b #$30,D0 ;Læg $30 til D0, så der skrives ASCII;0,1,..,9 på konsol i stedet for det;ACSII kode 0,1,..,9 angiver
bsr Outputadda #1,A3 ;Læg 1 til A3, så A3 peger på næste
;adr. i ventetidencmp.l #$43028,A3 ;Er ventetiden udskrevet?beq endline ;Ja -> spring til endlinejmp timeout ;Nej -> spring til timeout
endline move.b #$0A,D0 ;ASCII NewLinebsr Outputmove.b #$0D,D0 ;ASCII returnbsr Output
jmp kons_go ;Spring til kons_go
*Processen Databehandling der er indeholdt i main programmet***************************
************************** Genkend og søg bit **************************genkend move.b D0,(A0) ;Flyt data fra D0 til det A0 peger på
;A0 peger på samplelageradr.bsr highlow ;Spring til rutinen highlow
116
![Page 129: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/129.jpg)
soegbit bsr sammenlign ;Spring til rutinen sammenligningcmp.b #16,D2 ;Er D2 (bittæller) = 16?bne nextbit ;Nej -> spring til nextbitmove.b #0,(tilstflag) ;Tilstandsflag = 0,clr.b D0 ;Nulstil D0, sidste sample lagerclr.b D1 ;Nulstil D1, sampletællerclr.b D2 ;Nulstil D2, bittællerclr.b D5 ;Nulstil D5, sammenligningsflag
;1 = ufuldstænding 1.st bit;0 = 1.st bit godkendt som ’perfekt’;’perfekt’ = 000111000000...0
clr.l D6 ;Nulstil D6, databuffer/FIFO der inde-;holder de sidste 32 samples som 1 og;0 (når der har været 32 samples)
move.l #ref_signal,A5 ;A5 = referencesignal adr.add.b #1,D7 ;Tæl antal godkendte signaler op med 1
;(anvendt under test)nextbit adda.l #1,A0 ;Læg 1 til samplelageradr. og gem i A0
cmp.l #lagermax,A0 ;A0 = slutning af samplelager?beq nulstiladr ;Ja -> spring til nulstiladrjmp start ;Spring til start
nulstiladr move.l #lagerstart,A0 ;A0 = start af samplelagerjmp start ;Spring til start
************************** høj/lav bit rutine **************************
highlow cmp.b #$32,D0 ;Er sample < $32?;$32 = 1 V fra IR-modtager under;antagelse af at ADC er lineær
bls lowbit ;Ja -> spring til lowbitmove.b #$1,D0 ;Flyt 1 til sidste sample lager, D0rts ;Afslut highlow rutine
lowbit move.b #$0,D0 ;Flyt 0 til sidste sample lager, D0rts ;Afslut highlow rutine
************************** Sammenling rutine **************************
* Søges der efter høj eller lav bit? ******sammenlign cmp.b #0,(A5) ;Peger bitpointerer på en lav bit?
beq soeglav ;Ja -> spring til soeglav
117
![Page 130: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/130.jpg)
H Assembler kode
* Søg efter høj bit ******soeghoej cmp.b #0,D2 ;Er det første bit?
beq foerstebit ;Ja -> Spring til førstebitcmp.b #0,D0 ;Nej -> Er sample der er hentet 0?beq nulind_h ;Ja -> spring til nulind_hjmp etind_h ;Nej -> spring til etind_h
chk_h add.b #1,D1 ;Tæl sampletæller opcmp.b #32,D1 ;Er der hentet 32 bit?beq chk_hbit ;Ja -> spring til chk_hbitrts ;Afslut sammenlign rutinen
chk_hbit cmp.l #$1C000000,D6 ;Her testes for 3 muligheder afbeq equal_h ;indholdet i databufferen D6 ogcmp.l #$18000000,D6 ;springes til equal_h, hvisbeq equal_h ;D6 = tallet der sammenlignes med.cmp.l #$0C000000,D6 ;Dette giver tolerence på hvor mangebeq equal_h ;samples der skal være høje for at
;blive godkendt som høj bit.cmp.b #1,D5 ;Er sammenligningsflag = 1?bne nulstil ;Nej -> spring til Nulstilcmp.l #$38000000,D6 ;Tolerence på hvad der i databufferbeq equal_h ;kan verificeres som korrekt, pga.cmp.l #$30000000,D6 ;uvished om hvilken sample der blevbne nulstil ;misset i første godkendte bit
equal_h add.b #1,D2 ;Tæl bittæller opadda.l #1,A5 ;Tæl bitpointer opclr.b D1 ;Nulstil sampletællerclr.l D6 ;Nulstil databufferrts ;Afslut sammenlign rutinen
nulstil clr.l D6 ;Nulstil databufferclr.b D2 ;Nulstil bittællermove.l #ref_signal,A5 ;Nulstil bitpointerclr.b D1 ;Nulstil sampletællerrts ;Afslut sammenlign rutinen
************************** Søg første bit rutine **************************foerstebit cmp.b #0,D0 ;Er sidste sample = 0?
beq nulind_f ;Ja -> spring til nulind_fjmp etind_f ;Nej -> spring til etind_f
chk_f cmp.l #$1C000000,D6 ;Er databuffer = 000111000000...0?bne case2 ;Nej -> spring til case2move.b #0,D5 ;Nulstil sammenligningsflag
118
![Page 131: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/131.jpg)
jmp equal ;Spring til equalcase2 cmp.l #$0C000000,D6 ;Er databuffer = 000011000000...0?
bne return ;Nej -> spring til returnmove.b #1,D5 ;Ja -> sammenligningsflag = 1
equal add.b #1,D2 ;Tæl bittæller op med 1adda.l #1,A5 ;Tæl bitpointer op med 1
return rts ;Afslut foerstebit rutinen
************************** Søg lav bit rutine **************************soeglav cmp.b #0,D0 ;Er databuffer = 0?
beq nulind_l ;Ja -> spring til nulind_ljmp etind_l ;Nej -> spring til etind_l
chk_l add.b #1,D1 ;Tæl sampletæller op med 1cmp.b #32,D1 ;Er der hentet 32 samples?beq chk_lbit ;Ja -> spring til chk_lbitrts ;Nej -> afslut soeglav rutine
chk_lbit cmp.l #$00000000,D6 ;Er databuffer = 0?bne nulstil ;Nej -> spring til nulstil
equal_l add.b #1,D2 ;Tæl bittæller op med 1adda.l #1,A5 ;Tæl bitpointer op med 1clr.b D1 ;Nulstil sampletællerrts ;Afslut soeglav rutine
************************** Input i databuffer ***************************Der anvendes forskellige rutiner til at indsætte data i dababufferen, da der*ikke returneres/springes sammested hen alt efter om det er første bit eller et*af de andre der er igang med at blive genkendt****** indsæt 1 - første bit ******etind_f lsl.l #1,D6 ;Skift databuffer 1 til venstre
or.b #1,D6 ;Logisk OR 1 på bit 0 i databufferjmp chk_f ;Spring til chk_f
* indsæt 1 - genkend høj bit ******etind_h lsl.l #1,D6 ;Skift databuffer 1 til venstre
or.b #1,D6 ;Logisk OR 1 på bit 0 i databufferjmp chk_h ;Spring til chk_h
* indsæt 1 - genkend lav bit ******etind_l lsl.l #1,D6 ;Skift databuffer 1 til venstre
119
![Page 132: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/132.jpg)
H Assembler kode
or.b #1,D6 ;Logisk OR 1 på bit 0 i databufferjmp chk_l ;Spring til chk_l
* indsæt 0 - første bit ******nulind_f lsl.l #1,D6 ;Skift databuffer 1 til venstre
jmp chk_f ;Spring til chk_f
* indsæt 0 - høj bit ******nulind_h lsl.l #1,D6 ;Skift databuffer 1 til venstre
jmp chk_h ;Spring til chk_h
* indsæt 0 - lav bit ******nulind_l lsl.l #1,D6 ;Skift databuffer 1 til venstre
jmp chk_l ;Spring til chk_l
* afslutning af mainprogram ******
end $45000
120
![Page 133: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/133.jpg)
Appendiks IKomponentliste
Komponentlisten er opdelt i to sektioner. En der dækker mikrodatamatsystemet, med de kom-ponenter der ses på de respektive diagrammer.
Mikrodatamatsystemet
Diagrammet til mikrodatamatsystemet ses i Appendiks J Diagram på side 123.Komponenterne i mikrodatamatsystemet er navngivet som på diagrammet. Alle anvendte mod-stande er 10 kΩ. Der er anvendt flere afkoblingskondensatorer, end de her angivne, men disseer monteret på undersiden af printet og derfor ikke navngivet på placeringsdiagrammet. Der erligeledes enkelte kondensatorer der er synlige fra oversiden, men ikke på placeringsdiagrammet,og enkelte kondensatorer på eldiagrammet der ikke er at finde i placeringsdiagrammet. Dissekondensatorer er monteret på undersiden af en sokkel, og er alle 100 nF.
IC’erMikroprocessor MC68HC000ACIA EF6850PAdressedekoder 22CV10AACIA PEEL 22CV10ATX PEEL 22CV10ARS232 DRIVER SP232ACPDeler 74HC4040B1
RAM HM628513-7ROM AM29FO10B-90PCIPL 74LS148IACK 74HCT138NFUNC.GEN 74HCT138NINT timer 74HC73B1
Oscillatorer
8,0000 Mhz MCO-1415 B 2,4576 MHz COC/T 50
121
![Page 134: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/134.jpg)
I Komponentliste
KondensatorerC1 100 nFC2 15pFC3 100 nFC4 100 nFC5 100 nFC6 100 nFC7 15 pFC8 100 nF
C_t 10 µFC_t1 47 pFC_A1 330 pFC_A2 330 pFC_A3 100 µFC_A4 100 µFC_A5 100 nFC_A6 220 nF
Sender- og modtagermodul samt mobilenheden
Komponenterne anvendt i sendermodulet navngives som på Figur 5.1 side 37.
SendermodulTransistor BC547Transistor BD137IR diode SFH487P
R_IN 1 kΩ
R_C 1,5 Ω
Komponenterne i modtagermodulet navngives som på Figur 5.3 på side 40, hvor forstærkerendog ikke er navngivet. Den vil i tabellen hedde OpAmp.
Modtagermodul
OpAmp TLC071IR modtagerdiode BPW34R1 4,99 kΩ
R2 60,4 kΩ
R_A 40,2 Ω
R_F 1 kΩ
C1 1 nF
Komponenterne i mobilenheden er navngivet som på Figur C.3 på side 83.
MobilenhedQ1 BC547Q2 BD137U11 COC/T 50U12 74HC4040U31 M27128AU33 74HC4040U34A TLC071C10 15 pF
R36 10 kΩ
R37 1,5 Ω
R38 1 kΩ
R39 150 Ω
R40 10 kΩ
D3 SFH487PD4 L813D
122
![Page 135: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/135.jpg)
Appendiks JDiagram
123
![Page 136: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/136.jpg)
![Page 137: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/137.jpg)
A23
A10
A5
A17
A11
A6
A12
A18
A13
A7
A19
A14
A8
A15
A9
A16
A10
A17
A11A12A13A14A15A16A17
A1
D0
A18
A2
D1
A19
A3A4
A1
D2
A5A6
A2
D3
A7
A3
A8
D4
A9
A4
A10
D5
A5
A11
D6
A12
A6
A13
D0
D7
A7
A14
D1
A15
D2
A8
D3
A16
D4
A9
A17
D5
A1
A10
D6
A1A2
A2
A3
D7
A4A5
A11
A3
D8
A6
D9
A12
A4D10
A5
A13
D11
A6
A1
A7
D12
A8A9
A14
A10
A7
A11
A2
A12
D13
A13A14
A8
A15
D14
A15
A16
A3
A17A18
A9
A19
D15
A20
A4
A21
A16
A22
D8D9D10D11D12D13D14D15
D0D1D2D3D4D5D6D7
D1D2D3D4D5D6D7
RESET*
R/W*LDS*AS*
A18A19A20A21A22A23
CS1*
CS2*
A1
A1 D0
E
E
R/W*
VMA*LDS*
FC0FC1FC2
CS1*CS2*
IPL0IPL1IPL2
AS*
A1A2A3
D10D11D12D13D14D15
D0D1D2D3D4D5D6D7D8D9
IPL0*IPL1*IPL2*
VPA*
FC0FC1FC2
VMA*E
UDS*LDS*R/W*
VPA*
UDS*
D0D1D2D3D4D5D6D7
AS
D0
DTACK*
HALT*
RST*HALT*
AS*
VPA*
IRQ4*
D0
A1
Vcc
Vcc
Vcc
Vcc
VccVcc Vcc
Vcc
Vcc
Vcc Vcc
Vcc Vcc
VccVcc
Vcc
Vcc
Vcc
Vcc
Vcc
Vcc
Vcc
Vcc
Vcc
Vcc
Vcc
Vcc
Databus
Adressebus
Kontrolbus
IR_in
IR_out
IR_out
R10R10RAM2
HM628512
RAM2
HM628512
A012A111A210A39A48A57A66A75A827A926A1023
I/O0 13I/O1 14I/O2 15I/O3 17I/O4 18I/O5 19I/O6 20I/O7 21
A143 A1328
A1125A124
A1531A162A1730A181
OE24WE29CS22
ADC
ADC0820
ADC
ADC0820
VIN1
REF+12REF-11
D0 2D1 3D2 4D3 5D4 14D5 15D6 16D7 17
INT 9OFL 18
CS13
MODE7RD8
WR/RDY6
R11R11
R5R5
R33R33
IACK
74HCT138
IACK
74HCT138
A1B2C3
Y0 15Y1 14Y2 13Y3 12Y4 11Y5 10Y6 9Y7 7
G16G2A4G2B5
R4R4
ROM2
AM29F010
ROM2
AM29F010
DQ0 13DQ1 14DQ2 15DQ3 17DQ4 18DQ5 19DQ6 20DQ7 21
A012A111A210A39A48A57A66A75A827A926A1023A1125A124A1328A1429A153A162
CE22
OE24WE31
ACIA-TS2
6850
ACIA-TS2
6850
E14
CS08CS110CS29
RS11RXDATA2CTS24DCD23
RXCLK3TXCLK4
R/W13
TXDATA 6
RTS 5
IRQ 7
D0 22D1 21D2 20D3 19D4 18D5 17D6 16D7 15
R35R35
R9R9
TS2 D/M
DSUB 9 - side
TS2 D/M
DSUB 9 - side
16
27
38
49
5
ROM1
AM29F010
ROM1
AM29F010
DQ0 13DQ1 14DQ2 15DQ3 17DQ4 18DQ5 19DQ6 20DQ7 21
A012A111A210A39A48A57A66A75A827A926A1023A1125A124A1328A1429A153A162
CE22
OE24WE31
R8R8
Divider
74HC4040
Divider
74HC4040Q12 1
Q6 2Q5 3
Q7 4
Q4 5Q3 6Q2 7Q1 9CLK10
RST11
Q9 12Q8 13
Q10 14Q11 15
R7R7
INT timer B
74HC73
INT timer B
74HC73
J7
CLK5
K10 Q 9Q 8
CLR6
Reset
TL7705B
Reset
TL7705B
CT3
SEN7
RESIN2
REF1 RST 6
RST 5
RS232
MAX232A
RS232
MAX232A
C1+1C1-3C2+4C2-5V+2V-6
D/M_OUT 12PC_OUT 9
D/M_IN11PC_IN10
D/M_IN13PC_IN8
D/M_OUT 14PC_OUT 7
R12R12
C6 100nC6 100n
R17R17
R18R18
R2R2
2,45
76 M
Hz
COC/T
2,45
76 M
Hz
COC/T
11
77
88
1414
USER
DSUB 9 - front
USER
DSUB 9 - front
16
27
38
49
5
Function
74HCT138
Function
74HCT138
A1B2C3
Y0 15Y1 14Y2 13Y3 12Y4 11Y5 10Y6 9Y7 7
G16G2A4G2B5
R16R16
R1R1
RAM1
HM628512
RAM1
HM628512
A012A111A210A39A48A57A66A75A827A926A1023
I/O0 13I/O1 14I/O2 15I/O3 17I/O4 18I/O5 19I/O6 20I/O7 21
A143 A1328
A1125A124
A1531A162A1730A181
OE24WE29CS22
INT timer A
74HC73
INT timer A
74HC73
J14
CLK1
K3 Q 12Q 13
CLR2
ACIA-user
6850
ACIA-user
6850
E14
CS08CS110CS29
RS11RXDATA2CTS24DCD23
RXCLK3TXCLK4
R/W13
TXDATA 6
RTS 5
IRQ 7
D0 22D1 21D2 20D3 19D4 18D5 17D6 16D7 15
D1D1
C215pFC215pF
R30R30
C715pFC715pFR3R3
IPL
74LS148
IPL
74LS148
D0 10D1 11D2 12D3 13D4 1D5 2D6 3D7 4
EI 5
Q09Q17Q26
GS14 EO15R24R24
Reset knapReset knap1 2
R19R19
NMI A
74LS03
NMI A
74LS03
1
23
R23R23
C_t
10u
C_t
10u
TX PEEL
22CV10A
TX PEEL
22CV10AI/CLK1
TXClk* 14TXClr* 15
VPA* 16I/O 17I/O 18I/O 19I/O 20I/O 21I/O 22I/O 23
TX*2D03IACK4*4IRQ4*5I6I7I8I9I10I11I13
R22R22
8,00
00 M
Hz
MCO1425B
8,00
00 M
Hz
MCO1425B
11
77
88
1414
R13R13
CLK JMP
JUMPER6
CLK JMP
JUMPER6
1 23 45 67 89 10
11 12
C5100nC5100n
R26R26
R41R41
D2D2
Delay
TL7705B
Delay
TL7705B
CT3
SEN7
RESIN2
REF1 RST 6
RST 5
C4 100nC4 100n
R20R20
Microprocessor
68000CC
Microprocessor
68000CC
CLK15VPA23
IPL027IPL126IPL225
BGACK12BR13
DTACK10 BERR24
FC030FC129FC228
BG11VMA21E22
HALT19RESET20AS6UDS7LDS8R/W9
A1 32A2 33A3 34A4 35A5 36A6 37A7 38A8 39A9 40
A10 41A11 42A12 43A13 44A14 45A15 46A16 47A17 48A18 49A19 50A20 51A21 53A22 54A23 55
D0 5D1 4D2 3D3 2D4 1D5 68D6 67D7 66D8 65D9 64
D10 63D11 62D12 61D13 60D14 59D15 58
NMI B
74LS03
NMI B
74LS03
4
56
Adressedekoder
22CV10A
Adressedekoder
22CV10AI/CLK1
ROM1* 14ROM2* 15RAM1* 16RAM2* 17ACIA1* 18ACIA2* 19
TX* 20RX* 21WE* 22
I/O 23
A232A223A214A205A196A187AS*8LDS*9R/W*10UDS*11I13
SW2
NMI knap
SW2
NMI knap
ACIA-PEEL
22CV10A
ACIA-PEEL
22CV10AR/W*1
WE* 14D0 15
OEout* 16OEin* 17VPA* 18CS1* 19CS2* 20WR* 21RD* 22I/O 23
VMA*2LDS*3ACIA1*4ACIA2*5IRQ5*6IRQ7*7IACK5*8IACK7*9Rx*10Tx*11AS*13
R14R14
C1
100n
C1
100n
C8
100n
C8
100n
C3 100nC3 100n
+-
5 VVcc+
-5 VVcc
R42R42 R21R21
R34R34
C_t1
47p
C_t1
47p
![Page 138: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/138.jpg)
Appendiks KPlaceringsdiagram
125
![Page 139: Deltagere - kekker.dkog Elektroteknik ved Institut for Elektroniske Systemer på Aalborg Universitet i perioden fra 1. februar 2006 til og med 29. maj 2006. Formålet med projektforløbet](https://reader036.vdocuments.net/reader036/viewer/2022071610/61493fb3080bfa6260147d25/html5/thumbnails/139.jpg)
AD
R.D
EC
RA
M LO
WER
RA
M U
PPER
RO
M LO
WER
RO
M U
PPER
USER
AC
IA
TS2 AC
IA
USER
STIK
NMI IPL IACK FUNC.
TS2
STIK
RS232
AC
IA PEEL DIVIDER
2,4 MHz
C7
CLK
JMP*
NM
IKN
AP
R14 R13
R35
BN
C
SIKR
ING
+5 V
0 V
-15 V
0 V
+15 V
PULL-UP 2*
AD
C
8 MH
z
C2 RESET
C_T
R2
RD
1*
MC
68HC
000
C_T1
R33R
30
DELAY
0 V+5 V
R41
PULL-UP 1*
C-R
S232*
C_A1
C_A3 C_A4
C_A2
INT timer
R41
TX PEEL
ON OFF
TX JM
P
MODTAGER MODUL
SENDER MODUL
C_A5 C_A6
RESET K
NA
P Figur K.1: Placeringsdiagram
PULL-UP 1*
PULL-UP 2*
RD
1*
CLK
JMP*
307,2 kHz 153,6 kHz
76,8 kHz 38,4 kHz 19,2 kHz
9,6 kHz
C-R
S232*
R1
R34
R18
R26
R17
R20
R22
R23
R24
R21
R19
R12
R11
R10
R9
R7
R5
R8
R16
D2 D1 R3 R4
C3 C4 C6 C5
Figur K.2: Placeringsdiagram for komponenter