Digital diktafon med dockingstation

Størrelse: px
Starte visningen fra side:

Download "Digital diktafon med dockingstation"

Transkript

1 Digital diktafon med dockingstation Afdeling for kommunikations teknologi 30. maj 2002 Aalborg Universitet Bruger Play(overfør) Stop / Slet Modtag Konvertér Diktafon Overførsel PC Gruppe 411

2

3 AALBORG UNIVERSITET INSTITUT FOR ELEKTRONISKE SYSTEMER AFDELING FOR KOMMUNIKATIONSTEKNOLOGI Fredrik Bajersvej 7 DK-9220 Aalborg Øst Telefon TITEL: Digital diktafon med dockingstation TEMA: Mikrodatamatsystemer PROJEKTPERIODE: 4. semester, februar 2002 til juni 2002 PROJEKTGRUPPE: 411 Synopsis GRUPPEMEDLEMMER: Dan Dejgård Hermansen Kristian Kjær Hans Johnny Nørgaard Madsen Torben Nørregaard Matzen Morten Højfeldt Rasmussen Formålet med dette projekt er at designe og konstruere en digital diktafon, som udover en diktafons traditionelle funktioner, skal kunne overføre optagelser til en PC. Der er udfra en problemanalyse opstillet en kravsspecifikation, der gennemgår aplikationer og krav til den endelige diktafon. Igennem projektet er en sådan diktafon, baseret på en Motorola processor, blevet designet, og en prototype konstrueret. Til systemet hører en optage- og afspilleenhed, display, knapper, og interface til en PC ved brug af dennes serielport. Yderligere er et filsystem til brug på diktafonen udviklet, og et program til at modtage den optagne lyd og konvertere den til waveformat. Det konkluderes at enhederene i den konstruerede diktafon er fuldt funktionelle alene og sammen parvis. Dette konkluderes på baggrund af, at der kan optages, lagres, afspilles og overføres tale ihht. de stillede krav. Interfacet bruger og diktafon imellem består af 5 knapper, volumenjustering og et display. Steven André Skaaning Jesper Mølgaard Sommerset VEJLEDER: Brian Lykkegaard Karlsen OPLAGSTAL: 10 SIDEANTAL: 117 AFSLUTTET: 30. maj 2002

4 4 Projektgruppe 411, Aalborg Universitet

5 Forord Denne rapport er udarbejdet af gruppe 411, 4. semester på elektronik og elektroteknik ved Institut for elektroniske systemer, Aalborg Universitet. Målgruppen for rapporten er medstuderende. Referencer til den benyttede litteratur er udført efter Harvard-metoden, med kilderne opstillet alafabetisk efter forfatteren, hvor denne kendes. En reference før et punktum henviser til specifik information i den foregående sætning. En henvisning efter et punktum henviser til det foregående afsnit. Hvor en kilde danner grundlag for et helt kapitel er dette anført i starten af kapitlet. Vedlagt findes en CD, som indeholder datablade, rapporten i PDF-format, samt kildekode til den under projektet udarbejdede software. En henvisning til en fil på den vedlagte CD er i rapportteksten udført som følger: (CD-ROM,, pld_knapper/knapirq.psf). Filen "knapirq.psf"kan her findes i biblioteket "pld_knapper/"på CD en. Dokumentationen af de udførte tests forefindes i appendiks. Eldiagrammer samt komponentplacering er indsat sidst i rapporten. Hvor tal i hexadecimal benyttes er disse anført med samme syntaks som ved brug af GNU assembleren, GAS, eller compilersamlingen GCC. Dvs. at f.eks. tallet 161 i traditionel decimalnotation i rapporten kan findes angivet som 0xA1, hvor 0x-præfikset betyder, at der er tale om et hexadecimaltal. Logiske udtryk i rapporten skrives i samme syntaks som i programmet ABEL, der benyttes til PLD-programmering. I denne syntaks er et logisk AND repræsenteret ved &, et logisk OR ved # og en invertering ved!. Aktivt lave signaler markeres med _, f.eks. VPA_. Dan Dejgaard Hermansen Kristian Kjær Hans Johnny Nørgaard Madsen Torben Nørregaard Matzen Morten Højfeldt Rasmussen Steven André Skaaning Jesper Mølgaard Sommerset Aalborg Universitet, 30. maj 2002

6 Indhold 1 Indledning 1 2 Problemanalyse Kravspecifikation Problemformulering Designfase Design af diktafon Produktdesign Procesdesign Hovedløkke for diktafon Konklusion på design af diktafon Design af PC-program Programdesign Procesdesign Hovedløkke for PC-program Konklusion på designafsnit Hardwaredesign Minimumsystem Resetkredsløb NMI-knap Interrupt-controller Seriel kommunikation Adressedekoder DTACK-generator Optage- og afspilleenhed Optageenhed Afspil Knapper Hardware til knapperne Fravalg af autovektorer Display Memorymap Konklusion på hardwaredesign

7 Indhold iii 5 Softwaredesign Filsystem Optimeringsmuligheder Optage-/afspilleenhed PLD-komponent Software til knapperne Software til displayet Software til docking Hovedløkke Fejlhåndtering PC-programmet Konklusion 88 Litteratur 89 A Komponentliste 91 B Apparaturliste 93 C Modultest 94 C.1 Softwaresimulering C.2 Minimumsystem C.3 Optage-/afspilleenhed C.4 Display C.5 Filsystem C.6 Knapper C.7 Docking C.8 PC-program D Procesintegration 104 D.1 Indledning D.2 Testemner D.3 Testdesign D.4 Accepttest D.4.1 Generel systembeskrivelse D.4.2 Eksterne grænseflader D.4.3 Test af de specifikke funktionelle krav D.4.4 Tilstandsdiagram D.4.5 Test af tilstande Bilag 117

8

9 Figurer 3.1 Kontekstdiagram over produktet Dataflowdiagram over produktet Procesopdelt dataflowdiagram Accessgraf indeholdende monitorer og processer Funktionsdiagram over Aflæs knapper Moduldiagram over processen Aflæs knapper Funktionsdiagram over processen Behandl displaydata Moduldiagram over processen Behandl displaydata Funktionsdiagram over processen Afspil Moduldiagram over processen Afspil Funktionsdiagram over processen Optag Moduldiagram over processen Optag Funktionsdiagram over Filsystemet Moduldiagram over Filsystemet Funktionsdiagram over processen Docking Moduldiagram over processen Docking Flowchart 1 af 4 over hovedløkken Flowchart 2 af 4 over hovedløkken Flowchart 3 af 4 over hovedløkken Flowchart 4 af 4 over hovedløkken Kontekstdiagram over PC-programmet Dataflowdiagram for PC-programmet Funktionsdiagram for PC-programmet Flowchart for PC-programmets menu Flowchart for PC-programmets modtagefunktion Receive Flowchart for PC-programmets konverteringsfunktion WavConvert Powerup-reset-kredsløb, med manuel reset knap Adressedekoderens opbygning Timing-diagram for en M68k read-cycle Timing-diagram for en M68k write-cycle. Figuren er et udsnit af billedet på s. 236 i (Clements, 1997) Signalflowet fra et akustisk signal til et digital signal Signalflowet fra et digital signal til et akustisk signal (a) Tidsdiskret filtrering af kontinuerte tidssignaler. (b) Digital processering af analoge signaler Illustration af princippet for antialiasing Kvantiseringsstøj

10 vi Figurer 4.10 Mikrofonens interne struktur Noninverterende forstærkerkobling Aktiv-RC integrator To-faset clock Switched-capacitor integrator Op- og afladning af kondensatorer gennem clock-perioderne φ 1 og φ Eldiagram af AGC-kredsløbet Illustration af flowet for AGC-signaler Princip for en SAR A/D konverter Princip for en flash A/D konverter D/A konverter med binært vægtede modstande D/A konverter med R - 2R netværk Illustration af funktionaliteten af et rekonstruktionsfilter Den kombinatoriske logik i PLD en til knaptrykstyring Flowchart for interrupt acknowledge sekvensen El-diagram over displayet Timingdiagram for displayets write-cycle.(cd-rom,, disp) Timingdiagram for displayet tilsluttet minimumsystemet Filsystemets struktur C.1 Screenshot af BSVC i gang med at afvikle displaysoftwaren på et simuleret M68k-microprocessorsystem C.2 Bodeplot for antialias filter C.3 FFT-analyse af udgangsignal fra D/A-konverter C.4 FFT-analyse af udgangsignal fra forstærker C.5 Screenshot fra modultest af knapperne D.1 Procesintegrationsplan for diktafonen D.2 Integrationstest af trin IT D.3 Integrationstest af trin IT D.4 Integrationstest af trin IT D.5 Integrationstest af trin IT D.6 Tilstandsdiagram i optagemode D.7 Tilstandsdiagram i afspillemodemode D.8 Tilstandsdiagram i dockingmode

11 Tabeller 3.1 Dataflowguide Procesguide Modulspecifikation for Aflæs knapper Funktionsspecifikation for Aflæs knapper Modulspecifikation for Behandl displaydata Funktionsspecifikation for Behandl displaydata Modulspecifikation for Afspil Funktionsspecifikation for Afspil Modulspecifikation for Optag Funktionsspecifikation for processen Optag Modulspecifikation for Filsystemet Funktionsspecifikation for Filsystem Modulspecifikation for Docking Funktionsspecifikation for Docking Dataflowguide for PC-programmet Funktionsspecifikationerne for funktionen Modtag Funktionsspecifikationerne for funktionen Konverter Memorymap for minimumsystem Sandhedstabel for adressedekodningen af M68k Udsnit af tabel 4.4 og 4.7 i (Clements, 1997, side 227 og side 237). Alle tider er angivet i ns Mulige valg i de tre modes Fem mulige valg i forskellige modes Vektorer og adresser på handling rutiner Tider i ns vedrørende timingdiagrammer; figur 4.26 og Memorymap for diktafonen Hardware I/O memorymap for konverteringsdel HentKnap funktionens returværdier Beskrivelse af registrene i ACIA en Fejlkoder fordelt på entryfunktioner Opbygning af wavefil

12

13 1 Indledning Projektoplægget (CD-ROM,, projektoplæg.pdf) for dette projekt omtaler bl.a. læger og advokaters interesse i at have en diktafon. Til forskel fra traditionelle diktafoner, der er konstruerede som små analoge båndoptagere, skal den i projektet konstruerede diktafon lagre optagelser digitalt. Gruppen har dog fundet et mere nærliggende formål med den digitale diktafon, der i høj grad vil være anvendelig som logbog ved laboratoriearbejde. Et af de store problemer ved debugging, såvel som test i elektroniklaboratoriet, er dokumentationen. Hvis ikke personerne, der udfører laboratoriearbejdet, konstant opdaterer ændringer på diverse diagrammer, samt kommenterer produktet af ændringerne, kan der opstå stor spildtid. En digital diktafon, der kan overføre de indtalte beskeder til en PC via en dockingstation, vil her kunne hjælpe i processen. Endvidere kombineret med talegenkendelsessoftware på PC en ville dette system blive et kraftigt værktøj. En yderligere diskussion af talegenkendelsessoftware ligger udenfor dette projekts emneområde. Brugen af diktafonen skal naturligvis indøves for at opnå flere fordele end ulemper frem for traditionelle metoder. Inden diktafonen kan anvendes skal den designes og konstrueres, hvilket leder til følgende initierende problem: Initierende problem Hvordan opbygges en digital diktafon med dockingstation?

14 2 Problemanalyse Da formålet med den digitale diktafon i indledningen er fastlagt, diskuteres i det følgende hvilken funktionalitet, der skal forefindes på diktafonen, og hvilke der skal forefindes på PC en. Derudover diskuteres grænsefladen mellem diktafonen og PC en. Diktafonen skal have tre helt overordnede egenskaber. Den skal kunne optage tale, og gemme optagelsen digitalt. Den skal kunne afspille taleoptagelsen via en lille højttaler med det formål, at brugeren hurtigt skal kunne identificere indholdet af de enkelte optagelser. Den tredje funktionalitet er dockingfunktionen, der skal forestå overførslen af de lagrede optagelser til en PC. For at de overførte optagelser er brugbare, skal de efter overførslen konverteres og slutteligt gemmes i et format, der er brugbart på det valgte styresystem. Da både UNIX, Linux og Windows NT er tilgængeligt for gruppen vælges styresystemet senere. Valget af lydformatet er faldet på wave p.g.a. dets store udbredelse, og fordi det er en relativt simpel opgave at konvertere PCM-data til wave. Efter konvertering skal wavefilen kunne afspilles fra afspillere som f.eks. XMMS, Windows Media Player eller Winamp. Indledende om talesignalet For at kunne gengive det optagede talesignal tilfredsstillende, skal optagelsen ligeledes være tilfredsstillende. Ordet tilfredsstillende er dog for ukonkret i denne sammenhæng, hvorfor de relevante overordnede aspekter af talesignalet i det efterfølgende vil blive gennemgået. På baggrund af denne overordnede gennemgang uddybes emnet, med fokus på den specifikke hardware, i afsnit 4.2 på side 46 om design af optage- /afspilleenheden. Langt størstedelen af talesignalet ligger ved en frekvens under 4 khz, hvorfor alt over 4 khz kan betragtes som værende støj. Dette giver et godt udgangspunkt for en digitalisering af talesignalet ved sampling. Kvaliteten af det samplede signal afhænger bl.a. af samplingsfrekvensen, som fastslås i afsnit 4.2 på side 46. Det er målet at det samplede signal skal ligge på niveau med telefonkvalitet. Der findes ikke umiddelbart nogen klar definition på telefonkvalitet. Dog er der ved opslag og søgninger (Digitized Sound - Notes on Digitized Sound, 2002) fremkommet en opfattelse af telefonkvalitet som bestående af en samplingsfrekvens på 8 khz med 8 bit per sample. Denne definition benyttes flere steder i rapporten. Brugergrænseflader Kommunikationen med diktafonen ønskes let tilgængelig. Ved at placere knapper på diktafonen, der kan igangsætte diverse relevante operationer, er kommunikationen gjort

15 3 let tilgængelig. Det ville f.eks. ikke være fordelagtigt, at skulle være afhængig af en PC for at kunne kommunikere med diktafonen. Diktafonen skal desuden give brugeren feedback på sine handlinger, så brugeren kan se status. Heraf er det naturligt, at det fremgår, om diktafonen er klar til at optage, afspille eller overføre data til PC en. I hver af disse tre tilstande (modes) kan der udføres en række funktioner. Der skal være information om diktafonen er stoppet, startet eller evt. sat på pause i et vilkårligt mode. Desuden bør der være informationer om hvilket nummer optagelse (track) i rækken, der arbejdes på, samt hvor mange tracks der findes i alt. Ovenstående informationer er talrige, og hvis diktafonen skal danne udgangspunkt for en videreudvikling, kommer der flere til. Derfor er det nærliggende at brugeren tilgår informationerne via et display med mulighed for anvendelse af tal, bogstaver og enkelte symboler. Som det fremgår af ovenstående ligger det i diktafonens natur, at der kan optages flere tracks. Antallet af tracks er i princippet kun afhængig af længden af de enkelte tracks, samt den til rådighed værende hukommelse i diktafonen. Da der i dette projekt udvikles en prototype, er det princippet bag flere optagelser, der vises, hvorfor det ikke er nødvendigt med mulighed for mere end ca. 5 minutters optagelser. Dette giver ved ukomprimeret data optaget i telefonkvalitet et hukommelsesforbrug på 8000 samples s 60s min 1byte sample 5min 2 3Mbyte. Under optagelserne er det desuden praktisk, hvis der ikke er specielle krav til brugerens taleafstand til diktafonen. Derfor ønskes en automatisk volumenkontrol (AGC) 1 indbygget. Kravet til denne er, at den skal kunne holde taleniveauet konstant, men ikke forstærke baggrundsstøj i stille perioder. Når diktafonen befinder sig i afspillemode, er det ikke nødvendig med god lydkvalitet i form af gode højttalere, da afspilningen og redigeringen af selve optagelserne til brug i forbindelse med laboratoriearbejdet bør foregå fra PC en. Her kan med fordel benyttes en ganske lille højttaler, hvilket også tilgodeser mobiliteten i diktafonen. Hardwaredesignet i projektet er baseret på en Motorola processor, og som udviklings- og debuggingværktøj er en monitor kaldet TS2MON tilgængelig. Denne benytter den serielle kommunikationsprotokol RS-232C. For at udnytte dette faktum bedst muligt, samt for at gøre diktafonen tilgængelig for enhver standard PC, benyttes i dockingmode ligeledes RS-232C. Dog kræver TS2MON en begyndelseshastighed på 9,6 kbps, hvilket ved overførsel af hele hukommelsen giver en overførselstid på: 2 3Mbyte 8 39E6bit Mbyte 60s min 9600b s 33min Dette er uden tvivl for langsomt, hvorfor overførselshastigheden sættes op til det maksimale hardwaren tillader på 115 kbps i det færdige produkt. Når et analogt lydsignal skal konverteres til et digitalt foregår det som regel ved pulse code modulation (PCM). En lydoptagelse i PCM-format består af en række samples, eller pulser, som optages ved at finde øjebliksværdien af et analogt lydsignal med et bestemt interval. Den bitopløsning der benyttes til at lagre de fundne værdier bestemmer præcisionen af konverteringen, da alle samples afrundes til den heltalsværdi der passer 1 Automatic Gain Control.

16 4 Problemanalyse bedst. Ligeledes har frekvensen hvormed der samples betydning, da det ikke er muligt at sample signaler over Nyquistfrekvensen korrekt. (Pulse Code Modulation (PCM), 2002). 2.1 Kravspecifikation I dette afsnit opstilles kravspecifikationen med udgangspunkt i den foregående del af problemanalysen. Opbygningen af kravspecifikationen grunder i SPU-modellen. Formålet med den digitale diktafon Diktafonen har til formål at optage tale og lagre dette digitalt, med mulighed for at overføre data til en PC. Diktafonen tænkes anvendt som logbog under laboratoriearbejde i projekter. Generel systembeskrivelse Det overordnede system består af en diktafon, der kan optage og afspille tale. Derudover kan diktafonen overføre lagret tale til en PC. De specifikke funktionelle krav Optagelse af tale: Kvalitet: 8 khz, 8 bit. Lagerkapacitet: 5 min. (2,3MByte) Mulighed for opdeling af kapacitet i flere optagelser. Automatisk indstilling af optageniveau. Optagelser skal kunne slettes på den mobile enhed. Start/stop/pause. Afspilning af tale: Indstilling af lydniveau. Skifte mellem optagelser. Start/stop/pause. Kvalitet: 8 khz, 8 bit.

17 Problemformulering 5 Funktionerne fra henholdsvis optagelse og afspilning kan ikke foregå samtidig. Overførsel af optagelser til PC Vha. RS-232C-protokol til serielporten. Filformat på PC (wav). Hastighed: 115kbps. Eksterne grænseflader I dette afsnit omtales de eksterne grænseflader i to dele: brugergrænseflade og hardwaregrænseflade. Brugergrænseflade Nedenstående kolonner viser den kommunikation, der foregår mellem brugeren og diktafonen og omvendt. Kolonnerne er uafhængige, da det er en illustration af samtlige muligheder for udveksling af informationer mellem brugeren og diktafonen. Bruger Diktafon Diktafon Bruger Start optagelsen Afspil optagelsen Pause i optagelsen/afspilningen Slet optagelsen (2 tastetryk) Vælg optagelsen Stop optagelsen Lydniveau (afspilning) ON/OFF Rec Play Pause Delete Tracknummer (Aktuelt) Antal tracks Tilbageværende hukommelse Dockinginformation Hardwaregrænseflade Den eneste hardwaregrænseflade for det overordnede system er mellem diktafon og PC, som er seriel kommunikation med RS-232C protokollen. 2.2 Problemformulering Igennem problemanalysen er de overordnede krav til diktafonen blevet beskrevet og summeret. Spørgsmålet gruppen ønsker at besvare bliver således: "Hvordan opbygges en digital diktafon med dockingstation omkring et Motorola mikroprocessorsystem, der overholder den givne kravspecifikation?"

18 3 Designfase Et af kursusforløbene på dette semester har omhandlet Struktureret ProgramUdvikling (Biering-Sørensen et al., 2000), også kaldet SPU, og dette projekt er derfor opbygget omkring denne tankegang i form af en bestemt model. Modellen vil ikke blive gennemgået i detaljer her, da den både omhandler arbejdsmetoder, forskellige diagramtyper og lignende. Gruppen har udvalgt bestemte fremgangsmåder med baggrund i SPUmodellen, og disses konklusioner dokumenteres i rapporten i form af relevante diagrammer, tabeller og beskrivelser. Opbygningen af designkapitlet bærer præg af et top-down design, hvorved læseren fra begyndelsen får overblik over helheden i programdesignet. Da diktafonen indeholder mere end software, er ordet program i visse sammenhænge misvisende, hvorfor ordet produkt til tider anvendes for bedre forståelse. Desuden gør tilstedeværelsen af hardware, at SPU-modellens opbygning ikke er tilstrækkelig for designet. Derfor følger efter procesdesign et design af en hovedløkke på side 25, samt design af PCprogrammet. Top-down designet indeholder følgende elementer i nævnte rækkefølge: Produktdesign. Kontekstdiagram for hele produktet. Dataflowdiagram med dataflowguide. Procesoversigt med udgangspunkt i et procesopdelt dataflowdiagram. Accessgraf med procesguide. Kontrol af produktdesign. Procesdesign. For hver enkelt proces er dokumenteret følgende: Funktionsoversigt. Moduloversigt, hvor funktionerne grupperes. Modulspecifikation. Funktionsspecifikation for samtlige funktioner i hvert enkelt modul. Formålet med designfasen under selve udviklingen af produktet er, igennem analyse, at få specificeret hver enkelt funktion i detaljer, så det umiddelbart står klart for programmøren, hvorledes den enkelte funktion skal kodes. Ved dokumentation i rapporten giver det desuden læseren mulighed for, at få indblik i de enkelte funktioner uden at skulle studere koden. I SPU-modellen indgår en særskilt designfase kaldet moduldesign. Dokumentationen af denne er begrænset til funktionsspecifikationerne, der for overskuelighedens skyld er placeret under afsnittet "Procesdesign- umiddelbart efter de respektive moduler.

19 Design af diktafon Design af diktafon I dette afsnit designes diktafonen med baggrund i SPU-modellen, hvilket indebærer et produktdesign, et procesdesign samt et design af hovedløkken Produktdesign Formålet med produktdesign er at specificere produktets ydre og indre grænseflader samt at opdele produktet i processer for udfærdigelse af et procesdesign i afsnit på side 12. Der er valgt en designmetode, som knytter sig til grafiske fremstillinger i form af følgende diagrammer og tabeller: Kontekstdiagram, der viser diktafonen og dennes eksterne grænseflader. Dataflowdiagram med guide, der viser diktafonen opdelt i processer, samt disses interne dataflow. Accessgraf med guide, der viser processernes interne grænseflader. Kontekstdiagram 45 0 ) - "!" # $ 6"' $ %'&( $)*&"+,.- 0/1 )2")*3 $ Figur 3.1: Kontekstdiagram over produktet. Kontekstdiagrammet viser den overordnede signalvej (pilene), samt diktafonens ydre grænseflader (kasserne) på baggrund af kravspecifikationen. Brugeren kan vælge forskellige funktioner på diktafonen; indtale beskeder på den og få information ud på et display samt afspille det indtalte. Til PC en kan overføres taledata. Dataflowdiagram Der er igennem en analyse af kravspecifikationen udfærdiget et detaljeret dataflowdiagram af produktet, som kan ses på figur 3.2 på den følgende side. Dette har til formål at uddybe de eksterne grænseflader, anskueliggøre de indre, samt visualisere dataflowet processerne imellem. Firkanter symboliserer grænsefladerne, eksterne som interne. En pil videregiver dens beskrivelse til den kasse/cirkel den peger mod. En cirkel illustrerer en datatransformation i produktet. To vandrette parallelle linier udgør en fil (lager).

20 W W W W W W [ X 8 Designfase D5EGF=H2I=E Q5A=>=:=:=I2E B<cd9 QPA=>*:=K EG?Z V :=<>=?8A2B C DPI=M=>=A2N*< N=89:=<>=?L N=>=K > Q1A2>=:=B <>2H 7 C=Y;Z8A=H R C=N2I=U 9K>=EGKU9<I=K XEG>=Y;Z O I2K ZA=>=:=L 9? Rba C=< QPA*>=:2EGI=H=89;K I=E XEG>=Y;Z 789;:=<>=?6@ A*B C f=cg968a=b C O K>=EGKU9KC=: O K?SE >=B 9S:=8< XE >=YSZ A=K >=<;K EG>2YZ XEG>=Y;ZSL K 8N O K?;E N=C2YSZ8A2H B9;:=8<<I=L R C2N=I O K>=ETKU9;KC=:=U:2>=F=9I B<>=H 7eC=YSZ;8A=H=U 9;K >2EGK B<>=H _`8<9?9K I R J :=K >=H=I2L R C=N2I O K>=EGKU9KC=: B 9S:=8<<I=98H2A=>=< 9K>=E KU9KC=: O K>=E KU9KC=: B<>=H f=>*h=i=e N=>=K > J ]I=E B ^EG9;I=<9;N=>*K > f2>=h=i=eb C=È K >2<I2L C2:=K >2H=I=<9I2E 7C=Y;Z8A=H 9K >2EGK D1I=M2>=A=N=< C=];I=ETB ^EGL 9SI=<9;N=>=K > B 9:=8<<I=N=>=K > O K?E C=:2K >2H DPI=M=>2A=N*< >=B 9;:=8<<I=L N=>=K > DPI=M=>=A=N=<I=K C=:=K >=H=I=N=>2K > J :=K >=H=I298H=A=>2< 9SK>=ETKU9;KC*: D5I2M=>*A=N=<I=K C=]SI2EGB ^E 9SI=<9;N=>=K > D5I2M=>=A=N*< C=:=K >=H=I2L N2>=K > D1I=M2>=A=N=<I=K >=B 9S:28<<I=N2>*K > DPETF=H=I2E B 9S:=8<<I=L I=A=M*I=N J :=K >=H=I=L I=A=M*I=N J :=K >=H=I2L N=>=K > V1C2<F R I=A W!\ Figur 3.2: Dataflowdiagram over produktet.

21 Design af diktafon 9 Dataflowguide Dataflowguiden, som ses i tabel 3.1, lister og forklarer kort dataflowdiagrammets funktioner. Der gøres opmærksom på følgende detalje, som ikke fremgår af diagrammet: Hvis der under en optagelse/afspilning trykkes på start, og ikke vælges ny mode eller nyt track, fortsættes der, ved næste tryk på start, med optagelse/afspilning i samme track (append/pause). Knapregister I knapregistret sættes det pågældende knapflag (mode, track, start, stop og slet). Display Info Indeholder de data der skal udlæses til displayet. Lager for taleoptagelser Her lagres, hentes og slettes data gennem filsystemet. Aflæs knapper Aflæser knapregisteret med hensyn til knaptryk. For yderligere forklaring henvises til procesguide afsnit på side 11. Behandl displaydata Udlæser display info på display. Styr afspil Omfatter funktionerne start, stop og pause. Behandl afspilledata Styrer overførslen af afspilledata fra lageret til afspilleenheden. Styr optag Omfatter funktionerne start, stop og pause. Behandl optagedata Styrer overførslen af optagedata fra optageenheden til lageret. Filsystem Her disponeres lagerpladsen og de overordnede opgaver såsom: trackvalg, tracknummer, tracktid, gem data, hent data, send data og slet data. Styr docking Omfatter funktionerne start, slet og track. Behandl overførselsdata Styrer overførselsdata til PC. Tabel 3.1: Dataflowguide Procesoversigt Dataflowdiagrammet sammenholdes med kravspecifikationen for at finde både uafhængige og beslægtede funktioner. Beslægtede funktioner samles under en proces, hvorimod hver uafhængig funktion har sin egen proces. Eksempelvis skal aflæs knapper foregå uafhængigt af processen optag, da optagelsen ellers ikke, via stopknappen, kunne stoppes af brugeren. Procesopdelt Dataflowdiagram For at give et bedre overblik samles datatransformationerne fra dataflowdiagrammet i processer, hvor indholdet af hver enkelt proces er ensartet. [*Note *] Som det fremgår af figur 3.3 på næste side opdeles dataflowdiagrammet i følgende processer til efterfølgende udfærdigelse af en accessgraf, hvor opdelingen grunder i de sammensatte funktioners tætte indbyrdes tilknytning. En beskrivelse af de seks processer opdelingen skal begrun

22 ˆ ˆ ˆ ˆ ˆ ˆ Œ 10 Designfase 0 G gœ 5Ÿ Ÿ ª5«vxw y2z2{qw ƒik hjikml2noqpistu Ps2oql2lq{2w tn k xs2o=lq} w p vx{2qo2s2 2n qikml2noqp~ qo2} o Psqo2ltno2z ª5 ƒ œ G Ÿ 50 x{2} ;s2oql2~ kmp! uqn xs2o2l2w {qz2ikm}{qw `w oqš; `w o2šm hjikml2noqp.r stu 2 k.istu P}o2wG} km}u2l P}pw otklqin w o2š; s2}oqn;}w oqš; `w o2šm ~ }i P}p;w qu2šm ;is2z tk;lqinn{2~ u2 2{ P}o2wG} k;}u2l lqo2y2k;{ tno2z inkmpkm}{ qo=zq{2w 2oq} o heu2šm ;is2z km}oqw } ƒlq} o2z2{q~ uq 2{ P}o2wG} k;}uql qo2zq{2w;tuqw }o2n{2~ uql2} o2zq{2nk;{2w tk;l2inn{2k;izqs2o2n km}o2w } k;}uql x}o2w } km}uql t no2z vp{q2o2sq 2n už {2wt w ~ k;{2nk; 2oq} o tk;l2inn{q 2o2} o x}p;w u2l2} o2z Ÿ G v{22oqs2 =n otk;lqinn{2~ 2oq} o vx{2qo=s2 qn{2} uql2} oqz2{q 2o2} o ƒl2} oqz2{qk;izqs2oqn k} oqwg} km} u=l vx{q2o2s2 2n{2} už`{2wt w k{qnk; qo2}o vx{q2oqs2 =n u2lq} 2oq} o2zq{2~ o vp{q2o2sq 2n{2} ot klqinn{2 2o2} o ž'ÿ 0 vxwgy2z2{qw t klqinn{2~ {qs2={q lq} o2zq{2~ {qs2={q ƒl2} oqz2{q~ 2o2} o.u2ny {qs ˆ. d 1š5 Gœ Figur 3.3: Procesopdelt dataflowdiagram.

23 ¼ Design af diktafon 11 findes i procesguiden 3.2. Med beskrivelsen af processerne fortsættes til opbygningen af kommunikationen processerne imellem. Til dette benyttes en accessgraf opbygget af processer og monitorer. Monitorernes funktion er, at kontrollere processernes adgang til f.eks. en ekstern enhed eller interne lagre. Accessgraf ±1² ³* * * ¼ Ä1ÇÁÊ º ˲*³* * * ¼ ÄjǺ ¹Á ÄjǺ ¹ÁÁ µ ² À ¼ ½»³ ½»³ * µ ² À ±j²*³* *µ G * *¹º» * ¼ Ì Í*ÎË ¹² Ƴ*Á À*³»³ µtá³ * * Ì ¹º *Á³* ¾ * ³*²*À Á À ¹º *Á³*Âqµ À*³»³ Ì ¹º *Á³*µ ¹²*ÇÍ ¼ È ¹Áµ º  ºS» *É Ã ÄjÅ Æ Figur 3.4: Accessgraf indeholdende monitorer og processer. Accessgrafen på figur 3.4 indeholder de forskellige processer (P) og dertil hørende monitorer (M). Processerne uddybes i efterfølgende procesguide og monitorerne forklares i afsnit på den følgende side. Procesguide Procesguiden i tabel 3.2 informerer om samtlige processers overordnede formål. Proces Overordnet formål Aflæs knapper I knapregistret sættes det pågældende knapflag (mode, track, start, stop og slet). Behandl displaydata Udlæser på displayet de info der er til rådighed. Det være sig: docking-/optage-/afspillemode, start, stop, slet og trackinformation. Afspil Starter og stopper afspilleenheden. Optag Starter og stopper optageenheden. Filsystem Koordinerer de andre processers tilgang til lager. Docking Starter overførslen af filer til UART og sletter filer i lageret. Tabel 3.2: Procesguide.

24 12 Designfase Delkonklusion I dette afsnit er der, med udgangspunkt i kravspecifikationen og igennem en top-down nedbrydning af diktafonen, fremkommet et dataflowdiagram og en accessgraf til beskrivelse af processernes interne kommunikation og grænseflader. Der er ialt 6 processer: Aflæs knapper. Behandl displaydata. Afspil. Optag. Filsystem. Docking. Disse er udgangspunktet for procesdesign, som er den næste fase af SPU, hvori processerne nedbrydes yderligere Procesdesign I foregående afsnit fremkom, igennem en analyse, seks processer, som bearbejdes yderligere i dette afsnit. Dette sker i form af følgende elementer udarbejdet for hver enkelt proces: Funktionsoversigt, der viser samtlige entryfunktioner 1 i de enkelte processer. Moduloversigt, hvor funktionerne grupperes. Modulspecifikation. Funktionsspecifikation for samtlige entryfunktioner i hvert enkelt modul. De to første oversigter giver læseren et visuelt indblik i funktionerne, samt hvorledes disse er grupperet i moduler bestående af ensartede entryfunktioner. De to specifikationer angiver i skemaform vejledende indholdet af de enkelte moduler og funktioner. Processen Aflæs knapper vil som den første proces blive gennemgået forklarende som vejledning for læsning af de resterende procesgennemgange, der ikke i samme omfang forklares, da dette i høj grad ville bestå af gentagelser.

25 Design af diktafon 13 Ï Ð;Ñ ÒÔÓÖÕx ØÙÙÚÛ àáúõ5þtâûã ä Þ àé ßgë6ìÖè'ëígî ÜÝÚe ƒþtßg ØÙ ßgåæÏç èýégê Figur 3.5: Funktionsdiagram over Aflæs knapper. Aflæs knapper Funktionsdiagrammet på figur 3.5 viser, at processen Aflæs knapper kan underopdeles i to entryfunktioner. Navnene på entryfunktionerne er valgt så de senere er letgenkendelige i en kontekst; de er ligeledes benyttet i kildekoden. I bunden af funktionskasserne er påført referencer til de monitorer fra accessgrafen, der kontrollerer de eksterne enheder eller registre, som er relevante for den enkelte funktion. Ud fra funktionsdiagrammet fremkommer moduldiagrammet på figur 3.8, der viser, at Aflæs knapper består af et enkelt modul. Modulnavnet er vejledende, og er i tråd med modulerne til for, at fremme overblikket i designfasen. Med kritiske øjne kan det dog tilføjes, at der i forbindelse med de mindre processer, såsom Aflæs knapper, ikke er behov for modulopbygningen for overblikkets skyld, netop fordi hvert modul kommer til at bestå af en enkelt entryfunktion. Men for ikke at bryde standardopsætningen af SPU-modellen, og derved svække overblikket, følges samme opbygning af hver proces i procesdesign. I hver moduloversigt er angivet et fejlområde for den proces modulerne udgør. Dette fejlområde tænkes benyttet til en central fejlhåndtering som udarbejdes i afsnittet om softwaredesign. 2 ïðñòógô2õö øù õ öñ ó2øù õ ï ðñò ó ô=õö øù ú û üý6þ ÿjý ü 1ï ÿ!û Figur 3.6: Moduldiagram over processen Aflæs knapper. 1 Entryfunktion er betegnelsen for funktioner, der er globalt tilgængelige, og som derfor kan kaldes fra andre igangværende funktioner. 2 Grundet ændringer i fejlhåndteringen undervejs er fejlområderne ikke opstillet numerisk i samme rækkefølge som processerne.

26 14 Designfase Modulspecifikationen, som ses i tabel 3.3, understøtter moduldiagrammet, og viser skematisk, hvilke entryfunktioner, der er indeholdt i modulet. Desuden angives hovedformålet for modulet. Modulnavn Hovedfunktion Entryfunktioner Aflæs knapper Undersøge værdien af det sidste knaptryk. HentKnap. InitVektor. Fejlområde 50 til 59 Tabel 3.3: Modulspecifikation for Aflæs knapper. Navn Input Beskrivelse Output Navn Input Beskrivelse Output HentKnap Læser og retunerer det aktuelle knaptryk sat ved interrupt. Knapregister (KnapReg) [8 bit] InitVektor Opsætter exception vektortabel, så interruptet fungerer. Tabel 3.4: Funktionsspecifikation for Aflæs knapper. Behandl displaydata Funktionsdiagrammet på figur 3.7 på modstående side over processen behandl displaydata viser, at den indeholder fem entryfunktioner: InitDisplay, VisTid, VisTrack, VisAntalTracks og VisMode. Ud fra funktionsoversigten fremkommer moduldiagrammet, der viser, at Behandl displaydata kan opdeles i to moduler: Skriv til display og Initialisering. Afspil I dette afsnit udarbejdes en funktionsoversigt over processen Afspil. Som det ses af funktionsdiagrammet 3.9 på næste side kan afspilleprocessen underopdeles i tre entryfunktioner: InitAfspil, StartAfspil og StopAfspil. Ud fra funktiondiagrammet fremkommer moduldiagrammet på figur 3.10 på side 16, der viser, at afspilleprocessen består af to moduler: Initialisering af afspilleenhed og kommunikation med afspilleenhed.

27 Design af diktafon 15!" #$ 3 6 = 5 ' 7 B4CD* * %.9): %.E) *+,F- %&(' #() *+,- %./ ) 8 / ) 8/ ) 8 / ; <4' = > 8? Figur 3.7: Funktionsdiagram over processen Behandl displaydata. GHIJKLMLN OPM J Q!L"J RJ _ KNR$NJMNOHe+NKf1JTU LNOPMJ Q SAHK R LNOPMJTQ!NK U(V ga_ a Z`TY b W X4Y Z[A\ ] ^4_ `ab ac \d Figur 3.8: Moduldiagram over processen Behandl displaydata. h i(jkl m n olp h i$jfklm h ~ n Aƒ qrs1sutol vw pl ro1syxz w i(jkl m m xxo{xz p m m n n pw} h ijkl p$rkth ijkl h ~ Aƒ h ~ Aƒ Figur 3.9: Funktionsdiagram over processen Afspil.

28 16 Designfase Modulnavn Hovedfunktion Entryfunktioner Skriv til display Opdatere display løbende. VisTid VisTrack VisAntalTracks VisMode Modulnavn Hovedfunktion Entryfunktioner Initialisering Initialisere display fra diktafonens opstart. InitDisplay Fejlområde 30 til 39 Tabel 3.5: Modulspecifikation for Behandl displaydata. $ F ˆ Š "ˆŒ(ˆ ˆ FŽ +ˆ y T "ˆ ŽŽ Ž y 1 ˆ Œ(ˆ y 1Ž $ ˆ ŽŽ Ž & š Š œ žaÿ Figur 3.10: Moduldiagram over processen Afspil. $ ( ³² šµ ¹ ª1ªy«1ªy " $ ± ( " ( ²" šµ A¹ ²" šµ ¹ Figur 3.11: Funktionsdiagram over processen Optag.

29 Design af diktafon 17 Navn Input Beskrivelse Output Navn Input Beskrivelse Output Navn Input Beskrivelse Output Navn Input Beskrivelse Output Navn Input Beskrivelse Output InitDisplay Opsætter specialsymboler, sletter display, slukker cursor mm. således at displayet er klar til brug. VisTid sek1, sek2 [int] Tiden vises i 2 dedikerede felter på displayet i formatet mm:ss. VisTrack tracknr [int] Det aktuelle track udskrives på display xx/ skråstreg udskrives efter tracknr. 0 ved OK VisAntalTracks antaltracks [int] Samlet antal track i memory udskrives på display i format xx til højre for VisTrack feltet. Mulighed for tomt felt. 0 ved OK VisMode mode[play = 1, Rec = 2, Dock = 3] [int] action[ = 0, Play = 1, Pause = 2, Stop = 3, Rec = 4, Slet? Tryk start = 5] [int] Skriver med tekst hvilket overordnet mode diktafonen befinder sig i, og angiver med symbol hvad der foregår. 0 ved OK Tabel 3.6: Funktionsspecifikation for Behandl displaydata. Modulnavn Hovedfunktion Entryfunktioner Kontroller afspil Starte og stoppe afspilningen. InitAfspil StartAfspil StopAfspil Fejlområde 20 til 29 Tabel 3.7: Modulspecifikation for Afspil.

30 18 Designfase Navn InitAfspil Input Beskrivelse Initialiserer afspilleenheden under opstart af diktafonen. Output Navn StartAfspil Input Beskrivelse Starter D/A-konverter, som derefter løbende giver IRQ 3 med 8kHz. Output 0 ved OK. Navn StopAfspil Input Beskrivelse Stopper D/A-konverter, så denne ikke længere giver IRQ. Output 0 ved OK. Tabel 3.8: Funktionsspecifikation for Afspil. Optag I dette afsnit udarbejdes en funktionsoversigt over optageprocessen. Som det ses af funktionsdiagrammet 3.11 på side 16 kan optageprocessen underopdeles i tre entryfunktioner: InitOptag, StartOptag og StopOptag. Ud fra funktionsdiagrammet fremkommer moduldiagrammet 3.12, der viser, at optageprocessen består af to moduler, der skal forestå initialisering og kommunikation med optageenheden. º»T¼$½¾ ÀÁ¼ Á½ÂÁÃÄÅÁÀ ¾ ÆÇÈ1ÈyÉ ÀÁÊ ½ ¼ ÁÇ À È ÄË Ç» ¼(½¾ ÄÄÀÌÄË º Í"Î:Ï Ð ÑÓÒ Figur 3.12: Moduldiagram over processen Optag. Filsystem I dette afsnit udarbejdes en funktionsoversigt over filsystemet. Som det ses af funktionsdiagrammet på figur 3.13 på næste side kan Filsystem underopdeles i ti entryfunktioner: HentFilLaengde, HentAntalFiler, HentLedigPLads, OpretFil, SkrivTilFil, LukFil, SletFil, AabenFil, HentFraFil og InitFilsys. Ud fra funktionsoversigten fremkommer moduldiagrammet, der viser, at processen Filsystem kan underopdeles i tre moduler: Filinformation, Filoperation og Initialisering.

31 Design af diktafon 19 Modulnavn Hovedfunktion Entryfunktioner Kontroller optag Starte og stoppe optagelsen. InitOptag StartOptag StopOptag Fejlområde 10 til 19 Tabel 3.9: Modulspecifikation for Optag. Navn Input Beskrivelse Output Navn Input Beskrivelse Output Navn Input Beskrivelse Output InitOptag Initialiserer optageenheden under opstart af diktafonen. StartOptag Starter ADC, som derefter løbende giver IRQ med 8 khz. 0 ved OK. StopOptag Stopper ADC, så denne ikke længere giver IRQ. 0 ved OK. Tabel 3.10: Funktionsspecifikation for processen Optag. Ô ÕÖ TØÙ Ú ÛFÜ ÔTÕÖÕâFã ÝFÜ àfú ÕÝFâ êâfõú ÕàFÖÕ ÛFß+ÕâFè ä ÛFâFÚåÔÙÕ Ö æfçuâfèféfû ÔêæFë4ìíëšî"ïšð ä ÛñâFÚ òíâfú àföóôtõ ÖÛFß ÔêæFë4ì4ë4îï4ð ôõ ötøù õ ú ûü ýÿþ ú Ô"êæFëšìíë4îï4ð ÔÙÕÖÝFÞFÛFßáàFÚ ÕÝFâ êâfõú$ôtõö TØÙ ÔêæFë4ì4ë4îï4ð ÞFßóÛFÚ$Ô Õ Ö ë ßáÕ TîÕÖáÔ ÕÖ æ ÔTÕ Ö ë4öûfú$ô ÕÖ òšà ñûfâ4ô Õ Ö ä ÛFâFÚ$Ô ßóà4ÔTÕ Ö ÔêæFë4ì4ë4î"ïšð Ô"êæFëšìíë4îï4ð Ô"êæFëšìíë4îï4ð ÔêæFë4ìíëšî"ï4ð ÔêæFë4ìíëšî"ïšð ÔêæFë4ì4ë4îï4ð Figur 3.13: Funktionsdiagram over Filsystemet.

32 20 Designfase Modulnavn Hovedfunktion Entryfunktioner Initialisering Opsætte filsystemet ved opstart af diktafonen. InitFilsys Modulnavn Hovedfunktion Entryfunktioner Filinformation Hente diverse filinformationer, som f.eks. skal udlæses på display. HentFilLaengde HentAntalFiler HentLedigPlads Modulnavn Hovedfunktion Entryfunktioner Filoperation Udføre diverse operationer på filerne, så diktafonen kan optage, afspille og overføre taledata. OpretFil SkrivTilFil LukFil SletFil AabenFil HentFraFil Fejlområde 40 til 49 Tabel 3.11: Modulspecifikation for Filsystemet.

33 Design af diktafon 21 Navn Input Beskrivelse Output Navn Input Beskrivelse Output Navn Input Beskrivelse Output Navn Input Beskrivelse Output Navn Input Beskrivelse Output Navn Input Beskrivelse Output Navn Input Beskrivelse Output Navn Input Beskrivelse Output Navn Input Beskrivelse Output OpretFil filnr [int] Opretter en ny fil. 0 ved OK. SkrivTilFil Data [char] Skriver data til filen. 0 ved OK. LukFil Lukker nyoprettet fil. Navn på netop lukket fil ved OK. SletFil filnr [int] Sletter den angivne filheader. 0 ved OK AabenFil filnr [int] Åbner en fil så der kan hentes fra den. 0 ved OK HentFraFil filnr [int] Henter data fra fil. 0 ved OK HentFilLaengde filnr [int] Henter filens længde i sekunder. Benyttes f.eks. til udskrivning på display. Fillængde i sekunder [int] ved OK HentAntalFiler Udregner filantal lagret i hukommelse. Filantal [int] ved OK HentLedigPLads Udregner resterende lagerplads i sekunder. Ledig plads i sekunder [int] ved OK Tabel 3.12: Funktionsspecifikation for Filsystem.

34 22 Designfase! "#!!.!!'/0" " 1 -% 7 '5!6& $% #& ' )3"!6& ()+*,$ 23!4'5 1 Figur 3.14: Moduldiagram over Filsystemet. Docking I dette afsnit udarbejdes en funktionsoversigt over processen Docking. 8%9: ;=< ; D E < 9>BA#FG HJI K ; L<M N%< O HJI PQ+R N Figur 3.15: Funktionsdiagram over processen Docking. Som det ses af funktionsdiagrammet 3.15 har dockingprocessen en enkelt entryfunktion, SkrivTilPC. Ud fra funktionsoversigten fremkommer moduldiagrammet 3.16 på næste side der viser, at dockingprocessen består af et enkelt modul: Kommunikation med PC. I tabel 3.13 og 3.14 findes modul- og funktionsspecifikation for Docking. Delkonklusion Igennem dette afsnit er konstrueret funktionsdiagrammer og moduldiagrammer for hver enkelt proces; disse er beregnet til at forbedre overblikket ved at se entryfunktionerne i kontekst med resten af systemet. Modulspecifikationen giver læseren og programmøren

35 Design af diktafon 23 S%TU V=W XY ZJT[#[B\XW V=] ^W TX#[B_` a3b cw d efge1^ _[ Figur 3.16: Moduldiagram over processen Docking. Modulnavn Hovedfunktion Entryfunktioner Kommunikation med PC Overføre data til PC. SkrivTilPC Fejlområde 60 til 69 Tabel 3.13: Modulspecifikation for Docking. Navn Input Beskrivelse Output SkrivTilPC filnavn [int] Overfører det valgte taledata til PC. 0 ved OK Tabel 3.14: Funktionsspecifikation for Docking.

36 24 Designfase et indblik i hvilke entryfunktioner, der er indeholdt i de enkelte moduler. Funktionsspecifikationen giver læseren og programmøren et indblik i entryfunktionerne, der er indeholdt i de enkelte processer, så de for programmøren er umiddelbart klar til kodning.

37 Design af diktafon Hovedløkke for diktafon Som nævnt i ovenfor anførte delkonklusion, er de indtil nu designede funktioner entryfunktioner, som kan kaldes af andre moduler/funktioner udenfor selve modulet. For at få udført meningsfulde operationer med diktafonen, skal modulerne sammenkobles sekventielt i henhold til den valgte operation. Endeligt skal diktafonen indeholde muligheden for valg af samtlige operationer krævet i kravspecifikationen, uden at disse kommer i konflikt med hinanden. Dette minder om et styresystem, og er det også i nogen grad. Dog er det ikke indenfor dette projekts emneområde at udarbejde et styresystem efter gældende konventioner, hvorfor der udvikles dedikeret software til diktafonen; denne software omtales som hovedløkken. Hovedløkken indeholder en række sekventielt opbyggede funktionskald, der kaldes på baggrund af et knaptryk eller en returværdi fra en afsluttet funktionsudførelse, såsom en fejlmeddelelse. Fejlmeddelelser returnerer en negativ værdi der svarer til en bestemt type fejl. Fejlens konsekvenser udføres gennem en fejlhåndteringsrutine og fejlnummeret udlæses på display. Denne fejlhåndtering er udeladt i figurerne 3.17 til 3.20 på side 29 for overskuelighedens skyld. Flowchart over hovedløkken Hovedløkken er det overordnede modul, der udgør interfacet modulerne imellem. Derfor er det også hovedløkken, der forestår prioriteringen af diverse rutinekald, der ikke er interruptstyrede. For at få et overblik over hovedløkken vises i det efterfølgende fire flowcharts (figur 3.17 på næste side til 3.20 på side 29), hvor det første viser det yderste, overordnede niveau i hovedløkkestrukturen, og de resterende viser de tre modes optag, afspil og docking. En kasse indeholdende navnet på en entryfunktion angiver et funktionskald til den pågældende entryfunktion, f.eks. HentFilLaengde. Derudover kan kasser også tildele globale variable værdier til brug i en senere beslutning i programmet, f.eks. start = 1. Beslutninger illustreres ved en rhombe, og kan bestå af knaptryk eller undersøgelser om de globale variables aktuelle værdi. Begge beslutninger resulterer i et valg af en bestemt rute i programmet (flowchartet). Flowchart figur 3.17 er undtagelsen; herom forklares kasserne efterfølgende. På figur 3.17 på næste side betyder en kasse ikke een bestemt type handling, blot den handling teksten indeholdt i kassen forklarer. F.eks. ses at under opstart af diktafonen initialiseres diverse hardware- og softwareelementer, såsom placering af vektorrutiner til knapperne, opsætning af display, ADC/DAC samt tildeling af værdier til globale variable. Herefter viser displayet opstartsskærmen Digital Diktafon version x.x.x. Dernæst fortsætter hovedløkken til optagemode, og ved et tryk på modeknappen til afspillemode, og til sidst dockingmode. Før hvert gennemløb af hovedløkken opdateres displayet, hvilket ikke vises direkte på figuren. På denne måde sikres en kontinuert opdatering, der registrerer samtlige ændringer med en tidsforsinkelse svarende til et programgennemløb. I Dockingmode tilføjes en ekstra sikkerhed udover hovedløkken, for at sikre en overførsel uden afbrydelse.

38 26 Designfase } r ~J u %i h ï j k lm3n h i j k lon pj q r s q k ẗ uvk q w x/uvyzj { q s k t y r q s j y r ƒ r wj ï y r Figur 3.17: Flowchart 1 af 4 over hovedløkken.

39 ½» Design af diktafon 27 ˆŠ ŒŽ 5 5 Œ š 1 œ ž Ÿ šž ž š ¾ ¹ 0³g ª¼ Ÿ, ª «À,µ 0ž Á¼ š ˆŠ ŒŽ š žš š± Ÿ š v žš = 4 ª/ Ÿ š ˆŠ ŒŽ 0 4 ª/ª ² ž 4 š ³5 žš š 5µ œ 1 š žš š± Ÿ, ž š ª# ˆŠ ŒŽ š žš ¹ 0 Ÿ, ž ž ª#º Ÿ ž ˆŠ ŒŽ Ž Ÿ, šž Ÿ šž ž š ¾ ¹ 0³5 ª «Figur 3.18: Flowchart 2 af 4 over hovedløkken.

40 á è Ý 28 Designfase ŠÃÄ5Å Æ ÇšÈ É Ê,Ë Ì,ÍŠÎ1Ï Å Æ Ç È Ð Ñ ÒšÓ Ô ØÙ Õ Ö Æ Ô Ì å Ä0Ô Ãß Ã Ü¼ú Õ Ö Ó ÖšÜ û ÆšêÑ0ÃÒ ü ýþæ Ç È ÚÛ Ø Â ÃÄ5ÅŽÆ Ç È É Ê,Ë1Ì,ÍŠÎ Ô ß Ó à0ï Ì Ó âšè ÒãgÃß ä å Ãß Ò æ Õ Ö Ó Ö Ì å ÄÔ,Ãß Ä Ö Ó Ö Ü/ç Õ Ö Ó Ö ØÙ Ä Ö Óš Ö Ü/Ü ÂŠÃÄ5Å Æ ÇšÈ É Ê Ë1Ì,Í Î Ô Ó ÿ Ä0È Ï Õ Ö Æ ÔšÌ å Ä0Ô Ãß Ä Ö Ó Ö Ü/ú ÚšÛ Ø ÂŠÃÄ5Å Æ ÇšÈ É Ê Ë Ì Í Î1Ô ß Ó à0ï Õ Ö Ó Ö Ì å ÄÔ,Ãß Ä Ö Ó Ö Ü/ç Õ,Ö Æ Ô ØÙ ŠÃÄ5Å Æ ÇšÈ É Ê Ë Ì ÍŠÎ Õ,Ö Æ Ô Ï Õ Ö Æ ÔšÌ å Ä0Ô Ãß Ä Ö Ó Ö ÜÞÝ ÚÛ Ø é5 Ó êñ íî ï ð0ñ òó ØÙ Õ,Ö Æ ÔšÌ å Ä0Ô Ãß Õ Ö Óš Ö ÜÞÝ ë È Ò Ö Ì Ò Ö Ó ß ã5ãß È ôõ ðö4 0ðö 0ï ø ØÙ å Ãß Ò 4ìì ù î ï õ ñ ÚÛ Ø ÚÛ Ø å Ãß Ò ÜÞÝ Figur 3.19: Flowchart 3 af 4 over hovedløkken.

41 A Design af diktafon 29 $C% -_V 4*!-.? 5* #]^,* + (! Z[\ &' $ "! #! $%,*!-.- / 0# *76 ()"* +, 8:9 *#<; &' $ *!0= * 8<9 *#7; 9 *#7: >*!-@? 5* #1,* + HJIKL,M N,O 3 #7B $C% 4*!-.? D! E! * = *# PQ LRJS,LRJS,K T $0% 9 *#7FGF U IKQ M &' $ &' $ 9 *# -WV!! Y! $ * $C% 5 ()" * 3 #<+G "! # 4*!-XV &' Figur 3.20: Flowchart 4 af 4 over hovedløkken.

42 30 Designfase Ud fra disse afsnit kodes hovedløkken. Kodningen foregår trinvis gennem integrationstesten D, hvormed samspillet mellem de enkelte moduler sikres Konklusion på design af diktafon Igennem design af diktafonen er gennemgået et produktdesign, procesdesign samt et design af hovedløkken. Produktdesign og den overordnede del af procesdesign benyttes primært til at få overblik over entryfunktionerne i en kontekst, samt for at få designet samtlige entryfunktioner. Funktionsspecifikationerne i den sidste del af Procesdesign giver et indblik i entryfunktionernes indhold grupperet for hver proces. Hovedløkken der sammenslutter entryfunktionerne sekventielt i diktafonen, giver læseren et indblik i hvorledes det samlede system arbejder, og giver programmøren et godt værktøj til selve programmeringen. 3.2 Design af PC-program I den samlede software til diktafonen indgår både den del der styrer hardwaren i selve diktafonen og forsyner apparatet med et brugerinterface samt en del som ligger på brugerens PC, der skal håndtere opgaver i forbindelse med docking. PC-softwaren skrives til Linux, da kurset i C-programmering på semestret tager udgangspunkt i Unix/Linux. Diktafonen skal virke med gruppens egne workstations, hvorfor Linux er valgt frem for Unix. Programmet skal tjene følgende to formål: Modtage lydfiler fra diktafonen. Konvertere modtagne lydfiler til waveformat. Til design af PC-programmet er brugt samme designmetode som ved designet af diktafonen Programdesign På figur 3.21 på modstående side vises PC-programmet i kontekst med brugeren, og diktafonen i docking-tilstand. Pilene fra brugeren til diktafonen, og fra brugeren til PC markerer de eksterne grænseflader. Brugeren har på diktafonen mulighed for at ændre track nr, starte en overførsel, slette et track eller afslutte modtagetilstanden på PC en. På PC en er der mulighed for at sætte programmet i modtagetilstand, for derved at modtage data og gemme dataene i en fil, eller konvertere en fil til waveformat. Efterfølgende afsnit omhandler den højre halvdel af figuren, PC en og kommunikationen med bruger og diktafon. Diktafonen og dennes dockingtilstand behandles i det omfang det er nødvendigt for at gennemgå modtagefunktionen på PC en. I overensstemmelse med de øvrige designafsnit er på figur 3.22 på næste side udarbejdet et dataflowdiagram for PC-programmet. Diagrammet viser de interne grænseflader i programmet og de enkelte processers tilgang til filer. I tabel 3.15 på side 32 ses guiden for dataflowdiagrammet.

43 Design af PC-program 31 Bruger Play(overfør) Stop / Slet Modtag Konvertér Diktafon Overførsel PC Figur 3.21: Kontekstdiagram over PC-programmet. kvp r i}hdkdvh w q f odpdq ` adc c kdh a {(pdh f yzu{ si}hdkdvlh { a m kdo `ba hdvlpdq m dq ~ ijlm kdr a h a ƒ m kdq:m m ad vlpdq:r sq: lpd} `badcecefdg hdijlkdm ia h ˆ p c yzu{ r i} x pdhdmdyzu{ r i} kdvp g j a hdv4pdq g m pdq:ihdo ˆ p c tukvlp(r i} kdvp r i}pdq m i}4šdq f o w q f odpdq n kdodpqr a qsyzu{ n kdodpdqsr a qstukdvlp Figur 3.22: Dataflowdiagram for PC-programmet Procesdesign Der kan udfra analysen i ovenstående produktdesign opstilles en funktionsoversigt for processerne i PC-programmet. Det er valgt kun at gøre dette for menuen, hvorefter underfunktionerne vil blive beskrevet. Figur 3.23 på næste side viser et funktionsdiagram for menuen, og tabel 3.16 og 3.17 viser funktionsspecifikationerne for henholdsvis modtagefunktionen (Receive) og konverteringsfunktionen (WavConvert) Hovedløkke for PC-program Som i designet af softwaren til diktafonen, skal underfunktionerne kædes sammen, hvilket gøres af menuprogrammet. På figur 3.24 på side 33 ses flowchartet for hovedløkken. Vælges en underfunktion udføres denne, og såfremt der ikke meldes fejl, vender løkken tilbage til menuen uden fejlbesked. Ved fejl specificeres denne ved udskrift på skærmen. Flowcharts for de to underfunktioner ses på henholdsvis figur 3.25 på side 34 og 3.26 på side 35.

44 32 Designfase Menu Kommunikation Wavekonvertering Lager for PCM Lager for wave I menuen kan brugeren vælge mellem de forskellige underfunktioner (Receive og WavConvert). Henter data fra diktafonen og gemmer disse i en fil. Konvertere en fil fra PCMformat til waveformat. Her lagres PCMfiler. Her lagres wavefiler. Tabel 3.15: Dataflowguide for PC-programmet. Menu Modtag Konvertér Figur 3.23: Funktionsdiagram for PC-programmet. Funktionsnavn Input Beskrivelse Output Fejl Receive Data fra diktafonen, filnavn fra bruger Modtager en fil og gemmer denne under et valgt filnavn PCM fil [Negativ int] Tabel 3.16: Funktionsspecifikationerne for funktionen Modtag. Funktionsnavn Input Beskrivelse Output Fejl WavConvert PCM fil, filnavn fra bruger Konvertere en fil af PCM format til en fil af waveformat og gemmer denne under et valgt filnavn Wave fil [Negativ int] Tabel 3.17: Funktionsspecifikationerne for funktionen Konverter.

45 Design af PC-program 33 Start program "PCPRG_MENU" Fejl JA Modtage fil JA Recieve Fejl NEJ NEJ JA Konverter fil JA WavConvert Fejl NEJ NEJ Afslutte JA Lukprogram Figur 3.24: Flowchart for PC-programmets menu.

46 34 Designfase Fra menu "PCPRG_MODTAG" tid < 15s NEJ Fejl Menu JA Modtag 1 byte "STOP" NEJ JA Indtast navn Fejl JA NEJ Gem fil Figur 3.25: Flowchart for PC-programmets modtagefunktion Receive.

47 Design af PC-program 35 b Ÿ ž Ÿ^ ŒŽ 4 ] ŒŽ, Ž 0 œ Ÿ^šœ Ÿ Ÿ ŒŽ 4 ] Ž ^šb œ\ž Ÿ^ 7 l u Ÿ œjÿ l7ÿ ª«œl Ÿ ^ l ¹ ŒŽ 4 ] Ž Figur 3.26: Flowchart for PC-programmets konverteringsfunktion WavConvert.

48 36 Designfase Ud fra de udarbejdede flowcharts programmeres PC-programmet, som det beskrives i afsnit Konklusion på designafsnit I dette kapitel er designet diktafonen og PC-programmet med de to hovedformål at give læseren overblik over hvorledes begge enheder arbejder, samt at danne et godt udgangspunkt for programmøren under selve den efterfølgende kodning af programmerne. Sammenholdes designafsnittet med kravspecifikationen i afsnit 2.1 på side 4 ses det, at de programrelevante punkter i kravspecifikationen er designet: Opdeling af lagerkapacitet i flere optagelser. Optagelser skal kunne slettes på den mobile enhed. Start/stop/pause. Skifte mellem optagelser. Filformat på PC (wav). Enkelte mere hardwaremæssige krav medtages i det efterfølgende hardwaredesign, kapitel 4.

49 4 Hardwaredesign For at møde de tidligere i rapporten opstillede krav vil følgende hardwaremoduler være nødvendige: Microprocessorsystem med lagerkapacitiet til den optagne lyd, samt mulighed for overførsel til PC. Optageenhed bestående af mikrofon, forstærker, AGC, filter, samt ADC. Afspilleenhed bestående af DAC, filter, forstærker samt højttaler. Knapper til kontrol af diktafonens funktioner. Display for udlæsning af status. Design af disse fire moduler bliver gennemgået i de følgende afsnit. 4.1 Minimumsystem Afsnittet er baseret på (Clements, 1997). Platformen for den konstruerede diktafon bliver et system opbygget omkring en Motorola 68HC000 processor (CD-ROM,, datablade/mc68000um.pdf), som clockes til 8 Mhz, vha. en krystalclock af typen MCO1425B. I første omgang designes og konstrueres et minimumsystem, som skal kunne fungere med debugger/monitor programmet TS2MON version Til dette minimumsystem hører følgende moduler: Resetkredsløb. NMI-knap 2. Interrupt-controller. Seriel kommunikation. Adressedekodning. DTACK-generator. VPA-generator. 1 Version modificeret af Sofus Birkedal Nielsen, Afdeling for akustik, Aalborg Universitet 2 NMI: Non-maskable interrupt

50 38 Hardwaredesign Resetkredsløb Ved powerup skal HALT- og RESET-indgangene på processoren asserteres i min. 100 ms. For at opnå dette benyttes voltage-supervisor-kredsen TL7705A. På baggrund af applikationsnoterne i databladet (CD-ROM,, datablade/tl7705.pdf) konstrueres kredsløbet i figur 4.1. Størrelsen af C 1, samt følgende udtryk for størrelsen af C 2 er givet i databladet: C 2 º t d t d er den ønskede forsinkelse i sekunder, som her sættes til 0» 2s, hvorved C 2 findes til 15» 4µF. I praksis er brugt en kondensator på 22µF, hvilket giver et delay på 0 28s. Denne ekstra forsinkelse betyder ikke noget for systemet, og er ikke mærkbar for brugeren. Vcc Vcc R9 50k Vcc ¼u½G¾" "À ÁGÂÃÄÀ uåg ÆÄÇÈÀ uåg ÆuÁÉ Ê"ËÃ SEN REF CT RESIN U1 TL7705A RST RST 5 6 R7 10k D4 D5 R8 10k 1 2 C1 100n C2 22u R10 50k Figur 4.1: Powerup-reset-kredsløb, med manuel reset knap NMI-knap M68k-processoren har tre interruptindgange, der tillader interrupts på syv niveauer ud over niveau 0, som er normal operation. De seks laveste niveauer er maskerbare, og det kan således lade sig gøre at blokere dem, så kun et interrupt af højere niveau slipper igennem. Niveau syv er ikke maskerbart, og vil således altid afbryde den igangværende proces. TS2MON udnytter denne egenskab til at afbryde brugerprogrammer, hvis de går i stå under afvikling. En knap der udløser et interrupt på niveau syv indbygges i systemet, og TS2MON indeholder en exception handling rutine, der gemmer status for det igangværende brugerprogram, hvorefter dette afbrydes, og der returneres til TS2MON. Da NMI-knappen ikke leverer en vektor til M68k-processoren må et autovektoriseret interrupt benyttes. For at markere dette skal VPA_ indgangen asserteres som svar på processorens interrupt aknowledge (Clements, 1997, afsnit 6), asserteringen

51 Minimumsystem 39 af function-code udgangene FC0-FC2 og AS_. Disse fire samles i en AND-gate (AS_ inverteret) med signalet fra NMI-knappen og chip-select til ACIA en, som inverteres ved indgangen til gaten. Forkortet giver det følgende udtryk for VPA_: VPA_ º CS_ACIA & Ì NMI_ # AS_ #!FC0 #!FC1 #!FC2Í Dette medfører at VPA_ asserteres enten ved interrupt fra NMI-knappen for at markere brugen af et autovektoriseret interrupt, eller ved et chip-select til ACIA en, for at markere begyndelsen på en asynkron read-cycle. Ved at inkludere input fra NMI-knappen i gaten undgås problemer ved brug af vektoriserede interrupts, som kræver assertering af DTACK_ i stedet for VPA_, se evt. afsnit Interrupt-controller For at styre interrupts fra NMI-knappen og andre interruptstyrede enheder, implementeres en interrupt-controller i systemet. Denne realiseres vha. en 74LS138 prioritetsdekoder (3 til 8 linier), en 74LS148 prioritetsenkoder (8 til 3 linier; datablade findes på (CD-ROM,, datablade/)), samt logik i en PLD. Enkoderen 74LS148 sørger for at omsætte et interrupt-request (IRQ) fra en enhed til den korrekte værdi på processorens IPL 0 -IPL 2 3 ben. I en PLD samles de tre function-code ben, som, når de alle er asserterede, markerer at processoren har påbegyndt en interrupt-acknowledge (IACK) sekvens. IACK-signalet, der genereres i førnævnte PLD, bruges som enable på 74LS138 dekoderen, som yderligere får tilført adressebenene A 1 -A 3. På disse tre adresseben returnerer processoren niveauet af det interrupt der er under behandling, og i dekoderen benyttes de til at generere niveau-specifikke IACK-signaler til de perifære enheder Seriel kommunikation TS2MON-programmet er designet til at benytte en M6850 ACIA til seriel kommunikation med en PC. Til denne kobles hjælpekredsene MC14411 og MAX232. MC14411 er en baudrate-generator, der med en ekstern krystal på MHz kan levere clockinput til M6850 for transmissionshastigheder mellem 0 og Baud. MAX232 er en linedriver til brug ved RS232 kommunikation. M6850 ACIA ens output ligger på TTL-niveau, mens der i RS232 standarden foreskrives et logisk højt niveau på mellem 5V og 15V, og et logisk lavt niveau på mellem 5V og 15V. MAX232 kredsen løser dette problem ved at give outputs på hhv. 10V og 10V, ved forsyning på 5V. Kommunikationen foregår som programmeret I/O, og ACIA ens IRQ-udgang benyttes således ikke. I stedet poller TS2MON-programmet på RDRF (Recieved Data Register Full), som er den bit i ACIA ens statusregister, der fortæller hvornår ny data står klar til processoren, og tilsvarende på TDRE (Transmit Data Register Empty) ved output. Som nævnt i afsnittet omkring NMI-knappen, skal en ACIA af M6850-typen tilgås ved en synkron read-cycle. For at imødekomme denne egenskab ved ACIA en genereres chipselect til denne af to omgange. En synkron read-cycle på et M68k-system startes ved at 3 Interrupt Priority Level

52 40 Hardwaredesign assertere VPA_ på DTACK_ s plads i en normal read-cycle. Når adressedekoderen således adresserer ACIA en, benyttes det genererede chip-select i første omgang til at assertere VPA_. Efter processoren har registreret VPA_, asserterer den VMA_ for at markere at en synkron read-cycle er gået i gang. Dette kontrolsignal AND es herefter i PLD en markeret DTACK-generator med den tidligere genererede chip-select, og sendes til ACIA en. Selve overførslen af data foregår synkroniseret efter M68k-processorens E- clock, som kører med 10 1 af processorens clock, hvilket giver 800kHz. Som udgangspunkt foregår kommunikationen med en overførselshastighed på 9600 baud, men denne ønskes senere, i forbindelse med overførsel af lyddata, hævet til serielportens maksimale hastighed på baud Adressedekoder Adressedekoderens funktion i minimumsystemet er at dekode de adresser der lægges ud på adressebussen af M68k. Herved adresseres kun den enhed M68k-processoren ønsker at skrive til eller læse fra, alt efter hvilken proces der udføres. For at TS2MON kan fungere, skal følgende opfyldes af adressedekoderen: ROM til TS2MON på adresse 0x0 til 0x1200. RAM til TS2MON på adresse 0x40000 til 0x40FFF. M6850 ACIA til seriel kommunikation på adresserne 0x og 0x Endvidere stilles følgende krav: Adressere ROM til brugerens eget program. Adressere RAM til brugerens eget program. Adressere ADC, DAC og display. Ikke adressere nogle enheder under IACK-sekvens 4. Adressedekoderen programmeres i en PLD af typen PEEL 22CV10A (CD-ROM,, datablade/22cv10a.pdf). Analyse M68k-processoren kan adressere i adresseområdet 0x0 til 0xFFFFFF, og der kan udfra ovenstående krav opstilles et memorymap, der viser fordelingen af adresserne til ROM, RAM, ACIA og andet. Dette ses i tabel Denne begrænsning bliver nødvendig, fordi knapper og ADC/DAC skal bruge interrupts, og alle adressebenene over A 3 sættes høje under IACK_

53 Minimumsystem 41 0 ROM til TS2MON 0x ROM 0x40000 RAM til TS2MON 0x40FFF RAM1 0x TOM 0x x x x xFFFFFF RAM2 TOM ACIA ACIA PER Tabel 4.1: Memorymap for minimumsystem. Da M68k har adressebenene A 1 til A 23 kan den tilgå 8 mio. words (2 23 ), men i det aktuelle system bruges 2 ROM-moduler af typen AM28F010A (CD-ROM,, databllade/am28f010a.pdf), og 4 RAM-moduler af typen HM628512A (CD-ROM,, datablade/hm628512a.pdf), der hver især skal tilgås på byteniveau. Dette gør M68k ved at bruge lower datastrobe (LDS_) og upper datastrobe (UDS_), og skal der læses fra eller skrives til et word asserteres både LDS_ og UDS_. I tabel 4.1 udgør blokken ROM derfor 2 ROM-moduler og blokkene RAM1 og RAM2 udgør 2 RAM-moduler hver. ACIA en skal adresseres på adresserne 0x og 0x for at TS2MON fungerer, hvilket også er illustreret på memorymap. ADC, DAC og display ligges i den efterfølgende blok, PER (perifære enheder). De 2 blokke TOM indeholder ingen enheder der skal adresseres, men er tilstede for at simplificere adressedekodningen. En sandhedstabel for adressedekodningen ses på tabel 4.2. Navn A23 A22 A21 A20 A19 A18 ROM RAM RAM ACIA ADC/DAC DISP Tabel 4.2: Sandhedstabel for adressedekodningen af M68k.

54 42 Hardwaredesign Det bemærkes at der mindst skal være et ben asserteret for RAM1. Dette skyldes at TS2MON skal bruge RAM i adresseområdet 0x40000 til 0x40FFF, hvilket betyder at adresseringen af RAM1 skal starte umiddelbart efter adresseområdet for ROM en, og muligheden for at bruge et adresseben med en højere værdi på M68k er derfor udelukket. Indramningen af benene A 18 til A 20 ved RAM1 indikerer at denne blok chip-selectes når udtrykket A 20 # A 19 # A 18 º 1. Denne metode er valgt fordi RAM1 ligger fra adresse 0x40000, hvor A 18 netop er gået højt ; RAM1 strækker sig fra denne adresse og til 0x140000, men for at gøre dekodningen simplere flyttes RAM2 så den først begynder ved 0x200000, og således kan adresseres udelukkende ved brug af A 21 -A 23. Brugen af A 20 betyder at adresserne i det tomme område mellem 0x og 0x spejles til RAM1, så en adressering af f.eks. 0x resulterer i at der læses til eller skrives fra 0x På samme måde spejles adresseringer i det tomme område fra 0x fra 0x til RAM2, da kun A 21 og højere har nogen betydning for chipselect til RAM2. Ved adresser over 0x asserteres ben A 22 og derover, og spejlingen ophører. Design På figur 4.2 ses hvorledes adressedekoderen opbygges. På figuren er AS_, LDS_ og UDS_ medtaget. Dette logiske kredsløb implementeres i minimumsystemet i en PLDkreds med følgende input og output: Input A 18 til A 23 AS_ LDS_ og UDS_ FUNCT ION De 6 øverste adresseben fra M68k. Adressestroben, som markerer at en adresse er klar til aflæsning før adressebenene kan læses. Datastrobene der vælger øvre databyte, nedre databyte eller dem begge (dataword). Function-code 0-2 AND et. Markerer IACK, og bruges til at hindre chip-select under afvikling af interrupts. Output ROM1_ og ROM2_ RAM1_ og RAM2_ RAM3_ og RAM4_ ACIA_ ADC_, DAC og DISP Chip-select af ROM-modulerne Chip-select af RAM1-modulerne Chip-select af RAM2-modulerne Chip-select af ACIA en Chip-select af henholdsvis ADC en, DAC en og displayet

55 Minimumsystem 43 A23 A22 A21 A20 A19 A18 UDS_ LDS_ AS_ FUNCTION ROM1_ ROM2_ RAM1_ RAM2_ RAM3_ RAM4_ ACIA_ ADC_ DAC_ Figur 4.2: Adressedekoderens opbygning.

56 Î Î 44 Hardwaredesign Programmet for PLD-kredsen kan findes på vedlagte CD-ROM (CD-ROM,, pld_adressedec/) DTACK-generator Det følgende afsnit om DTACK-generatoren er baseret på (Clements, 1997, afsnit 4.1). Formålet med DTACK_ (Data Transfer ACKnowledge) er at fortælle M68k-processoren, at data kan læses fra eller skrives til en given enhed. Modtages ingen DTACK_, bliver der indsat waitstates af processoren indtil der kommer et DTACK_, eller der genereres et fejlsignal. Visse enheder kan selv generere et DTACK_ til processoren, men til de som ikke har denne egenskab skal der automatisk genereres et. Det er muligt direkte ud fra CS_ at generere et DTACK_, men hvis de enheder der tilsluttes processoren ikke er hurtige nok, er det nødvendigt at forsinke DTACK_, så der bliver indsat waitstates, og enheden kan nå at blive klar. Følgende krav stilles til M68k-processorens eksterne enheder og DTACK-generatoren hvis der ikke ønskes waitstates indsat: Enheden der læses fra skal være sat op t_daldi inden S4 går lav og først negeres t_shdi efter AS_ og DS_ negeres (figur 4.3, og 4.3). Enheden der skrives til skal latche dataene inden M68k-processoren fjerner dem fra bussen (t_slì wí ). DTACK_ skal asserteres t_asi før S4 går lav. DTACK_ skal negeres t_shdah efter AS_ og DS_ negeres. Figur 4.3 er et udsnit af billedet (Clements, 1997, side 226) CLK AS_ S6 S7 S0 S1 S2 S3 S4 S5 S6 S7 S0 S1 UDS_, LDS_ t_slcl6 DTACK_ t_asi t_shdah Data input from memory t_daldi Data valid t_shdi Figur 4.3: Timing-diagram for en M68k read-cycle. Analyse Den tid der er til rådighed, for en ekstern enhed at sættes op, er for en readcycle givet ved: Î Ï Ð Ò Õ Ó Ï Ð Ò Õ t_slcl6 t_cyc 3Ñ 5 t_dicl ÓÒÔÏ t_cyc t_chsl 125ns 3Ñ 5 15nsÓÒÖÏ 125ns 60nsÓ 237Ñ 5ns

57 Minimumsystem 45 Ì Parameter Name Symbol Minimum Maximum Asynchronous input setup time (DTACK_ setup) t_asi 10 DTACK_ low to data in setup time t_daldi 90 DS_ high to data invalid (data hold time) t_shdi 0 AS_, DS_ negated to DTACK_ negated (asynchronous t_shdah hold) DS_ asserted in write cycle t_sl wí 140 Clock high to AS_ DS_ low t_chsl 3 60 Data in to clock low t_dicl 15 cycle time t_cyc Tabel 4.3: Udsnit af tabel 4.4 og 4.7 i (Clements, 1997, side 227 og side 237). Alle tider er angivet i ns. hvor t_slcl6 er tiden fra data- og adresse-strobe asserteres, til dataene latches af M68kprocessoren, når S6 går lav (se figur 4.3). På den tid skal adressedekoderen vælge en enhed og enheden skal sættes op. Da forsinkelsen gennem adressedekoderen er på 10 ns[*note *] og der anvendes endnu en PLD, der giver yderligere 10 ns forsinkelse, til hastighed? ref til databl DTACK-generatoren, er der ns til at sætte enheden op, hvilket i de fleste tilfælde er tilstrækkeligt. Anvendes CS_ til at latche[*note *] dataene fra M68k-processoren, under en write-cycle, er der et vindue på minimum t_sl Ì wí º 140 ns (figur 4.4), hvor enheden der skrives til har mulighed for at latche dataene. latche? låse i stedet? CLK AS_ S6 S7 S0 S1 S2 S3 S4 S5 S6 S7 S0 S1 UDS_, LDS_ t_sl(w) DTACK_ t_asi t_shdah Figur 4.4: Timing-diagram for en M68k write-cycle. Figuren er et udsnit af billedet på s. 236 i (Clements, 1997) En ekstern enhed har altså 237Ñ 5ns til at sætte data op under en read-cycle og 140ns til at latche data under en write-cycle. Da den eneste af de komponenter der anvendes i diktafonsystemet, der ikke er hurtig nok til at opfylde disse tider, er displayet, forsinkes DTACK_ til denne enhed uafhængigt af DTACK-generatoren (se afsnit 4.4). Design Da DTACK_ er aktiv lav, kan det genereres ud fra chip-select til alle enhederne - undtagen ACIA en der ikke skal have et DTACK_ - AND et. Til at udføre denne opgave vælges en PEEL 22CV10A, da det således er muligt at udbygge systemet med ekstra logik,

58 46 Hardwaredesign hvis det er nødvendigt. ABEL-koden til DTACK-generatoren findes på CD-ROM en (CD-ROM,, pld_dtack/) 4.2 Optage- og afspilleenhed For at gemme et analogt talesignal i en digital diktafon er det nødvendigt med en transducer i form af en mikrofon som transformerer det akustiske signal om til et tilsvarende elektrisk signal. Det analoge elektriske signal skal herefter omsættes til digital form med en A/D-konverter (ADC). Figur 4.5 viser signalflowet for konverteringen af akustisk energi til et digitalt signal. På digital form er det muligt at gemme signalet i diktafonens lager for senere afspilning. Ved afspilning af talesignalet fra diktafonens lager skal signalet konverteres tilbage til analog form med en D/A-konverter (DAC) og derefter transformeres med en transducer til akustisk energi. Figur 4.6 viser signalflowet, og danner grundlag for indelingen af det følgende afsnit. Akustisk signal Mikrofon Forstærker Filter AGC A/D Digital signal Figur 4.5: Signalflowet fra et akustisk signal til et digital signal. Digitalt signal DAC Effek forstærker Rekonst.- filter Akustisk signal Højttaler Figur 4.6: Signalflowet fra et digital signal til et akustisk signal. Talesignal Det er nødvendigt at kende amplitude- og frekvenskarakteristik for den type signal der ønskes A/D- og D/A-konverteret, for at sikre at der ikke mistes væsentlige dele af signalet og det kan gengives igen med en ønsket kvalitet. I forbindelse med telefoni anvendes ofte en samplingsfrekvens på 8 khz, hvilket, ifølge Nyquist s samplingsteori, (formel 4.1) medfører en Nyquistfrekvens på 4 khz, som er den højeste frekvens der kan samples korrekt ved en A/D konvertering.(oppenheim and Schafer, 1999, side 146). f sample 2 f Nyquist (4.1)

59 Ø Optage- og afspilleenhed 47 Ved en A/D konvertering bliver signalets amplitude kvantiseret mellem to referencer. Det er derfor vigtigt at signalet ikke ligger uden for referencerne samtidig med at intervallet mellem referencerne så vidt muligt udnyttes fuldt ud, således at kvantiseringsstøjen i forhold til signalet mindskes. Samplingsfrekvens Det hørbare område angives normalt til at være fra 20 Hz til 20 khz. Samplingsfrekvensen for musik en musik CD er 44 1kHz (Ebert, 1995, side 689) og ifølge Nyquists samplingsteori giver det mulighed for at gengive frekvenser til og med khz hvilket i praksis betyder at der kan gengives frekvenser op til 20kHz idet frekvensfiltre har et overgangsområde hvor filtret starter med at dæmpe. For at sikre at signalet er tilstrækkeligt dæmpet ved Nyquistfrekvensen på khz, sættes knækfrekvensen derfor lavere. For at opnå telefonkvalitet er det nødvendigt minimum at sample med en frekvens på 8 khz(digitized Sound - Notes on Digitized Sound, 2002). Denne frekvens er tilstrækkelig, da hovedparten af signalet ligger under 4 khz. Aliasing er en situation, hvor højfrekvente signaler overføres til det lavfrekvente område. For talesignaler anvendes frekvensområdet op til 4kHz, men talesignalet kan sagtens have signaler med frekvenser i området 4kHz til 20kHz. Disse situationer med aliasing opstår, hvor signaler ikke er båndbegrænsede. Information om aliasing er taget fra (Oppenheim and Schafer, 1999, afsnit 4.8). I det tilfælde aliasing opstår og ønskes fjernet, sker dette ved at båndbegrænse signalet til mindre end det halve af samplingsfrekvensen. Dette sker ved lavpasfiltrering af det kontinuerte tidssignal til C/D konverteren, som repræsenterer kasserne med "Antialiasingfilter", "Sample og Hold"og "A/D konverter- (figur 4.7). C/D Discretetime system (a) D/C Antialiasing filter Sample and Hold A/D converter Discretetime system D/A converter Compensated reconstruction filter (b) Figur 4.7: (a) Tidsdiskret filtrering af kontinuerte tidssignaler. (b) Digital processering af analoge signaler. For antialiasingfilteret vil den ideelle frekvensrespons være: H aa Ì jωí º Ù Ú Ù» 1 ΩÙuÚ Ω c π T 0 ΩÙuÛ Ω c

60 º Ø 48 Hardwaredesign x (t) c Antialiasing filter H aa(j ) C/D Discrete-time system x a(t) x[n] y[n] D/C y (t) r Figur 4.8: Illustration af princippet for antialiasing Signalet fra udgangen på antialiasing filteret x a Ì tí til udgangen på D/C-konverteren y r Ì tí vil opføres sig som et lineært tidskonstant system, da indgangssignalet til C/Dkonverteren, x a Ì tí, båndbegrænses til frekvenser under π T af antialiasingfilteret. Derved kan der findes en effektiv frekvensrespons fra x a Ì tí til y r Ì tí H e f f Ì jωí º Ì Í Ù Ù» H e jωt ΩÙ5Ú Ω c 0 ΩÙ Û Ω c (4.2) For et ideelt antialiasingfilter vil systemet opføre sig som et lineært tidskonstant system med en frekvensrespons, formel 4.2. I praksis vil frekvensresponsen H aa Ì jωí ikke kunne båndbegrænses ideelt, men H aa Ì jωí vil kunne reduceres for Ω c Û π T, så aliasing mindskes. Derved kan frekvensresponsen for systemet beskrives ved: H e f f Ì jωí H aa Ì jωí HÌ e jωt Í Antialiasing filter kan realiseres ved brug af ektive netværk og integrerede kredse. A/D-konverter A/D-konverterens funktion er at konvertere det analoge indgangssignal til en tidsdiskret digital representation ved en given samplingsfrekvens og kvantisering. En A/D-konverter på n bit kan opdele intervallet mellem dens referencer i 2 n kvantiseringsdele ( ). En 8 bit A/D konverter kan således inddele et signal i 2 8 º 256 kvanter, forudsat signalet fylder hele intervallet. Når signalets amplitude kvantiseres i A/Dkonverteren vil der være en difference mellem den analoge og digitale værdi. Denne difference svarer til støj som bliver adderet i forbindelse med konverteringen. På figur 4.9 på næste side ses en illustration af hvorledes kvantiseringsstøjen opstår. Spidsværdien af kvantiseringsstøjen svarer netop til et enkelt spring ( ) i A/D-konverteren. Signal/støj forholdet (SNR) for kvantiseringsstøjen kan udtrykkes og opdeles som i formel 4.3 SNR º v sü e f f v nü e f f v sü e f f v sü pp v sü pp v nü pp v nü pp v nü e f f (4.3) Forholdet mellem et signals spids- og effektivværdi afhænger af signaltypen. Kvantiseringsstøjen afhænger således af hvor godt A/D-konverterens interval udnyttes, kvantiseringen samt hvilken type signal der konverteres.

61 º á á ß Optage- og afspilleenhed 49 For indgangssignal v s Ì tí º sinì tí vil forholdet mellem effektiv- og spidsværdi blive 1 2Ý 2 ud fra formel 4.4. v e f f º 1 T Þ 0 T vì tí 2 dt v sü e f f º v sü e f f v sü pp 1 2π Þ ß π sin 2 Ì tí dt º 1 2 (4.4) Forholdet mellem signalet og støjens spidsværdi findes ved at betragte figur 4.9, og formel 4.5 kan opstilles, hvor n udgør antallet af bit i A/D-konverteren. 3 A/D konvertering 2 1 Spænding Tid Indgangssignal Udgangssignal Kvantiseringsstøj Figur 4.9: Kvantiseringsstøj v sà pp v nà pp 2 n 2 n (4.5) Med udgangspunkt i samme figur kan et udtryk for en enkelt periode af støjen opskrives som et savtak signal (formel 4.6 på den følgende side) og forholdet mellem spids- og effektivværdi findes (formel 4.7 på næste side).

62 Þ 50 Hardwaredesign v n Ì tí º v e f f º 1 2 t 0 Ú t Ú T T º 1 (4.6) 1 T Þ 0 T vì tí 2 dt v nü e f f º v nü pp v nü e f f t3 1 2 t2 â 1 4 t dt º 1 2 ß 3 º 2 ß 3 (4.7) SNR kan ved indsættelse ved i formel (4.3) bestemmes for et sinus signal som bliver konverteret med en 8 bit A/D-konverter: SNR º 1 2 ß ß 3 50dB og det be- Forholdet mellem effektivværdi og spidsværdi for talesignaler er omkring 1 8 tyder at SNR med samme kvantisering vil være 41 db SNR º ß 3 41dB Valget af opløsning og dermed hvor mange bit A/D-konverteren skal være på, afhænger af hvor meget støj det kan accepteres, der tilføjes i forbindelse med konverteringen. Eksempelvis vil det være fornuftigt at vælge en 8 bit konverter til at konvertere et signal med et signal/støj forhold på 41dB eller derunder. Derved vil den samlede støj efter konverteringen højst være fordoblet. SNR efter konverteringen vil være summen af støjen svarende til 35 db. PLD-komponent For at tilslutte og styre ADC en og DAC en, som er nærmere beskrevet i henholdsvis afsnit 4.2 på side 48 og på side 59, er der anvendt en PLD af typen 22CV10A. I PLD en er der implementeret 2 kontrolbit D8 og D9 til aktivering af A/D og D/A konverterne. Desuden generer kredsen også en 8kHz samplingsfrekvens i samspil med en binær tæller af typen 74HC4040 cite[datablade/mm74hc4040.pdf]cd-rom. De nærmere detaljer omkring PLD-koden samt hvorledes den samlede optage-/afspilleenhed styres kan læses i afsnit Optageenhed Følgende afsnittet er opbygget udfra flowet i figur 4.5 på side 46.

63 Optage- og afspilleenhed 51 Mikrofon Mikrofonen anvendes til at transformere akustiske signaler til analoge elektriske signaler. Til udførelse af denne opgave er anvendt en mikrofon af model WM-034DB fra Panasonic (CD-ROM,, datablade/wm-034db.pdf). Valget af denne komponent er sket ud fra tilgængeligheden hos komponentudleveringens, hvor det var den mest anvendte og en af de få til rådighed for projekter på E4. Kredsløbet for mikrofonen er konstrueret på grundlag af specifikationer fra datablad, hvor stel er koblet til terminal 2, der har direkte kontakt til chassis. Til terminal 1 tilkobles forsyningsspændingen på 5 VDC via en modstand på 2 5 kω. Foruden modstanden tilkobles en afkoblingskondensator, der adskiller jævnspænding fra det ønskede talesignal, som passerer igennem kondensatoren, mens der blokeres for jævnspændingssignalet. Kondensatoren og modstanden, som er koblet til stel, danner et højpasfilter, som skærer ved en frekvens på ca. 10Hz. f 0 º ω 0 2π º 1 2π RC º 1 2π 1µF 16 2kΩ 10Hz Mikrofonens interne struktur er opbygget på en Electret Condenser Microphone (ECM) og en FET Impendace Converter (Figur 4.10). ECM ens konstruktion består af to plader, hvor imellem der permanent ligger en ladning. Det er ændringer i denne ladning, der giver det elektriske signal, idet den ene af pladerne sidder i en statisk position, mens den anden ændrer position afhængigt af indkommende akustiske signaler. Fra ECM en kommer signalet via FET Impedance Converter en ud på terminal 1, hvorfra det kan anvendes. ECM unit FET impedance converter Shield case Term 1 Term 2 RL C Output +Vs Ground Figur 4.10: Mikrofonens interne struktur. [*Note *] Det konverterede signal svinger internt omkring V s, hvorfor afkoblingskondensator C (se figur 4.10) indsættes. Udgangssignalerne fra mikrofonen svinger med en amplitude på ca mv, for et normalt taleniveau ved en afstand på ca cm. FIGUR 1: indsæt illust mikro. fra datablade Mikrofonforstærker Mikrofonforstærkeren bruges til at forstærke udgangssignalet fra mikrofonkredsløbet. Forstærkningen af signalet er statisk og fastsat til 10. Denne forstærkning opnås ved en noninverterende forstærker bygget op omkring en opamp LM324 (CD-ROM,, datablade/lm324.pdf), se Figur 4.11 på den følgende side.

64 52 Hardwaredesign Vin + OUT Vout - R1 R2 Figur 4.11: Noninverterende forstærkerkobling. For denne kobling gælder (4.8). A º v out v in ºäã 1 â R 2 R 1 å (4.8) For at opnå en forstærkningsfaktor på 10 skal forholdet mellem R 1 og R 2 være 9. Dette opnås f.eks. ved at sætte R 1 til 10kΩ og R 2 til 90kΩ. Filter Filterets funktion er at fjerne de uønskede frekvenskomponenter fra forstærkerkredsløbets udgangssignal. De ønskede komponenter ligger under 4 khz. Til denne filtreringsopgave anvendes et 8. ordens switched-capacitor lavpasfilter af typen MAX294 (CD- ROM,, datablade/max293-max297.pdf). I stopbåndet dæmper dette filter med 58 db. Knækfrekvensen F 0 for filtret afhænger af den clock-frekvens filteret styres med, i forholdet Stopbåndet starter ved f s, som skal ligge ved 4kHz, og som, for MAX294, 4kHz bestemmes ved f s º 1» 2 F 0. Filtrets clock-frekvens skal derfor være f clk º 100 1Ü 2 º 333 khz. 4kHz, så antialiasing bibeholdes. Til beregning af clock-frekvensen F 0 til filteret er der taget udgangspunkt i datablad for Max294, hvor frekvensen f s skal være 4kHz. Clockfrekvensen beregnes til khz ifølge formel ( 4.9). Filteret er valgt pga. det stejle "roll off- ved knæk-frekvensen. f s º 1» 2 F 0 F 0 º 4kHz 1 2 (4.9) Filteret er tilsluttet efter anvisning fundet i databladet, hvor benene 3 og 4 er forbundet til hinanden, mens de resterende ben er forbundet efter deres funktionalitet. De to efterfølgende afsnit beskriver dele indeholdt i filteret, med henblik på at give en bedre forståelse af filterets funktioner og egenskaber. Switched-capacitor Til gennemgang af basis principperne for en switched-capacitor tages der udgangspunkt i et aktiv RC-filter, også kaldt Miller integrator, se figur 4.12 på modstående side. Det skal her bemærkes, at afsnittet om switched-capacitor er baseret

65 Optage- og afspilleenhed 53 på (Sedra and Smith, 1998, side 941). I næste skridt erstattes modstanden R 1 med kondensatoren C 1 og to MOS transistorer (figur 4.14). De to MOS transistorer drives af en ikke-overlappende to-fase clock, se Figur Til videre brug antages clockfrekvensen 1 f c º T c at være meget højere end signalet, der skal filtreres. C 2 IN R 1 + VG - OUT Figur 4.12: Aktiv-RC integrator. 1 2 Figur 4.13: To-faset clock. C 2 IN VG + C v 1 - in + - OUT Figur 4.14: Switched-capacitor integrator. Under clock fase φ 1, hvor C 1 er koblet over indgangssignalet v in, er variationen i indgangssignalet meget lille, hvorved C 1 oplades. q C1 º C 1 V in Under clock fase φ 2, hvor C 1 er koblet til virtuel-stel på opamp, tvinges C 1 til at aflade pga. C 2, som oplades med ladning fra C 1, som illustreret i figur Under hver clock periode T c oplades en del af indgangssignalet i C 1, som derefter overføres til C 2. Derved kan der bestemmes en gennemsnitlig strøm mellem V in og virtuel stel. i av º C 1 V in T c

66 54 Hardwaredesign C 2 C 2 IN VG + v - in C C 1 VG + - OUT Figur 4.15: Op- og afladning af kondensatorer gennem clock-perioderne φ 1 og φ 2. Hvis T c er tilstrækkelig kort, vil der kunne findes en ækvivalent modstand R eq, for hvilken der gælder: R eq º V in i av º T c C 1 Derved fremkommer tidskonstanten for systemet: τ º C 2 R eq º T c C 2 C 1 Derefter kan frekvensresponsen defineres via tidskonstant, som igen defineres via clock perioden og forholdet mellem C 1 og C 2. Automatic Gain Control Fra filteret kommer et udgangssignal med varierende spændingsniveau, hvilket skal normaliseres ved en fastsat lydkvalitet. Dette gøres for at stabilisere lydnivauet til lagering af signaler på diktafonen. Til denne opgave er konstrueret et Automatic Gain Control (AGC) bygget op omkring en opamp. (LM324) og P-kanal JFET transistor (J176). Konstruktionen er udført ved inspiration af en designidé fundet på internettet (CD-ROM,, datablade/agc-design.pdf) og tilpasset projektets formål. På figur 4.16 ses et eldiagram over opbygningen AGC-kredsløbet. Udgangssignalet fra filteret kommer ind i AGC en gennem en modstand, der er ækvivalent med modstanden til forspænding af punktet, hvorom indgangssignalet til opamp en svinger. Mellem komponenterne er anbragt en afkoblingskondensator og source-benet på transistoren J176 (CD-ROM,, datablade/j174.pdf), der har til opgave er reducere indgangssignalet til opamp en ved for stor udgangsamplitude for signalet efter passagen gennem opamp en. Transistoren J176 er tilkoblet mellem indgangssignalet og stel, hvor den er forsynet med en spænding på 5V via en modstand. Foruden modstanden er der tilkoblet en kondensator, der har til opgave at reducere variationen i spændingsnivauet. Denne ændring i spændingsniveauet skyldes yderligere en transistor BC547 (CD- ROM,, datablade/bc547.pdf), der åbner og lukker, proportionalt med amplituden for udgangssignalet fra AGC en, for spændingstilførelsen til basis-benet, som tillader en del af spændingen fra gate-benet på J176 at passere gennem transistoren til stel. Signalet til BC547 afkobles gennem en kondensator, således kun amplituden af signalet passerer og ikke niveauet, hvorom det svinger. Denne reducering af spændingsniveauet på benet på J176 reducere spærringslaget i transistoren, som vil lede en del af indgangssignalet til opamp til stel.

67 Optage- og afspilleenhed 55 R29 R30 Vin R36 1k R33 120k C17 10u s J9 J176 d 470 C19 1u R37 240k g Vcc R31 240k Vcc R38 100k C21 10u 9 10 Q1 33k - BC547A LM324 U21C + R39 10k OUT R41 10k -10V 8 +10V C20 10u R40 10k Vout 0 Figur 4.16: Eldiagram af AGC-kredsløbet. Opamp er forsynet med en noninvereterende forstærkning af udgangssignalet fra ACG en, som har en forstærkningsfaktor på ca. 71. En illustration af funktionaliten af AGC en kan ses på Figur 4.17, som viser flowet for signalerne gennem forstærkningskredsløbet, "Peak-detektoren- og kredsløb til reducering af indgangssignal. V in Y X / Y V x Forstærker V out Overflow Kontrol V kontrol Peak- Detektor V peak Figur 4.17: Illustration af flowet for AGC-signaler. Konverteringsteknologier Der findes forskellige metoder til at konvertere signaler fra analog til digital form. En af disse er SAR 5 som grundlæggende går ud på at finde den analoge indgangsspænding ved at sammenligne den med en kendt spænding fra D/A konverteren. På figur 4.18 på den følgende side ses princippet af en SAR A/D konverter. En konvertering begynder ved at sample/hold kredsløbet fastholder en spænding mens konverteringen forløber. Imens udfører SAR logikken en binærsøgning ved at starte med at sætte MSB på D/A konverteren og de resterende bit er sat til 0. Komparatoren vil herefter sammenligne om V dac er større end V ind, og er dette tilfældet bliver MSB sat til 0, hvis ikke holdes MSB. Således fortsætter SAR logikken med de næste bit indtil LSB er fundet og den digitale værdi kan aflæses fra A/D konverteren (Bentley, 1995, side 223). 5 Successive Approximation Register

68 56 Hardwaredesign Vind ñ û,üó4ïëçþý old - ñ è>òëólì4ô ik + ædõlô>õö> >óùødú4ô ang Vdac æ çéèëê,ìlílîdï,ð ter Figur 4.18: Princip for en SAR A/D konverter. En anden teknologi er flash konvertering som vist på figur Konverteringen sker ved at en række komparatorer svarende til den ønskede kvantisering sammenligner den analoge indgangsspænding med deres reference fra modstandsnetværket. Herefter bliver komparatorenes værdier kodet til binær form som kan aflæses. Antallet af komparatorer stiger eksponentielt i forhold til hvor mange bit A/D konverteren skal bestemme. Derfor findes der også en half-flash type hvor det analoge signal konverteres med 4 bit af gangen; herved spares komparatorer og priotetsenkoderens størrelse mindskes. Vind Vref Priortetsenkoder R + - Digitaludgang R - - R R + Figur 4.19: Princip for en flash A/D konverter. Valg af ADC komponent I projektet er der valgt en 8 bit model af typen ADC0820 (CD- ROM,, datablade/adc0820.pdf) som anvender half-flash teknologi. Denne type har parallel digitaludgang samt kontrolsignaler, der er tilpasset således, at den let kan tilsluttes minimumsystemet. Konvertering tilbage til et analogt signal sker med en DAC af typen AD7524 (CD-ROM,, datablade/ad7524.pdf), som ligeledes har et 8 bit parallelt interface der kan tilsluttes systemet.

69 Optage- og afspilleenhed 57 Behovet er at sample med 8 khz. Den valgte type ADC0820 kan konvertere et analogt signal på 1 5 µs hvilket svarer til en frekvens på 667 khz. Derfor er det ikke nødvendigt for systemet at aflæse ADC værdien straks efter konverteringen er afsluttet, men blot inden den næste konvertering skal begynde. ADC en kan være i en permanent læse mode, hvor en konvertering startes ved at lade systemet læse på ADC ens adresse og når INT_ går lav fra ADC en er den konverterede værdi klar til at blive aflæst på databussen. Ved at udskyde DTACK_ i dette tilfælde til M68k processoren til INT_ går lav, vil processoren først aflæse databussen når ADC en har lagt den konverterede værdi på denne. En anden måde at styre ADC en på, er ved at lade den skifte mellem skrive og læse mode (WR-RD mode) som svarer til, at der skrives til ADC en for at starte konverteringen og derefter aflæser den konverterede værdi. Kravet fra ADC en er at dens CS_ og WR_ ben i forbindelse med en read-cycle bliver asserteret i minimum 600ns for at sikre en nøjagtig konvertering. Dette vil ikke opnåes ved en normal læsecyklus uden at DTACK_ forsinkes. Det er valgt at køre ADC en i WR-RD mode og lade PLD logikken generere en readcycle til ADC en som starter konverteringen og ved afsluttet konvertering sendes et interrupt request (IRQ) til systemet. Herefter kan dataene læses uden behovet for et yderligere forsinket DTACK_. Denne løsning er valgt idet det herved undgås at modificere DTACK generatoren i minimumsystemet og dermed fungerer den samlede optage/afspilleenhed som en perifær enhed, der kan tilsluttes det eksisterende system direkte. Der er derfor intet krav om at aflæse ADC en straks efter en konvertering, da den tidsnok kan aflæses i løbet af en interrupt handling rutine eller eventuelt ved software- polling, hvis det kan sikres at den bliver aflæst mellem hver konvertering Afspil D/A konvertering Der findes flere metoder til at konvertere en digital værdi til en analog spænding. Et af principperne er at anvende binært vægtede modstande og en operationsforstærker som vist på figur 4.20 på den følgende side. I princippet styres strømmen i r gennem tilbage koblingensmodstanden. Denne strøm er summen af strømmene fra de binærtvægtede modstande, hvor kontakten er sluttet. I praksis ses denne metode ikke benyttet pga. problemer med nøjagtigheden af de binært vægtede modstande og deres temperaturafhængighed. Samme grundlæggende princip med en inverteret operationsforstærker, kan opnås ved at anvende et R-2R modstands netværk som vist på figur 4.21 på næste side. Her er strømmen fra V re f konstant idet kontakterne enten er forbundet til virtuelt stel gennem operationsforstærkeren eller også direkte. I komponenten er lavet en række ens modstande (R), som bliver forbundet således at de danner R-2R netværket. Ved kun at have en modstandsstørrelse opnås en bedre nøjagtighed og temperaturuafhængighed i forhold til de binært vægtede modstande. Dette skyldes at de ens modstande kan produceres med ens nøjagtighed og med ens temperaturafhængighed.

70 58 Hardwaredesign Vref R 2 0 S1 R 2 1 S2 ir Rfb Vud + Figur 4.20: D/A konverter med binært vægtede modstande Vref R R R 2R 2R 2R S1 S2 R Vud + Figur 4.21: D/A konverter med R - 2R netværk

71 Optage- og afspilleenhed 59 DAC komponent I projektet er der valgt en 8 bit DAC af typen AD7524. Denne kreds har et R-2R netværk og en tilbagekoblingsmodstand indbygget. Kredsen har et 8 bit parallelt interface og kontrolsignaler som er forberedt til tilslutning på et microprocessorsystem. D/A konverteren kan være i en skrive- eller holdetilstand. Når der skrives til DAC en bliver databussen aflæst og de indre kontakter i R-2R netværket bliver sat udfra databussen. Herefter holder D/A konverteren kontakterne i samme stilling via den interne latch indtil en ny værdi bliver tilskrevet DAC en. Kredsen er tilstrækkelig hurtig således, at der ikke kræves et specielt forsinket DTACK_ til M68k når der skrives til konverteren. Som operationsforstærker til A/D konverteren er typen TLE2022 (CD-ROM,, datablade/tle2022.pdf) anvendt, da denne er let tilgængelig for projektgruppen. Spændingsreferencen til DAC en er sat til 5V så et digitalt input på 0 svarer til 0V og 255 til 5V. Herefter er signalet ført igennem et højpas filter med en knækfrekvens på 10Hz for at få signalet til rekonstruktionsfilteret til svinge omkring stel. Rekonstruktionsfilter Filteret skal bruges til udglatning af de kantede signaler DAC en udsender, idet den ikke konverterer et digitalt signal tilbage et analogt signal, uden der opstår en mindre forvrængning af signal iht. det akustisk signal (se figur 4.22), der var kilden til det lagerede signalet. Signalet samples med, som tidligere nævnt, med 8 khz, hvorved signalet vil være et kantet signal. A Før rekonstruktionsfilter A Efter rekonstruktionsfilter t t Figur 4.22: Illustration af funktionaliteten af et rekonstruktionsfilter. Filtrene for afspilning og optagning er identiske af hensyn til deres egenskaber. Dertil kommer også et identisk clocksignal, så der ikke sker en forvrængning af signalet p.g.a. forskellige clocksignaler. Opbygning af kredsløbet for rekonstruktionsfilteret er som for det tidligere filter sket på baggrund af databladet for filteret. Effektforstærker Til forstærkning af udgangssignalet til højttaleren konstrueres en forstærker med justeringsmuligheder. Til dette formål er anvendt audioeffektforstærkeren LM380 (CD- ROM,, datablade/lm380.pdf), som kan levere en udgangseffekt på 2W.

72 60 Hardwaredesign Opbygning af kredsløbet er som følger, hvor signalet fra rekonstruktionsfiltret kommer gennem et potentiometer, hvor amplitudeniveauet for signalet ændres til den ønskede værdi, som derfra løber via en afkoblingskondensator til opamp ens plus-ben. Mellem plus- og minusindgangen på opamp en er placeret en kondensator, desuden er der koblet en kondensator til bypass på ben 8 og en mellem udgangen og højttaleren på ben 6 til afkobling af signalet til højttaleren. 4.3 Knapper Ifølge kapitel 3 stilles en række funktionelle krav til diktafonens betjening: Start/stop optagelsen. Start/stop afspilningen. Start/stop overførsel. Pause i optagelsen/afspilningen. Valg af track. Slet optagelsen ved brug af 2 tastetryk. Disse krav opfyldes ved brug af forskellige knapper med forskellige funktioner. Dette afsnit omhandler opbygningen af den hardwaremæssige del af knapperne, og vil beskrive følgende: Knappernes opbygning. Knapregister Diagram over knappernes tilslutning til M68k. Knappernes opbygning For at oplyse M68k om, samt kunne identificere et knaptryk, vælges brug af vektoriserede interrupts. Trods mulighed for tilslutning af adskillige knapper, eksempelvis i form af et matrixopbygget tastatur, benyttes få enkeltstående knapper som brugerinterface. Dette skyldes diktafonens funktion som værende en lille mobil enhed. Set i lyset af de ovenfor nævnte funktionalitetskrav, samt den i Produktdesign udarbejdede opdeling af diktafonen i uafhængige processer, skal et antal af knapperne indeholde flere end en enkelt funktion. Dette løses af en softwarerutine, som omtales i afsnit 5.3, hvilket her afføder opgaven at definere indholdet af knaptrykkenes funktioner fordelt på de tilrådighed værende knapper. Ud fra kapitel 3 på side 6 kan skematisk opstilles oversigten i tabel 4.4, der konkret viser de mulige valg i hver af de tre modes.

73 Knapper 61 Optag Afspil Docking Start optagelsen Start afspilning Start overførsel Stop optagelsen Stop afspilning Pause i optagelsen Pause i afspilningen Vælg tracknummer Vælg tracknummer Slet et track Tabel 4.4: Mulige valg i de tre modes. Ud fra tabel 4.4 kan umiddelbart findes flere forskellige løsninger, hvoraf følgende er blevet vurderet bedst egnet. I alt bruges fem trykknapper til de ønskede funktioner: Start, stop, track, mode og slet. Knappernes funktion defineres ud fra diktafonens tilstand. Nogle knapper skal ikke være tilgængelige i alle tre modes, og nogle knapper får forskellige funktioner afhængigt af konteksten, som vist i tabel 4.5. Optag Afspil Docking Start - første Start optagelsen Start afspilning Start overførsel tryk Start - andet Pause i optagelsen Pause i afspilningen tryk Stop Stop optagelsen Stop afspilning Track Vælg næste tracknummenummer Vælg næste track- Mode Skift mode til Afspil Skift mode til Docking Skift mode til Optag Slet (efterfulgt Slet et track af Start) Tabel 4.5: Fem mulige valg i forskellige modes. Hvor tabellen er blank skal et knaptryk ignoreres. Det betyder f.eks. at det andet tryk på start i dockingmode ikke skal lave en pause i overførslen, og at det ikke er muligt at slette et track i optagemode. Modeknappen bladrer cyklisk gennem diktafonens tre tilstande. Det betyder at for at komme fra optage- til dockingmode anvendes to tastetryk, hvorved diktafonen kommer i afspillemode undervejs. For at slette et track skal som tidligere nævnt bruges to tastetryk. Ved et tryk på sletknappen skal beskeden "Slet? Tryk start-fremkomme i displayet. På dette punkt kan brugeren bekræfte en sletning ved et tryk på startknappen, eller afkræfte den ved et tryk på en af de andre fire knapper. Knapregister Når et knaptryk er foretaget og identificeret gemmes det i et knapregister på en byte. Registret bruges af softwaren i hovedløkken til, ved kald af HentKnap, at kontrollere,

74 62 Hardwaredesign om der er kommet et knaptryk, og i positivt tilfælde tage aktion i henhold til dette. Ved udgangen af den funktion der benyttes til at aflæse knapregistret nulstilles dette. Bit 0 benyttes ikke og sættes til 0. Bit 1 refererer til startknappen, og sættes, når der trykkes. Bit 2 registrerer stopknappen, og sættes direkte af vektoren ved knaptrykket. Bit 3 angiver at der skiftes til næste track. Bit 4 angiver at der skiftes til næste mode. Bit 5 markerer at et track skal slettes; skal efterfølges af bit 1 for at have nogen effekt. Bit 6 benyttes ikke og sættes til 0. Bit 7 benyttes ikke og sættes til Ubenyttet Ubenyttet Slet Mode Track Stop Start Knaptryk Hardware til knapperne I dette afsnit fortælles om kombinatorisk logik i PLD, vektoriserede interupts samt valg af vektorer og bestemmelse af adresser. Kombinatorisk logik i PLD Som interface mellem knapperne og databussen benyttes kombinatorisk logik indkodet i en PLD af typen PEEL 22CV10A. Udover databussen giver PLD en også interrupt request til M68k ved knaptryk, og minimumsystemet asserterer DTACK_, når data er klar på PLD ens udgangsben. For uddybende forklaring af DTACK_ flow henvises til figur 4.24 på side 64. Selve opbygningen af den kombinatoriske logik ses på figur 4.23 på næste side. Da PLD en er koblet direkte på databussen, skal udgangene kunne styres med en ekstern output-enable (OE), der, når de er slået fra, sætter dem i en højimpedant tilstand. Brugen af disse højimpedante udgange sikrer, at databussen er fri til andre enheder, da tilstanden hverken er høj eller lav. Koden for PLD-programmeringen findes i filen "knapirq.psf"i (CD-ROM,, knapper). Vektoriserede interrupts Som nævnt i indledningen til dette afsnit, benyttes vektoriserede interrupts til identificering af knaptrykket. Ved modtagelse af et interrupt fra en perifær enhed, påbegynder M68K en interrupt acknowledge sekvens. Figur 4.24 på side 64 viser rækkefølgen af de kontrolsignaler, der indgår i den fuldstændige sekvens, hvoraf enkelte punkter er udeladt i den aktuelle løsning.

75 Knapper 63 START D0 STOP 3 4 D1 TRACK 5 6 D2 MODE 9 8 D3 SLET D4 Vcc D5 D6 3 4 D7 0 IACK3_ IRQ3_ Figur 4.23: Den kombinatoriske logik i PLD en til knaptrykstyring.

76 64 Hardwaredesign ÿ! "# $ % & ' ()+*+&, )+*-. )/*&0 ) $5768-9!:; < = >@?4 8 BA < A 0 9!:; CEDF G HAJÿ % )/"I J. ALK,,M N )!O P % E)!9!? Q )!O P % EA% J E R G S A&TU 9/?VK WXU29+? R 3 P. R( M )1. ' ÿ & ' Y Z [[1 \! &" E' I [4[1 $ ( U#]^]`_HU#]^a b )!O P % $U cd)/dfez? g +h % E' i [L[1 j Tk %"I1'#Y [L[1 l m2. $TU 9+?nK. WoU 9+?+M * im. E)+9/? 91 S ho m. pu+cp)/dfez? / "R $ % Figur 4.24: Flowchart for interrupt acknowledge sekvensen.

77 Knapper 65 Når et interrupt fra et knaptryk registreres, benyttes pkt. 1, 3 og 4 i processorens respons til videre behandling af interruptet. Adresseben A 01, A 02 og A 03 føres til en 74LS138 prioritetsdekoder, og FC0-2 føres sammen i en AND i PLD-kredsen. Det IACK_ der på denne måde genereres ud fra FC0-2 bruges som enable på prioritetsdekoderen, som udsender IACK3_, en prioritetsbestemt interrupt acknowledge til knapperne. Dette signal bruges som output-enable til dataudgangene på den PLD der benyttes til knapkontrol. For at sikre at vektoren er sat op på PLD dataudgangene før processoren får et DTACK_, er DTACK_ gjort afhængig af både OE og databen 6 fra knapkontrol-pld. I DTACK_- generatoren føres disse to signaler sammen i en AND gate, og videre til en OR-gate hvor de kombineres med Address-Strobe (AS_), som asserteres når processoren svarer på et interrupt. Afhængigheden af AS_ medfører også at DTACK_ automatisk negeres når IACK-sekvensen afsluttes fra processorens side. Efter DTACK_ igen er negeret fortsætter processoren til interrupt handling rutinen. Valg af vektorer og bestemmelse af adresser Når der trykkes på en knap løftes et tilsvarende databen, samt databen 6 på PLD en højt. Tabel 4.6 viser de vektorer der opnås på denne måde, og adresser på de tilhørende interrupt handling rutiner: Knap Vektor nr. Placering i TS2MON RAM Adresse for handlingrutine Start 65 0x x41002 Stop 66 0x x41012 Track 68 0x x41022 Mode 72 0x x41032 Slet 80 0x x41042 Tabel 4.6: Vektorer og adresser på handling rutiner Når netop de ovenfor nævnte vektorer benyttes, skyldes det at M68k reserverer vektor User-vektorerne ligger i området , og for på en simpel måde at sikre at de benyttede vektorer ligger i dette område holdes udgangen fra PLD en til D6 konstant høj. Når M68k modtager et interrupt, og et efterfølgende DTACK_ findes adressen på interrupt handling rutinen ved at gange den modtagne vektor med 4. De adresser der opnås på denne måde ligger i det aktuelle system i ROM. For at gøre brugen af vektoriserede interrupts lettere, omdirigerer debugger- og monitorprogrammet TS2MON derfor processoren til et område i programmets user-ram. Disse adresser findes ved at gange vektonummeret med 8, finde hexværdien af resultatet, og lægge 0x40000 til. Vektoradresse º Ì vektornr»j 8Í â 0x40000 På den opnåede adresse lægges en JMP kommando, samt adressen på det sted i RAM der er valgt til interrupt handling rutinen. På den måde omdirigeres til et sted uden for både ROM og TS2MONs RAM, der er frit tilgængeligt ved programmeringen af diktafonens software. Interrupt handling rutinerne er her lagt umiddelbart efter det tidligere omtalte knapregister, med en indbyrdes afstand på 16 bytes.

78 66 Hardwaredesign Fravalg af autovektorer I en tidligere revision af knapperne var modeknappen erstattet med tre seperate kontakter for optage-, afspille- og dockingmode. Sammenlagt med de øvrige knapper, ADC/DAC og NMI var der på daværende tidpunkt brug for 9 interrupts, hvilket var en af hovedårsagerne til valget af de vektoriserede interrupts. Efter indførelsen af modeknappen, og den cykliske skiften mellem de tre modes kunne det imidlertid også lade sig gøre at bruge autovektoriserede interrupts, da antallet af benyttede interrupts er faldet til de mulige 7. Skiftet til autovektoriserede interrupts ville ikke kræve nogen større omstrukturering af den benyttede hardware, og ville kun kræve ændringer i enkelte adresser i softwaren. Pga. hardwarens fremskredne status bibeholdes de vektoriserede interrupts imidlertid i den konstruerede diktafon. På dette stadie er hardwaren til knapperne i stand til at afbryde processoren, og sende den en vektor. For at give denne vektor mening, skal interrupt handling rutiner skrives, og de entryfunktioner der blev fundet frem til i designfasen skal implementeres. De rutiner der skal håndtere knaptrykkene, og den software der skal binde knapperne til resten af systemet, findes beskrevet i afsnit 5.3 på side Display Jævnfør kravsspecifikationen, afsnit 2.1, skal der udlæses information til brugeren på et display. I afsnit 5.4, omhandlende softwaren til displayet, designes koden til denne udlæsning. Dette afsnit omhandler selve hardwaren vedrørende displayet. Dette opdeles i to afsnit: Tilslutning til minimumsystem og Hardwaretiming. Tilslutning til minimumsystem Displayhardwaren består af et LC-display (L1604-A) og et potmeter, (se figur 4.25) designes og tilsluttes det eksisterende minimumsystem udfra datablad (CD-ROM,, disp) for displayet, og på baggrund af kravsspecifikationen afsnit 2.1 samt designet af minimumsystemet. Et produkt af dette betyder, at der udelukkende skrives til displayet, og kun når dette adresseres. Displayet som det fremkommer udfra figur 4.25, forsynes med 5 VDC, der ydermere gennem et potmeter på 10kΩ benyttes til at justere kontrasten i displayet. Da der udelukkende skrives til displayet kobles R/W_ indgangen til stel. Register-Select (RS) kobles til databussen, så det softwaremæssigt besluttes, om der sendes data eller instruktioner til displayet; instruktioner indebærer initalisering af display, clear, placering osv., hvorimod data består af den binære kode, der svarer til den ønskede karakter der skal udlæses. Databuslinierne (DB0-DB7) kobles ligeledes på databussen, så instruktioner og data kan modtages. Enable (E) kobles til chip-select af display (CS_Display) for at sikre, at displayet kun læser på databussen, når dette er hensigten. Baggrundslys er fravalgt, idet det vurderes unødvendigt.

79 Display 67 Vcc R k PC1604ARS U1 E 6 3 Vc RS 4 DBO 7 5 R/W DB1 8 DB2 9 DB3 10 DB4 11 A BL+ DB5 12 B BL- DB6 13 DB7 14 Vdd GND CS_Display D8 D0 D1 D2 D3 D4 D5 D6 D7 1 0 Databus { tz x w xy tuv s q r Figur 4.25: El-diagram over displayet. Hardwaretiming Displayets lange opsætningstider i forhold til minimumsystemet, resulterer i et problem med timingen. Problemet opstår idet data skal være latchet 140 ns efter adressering af displayet. Det ses udfra tabel 4.7, at displayet skal adresseres i mindst 230ns (t_pweh) for at data når at blive latchet af displayets RAM. Problemet løses ved at forsinke DTACK_, hvorved der indsættes waitstates. Samtidig skal det sikres at t_cyce overholdes. Den resterende timing løses automatisk gennem minimumsystemets writecycle. RS Data/instrukt. E t_as t_pweh t_cyce t_dsw t_ah Figur 4.26: Timingdiagram for displayets write-cycle.(cd-rom,, disp) Til at forsinke DTACK_ anvendes et delayelement (CD-ROM,, disp). Udfra figur 4.27, der viser timingdiagrammet over displayet tilsluttet som beskrevet i afsnit 4.4, skal DTACK_ forsinkes mindst 230 ns 140 ns º 90 ns. Delayelementet har flere forsinkelsestider at vælge imellem. I dette tilfælde vælges 2 delaytider på 45 48ns koblet i serie, hvorved der opnås en forsinkelse på 90 96ns.

80 Ÿ 68 Hardwaredesign Parameter Navn Symbol Minimum Maximum Minimumsystem (Clements, 1997) Asynchronous input setup time (DTACK_ setup) t_asi 10 Clock low to data valid t_cldo 62 AS_, DS_ negated to DTACK_ negated (asynchronous t_shdah hold) Display (CD-ROM,, disp) Address setup time t_as 40 Enable pulse width t_pweh 230 Data setup time t_dsw 80 Enable cycle time t_cyce 500 Address hold time t_ah 10 Display tilsluttet minimumsystem RS, Data/instruktioner til E t_d pbe 40 DTACK_ forsinkelsestid t_dd 90 Enable cycle time efter tilslutning t_cycet 500 E negeret til RS, Data, instruktioner t_edab 30 Tabel 4.7: Tider i ns vedrørende timingdiagrammer; figur 4.26 og ƒ` 7 & H Hšœ ^ œž &h & } R } Š Š Œ Š Ž Š Š Š Š ŠY Š Ž ŠY }ƒ^ ~ }~H Hˆ }ƒ^ ^ƒ^ }H ~H Hˆ }ƒ^ ~ } H^ }~H~ }H~^ H~ H Figur 4.27: Timingdiagram for displayet tilsluttet minimumsystemet.

81 Memorymap 69 CS_display kobles til DTACK_display gennem dette delay, hvormed DTACK_ forsinkes i mindst 90ns. Dermed er HW-delen af displayet designet for konstruering, og tilslutning til minimumsystem. Dette under hensyntagen til timing og det eksisterende hardware. Derpå skal koden for displayet designes og udføres, dette omtales i afsnit Memorymap Med samtlige enheder tilføjet kommer det endelige memorymap for systemet til at se ud som på figur ROM til TS2MON 0x ROM 0x40000 RAM til TS2MON 0x40FFF Interrupt handling 0x Program 0x RAM1 0x TOM 0x RAM2 0x2FFF x x x xA xA xE xFFFFFF Inode Tabel TOM ACIA ACIA ADC DAC Display PER Tabel 4.8: Memorymap for diktafonen. ACIA, ADC og DAC adresseres i softwaren på byteniveau, markeret ved den ekstra opdeling i tabellen. Efter den RAM der er reserveret til TS2MON er der afsat 4 kbyte til interrupt handling rutiner, og 56 kbyte til det resterende program.

82 70 Hardwaredesign 4.6 Konklusion på hardwaredesign I dette kapitel er designet et minimumsystem, en optageenhed, afspilleenhed, knapper og display. Med undtagelse af minimumsystemet er hardwaren designet på baggrund af behovet for disse hardwareenheder i designafsnittet. Ifølge kravspecifikationen 2.1 på side 4 var stillet følgende krav til hardwareenhederne: Optagelse af tale: Kvalitet: 8 khz, 8 bit. Kapacitet: 5 min. (2 3 Mbyte). Automatisk indstilling af optageniveau. Afspilning af tale: Indstilling af lydniveau. Start/stop. Kvalitet: 8 khz, 8 bit. Overførsel af optagelser til PC Vha. RS-232C protokol til serielporten. Hastighed: 115kbps. Det igennem kapitlet udarbejdede design af hardwareenhederne opfylder de stillede krav.

83 5 Softwaredesign I designafsnittet kapitel 3 på side 6 blev produktets moduler, og deres entryfunktioner gennemgået. Med udgangspunkt i resultaterne fra dette kapitel vil de enkelte moduler, og de metoder, der er valgt til at opfylde de stillede krav, blive gennemgået. Hvor det er relevant vil eksempler på kildekode blive medtaget i teksten. For at simplificere den endelige kodning, samt sikre overensstemmelse mellem koden og entryfunktionerne i afsnit 3.1.2, benyttes pseudokode eller dataflowdiagrammer. Hvor der er benyttet dataflowdiagrammer henvises til disse. Pseudokoden såvel som kildekoden findes på CD en (CD-ROM,, ) i de respektive direktorier. Softwaren til diktafonen er programmeret i C og kompileret med GNU-compileren GCC v der er konfigureret som krydskompiler til M68k processoren. En enkelt undtagelse er dog en del af koden til knapper som er programmeret direkte i assembler. Til at assemblere og linke koden er der anvendt GNU binutils v Software til PC en programmeres ligeledes i C, og kompileres med GNU-compileren, GCC v på universitetets servere eller GCC v på gruppens egne maskiner. 5.1 Filsystem Filsystemets struktur er inspireret af minix s filstruktur, der blandt andet findes i operativsystemet GNU-Linux. I denne type filstruktur tildeles hver fil et filhoved kaldet inode (index-node) som indeholder oplysning om navn, størrelse og pointer til placeringen af data for netop denne fil.(file System Structure, 2002)[*Note *] det er en cite den br over!! Design af filstruktur I dette design indeholder hver inode et tal for filens navn, filens størrelse samt en pointer til adressen på hvilken blok i lageret filen begynder. Hver fil består af en eller flere datablokke, der er kædet sammen af pointere; en linket liste. Dette illustreres ved figur 5.1 på den følgende side. Hvis en fils længde overstiger lagerkapaciteten af filens første datablok, etableres to pointere i blokkens to sidste longwords, der begge peger på startadressen til den næste ledige blok. Dette fortsætter indtil filen er slut eller lageret tomt. Der allokeres plads til 20 filhoveder i inodetabellen, af størrelsen 6 words hvilket fremgår af figur 5.1 på næste side. Dermed skal der allokeres 240 bytes til de 20 filhoveder. Størrelsen af en datablok sættes til 2048 bytes, hvor de sidste 8 bytes anvendes som pointere til den næste datablok. Der oprettes to allokeringstabeller, som angiver om en

84 72 Softwaredesign Inode tabel Lager blokke Name 1 Blok < Start på lager blok 6 words Size Fil start pointer < Slut på lager blok < Pointere til næste blok Blok < Start på lager blok Name 20 < Slut på lager data Size Fil start pointer Figur 5.1: Filsystemets struktur.

85 Filsystem 73 given datablok er brugt eller ledig. Antallet af celler er udregnet ud fra den samlede lagerplads til lyd på 0x1EFF10bytes 1» 9 Mbyte (ud fra memorymappet i kapitel 4.5). Lagerpladsen opdeles således i 991 hele blokke med 2040 bytes i hver. Programkode til filsystemet Udfra filstrukturdesignet og entryfunktionerne i afsnit designes pseudokoden for derudfra at skrive selve programkoden som findes på (CD-ROM,, dispc). Til pseudokoden er valgt et kodenært abstraktionsniveau, hvorfor denne er irrelevant for læseren og derfor ikke dokumenteret. Foruden entryfunktionerne fra afsnit 3.1.2, der afspejler filsystemet set udefra, er det nødvendigt at initialisere og vedligeholde filsystemet. Kildekoden er i disse specielle tilfælde inkluderet i teksten, da kommentarerne i koden er vigtige for forståelsen af filsystemet. Dermed kan C-koden til filsystemet opdeles i følgende punkter, hvoraf sidstnævnte udelukkende figurerer på vedlagte cd (CD-ROM,, filsys/): Initialisering. Vedligehold. Entryfunktioner. Initialisering Initaliseringen består i at oprette inodetabellen og allokeringstabellerne, begge omtalt tidligere i dette afsnit. Inodetabellen oprettes ved at skrive nuller i name- og size-felterne, hvilket udføres således: static void InitInodeTabel(void) { inode_nr = 0; while(inode_nr < 20) { NAME_INDHOLD = 0; SIZE_INDHOLD = 0; /*fylder nuller i namefeltet*/ /*fylder nuller i sizefeltet*/ } } inode_nr++; [*Note *] hvor NAME_- og SIZE_INDHOLD er henholdsvis navnet og størrelsen på den fil, hvis inode er valgt ved inode_nr. Index-noderne tilgås på følgende vis: testede lige med en for-l ser ud til at virke fint... #define INODETABSTART 0x2FFF10... #define NAME_INDHOLD (*(int *)(0x2FFF10 + (inode_nr * 12))) #define SIZE_INDHOLD (*(int *)(0x2FFF10 + (inode_nr * 12) + 4)) #define FILSTART_POINTER (*(int *)(0x2FFF10 + (inode_nr * 12) + 8))

86 74 Softwaredesign Inodetabellen er placeret et fast sted i RAM en. Der defineres en startadresse for tabellen (INODETABSTART) og inoderne placeres relativt til denne. Ønskes at skrive til SIZE_INDHOLD-feltet for den femte inode, sættes inode_nr til 5, og der kan nu skrives direkte til den valgte RAM-celle ved at tildele SIZE_INDHOLD en værdi (eks. "SIZE_INDHOLD = 1024;"). Allokeringstabellen opretter pointere til datablokkene de tilladte steder i RAM efter memorymappet i afsnit 4.5. Efterfølgende ses hvorledes tabellen oprettes. static void OpretAllokeringsTabel(void) { int i = 0, j = 0x50000; /*start af ledig RAM*/ } /*ledig plads*/ while(j < 0x140000) /*sættes til mindst 2048 bytes inden enden af \ ram1 i hele antal 2048 bytes*/ { brugt_plads[i] = 0; ledig_plads[i] = j; ++i; j += 0x800; } j = 0x200000; /*ledig plads*/ while(j < 0x2FFF10) /*sættes til mindst 2048 bytes inden starten af\ anvendt ram2-plads i hele antal 2048 bytes*/ { brugt_plads[i] = 0; ledig_plads[i] = j; ++i; j += 0x800; } Disse to initaliseringsfunktioner samles i funktionen InitFilsys således: void InitFilsys(void) { InitInodeTabel(); OpretAllokeringsTabel(); } og filsystemet er initialiseret. Vedligehold Vedligeholdelse af filsystemet består i at kalde funktionen OpdaterAllokeringsTabel. Denne funktion kaldes af entryfunktionerne OpretFil, SkrivTilFil og SletFil. De to første - OpretFil og SkrivTilFil - reserverer et givent antal datablokke, når filen oprettes og/eller fylder mere end een datablok. SletFil frigører de datablokke filen som slettes gjorde brug af. Funktionen der håndterer dette er enkel og består i at ombytte indholdet på i te plads af tabellerne ledig_plads[i] og brugt_plads[i].

87 Optage-/afspilleenhed 75 void OpdaterAllokeringsTabel(int i) { int temp; temp = brugt_plads[i]; brugt_plads[i] = ledig_plads[i]; ledig_plads[i] = temp; } Optimeringsmuligheder Filsystemet er konstrueret med henblik på simplicitet frem for optimal ydeevne. Derfor er der visse ting, der vil kunne udføres med færre operationer og ved brug af mindre hukommelse. Eksempelvis er al koden skrevet i C frem for assembler, hvilket kan resultere i ineffektiv assemblerkode genereret af C-kompileren. Herunder er listet nogle af de optimeringsmuligheder der er for filsystemet: Da de to tabeller over brugt og ledig plads er ordnede efter adresser, er en enkelt tabel tilstrækkelig. Skrives koden direkte i assembler, minimeres koden i forhold til kompilergenereret assembler ud fra C-koden. Gennem dette design og udførelse af filsystemet gives mulighed for at manipulere lageret i diktafonen. 5.2 Optage-/afspilleenhed Fra softwaren på systemet skal det være muligt at starte og stoppe modulet med at optage og afspille tale. Dette er løst ved at implementere to status bit D8 og D9 i PLD-kredsen til styring af henholdsvis ADC og DAC. Via software er det således muligt at skrive værdien 0x0100 til den perifære basisadresse (0xA00000) for at starte optagelse. Det er også muligt at aflæse D8 og D9 på samme adresse for at registrere om modulet optager eller afspiller. Det samlede memorymap for optage-/afspilleenheden kan ses i tabel 5.1. Adresse D15...D8 D7...D0 $A00000 (R/W) D9,D8 (R) 8 bit ADC $A00002 (W) 8 bit DAC Tabel 5.1: Hardware I/O memorymap for konverteringsdel. I teorien er optage-/afspilleenheden forberedt til at optage og afspille samtidig. Dette er ikke nødvendigt i forbindelse med diktafonen, og denne mulighed er derfor begrænset i den tilhørende software til optage-/afspilleenheden.

88 76 Softwaredesign PLD-komponent I dette afsnit udarbejdes den kombinatoriske logik, implementeret i en PLD, til brug for optage-/afspilleenheden. Implementering af kontrolbit CDROM PLD en er programmeret således, at det er muligt fra systemet at skrive og læse D8 og D9. Fra minimumsystemet får PLD en følgende signaler: chipselectmodul (ADC_), read/write (RW_) og adresseben 1 (A1). PLD en har tilsluttet to ben til databussen (D8_BUS og D9_bus). Navnene i parentes henfører til PLD ens kode som kan ses i (CD- ROM,, pld_lydio4.psf) [*Note *] Det er særdeles vigtigt for hele systemet at disse ben er i højimpedant tilstand i alle situationer undtagen når der læses fra optage/afspille modulet. Dette er sikret ved at styre output-enable med følgende kombinatoriske udtryk. D8_BUS» OE º!ADC_ &!A1 & RW_ Ud fra PLD ens datablad (CD-ROM,, datablade/22cv10a.pdf) side 8 kan det aflæses at der er en intern forsinkelse på 10ns fra input optræder til output-enable er sat, hvilket stemmer overens med M68k processorens read/write cycle. [*Note *] 8kHz frekvens For at sikre at det analoge signal bliver samplet med ækvidistante tidsintevaller styres dette af PLD en. Fra minimumsystemet er systemklokken på 8 MHz, samt E signalet fra processoren som kan bruges som et clocksignal med 800kHz, til rådighed. For at få et 8kHz signal til at styre samplingstidspunkterne er det valgt at dele E signalet med 100. E signalet er forbundet til den binære tæller således at denne tæller op med 800kHz. Tællerens udgange QA-QG svarende til den binære vægt på 2 0 til 2 6 er forbundet til PLD en så denne kan nulstille tælleren når der er talt op til en bestemt værdi. For netop at dele med 100 skal tælleren nulstilles når den når op til 100 svarende til i binær notation, således at tælleren tæller fra 0 til 99. Den binære tæller er af rippletypen, og derfor kan værdien 100 godt optræde på tællerens udgange i forbindelse med transistionen til en ny værdi. Derfor er reset signalet til tælleren fra PLD en ikke kombinatorisk afhængig men istedet latchet med PLD ens clock på 8 MHz. Entryfunktioner Entryfunktionerne til optage-/afspilleenhederne består af følgende C funktioner LydIOInit StartOptag

89 Software til knapperne 77 StopOptag StartAfspil StopAfspil Når diktafonen sættes til at optage eller afspille data, kaldes henholdsvis funktionen SkrivTilFil eller HentFraFil fra interrupt handleren. Interrupt handling Interrupt handleren er den funktion som bliver udført af systemet, når dette svarer på interruptet fra niveau 4. Handleren undersøger om systemet er igang med at optage eller afspille, og udfra dette skrives A/D-konverterens værdi til filsystemet eller ved en optagelse hentes en værdi fra filsystemet og skrives til ud til D/A-konverteren. Initialisering Interrupt handleren skal initialiseres således, at denne bliver kørt når systemet svarer på et autovektorinterruptrequest på niveau 4. Minimumsystemet med TS2MON installeret i ROM bliver Program Counter (PC) sat til at afvikle en op-code på adresse 0x400E0. På dette sted placerer initialiseringsfunktionen en assemblerkommando, jump subrutine, til interrupt handleren, som så vil blive afviklet. Når interrupt handleren returnerer bliver et RTE (return from exception) udført som gør at systemet springer tilbage til hovedløkken. 5.3 Software til knapperne Den software der skal styre knapperne, og aflæsningen af samme, kan opdeles i tre dele: Initialisering. Interrupt handling. Aflæsning af knapregister. Initialisering Initialiseringsfunktionen skal kaldes ved start af diktafonen. Den sørger for at sætte de rigtige adresser til interrupt handling rutinerne op, og nulstiller knapregistret, så der ikke registreres et tilfældigt knaptryk ved opstart. Opsætningen af adresserne sker med en række kald af følgende assemblerdirektiver: move.w #0x4ef9, 0x40218 move.l #0x41002, 0x4021a move.w #0, 0x4021e

90 78 Softwaredesign 0x40218 er den adresse i TS2MONs RAM hvor adressen på handling rutinen for startknappen skal ligge. I det første word efter denne adresse lægges op-code for JMP (0x4ef9), og i det efterfølgende longword adresseargumentet for JMP. Det fjerde word benytter TS2MON af adresseringsårsager, og det sættes til 0. Interrupt handling Ved et knaptryk skal to bit sættes i knapregistret. Bit 0, for at indikere at der har været et knaptryk siden sidst registret blev checket, og den bit der hører til knappen, for at fortælle hvilken knap der er tale om. Interrupt handling rutinerne fylder hver især tre linier assembler, og er bygget op som følger (startknappen bruges som eksempel) :.org 0x02; move.b #0x3, 0x41000; rte; Den første linie.org, er ikke reelt en del af rutinen, men et direktiv til linkeren. Direktivet.org placerer den efterfølgende kode med argumentet som offset i forhold til starten af.text sektionen i linkerfilen. De valgte adresser kan findes i tabel 4.6 på side 65. Anden linie skriver værdien 3 ind i knapregistret, og den tredje returnerer fra interruptet, så programmet kan fortsætte. Værdien 3 fremkommer fordi bit 0 i alle tilfælde skal sættes for at indikere et knaptryk, og bit 1 skal sættes for at præcisere at det er startknappen der er tale om. Efter samme fremgangsmåde kan de øvrige værdier af knapregistret findes til 5, 9, 17 og 33. Aflæsning af knapregister For at give værdien af knapregistret mening i forhold til resten af softwaren til diktafonen skal en funktion til aflæsning af knapperne konstrueres. Denne funktion skal kunne kaldes fra alle diktafonens tilstande, og skal returnere en værdi der fortæller om der har været et knaptryk, og hvilken knap der er tale om. Efter hver aflæsning skal knapregistret nulstilles, så et nyt tryk på samme knap også kan registreres. Funktionen skrives i C, og ser ud som følger: char HentKnap(void) { char status=0; status=knapregister; KNAPREGISTER=0; return status; } KNAPREGISTER sættes op i headerfilen for den samlede software til diktafonen, og er en pointer til knapregistrets adresse, 0x Funktionen returnerer den nuværende værdi af knapregistret, og returværdierne får således betydninger som opført i tabel 5.2 på modstående side. For at slå en knap fra i et bestemt tilfælde ignoreres værdien for netop denne knap, og for at bestemme forskellige funktioner for knapperne behøves blot forskellige reaktioner på returværdien fra HentKnap.

91 Software til displayet 79 Returværdi Betydning 0 Ingen ændring 3 Start 5 Stop 9 Track 17 Mode 33 Slet Tabel 5.2: HentKnap funktionens returværdier 5.4 Software til displayet Sidste tiltag i forbindelse med displayet, er design og udfærdigelse af koden. Dette udføres efter opdelingen i det efterfølgende afsnit. Som hjælp til kodningen benyttes pseudokode. Til pseudokoden er valgt et kode-nært abstraktionsniveau, hvorfor denne er irrelevant for læseren og derfor ikke dokumenteret. Koden findes på vedlagte cd (CD- ROM,, display/). Koden til display Foruden entryfunktionerne beskrevet i afsnit på side 12, er det oplagt at konstruere en funktion SkrivTilDisplay. Denne kaldes af entryfunktionerne og placerer data det rigtige sted på displayet. I forbindelse med SkrivTilDisplay skal opsætningstiderne for displayet medtages i designet for at opnå den rigtige timing. Da entryfunktionenen InitDisplay omfatter opsætning af displayet medtages denne i efterfølgende opdeling i underafsnit: Timing under udlæsning. Initialisering. Entryfunktioner. Sidstnævnte (Entryfunktioner) findes udelukkende på vedlagte cd, da entryfunktionerne designes direkte ud fra funktionsspecifikationerne i afsnit på side 12. Ud fra databladet (CD-ROM,, datablade/l1614.pdf) til displayet findes de maksimale behandlingstider i displaycontrolleren ved instruktioner og data til henholdsvis 1 64 ms og 40µs. Tiderne taget i betragtning konstrueres en while-løkke, der indsættes efter hver udlæsning til display, således at displayet får den krævede behandlingstid inden næste instruktion eller data kan sendes:... int i = 0; while(i<k) /* k angiver antal gennemløb */

92 80 Softwaredesign { }... i++; Tiden for et gennemløb findes ud fra den assemblerkode krydscompileren genererer. Assemblerkoden for whileløkken ved opsætning af data består af følgende instruktioner:.l3:... moveq.l #4,%d0 cmp.l -4(%a6),%d0 jbge.l5 jbra.l4.align 2.L5: addq.l #1,-4(%a6) jbra.l3.align 2... Hvor L3 og L5 gennemløbes så længe værdien i a6 er mindre end d0. De bus-cycles 1 instruktionerne tager for L3 er henholdsvis 4, 4 og 10 hvis der springes til L5 og 8 hvis ikke, samt 10 for jbra. For L5 tager instruktionerne henholdsvis 8 og 10.(Clements, 1997, side 953). Ved.align 2 er der tale om et assembler-direktiv og ikke en instruktion, hvorfor denne ingen bus-cycles tager. Da der i afsnit 4.4, vedrørende display-hardware, indsættes waitstates svarende til een clock-cycle. Bliver tiden for en bus-cycle udfra føromtalte instruktionstider: 5 clock_cycles 1 8MHz º 625ns Dermed tager hvert gennemløb af whileløkken pånær den sidste: Hvorimod den sidste tager: Dette medfører at, Ì 4 â 4 â 10 â 8 â 10Í bus_cycles 625ns º 22 5µs Ì 4 â 4 â 8 â 10Í bus_cycles 625ns º 16 25µs k º 40µs 16 25µs 9µs º 1 07 gennemloeb for at overholde opsætningstiden på 40µs. Da der er tale mindst 1.07 gennemløb, og der kun kan gennemløbes et helt antal gange, oprundes til 2 gennemløb af while-løkken. På samme måde udregens antal gennemløb ved opsætning af instruktioner, med den undtagelse at krydscompileren her genererede en instruktion mindre. 1 Een bus-cycle tager normalt 4 clock-cycles med mindre der indsættes wait-states, hvorved bus-cyclen forøges med de antal cloc-cycles, indsættelse af wait-states resulterer i.

93 Software til displayet 81.L8:... cmp.l #234,-4(%a6) jble.l10 jbra.l9.align 2 L10: addq.l #1,-4(%a6) jbra.l8.align 2... Dette medfører følgende antal gennemløb for at overholde opsætningstiden for instruktioner: k º 1 64ms ÖÌ 4 â 10Í bus_cycles 625ns Ì 4 â 10 â 8 â 10Í bus_cycles 625ns º 81 56gennemloeb 82gennemloeb Initialisering Displayet initialiseres gennem funktionen InitDisplay, der resetter displayet i instruktionsmode og skriver Digital Diktafon version x.x.x i data-mode. Dette ses udfra datablad (CD-ROM,, datablade/l1614.pdf) gennem funktionskald til SkrivTil- Display. Yderligere forklaringer til hvorledes displayet initialiseres fås udfra kommentarerne til koden i programstumpen: void InitDisplay(void) { SkrivTilDisplay(0x0038,1); /* Tallet 1 oplyser at dette er en instruktion */ SkrivTilDisplay(0x0038,1); /* Sætter datalængden til 8 bit og */ SkrivTilDisplay(0x0038,1); /* opsætter 4 linjers 5x7 dot matrix display */ SkrivTilDisplay(0x0006,1); /* Sætter skriveretning fra venstre mod højre */ SkrivTilDisplay(0x000C,1); /* Tænder displayet */ SkrivTilDisplay(0x0001,1); /* Clear display */ SkrivTilDisplay(0x0044,0xC0); /* 0x0044 = D, 0xC0: 2. linje matrix 0 */ SkrivTilDisplay(0x0069,0x00); /* 0x0069 = i, 0x00: incrementer fra */ SkrivTilDisplay(0x0067,0x00); /* forrige addresse */... Dermed er koden til displayet designet og programkoden skrevet. Dette i sammenspil med HW-delen i afsnit 4.4 resulterer i at displayet er klar til simulering og test. Dette omtales bla. i afsnit C.4.

94 82 Softwaredesign 5.5 Software til docking Det skal fra diktafonen være muligt at overføre en optaget fil til en PC. Til styring af denne overførsel opbygges en funktion, der kan kaldes af hovedløkken, når en fil skal overføres. Opbygningen tager udgangspunkt i, at PC-programmet til modtagelse af en fil fungerer ved at det modtager en byte ad gangen, indtil der modtages de 4 karakterer "STOP", hvorefter det afsluttes, se afsnit 5.8 på side 85. C-programmet for dockingfunktionen kan ses på CD-ROM en (CD-ROM,, docking/), og den overordnede opbygning af dockingfunktionen kan ses på figur 3.20 på side 29. Dockingfunktionen skal sende data til PC en via dennes serielle kommunikationsport. Dette sker ved at sende dataene til ACIA en, der derefter sørger for overførslen til PC en (afsnit 4.1 på side 37). Som det ses i tabel 4.1 på side 41, er ACIA en tildelt adresserne 0x og 0x800003, der er beskrevet i tabel 5.3 (Clements, 1997, side 711). Adresse R/W Funktion Mnemonic $ Write only Control Register CR $ Read only Status Register SR $ Write only Transmit Data Register TDR $ Read only Receive Data Register RDR Tabel 5.3: Beskrivelse af registrene i ACIA en. Når dockingfunktionen kaldes, sikres det at overførselsparametrene i ACIA en er korrekte, m.h.t. paritet, stopbit m.v. ved at sætte Control Register (CR). Samtidig sættes interruptmasken til 5, således at overførslen ikke kan afbrydes af knaptryk. Overførslen til ACIA en sker ved at overføre en byte til Transmit Data Register (TDR), og derefter polles på Status Register (SR) til ACIA en er klar til næste byte. Dette fortsætter til hele tracket er overført, hvorefter de 4 karakterer "STOP"overføres, så PC-programmet ved at et helt track er modtaget. Til sidst sættes interruptmasken til 0. Selve overførselsproceduren for docking er ikke ændret i forhold til proceduren med TS2MON, hvilket betyder at overførslen eksempelvis ikke benytter paritetskontrol. Derved er der ingen fejlkontrol ved overførslen og modtager PC-programmet ingen data, fortsætter diktafonen uhindret med at sende data. Denne konstruktion bruges for at holde overførslen så simpel som muligt, og simplificere det software, der skal styre overførslen. Det bemærkes at der bruges polling ved overførslen. En interruptstyring til overførslen af data havde eventuelt været mere hensigtsmæssig, da unødig processorkraft bruges, mens der polles på ACIA en. Da der i dette tilfælde ikke skal udføres andre opgaver af M68k, eksempelvis interrupts, tages der dog ikke hensyn til dette. Samtidig er det ikke nødvendigt at ændre opsætningen af ACIA en, der ved overførsel med TS2MON er sat op til at polle ved overførsel. Endvidere skal det siges at overførslen sættes til baud i programmet, da dette er den ønskede hastighed ved overførsel, med de muligheder der forefindes. %

95 Hovedløkke Hovedløkke I afsnit om hovedløkken er overordnet beskrevet hvorledes denne er struktureret. Selve kildekoden med tilhørende kommentarer forefindes på vedlagte CD (CD-ROM,, hovedlykke). Konstruktionen i hovedløkken er baseret på en switch-case struktur i en while-løkke. Efter en sekventiel initialisering af diverse elementer entreres while-løkken som en uendelig løkke:... while(1 == 1) {... Dette er valgt, da der ikke udenfor selve hovedløkken forefindes relevante funktionskald for brugeren. Ved interrupts fra knapperne eller ADC/DAC returneres også til hovedløkken samme sted som denne blev afbrudt. Hovedløkken reagerer på knaptryk ved at kalde funktionen HentKnap, der returnerer en værdi svarende til det aktuelle knaptryk. Hvis ingen knapper er trykket, returnerer funktionen 0. Returneres et knaptryk til hovedløkken, kontrolleres først om variablen i er sat til 1, 2 eller 3, der angiver i hvilket mode diktafonen befinder sig, og om denne evt. skal tælles op i tilfældet hvor mode-knappen er trykket. Kontrolstrukturen for denne beslutning er en if-sætning. Dernæst vælges en af flere muligheder i form af den tidligere omtalte switch-case struktur. Ved valg af denne struktur, samt at fylde samtlige ikke anvendte interrupteregistre med op-koden for RTE, sikres, at kun de relevante knaptryk får betydning for hovedløkkens forløb.... switch(hentknap()) { case 17: /* Mode knap trykket - gå til næste mode */ { i++; break; }... I det viste eksempel kontrolleres om hex-værdien 17, svarende til tryk på mode-knappen, er trykket. Er dette tilfældet adderes 1 til i, hvorefter der returneres fra switch-case niveauet til if-løkken, der fortsætter videre til næste mode, og genoptager rutinen med funktionskald af HentKnap. I hovedløkken er indbygget en fejlhåndtering, der håndterer negative returværdier fra de kaldte entryfunktioner ved at udskrive en, til værdien hørende, fejlbesked på displayet.... n = LukFil(); /* Lukker filen */ if(n < 0) /* Hvis fejl kald - fejlhaandtering */ FejlHaandtering(n);...

96 84 Softwaredesign I det viste tilfælde er det entryfunktionen LukFil, der sættes i variablen n. Funktionen FejlHaandtering er defineret i selve hovedløkken. 5.7 Fejlhåndtering Til brug ved debugging af systemet er udarbejdet en central fejlstyringsfunktion, UdskrivFejlKode. I denne funktion samles de fejlbeskeder der kan forekomme fra entryfunktionerne. Processerne har som beskrevet i afsnit fået tildelt områder mellem 10 og 69, fordelt med 10 mulige fejlkoder for hver proces. Disse fejlkoder er gennem implementeringen af entryfunktionerne blevet fordelt som vist i tabel 5.4, og bliver ved et kald af UdskrivFejlKode udskrevet på displayet, uden fortegn. Processerne optag og afspil er i praksis kodet samlet, og deler derfor fejlområdet 10 til 19, der oprindeligt var afsat til optag. Aflæs knapper returnerer ingen fejl til systemet, og optræder derfor ikke i tabellen. De fejl der optræder i dockingprocessen relaterer direkte til filsystemet, og bliver videresendt til fejlstyringen herigennem. Dockingprocessen, der i designafsnittet fik tildelt fejlområdet 60 til 69, optræder derfor ikke i tabel 5.4. Fejlkode Funktion Fejlbeskrivelse 11 StartAfspil DAC er startet allerede. 12 StartAfspil ADC kører allerede, stop først ADC 13 StopAfspil DAC er stoppet allerede 14 StartOptag ADC er startet allerede 15 StartOptag DAC kører allerede, stop først DAC 16 StopOptag ADC er stoppet allerede 30 VisMode Ugyldigt mode 31 VisTrack Ugyldigt track 41 SletBlokke Blokken findes ikke 42 OpretFil Der kan ikke oprettes flere filer 43 OpretFil, SkrivTilFil Ikke mere fri hukommelse 44 SkrivTilFil Fejl i skriv_offset (måske er filen ikke oprettet) 45 LukFil Fillængden er ugyldig (<=0) 46 HentFilLaengde, Filen findes ikke SletFil, AabenFil 47 HentAntalFiler Filantallet ugyldigt (0 Û f ilantal eller f ilantal Û 20) 48 HentLedigPlads Der er brugt mere plads end der er ledig Tabel 5.4: Fejlkoder fordelt på entryfunktioner.

97 PC-programmet PC-programmet I afsnit 3.2 på side 30 blev PC-programmets forløb og entryfunktioner designet, og ideerne bag designet blev gennemgået. Selve programopbygningen for modtagefunktionen Receive og konverteringsfunktionen WavConvert bliver i det følgende afsnit beskrevet i flere detaljer, og det endelige program kan ses i (CD-ROM,, pcprg). Modtagefunktion Kommunikationen med PC en foregår v.h.a. dennes serielle kommunikationsport, kaldet ttys0 under Linux. Ud fra denne betingelse kan flere forskellige metoder til dataoverførslen benyttes. De væsentlige forskelle mellem de metoder der gennemgås her under ligger i master-slave forholdet mellem PC en og diktafonen. Det er muligt at lade en af enhederne være master i forholdet, og styre hele dockingsekvensen fra den ene part; eller man kan dele kontrollen mellem de to enheder. I dette tilfælde vælges den første model, hvor en af enhederne er alene om at være master på linien, og styringen lægges hos diktafonen. Dette gøres på baggrund af følgende opnåede fordele: Der bliver tale om envejskommunikation. Programmeringen af PC-programmet forenkles. Duplikation af funktioner undgås. Når diktafonen fungerer som master behøver PC en ikke sende information den anden vej. Dette medfører at der på PC en kun skal implementeres en modtagefunktion, og programmeringen af denne del af softwaren forenkles således. Hvis modtagefunktionen vælges af menuen, polles der på ttys0 porten på PC en, og når diktafonen sender data, vil PC-programmet modtage disse og gemme dem i en buffer, indtil de 4 karakterer "STOP"modtages. Derefter er det muligt at gemme dataene som en PCM-fil under et valgt filnavn med endelsen.pcm, hvilket betyder at brugeren skal angive et filnavn. Ved at implementere overførlsen på denne måde, er det kun nødvendigt med funktioner som Næste Track og Slet Track på diktafonen, hvor de i forvejen er nødvendige til andet end overførsel. Med en sådan opbygning af modtagefunktionen er det nødvendigt med en timerfunktion til hvis der ikke modtages data, da PC-programmet ellers vil stå og polle uendeligt, hvis ikke det afbrydes på anden vis. Timeren sættes til 10 sekunder. Det er også nødvendigt at sikre sig at PC ens POSIX-indstillinger 2 er korrekte, for at overførslen kan foregå. Her tænkes på baudrate og paritetskontrol. For at overførslen fra diktafonen til PC en kan foregå, åbnes kommunikationsporten og sættes i PCprogrammet lig med en variabel af typen int. Herefter kan portens indstillinger ændres gennem denne variabel, ved brug af en struct der forefindes i headerfilen termios.h (Serial Programming Guide for POSIX Operating Systems, 2002). På figur 3.22 på side 31 kan der ses et flowchart for modtagefunktionen, og i (CD-ROM,, pcprg) kan kildekoden til PC-programmet ses. 2 POSIX er et standard sæt operativsysteminterfaces for UNIX-systemer.

98 86 Softwaredesign Konverteringsfunktion Efter det PCM-data der optages på diktafonen er blevet overført til PC en skal det være muligt at konvertere til et format der accepteres af gængse lydafspillere, da en sådan ikke programmeres i forbindelse med dette projekt. Konverteringsfunktionen implementeres ved at den filheader der skal bruges i en fil af waveformat genereres. Opbygningen af en wavefil er illustreret i tabel 5.5, som er baseret på (WAVE PCM soundfile format, 2002). Blokstørrelse (bytes) Bloknavn 4 ChunkID 4 ChunkSize 4 Format 4 SubChunk1ID 4 SubChunk1Size 2 AudioFormat 2 NumChannels 4 SampleRate 4 ByteRate 2 BlockAlign 2 BitsPerSample 4 SubChunk2ID 4 SubChunk2Size Data Tabel 5.5: Opbygning af wavefil De blokke der indeholder tekst er skrevet i ASCII, i little-endian form, mens blokke der indeholder talværdier er i big-endian 3. Se (Tanenbaum, 1999, side 59) for en forklaring af little- og big-endian. 3 Dette er omvendt i forhold til (WAVE PCM soundfile format, 2002), for at kunne generere en korrekt header på en maskine med en Intel processor.

99 PC-programmet 87 ChunkID - Bogstaverne "RIFF" ChunkSize mængden af lyddata Format - Bogstaverne "WAVE" SubCHunk1ID - Bogstaverne "fmt" SubChunk1Size - Størrelsen af resten af headeren - 16 for PCM AudioFormat - 1 = PCM NumChannels - 1 = mono SampleRate - Anført i Hertz, her 8000 ByteRate - SampleRate NumChannels BitsPerSample - her 8000 BlockAlign - NumChannel BitsPerSample 8 - her 1 BitsPerSample - 8 bits SubChunk2ID - Bogstaverne "data" SubChunk2Size - Mængden af lyddata i bytes Data - Lyddata Værdierne af de fleste blokke er faste i forbindelse med diktafonen, der genererer PCMdata med en samplerate på 8kHz, og en opløsning på 8bit. For to blokke, ChunkSize og SubChunk2Size, er det nødvendigt at kende størrelsen af PCM-filen før en header kan genereres. Denne størrelse findes i programmet ved at åbne filen, stille filpositionsindikatoren til end-of-file, og finde afstanden i bytes fra filpositionsindikatoren til starten af filen. Filen der ønskes konverteret hentes, headeren indsættes og filen kan nu gemmes under et valgt filnavn med endelsen.wav. Brugeren skal dermed forsyne filnavne for in- og outputdata som input til denne funktion. Processen for konverteringsfunktionen er visualiseret i flowchartet på figur 3.26 på side 35, og kildekoden kan ses i (CD-ROM,, pcprg-c/wavconvert.c).

100 6 Konklusion Formålet med denne rapport er beskrevet i problemformuleringen og munder ud i følgende spørgsmål: "Hvordan opbygges en digital diktafon med dockingstation omkring et Motorola mikroprocessorsystem?". Det var fra starten fastlagt, at det med diktafonen skulle være muligt at optage tale, afspille tale samt overføre optaget tale til en PC, og disse krav blev yderligere specificeret i problemanalysen. Til styring af de tre funktioner blev et minimumsystem opbygget, bestående af en M68k mikroprocessor, RAM-kredse, ROM-kredse og en UART til seriel transmission. TIl optagelse af tale blev en mikrofon benyttet, hvorefter det elektriske signal blev forstærket, filtreret og derefter digitaliseret. Endvidere blev en AGC implementeret. Til afspilning blev det optagne data konverteret med en DAC og derefter filtreret, så det kunne afspilles med en højttaler. For at det samlede system kunne fungere i samspil, blev designet en hovedløkke til styring af funktionerne og software til de enkelte funktioner samt et filsystem blev også designet. Dette blev programmeret i C...?? Et PC-program til modtagelse af PCM-data blev designet og programmeret. Dette gav mulighed for overførsel af data fra diktafonen til en PC, hvorefter det også var muligt at konvertere de modtagne data til wav-filformatet, der kan afspilles af flertallet af afspillere. AGC ikke med filsystem optimeringsmulig ADC/DAC fungerer diktafon ustabil, grunde?? Ikke kapacitet nok fra M68k? Display chip-selectet ved interrupt?

101 Litteratur Bentley, J. P. (1995). Measurement systems. Longman Scientific & Technical, third edition. Biering-Sørensen, S., Hansen, F. O., Klim, S., and Madsen, P. T. (2000). Struktureret Program-Udvikling. Ingeniøren bøger, first edition. CD-ROM. Vedlagt cd-rom. Clements, A. (1997). Microprocessor Systems Design. PWS Publishing Company, third edition. Digitized Sound - Notes on Digitized Sound ( ). Ebert, H. (1995). Elektronik Ståbi. Teknisk Forlag, seventh edition. File System Structure ( ). Oppenheim, A. V. and Schafer, R. W. (1999). Discrete-Time Signal Processing. Prentice Hall, second edition. Pulse Code Modulation (PCM) ( ). html. Sedra, A. S. and Smith, K. C. (1998). Microelectronic Circuits. Oxford University Press, fourth edition. Serial Programming Guide for POSIX Operating Systems ( ). Tanenbaum, A. S. (1999). Structured Computer Organization. Prentice Hall, fourth edition. WAVE PCM soundfile format ( ).

102

103 A Komponentliste Display Navn Type Specifikation Navn Type Specifikation R1 Modstand 10k U1 LC-Display PC1604ARS Knapper Lyd Navn Type Specifikation Navn Type Specifikation J6 16-benconnector CON16 MODE Knap SW KEY-Y1011 TRACK Knap SW KEY-Y1011 R27 Modstand 10k STOP Knap SW KEY-Y1011 R26 Modstand 10k START Knap SW KEY-Y1011 U27 PEEL 22CV10A SLET Knap SW KEY-Y1011 Navn Type Specifikation Navn Type Specifikation C1 Kondensator 1u R17 Modstand 2.5k C10 Kondensator 1u R19 Modstand 90k C11 Kondensator 1u R20 Modstand 10k C12 Kondensator 10u R25 Modstand 10k C13 Kondensator 100n R21 Modstand 20k C14 Kondensator 1000u R23 Modstand 5k C15 Kondensator 27p R24 Modstand 100k C16 Kondensator 6.8u U2 PEEL 22CV10A D1 Schottkydiode BAT85 U3 A/D-konverter ADC0820 D3 Schottkydiode BAT85 U4 Binær tæller 74HC4040 D2 Lysdiode LED U5 D/A-konverter AD7524 J1 16-benconnector CON16 U6 Binær tæller 74HC40103 J3 16-benconnector CON16 U7 Binær tæller 74HC161 J4 Microfon WM-034DB U8 Opamp TLE2022/301/TI J5 Højtaler U21 Opamp LM324

104 92 Komponentliste Navn Type Specifikation Navn Type Specifikation R2 Modstand 470 U26 Switched- MAX294 Capacitor Filter R3 Modstand 16.2k U22 Switched- MAX294 Capacitor Filter R22 Modstand 16.2k U23 Negativ spændingsregulator LM7905C R18 Modstand 240k U24 Positiv spændingsregulator LM7805C R16 Modstand 240k U25 Audioeffektforstærker LM380/DIP8 Minimumsystem Navn Type Specifikation Navn Type Specifikation C2 Kondensator 100n R13 Modstand 50k C3 Kondensator 22u R6 Modstand 10k C4 Kondensator 1u R7 Modstand 10k C5 Kondensator 1u R8 Modstand 10k C6 Kondensator 1u R10 Modstand 10k C8 Kondensator 1u R11 Modstand 10k C9 Kondensator 1u R15 Modstand 10k C7 Kondensator 15p R9 Modstand 324k D4 Schottkydiode BAT85 R14 Modstand 390 D5 Schottkydiode BAT85 SW1 Knap SW KEY- SPDT D6 Diode D1N4148 SW2 Knap SW KEY- SPST D7 Diode D1N4148 U9 PEEL 22CV10A D8 Diode D1N4148 U12 PEEL 22CV10A D9 Diode D1N4148 U17 PEEL 22CV10A J2 16-benconnector CON16 U10 M68k-processor MC68HC000 P1 9-benconnector CONNECTOR U11 ACIA MC6850 DB9 RAM1 RAM-blok HM U13 Voltage Supervisor TL7705A RAM2 RAM-blok HM U14 RS-232C linedriver MAX232 RAM3 RAM-blok HM U14 RS-232C linedriver MAX232 RAM4 RAM-blok HM U15 Baudrategenerator MC14411 ROM1 ROM-blok AM28F010A U16 8 MHz-krystal MCO1425B ROM2 ROM-blok AM28F010A U18 Delayelement SN74LS31 R4 Modstand 50k U19 3 til 8 prioritetsencoder 74LS138 R5 Modstand 50k U20 8 til 3 prioritetsencoder 74LS148 R12 Modstand 50k X1 Krystal M

105 B Apparaturliste I det følgende skema findes det udstyr, der er anvendt ved test af den konstruerede digitaldiktafon med dokingstation. Hvert anvendt apparat er anført ved type, navn, placering og AAU løbenummer. I rapporten henvises til de benyttede apparater ved hjælp af nummereringen i skemaet. Apparaturliste Nr. Type Navn Placering AAU Nr. 1 Funktionsgenerator EXACT, 1190 B1-101-K Strømforsyning Hameg, HM7042 B1-101-P Strømforsyning Hameg, HM7042 B1-101-P Oscilloskop Agilent, 54621A B1-101-F Mixed Signal Oscilloskop Agilent, 54621D B1-101-F X-Y Recorder Brüel&Kjær, 2308 B Measuring Amplifier Brüel&Kjær, 2636 B1-101-RACK Sine Generator Brüel&Kjær, 1051 B Distortion Analyzer AA501A Tektronix, TM503A B1-101-R

106 C Modultest Følgende afsnit omhandlende modultest er baseret på (Biering-Sørensen et al., 2000). Formålet med at modulteste alle moduler i diktafonen er, at mindske muligheden for fejlsituationer ved procesintegrationen, hvor det kan være svært at lokalisere en fejl, da flere moduler er koblet sammen i en enhed. Hardware Herunder forefindes en liste med hvad der skal undersøges ved modultesten: 1. Alle forbindelser testes. 2. Input og output testes med relevante instrumenter, eksempelvis et digitalt multikanaloscilloskop. 3. PLD-kredse testes med en dertil indrettet tester. 4. Hvor det findes relevant laves plots af input/output. Med et digitalt oscilloskop er det muligt at lave en logisk analyse af input og output for de forskellige enheder. Herved kan det f.eks. undersøges om grænsetider overholdes for enkelte sekvenser i en proces, og oscilloskopet er derfor et vigtigt instrument i testen af hardware. Desuden bruges andet apparatur til modultesten af hardwaren, alt efter hvor det findes nødvendigt. Testen af hardwaren udføres i visse tilfælde ved brug af softwaremoduler, der skrives til den enkelte hardwaremodultest. Software Nedenstående liste viser hvad softwaremodultesten skal indeholde: 1. C-koden debugges til den kan passere et gennemløb med lclint. 2. De funktioner det er relevant for, omskrives så de kan testes for funktionalitet. 3. Funktioner der skal tilgå bestemte steder i RAM en simuleres i BSVC, se afsnit C.1.

107 Softwaresimulering 95 Programmet lclint er et værktøj til at finde fejl i C-programmer. Det finder ikke blot syntaksfejl, men også uhensigtsmæssigheder der ikke resulterer i kompileringsfejl, men kan føre til fejl under afvikling af programmerne. lclint anvendes i projektet til at kontrollere C-kodens kvalitet. For at teste om en funktion i et modul opfører sig som forventet, kan et gennemtestet værtssystem (eksempelvis en PC med linux som operativsystem) anvendes som del af en testramme. Derved vil eventuelle fejl med stor sandsynlighed forefindes i koden og ikke i hardwaren. Værtssystemet vil derfor danne grundlaget for de testdrivere og -stubbe der anvendes under testen. Dette foregår således med et givet form for input (fil, tastatur eller input direkte i koden) som driver og standard-out (PC-skærmen) som stub. Da funktionerne i softwaremodulerne kan inddeles i to kategorier, anvendes to forskellige fremgangsmåder til test af funktionaliteten. De funktioner der direkte har med manipulation af lagerceller og perifære enheder at gøre testes med BSVC og resten testes med konstanter i koden som input og PC-skærmen som output. Et eksempel på en simuleringstest ses på figur C.1. Billedet viser BSVC i gang med at afvikle displaysoftwaren. Det bemærkes at på adressen 0xE00000 og 0xE00001 (et word) står værdien 0x0144, hvilket svarer til at displayet modtager data, og at det modtager bogstavet D (kapitel 5.4). Endvidere er selve diktafonen brugt til modultesten af både hardware og software. Et eksempel på dette kan være modultesten af den serielle kommunikationshardware i minimumsystemet, hvor testen af er sket ved, at TS2MON sender data til til PC-skærmen og dette kan aflæses. Modultesten for overførselssoftwaren for diktafonen er derefter udført ved at uploade softwaren, sammen med en testramme, til diktafonen og lade denne overføre en fil til en PC, hvorefter det ses om dataene i den overførte fil stemmer overens med det ønskede. Softwaren skal naturligvis testes med BSVC først. C.1 Softwaresimulering Den software der produceres af gruppen simuleres i BSVC, et softwaresimuleringsprogram der blandt andet kan simulere en M68k-prosessor. Det er her muligt at opsætte et miljø der minder om hardwaredelen af diktafonen. Med BSVC er følgende muligt: At tilføje RAM i den virtuelle simuleringsmodel: At uploade en srec-formateret (CD-ROM,, datablade/kpm68.pdf (appendiks C)) fil i den virtuelle RAM og eksekvere denne. Ved eksekvering af et program at se hvilke dataregistre, adresseregistre, RAMceller og perifære enheder der tilgåes C.1 Simuleringen er nødvendig for at minimere de fejlmuligheder der er under integrationstestene, og er derfor et vigtigt instrument i modultesten. Den er desuden også et udmærket værktøj under debugging, da simuleringsværktøjet gør det muligt at teste softwaren på samme måde som det kan gøres med TS2MON. Dog er det nemmere at ændre testmiljøet og for eksempel se om der skrives til de rigtige adresser.

108 96 Modultest Figur C.1: Screenshot af BSVC i gang med at afvikle displaysoftwaren på et simuleret M68k-microprocessorsystem En testopsætning med BSVC kan se således ud: 1. RAM-blokkene fyldes med nuller, hvis der står noget i dem. 2. Stack-pointeren og Program-counteren initialiseres (de to første long-words). 3. Det srec-formaterede program indlæses. 4. Simulatoren resettes og startes. 5. Med memory-vieweren kontrolleres indholdet af RAM-blokkene. C.2 Minimumsystem Ved modultest af minimumsystemet skal der undersøges følgende: Kan der læses fra ROM? Kan der læses fra og skrives til RAM? Kan der overføres data til og fra en PC? Efter opbygningen af minimumsystemet, brændes TS2MON på ROM en og systemet startes op. Kan dette gøres er to af ovenstående tests udført, da der i dette tilfælde kan

109 Optage-/afspilleenhed 97 læses fra ROM en, samt sendes data til og hentes data fra en PC, såfremt minimumsystemet skriver det ønskede på PC-skærmen. Eksempelvis kan kommandoen DISPLAY (CD- ROM,, datablade/tsmon2-6.pdf) gives, hvorefter det ønskes at minimumsystemets respons er indholdet af data- og adresseregistre, supervisorstack, stackpointer og statusregisteret. Er dette tilfældet, er modultesten af ROM og overførsel udført tilfredsstillende. RAM en testes med et program der skrives til formålet (CD-ROM,, ramtest/). Programmet konstrueres således at hele RAM en fyldes med kendt data, som derefter kan aflæses manuelt med TS2MON. I dette tilfælde fyldes RAM en med værdierne 0xFF for hvert byte og med kommandoen MEMORY undersøges grænseværdier. Udfra memorymap ligger grænserne for RAM fra 0x40000 til 0x og 0x til 0x300000, hvor de første 0x1000 bruges af TS2MON. Ved testen fandt gruppen at der var en fejl, når programmet skrev til adresse 0x60000, og ved nærmere undersøgelser viste det sig at det var et adresseben på M68k der ikke virkede. Med en ny processor kunne testen udføres uden fejl, og minimumsystemet må derfor siges at fungere korrekt udfra modultesten. Det skal nævnes at der fra adresse 0x til 0x og 0x til 0x er spejlinger af henholdsvis første ramblok og anden ramblok. Dette er dog ikke et problem, sålænge alt software designes, så der ikke skrives til disse adresser. C.3 Optage-/afspilleenhed C-koden til modulet er testet indledende i BSVC med en testramme bestående af en main-funktion som initialiserer interrupt handling rutinen til direkte gennemgang. Testen er gennemført med en SPU driver i form af manuelt at tilskrive byteværdier på A/D-konverteren adresse 0xA Derefter er handling rutinen kørt ved at sætte PC til 0x400E0 som svarer til at der kommer en autovektor interrupt request på niveau 4. Til sidst som manuel SPU stub er der opserveret at værdien fra 0xA00001 er skrevet ud til D/A-konverterens adresse på 0xA Herefter er koden blevet uploadet i RAM på systemet og via TS2MON er A/D konverteren manuelt startet og testrammen derefter afviklet. Resultatet var at en driver i form af en funktionsgenerator (1) 1 sendte et testsignal ind i systemet og fra effektforstærkeren kom signalet ud igen efter at have været digitaliseret til 8 bit med 8kHz. Antialiasfilter Antialiasfilteret er testet ved at lave et bodeplot fra af mikrofonforstærkeren og antialias filtret. Til testen er der anvendt et rackskab indeholdende en sinusgenerator (8), måleforstærker (9) og en x-y recorder (10). Bodeplottet er fremstillet ved at lade sinusgeneratoren lave et logaritmisk frekvenssweep fra 20 Hz til 20 khz med en spænding på 150 mv. Bodeplottet kan ses på figur C.2 på den følgende side. Ud fra bodeplottet, jvf. figur C.2, kan det ses, at filtret dæmper signalet med omkring 45 db ved 4 khz, hvilket ifølge de stillede krav anses for tilfredsstillende. 1 Henvisning til apparaturliste i appendiks B på side 93

110 98 Modultest Figur C.2: Bodeplot for antialias filter

111 Optage-/afspilleenhed 99 Rekonstruktionsfilter I forbindelse med testen hvor systemet kører med direkte gennemgang er rekonstruktionsfilteret testet. Systemet har fået et indgangssignal på 150mV ved 1kHz som bliver konverteret og skrevet ud til D/A-konverteren. FFT-analysen af signalet er foretaget med digitalt oscilloskop (4). PÅ figur C.3 ses FFT-analysen af signalet fra D/A-konverteren. På figuren kan selve signalet på 1 khz observeres samt dens aliassignaler omkring samplingsfrekvensen på 8 khz og 2 gange grundfrekvensen. 10 FFT-analyse af udgangssignal fra ADC Niveau [db] Frekvens [Hz] Figur C.3: FFT-analyse af udgangsignal fra D/A-konverter Efter rekonstruktionsfiltret ses på figur C.4 at aliassignalerne er filtreret væk. Dog optræder der en ny frekvenskomponent omkring 5 5 khz hvilket må skyldes støj tilføjet i forbindelse med effektforstærkeren til højttaleren. 0 FFT-analyse af udgangssignal fra forst rker Niveau [db] Frekvens [Hz] Figur C.4: FFT-analyse af udgangsignal fra forstærker

112 100 Modultest C.4 Display Displayfunktionen SkrivTilDisplay blev testet i BSVC (se afsnit C.1). Displayet sammen med displayfunktionerne blev testet ved først at initialisere displayet, og derefter at eksekvere disse funktioner med 1s mellemrum: 1. VisAntalTracks(12); 2. VisMode(1, 1); 3. VisTrack(11); Som driver benyttes en testramme indeholdende disse funktionskald. Stubben består af testpersonens aflæsning af displayet. Testen viste det forventede output, hvilket afslutter modultesten positivt. C.5 Filsystem For at teste filsystemet blev en stub i form af en testramme lavet med følgende overordnede udseende: 1. Opret en fil. 2. Skriv en identificerbar byte til filen 0xFFFF gange. 3. Luk filen. 4. Gentag pkt. 1-3 fire gange. 5. Slet fil nr Åben fil nr Hent en byte fra filen indtil enden af filen nås. (Der returneres til et andet sted i RAM en) 8. Fillængde. Testprogrammet blev først afviklet i BSVC. Efter programmet var afviklet, blev værdierne i de vigtige hukommelsesceller kontrolleret efter følgende liste: 1. Efter initialiseringsfasen. (a) Bliver inodetabellen og tabellerne over ledig og brugt plads oprettet korrekt? 2. Efter afvikling af hele testrammen. (a) Ligger der de data der skal, på det sted filen burde ligge? (b) Er inodetabellen og tabellerne over ledig og brugt plads blevet opdateret? (c) Er fil nr. 1 blevet hentet (kopieret) over i et andet sted i RAM en? Efter succesfuld test i simulatoren blev samme testramme overført til diktafonen og afviklet der. Da denne test også gik godt var modultesten af filsystemet færdig.

113 Knapper 101 C.6 Knapper Til modultest af knapperne og den tilhørende software blev et driver/stub-program som indeholder kald til alle de udviklede rutiner skrevet. Kildekoden til programmet findes på (CD-ROM,, knapper/). [*Note *] Testprogrammet er bygget op med initialiseringsrutinen KnapInit() først eksekveres, hvorefter en while-/switchkonstruktion kalder funktionen HentKnap(), og tester den returnerede værdi. En række adresser sættes op til knapperne, og ved et tryk på en knap skrives ASCII-karakteren A - svarende til hexværdien 41 - ind i de forudbestemte adresser. Ved et tryk på slet afsluttes while-løkken, og programmet afsluttes. Under testen observeredes IACK_ sekvensen på et multikanal-oscilloskop(5) [*Note *]. Som trigger benyttes IACK3_ fra 74LS138 dekoderen, og billedet på figur C.5 fremkommer ved et knaptryk. husk at vedlægge progr af typen... Figur C.5: Screenshot fra modultest af knapperne. Ud over de på billedet viste signaler blev også A 1 til A 3 observeret under testen. Disse viste som forventet at processoren er i gang med at bearbejde et interrupt på niveau 3. Efter AS_ og IACK3_ begge er blevet asserteret, følger DTACK_ mellem 18ns og 28ns efter. Efter OE bliver asserteret følger databen 6, der som beskrevet i afsnit 4.3 holdes høj når OE er asserteret. Der opstår først problemer når OE negeres. På dette punkt bør databen 6 igen gå i en højimpedant tilstand, så databussen er tilgængelig for andre enheder. Dette skift udebliver imidlertid, og databen 6 forbliver højt i en periode på ca. 700 ns efter OE er blevet negeret. Yderligere målinger viste at de resterende databen opfører sig på samme måde, og først reagerer på negeringen af OE med den samme forsinkelse. Afhængig af hvor længe en knap holdes nede kan dette medføre at processoren modtager et nyt interrupt, og latcher en forkert vektor. Ved debugging med TS2MON skete det gentagne gange at programmet fejlede på de adresser der hører til vektor 64, som er den første brugervektor. Det at der ikke var defineret nogen interrupt handling rutine for vektor 64, medførte at testprogrammet ikke længere kunne fungere, men skiftevis meldte en "illegal instruction"og en "address error", afhængigt af hvad der stod på adresserne 0x40200 til 0x40206 efter sidste powerup af systemet. For at omgå denne fejl blev KnapInit-funktionen i første omgang ændret så en RTE instruktion (op-code: 0x4E73) under opstarten bliver skrevet ind i de relevante

114 102 Modultest adresser. Denne tilføjelse medførte at en aflæsning af vektor 64 returnerede direkte til systemet, og knapperne fungerede mere pålideligt. For at undgå lignende fejlvektorer tilføjes funktionen VektorInit der skriver RTE ind i hele brugervektortabellen til initialiseringen. Efter eksekvering af denne kaldes KnapInit, og vektorer til knapperne sættes op. Resultatet af dette bliver at alle ubenyttede vektorer indeholder en RTE instruktion, og at en fejlaflæsning af vektoren ved et knaptryk således fører direkte tilbage til hovedløkken uden nogen effekt. C.7 Docking Når dockingmode vælges er det muligt at slette en fil, at overføre en lagret fil via seriel kommunikation gennem ACIA en eller vælge næste track. At slette en fil er implementeret i filsystemet og det samme gælder for valg af næste track og modultest af disse funktioner vil derfor ikke blive uddybet nærmere i dette afsnit. Endvidere er hardwaretesten for den serielle kommunikation beskrevet i afsnit C.2 på side 96, hvorfor der henvises dertil. I dette afsnit vil modultesten af softwaredelen for overførsel til PC blive gennemgået set fra diktafonen. Til test af overførselsprogrammet laves en testramme, der simulerer en funktion der kalder dockingfunktionen, og som kan åbne en fil samt hente data fra en fil. Herved bliver det testet hvordan dockingfunktionen reagerer med de mulige fejlbeskeder den kan få og hvad den gør når den modtager en byte. Docking simuleres sammen med testrammen i BSVC, hvor der kan gives forskellige informationer til dockingfunktionen. Denne sender, hvis der ikke meldes fejl, et bestemt antal bytes til adresse 0x og da dette fint kunne aflæses, var simulationen af dockingfunktionen i overensstemmelse med det ønskede. Derefter blev docking testet på minimumsystemet med testrammen og PC-programmet, og efter endt overførsel kunne de overførte data aflæses i PCM-filen på PC en. Dockingfunktionen må derfor siges at fungere tilfredsstillende. Dockingfunktionen, testrammen og Makefilen kan findes på vedlagte CD-ROM (CD- ROM,, docking/). C.8 PC-program PC-programmets funktioner er at modtage lydoptagelser fra diktafonen, samt at konvertere den modtagne data til waveformat. For at teste om disse funktioner er indarbejdet korrekt i programmet blev PC-programmet testet seperat fra resten af systemet. Modtagefunktionen Receive er bygget op så den i en periode på 10 sekunder afventer starten på en transmission fra diktafonen, og, hvis en transmission startes, afventer karaktererne "STOP", før modtageindstillingen forlades igen. Ved et manuelt reset af minimumsystemet sender programmet TS2MON tekststrengen "TSBUG 2 version "over serielforbindelsen. Denne egenskab udnyttes i modultesten ved at Receive omprogrammeres til at afvente karaktererne "ersi- istedet for "STOP". En succesfuld overførsel skal således under testen resultere i en fil med tekststrengen "TSBUG 2 v". Dette resultat blev opnået under flere gennemløb af testen, og modtagefunktionen kan derfor anses

115 PC-program 103 som funktionsdygtig på baggrund af modultesten. Da diktafonen ved modultesten af PC-programmet ikke var funktionsdygtig, forefandtes ingen PCM-filer at konvertere. Istedet blev en gammel LATEX-rapport benyttet, og kriteriet for at funktionen kan betragtes som funktionsdygtig var at den producerede fil kunne afspilles under både Linux, i programmet XMMS, og under Windows i programmerne WinAmp og Windows Media Player. Kriteriet blev opfyldt, og WavConvert betragtes som funktionsdygtig.

116 D Procesintegration D.1 Indledning Formålet med procesintegrationen er ved trinvis sammensætning af processerne, internt i diktafonens software, at teste samspillet mellem disse. Dokumentation af procesintegrationen grunder i SPU-modellen. Dog er denne ikke fulgt nøje, da omfanget af den udførte testintegration er begrænset. Det er således ikke udarbejdet en selvstændig testrapport for hver integrationstest; resultaterne er istedet indført i dette kapitel i de respektive afsnit. SPU-modellens afsnit testimplementation og Udførelse af test er på denne måde integreret i procesintegrationen. Referencer Grundspecifikationen for procesintegrationen er beskrevet i afsnit på side 25 i projektrapporten. Den er i høj grad opbygget omkring hovedløkken idet selve konstruktionen af denne foregår i integrationsfasen. Testens omfang og begrænsning Denne test omfatter integrationen af samtlige processer i diktafonens software, samt samspillet med PC i docking-mode. Godkendelse For at denne test kan godkendes, skal det endelige testresultat vise en fejlfri integration af samtlige processer. Hermed svarer det forventede output til det faktiske ved alle planlagte testinput. D.2 Testemner trapporten opstilles rocesser på nummeform for gengivelse [*Note *] Testemnerne omfatter de følgende fem processer: P1: Aflæs knapper. P2: Behandl displaydata. P3: Afspil/optag.

117 Testdesign 105 P4: Filsystem. P5: Docking/UART. D.3 Testdesign Procesintegrationstesten designes og gennemføres ved brug af drivere og stubbe til kontrol af henholdsvis input til og output fra processerne. Som ovenfor nævnt integreres processerne sekventielt, hvor første test (IT1) vil omfatte testemnerne P1 og P2, anden test (IT2) P1, P2 og P3 og så videre. Samlet vil testen således strukturelt få udseendet som på figur D.1. % d $± ²œ³7 ^ µ7 ª«R ^µh¹œ³7²œº7 ºh» ^ ³`¼ º^³^½ ³ ª«7 ^» ¾% ½ ³^À ª«ÁB» ¼G ½ µ7â ª«H ÃHÄ^ÅH±» ² À Figur D.1: Procesintegrationsplan for diktafonen. Som det ses af figuren opdeles procesintegrationstesten (IT) i fire (IT1-IT4), som herunder vil blive beskrevet nærmere. I alle fire IT findes en driver, der som standard giver følgende knaptryk som input: Start. Stop. Track. Slet. Mode.

118 106 Procesintegration IT1 Æ ÇOÈkÈIÉEÊ7ÈIË Ì ÍIÎOÏ ÍIßå Ú7Û ÔHÚ+ÕHÖ Ø Ù^áœÛ à Õ Ð&ÑœÒ ÓoÔ#Õ Ö7Ø Ù7Ù Ú7Û ÜÚ Ý7Ø Ö7Þ ÒBÞ ß Ô Ù7Ò Ø8à ÞhØ8áœØ ÍIÆ ÊEâEã8Ð&ädÌ Ê7ÈIÜË Figur D.2: Integrationstest af trin IT1. INTTEST1.DRV: Driveren skal give P1 diverse knaptryk. Knapperne benyttes som driver. DISPLAY1.STB: Stubben skal vise korrekte symboler i henhold til diverse knaptryk. Displayet benyttes som stub. Som en rettesnor for udførelsen af testen benyttes nedenstående skema, der beskriver hvilke knaptryk, der skal testes, samt hvilket output, der forventes. Mode Input Ønsket output Faktisk output REC start o (tegnet for optag) o 2 x start ædæ (tegnet for pause) ædæ stop # (tegnet for stop) # slet Ingen reaktion Ingen reaktion track Ingen reaktion Ingen reaktion mode Afspillemode Afspillemode PLAY start > (tegnet for afspil) > 2 x start (tegnet for pause) ædæ stop # (tegnet for stop) # slet Ingen reaktion Ingen reaktion track Ingen reaktion Ingen reaktion mode Dockingmode Dockingmode DOCK start > (tegnet for docking) > 2 x start Ingen reaktion Ingen reaktion stop Ingen reaktion Ingen reaktion slet Ingen reaktion Ingen reaktion track Ingen reaktion Ingen reaktion mode Optagemode Optagemode

119 Testdesign 107 IT2 ç è7é8é`êbëbé`ì í îyï7ð ç è é^é^êbëbé`ì í îyï ðhì î ÿ úû õ úrö øù û ö ñhò ó ô&õ ö øùgù úû ñh ø ó ÿ þ ø õ û ÿ übú ýø þó þ ÿ õ ùó ø þgø ø ñhò õ ùÿ ó îyç ë ñ Bìí ëbé^ü Hé^ñ kí ñ ^ë Hç í ëbé`übì Figur D.3: Integrationstest af trin IT2. INTTEST2.DRV: Driveren skal give P1 diverse knaptryk. Knapperne benyttes som driver. INTTEST2.DRV2: Driveren skal give input til det analoge indgangstrin. En funktionsgenerator benyttes. DISPLAY2.STB: Stubben skal vise korrekte symboler i henhold til diverse knaptryk. Displayet benyttes som stub. OPTAG_AFSPIL2.STB: Stubben skal indeholde information, der indikerer start og stop af afspille- og optageenheden. Desuden skal den ikke reagere på andre knaptryk end start, pause og stop. For at teste afspille- og optageenheden uden brug af filsystemet, sendes signalet fra funktionsgeneratoren direkte (med en enkelt hukommelsescelle som mellemled) fra optageenheden til afspilleenheden. Herunder ses en tabel over resultatet af testen med en 1 khz sinus fra funktionsgeneratoren og diktafonen i REC-mode: Input - knaptryk Ønsket output - lyd Faktisk output - lyd start 1kHz sinus 1kHz sinus 2 x start ingen lyd ingen lyd 3 x start 1kHz sinus 1kHz sinus stop ingen lyd ingen lyd track ingen lyd ingen lyd mode ingen lyd ingen lyd slet ingen lyd ingen lyd Under testen viste det sig, at de tre ting uden for minimumssystemet - knapper, display og optage-/afspilleenhed - ikke virker, når de alle tre er koblet til minimumssystemet samtidigt. De virker to og to, hvilket kunne betyde, at den elektriske kapacitet tilkoblet

120 H H 108 Procesintegration databussen, når alle tre enheder er tilsluttet, overstiger hvad processoren kan håndtere (CD-ROM,, datablade/mc68000um.pdf). Testresultatet er derfor forsøgt opnået uden displayet tilsluttet. Ofte hændte det, at der opstod en fejl, og systemet returnerede til TS2MON med enten: "Uninitialized exception", "Address error", "Illegal instruction"eller "Bus error". Som det ses af fejlmeddelelserne bærer de præg af tilfældigheder, hvilket gjorde, at kilden eller kilderne til disse fejl var svære at spore. Under resten af integrationstesten forblev displayet frakoblet. Dette valg blev truffet på baggrund af en ressourceprioritering i forbindelse med den korte tilbageværende tid til rapportaflevering. IT3! #" 7 =>213?) 2@+,1.109;3 8>+ %$'& (*)#+-,/.10/012/ ,61&-6/7 )-01&.98:6/.<;'. %$') 017 & 09;I.1J A B%DC<E B1F4" EG!BA C1 B/F4D" /!EK# B1F4" Figur D.4: Integrationstest af trin IT3. INTTEST3.DRV: Driveren skal give P1 diverse knaptryk. Knapperne benyttes. INTTEST3.DRV2: Driveren skal give input til det analoge indgangstrin. En funktionsgenerator benyttes. DISPLAY3.STB: UDGÅR OPTAG3.STB: Stubben skal indeholde information, der indikerer start og stop af optageenheden. Desuden skal den ikke reagere på andre knaptryk end start, stop og pause i REC-mode. En lysdiode der lyser når der optages benyttes. AFSPIL3.STB: Stubben skal indeholde information, der indikerer start og stop af afspilleenheden. Desuden skal den ikke reagere på andre knaptryk. Højttaleren benyttes sammen med et oscilloskop.

121 Testdesign 109 Herunder ses en tabel over resultatet af testen med en 1 khz sinus fra funktionsgeneratoren: Mode Input - knaptryk Ønsket output Faktisk output REC start diode on diode on 2 x start diode off diode off 3 x start diode on diode on stop diode off diode off start diode on diode on 2 x start diode off diode off 3 x start diode on diode on stop diode off diode off track ingen reaktion ingen reaktion mode skift til PLAY skift til PLAY slet ingen reaktion ingen reaktion PLAY start 1 khz sinus 1 khz sinus 2 x start ingen lyd ingen lyd 3 x start 1kHz sinus 1kHz sinus stop ingen lyd ingen lyd track trackskift trackskift mode skift til DOCK skift til DOCK slet ingen reaktion ingen reaktion Igen var systemet ustabilt under testen, og returnerede med fejlbesked til TS2MON. IT4 INTTEST4.DRV: Driveren skal give P1 diverse knaptryk. Knapperne benyttes. INTTEST4.DRV2: Driveren skal give input til det analoge indgangstrin. En funktionsgenerator benyttes. DISPLAY4.STB: UDGÅR OPTAG4.STB: Stubben skal indeholde information, der indikerer start og stop af optageenheden. Desuden skal den ikke reagere på andre knaptryk end start, stop og pause i REC-mode. En lysdiode der lyser når der optages benyttes. AFSPIL4.STB: Stubben skal indeholde information, der indikerer start og stop af afspilleenheden. Desuden skal den ikke reagere på andre knaptryk. Højttaleren benyttes sammen med oscilloskop. OVERFØRTFIL4.STB: Den overførte fil benyttes som stub. Forud for IT4 blev punkterne i IT3 gennemgået; der er derfor to filer på diktafonen forud for IT4. Input/output-skemaet for IT4:

122 x w z z u z 110 Procesintegration L%M!NEOPQRELDS TFQUV TFn o:`1apz `@\ ]/^1_9q'a r>\ NWX Y[Z#\ ]1^1 1`1a ƒ!neqp me g e l h ek gij hg f d e b c hi k } j me k mc jl i~h j b {u yz xw vu ts b {u t vu ~ x b {u x { v b {u y u w t~ Figur D.5: Integrationstest af trin IT4.

123 Accepttest 111 Mode Input - knaptryk Ønsket output Faktisk output DOCK start fil på PC fil på PC stop ingen reaktion ingen reaktion track trackskift trackskift mode skift til REC skift til REC slet ingen reaktion ingen reaktion slet start fil slettet fil slettet For at kontrollere det sidste punkt blev den slettede fil forsøgt afspillet; det kunne den forståeligt nok ikke, og testen var afsluttet. D.4 Accepttest Formålet med accepttesten er, at eftervise hvorvidt det færdige produkt overholder kravspecifikationen. D.4.1 Generel systembeskrivelse Det overordnede system består af en diktafon, der kan optage og afspille tale. Derudover kan diktafonen overføre lagret tale til en PC. D.4.2 Eksterne grænseflader Det er vigtigt for den efterfølgende accepttest, at de fysiske krav til diktafonen er opfyldt. Altså skal de eksterne grænseflader være til stede, så der kan foregå den nødvendige kommunikation mellem hhv. bruger og diktafon, samt computer og diktafon. Bruger Diktafon Diktafon Bruger Start optagelsen Afspil optagelsen Pause i optagelsen/afspilningen Slet optagelsen (2 tastetryk) Vælg optagelsen Stop optagelsen Lydniveau (afspilning) ON/OFF Rec Play Pause Delete Tracknummer (Aktuelt) Antal tracks Tilbageværende hukommelse Dockinginformation Herunder kontrolleres, at alle funktionerne med tilhørende displaysymboler forefindes på diktafonen.

124 112 Procesintegration D.4.3 Test af de specifikke funktionelle krav Optagelse af tale (mikrofon): Jf. kravspecifikationen Krav til optagelse af tale Testkriterier 1.a Kvalitet: Telefonkvalitet Denne test er svær at gennemføre (skal som minimum individuel uden samtidigt at teste opfyldes). andre funktioner i produktet. Dog kan følgende gennemføres: Er talen forståelig ved afspilning på computeren?: Der opstilles et forsøg, hvor den afspillede tale sammenlignes med telefonisk tale med samme information. 1.b Kapacitet: 5 min. Hvor mange minutters optagelse kan diktafonen rumme? 1.c Mulighed for opdeling af ka- Hvor mange tracks kan optages på pacitet i flere optagelser. 1.d Automatisk indstilling af optageniveau. 1.e Optagelser skal kunne slettes på den mobile enhed. diktafonen? Afprøv optagelsen (og dermed afspilningskvaliteten) ved skiftende taleniveauer. Kan enkelte tracks slettes på diktafonen? Afspilning af tale (højttaler): Jf. kravspecifikationen Krav til afspilning af tale Testkriterier 2.a Indstilling af lydniveau. Kan lydniveauet indstilles under afspilning? 2.b Skifte mellem optagelser Er det muligt at skifte mellem optagelserne? 2.c Start/stop/pause. Er det umiddelbart muligt at starte, stoppe og pause en afspilning? 2.d Kvalitet: Telefonkvalitet Er talen forståelig? Jf. punkt a i testkriterierne for optagelsen.

125 Accepttest 113 Overførsel af optagelser til PC Jf. kravspecifikationegelser til PC Krav til overførsel af opta- 3.a Vha. RS-232 protokol til serielporten. Testkriterier Er det muligt at overføre optagelserne til en PC ved brug af seriel kommunikation med RS-232 protokollen? 3.b Filformat på PC (wav) Hvilket filformat findes på PC efter overførsel og konvertering? Her kontrolleres om headeren opfylder kriterierne for wav-filer. 3.c Højeste hastighed: 115kbps. Overføres optagelserne til PC med en maksimum hastighed af 115kbps? [*Note *] Tilstandsdiagram skal skrives med acceptteste D.4.4 Tilstandsdiagram For at testpersonerne bedre kan følge hvilken tilstand diktafonen befinder sig i er i dette afsnit vist tre tilstandsdiagrammer, hvor diktafonen opfattes som et blackbox apparat. Der er 3 overordnede modes diktafonen kan arbejde i, og disse er: Optagemode, afspillemode og dockingmode. Guiden er et supplement til det grafiske tilstandsdiagram som beskriver de enkelte tilstande nærmere. Hvis det i en given tilstand er muligt at udføre et ikke defineret tryk i forhold til tilstandsdiagrammet skal diktafonen ignorere dette tryk. Optagemode Š? IŠ? Ž Š? Š ŠŒ Ž œ Š ŠŒ - Ž Š? Š ŠŒ Ž š Š?ˆ Š? ž! EˆpŠŒ ŠŒ Š? Ž ˆ Š? Ž ŠŒ ŠŒ > ˆ ŠŒ Ž Š? Š? Figur D.6: Tilstandsdiagram i optagemode

126 114 Procesintegration Stoppet optagelse: Udgangspunkt når der skiftes optagemode. Gyldige tryk: Start, Næste. Optager talesignal: Diktafonen starter signalkonverteringen fra analog til digital og det digitale signal gemmes / tilføjes i det valgte track. Gyldige tryk: Stop, Start (=pause). Pause i optagelse: Det gemte signal afsluttes ikke i filsystemet og diktafonen er umiddelbart klar til at fortsætte optagelsen. Gyldige tryk: Stop, Start (=pause). Næste track: Det valgte track tælle op med en. Når det sidste track er valgt skiftes der til track nr. 1. Gyldige tryk: Ingen (Går umiddelbart tilbage til Stoppet optagelse ) Afspillemode ª «< Ÿ < Ÿ! p < % ª «p < Figur D.7: Tilstandsdiagram i afspillemodemode Stoppet afspil: Udgangspunkt når der skiftes til afspillemode. Det aktuelle track nulstilles, så diktafonen er klar til at afspille fra start af det aktuelle track. Afspiller optagelse: Det aktuelle track afspilles, når tracket er afspillet går diktafonen automatisk tilbage til Stoppet afspil og Næste track aktiveres internt. Gyldige tryk: Stop, Start (=pause). Pause i afspilning: Diktafonen gør ikke noget, venter blot. Gyldige tryk: Stop, Start (=pause). Næste track: Det valgte track tælles op med en. Når det sidste track er valgt skiftes der til track nr. 1. Gyldige tryk: Ingen (går umiddelbart tilbage til Stoppet afspil )

127 Accepttest 115 Dockingmode Ved et par tryk på modeknappen går diktafonen i dockingmode. Herfra findes to forskellige funktioner, nemlig at starte overførslen og at slette et track ad gangen. For at komme væk fra dockingmode trykkes modeknappen ned.?± ² Œ² ³ µ! E Œ /¹?² ³ º¼» ½?² ³?± ² Œ² ³ Figur D.8: Tilstandsdiagram i dockingmode Stoppet overførsel: Udgangspunkt når der skiftes til dockingmode. Det aktuelle track nulstilles, så diktafonen er klar til at overføre det aktuelle track. Overfører optagelse: Det aktuelle track overføres. Når tracket er overført går diktafonen automatisk tilbage til Stoppet overførsel. Når overførslen er igang kan den ikke stoppes, før tracket ender. Hvis der ikke er forbindelse er der timeout efter 15s. Gyldige tryk: Ingen. Næste track: Det valgte track tælles op med en. Når det sidste track er valgt skiftes der til track nr. 1. Gyldige tryk: Ingen (går umiddelbart tilbage til Stoppet afspil ) Slet track: Det valgte track slettes og Næste track aktiveres internt. Gyldige tryk: Ingen (går umiddelbart tilbage til Stoppet afspil ) D.4.5 Test af tilstande Testen har til formål at undersøge om diktafonen stemmer overens med det design som er beskrevet ved hjælp af tilstandsdiagrammet og den tilhørende guide, dette gøres tilstand for tilstand. Først testes om de gyldige tryk udfører det som er beskrevet i guiden, dernæst udersøges hvad der sker hvis diktafonen får et ikke gyldigt tryk. Inden testen påbegyndes fremstilles et skema hvor det er muligt systematisk at afkrydse udførte tryk samt plads til at notere kommentarer. Til dette kan nedenstående tabel sammen med tabellerne fra starten af dette afsnit benyttes.

128 116 Procesintegration Testpunkt Faktisk reaktion på diktafon 1.a 1.b 1.c 1.d 1.e 2.a 2.b 2.c 2.d 3.a 3.b 3.c

129 Bilag De nedenstående bilag findes på vedlagte CD. Enkelte bilag findes ikke i digitalform og findes istedet på de efterfølgende sider. Nr. Titel Beskrivelse 1 ADC bit high speed µp compatible A/D converter 2 AD bit buffered multiplying DAC 3 PEEL 22CV10A CMOS Programmable Electrically Erasable Logic Device 4 74HC Stage Binary Counter

3. Hold ALT nede, og tryk på F1 (så snart du har gjort det, behøver du ikke længere holde ALT nede).

3. Hold ALT nede, og tryk på F1 (så snart du har gjort det, behøver du ikke længere holde ALT nede). Der er 3 måder at indsætte græske symboler eller andre symboler ind i Notes. Metode 1) For at indtaste græske symboler i Lotus Notes har du følgende muligheder : Hold ALT nede, og tryk på F1 to gange lige

Læs mere

Hændelse 1: En sygeplejerske i nattevagt kontakter forvagten telefonisk med henblik på ordination af smertestillende til en 68-årig indlagt kvinde.

Hændelse 1: En sygeplejerske i nattevagt kontakter forvagten telefonisk med henblik på ordination af smertestillende til en 68-årig indlagt kvinde. Hændelse 1: En sygeplejerske i nattevagt kontakter forvagten telefonisk med henblik på ordination af smertestillende til en 68-årig indlagt kvinde. Lægen ordinerer 10 mg petidin i.v. Først da sygeplejersken

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

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

RockDelta GG200 Støjabsorberende stenuldsplader til udendørs skydebaner

RockDelta GG200 Støjabsorberende stenuldsplader til udendørs skydebaner RockDelta GG200 Støjabsorberende stenuldsplader til udendørs skydebaner RockDelta a/s, Hovedgaden 584, 2640 Hedehusene Tel: +45 46 56 50 20 /Fax: +45 46 56 50 80 e-mail: [email protected] www.rockdelta.com

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

Bilag 6- Høringssvar fra fordebatten om ny planlægning i Laanshøj

Bilag 6- Høringssvar fra fordebatten om ny planlægning i Laanshøj Bilag 6- Høringssvar fra fordebatten om ny planlægning i Laanshøj 2 1 2 Indlæg til Værløse By og Miljø ang. høring om Laanshøj + Vi er beboere i Vestre Kvarter i Laanshøj. Vi har været med helt fra begyndelsen

Læs mere

Behold emballagen i tilfælde af, du får brug for at transportere telefonen senere. Behold kassebonen, da den også er dit garantibevis.

Behold emballagen i tilfælde af, du får brug for at transportere telefonen senere. Behold kassebonen, da den også er dit garantibevis. KANSO M100 indeholder mobiltelefon batteri (genopladeligt Li-ion, 3.7 V 750 mah) dock lader brugermanual Behold emballagen i tilfælde af, du får brug for at transportere telefonen senere. Behold kassebonen,

Læs mere

AVR MP3 29-05-08 05576 Ingeniørhøjskolen i Århus Michael Kaalund

AVR MP3 29-05-08 05576 Ingeniørhøjskolen i Århus Michael Kaalund AVR MP3 29-05-08 Indholdsfortegnelse 1 Introduktion...2 2 Udviklingsmiljø...2 3 Beskrivelse af systemet...3 3.1 VS1001k...3 3.2 MP3 file formatet...6 4 Konklusion...6 5 Litteratur liste...6 6 Illustrations

Læs mere

Læsehuset hjælp. Læsehuset 1.0. Mikro Værkstedet A/S

Læsehuset hjælp. Læsehuset 1.0. Mikro Værkstedet A/S Læsehuset hjælp Læsehuset 1.0 Mikro Værkstedet A/S Læsehuset hjælp: Læsehuset 1.0 Mikro Værkstedet A/S Revision 1.46, 24. februar 2009 Indholdsfortegnelse Forord... vii 1. Kom godt i gang... 1 1.1. Læsehusets

Læs mere

KIRK 4020 og KIRK 4040. Brugervejledning

KIRK 4020 og KIRK 4040. Brugervejledning 1408-8710-HD, ED5. Prinfo Kolding 75 5014 77 KIRK telecom A/S Langmarksvej 34 DK-8700 Horsens Tel. +45 7560 2850 Fax +45 7560 2851 www.kirktelecom.com [email protected] KIRK 4020 og KIRK 4040 Brugervejledning

Læs mere

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen torsdag den 3. juni 2004 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes

Læs mere

Bredbånds-TV. Brugervejledning. ComX brugervejledning version 4.0

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

Læs mere

Kvikguide til opsætning af Menuvalg i Scale SystemWeb. Adgang til Scale SystemWeb:

Kvikguide til opsætning af Menuvalg i Scale SystemWeb. Adgang til Scale SystemWeb: Kvikguide til opsætning af Menuvalg i Scale SystemWeb Adgang til Scale SystemWeb: 1) For at få adgang til Scale SystemWeb vælges Scale SystemWeb i menuen i Selvbetjening Erhverv. Opsætning af en Menuvalg

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

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

IDAP manual Analog modul

IDAP manual Analog modul IDAP manual Analog modul Dato: 15-06-2005 11:01:06 Indledning Til at arbejde med opsamlede og lagrede analoge data i IDAP portalen, findes en række funktions områder som brugeren kan anvende. Disse områder

Læs mere

wwwdk Digital lydredigering på computeren grundlæggende begreber

wwwdk Digital lydredigering på computeren grundlæggende begreber wwwdk Digital lydredigering på computeren grundlæggende begreber Indhold Digital lydredigering på computeren grundlæggende begreber... 1 Indhold... 2 Lyd er trykforandringer i luftens molekyler... 3 Frekvens,

Læs mere

BRUGERVEJLEDNING CP-508LCD ALARMCENTRAL

BRUGERVEJLEDNING CP-508LCD ALARMCENTRAL BRUGERVEJLEDNING CP-508LCD ALARMCENTRAL Ver 3.7 INDHOLDSFORTEGNELSE BETJENING... side 3 TIL- OG FRAKOBLING... side 4 TILKOBLING NIVEAU 1... side 5 TIL- OG FRAKOBLING NIVEAU 2... side 6 TIL- OG FRAKOBLING

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

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

Lærer nye styresystemer Installerer programmer som kun kan bruges i ældre versioner Virtuel PC Fordele/ulemper Fordele: Lærer nye styresystemer Installerer programmer som kun kan bruges i ældre versioner Ulemper: Reserverer RAM (Windows 7) Problemer med at ureglementeret lukke ned Mister

Læs mere

BRUGSANVISNING. www.p-touch.com

BRUGSANVISNING. www.p-touch.com BRUGSANVISNING 1950 www.p-touch.com Læs denne brugsanvisning grundigt, inden De tager Deres P-touch i brug. Hav denne brugsanvisning ved hånden, så De hurtigt kan konsultere den. INTRODUKTION Tak fordi

Læs mere

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

Lyskryds. Thomas Olsson Søren Guldbrand Pedersen. Og der blev lys! Og der blev lys! OPGAVEFORMULERING:... 2 DESIGN AF SEKVENS:... 3 PROGRAMMERING AF PEEL KREDS... 6 UDREGNING AF RC-LED CLOCK-GENERAOR:... 9 LYSDIODER:... 12 KOMPONENLISE:... 13 DIAGRAM:... 14 KONKLUSION:...

Læs mere

En kopi fra www.aab50.dk. Boligforeningen. AAB afdeling 50 1 af 6

En kopi fra www.aab50.dk. Boligforeningen. AAB afdeling 50 1 af 6 Boligforeningen! "# $ -./012/3.41.567/829:;06.:3.590:6./2:>/2 *+ ) ",, % # "& '( ) 2>1.9

Læs mere

Brugermanual. Tripple Track Fleet

Brugermanual. Tripple Track Fleet Brugermanual Tripple Track Fleet Version 3.15 Side 1 af 19 Indholdsfortegnelse Installation:... 3 Login:... 3 Se alle biler:... 4 Status skift:... 5 Historie:... 7 Punkt information:... 9 Find adresse:...

Læs mere

Din brugermanual KONICA MINOLTA DI1610 http://da.yourpdfguides.com/dref/589785

Din brugermanual KONICA MINOLTA DI1610 http://da.yourpdfguides.com/dref/589785 Du kan læse anbefalingerne i brugervejledningen, den tekniske guide eller i installationsguiden. Du finder svarene til alle dine spørgsmål i KONICA MINOLTA DI1610 i brugermanualen (information, specifikationer,

Læs mere

Business Call Quick guide SNOM 300 Juli 2012

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

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

Forte ISDN PABC 10/20/32/50/100 Brugervejledning Standardtelefoner

Forte ISDN PABC 10/20/32/50/100 Brugervejledning Standardtelefoner Forte ISDN PABC 10/20/32/50/100 Brugervejledning Standardtelefoner Brugervejledning Standardtelefoner 1 2 Brugervejledning Standardtelefoner Indholdsfortegnelse 1. INTRODUKTION...4 2. SYMBOLER I GUIDEN...5

Læs mere

Athena DIMENSION Varmeanlæg 4

Athena DIMENSION Varmeanlæg 4 Athena DIMENSION Varmeanlæg 4 Juni 2001 Indhold 1 Introduktion.................................. 2 2 Programmets opbygning........................... 2 3 Fremgangsmåde................................ 3

Læs mere

Førsteårsprøven 2015. Projektbeskrivelse 2. Semester Multimediedesigner

Førsteårsprøven 2015. Projektbeskrivelse 2. Semester Multimediedesigner Førsteårsprøven 2015 Projektbeskrivelse 2. Semester Multimediedesigner Projektbeskrivelse Formål Som afslutning på første studieår skal I gennemføre et tværfagligt projektforløb, der skal afspejle væsentlige

Læs mere

Formler og diagrammer i Excel 2000/2003 XP

Formler og diagrammer i Excel 2000/2003 XP Formler i Excel Regneudtryk Sådan skal det skrives i Excel Facit 34 23 =34*23 782 47 23 =47/23 2,043478261 27³ =27^3 19683 456 =KVROD(456) 21,3541565 7 145558 =145558^(1/7) 5,464829073 2 3 =2*PI()*3 18,84955592

Læs mere

Studerendes video- optagelser til prøver

Studerendes video- optagelser til prøver Studerendes video- optagelser til prøver Resume Video til brug ved prøver kan optages i flere forskellige formater og lagres på forskellige medier. Hvis video optages på dvd (f.eks. 80 mm skive, der sættes

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

BRUGERVEJLEDNING KMR 1000

BRUGERVEJLEDNING KMR 1000 BRUGERVEJLEDNING KMR 1000 W:\Brochurer vejledninger prislister\vejledninger\styringer\kmr1000 dansk.doc august 2004 Side 1 af 8 Egenskaber: 12 bit successiv integrationsberegning af temperaturer 4 bit

Læs mere

Trådløs telefon DT288. Brugervejledning DECT GAP/CAP DA/LZTNB 101 179 R2

Trådløs telefon DT288. Brugervejledning DECT GAP/CAP DA/LZTNB 101 179 R2 Trådløs telefon DT288 DECT GAP/CAP Brugervejledning DA/LZTNB 101 179 R2 HVOR SKAL JEG BEGYNDE? Denne brugervejledning består af flere afsnit, som kan læses uafhængigt af hinanden. Du kan finde alle afsnittene

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

Vejledning: Anvendelse af kuber på SLS-data fra LDV i Excel 2007. Målgruppe: Slutbruger

Vejledning: Anvendelse af kuber på SLS-data fra LDV i Excel 2007. Målgruppe: Slutbruger Vejledning: Anvendelse af kuber på SLS-data fra LDV i Excel 2007. Målgruppe: Slutbruger April 2015 Indholdsfortegnelse Indholdsfortegnelse... 2 1 Indledning... 3 1.1 Metode til anvendelse af kuber med

Læs mere

Dette hæfte er opdateret, så det svarer til PowerPoint i Windows XPudgaven.

Dette hæfte er opdateret, så det svarer til PowerPoint i Windows XPudgaven. VELKOMMEN TIL MICROSOFT POWERPOINT I dette program kan du lave en præsentation af et emne ved at vise det som billeder og tekst på skærmen. Du kan skifte imellem at lade præsentationen køre automatisk,

Læs mere

UniLock System 10. Manual til T550 Secure Radiomodtager og håndsender. Version 2.0 Revision 140220

UniLock System 10. Manual til T550 Secure Radiomodtager og håndsender. Version 2.0 Revision 140220 UniLock System 10 Manual til T550 Secure Radiomodtager og håndsender Projekt PRJ124 Version 2.0 Revision 140220 T550 Secure er en højsikker trådløs UHF-læser der benyttes, hvor det ønskes at oplåse på

Læs mere

Aalborg Universitet. Institut for Elektroniske Systemer. Synopsis. Fredrik Bajers Vej 7 DK-9220 Aalborg Øst Telefon +45 96 35 87 00

Aalborg Universitet. Institut for Elektroniske Systemer. Synopsis. Fredrik Bajers Vej 7 DK-9220 Aalborg Øst Telefon +45 96 35 87 00 Aalborg Universitet Institut for Elektroniske Systemer Fredrik Bajers Vej 7 DK-9220 Aalborg Øst Telefon +45 96 35 87 00 Titel: Digital diktafon Tema: Mikrodatamatsystemer Projektperiode: 3. februar 2003-28.

Læs mere

Indholdsfortegnelse. Indholdsfortegnelse.. side 2. Adgang til webgraf 3. Opslag adresse... 4. Styring af layout.. 5. Zoom funktioner..

Indholdsfortegnelse. Indholdsfortegnelse.. side 2. Adgang til webgraf 3. Opslag adresse... 4. Styring af layout.. 5. Zoom funktioner.. Indholdsfortegnelse Indholdsfortegnelse.. side 2 Adgang til webgraf 3 Opslag adresse... 4 Styring af layout.. 5 Zoom funktioner.. 6 Panorere på skærmen. 7 Information om grafikken.... 8-10 Print et udsnit.....

Læs mere

MCE2040 SERIEL KOMMUNIKATIONSMODUL

MCE2040 SERIEL KOMMUNIKATIONSMODUL Kokkedal Industripark 4 DK-2980 Kokkedal DANMARK Tlf.: +45 49 18 01 00 Fax: +45 49 18 02 00 MCE2040 SERIEL KOMMUNIKATIONSMODUL Overførsel af status og vægt for digitale vejeceller via simpel PC/PLC protokol

Læs mere

Indledning... 2 Opbygning... 2 Servicesegmenternes sammenhæng... 3 UNA... 4 UNB... 6 UNH... 10 UNT... 12 UNZ... 14

Indledning... 2 Opbygning... 2 Servicesegmenternes sammenhæng... 3 UNA... 4 UNB... 6 UNH... 10 UNT... 12 UNZ... 14 05.05.2000 5. SERVICESEGMENTER Indholdsfortegnelse Indledning... 2 Opbygning... 2 Servicesegmenternes sammenhæng... 3 UNA... 4 UNB... 6 UNH... 10 UNT... 12 UNZ... 14 Side: 2 Indledning Dette afsnit indeholder

Læs mere

Fremstilling af test og test materiale

Fremstilling af test og test materiale 1 af 18 Instruktion til fremstilling af testmateriale i Powerpoint. TUP-projektet: Udvikling af bedømmelsesformer der tager hensyn til læse-, skrive- og regnesvage deltagere på AMU-Uddannelserne. Instruktionen

Læs mere

Clarion DXZ638RMP, DXZ738RMP, DXZ838RMP - Sådan laver man WMA filer, samt evt. Play Lists. -

Clarion DXZ638RMP, DXZ738RMP, DXZ838RMP - Sådan laver man WMA filer, samt evt. Play Lists. - Clarion DXZ638RMP, DXZ738RMP, DXZ838RMP - Sådan laver man WMA filer, samt evt. Play Lists. - For at lave sine musik CD er om til WMA format kræver det en PC med Microsoft Media Player version 7.1 eller

Læs mere

Allan C. Malmberg. Terningkast

Allan C. Malmberg. Terningkast Allan C. Malmberg Terningkast INFA 2008 Programmet Terning Terning er et INFA-program tilrettelagt med henblik på elever i 8. - 10. klasse som har særlig interesse i at arbejde med situationer af chancemæssig

Læs mere

Underbilag 14 C: Afprøvningsforskrifter til prøver og tests

Underbilag 14 C: Afprøvningsforskrifter til prøver og tests Underbilag 14 C: Afprøvningsforskrifter til prøver tests Udbud om levering, installation, implementering, support, drift vedligehold af Borgeradministrativt System (BAS) Indhold underbilag 14 C Afprøvningsforskrifter

Læs mere

4. Semesterprojekt System Arkitektur. MyP3000 I4PRJ4 E2004

4. Semesterprojekt System Arkitektur. MyP3000 I4PRJ4 E2004 Ingeniørhøjskolen i Århus 20. december 2004 IKT Dalgas Avenue 2 8000 Århus C 4. Semesterprojekt System Arkitektur MyP3000 I4PRJ4 E2004 Gruppe 4: Benjamin Sørensen, 02284 Tomas Stæhr Berg, 03539 Nikki Ashton,

Læs mere

Udbud.dk Brugervejledning til leverandører

Udbud.dk Brugervejledning til leverandører Udbud.dk Brugervejledning til leverandører Vejledning til at anvende Udbud.dk Januar 2014 Indholdsfortegnelse 1. INDLEDNING... 3 2. OVERORDNET OPBYGNING AF UDBUD.DK... 4 2.1 FORSIDE OG NAVIGATION... 4

Læs mere

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

Eksamens spørgsmål i Teknologi (Digital) 3. Semester (i) Eksamens spørgsmål i Teknologi (Digital) 3. Semester (i) 1. DS1821 1-WIRE KOMMUNIKATION (HERUNDER TIMING KRAV) ------------------------ 2 2. DS1821 SOFTWARE (OPBYGNING AF STYREPROGRAM I SYSTEM51 C) -----------

Læs mere

HJÆLP TIL FILM-X ANIMATIONSVÆRKTØJ

HJÆLP TIL FILM-X ANIMATIONSVÆRKTØJ HJÆLP TIL FILM-X ANIMATIONSVÆRKTØJ Når du bruger FILM-X animationsværktøjet har du hele tiden adgang til at få hjælp. Hjælpeboksen ligger i højre side af skærmen og den kan ses her nedenfor. Hjælpen er

Læs mere

SmartAir TS1000. Daglig brug

SmartAir TS1000. Daglig brug SmartAir TS1000 Daglig brug Indhold Brugere... 4 Opret brugere... 4 Brugerliste vinduet... 5 Knapper... 5 Grupper... 6 Søg bruger... 7 Rapport vinduet (brugere)... 7 Døre... 8 Opret døre... 8 Dørliste

Læs mere

Magnus:Revision. Nyheder og vejledning til version 2012.1

Magnus:Revision. Nyheder og vejledning til version 2012.1 Magnus:Revision Nyheder og vejledning til version 2012.1 Indledning - Magnus:Revision 3 Nyheder og vejledning til version 2012.1 5 Eksisterende brugere 5 Information vedrørende tidligere versioner af programmet

Læs mere

Maskinanlæg, opsætning af frekvensomformer

Maskinanlæg, opsætning af frekvensomformer Maskinanlæg, opsætning af frekvensomformer INDHOLDSFORTEGNELSE Opgaver - Maskinanlæg, opsætning af frekvensomformer...3 2-20 Rekv. 0 Prod. 28-06-2006-08:33 Ordre 000 EFU Opgave 1 1 stk. VLT 2800 1 stk.

Læs mere

3.0 Velkommen til manualen for kanalen Shift 1. 3.1 Introduktion til kanalen 1. 3.2.1 Hvad er et spot? 2. 3.2.2 Opret et nyt spot 2

3.0 Velkommen til manualen for kanalen Shift 1. 3.1 Introduktion til kanalen 1. 3.2.1 Hvad er et spot? 2. 3.2.2 Opret et nyt spot 2 3.0 Velkommen til manualen for kanalen Shift 1 3.1 Introduktion til kanalen 1 3.2 Shift kanalside 1 3.2.1 Hvad er et spot? 2 3.2.2 Opret et nyt spot 2 3.2.3 Aktivt og inaktivt spot 3 3.2.4 Rediger et spot

Læs mere

Spillebeskrivelse. Rev. 04. Compu-Game A/S, Randersvej 36, DK - 6700 Esbjerg Tlf.: 76 10 98 00 Fax: 76 10 98 98

Spillebeskrivelse. Rev. 04. Compu-Game A/S, Randersvej 36, DK - 6700 Esbjerg Tlf.: 76 10 98 00 Fax: 76 10 98 98 Spillebeskrivelse Rev. 04 Compu-Game A/S, Randersvej 36, DK - 6700 Esbjerg Tlf.: 76 10 98 00 Fax: 76 10 98 98 Opstillingsvejledning for Compu-Game automater. Indgreb i automatens elektriske og mekaniske

Læs mere

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

Journal JTAG: Udarbejde af: Benjamin Grydehøj I samarbejde med PDA Projektgruppen. Elektronikteknologafdelingen på Erhvervsakademi Fyn. Journal JTAG: Udarbejde af: Benjamin Grydehøj I samarbejde med PDA Projektgruppen Elektronikteknologafdelingen på Erhvervsakademi Fyn. Journal JTAG Xilinx XC9536 29-9-3 Generel beskrivelse af JTAG: JTAG:

Læs mere

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

Enes Kücükavci Roskilde Tekniske Gymnasium 20 05 2010 Mathias Turac Informationsteknolog B Vejleder: Karl Bjranasson Programmering C Indhold Indledning(Enes)... 2 Problemstilling (Enes)... 2 Teori (Enes)... 2 Løsningsforslag (Enes)... 4 RFID relæet (Mathias)... 6 Krav (Enes og Mathias)... 8 Målgruppen (Mathias)... 8 Rekvirent... 8 Implementering(Mathias)...

Læs mere

Betjeningsvejledning. BeoLab 2000 giver Deres centrale Bang & Olufsen system en ekstra dimension.

Betjeningsvejledning. BeoLab 2000 giver Deres centrale Bang & Olufsen system en ekstra dimension. B E O L A B 2 0 0 0 1 BeoLab 2000 giver Deres centrale Bang & Olufsen system en ekstra dimension. De kan nu spille den musik- eller videokilde De ønsker på Deres centrale system og lytte til det via Deres

Læs mere

Manual til Trafiktæller Vejdirektoratet

Manual til Trafiktæller Vejdirektoratet Poppelgårdvej 7-9 DK-2860 Søborg www.skjoet.com [email protected] Tel. 43960033 CVR: 27219098 Bank:0400-4010421344 Manual til Trafiktæller Vejdirektoratet Manual version 2.0-2. februar 2012 2 02/02/12

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

Novotek Planning Systems A/S 2013 Version 1.0 Jan 2013 ROB-EX 4.2

Novotek Planning Systems A/S 2013 Version 1.0 Jan 2013 ROB-EX 4.2 Version 1.0 Jan 2013 ROB-EX 4.2 Indhold Hovedskærmens opbygning... 2 Tastaturgenveje... 3 Hovedskærmbilleder... 4 Stamdata generelt... 5 Kalender... 6 Opret/rediger kalender... 7 Specifik kalender pr.

Læs mere

SDBF QUICKGUIDE SKOLERNES DIGITALE BLANKET FLOW - BRUGER-GUIDE -

SDBF QUICKGUIDE SKOLERNES DIGITALE BLANKET FLOW - BRUGER-GUIDE - SDBF QUICKGUIDE SKOLERNES DIGITALE BLANKET FLOW - BRUGER-GUIDE - INTRODUKTION TIL SKOLERNES DIGITALE BLANKET FLOW Vi er glade for at kunne byde velkommen til opdateret udgave af KEAs nye, automatiske blanket-system.

Læs mere

Manual til PRO DK180

Manual til PRO DK180 Manual til PRO DK180 Indhold Forord... 4 Alarmens generelle opbygning... 5 Placering af alarmen... 7 Oversigt over alarmen... 8 Tag alarmen i brug... 10 Programering af alarmen... 11 Indtastning af egen

Læs mere

GPS-Link version 1.6.4 Brugervejledning Dansk Sejlunion

GPS-Link version 1.6.4 Brugervejledning Dansk Sejlunion GPS-Link version 1.6.4 Brugervejledning Dansk Sejlunion Alle henvendelser om GPS-Link bedes foretaget pr. email til [email protected] Hvad er GPS-Link? GPS-Link anvendes til overførsel af navigationsdata

Læs mere

Dynamicweb Exchange Opsætning

Dynamicweb Exchange Opsætning Brugervejledning Dynamicweb Exchange Opsætning OUTLOOK 2003 Document ID: UG-4008 Version: 1.30 2006.07.04 Dansk UG-4008 - Dynamicweb Exchange Opsætning, Outlook 2003 JURIDISK MEDDELELSE Copyright 2005-2006

Læs mere

Tips og vejledning vedrørende den tredelte prøve i AT, Nakskov Gymnasium og HF

Tips og vejledning vedrørende den tredelte prøve i AT, Nakskov Gymnasium og HF Tips og vejledning vedrørende den tredelte prøve i AT, Nakskov Gymnasium og HF Den afsluttende prøve i AT består af tre dele, synopsen, det mundtlige elevoplæg og dialogen med eksaminator og censor. De

Læs mere

Brugervejledning til testsystemet for de nationale test

Brugervejledning til testsystemet for de nationale test Brugervejledning til testsystemet for de nationale test frivillige test Booking Version: 1-1-1-1 23-9-2010 side 1 INDLEDNING... 3 OM DENNE VEJLEDNING... 4 MÅLGRUPPER FOR VEJLEDNINGEN... 5 SUPPORT... 5

Læs mere

Indholdsfortegnelse :

Indholdsfortegnelse : Rapporten er udarbejdet af Daniel & Kasper D. 23/1-2001 Indholdsfortegnelse : 1.0 STEPMOTEREN : 4 1.1 Stepmotorens formål : 4 1.2 Stepmotorens opbygning : 4 2.0 PEEL-KREDSEN 4 2.1 PEEL - Kredsen Generelt

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

طîسق êëâ àëشâ applefi ëâ 1204 د ëâ 1453

طîسق êëâ àëشâ applefi ëâ 1204 د ëâ 1453 طîسق êëâ àëشâ applefi ëâ 1204 د ëâ 1453 O ôâéزéشâ (232-304), à âappleط ëàش fi زشطfiêâزâ, دµé appleâططد ق طدë ë ëâ اéشêëش àشêقâ, صم ش éقسà ëس âقسéش œ âµâà. éµfië é, â ôéfi طâ (410-485), à âappleط ëàش fi

Læs mere

CCS Formål Produktblad December 2015

CCS Formål Produktblad December 2015 CCS Formål Produktblad December 2015 Kolofon 2015-12-14

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

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

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

Automatisk Vandingssystem

Automatisk Vandingssystem Automatisk Vandingssystem Projektdokumentation Aarhus Universitet Gruppe 6-3. Semester - F15 vejleder: Michael Alrøe dato: 28-05-2015 Lærke Isabella Nørregård Hansen - 201205713 - IKT Kasper Sejer Kristensen

Læs mere

Brugervejledning. Version 1.0, Dansk

Brugervejledning. Version 1.0, Dansk 20 30 40 50 Brugervejledning Version 1.0, DISTO TM pro 4 / pro 4 a Hånfstandsmåler Hjertelig tillykke med købet af Deres DISTO. Produktidentifikation De bedes notere produktets typebeskrivelse og serienummer

Læs mere

Streame fra Winamp til Dreambox/pc på netværk.

Streame fra Winamp til Dreambox/pc på netværk. Streame fra Winamp til Dreambox/pc på netværk. 1. Formål 2. Forudsætninger og installationer 3. Opsætning 4. Start streaming 5. Aflyt streaming 6. Kontakt 1. Formål Mange benytter Winamp ( Nullsoft, Inc.)

Læs mere

LISA 2 System til faringsovervågning

LISA 2 System til faringsovervågning Indledning Du har netop anskaffet dig et unikt stykke værktøj til brug ved faringsovervågning. LISA 2 systemet er et interaktivt værktøj, som sikrer at medarbejdere i farestalden holder fokus på faringer

Læs mere

NAVMAN TRACKFISH 6600 Quick Guide

NAVMAN TRACKFISH 6600 Quick Guide NAVMAN TRACKFISH 6600 Quick Guide Tillykke med din nye NAVMAN 6600 kortplotter/fishfinder! NAVMAN TRACKFISH 6600 bruger C-MAP NT+ / MAX søkort. Elektroniske søkort er ment som en hjælp til navigation,

Læs mere

SMK menuen 8.1 8. SMK STATISTISK MÅLERKONTROL

SMK menuen 8.1 8. SMK STATISTISK MÅLERKONTROL SMK menuen 8.1 8. SMK STATISTISK MÅLERKONTROL Rambøll SMK administrerer kravene til kontrol af vandmålere i drift. Fra d. 1. februar år 2000 skal vandværkets forbrugsmålere inddeles i partier med ensartede

Læs mere

Brug Photo Story 3 en let introduktion

Brug Photo Story 3 en let introduktion Brug Photo Story 3 en let introduktion Denne vejledning forudsætter at programmet Photo Story 3 er installeret på din computer. Se andetsteds for vejledning i at installere programmet, der kan findes gratis

Læs mere

Betjeningsvejledning Brandcentralerne FF1200/FF2000

Betjeningsvejledning Brandcentralerne FF1200/FF2000 Betjeningsvejledning Brandcentralerne FF1200/FF2000 Indhold I Indhold Indholdet af denne vejledning kan ændres uden forudgående varsel. Firmaer, navne og data anvendt i eksempler er fiktive, med mindre

Læs mere

WebGT 3.0 - Graveansøgning. Brugervejledning. 25. september 2012. Udgave 1.0

WebGT 3.0 - Graveansøgning. Brugervejledning. 25. september 2012. Udgave 1.0 WebGT 3.0 - Graveansøgning Brugervejledning 25. september 2012 Udgave 1.0 Indholdsfortegnelse 1 INDLEDNING... 3 1.1 OPRETTELSE SOM BRUGER... 3 1.2 NOTIFICERINGSMAILS... 4 2 OPBYGNING OG SAGSGANG... 5 2.1

Læs mere

Automatisering Af Hverdagen

Automatisering Af Hverdagen Automatisering Af Hverdagen Programmering - Eksamensopgave 10-05-2011 Roskilde Tekniske Gymnasium (Kl. 3,3m) Mads Christiansen & Tobias Hjelholt Svendsen 2 Automatisering Af Hverdagen Indhold Introduktion:...

Læs mere

Evaluering af Soltimer

Evaluering af Soltimer DANMARKS METEOROLOGISKE INSTITUT TEKNISK RAPPORT 01-16 Evaluering af Soltimer Maja Kjørup Nielsen Juni 2001 København 2001 ISSN 0906-897X (Online 1399-1388) Indholdsfortegnelse Indledning... 1 Beregning

Læs mere

Velkommen til ABC Analyzer! Grundkursusmanual 2 vil introducere dig til ABC Analyzers mere avancerede funktioner, bl.a.:

Velkommen til ABC Analyzer! Grundkursusmanual 2 vil introducere dig til ABC Analyzers mere avancerede funktioner, bl.a.: Velkommen til ABC Analyzer! Grundkursusmanual 2 vil introducere dig til ABC Analyzers mere avancerede funktioner, bl.a.: Kategoriseringer uden ABC-kategorier Krydstabel (trebenede) Beregnede og avancerede

Læs mere

Brugervejledning. OneRemote DVB-T Scart II Modtager. B&O betjening MPEG4 HD FTA. Type 30012663. 30012663u2

Brugervejledning. OneRemote DVB-T Scart II Modtager. B&O betjening MPEG4 HD FTA. Type 30012663. 30012663u2 Brugervejledning OneRemote DVB-T Scart II Modtager MPEG4 HD FTA Type 30012663 B&O betjening 30012663u2 Tastesekvenser til den daglige betjening Beo4, Beo5 eller Beo6 betjening Optage og afspille fra tilsluttet

Læs mere