Aalborg Universitet. E-Studienævnet. Synopsis. Fredrik Bajers Vej 7 DK-9220 Aalborg Øst Telefon

Størrelse: px
Starte visningen fra side:

Download "Aalborg Universitet. E-Studienævnet. Synopsis. Fredrik Bajers Vej 7 DK-9220 Aalborg Øst Telefon"

Transkript

1 Aalborg Universitet E-Studienævnet Fredrik Bajers Vej 7 DK-9220 Aalborg Øst Telefon Titel: Digital Diktafon Tema: Mikrodatamatsystemer Projektperiode: 3. februar maj 2003 Projektgruppe: E412 Gruppe medlemmer: Palle Ditlevsen Jakob Sandholt Klemmensen Martin Nygaard Kragelund Daniel Klokmose Nielsen Rasmus Stougaard Nielsen Claus Kousgaard Villumsen Vejleder: Flemming Christensen Publikationer: 9 Sider: 168 Afsluttet: 28. maj 2003 Forsidebillede: Synopsis Rapporten omhandler udarbejdelsen af en prototype på en digital diktafon, og indeholder en indledende analyse af problemstillingen og en efterfølgende kravspecifikation. Dernæst følger testspecifikationer og designdokumentation. Konstruktionen tager udgangspunkt i en Motorola CPU. Der opbygges et system bestående af lager, enheder til signalbehandling og seriel overførsel af lyddata, samt brugerinterface. Der designes og implementeres software indeholdende interruptrutiner til håndtering af perifære hardwareenheder. Navigering mellem forskellige tilstande, samt styring af lager er ligeledes implementeret i software. Under designet nedbrydes systemet i processer og moduler. Grænsefladerne mellem disse defineres og testes. Der udføres en accepttest på det samlede system, hvori det konstateres om den fremstillede prototype lever op til kravene udformet i kravspecifikationen. Accepttesten danner grundlag for den afsluttende konklusion.

2 .

3 Denne rapport er udarbejdet af projektgruppe 412 ved elektronikingeniørstudiets 4. semester, på Aalborg Universitet. Temaet for 4. semester er Mikrodatamatsystemer, og projektgruppen har i den forbindelse valgt at beskæftige sig med projektforslaget: Digital Diktafon med dockingstation. Denne rapport dokumenterer gruppens bud på en besvarelse af problemstillingen i dette projektforslag. I kapitel 1 foretages en analyse af diktafonens formodede anvendelse i forbindelse med stuegangen på et hospital. På baggrund af denne analyse udarbejdes en kravspecifikation, hvor der stilles krav til systemets ydelse og funktionalitet. Der foretages desuden en række afgrænsninger, da det fremstillede produkt er en prototype og ikke et færdigt produkt. Ud fra de opstillede krav udfærdiges i kapitel 3 en accepttest specifikation. Disse udføres på den færdige prototype, for at kontrollere, at de opstillede krav overholdes. Førend der gåes videre med det principielle design af systemet og de tilhørende perifære enheder udarbejdes en udviklingsplatform i form af et minimumsystem. Dette er beskrevet i kapitel 4. I kapitel 5 indeles systemet i processer og grænsefladerne mellem disse defineres. Kapitel 6 indeholder krav til de perifære enheder, som dernæst designes i kapitel 7. De nødvendige software-moduler defineres i kapitel 8 og der skrives pseudokode til disse i kapitel 9. Test af de forskellige processer og moduler designes i hovedrapporten, mens resultaterne forefindes i målerapporter inden appendiks. Til at håndtere lydfiler på PC-siden anvendes Sound Exchange, der er et open source program hentet fra internettet, se [Open Source 25. maj 2003]. Kommunikationen med PC ens COM-port varetages af en række systemkommandoer. Disse er implementeret ud fra [Sweet N.d.]. Sound Exchange programmet, systemkommandoer samt kilden [Sweet N.d.] er vedlagt på CD-ROM. Tal, der forudgåes af et tegn, skal forståes som hexadecimal-værdier, mens binære tal markeres med et undersænket b efter tallet. Når et signal omtales som sat befinder signalet sig på dets aktive niveau, hvad enten dette er højt eller lavt. Aktivt lave signaler markeres som SIGNAL. Fodnoter nummereres fortløbende i hvert kapitel. Litteraturhenvisninger er skrevet som [Tanenbaum 1999, sidetal], og er ligeledes i litteraturlisten sorteret efter forfatterens efternavn. Aalborg Universitet, 28. maj Palle Ditlevsen Jakob Sandholt Klemmensen Martin Nygaard Kragelund Daniel Klokmose Nielsen Rasmus Stougaard Nielsen Claus Kousgaard Villumsen I

4 .

5 1 Analyse Situationsbeskrivelse Nye ideer Systemdefinitioner Kravspecifikation Formål Generel beskrivelse De specifikke krav Eksterne grænseflade-krav Krav til systemets ydelse Accepttestspecifikation Formål Funktionstest Responstid Lagerplads Talegenkendelighed Overførselshastighed Energiforbrug Minimumsystem Krav til Minimumsystem Inddeling af Adresserum Adresse dekodning Benopsætning af Motorola Den serielle forbindelse Systemdesign Systemoversigt Procesopdeling Procesgrænseflader Hardwarestruktur Forudsætninger IRQ-Håndtering BrugerInput Udlæsning Ur Overførsel Lydindgang III

6 INDHOLD 6.8 Lydudgang IRQ-Enable Adressering af perifære enheder Hardwaremoduler IRQ-Håndtering Knap Modul Display Hardware Ur ACIA USER Mikrofon og Forstærker Design af Lydindgang ADC modul Højttaler & Forstærker D/A-konvertering IRQ-Enable Softwareprocesser Initialisering af systemet Modulopdeling af processer Brugerinput Udlæsning Ur Overførsel Lydindgang Lydudgang Tilstandsstyring Dataflowstyring Softwaremoduler Moduldesign Brugerinput Udlæsning Ur Overførsel Lydindgang Lydudgang Tilstandsstyring Hent KnapInput Opdater Tilstand Opdater OptagelsesDB Hent ID Opdater UdlæsningsReg Dataflowstyring Lager Procestest Forudsætninger Brugerinput Udlæsning IV

7 INDHOLD 10.4 Ur Overførsel Lydindgang Lydudgang Tilstandsstyring Dataflowstyring Konklusion 125 Litteratur 127 Testrapport 129 I Hardwaremoduler 131 I.1 Modultest af IRQ-Håndtering I.2 Modultest af display I.3 Modultest af HW-ur I.4 Modultest af Mikrofon og Forstærker I.5 Modultest af Højttaler og Forstærker modul I.6 Modultest af IRQ-Enable II Softwaremoduler 143 II.1 Modultest af Hent KnapInput II.2 Modultest af Opdater OpdtagelsesDB II.3 Modultest af HentID II.4 Modultest af Opdater UdlæsningsReg II.5 Modultest af Dataflowstyring III Processer 147 III.1 Procestest af Brugerinput III.2 Procestest af Udlæsning III.3 Procestest af Ur III.4 Procestest af Tilstandsstyring III.5 Accepttest IV Halt-Reset kredsløb 155 Appendiks 158 A ADC B Timing 161 B.1 RAM og ROM C 3. ordens filter 167 V

8 .

9 1KAPITEL Formålet med denne del af rapporten er, at organisere udviklingsprocessen af en digital diktafon. Der tages udgangspunkt i informationsudvekslingen mellem læge og sekretær. Overvejelser om situationsbeskrivelsen er foretaget ud fra gruppens formodninger om den generelle situation. Ligeledes er brugernes ønsker til produktet fremsat af gruppens medlemmer. Dette udgangspunkt betragtes som tilstrækkeligt, da formålet med dette dokument begrænser sig til at opstille en række krav til produktet, som senere kan testes. 1.1 Situationsbeskrivelse Den tænkte situation, analysen tager udgangspunkt i, foregår på et sygehus. Her forestiller vi os, at lægens daglige rutine består af stuegang efterfulgt af en rapportering til en sekretær, som skriver informationerne ind i patientens journal. Figur 1.1 viser disse relationer. Diktafon ➃ ➂ ➅ Datamat ➄ Læge ➈ Sekretær ➁ Journal ➇ ➆ Sygeplejeske Patient ➀ Figur 1.1: Model af en del af informationsudvekslingen på et hospital 1

10 KAPITEL 1. ANALYSE ➀ En syg person indlægges og tildeles status: patient. ➁ Lægen foretager undersøgelse af patientens lidelser. ➂ Lægens observationer og konklusioner indtales på en diktafon. ➃ Diktafonens indhold gives videre til sekretæren. ➄ Sekretæren aflytter diktafonen og opdaterer patientens journal på en datamat. ➅ Journal printes. ➆ Journalen placeres ved patienten. ➇ Sygeplejersken tilser patienten. ➈ Lægen og sygeplejersken evaluerer patientens tilstand. Cyklussen forestilles gentaget fra og med ➁, indtil patienten udskrives. Vi ønsker at forbedre relation ➂ og ➃. Relation ➂ er lægens indtaling af beskeder på diktafonen, herunder betjening af den. Begrænsede muligheder for at håndtere indtalte beskeder, anses for at være et problem. Relation ➃ er aflevering af lægens beskeder til sekretæren. Der kan være fysisk langt mellem lægen og sekretæren, og det kan derfor være en tidskrævende proces. 1.2 Nye ideer For at løse problemerne nævnt i afsnit 1.1 foreslåes det, at der udarbejdes en digital diktafon, med de allerede eksisterende analoge diktafoner som forbillede. De egenskaber, som kendetegner de fleste analoge diktafoner, er følgende: 1. Indspilning 2. Afspilning 3. Spoling 4. Optagelse af flere efterfølgende beskeder 5. Overskrivelse af besked 6. Bærbar 7. Information kan udveksles 8. Lagerplads 9. Volumenkontrol for afspilning Alle ovenstående funktioner ønskes bevaret i den nye løsning. Der introduceres en række nye egenskaber i en digital løsning, for at fjerne nogle af de begrænsninger, der er typisk for en analog diktafon: 2

11 1.3. SYSTEMDEFINITIONER 10. Mulighed for at slette vilkårlige beskeder. 11. Mulighed for at indspille en besked mellem eksisterende beskeder uden at slette efterfølgende optagelser. 12. Hurtig søgning i beskeder. 13. Elektronisk overførsel af beskeder over netværk, dvs. den direkte kontakt mellem læge og sekretær kan afskaffes. 14. Overblik over beskedens oprindelse (tid og indtaler) samt placering. 15. Kendskab til antallet af beskeder og deres længde. 1.3 Systemdefinitioner Læge En diktafon skal bruges på et hospital dagligt. Idet lægen ikke skal nedskrive tekst om en patients tilstand, spares der tid. Desuden kan diktafonens indhold overføres til PC ere flere steder på hospitalet, hvilket gør det til et fleksibelt værktøj for lægen. Sekretær Diktafonen letter arbejdsrutinen i forbindelse med indskrivning af patientjournaler. I stedet for at få alle indtalte beskeder på en gang, vil det være muligt at få enkelte beskeder sendt til en PC i løbet af dagen. Disse kan så indskrives i journalerne ind imellem sekretærens andre opgaver. Udvikler En digital diktafon er et stykke hardware, som er i stand til at lagre akustiske signaler digitalt. Det er muligt at afspille informationen senere samt overføre informationen til en PC. Med udgangspunkt i disse definitioner, udvikles et produkt, som er i stand løse problemstillingen fra analysen. Der opstilles i det følgende, krav til specifikationerne for en digital diktafon. På baggrund af disse specifikationer, udvikles og designes der en prototype på en diktafon. 3

12 .

13 2KAPITEL Kapitlets indhold 2.1 Formål Referencer Læsevejledning Generel beskrivelse Funktionsbeskrivelse Systemets begrænsninger Systemets fremtid Brugerprofil Krav til udviklingsforløb Forudsætninger De specifikke krav Definitioner Funktionelle krav Eksterne grænseflade-krav Bruger-grænseflade Hardware-grænseflade Krav til systemets ydelse

14 KAPITEL 2. KRAVSPECIFIKATION 2.1 Formål Denne kravspecifikation er udarbejdet med henblik på, at køberen af produktet skal kunne konstatere, hvad der kan forventes af det færdige produkt. I dette tilfælde er det færdige produkt en prototype på en digital diktafon, og aftageren af denne er projektgruppens vejleder og censor Referencer Kravspecifikationen er udarbejdet med udgangspunkt i SPU-modellen (Struktureret Program Udvikling) [Sørensen, Hansen, Klim & Madsen 2002, side 71-95]. Hvor der måtte være anvendt andet faglitteratur, vil det være citeret i teksten Læsevejledning For at lette forståelsen af de anvendte diagrammer beskrives på figur 2.1 hvad de forskellige symboler i diagrammerne betyder. Hændelser i systemet er markeret med følgende tekstformat: RECORD, PREVIOUS, NEXT etc. En nærmere beskrivelse af hændelserne følger i afsnit på side 8 og tabel 2.1. Diagrammerne læses ved at følge pilene.!"$#&%(')+*,- (a) Bollen symboliserer en tilstand. Der kan godt være flere måder at komme til en given tilstand på (pile ind i bollen). Når der springes til en tilstand skal diagrammet for denne altid følges. Tilstanden kan kun forlades på de betingelser, der fremgår af diagrammet. (b) Symbolet indikerer startpunktet for tilstanden, der er sprunget til. (c) Romben betyder at systemet tester om en betingelse er opfyldt, f.eks. en hændelse (PLAY, STOP, etc.). Ud fra denne test vælges mellem to forgreninger (1 = ja, 0 = nej)../10)2-3) :9 ;$< 9= 2?>(3)@2 ACB D"EF+D"GH TVU IWX IJLKMONQPSROK bvc [edgf:hlz h` YQZ []\L^)_`a^ (d) Denne rombe er et spørgsmål til brugeren, som skal besvares med hændelserne OK eller CANCEL. (e) Boksen indikerer, at der skal udføres en handling f.eks.: slet optagelse, overfør optagelse etc. (f) Indikerer en udlæsning til brugeren. Figur 2.1: Symboler der bruges i diagrammerne. 6

15 2.2. GENEREL BESKRIVELSE 2.2 Generel beskrivelse En digital diktafon er et håndholdt transportabelt apparat. Diktafonen skal kunne optage lyd, lagre optagelserne, afspille optagelserne og overføre optagelserne til en dockingstation. Dockingstationen er under dette design tænkt som en computer tilkoblet netværket på et hospital Funktionsbeskrivelse Betragtes en diktafon fra en brugers synspunkt, kan der opstilles en række overordnede definitioner af funktionaliteten i et sådant system. Der tages udgangspunkt i afsnit 1.2 på side 2. Diktafonen betragtes som et system, der modtager input fra brugeren, udfører den ønskede handling og giver relevant information tilbage til brugeren undervejs. Som forbillede for betjeningen af diktafonen bruges en kombination af, hvad der kendes fra eksisterende diktafoner, CD-afspillere og minidisc. Diktafonen skal kunne optage, afspille, spole frem og tilbage, slette optagelser, og overføre optagelser til en dockingstation (ekstern enhed). 1. Record: Optagelserne lagres internt i diktafonen. Status for forbrugt og resterende lagerplads skal indikeres til brugeren. De lagrede optagelser tildeles automatisk et tidsstempel (ID nummer), så der kan holdes styr på, hvilke tracks der er optaget hvornår. Under optagelse skal det være muligt at pause indspilningen. Det skal være muligt at indsætte en optagelse mellem to andre uden at slette det efterfølgende. Det skal ikke være muligt at optage midt i en eksisterende optagelse. 2. Transfer: Optagelser skal kunne overføres til en dockingstation og lagres i et standard lydfilformat, så det er muligt at afspille dem direkte fra denne. Overførselshastigheden skal være hurtigere end optagehastigheden. 3. Play: Optagelser, der er gemt i diktafonen, skal kunne afspilles direkte fra denne. Der skal kunne afspilles en vilkårlig besked, som vælges vha. knapper og display. Under afspilning skal det være muligt at springe frem og tilbage mellem optagelserne, pause afspilningen, samt at spole i en optagelse. 4. Delete: Det skal være muligt at slette optagelser, enten enkeltvis eller alle på en gang. 5. Volumen: Lydniveauet på udgangen skal kunne justeres Systemets begrænsninger Systemet skal ikke være håndholdt/bærbart eller have egen strømforsyning, da der er tale om en prototype. Ydermere vil der i prototypen ikke blive anvendt en type lager, der muliggør bibeholdelse af informationer, når systemet slukkes. Ligeledes vil der i prototypen være begrænsninger på størrelsen af lageret. Der vil på prototypen blive implementeret en højttaler som lydudgang, hvorimod der i et endeligt system også kunne gives mulighed for tilslutning af høretelefoner. Under designet vil der primært blive fokuseret på funktionaliteten af systemet, og ikke på MMI 1. 1 Man Machine Interface, dvs. brugergrænsefladen til systemet 7

16 KAPITEL 2. KRAVSPECIFIKATION Systemets fremtid 1. Systemet skal senere kunne udvides med mere lagerplads. 2. Der skal kunne laves et databasesystem til håndtering af optagelser, der er overført til dockingstationen. 3. Der skal være mulighed for at udvide med andre kommunikationsprotokoller til dockingstationen (f.eks. USB, FireWire). 4. Systemets lydudgang kunne eventuelt senere udvides med mulighed for tilkobling af et headset Brugerprofil Brugere af systemet forventes at være læger og sekretærer. Det forventes, at de har kendskab til edb på brugerniveau. Lægerne forventes at bruge diktafonen dagligt. Det er meningen at sekretærene skal afspille beskederne fra den computer, der benyttes til renskrivning af optagelserne. Det forventes også, at lægen vil have behov for at gennemlytte beskeder undervejs Krav til udviklingsforløb 1. Overordnet skal SPU-vejledningerne følges. 2. Der skal udarbejdes design- og testdokumentation Forudsætninger Det forudsættes at prototypen opbygges på et wrapboard, hvorpå stik til forsyning og PC er fastmonteret. Det forudsættes, at diktafonens hardware består af et Motorola mikrodatamatsystem med relevante eksterne enheder. Det forudsættes, at softwaren programmeres dels i assembler og dels i C. 2.3 De specifikke krav I dette afsnit opstilles en række specifikke krav til, hvordan systemet og dets interaktion med brugeren skal fungere Definitioner Blokdiagrammet på figur 2.2 på næste side viser de overordnede enheder i systemet. Diktafonen er kernen i systemet, og de andre blokke i diagrammet er opdelt efter, hvilken funktionalitet de har. F.eks. er alle input fra brugeren samlet i en blok: Brugerinput. Der er altså disse enheder i systemet: Diktafon - den centrale enhed i systemet. 8

17 2.3. DE SPECIFIKKE KRAV "! #$ Figur 2.2: Blokdiagram over systemet. Den stiplede linie indikerer diktafonens grænseflade. Brugerinput - påvirkninger fra brugeren. Udlæsning - informationer til brugeren om systemets tilstand. Lydindgang - til optagelse af lyd. Lydudgang - til afspilning af lyd. Dockingstation - PC (el.lign.). Blokkene påvirker hinanden ved, at der optræder hændelser i de enkelte blokke, som giver anledning til output fra denne blok, der så kan være input til en anden blok. Ud fra disse sammenhænge kan grænsefladen for diktafonen defineres. Hændelserne er opstillet i tabel 2.1 på den følgende side og alle input/output er angivet i forhold til diktafonen Funktionelle krav Kravene til funktionaliteten af diktafonen opstilles på baggrund af afsnit på side 7. Volumen betragtes ikke som et funktionelt krav til diktafonen, da det er en del af lydudgangen, og behandles under denne. %'1?$85+>@3% %& ')( *+-,/.1032 %'1?$85+>@3* ;<+-& +>=>+ :2$& + 405'76$ A =)'76$2$BC( Figur 2.3: Tilstandsdiagram for diktafonen. Bollerne symboliserer de enkelte tilstande og pilene viser mulighederne for at springe mellem dem. Hændelser der medfører spring mellem tilstand er bevidst udeladt for at gøre diagrammet mere overskueligt. Dette behandles under beskrivelsen af de enkelte tilstande. Diktafonen betragtes som en tilstandsmaskine, der påvirkes af input fra brugeren. Der skal altså defineres en række tilstande, som diktafonen kan være i. Standby - slukket. 9

18 KAPITEL 2. KRAVSPECIFIKATION Hændelse Type Værdi Oprindelse POWER IN On/Off Brugerinput PLAY IN On/Off Brugerinput RECORD IN On/Off Brugerinput PAUSE IN On/Off Brugerinput STOP IN On/Off Brugerinput NEXT IN On/Off Brugerinput PREVIOUS IN On/Off Brugerinput FORWARD IN On/Off Brugerinput REWIND IN On/Off Brugerinput DELETE IN On/Off Brugerinput OK IN On/Off Brugerinput CANCEL IN On/Off Brugerinput UPLINK IN On/Off Brugerinput LydInd IN Auditiv Lydindgang LydUd OUT Auditiv Lydudgang PowerIndikator OUT On/Off Udlæsning PlayIndikator OUT On/Off Udlæsning RecordIndikator OUT On/Off Udlæsning PauseIndikator OUT On/Off Udlæsning TrackIndikator OUT nr + filnavn Udlæsning TransferIndikator OUT Visuel Udlæsning FejlIndikator OUT Visuel Udlæsning MemoryStatusIndikator OUT Visuel Udlæsning TransferForbindelse IN/OUT Seriel Diktafon, Dockingstation Tabel 2.1: Eksterne grænseflader til diktafonen. Type er angivet i forhold til diktafonen. Idle - diktafonen er tændt og klar til at modtage input fra brugeren. Record - optagelse af signalet på lydindgangen. Pause-R - pauser optagelse. Play - afspiller optagelser. Pause-P - pauser afspilning. Transfer - overførsel af optagelser til dockingstationen. Delete - sletter optagelse(r). Sammenhængen mellem disse overordnede tilstande er vist på figur 2.3 på forrige side. Generelt for alle tilstande gælder, at alle fejlagtige inputs, der ikke giver mening i en given tilstand, ikke medfører nogen handling i diktafonen, dvs. systemet forbliver i samme tilstand. 10

19 2.3. DE SPECIFIKKE KRAV Standby Formålet med Standby er at gøre det muligt at lukke systemet ned uden, at data går tabt, samt holde systemet klar til at starte op. Hændelser, der kan påvirke Standby-tilstanden, er vist på figur 2.4. Figur 2.4: Figuren beskriver, hvordan bestemte hændelser kan påvirke tilstanden Standby. Idle Formålet med Idle er at holde systemet klar til at modtage inputs fra brugeren. I Idle er der en række mulige positioner, systemet kan befinde sig i. Dette er vist på figur 2.5(a) og 2.5(b) på den følgende side. Såfremt der ikke er optaget noget på diktafonen, findes kun positionen Ny. Når der springes til Idle fra en anden tilstand, vil man befinde sig i positionen Ny, altså klar til en ny optagelse. Dette er fordi systemet primært er tænkt som en optager og ikke en afspiller. Hændelser der kan påvirke tilstanden Idle er vist på figur 2.5(c) på næste side. Record Formålet med Record er at optage signalet LydInd fra lydindgangen. Dette skal gøres i en kvalitet, der muliggør en forståelig reproduktion af den indtalte sekvens. En båndbredde på til, svarende til telefonkvalitet, forventes at være tilstrækkeligt til at opfylde dette krav. Det vælges at benytte den gældende standard for ISDN telefoni, som forbillede for fastsættelse af opløsning og samplingsfrekvens. ISDN-standarden opererer med en overførselshastighed på! #"%$& ' pr sek [IT & telestyrelsen 2003]. Der vælges en opløsning på 8 bit og en samplingsfrekvens på (")*, hvilket giver en datahastighed svarende til ISDN standarden. Så længe diktafonen er i Record tilstanden, skal LydInd lagres, såfremt der er ledig plads i hukommelsen. Mens der optages skal RecordIndikator være aktiv, så brugeren kan se, at optagelsen er i gang. Hver optagelse skal navngives med et tidspunkt for optagelsen (timer, minutter og sekunder), så det altid er muligt at skelne mellem optagelserne. Hvis optagelsen startes fra Ny i Idle, vil der blive tilføjet en ny optagelse for enden af de eksisterende, jvf. figur 2.6(a) på side 13. Det skal også være muligt at indsætte en optagelse mellem eksisterende, uden at disse slettes. Som eksemplet viser på figur 2.6(b) på side 13 resulterer dette i, at en eksisterende efterfølgende optagelse får et nyt nummer. Tidsstemplingen ændres ikke, og det er derfor stadig muligt at identificere de enkelte optagelser. Hændelser, der kan påvirke Record-tilstanden, er illustreret på figur 2.6(c) på side 13. Pause-R Formålet med Pause-R er at kunne stoppe optagelserne midlertidigt. Hændelser, der kan påvirke Pause-R-tilstanden, er vist på figur 2.7 på side

20 KAPITEL 2. KRAVSPECIFIKATION (a) Positioner i Idle. Kassen repræsenterer n forskellige optagelser. Cirklerne med pile viser de mulige positioner i Idle. Indholdet i cirklerne er udlæsningen til brugeren om, hvilken position der er aktiv. (b) Pilene viser, hvorledes der kan navigeres mellem positionerne i Idle. Z3?[\4=ACN OV?T2$WX/3Y ($+&%5 $U 798:FE@2G 6D8 H 4:&E I J&K /103254'6 798:&;=<!" >@?88'ACBD6 798:&;=< $#&%''() *$+"$ LM6DN 6$46 +,- OPNQ:K.* RS6D;=?T8'I (c) Figuren viser, hvordan bestemte hændelser kan påvirke tilstanden Idle. Figur 2.5: Figurerne beskriver tilstanden Idle. 12

21 P O P O 2.3. DE SPECIFIKKE KRAV (a) Eksemplet illustrerer, hvordan der indsættes et nyt track, når Record startes fra positionen Ny i Idle. (b) Eksemplet illustrerer, hvordan der indsættes et nyt track, når Record startes fra positionen 2 i Idle. 1! " ) #" +-,/.0 687:9 ;=< '&(*) "! #"$&% (c) Figuren beskriver hvordan bestemte hændelser kan påvirke tilstanden Record. Hukommelse fuld betyder enten, at systemets lager er fyldt op, eller at der er lagret 99 beskeder, og der derfor ikke kan håndteres flere jvf. afsnit 2.5. Figur 2.6: Figurerne beskriver tilstanden Record. >?@A? BCD*EF E-Q/RB GIHJ8K A#L M&L*N H Figur 2.7: Figuren beskriver, hvordan bestemte hændelser kan påvirke tilstanden Pause-R. Play Formålet med Play er at afspille optagelserne. Sålænge diktafonen befinder sig i Play bliver den ved med at afspille. Afhængigt af hvilken position i Idle der springes til Play fra, afspilles den tilhørende optagelse. Startes Play fra Ny afspilles optagelse 1 jvf. figur 2.8(b) på den følgende side. Når enden af en optagelse nåes springes til den næste optagelse og afspilningen fortsætter. Dvs. der afspilles efter samme rækkefølge som positionerne i Idle (Se figur 2.8(b) på næste side). Hændelser, der kan påvirke Play, er vist på figur 2.8(a) på den følgende side. 13

22 KAPITEL 2. KRAVSPECIFIKATION )" 0,+-(*. / '(*) 67892:!"# %$& ;:<3 6=:>@?4892 ED )GFH %I A94=B7=C ED )J ),K- =:B.? ;C (a) Figuren beskriver, hvordan bestemte hændelser kan påvirke tilstanden Play. M N O P L QSR (b) Figuren viser, hvordan der navigeres mellem de enkelte optagelser i tilstanden Play. Den prikkede linie kræver påvirkning af NEXT eller PREVIOUS. Figur 2.8: Figurerne beskriver tilstanden Play. Pause-P Formålet med Pause-P er at kunne pause afspilningen. Hændelser, der kan påvirke Pause-P-tilstanden er beskrevet i figur 2.9 på næste side. 14

23 ; ; : : 2.4. EKSTERNE GRÆNSEFLADE-KRAV Figur 2.9: Figuren beskriver, hvordan bestemte hændelser kan påvirke tilstanden Pause-P. Transfer Formålet med Transfer er at overføre optagelser til dockingstationen. Alle optagelser overføres til dockingstationen på en gang. Hændelser der kan påvirke Transfer er beskrevet i figur <>=6?@ A "$+# BC$.0/21.43 $ # # $ 1 ()*+(,- %'&!"# $.E3 $65 78 BC$+# <JI F.E3 $65H78.ED> F $G# BC$ Figur 2.10: Figuren beskriver, hvordan bestemte hændelser kan påvirke tilstanden Transfer. Delete Formålet med Delete er at give brugeren mulighed for at slette enkelte optagelser eller alle optagelser på en gang. Når der vælges at slette et enkelt track ændres nummereringen af optagelserne, men den enkelte optagelse beholder sit filnavn (tidsstempel). Nummereringen af optagelserne skal kun bruges til at navigere mellem dem i Idle-tilstanden. Figur 2.11(a) på næste side viser, hvordan Delete skal fungere når der slettes et enkelt track. Hændelser, der kan påvirke tilstanden Delete, er vist på figur 2.11(b) på den følgende side. 2.4 Eksterne grænseflade-krav Bruger-grænseflade Ud fra tabel 2.1 kan der opstilles en række designkrav til systemets brugergrænseflade. 1. Der skal være 13 knapper dedikeret til hændelser af typen On/Off. 15

24 F r M Y (('' // KAPITEL 2. KRAVSPECIFIKATION $!#"!#" % # & $ (a) Eksempel med 4 optagelser hvor det vælges at slette track 2. Dvs. der springes til tilstanden Delete fra position 2 i Idle, og der vælges at slette en enkelt optagelse. (b) Figuren beskriver, hvordan bestemte hændelser kan påvirke tilstanden Delete Figur 2.11: Figurerne beskriver tilstanden Delete. 2. Der skal være en udlæsning af information til brugeren. Information af On/Off typen ville kunne implementeres vha. lysdioder. Men herudover skal brugeren også modtage informationer af kvalitativ art, såsom hvor meget lagerplads, der er tilbage på systemet. Det er derfor nødvendigt med, et display, hvortil, der kan skrives forskellige tekststrenge. 3. Der skal være en mikrofonenhed, som kan opfange talesignaler fra brugeren. 4. Der skal implementeres en højttalerenhed, der kan afspille indtalte beskeder. 5. Ved dialog mellem bruger og system, skal beskederne fra systemet i displayet være på dansk. GIHJLKNMPOQKRTSUKVMXW s ƒ }y k ~ˆ z{t Z\[^]`_baTced }{~ }{ {} cfhgidkj KmlnlolnlblLpopqp )*+ +,, ;::;<.< 9 <.<= >.>?? B.BC sutwvyx{z vy}{~ C D.DE E Figur 2.12: Figuren er et udkast til udformningen af en kommunikationsgrænseflade mellem bruger og system Hardware-grænseflade Systemet skal kunne tilsluttes en ekstern dockingstation via et seriel-kabel. 16

25 2.5. KRAV TIL SYSTEMETS YDELSE 2.5 Krav til systemets ydelse 1. Der skal kunne håndteres op til 99 beskeder Der skal være en responstid ved brugerinput på maks. 1 sekund. Dvs. der går maks 1 sek. før brugeren får information tilbage om, hvilken handling der foregår eller skal til at foregå i diktafonen. 3. Energiforbruget må maksimalt være kontinuert. Vurderingen af energiforbruget er lavet på baggrund af disse forudsætninger. Systemet skal kunne forsynes fra 4 stk 1,5 batterier på hver!. Systemet skal kunne være tændt i mindst 10 timer (8 timers arbejdsdag + 25%). Tilgængelig energi:! Dette giver et maksimalt kontinuert effektforbrug på: 4. Overførselshastighed optagehastighed 3. 2 Dette krav er ikke opstillet ud fra en analyse af brugerens behov. Det er gruppens ønske at bruge to cifre i displayet til at holde styr på beskederne. Dette skønnes desuden at være tilstrækkeligt til at dække brugerens behov. 3 Da der ikke er foretaget nogen decideret undersøgelse af arbejdsgangen på et hospital, er det svært at vurdere hvad der er rimeligt i denne sammenhæng. Dette er derfor et minimumskrav, skønnet ud fra, hvad der er muligt med RS232C-protokollen. 17

26 .

27 3KAPITEL Kapitlets indhold 3.1 Formål Funktionstest Standby Idle Record Pause-R Play Pause-P Transfer Delete Responstid Lagerplads Talegenkendelighed Overførselshastighed Energiforbrug

28 KAPITEL 3. ACCEPTTESTSPECIFIKATION 3.1 Formål Formålet med accepttestspecifikationen er at få bekræftet, om kravene stillet i kravspecifikationen opfyldes. For at finde eventuelle fejl, opstilles en række testkriterier, samt en beskrivelse af hvorledes de enkelte tests skal udføres. 3.2 Funktionstest Dette afsnit beskriver, hvordan funktionerne i diktafonen skal testes. Test designet er lavet således, at et testkriterie svarer til et spørgsmål, der kun kan besvares med ja eller nej Standby 1. Bevarelse af data Testkriterie: Bevares optagelser i diktafonen efter systemet har været sat i standby. Betingelser: Der findes mindst en optagelse på diktafonen. Input: POWER Beskrivelse: Diktafonen lukkes ned ved at POWER aktiveres. Diktafonen startes op igen med endnu et tryk på POWER og det kontrolleres at optagelsen stadig findes på diktafonen Idle 2. Startposition Testkriterie: Springes der til position Ny hver gang der springes til Idle? Betingelser: Der findes optagelser på diktafonen. Input: RECORD, PLAY, UPLINK og DELETE Beskrivelse: Det kontrolleres om der springes til Ny efter at have udført flg. funktioner: indspilning, afspilning, overførsel og sletning. 3. Navigering Testkriterie: Kan der navigeres rundt mellem alle optagelserne? Betingelser: Der findes en række optagelser på diktafonen. Input: NEXT og PREVIOUS Beskrivelse: Det konstateres om det er muligt at skifte frem og tilbage mellem optagelserne ved at aktivere hhv. NEXT og PREVIOUS. Det kontrolleres, om positionsnummeret kun skifter en op eller ned af gangen, samt at aktivering af NEXT fra positionen NY, medfører skift til postion 1 (jvf. figur 2.5(b) på side 12). 4. Mulige positioner Testkriterie: Indikeres de mulige positioner? Betingelser: Der findes en række optagelser på diktafonen. Input: NEXT og PREVIOUS Beskrivelse: Det kontrolleres om de mulige positioner på figur 2.5(b) på side 12, indikeres korrekt. 20

29 3.2. FUNKTIONSTEST Record 5. Optagelse af lydsignal Testkriterie: Optages lydsignal under optagelse? Betingelser: At det er muligt at kunne afspille. Input: RECORD Beskrivelse: Der foretages en optagelse, ved aktivering af RECORD, som derefter afspilles på diktafonen. Det kontrolleres, at det er den rigtige optagelse, der afspilles. 6. Indikation af optagelse Testkriterie: Indikeres det, at optagelsen er i gang? Input: RECORD Beskrivelse: Diktafonen bringes i tilstanden Idle, RECORD påvirkes og det kontrolleres, at RecordIndikator aktiveres. 7. Lagerstatus Testkriterie: Udlæses lagerstatus under optagelsen? Betingelser: Diktafonen er i gang med at optage. Input: Ingen Beskrivelse: Det kontrolleres at MemoryStatusIndikator indikerer, at der bliver mindre plads, efterhånden som der optages, og fuld når systemet melder lager fyldt. 8. Pause under optagelse Testkriterie: Er det muligt at pause midt i en optagelse? Betingelser: Diktafonen er helt tom, og der påbegyndes en ny optagelse. Input: RECORD, PAUSE og STOP Beskrivelse: Under optagelsen aktiveres PAUSE. Lidt efter aktiveres PAUSE endnu en gang og derefter STOP. Det kontrolleres, at der kun er indspillet en enkelt optagelse som følge at dette. 9. Filnavne Testkriterie: Tildeles optagelserne et filnavn, i form af et tidstempel. Betingelser: Der optages to optagelser med 5 min. mellemrum. Input: RECORD Beskrivelse: Det kontrolleres om optagelserne tildeles et tidsstempel med 5 min. forskydelse 10. Indsæt optagelse Testkriterie: Er det muligt at indsætte en optagelse mellem eksisterende optagelser? Betingelser: Der findes mindst 2 optagelser på diktafonen. Input: RECORD Beskrivelse: Fra positionen 1 foretages en optagelse. Det kontrolleres derefter at de 3 tracks er tildelt positioner i hht. afsnit på side Pause-R 11. Pause Testkriterie: Optages under pause? Betingelser: Diktafonen er i gang med at optage. Input: PAUSE Beskrivelse: Under optagelsen aktiveres PAUSE, og der indtales en kendt sætning til ditafonen. PAUSE aktiveres endnu engang og der optages lidt videre. Derefter afspilles den pågældende optagelse og det kontrolleres, at den indtalte sætning ikke er med på optagelsen. 21

30 KAPITEL 3. ACCEPTTESTSPECIFIKATION 12. Indikation af pause Testkriterie: Indikeres det at diktafonen er i pause? Betingelser: Diktafonen er i gang med at optage. Input: PAUSE Beskrivelse: Optagelsen pauses med PAUSE og det kontrolleres, at PauseIndikator aktiveres Play 13. Afspilning af optagelse Testkriterie: Kan diktafonen afspille en optagelse? Betingelser: Der findes en optagelse på diktafonen. Input: PLAY Beskrivelse: PLAY aktiveres, og det kontrolleres om den pågældende optagelse afspilles. 14. Indikation af play Testkriterie: Indikeres det, at der afspilles? Betingelser: Der findes en optagelse på diktafonen. Input: PLAY Beskrivelse: Det kontrolleres, at PlayIndikator aktiveres. 15. Positions afspilning Testkriterie: Afspilles den rigtige postion? Betingelser: Der optages et track fra position n. Input: PLAY Beskrivelse: Efter optagelse afspilles fra position n. Det kontrolleres, om det optagede afspilles. 16. Rækkefølge Testkriterie: Afspilles optagelserne i den rigtige rækkefølge? Betingelser: Der er optaget en række optagelser. Input: PLAY Beskrivelse: Fra positionen Ny aktiveres PLAY. Det kontrolleres, at der afspilles fra track nr Track skift Testkriterie: Kan der skiftes track under afspilning? Betingelser: Der findes en række optagelser på diktafonen. Input: PLAY, NEXT og PREVIOUS Beskrivelse: Under afspilning aktiveres NEXT, og det kontrolleres at afspilning af næste track begynder. Der testes ligeledes ved aktivering af PREVIOUS. 18. Pause-P Testkriterie: Forekommer afspilning under pause? Betingelser: Der findes optagelser på diktafonen. Input: PAUSE Beskrivelse: Under afspilning aktiveres PAUSE, og det kontrolleres at afspilningen pauses. 19. Spoling i optagelse Testkriterie: Er det muligt at spole i en optagelse? Betingelser: Der findes mindst 2 optagelser på diktafonen. Input: FORWARD og REWIND 22

31 3.2. FUNKTIONSTEST Beskrivelse: Under afspilning aktiveres FORWARD, og det kontrolleres om der spoles indtil PLAYeller STOPaktiveres. Det testes ligeledes om der automatisk spoles videre i næste optagelse. Det hele gentages med REWIND Pause-P 20. Indikation af pause Testkriterie: Indikeres det, at diktafonen er i pause? Betingelser: Diktafonen er i gang med at afspille. Input: PAUSE Beskrivelse: Afspilningen pauses med PAUSE og det kontrolleres, at PauseIndikator aktiveres. 21. Afspilning Testkriterie: Stoppes afspilningen under pause? Betingelser: Diktafonen er i gang med at afspille. Input: PAUSE Beskrivelse: Under afspilning aktiveres PAUSE og det kontrolleres, at der ikke afspilles under pause Transfer 22. Forbindelse Testkriterie: Kan der oprettes forbindelse mellem PC og diktafon? Input: UPLINK Beskrivelse: UPLINK aktiveres og det kontrolleres, at der er forbindelse til PC en. 23. Indikation af overførsel Testkriterie: Indikeres overførsel af data? Betingelser: Der findes optagelser på diktafonen. Input: UPLINK Beskrivelse: Fra en tilfældig position aktiveres UPLINK. Det kontrolleres, at TransferIndikator aktiveres. 24. Overførsel Testkriterie: Er der muligt at overføre filer? Betingelser: Der findes optagelser på diktafonen. Input: UPLINK Beskrivelse: Efter endt overførsel kontrolleres det, at optagelserne på diktafonen, er overført til PC en Delete 25. Sletning enkeltvis Testkriterie: Er det muligt at slette beskeder enkeltvis? Betingelser: Der findes optagelser på diktafonen. Input: PREVIOUS, NEXT, DELETE og OK Beskrivelse: Der vælges en besked med PREVIOUS og NEXT. DELETE og dernæst OK aktiveres. Det kontrolleres, om den pågældende optagelse er blevet slettet. 23

32 KAPITEL 3. ACCEPTTESTSPECIFIKATION 26. Sletning af alle optagelser Testkriterie: Er det muligt at slette alle optagelser på en gang? Betingelser: Der findes en række optagelser på diktafonen. Input: DELETE, CANCEL og OK. Beskrivelse: Fra en tilfældig position aktiveres DELETE. Derefter aktiveres CANCEL og til sidst OK. Det kontrolleres, at alle optagelser er blevet slettet. 27. Sletning Testkriterie: Får optagelserne nyt tracknr. efter sletning af en enkelt optagelse? Betingelser: Der findes en række optagelser på diktafonen. Input: DELETE, OK og DELETE. Beskrivelse: Efter at have slettet fra position n, kontrolleres det, at det track, der tidligere var på position n+1, nu er på position n. 3.3 Responstid 28. Maksimal responstid Testkriterie: Reagerer diktafonen hurtigere end et sekund på et bruger input? Betingelser: Ingen Input: PLAY, STOP og RECORD. Beskrivelse: Det konstateres, hvorvidt responstiden er under et sekund i hvert tilfælde. 3.4 Lagerplads 29. Håndtering af optagelser Testkriterie: Er diktafonen i stand til at håndtere op til 99 optagelser? Betingelser: Der optages ialt 99 optagelser. Beskrivelse: Der navigeres mellem optagelserne. Det kontrolleres at der springes fra 99 til 1, samt at diktafonen melder fejl ved forsøg på optagelse nr Talegenkendelighed 30. Genkendelighed Testkriterie: Kan diktafonen lagre beskeder og afspille disse, så det er forståeligt? Beskrivelse: For at teste genkendeligheden af en talesekvens, indtales der en række nonsensord i en besked. Beskeden indtales af person A og aflyttes af en person B uden, at denne på forhånd kender noget til indholdet af det indtalte. På denne måde udelukkes enhver mulighed for, at person B ubevidst kan kompensere for eventuelle mangler, som dermed ikke opdages. 3.6 Overførselshastighed 31. Hastighed Testkriterie: Kan optagelserne overføres mellen diktafon og PC med minimum samme hastighed som indspilningshastigheden. 24

33 3.7. ENERGIFORBRUG Input: RECORD og UPLINK Beskrivelse: Dette testes ved at indspille 30 sek. tale. Denne sekvens overføres dernæst til PC. Tiden for overførslen måles og må ikke overstige 30 sek. 3.7 Energiforbrug 32. Energiforbrug Testkriterie: Kan diktafonen køre 10 timer på 4 stk 1,5 V batterier. Betingelser: Diktafonen benyttes på almindelig vis. Beskrivelse: Det konstateres om systemet, under forskellige forhold, overstiger et kontinuert energiforbrug på 1 W. 25

34 .

35 4KAPITEL Kapitlets indhold 4.1 Krav til Minimumsystem Inddeling af Adresserum Adresse dekodning Benopsætning af Motorola Forsyning Processor status Periferi kontrol System kontrol Adressebus Databus Asynkron bus kontrol Bus arbitration kontrol Interrupt kontrol Kontrolkredsløb Den serielle forbindelse Opsætning af Dataformat Opkobling af ACIA

36 KAPITEL 4. MINIMUMSYSTEM 4.1 Krav til Minimumsystem Der defineres et såkaldt minimumsystem, hvor et fundament for det samlede systems funktionalitet implementeres, inden der gåes videre med konstruktionen af det endelige system. Systemet skal indeholde en CPU 1, lagerenheder samt de nødvendige enheder til at etablere en seriel forbindelse til en PC. Der brændes en monitor og debugger (TS2MON vedlagt på [CD-ROM 2003]) i ROM 2, således at CPU ens funktionalitetet kan testes vha. et terminalprogram kørende på en PC. Minimumsystemet skal opfylde følgende specifikationer: 1. Systemet bygges op på et wrap board. 2. Der gøres brug af en Motorola CPU (M68k). 3. Systemet skal kunne operere i stand alone mode, dvs, ikke gøre brug af andre eksterne enheder end strømforsyning og terminal (PC) for at kunne fungere. 4. Systemet skal indeholde 4 stk " $ ' statisk RAM 3 kredse. 5. Systemet skal indeholde 2 stk (" $ ' ROM implementeret som flash memory. 6. Interfacet til terminalen sker gennem en seriel port. Der anvendes en RS232 4 forbindelse inkl. ACIA UART 6 samt MAX232 line driver. 7. ROM og RAM-kredse adresseres fuldstændigt, således at alle adresserne i disse enheder svarer til en unik adresse på systemets adressebus. Dette gøres for gøre tilgangen til systemets lager mere overskueligt. 8. De øvrige perifære enheder adresseres ikke fuldstændigt og tildeles således hver et antal adresser på systemets adressebus. 9. Systemet skal muliggøre implementering af interruptstyring på 7 niveauer. Det skal senere vælges, hvordan denne interruptstyring kan anvendes. 10. Systemet forsynes med en Debugger/Monitor i form af TS2MON, som placeres i ROM. 11. Interrupt 7 er et såkaldt Non-Maskable Interrupt (NMI) og skal gennem en prelfjerner forbindes til en kontakt på wrap boardet således, at det er muligt at afbryde en programkørsel med konteksten gemt, vha. TS2MON [Sofus Birkedal Nielsen Marts 2002, side 5]. 4.2 Inddeling af Adresserum Der foretages en inddeling af CPU ens adresserum, således at alle de relevante eksterne enheder inklusiv lagerenheder kan adresseres i henhold til punkt 4, 5, 7 og 8 i afsnit 4.1 (se figur 4.1). M68k s 23 adresselinier kan adressere words af (1 word = 2 byte). Ved at inkludere to ekstra signaler, lower data strobe (LDS) og upper data strobe (UDS) i adreseringen kan M68k betragtes som byte-adressabel [Clements 1997, side 307]. Følgende enheder skal således adresseres: 1 Central Processing Unit 2 Read Only Memory 3 Random Access Memory 4 Recommended Standard Asynchronus Communications Interface Adapter 6 Universal Asynchronous Receiver Transmitter 28

37 4.2. INDDELING AF ADRESSERUM e!2j 1. _ e!f J NGP"J H\QS$ NGP[J HRQS$ -ZQSH! -ZQSH J 5,68719;:<>=?9A@CBD6FE -G&'H!2IKJMLONGP"J HRQS$UT V P +*-W=X-Y&'H -G&)H! -G&)H J V P +*-W=X-Y&'H g%hjilk -G&)H & 34] & L^NGP"J H\QS$ST & 34] & L V P +,-'T &'_ 3 _G& 3 _ ]`P (*ab&dc #%$'&)(*(,+*-. /10./10..2 "!.34 /"! "! Figur 4.1: Memorymap over systemet. TS2MON er placeret i ROM 1 og ROM 2. De skraverede områder er ubrugte. Der er reserveret plads til ACIA USER, ADC, DAC, Display og Knapper, som alle vil blive gennemgået senere. nm ROM 1-2 Der skal ifølge specifikationerne (se afsnit 4.1) implementeres (" $ ' ROM, hvilket kræver unikke adresser. ROM 1 indeholder den øverste byte i den 16-bit brede databus. Den skal tildeles lige adresser startende fra adresse. ROM 2 er den nederste byte i den 16-bit brede databus og ligger på ulige adresser. TS2MON placeres på adresse 29

38 m KAPITEL 4. MINIMUMSYSTEM til [Sofus Birkedal Nielsen Marts 2002, side 3]. RAM 1-4 De fire RAM blokke på hver 512 kbyte fylder således adresser. Der skal allokeres hukommelse til M68k s exception vector table. Vektorerne indeholdt i denne tabel er 32-bit absolutte adresser, hvor exception- og interrupthåndteringsrutiner skal gemmes [Clements 1997, side ]. Vektortabellen indeholder 256 forskellige 32 bit vektorer svarende til et adresserum på! word = word. Omregnet til hexadecimal bliver ( de 2 kbyte til. Disse adresser placeres, i henhold til [Sofus Birkedal Nielsen Marts 2002, side 4], fra til. I brugerguiden til TS2MON angives det at, TS2MON ialt allokerer RAM fra til. Resten af adresserummet op til defineres som user-ram. Den resterende plads op til er ubenyttet og vil evt. kunne ( bruges til at udvide med yderligere lagerplads. ACIA TS2MON Denne enhed styrer transmissionen af data mellem terminalen (PC) og targethardwaren (M68k). Den nærmere opbygning af chipselect til denne enhed forklares i afsnit 4.5. Her skal blot konstateres at minimum to adresser er nødvendige eftersom ACIA-kredsen indeholder to registre. Det vælges ikke at gøre adresseringen entydig ved kun at medtage adressebenene - samt UDS eller LDS i adressedekodningen. Herved fåes adresser, hvilket svarer til et adresserum på. Ifølge [Sofus Birkedal Nielsen Marts 2002, ( ( side 5] skal adresseringen af denne enhed ligge på de to ulige adresser og. Placeringen af de øvrige enheder, der ligger uden for minimumsystemet, vil blive behandlet senere. 4.3 Adresse dekodning Når M68k skal kommunikere med eksterne enheder skal der være et chip-select, således kun en enhed er aktiv af gangen. Figur 4.2 illustrerer dette på blokdiagram niveau. Hver ekstern enhed har et adresserum, hvori enheden skal være valgt. Tabel 4.1 viser, hvordan adresserummet er delt op. Denne inddeling svarer til den på figur 4.1 på forrige side Enhed ROM X...X X X ROM 1 ROM 2 RAM X...X X X RAM 1 RAM 2 RAM X X...X X X RAM 1 RAM 2 RAM X...X X X RAM 1 RAM 2 RAM X...X X X RAM 3 RAM 4 RAM X X...X X X RAM 3 RAM 4 RAM X...X X X RAM 3 RAM 4 ACIA TS2MON X 0 1 ACIA USER X 0 1 ADC DAC Display X X Knapper Tabel 4.1: Hukommelseskredse og perifære enheder er listet i den yderste venstre kolonne. De øvrige kolonner repræsenterer værdierne på CPU ens adresseben, samt UDS og LDS 30

39 4.4. BENOPSÆTNING AF MOTOROLA *) +,) -/ &( &!!"!"!"!" % 7 # $# &%' ( Figur 4.2: Blokdiagram over systemets adressebus Det adresserum, der er tildelt lagerenhederne samt registrene i ACIA-kredsene og displayet er markeret med X erne. De øvrige enheder har kun behov for en specifik adresse, hvilket også er implementeret i tabellen. Det vælges dog som nævnt i punkt 8 i specifikationerne, (se afsnit 4.1), at tildele flere adresser til de perifære enheder. På denne måde simplificeres de logiske udtryk og dermed også omfanget af den hardware, der skal implementere dem. Tabellen omsættes til logiske udtryk, som implementeres i programmerbar logik. I minimumsystemet er der kun behov for adresseringen af ROM, RAM og ACIA TS2MON. ROM1 8 *9 *9 *9 *9 :9 :9 ROM2 8 *9 *9 *9 *9 :9 :9 RAM1 8 ; =< >< RAM2 8 ; =< >< RAM3 8 ; *< :< A? 9 RAM4 8 ; *< :< A? 9 ACIA $9 B Det vælges at implementere dekodningen af både ROM, RAM og ACIA TS2MON i een PEEL Benopsætning af Motorola Dette afsnit er en gennemgang af benopsætningen på M68k med baggrund i dokumentationen i [Clements 1997] samt [Motorola 27. april 2003]. Der gives en generel beskrivelse af funktionali- 7 Programmable Electrically Erasable Logic 31

40 I KAPITEL 4. MINIMUMSYSTEM teten af de enkelte ben, hvorefter det dokumenteres, hvordan de anvendes i det specifikke system. Det angives med I, O eller I/O hvilken type ben der er tale om. M68k har 64 ben, der kan inddeles i følgende kategorier. Forsyning Processor status Periferi kontrol System kontrol Adressebus Databus Asynkron bus kontrol Bus arbitration kontrol Interrupt kontrol Figur 4.3 viser, hvilke ben, der er indeholdt i de enkelte grupperinger. Hver enkelt ben benævnes med: Navn og pilenes retning indikerer (Input/output). 2H,.0 -Y[,.- X -YZ (]>=>^ C -/,\-Y2 % ' =>=>02?@<A$8B?:4 =_ ` => X -YZ "! * LNMPO1MPQ.M R7SBTVUVWPWVW +,.-/, )893;:<: "C D E F+ C + C +HG X 0 2 X -Y^Z JI$ K G I$C I G #$ &% #$ (' #) * C -Y=>a X -YZ # -Y=>2 bc- X -YZ Figur 4.3: Input og output signaler fra M68k CPU. Benene er grupperet som i teksten Forsyning dfee (I): Der er to )ghg ben, der hver skal forsynes med i kjl '. 32

41 4.4. BENOPSÆTNING AF MOTOROLA Gnd (I): Der er to ben, som forbindes til stel ( kjl ' ). Clk (I): Dette ben forbindes til et TTL kompatibelt firkant signal med konstant frekvens på ( *. Benet er systemets hardware clock Processor status For brugeren/designeren kan det være vigtigt at vide, hvad CPU ens status er. Det være sig om der opereres på data, eller instruktioner fra instruktionssættet o.a. Denne information kaldes system information og angives på M68k ved de tre ben, og, der tilsammen udgør en 3-bit function code. Hvis er sat er processoren i supervisor mode, hvis negeret er den i user mode. indikerer hvilken adresserums type (memory) der tilgåes. Se figur 4.2. Function code er gyldig når AS er sat. FC2 FC1 FC0 Adresserums type User Data User Program Supervisor Data Supervisor Data CPU space Tabel 4.2: Function code output; de manglende kombinationer er reserveret fra producentens side til senere brug Det er således muligt at anvende i adresseringen og dermed inddele memory blokkene i supervisor og user program og data. Dette ville være relevant at gøre, hvis der var tale om, at der skulle implementeres et styresystem, med flere forskellige brugerprogrammer. I dette tilfælde skal der kun køres et program og denne mulighed udnyttes derfor ikke. De tre ben medtages i dekodningen af interrupt acknowledge (se afsnittet interrupt kontrol, på side 36) Periferi kontrol Disse tre kontrolsignaler bruges til at interface M68k med synkrone perifære enheder. Enable E (O): Dette output er et timing signal, en E clock består af 10 M68k clock perioder. En E cyklus består af 6 lave og 4 høje. Valid Peripheral Address VPA (I): Dette input signal indikerer at den enhed der bliver adresseret er synkron. Når processoren anerkender, at VPA er sat, startes en synkron data overførsel. Valid Memory Address VMA (O): Dette output indikerer at adressen på adressebussen er gyldig og at processoren er synkroniseret til E signalet. Anvendelsen af periferikontrollen beskrives i afsnit

42 KAPITEL 4. MINIMUMSYSTEM System kontrol RESET (I/O): Når denne fungerer som indgang bliver processoren resat, hvis både RESET og Halt sættes samtidig. Når den opererer som udgang bliver alle eksterne enheder (som er tilsluttet RESET) resat. Hvis både processor og eksterne enheder ønskes resat, skal både RESET og Halt sættes samtidigt. HALT (I/O): Når denne fungerer som indgang og bliver sat, stopper processoren når den har fuldendt den igangværende buscyklus. Endvidere negeres alle kontrol signaler, og alle tristate udgange, undtagen Function code, som sættes til høj-impedans. Bus Error BERR (I): Dette signal indikerer, at der er opstået et problem i buscyklussen. Problemet kan være følgende. Intet svar fra en enhed. Intet interrupt vektor nummer. Ikke gyldig eller ikke eksisterende memory adresse. Anvendelsen af HALT/RESET beskrives i afsnit på side 36, hvor opbygningen af kredsløbet, og brugerinterfacet til HALT/RESET funktionen er dokumenteret. Opkoblingen af de to indgange er ligeledes beskrevet her. Der er ikke implementeret hardware, der muliggør detektering af de tre fejl, som BERR indikerer opståelsen af. Derfor vælges det, at forbinde den aktivt lave indgang til forsyning via en pull-up modstand, således at der ikke utilsigtet opstår et BERR-signal Adressebus (O): Adressebussen er 23 bit bred, hvilket som udgangspunkt gør det muligt at adressere 8 M-words. I adresseringen indgår LDS og UDS, disse gør det muligt at vælge imellem høj byte ( ) og lav byte ( ) svarende til hhv. lige og ulige adresser. På denne måde kan man karakterisere M68k som byte-adressabel. Når en interrupt acknowledge cyklus kører indikerer adresseben, hvilket level interrupt der serviceres, mens resten af adressebenene sættes logisk høj Databus (I/O): Databussen er 16 bit bred, og bruges til at sende og modtage data enten af byte (8 bit) eller word (2 byte) bredde. Figur 4.4 viser, hvilke enheder, der tilgår systemets databus. Når CPU en opererer på et word bruges hele databussen, hvis der opereres på byte niveau bruges enten eller Når en interrupt acknowledge cyklus kører, kan et interrupt vektor nummer placeres på Asynkron bus kontrol Den asynkrone bus kontrol anvendes til en asynkron dataoverførsel. Funktionaliteten af de enkelte ben beskrives kort. For en nærmere gennemgang af M68k s read- og writecyklus henvises til appendiks B på side

43 4.4. BENOPSÆTNING AF MOTOROLA )( *+(,.-+,0/12/43657, $"# #! "> :;<=<<< "% &$' " $8 $89'! Figur 4.4: Blokdiagram over systemets databus Read/Write R/W (O): Benet sættes højt eller lavt afhængigt af, hvorvidt der ønskes en read- eller en writecyklus. UDS/LDS (O): Disse ben indikerer, hvorvidt det er hhv. - (UDS) og/eller til (LDS) på systemets databus, der tilgåes. Adress Strobe AS (O): Sættes samtidig med UDS og/eller LDS og indikerer, at der er en gyldig adresse på adressebussen. Data Transfer Acknowledge DTACK (I): Signalet er en bekræftigelse fra en perifær enhed, at CPU en kan gå igang med at læse data. Dette signal skal være aktivt lavt under hele dataoverførslen Bus arbitration kontrol Bus arbitration kontrol bruges til at køre et multiprocessor system, hvor processorerne deles om bussen. Bus Request BR (O): Indikerer, hvis den er sat, at en anden CPU ønsker kontrol over bussen. Benet er derfor et input på den CPU, der kontrollerer bussen og et output på andre CPU er i et multiprocessorsystem. Bus Grant BG (I): Output fra den CPU, der kontrollerer bussen. Det er et svar på BR. Bus Grant Acknowledge BGACK (I): Input på den CPU, der kontrollerer bussen. Dette signal asserteres efter at der er foretaget en handshake funktionen med BR og BG og en anden CPU har overtaget bussen. Da der kun indgår een CPU i dette system, er der ikke brug for denne funktionalitet. Derfor forbindes de to aktivt lave indgange BR og BGACK til forsyning vha. pull up modstande, således at de aldrig sættes. Udgangen BG forbindes ikke. 35

44 KAPITEL 4. MINIMUMSYSTEM Interrupt kontrol De tre indgange på M68k IPL0-IPL2 udgør, en 3-bit kode, der fortæller CPU en hvilket interruptniveau der ønskes serviceret (IRQ 0). De tre bit gør det muligt at repræsentere 8 forskellige værdier. værdien indikerer, at intet interrupt ønskes serviceret. De resterende 7 værdier repræsenter interruptniveauer fra 1 til 7. Designeren af systemet kan så tildele sine perifære enheder interruptniveauer. Valget af tildeling af interruptniveauer foretages i forbindelse med designet af de perifære enheder. Selve interuptfaciliteten skal dog i henhold til specifikationerne i afsnit 4.1 på side 28, implementeres i systemet. Samme specifikationer kræver også, at Interrupt 7 (NMI) forbindes til en kontakt på wrap-boardet. Følgende funktioner skal implementeres [Clements 1997, side 217]: 1. IRQ-enkodning: De 7 IRQ signaler skal enkodes til en 3-bit kode, der kan påføres benene IPL0-IPL2. 2. IACK-dekodning: Den perifære enhed, der afgiver et IRQ skal have besked tilbage om, hvilket IRQ-niveau CPU en servicerer. Dertil bruges adressebenene til, der som nævnt i afsnit indikerer netop dette. Det er dog kun tilfældet når CPU en har fået et interrupt og befinder sig i en tilstand, hvor den betjener de perifære enheder. Dette indikeres ved at function code benene og AS er sat. 3. Prelfjerner til NMI-switch: Det nødvendigt at sørge for, at der ikke kommer flere interrupts efter hinanden, da IRQ 7 pr. definition kan afbrydes af et nyt IRQ 7. Sker dette vil de registre, der blev gemt første gang risikere at blive overskrevet, hvorefter det ikke er muligt for designeren at aflæse relevant information via debuggeren Kontrolkredsløb I dette kredsløb indeholdes CPU ens hardware clock, der fungerer som taktgiver, når processoren afvikler instruktioner. Herudover skal der også implementeres en resetfunktion, således at systemet starter op i en kendt veldefineret tilstand. Desuden skal det være muligt at give systemet en reset vha. et knaptryk. Clock kredsløb Som clock vælges en MCO1425B TTL quartz krystaloscillator med en frekvens på (. Den tid, en logisk transition (fra høj til lav og omvendt) tager, overholder de min., som M68k stiller som krav. En clock cycle må ikke være længere end svarende til eller kortere end svarende til (. Det er vigtigt, at den minimale/maksimale clockpulsbredde ( ) ikke overskrides. MCO1425B overholder disse krav. Halt-Reset kredsløb Definition af Reset: Når RESET er sat, bringes systemet i en kendt tilstand. Supervisor stack pointeren, A7 (memory adresse ($000000)) bliver hentet og herefter bliver 36

45 4.4. BENOPSÆTNING AF MOTOROLA Program Counteren hentet fra memory adresse ($000004) [Clements 1997, side 206]. For at sikre at at M68k starter korrekt op stilles der krav fra producentens side, at HALT og RESET som minimum er sat i. Desuden skal RESET og HALT være sat i mindst 10 clock cycles når systemet ønskes resat. Der skal være mulighed for at sætte HALT uden at sætte RESET, da HALT indeholder mulighed for bl.a. at tvinge M68k til at udføre en clock cyklus ad gangen. HALT og RESET kan begge fungere som in- og output. Implementering af Halt/Reset kredsløb Til at løse ovenstående problemstilling vælges der en TL7705AC Supply Voltage Supervisor kreds fra Texas Instruments. Denne kreds genererer vha. af få ydre komponenter et meget veldefineret resetsignal. Desuden generer kredsen for at skabe et resetsignal, hvis forsyningsspændingen falder under et acceptabelt niveau. På den måde vil processoren kun køre når, der er en korrekt forsyning. I databladet gives følgende ligning for den tidsforsinkelse der opstår som følge af enten powerup eller et bruger reset. ' (4.1) hvor er i Farad og ' er i sekunder. Det kræves fra M68k, at signalet skal holdes lavt min. efter at forsyningsspændingen er opnået ved opstart [Clements 1997, side 483]. Størrelsen af bestemmes: '! (4.2) (4.3) En kondensator tilsluttes mellem REF og for at gøre REF mere stabil. SEN tilsluttes (gjg, denne undersøger om forsyningen har en for lav spænding. RESET og HALT (M68k) er begge aktivt lave, og derfor benyttes pull-up modstande for at holde disse høje når systemet kører normalt. Værdierne for disse modstande bestemmes vha. nedenstående formler og databladsværdier for M68k [Motorola 27. april 2003, 10-7] og TL7705AC [Texas instruments 5. maj 2003b]. Den maksimal værdi for pull-up modstande: Hvor, ghg B " 37

46 B KAPITEL 4. MINIMUMSYSTEM B er den garanteret mindste spænding, der resulterer i et logisk højt input (M68k). er den strøm, der løber når benet er inaktivt 8. Minimumsværdi for pull-up modstand for RESET: gjg " Hvor, er den største spænding, der kan optræde ved en logisk lav værdi på M68k s RESET ben, når denne er en udgang. er den strøm, M68k kan levere med RESET som en logisk lav udgang. Minimumsværdi for pull-up modstand for HALT: ghg Hvor,! ( " er den største spænding, der kan optræde ved en logisk lav værdi på M68k s RESET ben, når denne er en udgang. er den strøm, M68k kan levere med HALT som en logisk lav udgang. Udover at holde M68k resat under opstart ønskes der også, at M68k kan resettes af brugeren. Dette gøres med en ringetrykknap mellem RESIN og GND. For at holde RESIN høj når der ikke skal resættes indsættes der en pullup modstand. Maksimumsværdi for : Hvor, (gjg B B " B er den mindste spænding, der kan medføre en logisk høj værdi på TL7705A s RESIN ben. er den strøm, der løber ind på RESIN benet, når det er højt. B 8 Der er tale om et tri-state ben og strømmen er opgivet som en thi-state strøm i [Motorola 27. april 2003, side 10-7] 38

47 4.5. DEN SERIELLE FORBINDELSE Da HALT og RESET på M68k både kan være input og output indsættes der dioder mellem TL7704AC kredsen og M68k (se figur 4.5). Disse gør at HALT og RESET kun kan trækkes lav og ikke høj af TL7704AC. For at begrænse spændingsfaldet over dioderne, bruges der en Schottky diode (BAT85). Denne har et spændingsfald på ca. [Phillips Semiconductors N.d.], hvorimod en almindelig diode (eg. 1N4148) har et spændingsfald på ca.. VCC R4 100k R1 100k HALT på M68k R2 100k 2 U2 1 C1 10u C2 100n RESIN CT REF SEN U1 RST RST TL7705A 6 5 R6 10k D1 D2 RST på M68k 0 0 Figur 4.5: Diagram af Halt/Reset kredsløb 4.5 Den serielle forbindelse Title Size Document Number Rev A <Doc> <R Date: Tuesday, April 29, 2003 Sheet 1 of <Title> Udvekslingen af data mellem M68k og PC sker vha en seriel port på wrap boardet samt en tilsvarende port på PC. Forbindelsen følger RS232 standarden. Denne standard giver anvisninger på såvel elektriske transmissionsniveauer som protokol for dataoverførsel. Der anvendes en ACIA EF6850P fra Motorola. samt en MAX232A line driver. ACIA-kredsen tilgås parallelt, og konverterer selv 8 bit data til en seriel datastrøm, bestående af kontrolbits og 8 bit data. Kontrolbits består af start-, stop-, og paritetsbit. Hvis ingen data transmitteres, befinder transmissionslinien sig i en idle-state svarende til logisk højt niveau. Transmissionen starter med et startbit på logisk lavt niveau, dernæst følger databits. Sender-enheden udregner et paritetsbit [Tanenbaum 1999, side 61] og sender det efter de 8 databit og til slut følger 1 eller 2 stopbit [Clements 1997, side 702]. Paritetbit et er ikke påkrævet ligesom antallet af stopbit er valgfrit. Ialt er der 12 mulige formater Opsætning af Dataformat Der defineres et format på datastrømmen (sammensætning af data og kontrolbit), således at det er muligt at afgøre, hvornår der er tale om en gyldig datastrøm. Denne funktionalitet varetages af ACIA en, der har indbygget et programmerbart kontrolregister [Moxsyn N.d.]. Dermed kan man definere det ønskede format. I dette tilfælde er det monitor/debuggeren TS2MON, der skriver til ACIA-enhedens kontrolregister. Denne opsætning er i TS2MON-manualen defineret som: 39

48 KAPITEL 4. MINIMUMSYSTEM 8 bit data word Ingen paritetbits 1 stopbit Clock signal neddeles med 16 Det vælges at anvende en Clock på ( *, hvilket giver en datahastighed på baud. Baudraten er defineret som antallet af mulige logiske transitioner pr. sekund [Tanenbaum 1999, side 107]. Da der i dette tilfælde kun transmitteres 1 bit pr. tidsinterval svarer dette til bitraten, altså bit pr. sekund 9. Samme opsætning skal anvendes i det terminalprogram, der køres fra PC en Opkobling af ACIA ACIA enhedens benforbindelser kan inddeles i 3 kategorier: Data I/O Chip select Serielt interface/rs232 Data I/O ACIA ens I/O ben forbindes til den laveste byte på databussen, hvilket også betyder, at ACIA ens registre kommer til at ligge på ulige adresser. ACIA en indeholder 4 registre på hver 8 bit: Control Register CR: Er et programmerbart kontrolregister, der er write-only. Her kan man sætte ACIA en op som omtalt i Status Register SR: Dette register er read-only, og her kan status på dataoverførslen aflæses. Transmit Data Register TDR: Dette register tilgåes med data, som ønskes transmitteret og er derfor også write-only. Receive Data Register RDR: Dette register indeholder modtagede data, og er derfor read-only. De fire registre kombineres mht. til read-only og write-only, således at der ligger et read-only og et write-only på samme adresse. Derfor bruges, der kun to adresser (1 adresseben) sammen med R/W til at vælge mellem de 4 registre. R/W forbindes til det tilsvarende ben på M68k. RS 10 forbindes til adresse. Her befinder ACIA ens registre sig netop [Sofus Birkedal Nielsen Marts 2002, side 4] og man kan derfor med vælge, hvilket ACIA-register man vil læse/skrive til. E-clock udgangen på CPU en forbindes til den tilsvarende indgang på ACIA en. RxCLK og TxCLK på ACIA en forbindes til en ( Clock, der således kommer til at bestemme datahastigheden som beskrevet i afsnit De to serielle databen TxData og RxData forbindes videre til line driveren (MAX232). 9 Det er muligt at transmittetere flere bit pr. tidsinterval. 10 Register Select 40

49 4.5. DEN SERIELLE FORBINDELSE Chip select ACIA en kan styres af interrupt eller polling. Hvis den interruptstyres vil der blive genereret et interrupt, når TDR er tomt. Dette indikeres ved at SR1 i ACIA ens statusregister er sat (der henvises til [Clements 1997, side 713], hvor formatet på 6850 s statusregister gennemgåes). Fravælges interrupt indikationen skal CPU en istedet polle på ACIA ens statusregister. Detekterer CPU en at dette register er tomt, og ACIA en således er klar til at modtage data skal der overføres data. I dette tilfælde anvendes sidstnævnte princip, hvorfor IRQ-benet (7) ikke forbindes. ACIA en har 3 chipselect ben, hvoraf det ene (CS2) anvendes, medens de to andre CS1 og CS2 forbindes til gjg via en pull- up modstand. Følgende signaler anvendes til at lave (CS2): VMA, VPA og LDS. Disse signaler anvendes i et logisk udtryk, der genererer chipselect: ( (4.4) (4.5) Selekteringen af ACIA kommer altså til at bestå af en adressering af 6850 kredsen fra CPU-side. Denne adressering kobles gennem adressedekoderen tilbage på M68k s VPA ingang, hvorefter der sendes en VMA, og ACIA en kan chipselectes. Disse to signaler er en del af CPU ens synkrone bus. VMA er et svar fra CPU en når denne har modtaget et VPA. Da CPU en poller på denne kreds generer den også selv et VPA (se formel 4.5). Serielt interface/rs232 RS232 standarden beskæftiger sig med såvel det mekaniske som det elektriske interface mellem de to enheder, der foretager en seriel datatransmission. Ydermere defineres også en protokol for hvorledes de to enheder skal kommunikere. Elektriske Niveauer Der defineres nogle logisk høje og lave spændinger med niveauer passende til transmission. Ifølge standarden anvendes følgende niveauer [Clements 1997, side 748]: : B : : B : Dette giver en DC noise immunity på, hvilket er 5 gange så meget som for TTL niveauer. Med andre ord kan der altså påføres signalet op til elektrisk støj før signalet fejltolkes i den anden ende. Til at konvertere mellem TTL og RS232 niveauer anvendes en line driver og tilsvarende line receiver. Begge disse er indbygget i MAX232 kredsen (se [Maxim 5. maj 2003a]). til til til til Det anvendte stik Ifølge RS232 standarden skal der anvendes en 25-Bens D connector [Clements 1997, side 746]. Her anvendes dog en 9-Bens D-connector og den i standarden angivne pin out [Clements 1997, side 747] kan derfor ikke anvendes. Se figur 4.6 for pin out. 41

50 KAPITEL 4. MINIMUMSYSTEM +!!,.- " # $ % & ' ( ) *! Figur 4.6: 9-Bens D-connector RS232 protokollen RS232 standarden blev introduceret så tidligt som 1969 og har siden gennemgået en del revisioner. Den blev defineret til en forbindelse mellem et modem og en computer. I RS232 terminologi benævnes disse Data Communication Equipment (DCE) og Data Terminal Equipment (DTE). I dette tilfælde er det dog to DTE er (M68k og PC), der skal forbindes. RS232 protokollen består af en handshake funktion mellem de to DTE/DCE. Dette handshake involvere følgende signaler: Request To Send RTS: Defineret som et signal fra DTE en til DCE en om at førstnævnte ønsker at påbegynde en datatransmission Clear To Send CTS: Er et svar fra DCE en på RTS. Svaret indikerer at modemet er klar til at modtage data Data Terminal Ready DTR: Er et signal fra terminalen til modemet om, at transmissionslinien er åben og DTE en er klar til at modtage data. Der anvendes ikke handshake her, da TS2MON sætter ACIA ens kontrolregister op til at køre uden denne handshake funktion. Derfor forbindes disse ben hverken på ACIA kredsen eller stikket. Der skelnes mellem simplex-, half-duplex- og full duplex-kommunikation. I dette tilfælde anvendes full duplex, således at der er mulighed for at skrive til ACIA ens Recieved Data Register (RDR) samtidig med at der læses fra dens Transmitter Data Register. Der er altså tale om to DTE er, der skal kommunikere i full duplex. Dette betyder ifølge RS232 standarden, at received data og transmitted data skal krydskobles [Clements 1997, side 746]. Derfor forbindes R1OUT på MAX232A til ben 3 på stikket, og T1OUT til ben 2. Der henvises til [Dataip 2003] for en oversigt over benforbindelser for en 9-Bens D connector. 42

51 5KAPITEL Kapitlets indhold 5.1 Systemoversigt Procesopdeling Procesgrænseflader KnapInput UdlæsningsReg IRQ-Enable Tilstands-/Dataflowstyring IDReg

52 KAPITEL 5. SYSTEMDESIGN 5.1 Systemoversigt En oversigt over systemet er vist på figur 5.1 og systemet har følgende eksterne grænseflader: 1. Knapper til registrering af brugerinputs. 2. Display til udlæsning af informationer til brugeren. 3. Mikrofon (LydInd). 4. Højttaler (LydUd). 5. Seriel kommunikation til overførsel af optagelser til dockingstation. Punkterne refererer til tallene på figuren. $&%('*)+%! " # Figur 5.1: Den stiplede linie illustrerer systemets eksterne grænseflade. Numrene bruges i beskrivelsen af de enkelte grænseflader. På baggrund af kravspecifikationen og de eksterne grænseflader, kan systemet opdeles i funktionelle blokke. Brugerinput Det vælges at registrere brugerinput vha. en række knapper, jvf. hændelserne med oprindelse i brugerinput fra tabel 2.1 på side 10. Funktionen registrerer hvilken knap, der er trykket på og sørger for, at denne information bliver gjort tilgængelig for resten af systemet. Udlæsning Det er valgt at lave kommunikationen til brugeren vha. et display med 4 linier af hver 16 tegn. Denne funktion skal styre displayet og udlæsning af informationer til brugeren. Lydindgang Denne funktionalitet skal omsætte lyden til digitalt format. Lydudgang Denne funktionalitet skal genskabe det optagede lydsignal ud fra de lagrede digitale data. Overførsel Til overførsel af optagelserne skal der bruges en funktion, der kan styre kommunikationen mellem Diktafon og Dockingstation. Tilstandsstyring Funktionaliteten skal sikre, at betjeningen fungerer i overenstemmelse med kravspecifikationen. Dataflowstyring Denne funktion skal håndtere placeringen af lyddata i hukommelsen, styre programafviklingen 1, samt styre hvilke enheder, der kan tilgå lageret. 1 Hermed menes, at de andre funktioner udføres på de rigtige tidspunkter, og i den rigtige rækkefølge. 44

53 5.2. PROCESOPDELING Ur Dette skal bruges til tidsstempling af optagelser. Kommunikationen mellem de funktionelle blokke er vist på figur 5.2. # # &' $%)(* $% +, ' +,'!!"" # %6#7 4 # 5 -/ Figur 5.2: Funktionel opdeling af systemet. Stregerne viser kommunikationen mellem funktionerne. Pilene angiver retningen, hvor der kun er envejskommunikation. 5.2 Procesopdeling Ud fra funktionerne opdeles systemet i en række processer alt efter hvilke funktioner og opgaver, der skal udføres uafhængigt af hinanden. Det vælges at lave hver funktionalitet i en selvstændig proces. Der er altså disse processer i systemet: Dataflowstyring, Tilstandsstyring, Ur, Brugerinput, Udlæsning, Overførsel, Lydindgang og Lydudgang Opdelingen af systemet i processer og grænsefladen mellem hardware og software er vist på figur 5.3 på side 47. Det ses, at i de fleste processer er det nødvendigt at lave en del af processen i hardware og en anden del i software. Det vælges at lave kommunikationen mellem disse dele vha. autovektoriserede interrupts. Der er i alt 7 IRQ-niveauer i M68k, hvor 7 er det højeste. Niveau 7 skal bruges til NMI (se afsnit på side 36). Der er således 6 IRQ-niveauer fri til andre formål, og med 6 processer, der har brug for denne kommunikation med hardware, er det således elegant at lave dette vha. autovektoriserede interrupts. Det er nødvendigt at prioritere processerne, inden de tildeles IRQ-niveau, for at sikre kritiske data. Den prioriterede rækkefølge af IRQ-niveauer for processerne er som følger: ➆ NMI - Dette skal være på niveau 7. 45

54 KAPITEL 5. SYSTEMDESIGN ➅ Lydudgang - Det er vigtigt, at konverteringen af de digitale signaler sker med (")* ikke at forvrænge lydsignalet. ➄ Lydindgang - Det er vigtigt, at konverteringen af de analoge signaler sker med ("). ➃ Overførsel - Den synkrone dataoverførsel mellem M68k og ACIA må ikke kunne afbrydes. ➂ Ur - Der er et sekund mellem hvert interrupt fra denne proces. Det er derfor ikke kritisk, at det bliver behandlet præcist på det tidspunkt interruptet kommer. ➁ Udlæsning - Opdatering af displayet er ikke så tidskritisk som konvertering af lyd. Det vælges at opdatere displayet med en frekvens på (. Udlæsningen er sat et niveau under Ur-processen for ikke at blokere for opdatering af ID-numre. ➀ Brugerinput - Disse kan komme på vilkårlige tidspunkter og er pr. definition langsomme, da de er genereret af brugeren. Samtidigt er det vigtigt, ikke at blokere for andre processer. for Tallene i cirklerne (sort på hvid baggrund) angiver IRQ-niveau og henviser til den tilsvarende markering på figur 5.3 på næste side. Bemærk: Processerne Lydudgang, Lydindgang og Overførsel kan betragtes som værende på samme interruptniveau, da der kan lukkes af for disse vha. IRQ- Enable (Se ➌ på figur 5.3 på modstående side) og ved at tilgå et kontrolregister i ACIA en. Der laves et modul i processen Dataflowstyring, der sikrer, at kun en af disse tre processer kører af gangen. Se afsnit Designet af, hvordan tildelingen af interrupt niveauer til processerne skal implementeres i hardware vil blive beskrevet senere. Se kapitel 6 på side 53. Processerne, Dataflowstyring og Tilstandsstyring er rene softwareprocesser, og er derfor ikke med i prioriteringen, af interrupts. 46

55 & "! / 6 </ 2 6 7A1 9 G" 5.2. PROCESOPDELING 5 - # /, -. ➎ ➊ ➀! ➂ #! ➋ 1 2 / " ➁ + " $ 61 2 : ; 1 2 / 4 - ; 9 4 < 2 9!! % " ➄ ➍ )* '( # ➌ / 6 2</ 6. : ;!!& % " ➅ F 1 2 / 4 - ; I JK 9 4 < H < ED $CB ➃ 7 9 = -0 > Figur 5.3: Procesopdeling af systemet med fine stiplede linier. HW/SW grænseflader opdelt med den grove stiplede linie. 47

56 KAPITEL 5. SYSTEMDESIGN 5.3 Procesgrænseflader Grænsefladerne mellem processerne er markeret med hvide tal i sorte boller på figur 5.3 på forrige side. Her er en liste over procesgrænsefladerne. Bemærk at ➌ (IRQ-Enable) både er proces- og HW/SW-grænseflade KnapInput KnapInput ➊ er et 8 bit register, der indeholder information om hvilken knap der er trykket på. Dette er vist på figur 5.4. De enkelte bits i registret forkortes med 7 1 BYTE Status Fejl Knap Figur 5.4: KnapInput ➊. De fire laveste bit angiver, hvilken knap der har været trykket på. Flagene status og fejl angiver hhv., om registret er læst af processen tilstandsstyring (1 for ulæst, 0 for læst) eller, om der er sket en fejl i processen Brugerinput. Den grå farve betyder, at disse bit ikke benyttes. Status er et flag, der angiver om KnapInput er blevet læst af processen Tilstandsstyring; 1 for ulæst, 0 for læst. Status kan kun sættes af processen Brugerinput, og kun nulstilles af processen Tilstandsstyring. Fejl angiver om der er sket en fejl i processen Brugerinput og kan kun ændres af denne; 1 for fejl, og 0 hvis processen kører som den skal. Knap til. Tabel 5.1 på modstående side viser, hvilken betydning de forskellige knaptryk har for indholdet af registret. 4 bit giver 16 mulige kombinationer. Da der kun er 13 knapper efterlades 3 muligheder ubrugte, og hvis de forekommer skal de ikke tolkes som knapinput, men i stedet behandles som fejl. til må kun ændres af processen Brugerinput UdlæsningsReg UdlæsningsReg ➋ er et array, der indeholder 65 tegn. Det første tegn er et flag, der angiver om data er læst. ( N = ulæst). De resterende 64 tegn skal udlæses i displayet (4 linier på hver 16 tegn, samlet i en streng på 64 karakterer.). Figur 5.5 på næste side viser et eksempel på en displayudlæsning IRQ-Enable Formålet med IRQ-Enable ➌ er at styre interrupts fra ADC og DAC, så de ikke kommer igennem når der ikke er brug for data fra disse. IRQ-Enable laves vha. et 2 bit hardware register. Tabel 5.2 på side 50 viser betydningen af indholdet i IRQ-Enable. 48

57 5.3. PROCESGRÆNSEFLADER Betydning [ubrugt] POWER PLAY RECORD PAUSE STOP NEXT PREVIOUS FORWARD REWIND DELETE OK CANCEL UPLINK [ubrugt] [ubrugt] Tabel 5.1: Betydningen af de forskellige kombinationer i feltet Knap i registret KnapInput ➊. #42 Tid:22:04:12 Optager Memory: XXXXX--- Figur 5.5: Eksempel på udlæsning i display. Antallet af X er angiver hvor meget memory der er brugt Tilstands-/Dataflowstyring Grænsefladen ➍ er mellem to SW-processer, der ikke er interruptstyrede. De skal dog stadig deles om CPU tiden, hvorfor det vælges at lade den ene proces styre den anden, vha. et funktionskald. Det vælges at lade Dataflowstyringen kalde Tilstandsstyringen med jævne mellemrum. Der overføres kun de parametre, der er nødvendige for at tilstandsstyringen kan afvikles. Derved holdes de fleste informationer skjult processerne imellem. Funktionsnavn: Tilstandsstyring Input: Intet Funktion: Afvikler processen Tilstandsstyring. Kommunikationen foregår via. globale variable. Variablerne FejlNr og memorystatus opdateres af Dataflowstyring og fungerer som 49

58 & KAPITEL 5. SYSTEMDESIGN Valgt 0 0 [ingen] 0 1 ADC 1 0 DAC 1 1 [forbudt] Tabel 5.2: IRQ-Enable. og refererer til databussen, når der skrives til registret. input til funktionen. Variablerne Tilstand og Id-nummer opdateres af Tilstandsstyring og er returværdierne fra funktionen. Variablene FejlNr og Tilstand ses i tabel 5.3. Output: Intet Tilstand Betydning 2 Optag 4 Afspil 7 Slet optagelse 9 Slet alle optagelser 12 Overfør optagelse 14 Spol frem 15 Spol tilbage FejlNr Betydning 0 Alt ok 4 Hukommelse fuld 5 Track slut 6 Sletning færdig 9 Overførsel færdig (a) Tilstande der medfører, at en funktion udføres i processen Dataflowstyring. (b) Betydninger af FejlNr, der skal sendes fra Dataflowstyring til Tilstandsstyring. Tabel 5.3: Beskrivelse af Tilstand og FeljNr til kommunikation mellem processerne Dataflowstyring og Tilstandsstyring ➍ IDReg Registret IDReg ➎ indeholder 32 bit, inddelt som vist på figur 5.6. Registret opdateres hvert sekund af Ur-processen. 2,& 2'43,5 ')(*',+ -./10! #"$ % Figur 5.6: Registret IDReg ➎. Data De 30 laveste bit bruges til at lagre et tal, der angiver antallet af sekunder siden systemt blev startet. Dette gør det muligt af for systemet at køre ca. 34 år, uden at to optagelser får det 50

59 !!! 5.3. PROCESGRÆNSEFLADER samme ID-nummer. Der kan højst laves en optagelse i sekundet. ' & å " å (5.1) å Status Feltet angiver om registret er læst af processen Tilstandsstyring; 1 for ulæst, 0 for læst. Dette er nødvendigt for at undgå, at to optagelser tildeles samme ID-nummer, f.eks. hvis brugeren forsøger at lave mere en en optagelse pr. sek. Processen Ur skal sætte status til 1 (ulæst) hver gang registret opdateres, og tilstandsstyringen skal sætte status til 0, når det læses. Fejl Hvis der sker en fejl i forbindelse med opdateringen af uret skal feltet Fejl sættes til 1. Hvis opdateringen gik uden problemer skal Fejl sættes til 0. 51

60 .

61 6KAPITEL Kapitlets indhold 6.1 Forudsætninger IRQ-Håndtering BrugerInput Knapmodul Udlæsning Display Ur HW-ur Overførsel ACIA Lydindgang Mikrofon og Forstærker ADC Lydudgang DAC Højttaler og forstærker IRQ-Enable Adressering af perifære enheder

62 KAPITEL 6. HARDWARESTRUKTUR 6.1 Forudsætninger Dette kapitel tager udgangspunkt i processerne beskrevet i afsnit 5.2 på side 45. Hver enkelt proces tildeles et afsnit, hvorunder det beskrives hvilke hardwaremoduler, der kræves for at implementere disse processer. Modulerne IRQ-Håndtering, IRQ-Enable og Adressering tildeles ligeledes et afsnit, men er ikke afledt af nogen proces. Modulernes generelle funktionalitet gennemgåes, hvorefter en punktopstilling med krav til modulets funktionalitet samt dets grænseflader til andre moduler følger. Selve designet af modulerne dokumenteres i kapitel 7, dog er nogle moduler undtaget, da deres funktionalitet ud fra beskrivelsen i dette afsnit alene kan implementeres i programmerbar logik. 6.2 IRQ-Håndtering Det ønskes at sende autovektoriserede interrupts mellem M68k og de enkelte perifære enheder. Til dette formål opbygges hardware modulet IRQ-Håndtering. De nødvendige funktioner i dette modul implementeres i en PEEL. Der tages udgangspunkt i den hardware, der er defineret under opbygning af minimumsystemet (se punkt 1, 2 og 3 på side 36). Der tilkobles kun een enhed pr. interruptniveau. På denne måde har M68k en ikke behov for at identificere enheden, da interrupt niveauet i sig selv identificerer enheden entydigt. Tildelingen af niveauer er foretaget i afsnit 5.2. Det er nødvendigt, at de enkelte enheder sender et VPA-signal for at informere M68k om, at der ønskes en autovektoriseret interrupt cyklus. Dette signal skal komme som et respons på et IACK-signal. Der må gå mellem og fra AS sendes fra M68k, til VPA-signalet modtages [Motorola 27. april 2003, 10-11]. Det kan derfor vælges at lade IRQ-Håndtering-modulet stå for at sende dette signal til M68k samtidig med, at der sendes et IACK-signal til enheden. Følgende krav kan stilles til designet af dette modul: 1. Kredsen skal have 7 input til interruptsignaler. 2. De 7 interruptsignaler skal enkodes til en 3-bit kode. Enkodningen skal prioriteres (jvf. afsnit på side 36). 3. Kredsen skal generere et IACK-signal med samme niveau som det modtagne interrupt. 4. De 7 IACK-signaler skal afledes af 3-bit koden -, FC0-2 og AS. 5. Ved generering af et IACK skal der samtidig sendes et VPA tilbage til M68k. 6.3 BrugerInput Det skal være muligt at modtage input fra brugeren og videregive information til systemet. De 13 mulige brugerinputs (jvf. tabel 2.1 på side 10) skal kunne foretages af brugeren vha. 13 knapper Knapmodul Dette modul skal enkode Bit-mønstret på 13 bit, til 4-bit som angivet i tabel 5.1 på side bit koden skal lagres indtil dataen er overført. Registeret tilgåes på adresse (se tabel 4.1 i 54

63 6.4. UDLÆSNING afsnit 4.3). Der skal altså overføres 4 bit, hvilket kræver, at KnapInput registeret kan adresseres, og at det kan tilgå systemets databus med mindst 4 bit. Der skal desuden sendes et DTACK-signal, når dataene er klar til at blive læst fra bussen. Følgende krav kan stilles til designet af dette modul: 1. Der skal være 13 knapper. 2. Der skal foretages en enkodning af de 13 bit til 4 bit. 3. Det skal ikke være muligt at registrere to eller flere knaptryk samtidigt. Enkodningen skal altså være prioriteret. 4. Registeret skal kunne adresseres på adresse. 5. Der skal sendes et DTACK-signal til M68k en, når data er klar. 6.4 Udlæsning Det skal være muligt at udskrive meddelelser til brugeren i form af tegn og tekst Display Dette modul skal varetage visningen af information til brugeren. I tabel 2.1 på side 10 er der defineret, hvilke typer af tekststrenge og tegn, der skal kunne udlæses. Det er defineret (punkt 2) i afsnit 2.5 på side 17, at systemet skal have en responstid set fra brugerside på maksimalt 1 sekund. Dette implicerer, at displayet skal opdateres på under et sekund. Displayet opdateres, hver gang den tilhørende interruptrutine afvikles (og der står noget nyt i UdlæsningsReg. Se afsnit på side 48). Følgende krav kan stilles til designet af dette modul: 1. Modulet skal afgive et interruptsignal til styring af opdateringshastigheden. 2. Alle tegn på displayet skal opdateres under interrupt sekvensen og mindst 1 gang pr. sekund. 3. Displayet skal være af en type, der muliggør udskrivning af fejlbeskeder i hht. tabel 9.1 på side Displayet skal kunne tilgåes fra (som beskrevet i afsnit 4.1 på side 29). 5. Der skal foregå en asynkron dataoverførsel. 6.5 Ur Ifølge afsnit på side 7 skal det være muligt at navngive hver optagelse unikt. Dette gøres vha en tidsstempling med en opløsning på et sekund. Uret håndteres i software vha. et signal fra hardware hvert sekund (se afsnit på side 11) HW-ur Dette modul skal genere et interrupt hvert sekund. 55

64 KAPITEL 6. HARDWARESTRUKTUR 6.6 Overførsel Formålet med denne proces er at overføre lyddata fra diktafonen til en dockingstation, når dette ønskes. Der skal i hardware designes en seriel forbindelse mellem M68k og en dockingstation. Processen kræver, udover ACIA-modulet/interruptrutinen, også linedrivers til at konvertere TTLniveauerne fra ACIA-kredsen til RS232 niveauer (se [Clements 1997, side 748]). Grænsefladen mellem ACIA-enheden og RS232 forbindelsen omhandles ikke her, se RS232-standarden [Clements 1997, side 744] ACIA Modulet skal muliggøre overførsel af data til en dockingstation (se afsnit punkt 2). Denne funktionalitet skal kun bruges, når det vælges af brugeren vha. UPLINK knappen. Derefter skal forbindelsen opretholdes indtil, der ikke er mere data at overføre. For at undgå, at M68k en bruger tid på at behandle interrupts fra denne enhed, når der ikke overføres, skal det være muligt vha. software at slå interruptsignalet til og fra. ACIA en indeholder 4 registre, der er placeret på to ulige 8-bit adresser 1 (se afsnit på side 40). ( Ifølge figur 4.1 på side 29 skal kredsen kunne adresseres i området fra til og med (. Det skal kunne indikeres til brugeren, hvorvidt forbindelsen til dockingstation en afbrydes under transmissionen (se figur 2.10 på side 15). Følgende krav kan stilles til ACIA-modulet: 1. Der skal overføres 8 bit data serielt (se afnit på side 7). 2. Det skal være muligt at slå interruptstyring til og fra i software. 3. Det skal indikeres, hvis den elektriske forbindelse mellem ACIA og dockingstation afbrydes. ( ( 4. ACIA kredsen skal kunne adresseres i området fra til og med. 6.7 Lydindgang For at repræsentere lyd på binær form skal der udføres en passende signalbehandling og en konvertering fra det kontinuerte til det diskrete tidsdomæne. Denne proces kan inddeles på følgende vis: 1. Elektrisk repræsentation: Det akustiske signal skal omdannes til et analogt elektrisk signal. 2. Forstærkning og niveautilpasning: Inden signalet konverteres til diskret tid, skal det forstærkes til at have en amplitude og niveau, der er passende i forhold til egenskaberne ved en given AD-konverter. 3. Filtrering: Det er en forudsætning, at der er tale om et båndbreddebegrænset signal, hvis der skal foregå en analog-digital konvertering [Oppenheim, Schafer & Buck 1999, side 185]. 4. Repræsentation i diskret tid: Signalet skal repræsenteres i diskret tid. Dette kræver, at det kontinuerte signal samples til diskrete tidspunkter. Det vælges at sample med en opløsning på 8 bit ved ( ". 1 Registrene er grupperet således at to registre tilgåes på samme adresse med R/W. 56

65 ! 6.7. LYDINDGANG Punkt 1 til og med 3 betragtes som værende et modul og benævnes Mikrofon og Forstærker. Punkt 4 implementeres i form af en A/D-konverter 2, som benævnes ADC. Der kan nu opstilles krav til disse moduler ud fra grænsefladerne til resten af systemet Mikrofon og Forstærker Den elektriske repræsentation opnåes ved, at mikrofonen omdanner lydbølger til elektriske signaler. Derefter vil det være nødvendigt at foretage en tilpasning af signalets amplitude og frekvensbånd. Det ønskede frekvensområde er i kravspecifikationen (afsnit på side 7) fastsat til området til *. For helt at undgå aliasering skal signalet være dæmpet fuldstændigt ved det halve af samplingsfrekvensen 3 [Oppenheim, Schafer & Buck 1999, side 146], (. Med en opløsning på 8 bit er der 7 bit til at repræsentere amplituden af signalet og et bit til at indikere. Dermed er det nødvendigt med en dæmpning på mere end l<j. Spændingsniveauet på signalet, der sendes videre til ADC-modulet, skal tilpasses til konverterens full scale range. Signalspændingen skal svare til det halve af full scale range. Hermed vil den maksimale amplitude også svare til halvdelen af full scale range. Derfor vælges en konverter allerede under designet af Mikrofon og Forstærker modulet. Der tages udgangspunkt i at lydtrykket ved menneskelig tale målt i en meters afstand fra en person svarer til [Department of Acoustics 9. april 2003]. 1. Der anvendes en mikrofon til at konvertere lydbølger til elektriske signaler. 2. Båndbredden begrænses til området * til *. 3. Signalet skal være dæmpet med mindst ved *. 4. Signalet på modulets udgang skal have et DC-offset på halvdelen af A/D konverterens full scale range. 5. Signalet på modulets udgang skal have en maksimal amplitude på halvdelen af A/D konverterens full scale range. 6. Der tages udgangspunkt i at et talesignal frembringer et lydtryk på! ADC Dette modul har til formål at konvertere det analoge signal leveret af Mikrofon og Forstærker til det digitale LydInd signal i hht. tabel 2.1 på side 10. Der skal samples med en frekvens på ( " og en opløsning på 8 bit. Efter en konvertering skal der sendes et interruptsignal. Fra Mikrofon og Forstærker modtages et båndbreddebegrænset signal med en passende amplitude. Følgende krav kan opstilles: 1. Samplingsfrekvensen skal være (")*. 2. Opløsningen skal være 8 bit. 3. Komponenten skal have et 8-bit data-register, som holder data indtil M68k en har læst disse. 4. Der skal afgives et interruptsignal efter hver konvertering. 2 Analog til Digital konverter 3 Der foretages en nærmere redegørelse under designet i afsnit på side

66 KAPITEL 6. HARDWARESTRUKTUR 5. Efter hver konvertering skal der foretages en asynkron læsecyklus. Kredsen skal derfor interfaces til M68k s asynkrone bus. 6.8 Lydudgang Det digitale signal skal omdannes til et analogt signal, og påtrykkes en højttaler. Modulet skal derfor indeholde følgende funktionaliteter: 1: Digital til analog konvertering. 2: Spændings- og strømforstærkning. 3: Analogt til akustisk signal. Til at foretage den digitale konvertering bruges en D/A-konverter 4, benævnt DAC. Punkt 2 og 3 implementeres med et Højttaler og Forstærker modul DAC Modulet har til formål at konvertere lyd, repræsenteret som binær data, til et elektrisk signal bit lyddata skal konverteres til et kontinuert elektrisk signal. 2. Der skal afgives et interruptsignal med ("), så der konverteres med samme frekvens som der samples (se afsnit på side 7). 3. Interruptsignalet skal kunne afbrydes vha. software Højttaler og forstærker For at genskabe det oprindelige akustiske signal, skal det kontinuerte signal fra modulet DAC gennemgå en signalbehandling. Signalet skal spændings- og strømforstærkes og udgangsimpendansen sænkes for at drive en højttaler. Lydniveauet skal kunne justeres logaritmisk med en Volumenkontrol (se krav 5 i afsnit på side 7). Højttalerkredsløbet skal som minimum kunne forstærke et signal svarende til et absolut lydtryk på! i 1 meters afstand. Lydtryksniveauet for afspilning skal mindst svare til indspilningsniveauet, se punkt 6 i afsnit på forrige side. Der skal desuden foretages en filtrering således, at signalets DC-offset (se punkt 4 i afsnit 6.7.1) fjernes inden signalet påføres højttaleren. 1. Der skal foretages en spændingsforstærkning. 2. Det er valgt at anvende en ( højttaler. 3. Lydniveauet skal kunne justeres vha. en logaritmisk volumenkontrol. 4. Kredsløbet skal kunne frembringe et lydtryk svarende til! i 1 meters afstand. 5. Forsyningen er. 4 Digital til Analog konverter 58

67 i i i ( i 6.9. IRQ-ENABLE 6.9 IRQ-Enable Som nævnt under modulerne ADC, DAC og ACIA skal interrupt fra disse kunne slåes til og fra vha. software. Grunden til dette valg er at aflaste CPU en. ADC og DAC afgiver hver interruptsignaler 8000 gange i sekundet, mens ACIA med en baud-rate på sendes interrupts pr. sek 5. Displayet sender 8 interrupts pr sek. og uret 1 interrupt pr. sek. Da de enheder, der har det laveste IRQ-niveau, hele tiden skal kunne interrupte, kan interruptmasken ikke sættes op for at ignorere dem. Dvs. at alle interrupts skal afvikles. Det tager 44 clock perioder af for M68k at afvikle en interruptrutine [Motorola 27. april 2003, side 8-11]. Der er tale om en bestcase beregning, der inkluderer tiden, fra interruptsignalet er afgivet, til den første instruktion i interruptrutinen er hentet. Tiden, der går med interrupthåndtering: ( ( " " Forudsat, at M68k ikke afspiller eller optager, vil en stor del af denne tid være spildtid. Slåes interruptstyringen fra i ADC, DAC og ACIA når disse enheder ikke benyttes opnåes følgende: Aktiv Enhed Processor tid ADC, Display og ur 4,4% DAC, Display og ur 4,4% ACIA, Display og ur 6,3% Display og ur 0,05 ACIA modulet indeholder et kontrolregister, hvor det er muligt at bestemme, hvorvidt der sendes interruptsignaler. Der skal således ikke implementeres hardware til ACIA modulet. Til ADC og DAC implementeres et 2-bit register IRQ-Enable i en PEEL. Der henvises til afsnit på side 48 for en gennemgang af hvilke værdier, der indikerer hvad. Registreret placeres på samme adresse som ADC en og R/W bruges så til at vælge mellem disse to moduler. PEEL en tilgås af følgende signaler: Chipselectet til ADC en fra Adressering modulet. R/W fra M68k. - fra systemets databus. Interruptsignaler fra ADC og DAC. Kun når ADC en eller DAC en er valgt i IRQ-Enable registeret, føres interruptsignalerne videre til M68k Adressering af perifære enheder I henhold til tabel 4.1 på side 30 skal følgende udtryk implementeres i Adressering modulet. Dette laves i en PEEL. 5 Der skal overføres 8 bit data, et stopbit og et startbit 59

68 KAPITEL 6. HARDWARESTRUKTUR ACIA-User 8 :9 9 >9 *9 *9 9 9 ADC DAC Display 8 :9 9 >9*9 *9 Knapper

69 7KAPITEL Kapitlets indhold 7.1 IRQ-Håndtering Testspecifikation for IRQ-Håndterings modul Knap Modul Design Diagram Programmering i PEEL Timing Testspecifikation for Knapmodulet Display Kontrastreguleringskredsløb Timing Instruktionssæt Display initialisering Interruptsignal Testspecifikation for Display modul Hardware Ur Testspecifikation for HW-ur modul ACIA USER Opsætning af data Interruptstyring Indikering af Afbrydelse Hardware Opkobling Opsætning af Kontrolregister Testspecifikation for ACIA USER modul Mikrofon og Forstærker Valg af mikrofon Filtrering Forstærkning og niveau tilpasning Krav til LydInd kredsløb Design af Lydindgang Forstærkning og filtrering Opkobling af Anti-aliaserings-filter Testspecifikation for Mikrofonforstærker modul ADC modul Opsætning af ADC Testspecifikation for ADC modul

70 KAPITEL 7. HARDWAREMODULER 7.9 Højttaler & Forstærker Testspecifikation for Højtaler og Forstærker modul D/A-konvertering Testspecifikation for DAC modul IRQ-Enable Testspecifikation for IRQ-enable Modul

71 7.1. IRQ-HÅNDTERING 7.1 IRQ-Håndtering Dette modul opbygges i en PEEL [Integrated Circuit Technology Corp. 29. april 2003]. Funktionaliteten kan ses i afsnit 6.2 på side 54. På figur 7.1 ses et kredsløbsdiagram af IRQ-Håndtering. En AND-Gate og en 3-8-dekoder 74HC138 er benyttet, da PEEL en ikke havde nok ind- og udgange. To af registrene og dermed udgange, bliver brugt til en tilstandsmaskine for at fjerne prel fra NMI-knappen. Det er valgt at lave IRQ-signalerne aktiv høje, undtagen ACIA-USER. 2 1 D FC2 M68k FC1 M68k FC0 M68k!AS PEEL: Ur og Display IRQ fra DAC IRQ fra ADC!IRQ fra Acia IRQ fra Ur IRQ fra Display IRQ fra Knap A1 M68k A2 M68k A3 M68k PEEL for IRQ-håndtering 14 I I/O 15 I I/O 16 I I/O 17 I I/O 18 I I/O 19 I I/O 20 I I/O 21 I I/O 22 I I/O 23 I I/O I I/CLK 22CV10A Dekoder A B C G1 G2A G2B 74HC138 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 IPL0 M68k IPL1 M68k IPL2 M68k 8MHz clk NMI-knap VPA på M68k IACK1 IACK2 IACK3 IACK4 IACK5 IACK6 C Figur 7.1: Diagram over IRQ-Håndtering B Testspecifikation for IRQ-Håndterings modul IRQ-Håndtering modulets hardware er ikke blevet testet, men PEEL prommet er simuleret i Win- Place 1, se afsnit I.1 på side Konklusion 4 3 A Title <Title> Udfra simulering kan det konluderes at programmet virker og da hardwaren kun består af PEEL en og en decoder, betragtes modulet som godkendt. Size Document Number Rev A <Doc> <RevCode> Date: Friday, May 23, 2003 Sheet 1 of Knap Modul Dette modul skal modtage input fra brugeren i form af knaptryk, og sende informationen til M68k Design Ved et knaptryk skal et autovektoriseret interrupt foregå. Dataene, der indeholder information om, hvilken knap er trykket på, skal overføres asynkront til M68k. 1 Et udviklingsværktøj fra ICT 63

72 KAPITEL 7. HARDWAREMODULER For at kredsen kan huske, hvilken knap der er blevet påvirket, og hvorvidt data er overført til M68k, er det nødvendigt med hukommelse. Derfor opbygges en tilstandsmaskine i en PEEL-kreds (22CV10A, datablad [Integrated Circuit Technology Corp. 29. april 2003]). Der skal ialt realiseres 13 knapinput med trykknapper. De opbygges med pull-up modstande til at være aktivt lave. PEEL-kredsen, har ialt 22 I/O, hvoraf maksimalt 10 kan være output. 2 indgange benyttes til clocksignaler. En til at styre den interne hastighed af PEEL en (CLK, ( ), og den anden til at styre " hastigheden af registrering af knaptryk (KRATE, ). For hver udgang er der tilknyttet en Macro-celle, som indeholder en D-flipflop. To af cellerne benyttes til registre for tilstandsmaskinen. Udgangen som er koblet på databussen,, skal være af tristate-typen. For at kommunikere med M68k og foretage IRQ skal der indgå flg. signaler: Input fra Adresse-dekoder : CS Output til IRQ-styring: : IRQ Output til M68k : IACK og VPA håndteres internt i IRQ-Håndtering. DTACK-signalet til CPU en genereres vha. CS, og håndteres af den perifærere adressedekoder. Herefter er der 3 udgange og 9 indgange til rådighed, og enkodningen skal derfor foregå udenfor PEEL-kredsen. Der anvendes 2 stk. 8-3 prioriterede linie enkoder, 74HC148 fra Toshiba [Toshiba 6. maj 2003]. I flow-diagrammerne er knapperne defineret med samme prioritet, modsat dette design. I praksis vil det set fra brugeren, foregå så hurtigt, at de kan betragtes som værende på samme niveau enkoder CS CLK Figur 7.2 viser enkoderkredsen 74HC148. Alle dataind- og udgange er aktiv lave. Når EI er aktiv er dataudgangene, A0-A2, aktive. Ved en påvirkning af IN0-IN7, hvor IN7 har højest prioritet, enkodes I/Oinputtet 14 og IRQudlæses på A0-A2, samtidig med at GS går aktiv lav. E0 er høj, når der ikke er inputs. I/O D3 KNAP-PEEL I I I I I I I I I I I I/CLK 22CV10A I/O I/O I/O I/O I/O I/O I/O I/O D2 D1 D0 10 IN0 A IN1 12 IN2 A IN3 1 IN4 A2 6 2 IN IN6 GS 4 IN7 5 EI EO 15 74HC148 Figur 7.2: 8-3 linie enkoder Ved at kombinere to enkodere kan der, vha. logiske udtryk, fremkomme en 16-4 prioriteret enkoder. En enkoder, KNAP-L, repræsenterer knapinput 0-7 og en anden, KNAP-H, knapinput D C 64

73 ! 7.2. KNAP MODUL Der kan opstilles flg. logiske udtryk for enkodningen: i i i Idet, der er koblet to enkodere efter hinanden, er det nødvendigt, at kun en af disse kredse er aktiv af gangen for at bibeholde prioriteringen. Der vil gå, fra en knap tilsluttet KNAP- H aktiveres til KNAP-L deaktiveres. Med andre ord vil det kunne medføre fejlagtigt input, hvis brugeren påvirker to knapper tilkoblet hhv. KNAP-L og KNAP-H indenfor. Dette anses dog for en umulig hændelse, og der ikke vil blive taget højde for i designet. Ifølge databladet vil det typisk vare før udgangene på enkoder-kredsen har stabiliseret sig ")* ved en påvirkning. Ved at indføre et clock-signal på til at styre hastigheden, hvormed knaptrykkene registreres gives der rigeligt tid til, at udgangene på enkoderkredsene kan stabiliseres. Dette clock signal benævnes i designet KRATE. Vha. KRATE begrænses også hastigheden hvormed et IRQ-signal til M68k kan forekomme. Knapper Som input benyttes trykknapper med pull-up modstande. Forsyningen er på. Følgende værdier for enkoderkredsen er opgivet ved! : B B. (.. Værdierne anvendes selvom, at forsyningsspændingen i dette tilfælde er på, da der blot ønskes en overslags-beregning. Den maksimale værdi for pull-up modstanden,, findes udfra: gjg ( B gjg Den mindste værdi afgøres af hvor stor en strøm, der kan trækkes fra forsyningen. Modstandenene " sættes. Dette bevirker, ved tryk på alle knapper på samme tid, en maksimal strøm på: ghg " Denne strøm anses, som værende ubetydelig. B 65

74 5 KAPITEL 7. HARDWAREMODULER D C 13 x Knapinput Rk 100k 5Vdc 0 5Vdc 0 0 KNAP-H 10 9 IN0 A0 11 IN IN2 A1 13 IN3 1 6 IN4 A2 2 IN5 3 IN6 GS 14 4 IN7 5 EI EO 15 74HC148 KNAP-L 10 9 IN0 A0 11 IN IN2 A1 13 IN3 1 IN4 A2 6 2 IN IN6 GS 4 IN EI EO KRATE CS CLK KNAP-PEEL I I I I I I I I I I I I/CLK 22CV10A I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O IRQ D3 D2 D1 D IN0 A0 IN1 IN2 A1 IN3 IN4 A2 IN5 IN6 GS IN7 EI EO 74HC1 74HC148 B Figur 7.3: Diagram for knapmodul Diagram Diagrammet for det konstruerede knapmodul er vist på figur 7.3. A KNAP-H indgange, IN0-IN7, og KNAP-L indgange, IN1-IN5, er hver forbundet til et knapinput, men der er kun vist et knapinput på diagrammet. Ind- og udgange på PEEL-kredsen (markeret med en tekststreng) kobles til M68k/IRQ-styring/Adressedekoder. Clock-indgangen forsynes med M68k clocken på (, og KRATE med et signal på fra kredsen 74HC4040, ben 2 (se figur 7.7 på side 71) Programmering i PEEL Til håndtering af input, interrupt og dataoverførsel programmeres logik i en PEEL. PEEL-Programmet udvikles i WinPlace og forefindes på den vedlagte CD [CD-ROM 2003]. Der opbygges en tilstandsmaskine med 4 tilstande: Tilstand 0: I tilstand 0 ventes på et knapinput, hvilket kun er muligt i denne tilstand. Når der registreres et input og KRATE er høj, skiftes til tilstand 1. Tilstand 1: Når knappen er sluppet og KRATE er lav sendes et IRQ-signal, og der gåes til tilstand 2. Tilstand 2: Der ventes på, at der igangsættes en dataoverførsel fra M68k s side, et chipselectsignal, og der hoppes til tilstand 3, samtidig med at dataen udlæses på databussen Tilstand 3: Efter overførslen er færdig går dataudgangene i tristate, og hele processen gentages idet der hoppes til tilstand 0. 66

75 7.3. DISPLAY Timing Tiden fra en bruger trykker på en knap, til knaptrykket er registreret af CPU en kan variere, da knapmodulet har det laveste IRQ-level. Svartiden anslåes at være mellem en halv og en hel KRATE periode. Ved dataoverførsel skal der være gyldig data på senest efter at DTACK, som her er koblet på CS, sættes [Motorola 27. april 2003, side pkt.31]. Databladet for PEEL-kredsen opgiver tiden for Input to Output Enable til maks., og det er derved overholdt Testspecifikation for Knapmodulet Der foretages ingen selvstændig test af dette modul, men vil indgå i procestesten af Brugerinput, se kapitel 10 på side Display Til at informere brugeren om diktafonens status anvendes et display. Dette implementeres med et dot-matrix display af typen L1614, hvilket er til rådighed fra laboratoriet. Displayet består af 4 linier, som hver især kan rumme 16 tegn. Hvert tegn er opbygget af en m matrix. For at skrive et tegn på dispalyet skal det initialiseres, hvorefter ASCII-værdien for tegnet skrives til displayet via databussen. Displayet skal forsynes med og styres vha. 8-bit bred databus ( signaler: ) og 3 kontrol RS 2 : Lav: (IR) Input til Instruction Register, dvs. opsætning af display. Høj: (DR) Data Register input. Her matches den indlæste bytes med en tabel i displayet, hvorefter tegnet udskrives. R/W: Lav: Data skrives fra M68k til display; Høj: Data læses fra display til M68k. Enable: RS, R/W samt data latches på den faldende flanke af Enable signalet Kontrastreguleringskredsløb For at sætte brugeren i stand til at regulere kontrasten på displayet, designes et kredsløb bestående #" af et potmeter og en " modstand. Når brugeren drejer potmetret med uret, bliver displayet mørkere og vice versa. Dette indsættes som vist på figur RS = Register select 67

76 [ V 4 3 V m V W V V j V l V KAPITEL 7. HARDWAREMODULER + Figur 7.4: Diagram over opsætning af kontrast regulering Timing L1614 modtager et R/W og et RS signal fra M68k (se figur 7.5). Da R/W signalet fra M68k kommer for sent i forhold til timingskravene på displayet bliver det implementeret ved at forbinde til R/W på displayet. RS signalet implementeres i form af adresseben. Mindst ( ' på figur 7.6) efter RS- og R/W signalerne skal der komme et Enable signal, som er høj i mindst ( ' ) og har en cyklustid på mindst ( '>g ) til displayet =?>A@B=?C 4;: < D >-E D >GF D;IHJ$'&LKNMPO! #"%$'&!(*)+$-,.-.-,),/102),$ Figur 7.5: Diagram over opkobling af kontrol signaler QSR Q*T U \SdfehgG\SdNi XYZ XYk \S] ^]?_`ab+c_ l Z Figur 7.6: Diagram over timing af display under write cycle Til at implementere Enable signalet, bruges AS, som føres ind i adressedekoderen sammen med adressen $ Dette opfylder timingkravene,as kommer mindst efter adressen er gyldig, dvs. efter RS benet er sat. Desuden er der en forsinkelse i adressedekoderen, som implementeres i form af en PEEL (22CV10A) på [Integrated Circuit Technology Corp. 29. april 2003, se 'on ]. En M68k buscyklus er 4 clock cyklusser svarende til. Da AS er sat i minimum må den nødvendigvis være negeret i resten af buscyclen. Dermed opnåes en 68

77 7.3. DISPLAY cyklus tid på Enable signalet i overensstemmelse med kravet stillet af displayet ( ' ). på minimum Instruktionssæt Tabel 7.1 viser, hvorledes displayets registre tilgåes. Ved at aflæse et busy flag kan det konstateres, hvorvidt displayet er klar til at modtage ny information. Dette gøres ved at, sætte displayet til Read, ved at sætte R/W høj ( på M68k skal være høj) og ved at sætte RS lav ( lav). Hvis det 8. bit på databussen ( ) aflæses til at være høj, er displayet optaget. Adressebenene bruges på den måde som kontrol signaler til displayet. Funktion Operation IR 3 og W 0 0 IR write, display opsætning IR og R 0 1 IR read, aflæsning af busy flag DR 4 og W: 1 0 DR write, DR overføres til DD RAM DR og R 1 1 DR read, DD RAM overføres til DR Tabel 7.1: Tilgang af registre på display Display initialisering Når displayet tændes eller resettes skal det initialiseres. Der vælges at sætte displayet op på følgende måde: 8 bit datalængde m dot format Auto-increment mode Display on Cursor on Blink off Clear display DD RAM adresse sættes til 1. digit Interruptsignal Opdateringen af displayet skal, ifølge krav 1 i afsnit på side 55, varetages af en interruptrutine. For at dette kan lade sig gøre, skal hardwaren sende et signal til M68k. Displayet skal opdateres mindst en gang i sekundet og det vælges at benyttet et ( signal. Dette kunne implementeres nøjagtigt med en (")*! oscillator. Da denne ikke kunne fremskaffes, blev i stedet 3 Instruction Register 4 Data Register 69

78 KAPITEL 7. HARDWAREMODULER ")* anvendt en! oscillator. Ved at dele signalet gange i en counter 74HC4040 og herefter med 2 internt i en PEEL-kreds, gav et signal på (. Signalet regnes som værende ( *. PEEL kredsen sender et IRQ til IRQ-Håndtering, når ( -signalet er højt. PEEL en holder dette til den får et IACK tilbage. IRQ-Håndtering styrer resten af den autovektoriserede interruptrutine. Koden findes på CD-rom. Et diagram over display-interrupt-hardwaren er gengivet på figur 7.7 på næste side, under afsnittet omhandlende HW-uret, da dette modul gør brug af den samme PEEL-kreds Testspecifikation for Display modul Følgende ønskes testet: 1. Om displayet initialiseres korrekt. 2. Om displayet kan udskrive tekst. 3. Om kontrasten kan reguleres. Hvis disse punkter er opfyldt, må displaymodulet antages at være godkendt. Der skal udover disse tre punktet også testes om displayinterruptet virker, men da interruptdelen er i samme PEEL som hw-ur er det valgt at lave en fælles test af dette (se afsnit 7.4.1). Forudsætninger: I testen af dette modul indgår minimumssystemet, samt et stykke software, der initialiserer displayet. Desuden skal softwaren sende data til displayet. Konklusion Displaymodulet opfylder alle tre punkter, og modulet betragtes hermed som godkendt. 7.4 Hardware Ur HW-urets funktion er, som det står i afsnit 6.5 på side 55, at sende et interrupt hvert sekund. Dette interrupt skal så holdes til der modtages et IACK, ligesom display-interruptet. Den eneste forskel mellem de to moduler er frekvensen af interrupt signalerne, og det vælges derfor at opbygge HW-uret i samme PEEL som display-interruptet. Signalet der genererer display-interruptet deles 8 gange for at få et signal. Dette gøres med en tilstandsmaskine i PEEL en, som også sørger for at holde interruptet til der modtages et IACK fra IRQ-Håndtering. Resten af den autovektoriserede interruptrutine behandles af IRQ-Håndtering og M68k. Kredsløbet ses på figur 7.7 på modstående side Testspecifikation for HW-ur modul Testen af HW-ur omfatter også interruptdelen af display-modulet og kan deles op i to dele: PEELtest og signal-test. PEEL-testen består af simulering udført på den skrevne kode, i WinPlace. Testen 70

79 ACIA USER D C 64100Hz fra oscillator 8MHz clock 10 QA QB QC QD CLKQE QF QG QH QI QJ QK QL CLR HC PEEL-UR I I I I I I I I I I I I/CLK I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O Hz til ADC og DAC 1024 Hz til Knapmodul IACK3 fra IRQ-styring IACK2 fra IRQ-styring IRQ2 til IRQ styring IRQ3 til IRQ-styring 22CV10A B Figur 7.7: Diagram af display-interrupt-kredsløbet og ur-interrupt-kredsløbet. -signalet bruges til ADC og DAC (se afsnit på side 48) * udføres ved at påtrykke et clock-signal på! -indgangen og et på ( * -indgangen. Hvis IRQ-signalet for displayet kommer for hver anden puls på ( -indgangen og forsvinder, når der kommer et IACK, virker display-interruptet. Tilsvarende skal HW-ur-interruptet komme for hver 16. puls. Ved at foretage signaltesten sikres det, at PEEL en får de rigtige clock-signaler. A Konklusion Udfra testen lavet i afsnit I.3 på side 135, konkluderes det, at HW-ur- og display-interruptet virker efter hensigten og PEEL en modtager de rigtige clocksignaler ACIA USER Designet af dette modul tager udgangspunkt i kravene opstillet i afsnit på side 56. Det vælges at anvende samme overførselshastighed, ", som ved den serielle forbindelse i $& ' minimumsystemt. Dermed kan der også anvendes samme clock-signal. Der anvendes de RS-232C kontrolsignaler, der er defineret for en forbindelse mellem to computere, se [Clements 1997, side 752, figur b] Opsætning af data Der skal vælges et format på datastrømmen, således at det er muligt at kontrollere, hvorvidt det er gyldig data. Der skal transmitteres 8 bit lyddata. Hvis det vælges at definere en paritet 5, er det muligt at kontrollere, om eventuelle spændingsudfald har forårsaget, at et bit er blevet togglet. En væsentlig årsag til sådanne udfald er ifølge [Tanenbaum 1999, side 61] ujævnheder i forsyningsspændingen. Da en endelig version forestilles at være forsynet via batteri, mens protypen benytter en ekstern strømforsyning, vælges det ikke at anvende paritetsbit. Derimod vælges det at bruge 1 5 Indikerer et lige eller ulige antal høje bit. 71

80 KAPITEL 7. HARDWAREMODULER startbit og 1 stopbit. Dermed bliver det muligt på PC siden at detektere, hvorvidt det modtagne data har det korrekte format Interruptstyring Ifølge krav 2 i afsnit på side 56, skal det være muligt at slå interrupt til og fra. Der skelnes mellem 2 former for interrupt: Reciever Interrupt: er et IRQ signal, der genereres, når ACIA en har modtaget data. Transmitter Interrupt: er et IRQ signal, der genereres, når ACIA en har transmitteret data og er klar til at afsende ny data. Reciver-interrupt signalet kommer, når Reciever Data registret forkortet RDR er fyldt. Dette indikeres ved at statusbit SR0 er sat. Tilsvarende kommer der et transmitter-interrupt når Transmitter Data Registret, forkortet TDR, er fyldt indikeret ved, at statusbit SR1 er sat. Systemet skal ifølge kravsspecifikationen kun designes til at sende information til PC en. Det vælges derfor kun at anvende transmitter interrupt Indikering af Afbrydelse For at leve op til kravet, om at en afbrydelse af forbindelsen til PC en skal kunne detekteres, anvendes signalerne RTS og CTS. Disse 2 ben forbindes igennem linedriveren MAX232 [Maxim 5. maj 2003a], således, at de bliver transmitteret med de rette RS232 niveauer. Hvis RTS-, Request To Send, signalet fra ACIA kredsen ikke besvares med et CTS-, Clear To Send, signal fra modtageren (PC), sættes statusbit SR3 i ACIA ens statusregister [Clements 1997, side 714]. Det er hermed muligt via software at tjekke, hvorvidt dette bit er sat og behandle en eventuel afbrydelse i transmissionen softwaremæssigt. DCD benet indikerer, at indkommende data er korrumperet. Systemet er umiddelbart ikke defineret til at skulle kunne modtage data igennem denne forbindelse. Det vælges alligevel at forbinde dette ben, for at tage hensyn til en eventuel videreudvikling Hardware Opkobling Figur 7.8 viser et diagram af kredsløbet. Transmitter og Receiver clock forbindes begge til en Clock på (. ACIA ens databus forbindes til lower word på systemets databus. Der henvises til afsnit 6.10 for en nærmere gennemgang af chipselectet til denne kreds. Dataoverførslen skal synkroniseres med systemets E clock, der forbindes til E på ACIAkredsen. Adresseben forbindes til Register Select og bruges til at bestemme hvilket register der skal tilgåes. Envidere er R/W fra M68k forbundet til tilsvarende indgang på ACIA en. Dette er nødvendigt eftersom de 4 registre er grupperede, således, at der ligger et read-only og et write only register på samme adresse (se [Clements 1997, side 711]. 72

81 D 7.5. ACIA USER D C 1,8432 Mhz clk ben 8 på MAX232 TS2MON E-clk på M68K A1 på M68K R/W* på M68K ben 23 på Adresse peel p.u p.u ACIA User 2 RXDATA 3 4 RXCLK TXCLK 24 CTS 23 DCD 14 E 11 RS 13 R/W 8 CS0 10 CS1 9 CS TXDATA D0 D1 D2 D3 D4 D5 D6 D7 IRQ RTS Lower Word 100nF C Line Driver R1IN R2IN T1IN T2IN C1+ C1- C2+ C2- V+ V- MAX232 R1OUT R2OUT T1OUT T2OUT RTS RD CTS TD DCD SUB-D 9 ben 9 på MAX232 TS2MON C B p.u. IRQ 4 B 100nF 100nF C1 C2 5Vdc 0 100nF C4 C5 100nF A Figur 7.8: Diagram over den elektriske opkobling. Forkortelsen p.u. står for pull up og indikerer at et ben forbindes til forsyning via en modstand. De ikke forbunde ben på connectoren indeholder funktioner, der ikke anvendes i projektet. A Opsætning af Kontrolregister Udfra de foretagne valg er det nu muligt at definere en opsætning af kontrolregisteret. Opsætningen skal foregå sofwaremæssigt ved at skrive til ACIA ens kontrolregister 1 Kontrolbit Logisk værdi Funktion CR0 1 Clock signalet neddeles med 16 CR1 0 CR2 1 8 bit Data, et stopbit ingen paritet CR3 0 CR4 1 CR5 0 transmitter interrupt slået fra, RTS aktiveret CR6 0 CR7 0 Receiver interrupt slået fra Det bemærkes, at værdien på CR5 og CR6 skal ændres til, når det ønskes at slå transmitter interrupt til i forbindelse med en overførsel. Ovenstående opsætning skal altså ses som en initialisering, hvorefter ACIA kan slåes til ved at skrive ( til adresse Testspecifikation for ACIA USER modul Der foretages ingen selvstændig test af dette modul, eftersom en meningsfuld test vil kræve software til at styre opsætningen af modulet, samt overførsel af data. Der henvises til afsnit 10, hvor en sådan test er dokumenteret. 6 Kontrol registret ligger på den første adresse [Clements 1997, side 711]. 73

82 ! KAPITEL 7. HARDWAREMODULER 7.6 Mikrofon og Forstærker Kredsløbet designes på et principielt niveau ud fra kravene i afsnit 6.7 på side 56. Dernæst opstilles der, på baggrund af de udførte beregninger, konkrete krav til et Mikrofon og Forstærker kredsløb Valg af mikrofon Det eneste konkrete krav, der stilles til mikrofonens funktion er, at den skal have en god karakteristik indenfor det valgte frekvensomrdåe. Der blev valgt en electret-mikrofon fra Panasonic af typen WM-034DB. Følgende væsentlige egenskaber kan fremhæves: Karakteristik : Ok (Omnidirectional), se [Panasonic N.d.] hvor kurverne kan findes. l ' & Følsomhed : Frekvensområde : til! Signal/Støj-forhold : Mere end! Filtrering Antialiasering Der er valgt en samplingsfrekvens på (") (se afsnit på side 7), og det vælges at benytte en 8-bit AD-converter ADC0820 fra National Semiconductor [National Semiconductors N.d.b]. Samplingsfrekvensen skal minimum være den dobbelte af den højest repræsenterede frekvens i signalet for at undgå aliasering, og dermed forvrængning, iflg. Nyquist sampling theoremet [Oppenheim, Schafer & Buck 1999, side 146]. Idet der foregår en kvantisering af signalet, vil aliasering ikke påvirke signalet mærkbart, såfremt at det ved halvdelen af samplingsfrekvensen er dæmpet til under værdien af hvad LSB (Least Significant Bit) repræsenterer. Det kan indføres med et meget skarpt Lavpas-filter. Valg af Lavpas-filter Det kritiske krav til dette antialiaserings LP-filter er, at det skal skære forholdsvis stejlt og dermed gøre transistionsområdet 7 mindst muligt. Af de fire filtertyper, Butterworth, Bessel, Chebychev og Elliptic, har sidstnævnte den stejleste karakteristik for en given orden. Et filters fejl, er det defineret i forhold til et ideelt filter, også kaldet et brickwall filter pga. formen. Afvigelsen fra denne teoretiske idealisering kan fordele sig monotont ud over såvel pasbånd, stopbånd og transitionsområdet. Dette er tilfældet for et Butterworth filter. Dette giver en blød 7 Frekvensområdet mellem knækfrekvensen og den frekvens, hvor dæmpningen har nået den ønskede stopbåndsdæmpning. 74

83 7.6. MIKROFON OG FORSTÆRKER monotont faldende kurve, hvilket ikke harmonerer med ønsket om en stejl karakteristik i transitionsområdet. Vælger man derimod at fordele fejlen ud over pasbånd og stopbånd, kan der opnåes en meget stejlere karakteristik med et filter af lavere orden. Et sådant filter kan være et elliptisk filter. De tre designparametre for et sådant filter er: Størrelsen af den tilladte ripple i pasbånd og stopbånd. Knækfrekvensen Orden N (størrelse af transitionsområde) Eventuelle udsving i stopbåndet, antages at være dæmpet så meget, at disse under alle omstændigheder vil være ubetydelige. Udsvingene i pasbåndet skal være af en størrelsesorden, så det ikke influerer hørbart på signalet. Kravet til filterets dæmpning skal ses i forhold til hvad AD-konverteren kan repræsentere med en opløsning på 8 bit. Med de 8 bit gives der 256 decimalværdier til at repræsentere signaler i området. Det vælges at repræsentere med decimalværdien 255, og med decimalværdien 0. Opløsningen bliver da $& '. Signalets DC-offset vil blive repræsenteret ved decimalværdien :. Forskellen mellem DC-Offset og spidspændingen, udtrykt i db, svarende til den krævede dæmpning i db er: cl j Knækfrekvensen er, og størrelsen af transitionsområdet må maksimalt være (. Der skal så vælges et filter af en tilstrækkelig orden til at opfylde sidstnævnte krav. Et 8. ordens elliptisk LP-filter af typen MAX294 fra Maxim har iflg. databladet ([National Semiconductors N.d.a]) følgende egenskaber: Stopbåndsdæmpning: ( ved Pasbånd ripple:! Transition ratio: Det kan konstateres at pasbånd ripple er klart udenfor det hørbare og dermed inden for det tilladelige niveau. Transitions ratio en er forholdet mellem de to yderfrekvenser i transitionsområdet. ( Sammenholdes dette med stopbåndsdæmpningen på kan det konkluderes, at signalet er dæmpet med ( ved (. Der er ikke angivet nogen værdi i databladet for dæmpningen ved (. Idet det antages at dæmpningen fordeler sig jævnt, kan det konkluderes at dæmpningen i nødvendigvis må være større end de krævede. Implementation af Højpasfilter For at kunne tale om et båndbreddebegrænset signal (se 6.7 på side 56), skal der også indføres et højpas filter. Kravet til dette er, at det dæmper signalet fra forsyning. Dette er især væsentligt på prototypen, hvor der opereres med en strømforsyning, mens den færdige model skal operere med batterier. Knækfrekvensen for dette filter skal ligge i. Afstanden fra * til er l<j ( " (7.3) Det vælges at implementere 3 stk. 1. ordens højpasfiltre i kredsløbet, hvilket giver en samlet orden på 3. Den samlede filtervirkning vil da være på!. For at signalet ved ikke er dæmpet 75

84 ! i!! KAPITEL 7. HARDWAREMODULER med mere end (se krav 2 på side 57), skal knækfrekvensen for hver af de tre 1. ordens filtre være ved, som forklaret i Appendiks C. Dvs. at afstanden er l<j ( ", og at dæmpningen ved er ( " $ " (! Forstærkning og niveau tilpasning Der ønskes et signal, der svinger omkring med en amplitude på maksimalt. Da der er meget stor forskel på RMS og peak værdier for talesignaler laves først en beregning på, hvor meget spænding, der vil være over mikrofonens udgang, når mikrofonen udsættes for et typisk talesignal. Det vides, at en almindelig samtale i 1 meters afstand typisk giver anledning til et lydtryk på! ([Department of Acoustics 9. april 2003]). Referenceværdien, når der laves absolutte beregninger på lyd er. Det antages at 6 cm kan bruges som en typisk afstand fra lydkilde til mikrofon. Halveres afstande 4 gange fåes. En regel siger at for hver halvering af afstanden fordobles lydstyrken, og effekten øges med. Der fås følgende lydtryk for et talesignal i! afstand: l<j (. Mul- Mikrofonens følsomhed er opgivet til l ' &! tipliceres denne følsomhed med lydtrykket fra formel 7.4 fåes ( (7.4) (7.5) For at vurdere RMS værdi i forhold til spidsværdi af et talesignal, blev der foretaget beregning på to talesekvenser for hhv. en mand og en kvinde. I programmet Cool Edit Pro version 2. 8 blev der foretaget en simulation af de valgte filtre, og samplingsfrekvens på talesekvenserne. Udfra de filtrerede talesekvenser blev der vha. Matlab beregnet en RMS- og spidsværdi, og forholdet imellem dem. Dokumentation i form af simulation og matlab-filer forefindes på den vedlagte CD-rom. Forholdet mellem RMS- og peakværdien for mandens tale blev beregnet til og kvindens tale til!. Som udgangspunkt ønskes signalet efter en forstærkning at svinge med en amplitude på. RMS-værdien bliver (. Den tilsvarende udregning for kvinder er giver en højere RMS-værdi ( ). Derfor bruges mandens tale som udgangspunkt. Anvendes værdien for kvinden vil der kunne optræde peak-spændinger over, og de vil blive repræsenteret som, hvilket giver et forvrænget signal. Dette vil sandsynligvis alligevel forekomme i et vist omfang, da folk som bekendt taler meget forskelligt. En teoretisk estimation af en passende forstærkning kan nu foretages: ( (7.6) Det har senere vist sig at en forstærkning på ca. ( svarende til (, er tilstrækkelig, og nødvendig for ikke at få for kraftige signalniveauer. De efterfølgende beregninger tager udgangspunkt ( i en forstærkning på 8 Lydmanipulerings-programmel fra Syntrillium Software Coorporation 76

85 i!!! 7.7. DESIGN AF LYDINDGANG Fordobles afstanden ( ) skal forstærkningen fordobles ( ), for at få et tilsvarende spidsværdi. Omvendt vil en halvering af afstanden medføre, at forstærkningen skal halveres ( ). Som udgangspunkt skal forstærkningen kunne dæmpes i tilfælde af, at signalet klippes. For at vurdere, hvor meget forstærkningen skal kunne øges, kræves en vurdering af den længst mulige (og samtidig sandsynlige) afstand mellem mund og mikrofon. Sådanne vurderinger vil altid være noget tvivlsomme og en automatiseret justering baseret på målinger af signalet styrke vil være at foretrække. I denne prototype vælges det dog af prioriteringsgrunde blot, at justere forstærkningen manuelt Krav til LydInd kredsløb Der kan på baggrund af ovenstående gennemgang af funktionaliteten opstilles flg. krav til kredsløbet, LydInd (se tabel 2.1 på side 10): 1. Forstærkning: Forstærkningen skal være 80 gange og være variabel. Der stilles ingen krav til, hvor meget den skal kunne varieres. 2. Højpas filtrering: Knækfrekvensen ( pkt.) skal ligge ved. Signalet skal " dæmpes med et filter af 3. orden dvs.!. Filteret implementeres med 3 stk. 1. ordens HP-filtre, der hver har et pkt. i, se appendiks C. 3. Lavpasfiltrering: Skæring ved "), signalet skal være dæmpet mindst ved ")*. 4. Tilpasning og Begrænsning: A/D-konverteren skal modtage et signal på med et DC offset på. Signalet må ikke overstige i amplitude. I databladet for A/D-konverteren angives en Maximum analog input leakage current til ved hhv. og GND, dvs. en indgangsimpedans på B [National Semiconductors N.d.b]. Udgangen af mikrofonkredsløbet kan derfor have en høj udgangsimpedans. 7.7 Design af Lydindgang Læsevejledning Det samlede kredsløb er illustreret ved 2 forskellige diagrammer. Diagrammet på figur 7.9 beskriver opbygningen af den del af kredsløbet, hvor signalet repræsenteres på elektrisk form, forstærkes og filtreres. Figur 7.10 er et diagram over opkoblingen af anti-aliaserings filteret. De to delkredsløb beskrives i de to selvstændige underafsnit. På figurene er der, med stiplede linier, markeret forskellige navngivne blokke. Disse indeholder hver en funktionalitet, der omtales og beskrives i teksten. Først gennemgåes den generelle opbygning og funktionaliteten af de enkelte blokke, hvorefter detaljerede dimensioneringer dokumenteres. Generelle Praktiske Bemærkninger Kredsløbet på figur 7.9 forsynes med og det på figur 7.10 med. Ved alle forsyninger er der benyttet afkoblingskondensatorer på. Modstandene fås i 1% værdier og konden- 77

86 KAPITEL 7. HARDWAREMODULER satorer i E6 rækken. Ved udregning, hvori de begge indgår, udregnes først kondensatorstørrelsen udfra en ønsket modstandstørrelse, og den næmeste i E6 rækken benyttes. Dernæst udregnes den præcise værdi af modstanden udfra kondensatorens størrelse. Delkredsløbene Buffer og OP-AMP1 benytter en OP-amp hver, som begge er indeholdt i kredsen TLE2072 (se [Texas Instruments 27. april 2003a]) Forstærkning og filtrering Generel virkemåde D Mikrofonen påvirkes af et akustisk signal og genererer derved en elektrisk spænding. Signalet højpas-filtreres i delkredsløbet HPF-1 på figur 7.9. For ikke at belaste mikrofonen indsættes en buffer i form 5 af operationsforstærkeren 4 TLE2072-A. Signalet 3 forstærkes og lavpasfiltreres 2 i blokken benævnt OP-AMP1. Dernæst foretages en højpasfiltrering samt en variabel forstærkning i OP-AMP-2. For at begrænse signalets maksimale amplitude til kredsene MAX294 og ADC0820, (se figur 7.10), clampes signalet vha. dioder. Dermed løber strømmen næsten udelukkende til stel ved for høje spændinger. 1 D +VCC +VCC +VCC C Electret Mikrofon R1 3k HPF-1 C1 22n 48.7k R2 Buffer V+ 4 V- TLE2072-A OUT 1 OP-AMP1 3 + R3 2-2k 8 V+ 4 V- R5 -VCC 24.3k TLE2072-B OUT 1 R4 24.3k C2 1n +VCC V1 10Vdc V2 10Vdc C7 100n 0 C8 100n C -VCC -VCC 0 B OP-AMP2 +VCC Clamping B A C4 100n R6 10.7k TLE R7 7 V+ 4 V- N1 1 OUT 6 N2 5 R8 70.4k 60.4k -VCC R8s 50k R D1 OA91 D3 Zener 1 2 D2 OA91 D4 Zener Vo-mik A 0 Figur 7.9: Diagram over mikrofonkredsløb, 1. del angiver signalet som føres videre 2 1 Dimensionering Mikrofon Komponenter: Elecret Mikrofon WM034DB, modstand R1. Der indsættes en belastningsmodstand (R1) på mikrofonen for at forsyne electret-mikrofonens 78

87 ! 7.7. DESIGN AF LYDINDGANG indre FET 9. Spændingen må højest være, og den bruger en strøm på maks. (. Dette " giver følgende maksimale værdi:. Med en " modstand opfyldes dette kriterie. Mikrofonens andet ben er et stelben og forbindes til kredsløbets stel. HPF-1 Komponenter: C1, R2. Kondensatoren C1 indsættes for ikke at overføre DC-komponenter og der indsættes en modstand sammen med C1, for at danne et 1. ordens højpas filter. Dette filter er et af de tre, der tilsammen udgør det 3. ordens højpasfilter, der omtales i afsnit 2 på side 57. Knækfrekvensen skal derfor være #". R2 sættes høj ( ), for at belaste mikrofonen mindst muligt. Nu beregnes C1 ud fra følgende formel gældende for et 1. ordens filter: * " Der er vælges en værdi på ud fra E6-rækken. Nu gentages beregningen med denne kondensatorværdi og modstandsstørrelsen fastsættes. (7.7) (7.8) (7.9) ( " (7.10) Buffer Komponenter: TLE2072-A. For at adskille HPF-1 med det efterfølgende OP-AMP2 kredsløb, og dermed undgå at belaste mikrofonen yderligere, indsættes en OP-amp i en inverterende kobling. Det giver en høj indgangsimpedans og lav udgangsimpedans. OP-AMP1 Komponenter: TLE2072-B, R3, R4, C2, R5. Der indsættes et lavpasfilter for ikke at forstærke unødvendige højfrekvente signaler. Knækfrekvensen skal være meget større end ") for at bevare den skarpe afskæring, som opnås med " anti-aliaseringsfilteret (se afsnit 7.7.2). Der vælges en knækfrekvens på!. Signalet ønskes desuden forstærket 10 gange 10. Forstærkningen bestemmes af størrelsesforholdet mellem modstandene R4 og R3. Knækfrekvensen fastsættes af tidskonstanten for RC-leddet C2 og R4. R5 indsættes for at DC-modstanden på begge indgange af operationsforstærkeren er ens, hvilket medfører at R5 skal være lig R4 (se formel 7.10). R3 sættes til ". Forstærkningen ønskes at være ca. 10, hvilket medfører at R4 skal være ca. #". Ud fra denne modstandsværdi og den ønskede ") knækfrekvens på! beregnes C2: " (7.11) (7.12) 9 Field Effect Transistor 10 Den samlede forstærkning defineres af OPAMP-1 og OPAMP2 tilsammen. Der er således ikke noget specifikt krav til forstærkningen her, andet end den ikke må overskride maks. værdien af den samlede forstærkning, se krav 1 på side 77 79

88 !! i i i!!!!!!! i KAPITEL 7. HARDWAREMODULER. Der foretages en itteration for at beregne den nøjag- Der vælges en værdi fra E6-rækken på tige værdi af R4: * " Der vælges en værdi på ", hvorefter forstærkningen i delkredsløbet bliver: " " (7.13) (7.14) OP-AMP2 Komponenter: TLE2071, C4, R6, R7, R8, R8s (variabel modstand). Den samlede forstærkning i kredsløbet skal være på 80, og forstærkningen i OP-AMP1 er. Forstærkningen i OP-AMP2 beregnes til: (! (7.15) Komponenterne R6 og C4 udgør et højpasfilter. Knækfrekvensen skal derfor være. Der vælges en kondensatorværdi på og de andre komponentværdier beregnes herudfra. Der vælges en værdi på! " < " (7.16) (7.17) Forstærkningen bestemmes af forholdet. Hvis forstærkningen skal kunne justeres lige meget til begge sider skal beregning foretages ud fra den situation, hvor den variable modstand står i dens midterposition. Der gælder altså følgende: ( ( (7.18) ( ( " (" (7.19) " R8 sættes til og som R8s benyttes en " variabel modstand af multiturn typen. Følgende justeringsmuligheder opnås for forstærkningen: ( (7.20) ( ( ( (7.21) Dette anses for tilstrækkeligt i henhold til krav 1 på side 77. Clamping Komponenter: R9, Dioder: D1, D2, Zenerdioder: D3, D4. Det er nødvendigt at clampe signalet, så signalspændingen, til LPF-kredsløbet opfylder krav 4 på side 77. Der opereres med positive og negative signaler, der ikke må overstige. Ved positive spændinger løber strømmen gennem D1 og D3 til stel. Tilsvarende løber strømmen igennem D2 og D4 til stel ved negative spændinger. Ved spændinger over Zenerdiodernes zenerspænding,, vil næsten al strøm løbe gennem den ene af disse to strømveje til stel. Dermed 80

89 i 7.7. DESIGN AF LYDINDGANG undgås det at spændingen til LPF-kredsløbet bliver for høj. For at bestemme diodernes størrelse opstilles der flg. ulighed: i Af zenerdioder er der kun dioder med eller større til rådighed. Derfor skal D1 og D2 have et meget lille spændingsfald. Det er muligt med germanium-dioder, som har et diodespændingsfald på kun ca.. R9 indsættes for at begrænse strømmen og er sat til Opkobling af Anti-aliaserings-filter Generel Virkemåde Signalet føres nu videre til indgangen på anti-aliaseringsfilteret MAX294. Denne kreds kræver et clock signal på 100 gange den ønskede knækfrekvens (se [National Semiconductors N.d.a]). I dette tilfælde ønskes en knækfrekvens på ")* og altså et clock-signal med en frekvens på ")* ( 5. Til at producere 4dette signal anvendes 3en oscillator med en 2frekvens på 1 samt en tæller til at dele denne clock ned 6 gange. Knækfrekvensen bliver: " 9 hvilket er acceptabelt. Endelig laves der en spændingsdeling for at hæve signalet. D HPF+DC D LPF R10 Clk til LPF Vo-mik MAX294 8 IN 4 OPIN- OUT OPOUT 5 3 C5 47n 45.3k Vi-ADC C 8 VCC GND Clk 4 MCO1425B OUT C6 15p 5 74HCT I1 I2 I3 I4 I5 CLK 16 VCC 1 D 10 PRE 15 RST 8 Q1 Q2 Q3 Q4 Q5 GND CLK V+ V- 0 5Vdc 5Vdc V3 V4 R k C9 100n C10 C B 100n B 0 A Figur 7.10: Diagram over filter-del af mikrofonkredsløbet. er signalet til A/D-konverteren Dimensionering er indgangssignalet, LPF IC en MAX294 implementerer et 8. ordens elliptisk lavpas-filter. Der anvendes en forsyning. Der anvendes afkoblingskondensatorer mellem begge forsyninger og stel, således som det anbefales i [National Semiconductors N.d.a, side 6-45]. Kredsen har indbygget en operationsforstærker, der kan bruges til at lave et 1. eller 2. ordens filter [National Semiconductors U18 ANLGIN MODE WR/RDY CS RD REF+ REF- ADC0820 D0 D1 D2 D3 D4 D5 D6 D7 INT OFL A 81

90 KAPITEL 7. HARDWAREMODULER N.d.a, side 6-45]. Den ikke inverterende indgang på denne op-amp er internt forbundet til stel mens udgangen og den inverterende indgang er ført ud. Disse to ben (3 og 4) forbindes til hinanden. Clk til LPF Komponenter: Deler/tæller HEF4018B, Oscillator MCO1425B og C6. Dette kredsløb skal levere et clk-signal til LP-filter, som skal være 100 gange knækfrekvensen af filtret. C6 skal iflg. datablad for oscillatoren (se [GmbH Februar, 1993]) være. ( Oscillatoren giver et firkantsignal på med ved logisk lav og mindst ved høj, hvilket passer godt til MAX294 kredsen, hvis clock indgang (ben 1) er designet til CMOS niveauer. HEF4018B deler clk-signalet med 6, hvilket giver et signal til MAX294 på "). Knækfrekvensen vil da komme til at ligge på " hvilket er acceptabelt. Det fremgår af databladet, at output benet (ben 6) forbindes til B for at opnå en deling med 6. Resten af indgangene forbindes til stel, mens udgangene ikke forbindes. HPF+DC Komponenter: C5, R10, R11. I henhold til krav 4 på side 77 skal signalets DC-offset være på. Dette implementeres med en spændingsdeling af forsyningsspændingen. Med en forsyning på skal R10 og R11 være lige store for at hæve signalet med. Desuden virker de sammen med C5 som et højpasfilter. Dette er det tredje af de 1. ordens højpas filtre, der ifølge krav 2 på side 77 skal have en knækfrekvens på. Desuden er det opgivet i databladet for MAX294-kredsen, at denne minimum kan drive en belastning på ". Vælges " fåes en belastning på ". Med modstanden og den ønskede knækfrekvens kendte kan kondensatorværdien udregnes: " ( (7.23) (7.24) Der vælges en fra E6-rækken Testspecifikation for Mikrofonforstærker modul Det ønskes testet, hvorvidt dette modul overholder kravene stillet til grænsefladen til AD konverteren. Der er altså ikke tale om en kvalitativ test af signalbehandlingen. Testen har to specifikke formål: Måling af udgangssignalets amplitude Det skal fastslåes, at signalets amplitude ikke overstiger de maksimalt tilladte niveauer. Lavpas filtrering Det skal konstateres om dæmpningen overstiger på side 57. ved som krævet i afsnit

91 7.8. ADC MODUL Højpas filtrering Der er ikke opstillet krav til dæmpningen i det lavfrekvente område. Der forventes en dæmpning på mindst ( ved * (se afsnit på side 75) Konklusion For højpasfiltret blev der målt en dæmpning på mindst, men det var ikke muligt at vurdere dæmpningen af lavpasfiltret. Signalets amplitude oversteg det maksimalt tilladte på ved et lydtryk på ( ved. Modulet er ikke designet til lydtryk over ( (, og det kunne konstateres, at afvigelsen ikke er voldsom i en lydmæssig sammenhæng. Det vurderes derfor, at modulet fungerer tilstrækkeligt godt til at kunne påsættes systemet. Det vil dog i et videre udviklingsforløb være relevant, at foretage yderligere test. 7.8 ADC modul Det følgende afsnit beskriver, hvordan AD-konverteren ADC0820 konfigureres. Virkemåden af denne er beskrevet i appendiks A på side 159. Diagrammet er vist på figur Der gælder følgende forudsætninger: Der skal anvendes autovektoriseret interrupt til at styre tilgangen til enheden. 2. Der skal anvendes en asynkron cyklus til at læse data fra ADC en. Først foretages en opsætning af ADC en, hvorefter det dokumenteres, hvorledes punkt 1 og 2 implementeres Opsætning af ADC Vi-ADC +5 V ADC ANLGIN MODE WR/RDY CS RD REF+ REF- D0 D1 D2 D3 D4 D5 D6 D D0 D7 Databus ADC0820 INT OFL 9 18 IRQ*-ADC CS*-ADC 0 8 khz clk Figur 7.11: Diagram over opkobling af AD-konverteren Det vælges at operere konverteren i WR-RD mode (se appendiks A på side 160 ), således at interfacet anvendes på følgende måde: 83

92 KAPITEL 7. HARDWAREMODULER Ben 13 forbindes til stel. MODE Ben 7 sættes høj for at vælge WR/RD mode. Dette signal indikerer at en konvertering er slut og data er klar. Det anvendes derfor som interruptsignal. Med denne indgang aktiv lav driver ADC en databussen, og data bliver latchet efter den faldende flanke på RD [National Semiconductors N.d.b, side 5]. Dette signal anvendes som chipselect. Indgangen anvendes i denne mode til, at starte en konvertering, og bestemmes dermed af samplingfrekvensen. Benet forbindes til en (") ")* clock (! neddelt 8 gange = ( ). Autovektoriseret Interrupt Som nævnt i afsnit benyttes INT signalet fra ADC en som interrupt signal. Signalet skal derfor føres ind på IRQ5-indgangen på IRQ-enable-modulet, som fører signalet videre til IRQ- Håndtering såfremt det er valgt fra software. Der henvises til afsnit 6.9 på side 59, for en gennemgang af dette. Et VPA-signal genereres internt i IRQ-Håndtering udfra et IACK (Interrupt Acknowledge niveau 5), se afsnit 6.2 på side 54. Asynkron Dataoverførsel Med udgangspunkt i protokollen for en read cycle, kan der opstilles flg. CPU: Adressering af ADC. ADC en skal adresseres med den adresse, den har fået tildelt i adresserummet (se 4.3 på side 30). Dette foregår vha. adressedekodnings-modulet og kobles til ADC ens RD input. Desuden skal CPU en sættes op til at læse fra ADC en. ADC: Data placeres på bus. Et vist tidsrum efter at RD er sat, placeres data på databussen ( et DTACK signal til M68k. - ). Der skal afgives CPU: Læs data fra bussen. Data fra bussen latches og chipselect signalet fjernes. ADC: Read-cyklussen termineres. Bussen frigives og DTACK signalet fjernes. Det fremgår af databladet for ADC en ([National Semiconductors N.d.b, side 5]), at der kan gå ' fra at RD går aktiv lav til at data er klar på bussen. Denne værdi er opgivet med en kapacitiv belastning på. Med en kapacitiv belastning på er der angivet et delay på. M68k er opgivet til at have en (se [Motorola 27. april 2003, side 10-7]). Der regnes med en ' på. Det er ikke umiddelbart muligt at benytte et chipselect som et DTACK, da det er et krav, at der maksimalt må gå fra DTACK-signalet optræder, til data er klar på bussen, se tabel 4.4 [Clements 1997, side 227]. Det overskrides med, og der 84

93 i i 7.9. HØJTTALER & FORSTÆRKER skal altså indføres en forsinkelse. Dette gøres ved at føre chipselect gennem en hex-inverter og til DTACK-benet. Der anvendes en HEF4069UB fra Philips. Der er i databladet opgivet en formel til udregning af propagation delay ved en given kapacitiv belastning. Det vælges blot at regne med CPU en som kapacitiv belastning, hvilket giver en. ' n ( ' n ( Føres signalet igennem to af disse invertere opnås en forsinkelse på (, hvilket er tilstrækkeligt Testspecifikation for ADC modul Der foretages ingen selvstændig test af dette modul, eftersom en meningsfuld test vil kræve software til at styre opsætningen af modulet, samt overførsel af data. Der henvises til afsnit 10 på side 119, hvor en sådan test er dokumenteret Højttaler & Forstærker Det vælges at udgangstrinet skal bestå af en operationsforstærker efterfulgt af et klasse B udgangstrin. På figur 7.12 ses et diagram af kredsløbet. Forstærkeren fungerer ved, at operationsfor- TLE2072-B 8 VCC Fra DAC V- V+ OUT 1 0 R4 C1 100n 100k R1 10k 0 TLE2072-A V- V+ OUT 1 Q1 BD137 Q2 BD138 Til højttaler R2 16,2k 4 -VCC R3 5,8k 0 Figur 7.12: Diagram af udgangsforstærkeren stærkeren sammenligner indgangsignalet på den ikke inverterende indgang med signalet på den inverterende indgang. Operationsforstærkeren vil hele tiden prøve at holde udgangen, så de to indgangssignaler er ens. De to transistorer er påsat for at kunne levere den nødvendige strøm,. Det er i punkt 2 i afsnit på side 58 valgt at benytte en ( højttaler (se ligning 7.25). Den flg. udregning er lavet med udgangspunkt i data for BD137 og BD138, se [ N.d.]. Title Size A <Title> Document Number <Doc> Date: Saturday, May 24, 2003 Sheet 1 of 1 2 1

94 i i i g ;? KAPITEL 7. HARDWAREMODULER gjg g ( (7.25) Som det fremgår af udregningen skal transistorerne kunne klare, hvilket de kan ( g [ N.d.]). Der ses bort fra transistorernes basis-emitter spændingsfald, da operationsforstærkeren kan kompensere for dette. Det opgives i databladet [National Semiconductor 23. maj 2003] at slew raten er. I værste fald skal operationsforstærkeren gå fra til. Det er opfyldt idet operationsforstærkeren kan håndtere op til: ' ". For at kunne regulere volumen er der på indgangen af operationsforstærkeren påsat et potentiometer, der virker som en variabel spændingsdeler og dermed gør det muligt at skrue ned for volumen. Herudover er det også valgt, at det skal være muligt at forstærke. Det er gjort ved at indsætte en spændingdeler i tilbagekoblingen der gør, at ikke hele udgangssignalet kommer tilbage til den inverterende indgang; derved forstærkes signalet. Forholdet på spændingsdeleren i tilbagekoblingen udregnes ved formel Her tages der udgangspunkt i, at signalet maksimalt kan forstærkes op på til gjg. Modstandenes størrelse udregnes med udgangspunkt i en værdi for i " 11 : " ghg (7.26) (" (7.27) " Kondensatoren og modstanden på figur 7.12 på foregående side er indsat som et højpasfilter for at fjerne DC-offsettet fra DAC en, og fjerne lavfrekvent støj, f.eks. fra strømforsyningen. Størrelsen af findes i formel 7.28 på modstående side. Der tager udgangspunkt i overføringsfunktionen for RC-leddet g Udfra denne ligning ses det, at der er et nulpunkt i og en pol i 9. Knækfrekvensen * sættes til for ikke at dæmpe signaler inden for den ønskede båndbredden på - 11 Der bruges i praksis et potentiometer. g

95 7.10. D/A-KONVERTERING betydeligt. " * (7.28) Testspecifikation for Højtaler og Forstærker modul Det skal testes, hvorvidt Højttalerkredsløbet med et inputsignal på, kan frembringe et lydtryk svarende til! i 1 meters afstand. Det afprøves om dette er tilfældet indenfor hele frekvensområdet på -. Konklusion I afsnit I.3 på side 141 ses resultaterne fra testen, og det kan konkluderes, at modulet lever op til kravet omkring de! lydtryk D/A-konvertering Der vælges en AD7524 D/A-konverter fra Analog Devices. Denne er en 8 bit multiplying DAC med en buffer på indgangen [Analog Devices 30. april 2003] og opfylder dermed kravene opstillet i afsnit på side 58. Konverteren har 8 digitale indgange, der forbindes til databussen fra M68k. Når en digitalværdi skrives til DAC en skal værdien holdes, til en ny er klar, hvilket bufferen i indgangen sørger for. Denne styres af to kontrolsignaler chipselect, CS, og write, WR. Det er muligt at skrive til DAC en, når både CS og WR er sat ellers bliver forrige værdi holdt. Data på databussen bliver latchet når WR går høj, hvilket medfører at data en skal holdes i minimum [Analog Devices 30. april 2003, se ' ]. Herudover stilles der fra DAC en et krav om at WR og CS skal være sat i minimum [Analog Devices 30. april 2003, se ' g og ' ]. Dette kan opnås ved at bruge AS på M68k til at sætte chipselectet, da denne minimum er sat i [Motorola 27. april 2003, nr 14 side10-10] AD7524 kan ikke levere ret stor strøm, så i databladet anbefales en opkobling med en operationsforstærker på out1 og out2 (se figur 7.13 på næste side). Denne opkobling medfører, at inverteres:, hvor Data er værdien på databussen. Da systemet skal forsynes med indsættes der en Voltage Converter [Maxim 23. maj 2003b] (se U3 på diagrammet). 87

96 5 4 KAPITEL 7. HARDWAREMODULER D Databus M68k C C1 10u U3 CAP+ CAP- LV OSC V+ VOUT 5 C2 10u U1 DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 REF CS WR AD7524 OUT1 OUT2 RFB U2 TLC2201 Output til Højttaler og Forstærker Til adressedekoder Peri ICL Figur 7.13: Diagram D/A-konverter-opkoblingen Testspecifikation for DAC modul B Dette modul ønskes ikke testet enkeltstående. Testen vil derimod blive en del af procestesten for Lydindgang (se afsnit 10.6 på side 122) 7.11 IRQ-Enable A IRQ-enable er implementeret i en PEEL. Programmet kan ses på vedlagte CD-rom. PEEL en inkluderer et 2-bit register, der indeholder to af de tilstande systemet kan være i: Record og Play. Title <Title> Vha. dette register sendes et IRQ-signal for DAC en, når systemet er i Play. I Record åbnes op for Size Document Number A <Doc> IRQ-signaler fra ADC en, som selv generer et interrupt. 5 4 IRQ-Enable s register tilgåes på samme adresse som ADC en med R/W lav. Chip-selectet til ADC en skal derfor også gennem PEEL en, så den kun får CS når der læses De to registere i PEEL en bruges også til at drive to lysdioder, så brugeren kan se om systemet er i Record eller Play uden at aflæse displayet. 3 Date: Friday, May 23, 2003 Sheet 1 of D 74HC4040 Ur og Disp 8012,5 Hz CLK m68k D0 D1 R/W* 8 MHz CLK AS* FC0 FC1 FC2 ADC IRQ*-ADC I I I I I I I I I I I I/CLK 22CV10A I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O OPTAG AFSPIL R1 500 D1 GRØN R2 500 D2 RØD C CS*-ADC Perifær adr.-dekoder 0 CS* IRQ-styring IACKDAC IRQ5 IRQ6 B Figur 7.14: Diagram af IRQ-enable-kredsløbet 88

97 7.11. IRQ-ENABLE Testspecifikation for IRQ-enable Modul Dette modul testes ved at foretage en simulering i WinPlace. På den måde vil PEEL-prgrammet blive testet, men ikke hardwaren. Det anses som acceptablet, da hardwaren til dette modul er forholdsvis simpel. Konklusion Udfra testen i afsnit I.6 på side 141 kan det konkluderes, at IRQ-enable virker som forventet og dermed kan sættes sammen med resten af systemet. 89

98 .

99 8KAPITEL Kapitlets indhold 8.1 Initialisering af systemet Modulopdeling af processer Brugerinput Modul: Brugerinput Udlæsning Modul: Udlæsning Ur Modul: Ur Overførsel Modul: Overførsel Lydindgang Modul: Lydindgang Lydudgang Modul: Lydudgang Tilstandsstyring Modul: Tilstandsstyring Modul: Hent KnapInput Modul: Opdater Tilstand Modul: Opdater OptagelsesDB Modul: Hent ID Modul: Opdater UdlæsningsReg Dataflowstyring Modul: Dataflowstyring Modul: Lager

100 KAPITEL 8. SOFTWAREPROCESSER 8.1 Initialisering af systemet Når systemet startes op, skal det initialiseres. Dette gøres ved at køre alle initialiseringsfunktionerne i de enkelte processer som det første, når systemet startes. 8.2 Modulopdeling af processer I dette afsnit, opdeles hver proces i et antal moduler. Opdelingen foretages med udgangspunkt i, at hvert modul skal udføre en væsentlig funktion for processen. En proces kan bestå af et eller flere moduler. Er der flere moduler i processen, indgår disse i en hierarkisk struktur, der beskriver kommunikationsvejen mellem modulerne. Et modul kan således kun tilgåes af det modul, der ligger lige over. For hvert modul specificeres grænsefladen til modulet ved at definere en eller flere entryfunktioner. Den eneste måde, hvorpå et modul kan tilgå underliggende moduler, er ved at kalde entryfunktionerne i disse. For hver entryfunktion beskrives funktionen den skal udføre, de parametre den kan kaldes med, samt hvad den returnerer. Foruden entryfunktionerne kan der i hvert modul ligge en række hjælpefunktioner, der således er skjult for alle andre moduler. For hver proces foretages der i det efterfølgende, modulopdeling, modulnavngivning, samt navngivning og specifikation af entryfunktionerne i de enkelte moduler. 8.3 Brugerinput Processen Brugerinput består af et enkelt modul, vist på figur 8.1. Specifikationerne for modulet beskrives i det følgende. "! #$ % &! %'(#$ Figur 8.1: Processen Brugerinput består af et enkelt modul Modul: Brugerinput Hovedfunktion: Modulet registrerer, når brugeren har trykket på en knap, og opdaterer registret KnapInput med nye knaptryk, se afsnit på side 48. Derudover skal modulet intialisere processen BrugerInput, når systemet startes op, og tage sig af fejlbehandling i processen Brugerinput. Grænseflade 1. InitBrugerInput Input: Intet 92

101 8.4. UDLÆSNING Funktion: Funktionen initialiserer processen BrugerInput. Output: Intet 2. BrugerInput Input: Interrupt fra HW-Knapmodul (Niveau 1). Funktion: Læser data fra HW-Knapmodul og kontrollerer at de er gyldige, jvf. tabel 5.1 på side 49. Hvis dette er tilfældet, opdateres registret KnapInput, se figur 5.4 på side 48. Feltet Knap opdateres med det nye knaptryk (4 bit fra input) og Status sættes til 1 (ulæst). Hvis der modtages et ugyldigt data fra HW-Knapmodulet sættes fejl til 1, ellers til 0. Output: Intet 8.4 Udlæsning Processen Udlæsning består af et enkelt modul, vist på figur 8.2. Specifikationerne for dette beskrives i det følgende.! "! Figur 8.2: Processen udlæsning består af et enkelt modul Modul: Udlæsning Hovedfunktion: Modulet bruges til initialisering, afvikling og fejlbehandling af processen Udlæsning. Grænseflade 3. InitUdlaesning Input: Intet Funktion: Initialiserer processen Udlæsning. Output: Intet 4. Udlaesning Input: Interrupt (Niveau 2) Funktion: Styrer afvikling og fejlhåndtering af processen Udlæsning. Funktionen læser registret UdlæsningsReg, se afsnit på side 48. Hvis det er opdateret (første tegn er et N ) sendes de resterende tegn til displayet, 4 linier på hver 16 tegn, samlet i en streng på 64 karakterer. Output: Intet 93

102 KAPITEL 8. SOFTWAREPROCESSER 8.5 Ur Processen Ur består af et enkelt modul, vist på figur 8.3. Specifikationerne for modulet beskrives i det følgende. Figur 8.3: Processen Ur består af et enkelt modul Modul: Ur Hovedfunktion: Modulet er en interruptrutine for en hardware clock, der kommer 1 gang i sekundet. Modulet skal tælle antallet af disse interrupts, og derved holde styr på, hvor mange sekunder, der har været strøm på systemet, og opdatere registret IDReg (se afsnit på side 50) hvert sekund. Derudover skal modulet sørge for initialisering af processsen Ur, når systemet startes op. Grænseflade 5. InitUr Input: Intet Funktion: Initialiserer processen Ur. Output: Intet 6. Ur Input: Interrupt (Niveau 3). Funktion: Opdaterer registret IDReg, se figur 5.6 på side 50. Feltet ID-nummer tælles en op, og Status sætte til 1 (ulæst). Hvis der sker en fejl i processen Ur sættes feltet Fejl til 1. Output: Intet 8.6 Overførsel Processen Overførsel består af et enkelt modul, vist på figur 8.4. Specifikationerne for dette beskrives i det følgende.! "$#%'&(*) +&(*,&-.#/%'&(0) +1&(0,&- Figur 8.4: Processen Overførsel består af et enkelt modul. 94

103 8.7. LYDINDGANG Modul: Overførsel Hovedfunktion: Sender Data til Dockingstationen via ACIA en. Modulet styrer initialisering, afvikling og fejlbehandling i processen Overførsel. Grænseflade 7. InitOverfoer Input: Intet. Funktion: Initialiserer processen Overførsel, herunder opsætning af ACIA en. Output: Intet 8. Overfoer Input: Interrupt fra ACIA (Niveau 4). Funktion: Styrer afviklingen af processen Overførsel. Henter en sample (8 bit data) fra lageret og sender den via ACIA en til dockingstationen. Desuden videregives oplysninger om fejl i processen ved at skrive til registret IOfejl, til brug for processen Dataflowstyring. Output: Intet 8.7 Lydindgang Processen Lydindgang består af et enkelt modul, vist på figur 8.5. Specifikationerne for dette beskrives i det følgende. Figur 8.5: Processen Lydindgang består af et enkelt modul Modul: Lydindgang Hovedfunktion: Modulet er en driver, der skal bruges til at hente lyddata ind i systemet fra ADC en og gemme det i lageret. Desuden initialiseres processen Lydindgang vha. dette modul når systemet startes op. Grænseflade 9. InitLydindgang Input: Intet Funktion: Initialiserer processen Lydindgang. Output: Intet 10. Lydindgang Input: Interrupt fra ADC (Niveau 5). Funktion: Henter en sample (8 bit data) fra ADC og gemmer den i lageret. Hvis der ikke er 95

104 KAPITEL 8. SOFTWAREPROCESSER plads i lageret sættes et flag i variablen IOfejl. Output: Intet 8.8 Lydudgang Processen Lydudgang består af et enkelt modul, vist på figur 8.6. Specifikationerne for dette beskrives i det følgende. Figur 8.6: Processen Lydudgang består af et enkelt modul Modul: Lydudgang Hovedfunktion: Modulet styrer initialisering, afvikling og fejlbehandling i processen Lydudgang. Grænseflade 11. InitLydudgang Input: Intet Funktion: Initialiserer processen Lydudgang. Output: Intet 12. Lydudgang Input: Interrupt fra DAC (Niveau 6). Funktion: Styrer afviklingen af processen Lydudgang. Henter en sample (8 bit data) fra lageret og sender den til DAC en. Hvis der ikke er mere ulæst data i lageret, sættes et flag i IOfejl for at angive at optagelsen er slut. Output: Intet 8.9 Tilstandsstyring Opdelingen af processen Tilstandsstyring i moduler er vist på figur 8.7 på modstående side. Specifikationerne for disse beskrives i det følgende Modul: Tilstandsstyring Hovedfunktion: Modulet styrer initialisering, afvikling og fejlbehandling i processen Tilstandsstyring. 96

105 8.9. TILSTANDSSTYRING.0/ :5; 14<49=9:52>4?=3 14@.06A3 8 9=5;14<9:5B>4?C3 14@ # $% '&( ) *! ".0DAE15CFG1;H4/214HIJ5.LKMH!<;5=E?= :5N;14<.LKMH!<;5=E?=RS<48 ;E9=143 14@ 9=T7E@!$ $,(-.0KMH!<;5CE?CKMHJ5;@ E8 9:E9=OQP #+ ),.0DAE15C/2O Figur 8.7: Opdelingen af processen Tilstandsstyring i moduler. Grænseflader: 13. InitTilstandsstyring Input: Intet. Funktion: Initialiserer processen Tilstandsstyring. Output: Fejlkode: 1 = fejl, 0 = ok. 14. Tilstandsstyring Input: Memorystatus: 4 bit; FejlNr: 8 bit. Funktion: Styrer afvikling og fejlhåndtering i processen Tilstandsstyring. Sørger for at overføre information mellem modulerne Hent KnapInput, Opdater Tilstand og Opdater UdlæsningsReg. Output: Tilstand: 8 bit; ID: 30 bit Modul: Hent KnapInput Hovedfunktion: Modulet henter information fra registret KnapInput, se afsnit på side 48. Grænseflade 15. HentKnapInput Input: Intet Funktion: Funktionen læser indholdet i registret KnapInput (Se figur 5.4 på side 48). Hvis der er gemt et nyt knapinput (Status=1), returneres dette og registret markeres som læst (status sættes til 0). Er registret læst (Status=0), returneres knap=0 (intet nyt knapinput). Returværdien af Fejlkode afhænger af flaget fejl i KnapInput. Output: Knap: 4 bit; Fejlkode: 1 = fejl, 0 = ok. 97

106 KAPITEL 8. SOFTWAREPROCESSER Modul: Opdater Tilstand Hovedfunktion: Modulet følger flowdiagrammerne fra kravspecifikationen, se afsnit 2.3 på side 8. Ud fra den aktuelle tilstand, position og knaptryk, bestemmes en ny tilstand, position samt FejlNr (Se tabel 9.1). Grænseflade 16. OpdaterTilstand Input: Tilstand: 8 bit; Position: 7 bit; FejlNr: 8 bit; Knap: 4 bit. Funktion: Opdaterer systemets tilstand således, at flowdiagrammerne fra kravspecifikationen følges. Output: Tilstand: 8 bit; Position: 7 bit; FejlNr: 8 bit; ID: 30 bit; Fejlkode.: 1 = fejl og 0 = ok Modul: Opdater OptagelsesDB Hovedfunktion: Modulet håndterer hvilke Id numre, der er tilknyttet de enkelte positioner. Modulet kan slette, hente og indsætte ID numre og tilhørende positioner. Grænseflade 17. OpdaterOptagelsesDB Input: Position: 7 bit; handling: 1 = hent, 2 = slet, 3 = ny (2 bit). Funktion: Håndterer OptagelsesDB. Funktionen kan hhv. hente, slette og oprette positioner og tilhørende ID numre. Output: Position: 7 bit; ID: 30 bit; Fejlkode 1 = fejl og 0 = ok Modul: Hent ID Hovedfunktion: Modulet skal hente et nyt ID-nummer fra registret IDReg, se afsnit på side 50. Grænseflade 18. HentID Input: Intet Funktion: Funktionen læser indholdet i registret IDReg (Se figur 5.6 på side 50) og gemmer ID. Er statusbittet sat (nyt ID) returneres 0. Hvis fejlbittet er sat eller, hvis statusbittet ikke er sat, returneres 1. Når ID læses sættes Status til 0 (læst). Output: ID: 30 bit; Fejlkode: 1 = fejl og 0 = ok; 98

107 8.10. DATAFLOWSTYRING Modul: Opdater UdlæsningsReg Hovedfunktion: Modulet opdaterer registret UlæsningsReg, se afsnit på side 48. Grænseflade 19. OpdaterUdlæsningsReg Input: FejlNr: 8 bit; Memorystatus: 8 bit; Tilstand: 4 bit; Position: 7 bit; ID: 30 bit. Funktion: Opdaterer indholdet i registret UdlæsningsReg (Se afsnit på side 48) med nye værdier. UdlæsningsReg er en streng på 65 karakterer, 1 Status-tegn og 4 linier på hver 16 tegn. Status sættes til N (nye data). Linie 1: Position og ID-nummer konverteres til en streng på 16 karakterer med dette format. Eks: #02 Tid:10:25:03 Linie 2 og 3: Tilstand og FejlNr konverteres hver til en streng på 16 karakterer. Tekststrengene til Tilstand og FejlNr. ses i tabel 5.3 på side 50. Linie 4: Memorystatus konverteres til en streng på 16 karakterer med dette format. Eks: Memory: XXXXX... Antallet af X er angiver hvor meget memory der er brugt. Output: Fejlkode: 1 = fejl og 0 = ok Dataflowstyring Denne proces er hovedprogrammet i systemet. Dvs. det er denne proces, der køres så snart systemet er blevet startet op og initialiseret. Den skal styre dataflowet i systemet. Opdelingen af processen Dataflowstyring i moduler er vist på figur 8.8, og specifikationerne for disse beskrives i det følgende. "!#%$'&)(*,+"-. / ( 5) 6 <; 6 = /5>? 8@ 6AB5C? : Figur 8.8: Opdelingen af processen Dataflowstyring i moduler. 99

108 KAPITEL 8. SOFTWAREPROCESSER Modul: Dataflowstyring Hovedfunktion: Modulet skal styre processen Dataflowstyring, og sørge for initialisering af denne. Desuden skal modulet sørge for at køre processen Tilstandsstyring, med jævne mellemrum. Grænseflade 20. InitDataflowstyring Input: Systemopstart Funktion: Initialiserer processen Dataflowstyring. Output: Intet 21. Dataflowstyring Input: Intet Funktion: Styrer afviklingen og fejlhåndteringen af processen Dataflowstyring samt, hvornår processen Tilstandsstyring skal køres. Information om Tilstand hentes fra processen Tilstandsstyring. På baggrund af denne udføres flg: Valg af I/O Enheder. Styrer hvilken I/O enhed der er aktiv, og derved sørge for at der aldrig er flere I/O enheder aktive på samme tid. Dette gøres for at begrænse antallet af interrupts, og derved spare CPU tid (Se afsnit 6.9 på side 59). Der vælges mellem disse muligheder. ADC aktiveret. DAC aktiveret. ACIA aktiveret. Ingen I/O enheder aktiveret. Dette gøres ved at opdatere registret IRQ Enable, og ved at tilgå ACIA en direkte. Sletning af optagelser i lager. Sletter optagelsen med det angivne ID-nummer fra lageret. Beregning af memorystatus, der er en værdi mellem 0 (tomt) og 15 (fyldt) og angiver hvor stor en del af lageret der er brugt til lagring af lyddata. Output: Intet Modul: Lager Hovedfunktion: Modulet skal styre datastrømmen ind og ud af lageret samt initialisering og organiseringen af dette. Grænseflade 22. InitLager Input: Intet Funktion: Initialiserer Lageret. Output: Intet 100

109 8.10. DATAFLOWSTYRING 23. HentLyd Input: Intet Funktion: Henter lyddata fra hukommelsen. Funktionen returnerer en sample (8 bit) af optagelsen med det valgte ID-nummer. Når funktionen kaldes med et nyt ID startes, der forfra i optagelsen, og når den kaldes igen returneres næste sample. Hvis der spoles frem/tilbage returneres kun hver tredje sample i optagelsen. Hvis der ikke er flere samples i en optagelse med det angivne ID, eller hvis ID ikke findes returneres med fejlkode = 1. Output: Fejlkode 1 = fejl og 0 = ok; Data: 8 bit (Sample). 24. GemLyd Input: ID: 30 bit; Data: 8 bit (Sample). Funktion: Tilføjer en sample for enden af optagelsen med det angivne ID. Returnerer med Fejlkode = 1 hvis lageret er fyldt. Output: FejlNr: 8 bit; Fejlkode: 1 = fejl og 0 = ok. 25. Slet Input: ID: 30 bit; Tilstand: 8 bit. Funktion: Afhængigt af Tilstand, fjernes enten alle optagelser eller en enkelt optagelse optagelse fra lageret, ved at ændre i TOC 1. Output: Fejlkode: 1 = fejl og 0 = ok. 1 Inholdsfortegnelse der angiver hvor de enkelte optagelser er gemt i lageret. 101

110 .

111 9KAPITEL Kapitlets indhold 9.1 Moduldesign Brugerinput Testspecifikation for modulet Brugerinput Udlæsning Testspecifikation for modulet Udlæsning Ur Testspecifikation for modulet Ur Overførsel Testspecifikation for modulet Overførsel Lydindgang Testspecifikation for modulet Lydindgang Lydudgang Testspecifikation for modulet Lydudgang Tilstandsstyring Testspecifikation for modulet Tilstandsstyring Hent KnapInput Testspecifikation for modulet Hent KnapInput Opdater Tilstand Testspecifikation for modulet Opdater Tilstand Opdater OptagelsesDB Testspecifikation for modulet Opdater OptagelsesDB Hent ID Testspecifikation for modulet Hent ID Opdater UdlæsningsReg Testspecifikation for Opdater UdlæsningsReg Dataflowstyring Testspecifikation for Dataflowstyring Lager Testspecifikation for Lager

112 KAPITEL 9. SOFTWAREMODULER 9.1 Moduldesign I dette kapitel designes hvert modul fra kapitlet, softwareprocesser. Modulerne designes med udgangspunkt i modulbeskrivelserne og kravspecifikationen. Designet af modulerne laves ved at udforme pseudokode for hvert modul. Til et modul laves pseudokode for samtlige entryfunktionerne. Til kommunikationen mellem modulerne Dataflowstyring og Tilstandsstyring benyttes globale variable som begge moduler kan tilgå. De globale variable er FejlNr og Tilstand, se tabellerne 9.1 og 9.2 på modstående side, samt variablene ID og memorystatus. FejlNr Betydning Funktion 0 Alt OK 1 Ny Optagelse Udlæses 2 Maks 99 beskeder Udlæses 3 Fejl i brugerinput 4 Hukommelse fuld Udlæses 5 Track slut 6 Sletning faerdig 9 Overfoersel faerdig 10 Sluk display 12 Fejl i udlaesning 13 Betjeningsfejl Udlæses 14 Fejl i op.tilstand Tabel 9.1: Beskrivelse af FeljNr. Nogle fejlkoder udlæses ikke, men bruges kun internt i programmet. 9.2 Brugerinput Modulet skal køre som autovektoriseret interruptrutine på niveau 1. Design i Pseudokode 1 Funktion BrugerInput() 2 { 3 hent knaptryk fra HW 4 gem knaptryk i KnapInput 5 sæt flaget status til ulæst 6 HVIS (knaptryk er gyldigt) 7 SÅ 8 sæt flaget fejl til OK (nul) 9 ELLERS 10 sæt flaget fejl til FEJL (1) 11 Afslut funktion 12 }

113 9.3. UDLÆSNING Tilstand Handling I koden Udlæsning til bruger 1 Idle 2 Optag Record Optager 3 PauseR Pause 4 Afspil Play Afspiller 5 PauseP Pause 6 Delete Slet enkelt? 7 Slet optagelse Deletetrack Sletter 8 ConfirmDeleteAll Slet alle? 9 Slet alle optagelser DeleteAll Sletter 10 Transfer 11 ConfirmTransferAll Overfoer alle? 12 Overfør optagelse TransferAll Overfoerer 13 Standby Standby 14 Spol frem ForwardPlay Spoler frem 15 Spol tilbage RewindPlay Spoler tilbage Tabel 9.2: Tilstande fra kravspecifikationen samt hjælpe tilstande til brug intern i koden samt kommunikation mellem processerne Dataflowstyring og Tilstandsstyrring. 14 Funktion InitBrugerInput() 15 { 16 Aflæs HW-modulet Knap for at nulstille PEEL 17 sæt alle bits i registret KnapInput til 0 18 Afslut funktion 19 } Testspecifikation for modulet Brugerinput Modulet skal bruge HW-modulet Knap, for at køre. Derfor er det ikke muligt at udføre test af dette modul alene. Modulet testes under procestest af Brugerinput, se afsnit III.1 på side Udlæsning Modulet skal køre som autovektoriseret interruptrutine på niveau 2. Design i Pseudokode 1 Funktion Udlaesning() 2 { 3 HVIS (Flag = N ) 4 SÅ 5 Send streng (64 tegn) til display, et af gangen 6 Sæt flag til L 7 Afslut funktion 105

114 KAPITEL 9. SOFTWAREMODULER 8 } 9 10 Funktion InitUdlaesning() 11 { 12 Opsæt display ved at sende initialiseringssekvensen til displayet 13 Afslut funktion 14 } Testspecifikation for modulet Udlæsning Modulet skal bruge HW-modulet Display, for at køre. Derfor er det ikke muligt at udføre test af dette modul alene. Modulet testes under procestest af Udlæsning, se afsnit III.2 på side Ur Modulet skal køre som autovektoriseret interruptrutine på niveau 3. Design i Pseudokode 1 Funktion Ur() 2 { 3 Tæl registret ID_REG en op 4 Sæt flaget status til ulæst 5 Afslut funktion 6 } 7 8 Funktion InitUr() 9 { 10 Nulstil ID_REG 11 Afslut funktion 12 } Testspecifikation for modulet Ur Modulet skal bruge modulet HW-ur, for at køre. Derfor er det ikke muligt at udføre test af dette modul alene. Modulet testes under procestest af Ur, se afsnit III.3 på side Overførsel Modulet skal køre som autovektoriseret interruptrutine på niveau 4. Design i Pseudokode 1 Funktion Overfoersel() 2 { 3 funktionen HentLyd i modulet Lager 4 HVIS (HentLyd() returnerer OK) 5 SÅ 106

115 9.6. LYDINDGANG 6 skriv lyddata til ACIA 7 sæt flaget ACIA i registret IOfejl til OK (nul) 8 ELLERS 9 afbryd interrupts fra ACIA 10 sæt flaget ACIA i registret IOfejl til FEJL (1) 11 Afslut funktion 12 } Funktion InitOverfoersel() 15 { 16 send SW-reset til ACIA 17 sæt ACIA op så der kan sendes og interrupt er slået fra 18 { 19 ReceiverIRQ = no, 20 TransmitterIRQ = no, 21 data = 8 bit, 22 parity = no, 23 stopbit = 1, 24 Clockdivision = } 26 Afslut funktion 27 } Testspecifikation for modulet Overførsel Modulet skal bruge HW-modulet ACIA, for at køre. Derfor er det ikke muligt at udføre test af dette modul alene. Modulet testes under procestest af Overførsel, se afsnit 10.5 på side Lydindgang Modulet skal køre som autovektoriseret interruptrutine på niveau 5. Design i Pseudokode 1 Funktion Lydindgang() 2 { 3 hent data fra ADC 4 skriv lyddata til lager ved at kalde GemLyd 5 HVIS (GemLyd() returnerer OK) 6 SÅ 7 sæt flaget ADC i registret IOfejl til OK (nul) 8 ELLERS 9 sæt flaget ADC i registret IOfejl til FEJL (1) 10 Afslut funktion 11 } Funktion InitLydindgang() 14 { 15 Afslut funktion 16 } Testspecifikation for modulet Lydindgang Modulet skal bruge HW-modulet ADC, for at køre. Derfor er det ikke muligt at udføre test af dette modul alene. Modulet testes under procestest af Brugerinput, se afsnit

116 KAPITEL 9. SOFTWAREMODULER 9.7 Lydudgang Modulet skal køre som autovektoriseret interruptrutine på niveau 6. Design i Pseudokode 1 Funktion Lydudgang() 2 { 3 hent data fra lager ved at kalde funktionen HentLyd 4 HVIS (HentLyd() returnerer OK) 5 SÅ 6 skriv lyddata til DAC 7 sæt flaget DAC i registret IOfejl til OK (nul) 8 ELLERS 9 sæt flaget DAC i registret IOfejl til FEJL (1) 10 Afslut funktion 11 } Funktion InitLydudgang() 14 { 15 Afslut funktion 16 } Testspecifikation for modulet Lydudgang Modulet skal bruge HW-modulet DAC, for at køre. Derfor er det ikke muligt at udføre test af dette modul alene. Modulet testes under procestest af Brugerinput, se afsnit Tilstandsstyring I pseudokoden for modulet Tilstandsstyring indgår variablen Knap se tabel 9.3 på næste side. Design i Pseudokode 1 Funktion InitTilstandsstyring() 2 { 3 Tilstand = Idle; 4 Position = Første besked; 5 FejlNr = NY; 6 Knap = Ingen knaptryk; 7 ID = 0; 8 Antallet af beskeder = 0; 9 } Funktion Tilstandsstyring() 12 { 13 HVIS (HentKnapInput() returnerer fejl) 14 SÅ 15 Afslut funktion; 16 ELLERS 17 HVIS (Nyt knaptryk eller FejlNr) 18 SÅ 19 HVIS (OpdaterTilstand(Tilstand, Position, FejlNr, Knap) returnerer fejl) 20 SÅ 108

117 9.8. TILSTANDSSTYRING Knap I koden 0 [intet nyt knaptryk] 1 POWER 2 PLAY 3 RECORD 4 PAUSE 5 STOP 6 NEXT 7 PREVIOUS 8 FORWARD 9 REWIND 10 DELETE 11 OK 12 CANCEL 13 UPLINK Tabel 9.3: Værdier som variablen Knap antager. 21 FejlNr = Fejl_i_opdatertilstand; 22 Afslut funktion; 23 ELLERS 24 HVIS (OpdaterUdlaesningsReg() returnerer fejl) 25 SÅ 26 FejlNr = Fejl_i_udlaesning; 27 Afslut funktion; 28 ELLERS 29 Knap = Ingen knaptryk; 30 FejlNr = 0; 31 Afslut funktion; 32 Afslut funktion; 33 } Testspecifikation for modulet Tilstandsstyring Test af modulet Tilstandsstyring vil blive testet under procestesten af processen Tilstandsstyring. Testen af de enkelte moduler i processen udføres vha. af et testprogram (se funktionstest af tilstandsstyring på vedlagte CD-Rom [CD-ROM 2003]). Herfra kan entryfunktioner kaldes enkeltvis med de parametre der ønskes testet. Konklusion Se konklusion for test af processen Tilstandsstyring. 109

118 KAPITEL 9. SOFTWAREMODULER 9.9 Hent KnapInput Design i Pseudokode 1 Funktion HentKnapInput() 2 { 3 HVIS (Fejlbit er sat) 4 SÅ 5 returner Fejl, som er sat af processen Brugerinput 6 ELLERS 7 HVIS (Statusbit er sat, dvs ulæst) 8 SÅ 9 Tag værdien Knap ud af registret KnapInput og gem i variablen Knap 10 Neger status i registret KnapInput og holder resten intakt 11 returner ok 12 ELLERS 13 Knap = Ingen knaptryk 14 returner ok 15 } Testspecifikation for modulet Hent KnapInput Testen skal udføres vha. af testprogrammet. Konklusion Modulet er testet og virker som beskrevet i kapitel Opdater Tilstand Modulet er designet ud fra flowdiagrammerne i kravspecifikationen. Design i Pseudokode 1 /* Funktionen designes efter flowcharts fra kravspecifikationen */ 2 /* */ 3 /* Der handles på baggrund af Tilstand, Position, FejlNr og Knap */ 4 /* */ 5 /* Strukturen af funktionen gentages for alle tilstande */ 6 /* */ 7 8 Funktion OpdaterTilstand(Tilstand, Position, FejlNr, Knap) 9 { For alle Tilstande: For hvert knaptryk 14 Udfør handling; For hvert FejlNr 17 Udfør handling; }

119 9.11. OPDATER OPTAGELSESDB Testspecifikation for modulet Opdater Tilstand Modulet Opdater Tilstand testes under procestesten af processen Tilstandsstyring, og dette udføres vha. af testprogrammet. Konklusion Se konklusion for processen Tilstandsstyring Opdater OptagelsesDB Design i Pseudokode 1 Funktion OpdaterOptagelsesDB(Postion, (Hent ID eller Slet ID eller Ny ID)) 2 { 3 Hent ID: 4 ID = optagelsesdb[position] 5 returner ok 6 Slet ID: 7 HVIS (DeleteID() returnerer ok) 8 SÅ 9 returner ok 10 ELLERS 11 returner Fejl 12 Ny ID: 13 HVIS (NewID() returnerer ok) 14 SÅ 15 returner ok 16 ELLERS 17 returnerer Fejl 18 returnerer Fejl 19 } Funktion DeleteID() 22 { 23 HVIS (Ingen beskeder) 24 SÅ 25 returner Fejl 26 HVIS (En besked) 27 SÅ 28 Slet ID på besked 29 returner ok 30 ELLERS 31 Slet ID på aktuel besked 32 Flyt alle ID numre en plads ned 33 Dekrementer antallet af beskeder med en 34 returner ok 35 } Funktion NewID() 38 { 39 HVIS (HentID() returnerer ok) 40 SÅ 41 HVIS (Sidste besked) 42 SÅ 43 Tildel ny optagelse et ID 44 Inkrementer antallet af beskeder med en 45 ELLERS /* Svarer til at der tilføjes en besked mellem to beskeder */ 46 Flyt alle ID numre et nummer frem 47 Tildel aktuel besked nyt ID 48 Inkrementer antallet af optagelser med 1 49 returner ok 50 ELLERS 111

120 KAPITEL 9. SOFTWAREMODULER 51 returner Fejl 52 } Testspecifikation for modulet Opdater OptagelsesDB Testen skal vise om det er muligt henholdsvis at slette, hente og oprette nyt ID i OptagelsesDB, og udføres vha. af testprogrammet. Konklusion Modulet er testet og virker som beskrevet i kapitel Hent ID Design i Pseudokode 1 Funktion HentID() 2 { 3 HVIS (Statusbit er sat (1) (dvs. ulæst)) 4 SÅ 5 Neger status i ID_REG og hold resten intakt 6 HVIS (ID_Fejl_bit er sat) 7 SÅ 8 returner Fejl, hvilket indikerer fejl, som er sat af processen UR 9 ELLERS 10 returner ok 11 ELLERS 12 returner Fejl, indikerer, at registret var blevet læst 13 } Testspecifikation for modulet Hent ID Det skal testes, om det er muligt at hente et ID nummer fra registret IDReg. Testen udføres vha. af testprogrammet. Konklusion Modulet er blevet testet og virker som beskrevet i kapitel Opdater UdlæsningsReg Design i Pseudokode 1 Funktion OpdaterUdlaesningsReg() 2 { 3 Generer 1. linje til display bestående af Position og ID 4 Generer 2. linje til display bestående af Tilstand 5 Generer 3. linje til display bestående af FejlNr 6 Generer 4. linje til display bestående af Memorystatus 7 Saml de 4 linjer i et array bestående af chars, hvor det første 8 element er et kontroltegn "N" for ny 9 returner ok 112

121 9.14. DATAFLOWSTYRING 10 Afslut funktion 11 } Testspecifikation for Opdater UdlæsningsReg Det testes om UdlæsningsReg opdateres, hvis det er blevet læst. Testen udføres vha. af testprogrammet. Konklusion Modulet er blevet testet og virker som beskrevet i kapitel Dataflowstyring I pseudokoden for modulet Dataflowstyring indgår variablen IOfejl, se tabel 9.4. Bit I/O-enhed Betydning 0 ADC Lager fyldt 1 DAC Track slut 2 ACIA Overførsel færdig Tabel 9.4: IOFejl bruges til kommunikation mellem I/O enhederne og Dataflowstyring. Da kun en I/O-enhed kan være aktiv af gang kan kun et enkelt bit være sat. Design i Pseudokode 1 Funktion Dataflowstyring() 2 { 3 Initialisering af systemet: 4 { 5 Sæt IRQ til level 7 (ingen afbrydelser) 6 Afbryd interrupts fra DAC og ADC 7 Initialiser Lydudgang 8 Initialiser Overfoersel 9 Initialiser Lydindgang 10 Initialiser Ur 11 Initialiser Udlaesning 12 Initialiser Brugerinput 13 Initialiser Lager 14 Initialiser Tilstandsstyring 15 Initialiser Dataflowstyring 16 Sæt IRQ level ned til 0 17 } 18 Hovedprogram: 19 { 20 Vælg aktiv IO enhed: 21 { 22 Tilstand PLAY: 23 Aktiver DAC og deaktiver ADC og ACIA 24 Tilstand RECORD: 25 Aktiver ADC og deaktiver DAC og ACIA 26 Tilstand TRANSFER: 27 Aktiver ACIA og deaktiver ADC og DAC 28 Tilstand alle andre: 29 Deaktiver alle IO enheder 113

122 KAPITEL 9. SOFTWAREMODULER 30 } 31 tjek registret IOfejl og opdaterer FejlNr 32 nulstil IOfejl 33 beregn memory status 34 KØR Tilstandsstyring() 35 } 36 SPRING til Hoveprogram 37 } Funktion InitDataflowstyring() 40 { 41 sæt aktivid til 0 42 sæt Tilstand til STANDBY 43 Afslut funktion 44 } Testspecifikation for Dataflowstyring Følg vedledningen i filen testdummy.s, se [CD-ROM 2003]. 1. Følgende filer kompileres og loades via TS2MON: vector.s, testdummy.s, dataflow.s og testdataflow.s 2. Adresserne på variablene Tilstand, ID, FejlNr, memorystatus, aktivid og IOfejl aflæses i kompilerens LN.map fil. 3. Programmet loades via.ts2mon. 4. Skriv værdier i Tilstand, ID og IOfejl via. TS2MON 5. Kør programmet. 6. Læs værdierne i AktivID og FejlNr via. TS2MON Konklusion på side 145. Testen blev udført som specificeret, og resultaterne var som forventet, se afsnit II Lager Figuren illustrerer den principielle virkemåde af lageret. Lageret ligger i området fra til. Alle pointere er defineret som 32-bit værdier. Dette er nødvendigt, da systemets adressebus er 24 bit bred, og det ikke er muligt at operere på 3 byte størrelser. Værdien tocbase ligger i begyndelsen af lageret svarende til. Beskederne lægges ind i lageret startende fra den højeste adresse. Hver besked tildeles, et ID nummer som defineret i afsnit på side 50, samt en start- og stoppointer. Disse tre elementer benævnes fremover som et datasæt. Startpointeren holder styr på, hvor en besked starter. Stoppointeren peger på den næste frie plads, hvor en sample kan lægges ind. Således vil stoppointeren for besked 1 pege på samme adresse som startpointeren for besked 2. Pointeren tocslut markerer, hvor det næste ID nummer skal placeres. Når forskellen mellem værdien af en stoppointer og tocslut indikerer at der kun er plads til et datasæt, er lageret fyldt. LagerID bruges til at sammenligne et aktivt ID med det sidst anvendte ID, og dermed detektere om der er tale om et nyt nummer. For at kunne holde styr på, hvilken sample, der skal hentes fra lageret som den næste, defineres pointeren aktivhentsample. 114

123 9.15. LAGER! #" 5 ( 6 / #"%$'& ( # ( #"%$) ( # ( *! +(,.- $) / ) ,.- $'& Figur 9.1: Figuren illusterer den tiltænkte virkemåde af lageret. I dette eksempel indeholder lageret to beskeder. Det sidste ID, der har været anvendt er ID 2. Pointere er markeret med pile. Design i Pseudokode 1 Funktion HentLyd(ID) 2 { 3 HVIS (ID er nyt og Tilstand = PLAY) 4 SÅ 5 Hent den første sample med det angivne ID 6 Returner fejlkode OK (0) 7 ELLERS 8 HVIS (optagelser ikke slut) 9 SÅ 10 Returner næste sample i optagelsen med det angivne ID 11 Returner fejlkode OK (0) 12 ELLERS 13 Returner fejlkode FEJL (1) HVIS (ID er nyt og Tilstand = SPOLFREM) 16 SÅ 17 Hent den første sample optagelsen med det angivne ID 18 Returner fejlkode OK (0) 19 ELLERS 20 HVIS (optagelser ikke slut) 21 SÅ 22 Returner sample 3 pladser efter den sidste der blev returneret 23 fra i optagelsen med det angivne ID. 24 Returner fejlkode OK (0) 25 ELLERS 26 Returner fejlkode FEJL (1) HVIS (Tilstand = SPOLTILBAGE) 29 HVIS (optagelser ikke slut) 30 SÅ 31 Returner sample 3 pladser efter den sidste der blev returneret 32 fra i optagelsen med det angivne ID. 33 Returner fejlkode OK (0) 34 ELLERS 35 Returner fejlkode FEJL (1) 36 Afslut funktion 37 } Funktion GemLyd(DATA,ID) 115

124 KAPITEL 9. SOFTWAREMODULER 40 { 41 HVIS (ID ikke er det samme som ved forrige kald) 42 SÅ 43 opret nyt datasæt i TOC 44 gem sample 45 opdater TOC 46 opdater SampleTotal 47 HVIS (lager ikke fyldt) 48 SÅ 49 returner OK (0) 50 ELLERS 51 returner FEJL (1) 52 Afslut funktion 53 } Funktion Slet(ID) 57 { 58 HVIS Tilstand == Slet alle 59 SÅ 60 kør InitLager 61 returner OK (0) 62 HVIS Tilstand == Slet enkelt 63 SÅ 64 Find datasæt for ID 65 Overskriv det fundne datasæt med det sidste gemte datasæt i TOC 66 Afslut funktion 67 } Funktion InitLager() 70 { 71 Initialiser Table Of Contents 72 Initialiser positions variable 73 } ***************************************************************** Funktion FinniTOC(ID) 78 { 79 Spring til TOC-start 80 HVIS (ID er det samme som første ID i TOC) 81 SÅ 82 Retuner adressen for ID 83 ELLERS 84 FindNæste: 85 { 86 HVIS (Ikke sidste ID i TOC) 87 SÅ 88 HVIS (ID er det samme som næste ID i TOC) 89 SÅ 90 Retuner adresse for ID 91 ELLERS 92 Spring til FindNæste 93 ELLERS 94 returner ID findes ikke (fejl = 1) 95 } } Testspecifikation for Lager 1. Følg vedledningen i filen testdummy.s, se [CD-ROM 2003]. 2. Følgende filer kompileres og loades vha. TS2MON: vector.s, testdummy.s, lager.s og testlager.s. 3. Adresserne på variablen Tilstand og SampleTotal aflæses i LN.map. 116

125 9.15. LAGER 4. Programmet loades vha.ts2mon. 5. Memoryadresserne hvor TOC kommer til at ligge aflæses vha. TS2MON 6. Funktionen GemLyd testes (a) Sæt værdien i Tilstand til optagelse (2) vha. TS2MON. (b) Kør programmet. (lageret fyldes med ens tal, se hvilket i filen testlager.s) (c) tryk på NMI. (d) Memoryadresserne hvor TOC kommer til at ligge aflæses og kontrolleres. (e) Kontroller at der er skrevet lyddata i lageret i det område der står i TOC. (f) Læs værdien i SampleTotal, og kontroller at den stemmer med det antal bytes der er gemt. (g) Ændre ID og stop adressen i det gemte datasæt i TOC. (h) Kør programmet igen. (i) Tryk på NMI (j) Kontroller at der er oprettet et nyt datasæt i TOC. 7. Funktionen HentLyd testes (a) Sæt værdien i Tilstand til afspil (4) vha. TS2MON. (b) Tilslut PC med terminalprogram opsat til at lagre indkomne data i en fil. opsætning: Baud, 8 bit, 1 stopbit, ingen paritet, Hardware flowcontrol. (c) Kør programmet.(indholdet i lageret sendes til terminalen.) (d) Memoryadresserne hvor TOC kommer til at ligge aflæses og kontrolleres. (e) Kontroller at data der blev modtaget stemmer med dem der er gemt i lageret i det område, der står i TOC. (f) Læs adresseområdet i TOC, og kontroller at det stemmer med det antal bytes der blev modtaget. 8. Funktionen Slet testes (a) Sæt værdien Tilstand til slet alle (9) vha. TS2MON. (b) Kør programmet. (c) Kontroller at TOC initialiseret. Konklusion Testen blev udført som specificeret, og resultaterne var som forventet. 117

126 .

127 10 KAPITEL Kapitlets indhold 10.1 Forudsætninger Brugerinput Testspecifikation Konklusion Udlæsning Testspecifikation Konklusion Ur Testspecifikation Konklusion Overførsel Testspecifikation Konklusion Lydindgang Testspecifikation Konklusion Lydudgang Testspecifikation Konklusion Tilstandsstyring Testspecifikation Konklusion Dataflowstyring

128 KAPITEL 10. PROCESTEST 10.1 Forudsætninger Det ønskes at teste processerne enkeltvis. Der benyttes autovektoriserede interrupts, og dette er sat op vha. en vektortabel (vector.s). Denne består af en række kald til subrutiner, og derfor er det nødvendigt, at disse findes i programteksten. Derfor laves en programstump (testdummy.s) der indeholder dummy-versioner 1 af de udeladte subrutiner. Filen indeholder desuden samtlige initialiseringsrutiner og andre funktioner, der ønskes testet og/eller bruges i den proces der testes Brugerinput Processen Brugerinput består af at hardwaremodulet Knap og softwaremodulet Brugerinput. Disse testes sammen Testspecifikation 1. Følgende filer assembleres og loades via TS2MON: vector.s, testdummy.s og knap.s. 2. Adressen på registret KNAPINPUT_REG aflæses i LN.map Programmet afvikles og der trykkes på en knap. NMI knappen aktiveres og registrets indhold aflæses vha. TS2MON. Dette gøres for alle knapper Konklusion Det kan konstateres, at alle 13 knapper, resulterer i det forventede indhold i registret KNAPIN- PUT_REG. Påvirkes den 14. ikke definerede knap, resulterer dette i at fejl-bit et blev sat. Det kan derfor konstateres, at modulet virker efter hensigten Udlæsning Processen Udlæsning består af hardwaremodulet Display og softwaremodulet Udlæsning. Disse testes samlet Testspecifikation 1. Variablen UdlaesningsReg defineres i filen testdisplay.c, som en tekststreng på 65 tegn. Første tegn bruges som flag og sættes i test.c til N (ASCII: ). Dette flag indikerer, at registret indeholder ny data, der skal aflæses af displayet. 1 Med dummy menes en funktion der blot returnerer med det samme efter den er blevet kaldt. 2 En fil som indeholder, hvilke områder de forskellige variable, funktioner mv. og filer placeres i hukommelsen 120

129 10.4. UR 2. Følgende filer assembleres og loades vha. TS2MON: vector.s, testdummy.s og display.s. Filen testdisplay.c kompileres, assembleres og loades ligeledes vha. TS2MON. 3. Adressen på registret UdlaesningsReg aflæses i LN.map. 4. Programmet afvikles. Det kontrolleres at tekststrengen udlæses korrekt på displayet. 5. Systemets NMI-knap påvirkes, så programmet stoppes med indholdet af registrene gemt. 6. Det kontrolleres at første tegn er ændret til et L (ASCII: læst en gang. ), da indholdet af registret er 7. Programmet afvikles forfra og det kontrolleres, at tekststrengen ikke udskrives og displayet forbliver blankt. 8. Tryk på NMI. 9. Der skrives et N som det første tegn i UdlaesningsReg vha. TS2MON. 10. Positionen opdateres til værdien 12 ved at skrive 1 (ASCII: plads 2 og 3 i UdlaesningsReg. 11. Programmet afvikles og det kontrolleres, at positionen er ændret til 12. ) og 2 (ASCII: ) på Konklusion Testen blev udført som specificeret, og resultaterne var som forventet. Det kan således konkluderes at opdateringen af displayet fungerer som det skal Ur Processen Ur består af hardwaremodulet HW-ur og softwaremodulet Ur. Disse testes samlet Testspecifikation 1. Følgende filer assembleres og loades vha. TS2MON: vector.s, testdummy.s, ur.s og testur.s. 2. Adressen på registret ID_REG aflæses i LN.map. 3. Programmet afvikles. 4. Efter 10 sek aktiveres NMI knappen. 5. ID_REG aflæses vha. TS2MON og det kontrolleres, at værdien i registret svarer til decimaltallet Punkt 3 til 5 udføres endnu 2 gange, hvor programmet kører i hhv. 20 og 30 sek Konklusion Testen blev udført som specificeret, og resultaterne var som forventet. Det kan således konkluderes at Uret tæller registret ID_REG op som forventet. 121

130 KAPITEL 10. PROCESTEST 10.5 Overførsel Processen Overførsel består af hardwaremodulet ACIA og softwaremodulet Overførsel. Disse testes samlet Testspecifikation Følgende filer assembleres og loades vha. TS2MON: vector.s, testdummy.s, aciauser.s og testaciauser.s. Tilslut PC med terminalprogram opsat til at lagre indkomne data i en fil. opsætning: Baud, 8 bit, 1 stopbit, ingen paritet, Hardware flowcontrol. Programmet afvikles. Det kontrolleres, at den tekststreng, der er angivet i testaciauser.s udskrives i terminalen Konklusion Testen blev udført som specificeret, og den korrekte tekst streng blev overført. Det kan således konkluderes at processen Overførsel fungerer som forventet Lydindgang Processen Lydindgang består af hardwaremodulerne ADC, Mikrofon og Forstærker samt softwaremodulet Lydindgang. Disse testes samlet. Det forudsættes desuden, at hardware modulet ACIA USER fungerer efter hensigten Testspecifikation Følgende filer assembleres og loades vha. TS2MON: vector.s, testdummy.s, adc.s og testadc.s. Tilslut PC med terminalprogram opsat til at lagre indkomne data i en fil. Opsætning: Baud, 8 bit, 1 stopbit, ingen paritet, Hardware flowcontrol. Programmet afvikles. Der indtales en besked, der overføres direkte til PC vha. testadc.s. De rå lyddata, afspilles på PC en vha. et passende program, og det kontrolleres, at indholdet stemmer overens med det indtalte Konklusion Testen blev udført som specificeret, og den afspillede besked svarede til det indtalte. Det kan således konkluderes, at processen Overførsel fungerer som forventet. Det ville dog være muligt, 122

131 10.7. LYDUDGANG at lave en mere kvalitativ test, ved at indspille et sinus signal med en kendt frekvens, og derefter kontrollere, at de overførte data svarer til en sinus med samme frekvens. Det vurderes dog som tilstrækkeligt, at den indtalte talesekevens kunne genkendes Lydudgang Processen Lydudgang består af hardwaremodulerne DAC, Højttaler og Forstærker samt softwaremodulet Lydudgang. Disse integreres og testes Testspecifikation Følgende filer assembleres og loades vha. TS2MON: vector.s, testdummy.s, dac.s og testdac.s. " Programmet afvikles, hvorved der genereres et sinus signal. Det kontrolleres, at der kommer lyd ud, og at det lyder som et sinus signal, og således ikke blot er støj Konklusion Testen blev udført som specificeret, og det var muligt at genkende den afspillede lyd som et sinus signal. En grundigere test ville være, at måle på højttalerudgangen med et oscilloskop. Den udførte test vurderes som et tilstrækkeligt grundlag for at vurdere, om processen lydudgang fungerer efter hensigten Tilstandsstyring Processen Tilstandsstyring består af softwaremodulerne Tilstandsstyring, Hent KnapInput, Opdater Tilstand, Opdater OptagelsesDB, Hent ID og Opdater UdlaesningsReg. Disse testes samlet. Til at teste processen benyttes det udviklede program (funktionstest_tilstandsstyring.exe [CD-ROM 2003]) Testspecifikation Programmet bringes i hver af tilstandene fra kravspecifikationen. I hver tilstand, indtastet registret KnapInput samt FejlNr. Det kontrolleres at programmet følger de definerede flowcharts fra kravspecifikationen. 123

132 KAPITEL 10. PROCESTEST Konklusion Processen er blevet testet og virker delvist som beskrevet i kapitel 8 Softwareprocesser. Af testrapporten ses, at ved en række knaptryk i tilstanden Idle bevirkede, at udlæsningen af NY optagelse forsvandt i displayet. Fejlen skyldes pseudo-kodningen af modulet Tilstandsstyring. FejlNr sættes konsekvent til O, hver gang funktionen Tilstandsstyring er kørt. Ved af fjerne dette og i stedet implementere nulstilling af FejlNr i modulet Opdater Tilstand, de steder hvor hverken Knap eller FejlNr fører til ændreinger, ville det være muligt at forhindre denne fejl Dataflowstyring Processen består af modulerne Dataflowstyring og Lager. Disse er testet som selvstændige moduler og virker efter hensigten, se afsnit 9.14 og 9.15 på side 114. Da alle andre processer er testede vælges det ikke at udføre denne procestest. I stedet henvises til accepttesten. 124

133 11 KAPITEL Det valgte projekt indebar, ifølge det stillede projektforslag, at der skulle konstrueres en digital diktafon med mulighed for overførsel af data til en dockingstation. Projektet inkluderer hardware og software i overensstemmelse med kravene i projektenhedsbeskrivelsen, og tager udgangspunkt i et mikrodatamatsystem. Ud fra en analyse af den stillede problemstilling, blev der udarbejdet en kravspecifikation indeholdende krav til en prototype på en digital diktafon. I det følgende konkluderes, hvorvidt det designede produkt lever op til de stillede krav. Accepttest Der tages udgangspunkt i den accepttest, der er foretaget på det samlede system. Resultaterne af denne test er gengivet i afsnit III.5 på side 152. Hovedparten af testene viste, at systemet fungerede korrekt i henhold til designet. Det kan også konstateres, at input, der ikke er defineret i kravspecifikationen ofte medfører, at systemet går ned. Det vurderes, at dette skyldes mangelfuld/manglende behandling af fejlagtige input. Sletning af enkelte beskeder, samt den løbende opdatering af forbrugt lagerplads, er ikke implementeret og kunne således ikke testes. I forbindelse med overførsel af lyddata til PC, konstateredes det, at beskederne ikke blev gemt i separate filer. Systemet blev målt til at have et kontinuert energiforbrug på, hvilket er en klar overskridelse af kravet på. Det kan udfra accepttesten konkluderes, at det fremstillede system er i stand til at optage og afspille beskeder, samt overføre disse til en dockingstation i form af en PC. Dermed kan systemet betragtes som en gyldig løsning på den stillede opgave. Forbedring og videreudvikling af systemet Som en del af konklusionen foretages en vurdering af, hvilke forbedringer det umiddelbart vil være relevant at foretage på produktet i den nuværende udgave. Følgende funktioner mangler i henhold til kravspecifikationen. Spoling frem og tilbage. Sletning af et enkelt nummer. Indikering af memorystatus. Inddeling af de overførte lyddata i separate filer. Disse skal implementeres for, at gøre realiseringen af designet komplet. Ligeledes er det væsentligt, at der foretages en optimering af koden, med særligt fokus på håndtering af fejl, således at 125

134 KAPITEL 11. KONKLUSION systemet ikke går ned, når der modtages ikke definerede input. I denne forbindelse vil det være ønskeligt at anvende et simuleringsværktøj. Da der ikke er adresseret nogle enheder i området fra ( til, se figur 4.1 på side 29, vil det være muligt at allokere dette område til hukommelse, og på denne måde opnå en lagerkapacitet på ca. 16 min. Det ville ligeledes være relevant, at begrænse energiforbruget til, således, at systemet kan forsynes med 4 stk batterier. De anvendte Peel kredse er opgivet til at have et maksimalt strømforbrug på, når den anvendes som en 8-bit tæller [Integrated Circuit Technology Corp. 29. april 2003]. Systemet inkluderer 6 af disse kredse, og den programmerbare logik forbruger en ganske betydelig mængde strøm. Det forventes, at dette strømforbrug vil kunne nedbringes i forbindelse med en videreudvikling, hvor antallet af kredse vil skulle reduceres for at opnå en passende fysisk størrelse af produktet. Det vil ligeledes være muligt at foretrække kredse med et lavere energiforbrug end dem, der er anvendt i dette design. I henhold til projektenhedsbeskrivelsen er programmering af PC software til håndtering af lydfiler og kommunikation med diktafonen bevidst nedtonet i dette projektforløb. Det vil derfor i et videre udviklingsforløb være oplagt at udvikle software, der implementerer en mere avanceret brugergrænseflade på PC-siden. Eftersom semestrets primære fokus er mikrodatamatsystemer, er der i rapporten ikke gået i dybden med at opstille kvalitative krav til signalbehandlingen. En analyse og efterfølgende forbedring af dette område vurderes dog fra gruppens side at være ønskelig i forbindelse med en videre udvikling af designet. Følgende tiltag foreslås i denne forbindelse: Analyse af frekvensresponsen for såvel LydInd kredsløbet som udgangstrinnet. En test af signalbehandlingen i hht. en anerkendt standard for lydkvalitet. Implementering af en automatisk regulering af forstærkningen af indgangssignalet. Implementering af et skarpere lavpasfilter i udgangen for at begrænse kvantiseringsstøj. Samlet konklusion Overordnet set kan det konkluderes, at fremstillingsprocessen har givet anledning til den af studieordningen krævede indlæringsproces. Den designede diktafon med de beskrevne forbehold, og de dertil stillede løsningsforslag til forbedringer og udbedringer, anses som en gyldig løsning på den stillede opgave. 126

135 N.d. Analog Devices. 30. april Bit Buffered Multiplying CD-ROM Bilag og appendiks CD-Rom. Findes på vedlagte CD-ROM. Clements, Alan Microprocessor systems design: hardware, software, and interfacing. 3 udgave International Thomson Publishing. ISBN: Dataip way D Serial Port Pin Out Table. Department of Acoustics, Aalborg University. 9. april Lidt om GmbH, TQ Elektronik Komponenten. Februar, Quartz Crystal oscillators, MCO1425B. Integrated Circuit Technology Corp. 29. april Peel Device IT & telestyrelsen Hvad er Maxim. 23. maj 2003b. Switched-Capacitor Voltage Maxim. 5. maj 2003a. RS232 linedriver/receiver 127

136 LITTERATUR Motorola. 27. april M68000 Microprocessor s Users Manual. 9th fc/mc68000um.pdf Moxsyn. N.d. National Semiconductor. 23. maj LM741 Operational National Semiconductors. N.d.a. 8th-Order Elliptic National Semiconductors. N.d.b. Open Source. 25. maj Sound Exchange Oppenheim, Alan V., Ronald W. Schafer & John R. Buck Discrete-time Signal Processing. 2 udgave Prentice Hall. ISBN: Panasonic. N.d. Electret Microphone WM034DB. Phillips Semiconductors. N.d. BAT85. Sedra, Adel S. & Kenneth C. Smith Microelectronic Circuits. 4 udgave Oxford University Press Inc. ISBN: Sofus Birkedal Nielsen, Department of acoustics, Aalborg University. Marts M68000 Debugger/Monitor: TS2MON Users fc/tsmon2.pdf Sørensen, Stephen Biering, Finn Overgaard Hansen, Susanne Klim & Preben Thalund Madsen Håndbog i Struktureret ProgramUdvikling. Vol udgave Ingeniøren Bøger. ISBN:

137 LITTERATUR Sweet, Michael R. N.d. Serial Programming Guide for POSIX Operating Systems. 5, 3rd revision udgave. Tanenbaum, Andrew S Structured computer organization. 4 udgave Prentice Hall. ISBN: Texas Instruments. 27. april 2003a. Operationsforstærker Texas instruments. 5. maj 2003b. Toshiba. 6. maj line to 3-line 129

138 .

139 ITESTRAPPOR T 131

140 TESTRAPPORT I. HARDWAREMODULER I.1 Modultest af IRQ-Håndtering Tíd: kl. 16:30 Sted: Fredrik Bajers Vej D.U.T. 1 : IRQ-Håndtering PEEL I.1.1 Forsøgsopstilling PEEL udviklingsværktøjet WinPLACE I.1.2 Resultater På figur I.1 på modstående side ses resultatet af simuleringen. Det fremgår at når der kommer et IRQ-signal fra DAC, ADC, ACIA (aktiv lavt), UR, Display og Knapper så enkodes de passende til M68k via IPL2, IPL1 og IPL0. Når NMI-aktiveres sendes interrupt 7 til M68k, VPA sættes og disse holdes til IACK 7 modtages. VPA sættes også når et af det 6 andre IACK-signaler modtages for at fortælle processoren at det er et autovektoriseret. I.2 Modultest af display Tíd: kl.14:30 Sted: Fredrik Bajers Vej 7, lokale A4-203 D.U.T.: Display I.2.1 Forsøgsopstilling For at teste displayet kobles det til minimumsystemet, hvorefter initialiseringssekvensen sendes, se figur I.2. Når dette har fundet sted sendes en sekvens, som vist på figur I.3. Denne skal udskrive ordene HELLO på første linie på displayet og WORLD på anden linie. I.2.2 Resultater Udfaldet af testen var positiv, idet der som forventet stod HELLO i første linie og WORLD i anden linie i displayet. Endvidere kan det konstateres, at efter at initialiseringssekvensen var sendt, ændredes displayets indhold fra sorte firkanter i hele 1. og 3. linie til en markør på første linie. 1 Device Under Test 132

141 I.2. MODULTEST AF DISPLAY NMI - I DAC - I ADC - I ACIA - I UR - I DISPLAY - I KNAP - I IPL0 - O IPL1 - O IPL2 - O A1 - I A2 - I A3 - I FUNK - I VPA - O IACK0 - O IACK1 - O IACK2 - O Figur I.1: Simulering af IRQ-Håndtering PEEL en. I eller O efter signal navnet angiver om det er et indgangssignal eller udgangssignal 133

142 N N N N N N N N N N N N N N N TESTRAPPORT I. HARDWAREMODULER ( ).," -," - #"%$&'! ( )," - +* )," - % $/*0"-. % %576/5980:757;86/5," - Figur I.2: Initialiserings-flowchart for display H L\[][^`_a^)<b[]c dfë gih&jzkjlnmojp'qj <)BC?)A%E <)= >Q?RA S M(H JK F A-OP A L H J K A%D H)J K F A O!P F A-OP F+M H J K F+V H J K F A-O!P F A-OP F GIH JK <)BC?)A%E <)= >@?)A F A-O!P V W(H JK F GXH J K F A-OP F A-OP S M(H JK M A H J K F U H J K U A H J K V Y(H JK A+T H JK F A-OP F A-OP < B%? D E <)= >@?)A F U H J K F A-O!P F A-O!P F A-OP <)BC? D E < = >@?)A F U H J K F A-OP F A-OP F FZH JK Figur I.3: Flowchart over udskrivning af HELLO WORLD på display 134

143 I.3. MODULTEST AF HW-UR I.3 Modultest af HW-ur Tíd: kl 9:30 Sted: Fredrik Bajers Vej 7 lokal B1-101 D.U.T.: HW-ur og display-interrupt I.3.1 Forsøgsopstilling Modulet er implementeret i en PEEL, der genererer interrupt for såvel display som HW-ur. Der foretages en simulering af dette program og hermed implicit en test af modulet HW-ur. Til at teste PEEL-programmet bruges en PC med WinPlace installeret og indgangssignalerne tegnes ind. Herefter afvikles simuleringsprogrammet, og det undersøges om udgangssignalerne svarer til det forventede. For at måle clocksignalerne blev PEEL ens ben 1 ( ( ) og ben 4 (! ) målt med et oscilloscop, mens PEEL en var monteret på boardet med minimumsystemet. På figur I.5 på side 137 ses et screenshot af ( * -signalet, og figur I.6 på side 137 viser! -signalet. Instrumentliste Apparat Type Løbenummer Oscilloscop Agilent 54621A Strømforsyning Hameg HM Resultater Resultaterne fremgår af figur I.4 på næste side. Der kommer et interrupt signal (IRQ2), når Q1, svarende til ca. ( 2, går høj. Når IACK2 kommer, ophæves IRQ2-signalet igen. På samme måde * kommer IRQ3 når Q1, Q2, Q3 og Q4 er høje, svarende til ca., og dette forsvinder igen når IACK3 kommer. Det kan således konstateres, at uret fungerer efter hensigten. IRQ-signaler fra display og ur, kommer med den forventede frekvens, og de forsvinder som krævet, når der modtages et IACK signal på samme niveau. Det konstateres, at clocksignalerne svarer til det forventede. ( -signalet er ikke med taget i resultatet, da denne bruges til at synkronosere registrene og ikke har direkte indflydelse på PEEL-programmet. 2 Frekvensen er ikke helt ( ). Dette skyldes, at der ikke var en oscillator på til rådighed 135

144 TESTRAPPORT I. HARDWAREMODULER IACK2 IACK3 Q0 Q1 Q2 Q3 Q4 IRQ2 IRQ3 Figur I.4: Simulering af display-interrupt og HW-ur. 136

145 I.3. MODULTEST AF HW-UR Figur I.5: Screenshot fra scopet af -signalet Figur I.6: Screenshot fra scopet af -signalet 137

146 TESTRAPPORT I. HARDWAREMODULER I.4 Modultest af Mikrofon og Forstærker Tíd: kl. 14 Sted: Frederik Bajers Vej 7, Lyddødt rum D.U.T.: Mikrofon og Forstærker modul Forsøgsopstilling Der vælges en afstand på mellem lydgiver og lydmåler. Nu fastholdes lydtrykket, og der foretages målinger ved forskellige frekvenser fra ")* og op til. Ved hver frekvens aflæses amplituden på oscilloskopet. Der foretages en udregning af dæmpningen i forhold til amplituden ved ". #%$'&)(+*-,.*0/ 12( ;:=<! " Figur I.7: Forsøgsopstilling I.4.1 Instrumentliste Antal Apparat Type Løbenummer 1 Oscillator Exact model Powersupply HAMEG HM Oscilloskop Philips PM lydmåler Brüel og Kjær 2238 Mediator ikke oplyst 1 Højttaler BOSS MA Tabel I.1: Instrumentliste 138

147 !! i I.4. MODULTEST AF MIKROFON OG FORSTÆRKER I.4.2 Resultater Beregnet lydtryk Opnået Lydtryk [dba] Frekvens[Hz] Udgangsspænding [V] Dæmpning 97,8 dba 90, ,4-0,3 db 97,8 dba 97, ,2 2,1 db 72,0 dba 72, ,7-3,3 db 97,8 dba 97, ,5 0 db 97,8 dba 97, ,8 1,0 db 97,8 dba 97, ,2 2,1 db 97,8 dba 98, ,4 2,7 db 97,8 dba 97, ,024-40,3 db Mikrofonen blev pga. en beregningsfejl udsat for et højere lydtryk, end det den er designet til. Der skulle frembringes et lydtryk i 25 cm afstand svarende til! i en meters afstand. Den korrekte værdi for dette lydtryk vil være: De! ( ( ( svarer til to halveringer af afstanden (25 cm). Forholdet mellem peak og rms-værdien for et talesignal er en faktor 19,5 svarende til (. Endelig trækkes fra for at opnå en rms-værdi af et sinussignal. Resultatet på ( ( er altså RMS-værdien for det sinus-signal, der har en peak-værdi svarende til peak-værdien for et talesignal med en rms-værdi på! i 1 meters afstand. På trods af denne overbelastning på af modulet vælges det at anvende resultaterne til at vurdere modulet. Det kan konkluderes, at lavpas-filtret dæmper med mindst. Det er ikke muligt at konkludere om højpasfilteret giver en dæmpning. Ved målingerne optrådte spidsspændinger over, hvilket er en overskridelse af den definerede grænseflade. Udfra de to målinger ved ", ses det, at amplitudebegrænsningen foretager følgende dæmpning: ( Uden amplitude begrænsningen ville der altså optræde en spænding på: ( 3 Det er ikke muligt at sige noget om, hvilke værdier, der måtte optræde ved et lydtryk på ( ( udover at disse spændinger vil være lavere end de målte. Den maksimalt målte afvigelse fra den definerede grænseflade er på n n n. Dette svarer til ^l<j, hvilket på denne prototype anses for acceptabelt. 3 Ikke muligt pga. forsyning på 139

148 TESTRAPPORT I. HARDWAREMODULER I.5 Modultest af Højttaler og Forstærker modul Tíd: kl. 14 Sted: Fredrik Bajers Vej 7, Lyddødt rum D.U.T.: Højttaler og Forstærker modul Forsøgsopstilling ()+*,!#"%$& ' # -. / Figur I.8: Forsøgsopstilling Funktionsgeneratoren indstilles til at levere et signal med en amplitude svarende på med et DC-offset på. Volumenkontrollen reguleres og der noteres minimal og maksimal lydfrembringelse. Forsøget gentages ved forskellige frekvenser indenfor området 46575!8:9 til 46;7575!8=<. Det skal konstateres om det er muligt at frembringe et lydtryk på min. >7> i en afstand af svarende til >65 i en meters afstand. I.5.1 Instrumentliste Antal Apparat Type Løbenummer 1 Oscillator B&O RC-oscillator TG Powersupply HAMEG HM Oscilloskop Philips PM Lydmåler Brüel og Kjær 2238 Mediator ikke oplyst Tabel I.2: Instrumentliste I.5.2 Resultater Det var muligt ved de angivne frekvenser at frembringe et lydtryk væsentligt højere end >7> på modstående side. I.3 140

149 I.6. MODULTEST AF IRQ-ENABLE I.6 Modultest af IRQ-Enable Frekvens Lydtryk ud maks 300 Hz 75,9 dba 1000 Hz 85,2 dba 2000 Hz 93,8 dba 3000 Hz 104,0 dba 3400 Hz 104,1 dba 4000 Hz 94,9 dba Tabel I.3: Forsøgsresultater Tíd: kl 1:30 Sted:Fredrik Bajers vej 7 lokale A4-203 D.U.T.:IRQ-Enable I.6.1 Forsøgsopstilling Testen består af en simulation i programmet WinPlace. I.6.2 Resultater Figur I.9 på næste side viser resultatet af testen. Til venstre på figuren findes signal-navnene, -I betyder at det er et indgangssignal, mens -O markerer et udgangssignal. Timingen syntes nogle steder ikke at passe helt, bla. ved OFF. Dette skyldes at registrene i PEEL en bliver synkroniseret efter en ekstern clock. Som det fremgår ved RECORD, PLAY og OFF kan registernes indhold ændres som forventet og dermed slå IRQ-signalerne til og fra. Chipselectet til ADC en sker også kun når R/W er høj, ganske som forventet. 141

150 TESTRAPPORT I. HARDWAREMODULER -I RECORD PLAY OFF D0-I D1-I R/W-I CS-I CSADC-O IRQ fra ADC-I IRQADC til IRQ-Håndtering-O IRQDAC til IRQ-Håndtering-O IACKDAC-I RECORD-O PLAY-O Figur I.9: Simulering af IRQ-enable PEEL en. 142

151 II TESTRAPPOR T 143

152 TESTRAPPORT II. SOFTWAREMODULER II.1 Modultest af Hent KnapInput Test KnapInput Funktionen returnerer Variablen Knap Ok Uden status og fejlbit [1-13] 0 0 Med statusbit [1-13] 0 [1-13] Med fejlbit [1-13] 1 [1-13] Både status og fejlbit [1-13] 1 [1-13] Tabel II.1: Modultest af HentKnapInput, i kolonne Variablen Knap betyder [1-13] at funktionen er testet for alle gyldige KnapInput og at disse bliver gemt i variablen. indikerer at resultatet er korrekt. II.2 Modultest af Opdater OpdtagelsesDB Der bliver indsat forskellige ID er på Position [1-5]. Det kontrolleres, at funktionen er i stand til at slette henholdsvis tilføje et ID. Samt at de mellemliggende ID er flyttes korrekt. Indsæt ID: I testprogrammet ses det, at det er muligt at indsætte et ID, og hvis nødvendigt skubbe de ovenliggende ID numre en tak op. Slet ID: I testprogrammet ses det, at funktionen ønsket sletter et givent ID nummer, og rykker de ovenstående ID numre en tak ned. Hent ID: I testprogrammet ses det, at funktionen er i stand til at hente et ID nummer fra en given position, uden at manipulere med inholdet af OptagelsesDB. Funktionen returnerer ID, Position og Fejlkode. II.3 Modultest af HentID Test Registret ID Funktionen returnerer Variablen ID Ok Uden status og fejlbit Med statusbit Med fejlbit Både status og fejlbit Tabel II.2: Modultest af Hent KnapInput, funktionen er testet med forskellige ID numre. I kolonne Variablen ID vises at funktionen er testet og variablen ID indeholder værdien. indikerer at resultatet er korrekt. 144

153 II.4. MODULTEST AF OPDATER UDLÆSNINGSREG II.4 Modultest af Opdater UdlæsningsReg Test ID Position Tilstand FejlNr Memorystatus Funktionen Flag Ok returnerer Med flag L 444 [1-99] [1-15] [1-14] [0-15] 0 N Med flag N 555 [1-99] [1-15] [1-14] [0-15] 1 N Tabel II.3: Modultest af Opdater UdlæsningsReg, funktionen er testet med de to mulige flag, og forskellige ID, Position, Tilstand, FejlNr og Memorystatusnumre. indikerer at resultatet er korrekt. II.5 Modultest af Dataflowstyring 145

154 TESTRAPPORT II. SOFTWAREMODULER Beskrivelse Input variable Forventet output Der optages og lageret er ikke fyldt. Tilstand ID IOfejl aktivid FejlNr 2 $ $ Der optages og lageret er fyldt. 2 $ $ Der afspilles og track er ikke slut. 4 $ $ Der afspilles og track er slut. 4 $ $ Der overføres og track er ikke slut. 12 $ $ Der afspilles og track er slut. 12 $ $ Der slettes en enkelt optagelse i lageret. 7 $ $ Der slettes alle optagelser i lageret. 9 $ $ Alle andre værdier af Tilstand end de nævnte skal returnere FejlNr = 0. XX $ $ Tabel II.4: Test af modulet dataflowstyring. Input variable ændres og output læses via. TS2MON. Adresserne findes i LN.map. 146

155 III TESTRAPPOR T 147

156 TESTRAPPORT III. PROCESSER III.1 Procestest af Brugerinput Knaptryk Hex Værdi OK POWER $ 21 PLAY $ 22 RECORD $ 23 PAUSE $ 24 STOP $ 25 NEXT $ 26 PREVIOUS $ 27 FORWARD $ 28 REWIND $ 29 DELETE $ 2A OK $ 2B CANCEL $ 2C UPLINK $ 2D ikke defineret knap $1E Tabel III.1: Procestest af processen Brugerinput. betyder at den rigtige værdi står i registret, mens betyder at den forkerte værdi står i registret. I tabel III.1 betyder f.eks. $ 21 at knappen POWER er blevet aktiveret og at statusbittet er blevet sat. III.2 Procestest af Udlæsning Flag Handling Display N Skriv i test.c Tekstreng L Læs adresse UdlaesningsReg [Tomt] N $ på adresse UdlaesningsReg position 12 Tabel III.2: Procestest af processen Udlæsning. betyder at den rigtige hændelse sker, mens betyder at den forkerte hændelse sker. I tabel III.2 betyder Tekststreng at strengen skrives ud på displayet, mens [tomt] betyder at displayet cursor blinker i første position. III.3 Procestest af Ur I tabel III.3 betyder f.eks. $ A at der er gået ti sekunder og statusbittet er sat. 148

157 III.4. PROCESTEST AF TILSTANDSSTYRING Sekunder Hex Værdi OK 10 $ A 20 $ $ E Tabel III.3: Procestest af processen Ur, betyder at den rigtige værdi står i registret. III.4 Procestest af Tilstandsstyring Nedenstående ses et screenshot af det testprogram, der er blevet fremstillet til at teste processen Globale Varianble: Tilstand 1 ID 0 Position 4 FejlNr 0 Knap 0 PosReg 3 Disp_fejlnr OptagelsesDB: Position 1: ID 9801 Position 2: ID Position 3: ID Display: #04 Tid:00:00:00 Idle NY optagelse MEMORY: XXX (1) POWER (2) PLAY (3) RECORD (4) PAUSE (5) STOP (6) NEXT (7) PREVIOUS (8) FORWARD (9) REWIND (10) DELETE (11) OK (12) CANCEL (13) UPLINK (14) Tilbage Indtast Knap[0-13]: III.4.1 Tilstanden Standby I Standby er det kun POWER der kan bringe systemet i Idle, og vice versa, desuden er denne tilstand ikke følsom over for FejlNr. III.4.2 Tilstanden Idle Tabel III.4.2 viser hvilken tilstand, ID eller Position, systemet skal sættes i efter et givet knaptryk. Desuden sørger tilstanden Idle for at der ikke kan optages flere numre, hvis der allerede eksisterer 99 numre. 149

158 TESTRAPPORT III. PROCESSER Knaptryk Ny tilstand ID Position FejlNr POWER Standby PLAY Play RECORD Record Ny - - PAUSE STOP NEXT - Næste Næste -/1 PREVIOUS - Forrige Forrige -/1 FORWARD REWIND DELETE Delete OK CANCEL UPLINK Confirm Transfer All Første Første - Tabel III.4: Procestest af Tilstandsstyring i tilstanden Idle.- betyder uændret, betyder at kravet er opfyldt, mens betyder at kravet ikke er opfyldt. III.4.3 Tilstanden Record Når systemet er i tilstanden Record reagerer den på følgende inputs: Hukommelse Fuld: Hvis systemet i tilstanden Record modtager dette FejlNr, hoppes der til Idle med FejlNr 4. STOP: Optagelsen sluttes, der hoppes til Idle med FejlNr NY optagelse. PAUSE: Der hoppes til tilstanden Pause-R. Ved kørsel af testprogrammet ses det, at det er muligt at tilføje et nyt nummer i mellem to eksisterende numre, samt at tilføje et nyt nummer i enden. III.4.4 Tilstanden Pause-R Når systemet er i tilstanden Pause-R kan følgende få den ud af tilstanden: STOP: Optagelsen sluttes, der hoppes til Idle med FejlNr NY optagelse. PAUSE: Der hoppes til tilstanden Record. III.4.5 Tilstanden Play Knap NEXT: Der hoppes videre til næste, hvis denne findes ellers tages første besked. Knap PREVIOUS: Der hoppes tilbage til forrige besked, hvis denne findes ellers tages sidste besked. 150

159 III.4. PROCESTEST AF TILSTANDSSTYRING Knaptryk Ny tilstand ID Position FejlNr POWER PLAY Play RECORD Record PAUSE Pause-P STOP Idle - Ny 1 NEXT - Næste Næste - PREVIOUS - Forrige Forrige - FORWARD ForwardPlay REWIND RewindPlay DELETE OK CANCEL UPLINK Tabel III.5: Procestest af Tilstandsstyring i tilstanden Play. - betyder uændret, betyder at kravet er opfyldt, mens betyder at kravet ikke er opfyldt. Tilstand ForwardPlay: Når der spoles frem og FejlNr track slut modtages, hoppes der til næste sang, hvis denne findes. Ellers stoppes spolningen og der hoppes til Idle. Tilstand RewindPlay: Når der spoles tilbage og FejlNr track slut modtages, hoppes der til forrige sang, hvis denne findes. Ellers stoppes spolningen og der hoppes til Idle. III.4.6 Tilstanden Pause-P STOP: Afspilningen sluttes, der hoppes til Idle med FejlNr NY optagelse. PAUSE: Der hoppes til tilstanden Play. III.4.7 Tilstanden Transfer Når UPLINK aktiveres fra tilstanden Idle spørges brugeren om beskederne ønskes overført. Hvis OK aktiveres overføres besked for besked. Når overførslen er færdig hoppes der tilbage til Idle. Hvis der derimod trykkes CANCEL hoppes der tilbage til tilstanden Idle. III.4.8 Tilstanden Delete Når DELETE aktiveres fra tilstanden Idle spørges brugeren om der enkelt nr ønskes slettet. Svares der OK til dette slettes en enkelt besked. Når beskeden er slettet hoppes der tilbage til tilstanden Idle. Svares der CANCEL spørges brugeren om alle beskeder ønskes slettet, svares der OK til dette slettes alle beskeder. Mens CANCEL hopper tilbage til tilstanden Idle. Når alle beskeder er slettet hoppes der til Idle. 151

160 5 ; ; TESTRAPPORT III. PROCESSER III.5 Accepttest Tíd: kl. 10 Sted: Frederik Bajers Vej 7, A4-203 og El laboratoriet Det samlede system De nedenstående test er udført som angivet i accepttestspecifikationerne i kapitel 3 på side 19. Ved udførelse af test nr. 32 blev der målt seperat på strømmen fra hhv. og 5 forsyningen. Dette gav følgende resultater: Forsyning Målt strøm Effekt i 5 ; ;75 Ialt 4 Tabel III.6: Måling af energiforbrug Der blev anvendt en HAMEG HM7242 strømforsyning med løbenummer Strømmen leveret til systemet, blev aflæst direkte på strømforsyningen Testemner Nr. Test OK Kommentar Funktionstest 1 Bevarelse af data 2 Startposition 3 Navigering 4 Mulige positioner 5 Optagelse af lydsignal 6 Indikation af optagelse 7 Lagerstatus Satusbaren ændres ikke under optagelse, da dette ikke er implementeret. Der bliver dog udskrevet på displayet, når lageret er fyldt. 8 Pause under optagelse 9 Filnavne 10 Indsæt optagelse 11 Pause 12 Indikation af pause 13 Afspilning af optagelse 14 Indikation af play 15 Positions afspilning 152

161 III.5. ACCEPTTEST 16 Rækkefølge 17 Track skift 18 Pause-P 19 Spoling i optagelse 20 Indikation af pause 21 Afspilning 22 Forbindelse 23 Indikation af overførsel 24 Overførsel Optagelserne bliver lagret i den samme fil på PC-siden. 25 Sletning enkeltvis Denne funktionalitet er ikke implementeret. 26 Sletning af alle optagelser 27 Sletning Responstid 28 Maksimal responstid Lagerplads 29 Håndtering af optagelser Talegenkendelighed 30 Genkendelighed Overførselshastighed 31 Hastighed Overførslen tog 21 sekunder Energiforbrug 32 Energiforbrug Der blev konstateret et energiforbrug på, når sy- stemet befandt sig i hviletilstand. Det antages derfor, at systemet aldrig vil kunne nå ned på de krævede kontinuert. Tabel III.7: Accepttestresultater. Et markerer, at resultatet var som forventet, og systemet agerer korrekt i henhold til designet. Et markerer, at testen afslørede mangler/fejl. III.5.1 Konklusion Det kan konstateres, at ikke alle punkter opfyldes i henhold til kravsspecifikationen. 153

162 .

163 IV TESTRAPPOR T For at teste kredsløbet er der blevet opsat følgende testcases 1 Går RESET på TL7705AC lav når knappen aktiveres. 2 Overholdes tiden på minimum 575 når der tændes. 3 Går der minimum 10 clock cycles når brugeren resætter systemet. 4 Resættes systemet hvis spændingen falder til under ;. Til de følgende test blev instrumenterne i tabel IV.1 brugt. Apparat Type AUC nummer Oscilloskop Agilent 54621A Strømforsyning Hameg HM Tabel IV.1: Instrumenter Test 1 Det blev på oscilloskopet i laboratoriet iagttaget, at RESET gik lav når resetknappen blev aktiveret. RESET var lav så længe resetknappen var påvirket og efter at knappen blev sluppet var der en forsinkelse (se Test 3). Det blev trigget på knaptrykket. Test 2 For at teste om powerup-tiden var mere end 575, blev der målt på med en probe (til at trigge med) og på RESET med en anden probe. På figur IV.1 på næste side ses et skopbilled af dette, og det ses at kravet er opfyldt, idet at >6;. For at teste om tiden også passer med. teorien bruges formel 4.1 på side 37. er valgt til (IV.1) Dette passer ikke med de målte >6;. Forklaringen hertil ligger i at TL7705AC har en lille setuptid. Men kravet om minimum 575 er altså opfyldt. 155

164 TESTRAPPORT IV. HALT-RESET KREDSLØB Figur IV.1: Test 2: HALT/RESET under power-up. aflæses til Test 3 Forsinkelsen fra at resetknappen blev sluppet til RESET gik høj måltes ved at sætte en probe på RESET og en anden på trykknappen. Resultatet af målingen ses på figur IV.2. Som det fremgår af skopbilledet er forsinkelsen på 474, hvilket er mere en 10 clock cycles 1. Figur IV.2: Test 3: HALT/RESET ved et bruger-reset. aflæses til 1 Systemet kører på en, dvs 10 cycles tager 156

165 ; Test 4 For at teste om processoren vil blive resat hvis spændingen falder til under ; blev der målt på og RESET. Forsyningsspændingen blev så justeret ned indtil der blev trigget på at RESET gik lav og der blev taget et screenshot. På figur IV.3 ses et skopbilled af denne situation og som det fremgår gik RESET lav da forsyningen kom under ; ; > efter hensigten (ifølge datablad ). For at teste hvornår RESET gik høj igen, blev forsyningen justeret op til RESET gik høj (se figur IV.4). Som det fremgår skete dette ved ; >7>. Figur IV.3: Test 4: HALT/RESET ved for lav. Spændingen aflæses inden skiftet til Figur IV.4: Test 4: HALT/RESET når er tilbage på ok niveau. Spændingen aflæses inden skiftet til 157

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

2. De 7 signaler skal kodes til en 3-bit kode. Enkodningen skal prioriteres som beskrevet i afsnit?? på side??. 01 FORUDSÆTNINGER 01 Forudsætninger Dette kapitel tager udgangspunkt i processerne beskrevet i afsnit?? på side?? Hver enkelt proces tildeles et afsnit, hvorunder det beskrives hvilke hardware moduler,

Læs mere

\ \ Computerens Anatomi / /

\ \ Computerens Anatomi / / HTX Roskilde - mat-it-prog, 1.4 \ \ Computerens Anatomi / / Introduktion En PC ( personlige computer ) eller computer er bygget op af forskellige komponenter. Vi vil hermed gennemgå størstedelen af computerens

Læs mere

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

Fag: Projekt E1PRJ1 Emne: Kravspecifikation Softdrink-Automat Gruppe: 6 Dato: 10. april 2003 Medlemmer: Benjamin Sørensen, Joanna Christensen, Jacob Fag: Projekt E1PRJ1 Emne: Kravspecifikation Softdrink-Automat Gruppe: 6 Dato: 10. april 2003 Medlemmer: Benjamin Sørensen, Joanna Christensen, Jacob Nielsen, Jesper Kock, Klaus Eriksen, Mikkel Larsen og

Læs mere

Arduino Programmering

Arduino Programmering Microcontroller, Arduino I teknologi skal vi lære at lave programmer til uc for at have muligheden til eksamen at kunne lave intelligente el-produkter. I hvert fald skal vi have set mulighederne, og forstået

Læs mere

0.1 Modultest af hardware

0.1 Modultest af hardware 0.1 Modultest af hardware Hardwaren af M2 testes ved, at de enkelte blokke først testes hver for sig, og derefter testes det, om hele modulet virker. TS2-monitoren brændes i ROM, og ved at forbinde M2

Læs mere

Kravspecifikation For. Gruppen

Kravspecifikation For. Gruppen Kravspecifikation For Gruppen Indholdsfortegnelse 1. INDLEDNING...3 1.1 FORMÅL...3 1.2 REFERENCER...3 1.3 LÆSEVEJLEDNING...3 2. GENEREL BESKRIVELSE...4 2.1 SYSTEM BESKRIVELSE...4 2.2 SYSTEMETS FUNKTION...4

Læs mere

Hvad skal du vide for at bygge din egen computer?

Hvad skal du vide for at bygge din egen computer? Hvad skal du vide for at bygge din egen computer? Kender du alle de her dele og hvad de gør godt for? Er du mellem 11 og 16 år, og tænker på at sammensætte din egen computer? Så er denne her guide lige

Læs mere

1. Detaljeret beskrivelse

1. Detaljeret beskrivelse Digital Diktafon Indhold 1. Detaljeret beskrivelse... 3 2. Specifikation... 4 3. Sæt batterier i... 4 4. Anvendelse... 6 4.1. Tænd/Sluk... 6 4.2. Optagelse... 6 4.4.1 Vælg optagelsestilstand... 6 4.4.2

Læs mere

DIGITAL OPTAGER OG MULTI-AFSPILLER MP-122/222/522/1022 BETJENINGSVEJLEDNING

DIGITAL OPTAGER OG MULTI-AFSPILLER MP-122/222/522/1022 BETJENINGSVEJLEDNING DIGITAL OPTAGER OG MULTI-AFSPILLER MP-122/222/522/1022 BETJENINGSVEJLEDNING 1: KNAPPER OG KONTROLLER S1. LCD display S2. REW / søg tilbage / MENU / FF / søg frem S3. Volumen ned - S4. Volumen op + S5.

Læs mere

Microcontroller, Arduino

Microcontroller, Arduino Microcontroller, Arduino Programmerbar elektronik. uc Vi skal lære at lave programmer til uc for at kunne lave el-produkter. Forstå princippet i programmering af en uc og se mulighederne. Programmeringen

Læs mere

Digital stemmeoptager

Digital stemmeoptager Digital stemmeoptager I. Funktionsbeskrivelse 1. REC (optagerknap) 2. STOP (stop/tænd og sluk) 3. UP (spring frem) 4. DOWN (spring tilbage) 5. HOLD (låseknap) 6. VOL+ (lydstyrke op) 7. VOL (lydstyrke ned)

Læs mere

COMPUTER ANATOMI. 4.-5. klasse 23. FEBRUAR 2015 HTX - ROSKILDE

COMPUTER ANATOMI. 4.-5. klasse 23. FEBRUAR 2015 HTX - ROSKILDE COMPUTER ANATOMI 4.-5. klasse 23. FEBRUAR 2015 HTX - ROSKILDE 1 Indholdsfortegnelse Kapitel 1: Opbygning s.2 Kapitel 2: CPU s.3 Kapitel 3: Motherboard s.4 Kapitel 4: Ram s.6 Kapitel 5: Grafikkort s.7 Kapitel

Læs mere

BeoSound 3000. Vejledning

BeoSound 3000. Vejledning BeoSound 3000 1 Vejledning BeoSound 3000 Guide BeoSound 3000 Reference book Denne vejledning indeholder 3 Der findes to vejledninger, du kan læse for at lære dit Bang & Olufsen produkt at kende. Vejledning

Læs mere

Det Teknisk-Naturvidenskabelige Fakultet Aalborg Universitet

Det Teknisk-Naturvidenskabelige Fakultet Aalborg Universitet Det Teknisk-Naturvidenskabelige Fakultet Aalborg Universitet Institut for elektroniske systemer TITEL: Digital Diktafon PROJEKTPERIODE: 4. semester 4. februar - 30. maj, 2002 PROJEKTGRUPPE: Gr419-2002

Læs mere

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

DiSEqC-Positioner. Best. nr. HN4892 (Brugsanvisnings nr. 361) DiSEqC-Positioner Best. nr. HN4892 (Brugsanvisnings nr. 361) DiSEqC 1.0/1.2 Positioner DiSEqC-omformer, som gør at man kan styre en parabolmotor 36-Volts type med alle digital modtagere som har standard

Læs mere

BeoSound Vejledning. CENTER v/henriksens ELEKTR

BeoSound Vejledning. CENTER v/henriksens ELEKTR BeoSound 3000 1 Vejledning BeoSound 3000 Guide BeoSound 3000 Reference book Denne vejledning indeholder 3 Der findes to vejledninger, du kan læse for at lære dit Bang & Olufsen produkt at kende. Vejledning

Læs mere

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

ELCANIC A/S. ENERGY METER Type ENG110. Version 3.00. Inkl. PC program: ENG110. Version 3.00. Betjeningsvejledning ELCANIC A/S ENERGY METER Type ENG110 Version 3.00 Inkl. PC program: ENG110 Version 3.00 Betjeningsvejledning 1/11 Generelt: ELCANIC A/S ENERGY METER Type ENG110 er et microprocessor styret instrument til

Læs mere

ScanDis Diktafonen FSV-510 PLUS

ScanDis Diktafonen FSV-510 PLUS Kom nemt i gang med diktafonen Lampe; lyser ved optagelse Skærm [M]-knap: menu Nederst vises hvor meget hukommelse der er tilbage [Afspil/pause]-knap [Spole]-knap: frem/tilbage [Optag/stop]-knap: optagelse

Læs mere

Amplicomms Telefonsvarer AB900 med ekstra forstærkning

Amplicomms Telefonsvarer AB900 med ekstra forstærkning Amplicomms Telefonsvarer AB900 med ekstra forstærkning Brugervejledning 1. Display 2. Højttaler 3. Forøg lydstyrken 4. Forrige besked 5. Justér hastigheden 6. Optag 7. Tænd/sluk, stop afspilning 8. Reducér

Læs mere

Frederiksen. Brugsvejledning for GM-tæller 5135.3X. 23.09.03 Aa 5135.3X

Frederiksen. Brugsvejledning for GM-tæller 5135.3X. 23.09.03 Aa 5135.3X Brugsvejledning for GM-tæller 5135.3X 23.09.03 Aa 5135.3X Disse to tællere er beregnet til at registrere antallet af pulser fra GM-rør. Tælleren kan indstilles til et antal faste tidsintervaller, eller

Læs mere

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

5. systemet skal indeholde 2 stk 1 Mbit(8 bit ROM implementeret som flash memory. 1KAPITEL Kapitlets indhold 1.1 Krav til Minimum System Der defineres et såkaldt minimumsystem, hvor en begrænset del af det samlede systems funktionalitet implementeres og testes, førend der gås videre

Læs mere

Business Call Quick guide SNOM 320 Version 1,0/juli 2012

Business Call Quick guide SNOM 320 Version 1,0/juli 2012 Business Call Quick guide SNOM 320 Version 1,0/juli 2012 Indledning Denne vejledning er udarbejdet med henblik på at beskrive de mest anvendte funktioner og funktionstaster på SNOM 320 telefonen. På den

Læs mere

Fingeraftryk læser 4821

Fingeraftryk læser 4821 Fingeraftryk læser 4821 Beskrivelse: Denne enhed monteres i 4000 serien og kan aflæse fingeraftryk. Den har 3 indbyggede døråbne-relæ, som kan kontrolleres af op til 1000 brugere. Med en tilknyttet strømforsyning

Læs mere

BeoSound Vejledning

BeoSound Vejledning BeoSound 3000 Vejledning BeoSound 3000 Guide BeoSound 3000 Reference book Vejledningens indhold 3 For at du kan lære dit Bang & Olufsen produkt at kende, har du to vejledninger til rådighed. Din nøgle

Læs mere

STEVISON BLUETOOTH USB MICRO SD DAB+ FM DIGITAL RADIO

STEVISON BLUETOOTH USB MICRO SD DAB+ FM DIGITAL RADIO STEVISON BLUETOOTH USB MICRO SD DAB+ FM DIGITAL RADIO Model: HN13549 Vejledning Funktioner 1. INFO/MENU 2. ALARM 3. NULSTIL 4. VÆLG 5. MODE 6. SCAN 7. VENSTRE ( ) 8. HØJRE ( ) 9. BÆREGREB 10. DOT-MATRIX

Læs mere

Business Call Quick guide SNOM370 Version 1.0 / juli 2012

Business Call Quick guide SNOM370 Version 1.0 / juli 2012 Business Call Quick guide SNOM370 Version 1.0 / juli 2012 Indledning Denne vejledning guider dig nemt og hurtigt igennem installation og brug af de mest anvendte funktioner og funktionstaster på SNOM 370

Læs mere

Business Call Quick guide SNOM360 Juli 2012

Business Call Quick guide SNOM360 Juli 2012 Business Call Quick guide SNOM360 Juli 2012 Indledning Denne vejledning guider dig nemt og hurtigt igennem installation og brug af de mest anvendte funktioner og funktionstaster på SNOM 360 telefonen.

Læs mere

STEVISON BLUETOOTH USB MICRO SD DAB+ FM DIGITAL RADIO

STEVISON BLUETOOTH USB MICRO SD DAB+ FM DIGITAL RADIO STEVISON BLUETOOTH USB MICRO SD DAB+ FM DIGITAL RADIO Model: HN13549 Vejledning Funktioner 1. INFO/MENU 2. ALARM 3. NULSTIL 4. VÆLG 5. MODE 6. SCAN 7. VENSTRE ( ) 8. HØJRE ( ) 9. BÆREGREB 10. DOT-MATRIX

Læs mere

Brugervejledning. ComX brugervejledning version 4.1

Brugervejledning. ComX brugervejledning version 4.1 Brugervejledning ComX brugervejledning version 4.1 1 INDHOLD PAKKENS INDHOLD Pakkens indhold side 2 Fjernbetjening side 2 Tilslutning af Settop-boksen side 3 Introduktion til Bredbånds-TV side 4 Tilslutning

Læs mere

DM-44TE 45 sek. Anti Shock bærbar CD-afspiller

DM-44TE 45 sek. Anti Shock bærbar CD-afspiller Danish DM-44TE 45 sek. Anti Shock bærbar CD-afspiller Dansk betjeningsvejledning www.denver-electronics.com SIKKERHEDSFORANSTALTNINGER For ikke at beskadige denne enhed bør den ikke opbevares på steder

Læs mere

Quick guide SNOM370 Version 1.0 / okt. 2011

Quick guide SNOM370 Version 1.0 / okt. 2011 Quick guide SNOM370 Version 1.0 / okt. 2011 Indledning Denne vejledning guider dig nemt og hurtigt igennem installation og brug af de mest anvendte funktioner og funktionstaster på SNOM 370 telefonen.

Læs mere

på Sterling 10 Brugermanual Bemærk! betjeningspanelet er i manualen angivet som FUNC

på Sterling 10 Brugermanual Bemærk! betjeningspanelet er i manualen angivet som FUNC Sterling 10 Brugermanual Bemærk! Tasten FUNC på Sterling 10 betjeningspanelet er i manualen angivet som Side 2 Sterling 10 Indholdsfortegnelse 1 Bruger- og master-faciliteter... 3 1.1 Generelt... 3 1.2

Læs mere

Vejledning til GSM alarm sender

Vejledning til GSM alarm sender 1 Vejledning til GSM alarm sender SSIHuset Svane Electronic 2 Sikkerheds tips Brug kun dette produkt som foreskrevet her i vejledningen. Installer ikke senderen tæt på vand, fugt eller direkte varme. Forbind

Læs mere

MANUAL TIL. OptitecRS CIPHERLAB 8000 - SCANNER

MANUAL TIL. OptitecRS CIPHERLAB 8000 - SCANNER MANUAL TIL OptitecRS CIPHERLAB 8000 - SCANNER INDHOLDSFORTEGNELSE 1 SAMLING OG TILKOBLING AF SCANNER... 1 1.1 STRØM TIL SCANNER... 2 1.2 TILKOBLING TIL COMPUTER... 2 1.2.1 Tilkobling med Seriel Stik...

Læs mere

QUICK GUIDE SNOM370 VERSION 1.0 OKT. 2011

QUICK GUIDE SNOM370 VERSION 1.0 OKT. 2011 QUICK GUIDE SNOM370 VERSION 1.0 OKT. 2011 INDHOLD Indledning... 3 Tilslut telefonen... 4 Generelt... 4 Ændring af ringetone... 6 Foretag et opkald... 6 Besvar et opkald... 6 Omstilling af opkald... 7 Træk

Læs mere

I kan styre samtlige funktioner beskrevet i nærværende dokument, gennem jeres personlige side (selfcare) på www.firstcom.dk

I kan styre samtlige funktioner beskrevet i nærværende dokument, gennem jeres personlige side (selfcare) på www.firstcom.dk Indledning Denne vejledning guider dig nemt og hurtigt igennem installation og brug af de mest anvendte funktioner og funktionstaster på SNOM 320 telefonen. På sidste side er der svar på ofte stillede

Læs mere

Viditronic NDVR Quick Guide. Ver. 2.0

Viditronic NDVR Quick Guide. Ver. 2.0 Viditronic NDVR Quick Guide Ver. 2.0 1 Indholdsfortegnelse 1. HOVEDMENU 3 1.1 START 5 1.2 AKTIVITETSINDIKATOR: 7 1.3 INFORMATIONS VINDUE: 7 1.4 PTZ KAMERA KONTROL: 7 1.5 SKÆRMMENU 8 1.5.1 AKTIVER BEVÆGELSE:

Læs mere

FireBUS PARKERINGSVENTILATION

FireBUS PARKERINGSVENTILATION FireBUS PARKERINGSVENTILATION QUICK GUIDE Quick guiden beskriver hvordan et mindre anlæg kan installeres og idriftsættes. Alle moduler tildeles en individuel adresse på DIP-switchen i modulet Modulerne

Læs mere

EXIT-SOUND. Brugervejledning Exit-Sound talevarslingsanlæg Ver. 1.10

EXIT-SOUND.   Brugervejledning Exit-Sound talevarslingsanlæg Ver. 1.10 Brugervejledning Exit-Sound talevarslingsanlæg Ver. 1.10 1 Indhold: Forside... side 1 Indholdsfortegnelse... side 2 Rack konfiguration... side 3 Betjenings knapper på talevarslings Controller... side 3

Læs mere

Software Dokumentation

Software Dokumentation Software Dokumentation Jan Boddum Larsen Teknologi B og A på HTX Dokumentation af software i Teknologi I samfundet sker der en bevægelse mod mere digitale løsninger i teknologi. Det betyder at software

Læs mere

MP3 player med DMX interface.

MP3 player med DMX interface. Jægergårdsgade 152/05A DK-8000 Aarhus C DENMARK WWW.WAHLBERG.DK MP3 player med DMX interface. Funktion: En avanceret Mp3spiller med forskellige styringsmuligheder, velegnet til brug i museer, teatre, udstillinger

Læs mere

ELCANIC A/S Counter Type CNT150 Version 2.00 Inkl. PC programmet: Cnt150 Version 3.00 Betjeningsvejledning

ELCANIC A/S Counter Type CNT150 Version 2.00 Inkl. PC programmet: Cnt150 Version 3.00 Betjeningsvejledning ELCANIC A/S Counter Type CNT150 Version 2.00 Inkl. PC programmet: Cnt150 Version 3.00 Betjeningsvejledning Generelt: ELCANIC A/S COUNTER Type CNT150 er en microprocessor baseret tæller. Specielt designet

Læs mere

Brugervejledning. Funktionsvejledning. Diktafon. Software version eller nyere. Rev B DK

Brugervejledning. Funktionsvejledning. Diktafon. Software version eller nyere. Rev B DK Brugervejledning Funktionsvejledning Diktafon Software version 5.2.3 eller nyere Rev B DK Indhold 1. Indledning... 3 2. Anvend Diktafon... 3 2.1 Optag nyt diktafon-notat... 3 2.1.1 Spela in i bakgrunden...

Læs mere

FireBUS BRANDSIKRINGSAUTOMATIK For spjældsikrede og røgventilerede systemer

FireBUS BRANDSIKRINGSAUTOMATIK For spjældsikrede og røgventilerede systemer FireBUS BRANDSIKRINGSAUTOMATIK For spjældsikrede og røgventilerede systemer QUICK GUIDE For anlæg med mindre end 12 spjæld og mindre end 100 m kabel-længde er der ikke behov for den store planlægning,

Læs mere

BÆRBAR DVD-AFSPILLER BETJENINGSVEJLEDNING MTW-756 TWIN NB

BÆRBAR DVD-AFSPILLER BETJENINGSVEJLEDNING MTW-756 TWIN NB BÆRBAR DVD-AFSPILLER BETJENINGSVEJLEDNING MTW-756 TWIN NB www.facebook.com/denverelectronics Læs venligst denne betjeningsvejledning omhyggeligt, før du tilslutter, betjener eller justerer denne afspiller.

Læs mere

Afvikling af Bridge turnering. BridgeCentral og BridgeMate. Komponenter, opsætning, afvikling og afslutning af turnering.

Afvikling af Bridge turnering. BridgeCentral og BridgeMate. Komponenter, opsætning, afvikling og afslutning af turnering. Afvikling af Bridge turnering BridgeCentral og BridgeMate Komponenter, opsætning, afvikling og afslutning af turnering. Leif Thusholt 28-08-2010 INDEX A Angiv startscore 17 B BridgeCentral Formål 3 BridgeMate

Læs mere

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0 Program Dokumentation PC Software Skrevet af Gruppen. Version 1.0 Indholds fortegnelse 1. INDLEDNING...3 1.1. FORMÅL...3 1.2. REFERENCER...3 1.3. VERSIONSHISTORIE...3 1.4. DEFINITIONER...3 1.5. DOKUMENTATIONENS

Læs mere

Quick-guide til Konftel 250

Quick-guide til Konftel 250 Conference phones for every situation Quick-guide til Konftel 250 DANSK BESKRIVELSE Konftel 250 er en konferencetelefon, der kan tilsluttes analogt telefonstik. På www.konftel.com/250 finder du en håndbog

Læs mere

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

Computer Literacy. En stationær bordmodel. En Bærbar Notebook, Labtop, Slæbbar, Blærebar mm. Computer Literacy Computer Literacy handler om at forstå hvad computer (hardware) og software kan gøre. Denne præsentation fokuserer kun på hardware februar 2002 Computerliteracy -hardware (15 dias) 1

Læs mere

Lommeguide til online-afspilleren "PLEXTALK Linio Pocket"

Lommeguide til online-afspilleren PLEXTALK Linio Pocket Lommeguide til online-afspilleren "PLEXTALK Linio Pocket" 1 Indstil PLEXTALK Linio Pocket 1. Vend Linio Pocket om. Sørg for, at de to små fremspring vender opad. Tryk på den firkantede knap, som sidder

Læs mere

FSystem beskrivelse PAR 200 CLOCK

FSystem beskrivelse PAR 200 CLOCK FSystem beskrivelse PAR 200 CLOCK Driftvejledningsnr: PAR-200-SYS-DK-041223 Beskrivelse Billede PAR-200-SYS er den overordnede og komplette beskrivelse af Ølands nye tidsstyring inden for analoge regulatorer.

Læs mere

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

Selektro CCM App. Brugermanual. Selektro CCM App Brugermanual DK. Selektro A/S, Erhvervsvej 29-35, DK-9632 Møldrup. Copyright Selektro A/S 2017 Selektro CCM App Brugermanual Selektro A/S, Erhvervsvej 29-35, DK-9632 Møldrup Selektro CCM App Brugermanual DK Copyright Selektro A/S 2017 0881-1344006 V01 Indhold 1 Beskrivelse... 1 1.1 Funktion... 2

Læs mere

DENVER DMP /45 sek. Anti Shock bærbar CD-afspiller. Dansk betjeningsvejledning.

DENVER DMP /45 sek. Anti Shock bærbar CD-afspiller. Dansk betjeningsvejledning. DENVER DMP-365 120/45 sek. Anti Shock bærbar CD-afspiller Dansk betjeningsvejledning www.denver-electronics.com SIKKERHEDSFORANSTALTNINGER For ikke at beskadige denne enhed bør den ikke opbevares på steder

Læs mere

ANTENNE For den bedste modtagelse, bør FM antennen benyttes.

ANTENNE For den bedste modtagelse, bør FM antennen benyttes. 1. Funktionsvælger CD/BÅND (OFF)/RADIO 2. FM-stereo vælger 3. FM antenne 4. CD låge 5. Stations søgehjul 6. Bass Boost søgehjul 7. CD springe/søge frem 8. CD springe/søge tilbage 9. CD programmerings knap

Læs mere

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

Secure O matic. Gruppe 5 2. SEMESTERPROJEKT. Udgave. Testspecifikation Udgave 1 2. SEMESTERPROJEKT Gruppe 5 Secure O matic Testspecifikation Benjamin Sørensen, 02284 Tomas Stæhr Hansen, 03539 Stefan Nielsen, 02829 Mubeen Ashraf, 9279 Hussein Kleit, 9281 SECURE O MATIC Testspecifikation

Læs mere

Bluetooth højttaler BABHCK811_1

Bluetooth højttaler BABHCK811_1 Bluetooth højttaler BABHCK811_1 Tillykke Tillykke med dit nye Amitech produkt! Oplysningerne i denne brugervejledning kan ændres uden varsel. Amitech Danmark A/S er ikke erstatningspligtig i tilfælde

Læs mere

Application Note: AN-Z05

Application Note: AN-Z05 Application Note: AN-Z05 Opsætning af zense PC-boks og LAN router for kommunikation via internettet. Indledning Dette dokument beskriver et eksempel på opsætning af PC-boksen, model PLM-2110ULT, til brug

Læs mere

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

2x50 ETHERNET MODUL. RS485 slave med Ethernet-IP. Gælder for: Program nr.: AUXSLAVE v1 Dokument nr.: 0422md2x50-2v1 Dato: Kokkedal Industripark 4 DK-2980 Kokkedal Denmark info@eilersen.com Tel +45 49 180 100 Fax +45 49 180 200 2x50 ETHERNET MODUL RS485 slave med Ethernet-IP Gælder for: Program nr.: AUXSLAVE.140422.2v1 Dokument

Læs mere

Introduktion til PSS (Personal Sound System)

Introduktion til PSS (Personal Sound System) QSG_dan 29/12/04 15:19 Page 49 Introduktion til PSS (Personal Sound System) Læs dette, inden du begynder at bruge dit PSS-system. Vi håber,du bliver glad for din personligt lydsystem (pss). Registrere

Læs mere

Telebutler 5.0 BRUGERMANUAL

Telebutler 5.0 BRUGERMANUAL Telebutler 5.0 BRUGERMANUAL 1 INDEX Introduktion side 3 Aflytning af beskeder.side 5 Muligheder ved aflytning af beskeder.....side 6 Tilføj personlige indstillinger.side 7 2 INTRODUKTION Der er tre mulige

Læs mere

(ADVARSEL) UDSÆT IKKE APPARATET FOR REGN ELLER FUGT, DA DETTE KAN MEDFØRE RISIKO FOR BRAND ELLER ELEKTRISK STØD.

(ADVARSEL) UDSÆT IKKE APPARATET FOR REGN ELLER FUGT, DA DETTE KAN MEDFØRE RISIKO FOR BRAND ELLER ELEKTRISK STØD. DENVER TCM-210 Betjeningsvejledning (ADVARSEL) UDSÆT IKKE APPARATET FOR REGN ELLER FUGT, DA DETTE KAN MEDFØRE RISIKO FOR BRAND ELLER ELEKTRISK STØD. (FORSIGTIG( Hvis apparatet ikke anvendes i overensstemmelse

Læs mere

Brugermanual Model Raxtune Oxygen

Brugermanual Model Raxtune Oxygen VST DAB+yourCar v2 DAB bil-receiver og Kontrolsystem (DAB/DAB+) Brugermanual Model Raxtune Oxygen Professionel installation er påkrævet Indholdsfortegnelse 1. Introduktion 2. Hvordan systemet virker 3.

Læs mere

Quick-guide til Konftel 300 DANSK

Quick-guide til Konftel 300 DANSK Quick-guide til Konftel 300 DANSK Beskrivelse Konftel 300 er en konferencetelefon, der kan tilsluttes analogt telefonstik, mobil/ DECT-telefon eller computer. På www.konftel.com/300 finder du en håndbog

Læs mere

Udbedring af fejlsituationer ved anvendelse af BridgeMate

Udbedring af fejlsituationer ved anvendelse af BridgeMate Udbedring af fejlsituationer ved anvendelse af BridgeMate Indhold: Kort om BridgeCentral og BridgeMate funktionen Resumé PC en går i dvale eller lukker ned under en session Serveren mister strøm Et bord

Læs mere

Svendeprøve Projekt Tyveri alarm

Svendeprøve Projekt Tyveri alarm Svendeprøve Projekt Tyveri alarm Påbegyndt.: 8/2-1999 Afleveret.: 4/3-1999 Projektet er lavet af.: Kasper Kirkeby Brian Andersen Thomas Bojer Nielsen Søren Vang Jørgensen Indholds fortegnelse 1. INDLEDNING...3

Læs mere

Call Recorder Apresa Brugermanual

Call Recorder Apresa Brugermanual Call Recorder Apresa Brugermanual Version. 1.100.11 Vidicode Pleje og vedligeholdelse: CR Apresa må ikke blive våd. Hvis den bliver våd, tør den omgående af med en blød, ren klud. Væsker kan indeholde

Læs mere

QUICK GUIDE SNOM320 VOIP BUSINESS PHONES REV. 2010

QUICK GUIDE SNOM320 VOIP BUSINESS PHONES REV. 2010 QUICK GUIDE SNOM320 VOIP BUSINESS PHONES REV. 2010 INDHOLD Indledning... 3 Tilslut telefonen... 3 Generelt... 4 Ændring af ringetone... 5 Foretag et opkald... 5 Besvar et opkald... 5 Omstilling af opkald...

Læs mere

WEA-Base Brugervejledning til vejetransmitter

WEA-Base Brugervejledning til vejetransmitter WEA-Base Brugervejledning til vejetransmitter Version 3.4 WEA-Base Brugervejledning til vejetransmitter WEA-Base Brugervejledning til vejetransmitter Version 3.4 Indholdsfortegnelse 1. Tekniske data...

Læs mere

DM-18. Bærbar CD-afspiller. Dansk betjeningsvejledning. Danish. www.denver-electronics.com

DM-18. Bærbar CD-afspiller. Dansk betjeningsvejledning. Danish. www.denver-electronics.com DM-18 Bærbar CD-afspiller Dansk betjeningsvejledning ALLE RETTIGHEDER FORBEHOLDES COPYRIGHT DENVER ELECTRONICS A/S www.denver-electronics.com SIKKERHEDSFORANSTALTNINGER For ikke at beskadige denne enhed

Læs mere

Lommeguide til online-afspilleren "PLEXTALK Pocket"

Lommeguide til online-afspilleren PLEXTALK Pocket Lommeguide til online-afspilleren "PLEXTALK Pocket" 1 Indstil PLEXTALK Pocket 1. Vend PLEXTALK Pocket om. Sørg for, at de to små fremspring vender opad. Tryk på den firkantede knap, som sidder i bunden

Læs mere

Brugervejledning. SmartAir P-Enhed Programmeringsenhed

Brugervejledning. SmartAir P-Enhed Programmeringsenhed Brugervejledning SmartAir P-Enhed Programmeringsenhed Copyright 2006, Ruko A/S Ruko A/S Marielundvej 20 DK - 2730 Herlev DENMARK Telefon: +45 44 54 44 54 Hotline: +45 44 54 46 00 Fax: +45 44 54 44 44 E-post:

Læs mere

Microcontroller, Arduino

Microcontroller, Arduino Microcontroller, Arduino Kompendium til Arduino-programmering i Teknologi. Vi skal lære at lave programmer til uc for at kunne lave el-produkter. Vi skal forstå princippet i programmering af en uc og se

Læs mere

EnVivo 4GB MP3 afspiller

EnVivo 4GB MP3 afspiller Brugervejledning EnVivo 4GB MP3 afspiller Med OLED skærm & Voice Recording Elektrisk og elektronisk udstyr (EEE) indeholder materialer, komponenter og stoffer, der kan være farlige og skadelige for menneskers

Læs mere

Betjeningsvejledning. Nødhjælps Alarm System NAS-100

Betjeningsvejledning. Nødhjælps Alarm System NAS-100 Betjeningsvejledning Nødhjælps Alarm System NAS-100 Indholdsfortegnelse Egenskaber... 02 Vorbereitung der Nutzung... 03 Indsæt simkort... 03 Tilslut alle de enheder, du har brug for... 03 Strøm... 03 Udfør

Læs mere

DENVER DPF-407. Digital Billedramme Betjeningsvejledning

DENVER DPF-407. Digital Billedramme Betjeningsvejledning DENVER DPF-407 Digital Billedramme Betjeningsvejledning 1 INDHOLD : FEATURES:...3 KNAPPER OG KONTROLLER:...4 FJERNBETJENINGEN...5 GRUNDLÆGGENDE BETJENING:...6 1. MENUEN VALG AF FUNKTION...6 2. MENUEN VALG

Læs mere

Brugermanual. 2GB MP3 afspiller

Brugermanual. 2GB MP3 afspiller Brugermanual 2GB MP3 afspiller Indhold 1. Knappe funktioner og fremgagnsmåde... 4 2. Instruktioner... 4 2.1 Tænd og sluk... 4 2.2 Upload Music to the Player... 5 2.3 Afspil musik... 6 2.4 Normal or shuffle

Læs mere

Computerens Anatomi KOM/IT

Computerens Anatomi KOM/IT j Computerens Anatomi KOM/IT Rapporten er skrevet af: Frederik, Jesper og Peter Gruppemedlemmer: Simon, Jesper, Frederik, Mathias og Peter Klasse: 1.3 Periode/øvelsesdato:14-02-2014 til 14-03-2014 Afleveringsdato:

Læs mere

PROFI BRUGER manual Til daglig betjening af systemet

PROFI BRUGER manual Til daglig betjening af systemet PROFI BRUGER manual Til daglig betjening af systemet Indhold: 1 Lysdioder og symboler...3 2 Betjening af systemet...5 2.1 Tilkobling...5 2.2 Frakobling...5 2.3 Overfaldsalarm...6 2.4 Alarmstop...6 2.5

Læs mere

Dansk kvik guide til tiptel 274 telefon

Dansk kvik guide til tiptel 274 telefon Dansk kvik guide til tiptel 274 telefon Tilslutning. Inden telefonen tages i brug, skal alle kabler og ledninger tilsluttes: 1. Spiralledning monteres i telefonrør og i telefon 2. Strømforsyningen tilsluttes

Læs mere

Wahlberg Surtitle Display

Wahlberg Surtitle Display Wahlberg Surtitle Display (Copyright by WAHLBERG ApS) Bruger manual Software version - 1.88 Produktindhold: Strømkabel USB to RS232 Converter. Undertekst lysavis 2,8 Meter lang / 0,3 Meter høj. Wahlberg

Læs mere

Introduktion til CD ere og Arkivdeling Gammel Dok - September-oktober 2003. Jonas Christiansen Voss

Introduktion til CD ere og Arkivdeling Gammel Dok - September-oktober 2003. Jonas Christiansen Voss Introduktion til CD ere og Arkivdeling Gammel Dok - September-oktober 2003 Jonas Christiansen Voss 2. marts 2004 Indhold 1 CD ere 2 1.1 Brænde dokumenter til CD....................... 2 1.2 Disk Copy.................................

Læs mere

Micro Hi-Fi System. Brugervejledning ENV-1152

Micro Hi-Fi System. Brugervejledning ENV-1152 Micro Hi-Fi System Brugervejledning ENV-1152 Indhold Kom godt i gang... 2 Strømforsyning... 2 Antenne... 2 Højttaler ledningsforbindelse... 2 Brug af fjernbetjening... 2 Knapper... 3 Betjeningsvejledning...

Læs mere

Svane Electronic Timer universal med 8 funktioner 1

Svane Electronic Timer universal med 8 funktioner 1 Svane Electronic Timer universal med 8 funktioner 1 Digital timer print modul 12V 2000.2231 Multi funktions timer med 8 funktioner, anvendelig i mange installationer, forsyning 12VDC drift. Printet har

Læs mere

Beskrivelse. 1.Objektiv 2.Knap til optagelse 3.Knap til fotografering _ DEN 01

Beskrivelse. 1.Objektiv 2.Knap til optagelse 3.Knap til fotografering _ DEN 01 Beskrivelse 3 2 1 1.Objektiv 2.Knap til optagelse 3.Knap til fotografering DEN 01 13 4.Micro USB-port 10 12 11 6 7 8 9 4 5 5.Tænd/sluk-knap til batteri 6.Knap til side op 7.Tænd/sluk-knap 8.Knappen OK

Læs mere

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

SSI GSM PORT kontrol brugervejledning. SSI GSM PORT brugervejledning V1.2 1 13.04.2015 SSI 6000.0410 SSI 6000.0410 GSM PORT brugervejledning V1.2 Port / Dør åbner via telefon opkald eller SMS - op til 30 brugere SSIHuset Svane Electronic Arildsvej 27, Gråmose, 7442 Engesvang

Læs mere

AgroSoft A/S AgroSync

AgroSoft A/S AgroSync AgroSoft A/S AgroSync AgroSync er et AgroSoft A/S værktøj, der bliver brugt til filudveksling imellem WinSvin og PocketPigs. Fordele ved at bruge AgroSync: Brugeren bestemmer overførsels tidspunktet for

Læs mere

Programmering C Eksamensprojekt. Lavet af Suayb Köse & Nikolaj Egholk Jakobsen

Programmering C Eksamensprojekt. Lavet af Suayb Köse & Nikolaj Egholk Jakobsen Programmering C Eksamensprojekt Lavet af Suayb Köse & Nikolaj Egholk Jakobsen Indledning Analyse Læring er en svær størrelse. Der er hele tiden fokus fra politikerne på, hvordan de danske skoleelever kan

Læs mere

Information. Til lykke med din nye radio. Giv dig venligst tid til at læse denne brugsanvisning. God fornøjelse

Information. Til lykke med din nye radio. Giv dig venligst tid til at læse denne brugsanvisning. God fornøjelse BRUGSANVISNING Indhold 02 INDHOLD 03 INFORMATION 04 FRONT PANEL OVERBLIK 06 BAG PANEL OVERBLIK 08 BETJENING AF R5 08 INDSTILLING AF ALARM 09 INDSTILLING AF SLEEP TIMER 09 DIM 09 PRESETS 09 FAVOR 09 AUX

Læs mere

GSM port styring 400 brugere

GSM port styring 400 brugere 1 GSM port styring 400 brugere SMS alarm, temperatur og fjernkontrol system 16 brugere til at modtage alarmbeskeder via SMS Software vejledning SSIHuset Svane Electronic ApS Arildsvej 27, Gråmose, DK-7442

Læs mere

INSTALLATIONS GUIDE. til Waoo TV-boks AirTies (7210 og 7310) Waoo leveres af dit lokale energiselskab

INSTALLATIONS GUIDE. til Waoo TV-boks AirTies (7210 og 7310) Waoo leveres af dit lokale energiselskab INSTALLATIONS GUIDE til Waoo TV-boks AirTies (7210 og 7310) Waoo leveres af dit lokale energiselskab INDHOLD Velkommen...4 Medfølgende udstyr...6 AirTies (7210 og 7310)...7 Installation...8 Hentning af

Læs mere

INSTALLATIONS GUIDE. til Waoo TV-boks AirTies (7210 og 7310) FIBERBREDBÅND TV TELEFONI

INSTALLATIONS GUIDE. til Waoo TV-boks AirTies (7210 og 7310) FIBERBREDBÅND TV TELEFONI INSTALLATIONS GUIDE til Waoo TV-boks AirTies (7210 og 7310) FIBERBREDBÅND TV TELEFONI INDHOLD Velkommen...4 Medfølgende udstyr...6 AirTies (7210 og 7310)...7 Installation...8 Hentning af TV-portal...12

Læs mere

BÆRBAR DVD-AFSPILLER BETJENINGSVEJLEDNING MT-983

BÆRBAR DVD-AFSPILLER BETJENINGSVEJLEDNING MT-983 BÆRBAR DVD-AFSPILLER BETJENINGSVEJLEDNING MT-983 Læs venligst denne betjeningsvejledning omhyggeligt, før du tilslutter, betjener eller justerer denne afspiller. www.facebook.com/denverelectronics Knapper

Læs mere

HUMANWARE BRAILLIANT INSTALLATIONSVEJLEDNING

HUMANWARE BRAILLIANT INSTALLATIONSVEJLEDNING HUMANWARE BRAILLIANT INSTALLATIONSVEJLEDNING KOMMANDOOVERSIGT TIL BRUG PÅ WINDOWS COMPUTERE MED JAWS INTRODUKTION: Brailliant displays har indbygget BlueTooth og USB. BlueTooth anvendes til at forbinde

Læs mere

Manual til: Miracas DK080 GSM Tyverialarm

Manual til: Miracas DK080 GSM Tyverialarm Manual til DK080 Indhold Forord... 4 Alarmens generelle opbygning... 5 Placering af alarmen... 7 Oversigt over alarmen... 8 Tag alarmen i brug... 9 Programering af alarmen... 10 Indtastning af egen kode...

Læs mere

www.eggtronic.com USER MANUAL

www.eggtronic.com USER MANUAL www.eggtronic.com USER MANUAL Index Dansk p. 2 Figures 5 3 3 1 2 4 5 6 3 6 3 6 6 3 3 6 7 4 usb 3.0 slots usb cartridge connectors additional usb ports bluetooth cartridge sd card reader cartridge other

Læs mere

Dansk Mink Papir. Teknisk brugermanual

Dansk Mink Papir. Teknisk brugermanual Dansk Mink Papir Teknisk brugermanual Styring til FIX tørrekasse Beskrivelse Enheden styrer en AC blæser-motor via en relæudgang. Betjening foregår via et tastatur og et display, og brugeren kan vælge

Læs mere

Installationsmanual. 2 Installering...6. 3 Installering SMS sender...7. 4 Installering PSTN/GSM sender...7. 5 Installering PSTN GSM konverter...

Installationsmanual. 2 Installering...6. 3 Installering SMS sender...7. 4 Installering PSTN/GSM sender...7. 5 Installering PSTN GSM konverter... CS 47 Syntax Side 2 Indholdsfortegnelse 1 Introduktion...4 1.1 Funktioner...4 1.2 Forsyning...4 1.3 PSTN support...5 1.4 GSM support...5 1.5 SMS support...5 1.6 Indgange...5 1.7 Udgange...5 1.8 Password...5

Læs mere

LabQuest Manual Til indsættelse af hukommelseskort (SD-kort) til at forøge dataloggerens hukomelse

LabQuest Manual Til indsættelse af hukommelseskort (SD-kort) til at forøge dataloggerens hukomelse LabQuest Manual Til indsættelse af hukommelseskort (SD-kort) til at forøge dataloggerens hukomelse 4 indgange til analoge sensorer Tænd/sluk for maskinen (tryk et sekund) Trykfølsom skærm USB-port. Normal

Læs mere

1.1 1.2 2.1 2.2 2.3 3.1 3.2 INTRODUCING YOUR MOBILE PHONE Learn about your mobile phone s keys, display and icons. Nøgler Fra forenden af apparetet vil du observere følgende elementer: (Se 1.1 Side 3)

Læs mere

KVIK GUIDE TIL ST30 SYSTEM TELEFON

KVIK GUIDE TIL ST30 SYSTEM TELEFON KVIK GUIDE TIL ST30 SYSTEM TELEFON Beskrivelse af ST30 system telefonen. Fire liniers display Højttaler under håndsæt. 10 funktionstaster med lys diode Label Mikrofon atur telefon numre og input data.

Læs mere