Titel: Indendørs positioneringssystem. Synopsis: Tema: Mikrodatamatsystemer. Projektperiode: E4, forårssemesteret 2006. Projektgruppe: 06gr414



Relaterede dokumenter
0.1 Modultest af hardware

Det Teknisk-Naturvidenskabelige Fakultet Aalborg Universitet

Indhold. I Design 4. 3 Mikroprocessersystem-hardware Motorola Krav til modul... 18

2. De 7 signaler skal kodes til en 3-bit kode. Enkodningen skal prioriteres som beskrevet i afsnit?? på side??.

Egenskaber for ROM/RAM

Detter dokument er kun til intern brug og klassificeret som strengt fortroligt. Forfatteren tager forbehold for alle fejl og mangler.

Der er derfor, for at alle kan sende, kun tilladt, at sende intermitterende. Altså korte pakker. ( Dette skal dog verificeres!!)

Det Teknisk-Naturvidenskabelige Fakultet

Projekt. Analog Effektforstærker.

Journal JTAG: Udarbejde af: Benjamin Grydehøj I samarbejde med PDA Projektgruppen. Elektronikteknologafdelingen på Erhvervsakademi Fyn.

5. systemet skal indeholde 2 stk 1 Mbit(8 bit ROM implementeret som flash memory.

Institut for elektroniske systemer

Operation Manual SMS Air Conditioner Remote Controller Model No.: SR-001

Hardware dokumentation Skrevet af. Gruppen. Version 1.0

AVR MP Ingeniørhøjskolen i Århus Michael Kaalund

2x50 ETHERNET MODUL. RS485 slave med Ethernet-IP. Gælder for: Program nr.: AUXSLAVE v1 Dokument nr.: 0422md2x50-2v1 Dato:

Arduino Programmering

GSM SMS Modem MODEL: SA RTU-1 V1.01

Logik Rapport - Alarm. Klaus Jørgensen Itet. 1a. Klaus Jørgensen & Ole Rud 9/ Vejledere: PSS & SKH

Microcontroller, Arduino

Metal Detektor. HF Valgfag. Rapport.

Projekt - RoboNet Del Journal.

3. Computerens opbygning.

Analog Øvelser. Version. A.1 Afladning af kondensator. Opbyg følgende kredsløb: U TL = 70 % L TL = 50 %

Indholdsfortegnelse:

Varenr.: højre venstre º højre med coating º venstre med coating

Klimaovervågningssystem

Installationsmanual. 2 Installering Installering SMS sender Installering PSTN/GSM sender Installering PSTN GSM konverter...

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi C Opgave: Brev til Sigurd Lære: John Austin Side 1 af 13 Dato:

Kravspecifikation For. Gruppen

\ \ Computerens Anatomi / /

Selektro CCM App. Brugermanual. Selektro CCM App Brugermanual DK. Selektro A/S, Erhvervsvej 29-35, DK-9632 Møldrup. Copyright Selektro A/S 2017

Begrænsningen ligger normalt i tre forhold: Lagerstørrelse Antal indgangsenheder Antal udgangsenheder

Lyskryds. Thomas Olsson Søren Guldbrand Pedersen. Og der blev lys!

Fag: Projekt E1PRJ1 Emne: Kravspecifikation Softdrink-Automat Gruppe: 6 Dato: 10. april 2003 Medlemmer: Benjamin Sørensen, Joanna Christensen, Jacob

Projekt - RoboNet Del Journal.

Computer Literacy. En stationær bordmodel. En Bærbar Notebook, Labtop, Slæbbar, Blærebar mm.

Øvelse. Øvelse. D.1 CMOS-øvelse. Under øvelsen laves notater, som senere bruges i den efterfølgende journal! Opgave 1:

Svendeprøve Projekt Tyveri alarm

SSI GSM PORT kontrol brugervejledning. SSI GSM PORT brugervejledning V1.2

WT-1011RC Programmer User Guide

Enes Kücükavci Roskilde Tekniske Gymnasium Mathias Turac Informationsteknolog B Vejleder: Karl Bjranasson Programmering C

Microcontroller, Arduino

WT-1011RC Programmer User Guide

Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1

Indhold. I Design 3. Elektronik og elektroteknik Aalborg Universitet

Lærer nye styresystemer Installerer programmer som kun kan bruges i ældre versioner

Seriel kommunikation RS232 / RS485

Dansk El-montage manual Portautomatik

QUICKVEJLEDNING til Piccolo Light

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0

HTX, RTG. Rumlige Figurer. Matematik og programmering

Digital fler-bruger telefonsvarer. P4 Projekt Gruppe 413 Institut for Elektroniske Systemer Aalborg Universitet Den

ELCANIC A/S. ENERGY METER Type ENG110. Version Inkl. PC program: ENG110. Version Betjeningsvejledning

SPIDER Quick guide. DATO: August 2017 FORHANDLER: WASYS A/S. Langebjergvænget Roskilde

Titel: Digital Diktafon Tema: Mikrodatamatsystemer Projektperiode: 4/2 29/5, Projektgruppe: 412 Deltagere: Synopsis:

Datamaters arkitektur og programmering

MCE9637 DeviceNet Modul

I 2 C BUSSEN KØRER MED ARDUINO IND I FORÅRET

System Arkitektur og Integration

Brugermanual til System 2000

COMPUTER ANATOMI klasse 23. FEBRUAR 2015 HTX - ROSKILDE

QUICK START Updated:

Updater KINO. Opsætning og installation

DiSEqC-Positioner. Best. nr. HN4892 (Brugsanvisnings nr. 361)

uprocessorens hardware

Computerens Anatomi. Af Martin Arnetoft

Operation Manual SMS Air Conditioner Remote Controller Model No.: SR-001

1.1 Indledning. Features: Højintensitet LED-display. Fleksibel forsyning (12-45V). Kan placeres op til 100m fra controlleren.

MCE2040 SERIEL KOMMUNIKATIONSMODUL

Sider og segmenter. dopsys 1

Bilbus. P4 projekt, AAU, Elektronik og elektroteknik

Secure O matic. Gruppe 5 2. SEMESTERPROJEKT. Udgave. Testspecifikation

Sådan virker og opretter du en TIO

Niveauer af abstrakte maskiner

DME Bootstrap Version 1.4x

Indholdsfortegnelse :

Opgaver - PLC - analogteknik - forbindelsesteknik...3 Opgaver - PLC - analogteknik - programmering...9

MiniPlex-41USB NMEA-0183 multiplexer Betjeningsvejledning

QUICK START Updated: 18. Febr. 2014

Delta Elektronik A/S - AKD

Hvad skal du vide for at bygge din egen computer?

CANSAT & ARDUINO step by step

SSI-9001 IP65. Installations vejledning. SSIHuset v/svane Electronic ApS. GSM fjern kontrol og alarm system

MultiProgrammer Manual

Eksamens spørgsmål i Teknologi (Digital) 3. Semester (i)

Gateway MP til Modbus RTU. Alle BELIMO motorer med MP-Bus kan tilsluttes til MP-siden af UK24MOD. Interface MP / Modbus RTU

Intro til AVR. Mads Pedersen, OZ6HR

Digital positioner type RE 3446

WEA-Base Brugervejledning til vejetransmitter

Bias Reducing Operating System - BROS -

Brugervejledning. ComX brugervejledning version 4.1

KOMPONENT BESKRIVELSE

Intelligent afstandsmåler. Gruppe 415

DCC digital dekoder til magnetiske produkter


Interrupt - Arduino. Programmering for begyndere Brug af Arduino. Kursusaften 6 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK

Modbus data modellen er opbygget af fire primære data typer. I nedenstående skema er en kort oversigt over disse.

Installationsmanual SuperSail Marine Alarm Marine Alarm Wireless

Transkript:

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 Aalborg Universitet Elektronik og Elektroteknik Fredrik Bajers Vej 5, Postboks 159 DK-9100 Aalborg Tlf. (+45) 9635 8080 http://www.aau.dk Synopsis: Dette projekt omhandler en del af et indendørs positioneringssystem, som via infrarøde signaler muliggør, at en mobilenhed kan udregne sin position i et rum. I dette projekt konstrueres en vægenhed, som skal modtage og sende de infrarøde signaler fra og til en mobilenhed. Vægenheden konstrueres bl.a. med det formål, at eftervise princippet med at benytte et mikrodatamatsystem til at genkende et serielt signal og sende et serielt svarsignal til brug ved positionsbestemmelse. Vægenheden er baseret på et minimumssystem med en Motorola 68000 processor. Dertil er der konstrueret moduler, der kan modtage og sende infrarøde signaler. Der er skrevet software til vægenheden, der kan genkende et bestemt signal før der udsendes et svarsignal efter en bestemt tid. Det er desuden muligt via software at ændre følgende parametre i vægenheden vha. en RS232 forbindelse og en pc: signalet der skal svares på, signalet der skal sendes samt tiden der ventes fra et signal er genkendt, til et svar udsendes. Vægenheden er designet med udgangspunkt i de primære brugerkrav, og overholder disse. Dermed kan vægenheden skelne forskellige signaler fra hinanden og udsende et bestemt svarsignal efter en bestemt tid. Derimod er de sekundære brugerkrav om virkeområde indenfor 0,5 til 10 m ikke overholdt, hvilket skyldes at de konstruerede modtager- og sendermoduler ikke tillader, at afstanden mellem vægenheden og mobilenheden er større end ca. 30 cm. Videreudvikling af vægenheden kan indebære at designe sender- og modtagermoduler efter at kunne overholde de sekundære brugerkrav, samt ændre softwaren således, at der tillades støj i det modtagne signal. Rapportens indhold er frit tilgængeligt, men offentliggørelse (med kildeangivelse) må kun ske efter aftale med forfatterne.

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 Aalborg Universitet Elektronik og Elektroteknik Fredrik Bajers Vej 5, Postboks 159 DK-9100 Aalborg Tlf. (+45) 9635 8080 http://www.aau.dk Abstract: This report deals with a part of an indoor positioning system. It allows for a mobile unit to calculate its position in a room by use of infrared signals. In this report the development of a wall unit for such a system will be treated. The wall unit must detect and verify an infrared signal, and then wait a given time before it responds by transmitting an infrared signal to the mobile unit. The wall unit is primarily developed to demonstrate that a microprocessor can be used to verify a serial signal and respond by transmitting another serial signal that can be used by the mobile unit to determine its position. The wall unit is based on a Motorola 68000 microprocessor, to which there is designed additional modules that enables the wall unit to receive and transmit infrared signals. There has been written software that allows for recognizing a certain signal before a response signal is transmitted after a preset time. Furthermore it s possible to change what signal the wall unit shall respond to, what signal it shall transmit back to the mobile unit and the time it must wait before the response is transmitted. This feature is incorporated with a RS232 connection. Design of the wall unit is based on keeping the primary user demands, which contains the ability to discern signals and respond appropriately by transmitting a response signal after a chosen time when a correct signal is detected. The secondary user demands that state the system must be functional from 0.5 m to 10 m are not meet. With the used transmitter and receiver, it does not allow for signals to be transmitted and received at a distance greater then 30 cm. Further development of the wall unit might contain designing better transmitter and receiver u- nits to meet the secondary user demands, and also changing the software to allow for a certain amount of noise in the received signal. The content of this report is freely accessible, though publication (with reference) may only occur after permission from the authors.

Forord Denne rapport er udfærdiget på 4. semester af projektgruppe 06gr414 på retningen Elektronik og 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 Elektronik- og elektrotekniksektoren: 1. At give viden om systembegrebet, herunder metoder på anvendelsesniveau til nedbrydning af systemer i delsystemer og forståelse for metoder til beskrivelse af systemer. 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 og begrænsninger. 3. At give forståelse for grundlæggende begreber for datamaters arkitektur. 4. At give viden om programmelsystemer, herunder operativsystemer, udviklingsprogrammel 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 af Ph.D. studerende Henrik Vie Christensen, v/ Inst. for elektroniske systemer, Aalborg Universitet. Læsevejledning Aktivt lave signaler angives med en linie over signalet eller benets navn. For eksempel angives det aktivt lave signal CS i rapporten med CS. I diagramtegninger vil der stå RESET*, hvilket er det samme som RESET. Ligeledes vil der på diagramtegninger kunne stå C_P, hvilket i teksten vil være skrevet som C P. Hexadecimaltal betegnes med et $ foran. Ved angivelse af lagerstørrelse skrives 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 Design 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 filnavnet til pågældende bilag. For eksempel (/hardware/ir testsender/data.hex). v

Brian Thorarins Jensen Jens Karsten Nedergaard Boll Christian Fink Petersen Mads Kronborg Agesen Søren V. Schjødt Kristensen

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

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

INDHOLD G PEEL kode 95 H Assembler kode 101 I Komponentliste 121 J Diagram 123 K Placeringsdiagram 125 ix

Indhold x

Kapitel 1 Indledning Til positionsbestemmelse anvendes ofte GPS. Dette har dog visse begrænsninger ved f.eks. indendørs brug grundet problemer med at opnå tilstrækkeligt signal. Ydermere er systemets nøjagtighed en begrænsning. Den typiske nøjagtighed for et civilt system er i størrelsen meter, hvilket ikke vil være tilstrækkeligt til indendørs brug [Statsgeodæt Per Knudsen & Landinspektør Casper Jepsen, 2000]. Et system til indendørs positionsbestemmelse er anvendeligt i mange sammenhænge, og ønskes af Institut for Elektroniske Systemer (IES) ved Aalborg Universitet (AAU) fremstillet. Dette projekt omhandler udviklingen af en vægenhed, som skal indgå i et indendørs positioneringssystem. Vægenheden udvikles med henblik på at det samlede indendørs positioneringssystem, som minimum 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 senderog modtagerenhed er placeret på en mobil enhed, der har brug for at kende sin position. På væggene i rummet monteres et antal vægenheder, der indeholder sender og modtager. Mobilenheden udsender et infrarødt signal, der opfanges af enhederne på væggene. Såfremt disse signaler verificeres i vægenheden, returneres et forudbestemt svarsignal til mobilenheden. I både vægenhederne og i mobilenheden skal de modtagne signaler verificeres iht. et referencesignal, således enhederne ikke aktiveres fejlagtigt af støj fra f.eks. en fjernbetjening eller andre enheder, der udsender infrarøde signaler. I vægenheden skal det være muligt, at indstille en ventetid der angiver hvor lang 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 modtager svar fra flere på en gang. Princippet i selve positionsbestemmelsen er, at mobilenheden beregner vinklen mellem dens retning, og de signaler den modtager fra vægenhederne, som illustreret på Figur 1.1. Vinklen kan bestemmes ved, at mobilenheden har påmonteret et antal modtagere og ud fra signalstyrken fra hver af modtagerne, kan vinklen bestemmes. Der er fra IES side stillet krav om, at vægenhederne ikke skal være forbundet elektrisk, da systemet skal være mobilt og let at installere. Da der ligeledes er ønske om senere, at kunne udbygge systemet og optimere det til givne omgivelser, skal signalerne der accepteres som værende 1

1 Indledning Mobilenhed Retning Signal Vægenhed 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 at anvende systemet uafhængigt af enhver anden installation. En sådan anvendelsesmulighed kunne være til selvkørende gulvvaskerobotter i f.eks. industrihaller eller gymnastiksale. Samme princip vil kunne anvendes til f.eks. selvkørende støvsugere i private hjem. 2

Kapitel 2 Kravspecifikation Der udføres en analyse baseret på SPU-UML med henblik på at kunne opstille en kravspecifikation og accepttest. I denne analyse beskrives vægenheden som et samlet system. Først beskrives vægenhedens funktionalitet, og de enkelte funktioner opdeles i Use Cases. Derefter opstilles en kravspecifikation 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 Cases for systemets hovedfunktioner fås et indblik i hvilke krav der kan opstilles. På Figur 2.1 ses en illustration af systemet og dets funktioner. Til hver funktion er der knyttet en aktør. Disse vil blive 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 beskrives herefter. 3

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. referencesignalet, udsendes et svarsignal efter den angivne ventetid. Denne ventetid sikrer, at flere vægenheder ikke svarer mobilenheden samtidig, hvilket medfører en nem adskillelse af svarsignalerne. Er de enkelte vægenheders ventetider kendt af mobilenheden, ved den hvornår den skal forvente 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 et svarsignal, og der afventes et nyt signal. For at overskueliggøre Use Casen modtag/send signal laves et flowdiagram over forløbet, som kan ses På Figur 2.2. Det kan endvidere ses, hvor undtagelsen træder ind. Modtag signal Triggersignal Databehandling Signal genkendt? Nej Mobilenhed Ja Vent Svarsignal Afsend signal Figur 2.2: Flowdiagram over Use Casen send/modtag signal med undtagelse 4

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 der sammenlignes med, svarsignalet der sendes ud, samt ventetiden der går fra at der er modtaget et korrekt triggersignal, til der sendes et svarsignal. Det skal desuden være muligt at udlæse parametrene 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 i systemet. 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ægenhederne. Mobilenheden kan være en selvkørende robot eller lignende. Mobilenheden udsender et bestemt 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. Brugeren kan ændre triggersignal, svarsignal samt ventetiden mellem et korrekt triggersignal modtages til et svarsignal udsendes. 2.2 Struktur for kravspecifikation Kravspecifikationen opstilles ud fra de krav, som brugeren af det færdige produkt stiller. Brugeren er oftest kunden til produktet, men i dette projekt er det IES. Med disse krav kan der udarbejdes krav til systemet på et mere teknisk niveau. Dette niveau kaldes systemkrav og opdeles i hardware og software. En illustration over strukturen af kravspecifikation kan ses på Figur 2.3. 5

2 Kravspecifikation Brugerkrav Systemkrav Hardware Software Figur 2.3: Illustration af kravspecifikationens opbygning Projektforslagsstilleren angiver brugerkravene og ud fra disse opstilles systemkrav til hhv. hardog 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ære brugerkrav, 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, at der f.eks. ikke er krav til afstand og vinkel mellem mobil- og vægenhed. De primære brugerkrav opstilles 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 et triggersignal 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 at en bit bestående af 32 samples skal betegnes som en logisk høj, skal de tre første samples være lave, de næste tre skal være høje, og de resterende 26 samples skal være lave. En lav bit skal bestå af 32 lave samples. 6

2.3. Brugerkrav 1 bit 32 samples 512 samples = 16 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ære mulig 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 svarsignal udsendes 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 konstant sendestyrke, 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 sikrer at svarsignalet kan modtages, af en modtager svarende til den der sidder på vægenheden, i en afstand på 0,5 m til 10 m 7

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 med tilhø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 eller et valg fra gruppens side, GPV. 2.4.1 Hardware Kravene til hardware er opdelt i krav til hhv. senderen og modtageren. Sender- og modtagermodulerne betragtes således, at de indeholder den nødvendige hardware til at tilslutte modulerne direkte 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 Formel 2.1. ( 1 H = (9600 Hz) 1 2 512 samples) = 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 med samme 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. 8 1. Databehandling SSK01: Softwaren skal sample et signal bestående af 512 samples fra den infrarøde modtager (PBK05) SSK02: Et korrekt modtaget triggersignal skal kunne genkendes og skelnes fra andre signaler. Ved en høj bit i et signal tillades at hhv. første eller sidste høje sample modtages som en lav (PBK02)

2.4. Systemkrav SSK03: Databehandlingstiden per sample må ikke overskride periodetiden af samplingsfrekvensen. 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 ved en ventetid på 512 samples (SBK03) SSK05: Svarsignalet skal være i overensstemmelse med signalkodningen. Desuden skal signalet der sendes være i overensstemmelse med det ønskede svarsignal. Der tillades en afvigelse 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 samt ventetid, skal være mulig via et konsolprogram (PBK07) Accepttestspecifikationen kan ses i Appendiks A Accepttestspecifikation på side 73. 9

2 Kravspecifikation 10

Kapitel 3 Design af vægenhed I dette kapitel beskrives systemets hardwareblokke, mht. deres funktioner og integration i den samlede vægenhed. 3.1 Systemoversigt Modtagermodul IR-modtager Forstærker A/D-konverter Mikrodatamat 68K processor Seriel kommunikation IRsender Adressedekoder Lager Sendermodul På Figur 3.1 ses en oversigt over hardwareblokkene i en vægenhed til det indendørs positioneringssystem. Driver 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 det til et analogt signal. Det analoge signal bliver forstærket og konverteret til et digitalt signal. Det digitale signal indlæses af mikrodatamaten til videre databehandling. 11

3 Design af vægenhed Mikrodatamatsystemet består af hukommelse, adressedekoder, seriel kommunikation og en processor. Hukommelsen anvendes til at lagre software og data. Adressedekoderen styrer hvilke enheder, 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 kommunikere med TS2 debugger/monitor, og den anden bruges til konfiguration af vægenheden. Der benyttes to forbindelser, idet at der under en testproces således vil være mulighed for at benytte begge forbindelser samtidigt, og på den måde fejlfinde i softwaren. Processoren foretager alle nødvendige beregninger på de modtagne data. Mikrodatamatens funktion er at lagre det modtagne triggersignal fra modtagermodulet, og sammenligne signalet med et referencesignal. Såfremt det modtagne signal er magen til referencesignalet, udsendes et svarsignal vha. sendermodulet. Sendermodulet består af en driver og en IR-sender. Mikrodatamaten skal styre hvornår IRsenderen skal sende, mens adressedekoderen genererer et signal til driveren, når processoren skriver 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 kun konstrueres en prototype af en vægenhed. Disse aspekter samt de sekundære brugerkrav vil skulle 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

Kapitel 4 Design af mikrodatamat I dette kapitel beskrives udviklingen af et minimums mikrodatamatsystem baseret på en Motorola 68000 processoren. 4.1 Motorola 68000 processor I dette afsnit beskrives Motorola 68000 processorens benforbindelser, og hvorledes der genereres en 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 bengrupperingerne 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

4 Design af mikrodatamat VCC AS* GND R/W* Clock Systemben UDS* Reset LDS* Halt Ben til styring af hukommelse og eksterne enheder DTACK* E VMA* VPA* A1-A23 D0-D15 MC68HC000 FC0-FC2 IPL0*-IPL2* BERR* BR* BG* Specialben BGACK* Figur 4.1: Oversigt over benforbindelser på Motorola 68000 processor. Modificeret figur fra [Clements, 1997] Systemben er følgende: Power supply: Benene V CC og GND er til spændingsforsyningen på 5 V og 0 V til processoren. Clock: TTL-kompatibelt signal der angiver processorens clockhastighed. Clockfrekvensen kan dermed 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åledes at forsyningsspændingerne har tid til at stabilisere sig. Når processoren kører, og den ønskes genstartet skal Reset og Halt være aktive i mindst 10 clockcykler. Resetbenet fungerer også som et 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 ved debugging af program. Halt benet kan ligesom resetknappen også virke som output. Hvis hukommelsen ikke svarer korrekt på en read- eller write cycle, så stopper processoren og sætter Halt benet. 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 der skrives en byte er det enten LDS eller UDS der er aktiv. Hvis LDS er aktiv benyttes ben D 0 til D 7, og hvis UDS er aktiv så benyttes ben D 8 til D 15. 14

4.1. Motorola 68000 processor Adressebus: Benene A 1 til A 23 anvendes til processorens 24 bit adressebus. LDS og UDS kan regnes som A 0, hvilket giver at 2 24 16 bit ord kan adresseres. Adressebussen benyttes til at vælge hvor i hukommelsen, der skal skrives data til og læses data fra. Databus: Benene D 0 til D 15 anvendes til den 16 bit databus hvor data til og fra processoren transporteres. Tilgås et word bruges alle benene i databussen, men hvis der kun tilgås en byte, benyttes enten ben D 0 til D 7 eller ben D 8 til D 15. Ud over adresse- og databussen er der fem kontrolsignaler til at styre overførslen af data til og fra 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åfremt der læses fra hukommelsen er R/W høj, og hvis der skrives til hukommelsen er R/W lav. R/W er desuden høj når processoren hverken skriver eller læser i hukommelsen, hvilket vil sige at R/W kun er lav når der skrives til hukommelsen. R/W UDS LDS Operation D 08 -D 15 D 00 -D 07 0 1 1 Ingen operation Ugyldig Ugyldig 0 1 0 Skriv nedre byte D 00 -D 07 Gyldige data 0 0 1 Skriv øvre byte Gyldige data D 08 -D 15 0 0 0 Skriv word Gyldige data Gyldige data 1 1 1 Ingen operation Ugyldige Ugyldige 1 1 0 Læs nedre byte Ugyldige Gyldige data 1 0 1 Læs øvre byte Gyldige data Ugyldige 1 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 eller gemmes data. Hvis DTACK er lav angiver det, at data på databussen er gyldig, og at processoren kan 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 enhed melder, at data er klar. VPA: Valid Peripheral Address. Signal fra perifere enheder der angiver, at processoren har adresseret 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 Motorola 6800-enheder. En clockcycle svarer til 10 af processorens clockcycles. 15

4 Design af mikrodatamat Specialben er følgende: Disse ben kan inddeles i fire undergrupper: Bus fejlkontrol Gør det muligt for processoren at arbejde videre selvom der opstår en fejl i hukommelsessystemet Busstyring Gør det muligt at flere processorer deler adresse- og databussen Funktionsudgange Angiver hvilken type operation processoren udfører, og kan bruges til at kontrollere adgangen til hukommelsen Interruptstyring Gør det muligt for en ekstern enhed at bede om processorens opmærksomhed, og angive hvilken 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 er gået noget galt med den aktuelle bus cycle. Dermed kan processoren enten forsøge at gentage den fejlagtige bus cycle eller udføre en undtagelse og dermed lade softwaren løse problemet. Dette ben anvendes ikke i dette projekt, hvorfor dette tilsluttes til V CC via en 10 kω modstand. 2. Busstyring: Benene BR, Bus Request, og BG, Bus Grant, muliggør at to eller flere processorer kan dele den samme data- og adressebus. Den processor der har kontrollen over data- og adressebus modtager en forespørgsel via BR benet fra den processor, der ønsker at tilgå data- og adressebus. Derefter afgiver den første processor kontrollen med data- og adressebus via BG benet. Dermed har processor to kontrol over de to busser, og melder dette tilbage via benet BGACK, Bus Grant ACKnowledge. Benene BR, BG og BGACK benyttes ikke i dette projekt, hvorfor disse tilsluttes til V CC 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 tre ben benyttes i dette projekt kun i forbindelse med Interrupt Acknowledge, og kobles til en 3 til 8-dekoder for nemmere at kunne overvåge processorens status ved evt. fejlsøgning. Statusinformation er f.eks. information om, hvorvidt processoren arbejder med data eller programmel. I Tabel 4.2 ses en oversigt over betydningen af de tre funktionsudgange. De udefinerede, reserverede tilstande er reserverede til senere udvidelser i nye udgaver af Motorola 68000 processoren. Det ses, at FC2 angiver om processoren arbejder i user mode eller supervisor mode. Benet FC1 angiver at processoren arbejder i program mode, og FC0 angiver at processoren 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

4.1. Motorola 68000 processor FC2 FC1 FC0 Clock cycle type 0 0 0 Udefineret, reserveret 0 0 1 User data 0 1 0 User program 0 1 1 Udefineret, reserveret 1 0 0 Udefineret, reserveret 1 0 1 Supervisor data 1 1 0 Supervisor program 1 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 ikke omvendt. Ydermere kan processoren kun skifte fra user mode til supervisor mode hvis der sker en 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åfremt en perifer enhed ønsker processorens opmærksomhed, sender den et interrupt request. Der er tre interrupt request inputben, hvilket muliggør otte forskellige interrupts requests fra 0 til 7, men interrupt 0 benyttes ikke. En perifer enhed har typisk kun et ben til at angive den ønsker interrupt. 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 processoren. I processorens statusregister er der tre bits I0, I1 og I2, der angiver hvilken interruptniveau der behandles. Såfremt I 0 -I 2 er 5, behandles interrupt request 5 og interrupt requests med lavere prioritet ikke. Processoren sætter ydermere adressebenene A 1, A 2 og A 3 med tilsvarende kode som er på IPL-benene. De tre adresseben bliver dekodet i en 3 til 8-dekoder, og anvendes som niveaudekoder til interrupt behandling. 4.1.2 Generering af clock Processorens clockhastighed styres via ben 15 på processoren, hvor der tilsluttes en clockgenerator med den ønskede frekvens. I dette projekt vælges det at køre med 8 MHz clockfrekvens. Derfor tilsluttes 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. Mellem ben 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

4 Design af mikrodatamat V_CC 5 V 14 8 MCO1425B 1 7 C2 15 pf CLK 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 tilsluttes V CC. --- D:\Dokumenter\AAU\4. semester\gruppemappe\rapport\figur\prefigur\cpuclock.asc --- CT: Hvis TL7705 kredsen på SENSE benet registrerer, at forsyningsspændingen går under 3,6 V, går reset aktiv. Reset forbliver aktiv i en periode efter forsyningsspændingen er steget igen. Denne periode, t d, angives af en kondensator, der monteres mellem stel og benet CT på TL7705 kredsen. Perioden t d udregnes således ud fra databladet for TL7705 [Instruments, 2003]: t d = 1, 3 10 4 C t (4.1) Hvor t d angiver forsinkelsen i sekunder, og C t 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 i mindst 10 clock cycles, før processoren genstarter. 1,25 µs er mindre end de 100 ms hvor reset skal være aktiv ved opstart af processoren, og derfor dimensioneres kondensatoren der skal tilsluttes mellem benet CT og stel således, at reset benet er aktivt i 100 ms vha. Formel 4.1: t d = 1, 3 10 4 C t C t = t d 1, 3 10 4 C t = 100 10 3 s 1, 3 10 4 = 7, 7 µf (4.2) Denne værdi afrundes til 10 µf hvilket giver en ventetid, t d, 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 reset og aktivt højt reset signal. Motorola 68000 processoren har aktivt lavt reset signal, så derfor benyttes ben 5 på TL7705 kredsen, da det er aktivt lavt. Begge reset ben har open-collector udgang, og der skal derfor anvendes pull-up modstande. 18

4.2. Lager På Figur 4.3 ses et diagram over power-up-reset kredsløbet. VCC VCC VCC VCC R2 10 k C1 0,1 uf 1 2 5 V REF VCC 8 TL7705 RESIN* SENSE 7 VCC VCC D1 D R3 10 k Halt* Reset C_t 10 uf 3 CT RESET 6 4 GND RESET* 5 R1 10 k D2 D VCC R4 10 k Reset* 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 dette er angivet i databladet [Instruments, 2003]. Ben 2, RESIN, er tilsluttet en modstand og en resetkontakt, således processoren kan genstartes manuelt. Ben 3, CT, tilsluttes til stel via kondensatoren C t der bestemmer hvor lang tid, reset er aktiv. Størrelsen af denne kondensator er udregnet i Formel 4.2. Ben 4, GND, er tilsluttet stel. Ben 5, RESET, tilsluttes HALT og RESET på 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, V CC, 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, da dataene 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 skal bruge 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. TS2 debugger/monitor kræver 2 128kbit 8 EPROM eller Flash-RAM på adresserne $0-$1200. RAM til TS2 skal være på adresserne $40000-$40FFF. --- D:\Dokumenter\AAU\4. semester\gruppemappe\rapport\figur\prefigur\power-up-reset.asc --- 4.2.1 ROM - Read Only Memory ROM er et kombinations kredsløb med n indgange og b udgange, hvert input giver et bestemt output. 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 begge skal være aktive, når der skal læses fra ROM en. Nogle ROM kredse kan slettes, og programmeres 19

4 Design af mikrodatamat efter behov. En oversigt over forskellige ROM-typer ses i Tabel 4.3. Læse-cyklus angiver tiden fra der anmodes om data til data en er tilgængelig. Skrive-cyklus angiver tiden fra data en der skal 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 effektforbrug Mask ROM Bipolar < 100 ns - En skrivning, høj effektforbrug PROM Bipolar < 100 ns 10-50 µs/byte En skrivning, høj effektforbrug, ingen udgifter ved skrivning EPROM 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.000 skrivninger/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 benyttes derfor sjældent. PROM: Programmable Read-Only Memory. Gør det muligt for kunden selv at programmere sin ROM-kreds. EPROM: Erasable Programmable Read-Only Memory. En PROM hvor det er muligt at slette indholdet med ultra-violet lys, og derefter indlæse nye data. EEPROM: Electrically Erasable Programmable Read-Only Memory. Kan slettes elektrisk hvilket muliggør omprogrammering, mens den er implementeret i et system. ROM-kredse er dermed anvendelige, hvis der skal bruges data, som ikke skal ændres mens systemet kører. Men hvis der er behov for at gemme eller ændre data, mens et system kører, vil det typisk 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 af placeringen 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ære aktive, når der skal skrives til RAM en. Dermed kan data på databenene skrives til en bestemt adresse bestemt af adressebenene. Der er typisk to typer af RAM, statisk og dynamisk. Statisk RAM 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

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, da denne kreds er tilgængelig i laboratoriet og opfylder kravene. Kredsen har en læse- og skrivecyklus tid på 90 ns. Kredsen er designet til at kunne programmeres, implementeret i et mikrodatamatsystem, 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. V CC : Forsyning til kredsen og forbindes til 5 V med en afkoblingskondensator. V SS : 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 A 0 -A 18, databenene I/O 0 -I/O 7 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 styrelogik programmeres 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 er inddelt i tre hovedområder: Hukommelse for TS2 debugger/monitor, specifikt kode samt brugerlager (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 flere Input/Output-enheder. 21

$C00 000 $?????? $?????? $?????? $FFF FFF 4 Design af mikrodatamat $0 $800 000 $C00 000 $1 000 000 Memory COM I/O Figur 4.4: Tildeling af adresseområder 4.3.2 Hukommelse Af TS2 debugger/monitor $0 stilles $4 0000 en række $13 krav FFFFtil placering af hukommelse $7F FFFFsamt den ene kommunikationsforbindelse. TS2 debugger/monitor kræver, at der er ROM på adresserne $0 til $1200 FLASH samt at der forefindes RAM 1+2 ROM RAM1+2på adresserne fra $40000 til $40FFF. Dette medfører, at adresseområdet skal deles op i områder bestående af $40000 adresser, således alt ROM kan adresseres med samme CS. Et område bestående af $40000 adresser, giver 256 kb hukommelse. Den samlede mængde adresserbare hukommelse for en Motorola 68000 processoren er 16 Mb. Der skal derfor dekodes ned til en 1/64 af den samlede hukommelse. En opdeling i 64 områder kan opnås ved at dekode 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. Dermed dekodes på de 6 øverste adresseben (A 23 -A 18 ). n = log (64) log (2) (4.4) n = 6 (4.5) Som beskrevet i afsnit 4.2 Lager på side 19, anvendes to ROM-blokke af typen AM29F010, som hver 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 adresseres til 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 indeholde 4 Mbit ordnet som 512 k 8 bit. Disse placeres lige efter ROM-blokkene for at overholde kravet stillet 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 (A 23 -A 18 ), datastrobe (LDS/UDS) samt adressestrobe, AS, for at chipselect, CS, først genereres, når der er en gyldig adresse på adressebussen. I adresseområderne markeret som TS2 ACIA, Konfig. ACIA, ADC og IR driver forekommer spejling. I TS2 ACIA og Konfig. ACIA bruges 2 adresser i hver. Disse adresser spejles på de resterende adresser i området, da adressedekodningen ikke er fuldstændig. I adresseområderne ADC og IR driver, benyttes kun 1 adresse i hver. Dette giver spejling der betyder, at alle adresser i områderne vil aktivere hhv. ADC en eller IR driveren. 22

4.3. Adressedekodning UDS (D15-D8) LDS (D7-D0) 00 0000 03 FFFE ROM1 00 0001 03 FFFF ROM2 04 0000 07 FFFE 08 0000 0B FFFE RAM1 RAM1 04 0001 07 FFFF 08 0001 0B FFFF RAM2 RAM2 0C 0000 0F FFFE RAM1 0C 0001 0F FFFF RAM2 10 0000 13 FFFE 14 0000 RAM1 10 0001 13 FFFF 14 0001 RAM2 7F FFFE 80 0000 83 FFFE 84 0000 9F FFFE A0 0000 A3 FFFE A4 0000 7F FFFF 80 0001 83 FFFFTS2 D/M ACIA 84 0001 9F FFFF A0 0001 A3 FFFFKonfig. ACIA A4 0001 BF FFFE C0 0000 C3 FFFE C4 0000 DF FFFE E0 0000 E3 FFFE E4 0000 FF FFFE BF FFFF C0 0001 C3 FFFF C4 0001 DF FFFF E0 0001 E3 FFFF E4 0001 FF FFFF ADC IR driver Figur 4.5: Memorymap over processorens 16 Mb adresseområde (adresser er angivet i hex). De grå felter angiver ubenyttede områder der ikke adresseres. Dermed menes at der ikke chipselectes nogle kredse på disse adresser. De grå 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 blive placeret 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 adressedekoderen. RAM 1 adresser Processor adresser $ 0 0000 $ C0 0000 $ 3 FFFF $ 13 FFFE $ 4 0000 $ 04 0000 $ 7 FFFF $ BF FFFE 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 adresses placering i RAM en. På Figur 4.6 ses det ligeledes at processoren spænder over flere adresser end RAM1. Dette skyldes, at RAM1 kun ligger på de lige adresser i hukommelsen. Dette har ikke 23

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 sikre enten 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 perifere enheder. Ovennævnte genereres ud fra CPU ens asynkrone kontrolbus, hvor AS er lav ved gyldig adresse 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 Output AS R/W OE WE 0 0 1 0 0 1 0 1 1 0 1 1 1 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 den nedre del af databussen (D 0 -D 7 ), og adresseres vha. adressebenene samt LDS og AS. Udover ACIA-kredsene tilkobles I/O-enheder til kommunikation med sender- og modtagerkredslø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 kan ses af memorymappen, Figur 4.5. 4.3.4 PEEL kode for Adressedekoder Som beskrevet tidligere programmeres addressedekodningen i en PEEL kreds. Her opstilles de logiske udtryk på baggrund af det opstillede memorymap, der ses på Figur 4.5. Adressedekodningen opstilles i en tabel over adresseområder og adresseben, se Tabel 4.5. Ud fra Tabel 4.5 kan der opstilles følgende logiske ABEL 1 udtryk for generering af CS. ACIA1 i udtrykkene henviser til ACIA-kredsen, der bruges til TS2 debugger/monitor, mens ACIA2 henviser til ACIA-kredsen, der anvendes i forbindelse med konfiguration af systemet. 1 Advanced Boolean Expression Language - kodesprog til generering af kode til f.eks. PEEL kredse 24

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 0 ROM2 0 0 0 0 0 0 X 0 X 0 RAM1 0 0 0 0 0 1 X X 0 0 0 0 0 0 1 X X X 0 0 0 0 0 1 0 0 X X 0 0 RAM2 0 0 0 0 0 1 X 0 X 0 0 0 0 0 1 X X 0 X 0 0 0 0 1 0 0 X 0 X 0 TS2 ACIA 1 0 0 0 0 0 X 0 X 0 Konf. ACIA 1 0 1 0 0 0 X 0 X 0 IR Rx 1 1 0 0 0 0 X 0 X 0 IR 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 mens X angiver en don t care!rom1!rom2!ram1!ram2 =!A23 &!A22 &!A21 &!A20 &!A19 &!A18 &!UDS &!AS; =!A23 &!A22 &!A21 &!A20 &!A19 &!A18 &!LDS &!AS; =!A23 &!A22 &!A21 & ((!A20 &!A19 & A18) # (!A20 & A19) # (A20 &!A19 &!A18)) &!UDS &!AS; =!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 op til 22 input, hvoraf 10 kan anvendes som output. De 10 opstillede udtryk giver tilsammen 10 outputs 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 datakommunikation. Denne kommunikation sker gennem en RS232 forbindelse. Først beskrives RS232 25