Digital diktafon med dockingstation



Relaterede dokumenter
Forord. Læsevejledning


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

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

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

Det Teknisk-Naturvidenskabelige Fakultet Aalborg Universitet

RockDelta GG200 Støjabsorberende stenuldsplader til udendørs skydebaner

Kravspecifikation For. Gruppen

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

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

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

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

KIRK 4020 og KIRK Brugervejledning

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

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

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

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

Quick-guide til Konftel 250

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0

IDAP manual Analog modul

wwwdk Digital lydredigering på computeren grundlæggende begreber

BRUGERVEJLEDNING CP-508LCD ALARMCENTRAL

Side 1 af 10. Lydbreve. Indhold. Indhold...1 Forord...2 Lydoptager...2 Ændring af indtalt lyd...4 Sende dit lydbrev...8 Lyde i Worddokumenter...

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

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

BRUGSANVISNING.

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

En kopi fra Boligforeningen. AAB afdeling 50 1 af 6

Projektpræsentation. Formidling og statusseminar. Hvad siger erfaringerne (1) Hvad siger erfaringerne (2) Kropssprog (1) Hvad siger erfaringerne (3)

Brugermanual. Tripple Track Fleet

Din brugermanual KONICA MINOLTA DI1610

Business Call Quick guide SNOM 300 Juli 2012

Software Dokumentation

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

Athena DIMENSION Varmeanlæg 4

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

Formler og diagrammer i Excel 2000/2003 XP

Studerendes video- optagelser til prøver

Svendeprøve Projekt Tyveri alarm

BRUGERVEJLEDNING KMR 1000

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

1. Detaljeret beskrivelse

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

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

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

Aalborg Universitet. Institut for Elektroniske Systemer. Synopsis. Fredrik Bajers Vej 7 DK-9220 Aalborg Øst Telefon

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

Egenskaber for ROM/RAM

MCE2040 SERIEL KOMMUNIKATIONSMODUL

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

Fremstilling af test og test materiale

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

Allan C. Malmberg. Terningkast

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

4. Semesterprojekt System Arkitektur. MyP3000 I4PRJ4 E2004

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

Udbud.dk Brugervejledning til leverandører

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

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

7.8 Accepttest Visuelt i Ontime s Ontime kræver eller Visuelt på PC. Kommunikationsstik sidder i en COM-port.

SmartAir TS1000. Daglig brug

Magnus:Revision. Nyheder og vejledning til version

Maskinanlæg, opsætning af frekvensomformer

3.0 Velkommen til manualen for kanalen Shift Introduktion til kanalen Hvad er et spot? Opret et nyt spot 2

Spillebeskrivelse. Rev. 04. Compu-Game A/S, Randersvej 36, DK Esbjerg Tlf.: Fax:

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

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

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

Manual til Trafiktæller Vejdirektoratet

Amplicomms Telefonsvarer AB900 med ekstra forstærkning

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

SDBF QUICKGUIDE SKOLERNES DIGITALE BLANKET FLOW - BRUGER-GUIDE -

Manual til PRO DK180

GPS-Link version Brugervejledning Dansk Sejlunion

Dynamicweb Exchange Opsætning

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

Brugervejledning til testsystemet for de nationale test

Indholdsfortegnelse :

BeoSound Vejledning

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

CCS Formål Produktblad December 2015

BeoSound Vejledning. CENTER v/henriksens ELEKTR

Arduino Programmering

Brugervejledning. ComX brugervejledning version 4.1

Automatisk Vandingssystem

Brugervejledning. Version 1.0, Dansk

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

LISA 2 System til faringsovervågning

NAVMAN TRACKFISH 6600 Quick Guide

SMK menuen SMK STATISTISK MÅLERKONTROL

Brug Photo Story 3 en let introduktion

Kom godt i gang. Mine Formler 1.0

Betjeningsvejledning Brandcentralerne FF1200/FF2000

WebGT Graveansøgning. Brugervejledning. 25. september Udgave 1.0

Automatisering Af Hverdagen

Evaluering af Soltimer

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

PC-baseret analyzer og equalizer

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

Transkript:

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

AALBORG UNIVERSITET INSTITUT FOR ELEKTRONISKE SYSTEMER AFDELING FOR KOMMUNIKATIONSTEKNOLOGI Fredrik Bajersvej 7 DK-9220 Aalborg Øst Telefon 96 35 80 80 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 68000 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 Projektgruppe 411, Aalborg Universitet

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

Indhold 1 Indledning 1 2 Problemanalyse 2 2.1 Kravspecifikation............................. 4 2.2 Problemformulering............................ 5 3 Designfase 6 3.1 Design af diktafon............................. 7 3.1.1 Produktdesign.......................... 7 3.1.2 Procesdesign........................... 12 3.1.3 Hovedløkke for diktafon..................... 25 3.1.4 Konklusion på design af diktafon................ 30 3.2 Design af PC-program.......................... 30 3.2.1 Programdesign.......................... 30 3.2.2 Procesdesign........................... 31 3.2.3 Hovedløkke for PC-program................... 31 3.3 Konklusion på designafsnit........................ 36 4 Hardwaredesign 37 4.1 Minimumsystem............................. 37 4.1.1 Resetkredsløb........................... 38 4.1.2 NMI-knap............................. 38 4.1.3 Interrupt-controller........................ 39 4.1.4 Seriel kommunikation...................... 39 4.1.5 Adressedekoder.......................... 40 4.1.6 DTACK-generator........................ 44 4.2 Optage- og afspilleenhed......................... 46 4.2.1 Optageenhed........................... 50 4.2.2 Afspil............................... 57 4.3 Knapper.................................. 60 4.3.1 Hardware til knapperne...................... 62 4.3.2 Fravalg af autovektorer...................... 66 4.4 Display.................................. 66 4.5 Memorymap................................ 69 4.6 Konklusion på hardwaredesign...................... 70

Indhold iii 5 Softwaredesign 71 5.1 Filsystem................................. 71 5.1.1 Optimeringsmuligheder..................... 75 5.2 Optage-/afspilleenhed........................... 75 5.2.1 PLD-komponent......................... 76 5.3 Software til knapperne.......................... 77 5.4 Software til displayet........................... 79 5.5 Software til docking............................ 82 5.6 Hovedløkke................................ 83 5.7 Fejlhåndtering............................... 84 5.8 PC-programmet.............................. 85 6 Konklusion 88 Litteratur 89 A Komponentliste 91 B Apparaturliste 93 C Modultest 94 C.1 Softwaresimulering............................ 95 C.2 Minimumsystem............................. 96 C.3 Optage-/afspilleenhed........................... 97 C.4 Display.................................. 100 C.5 Filsystem................................. 100 C.6 Knapper.................................. 101 C.7 Docking.................................. 102 C.8 PC-program................................ 102 D Procesintegration 104 D.1 Indledning................................. 104 D.2 Testemner................................. 104 D.3 Testdesign................................. 105 D.4 Accepttest................................. 111 D.4.1 Generel systembeskrivelse.................... 111 D.4.2 Eksterne grænseflader...................... 111 D.4.3 Test af de specifikke funktionelle krav.............. 112 D.4.4 Tilstandsdiagram......................... 113 D.4.5 Test af tilstande.......................... 115 Bilag 117

Figurer 3.1 Kontekstdiagram over produktet...................... 7 3.2 Dataflowdiagram over produktet...................... 8 3.3 Procesopdelt dataflowdiagram....................... 10 3.4 Accessgraf indeholdende monitorer og processer............. 11 3.5 Funktionsdiagram over Aflæs knapper................... 13 3.6 Moduldiagram over processen Aflæs knapper............... 13 3.7 Funktionsdiagram over processen Behandl displaydata.......... 15 3.8 Moduldiagram over processen Behandl displaydata............ 15 3.9 Funktionsdiagram over processen Afspil.................. 15 3.10 Moduldiagram over processen Afspil................... 16 3.11 Funktionsdiagram over processen Optag................. 16 3.12 Moduldiagram over processen Optag................... 18 3.13 Funktionsdiagram over Filsystemet.................... 19 3.14 Moduldiagram over Filsystemet...................... 22 3.15 Funktionsdiagram over processen Docking................ 22 3.16 Moduldiagram over processen Docking.................. 23 3.17 Flowchart 1 af 4 over hovedløkken..................... 26 3.18 Flowchart 2 af 4 over hovedløkken..................... 27 3.19 Flowchart 3 af 4 over hovedløkken..................... 28 3.20 Flowchart 4 af 4 over hovedløkken..................... 29 3.21 Kontekstdiagram over PC-programmet.................. 31 3.22 Dataflowdiagram for PC-programmet................... 31 3.23 Funktionsdiagram for PC-programmet................... 32 3.24 Flowchart for PC-programmets menu................... 33 3.25 Flowchart for PC-programmets modtagefunktion Receive........ 34 3.26 Flowchart for PC-programmets konverteringsfunktion WavConvert... 35 4.1 Powerup-reset-kredsløb, med manuel reset knap............. 38 4.2 Adressedekoderens opbygning....................... 43 4.3 Timing-diagram for en M68k read-cycle.................. 44 4.4 Timing-diagram for en M68k write-cycle. Figuren er et udsnit af billedet på s. 236 i (Clements, 1997)....................... 45 4.5 Signalflowet fra et akustisk signal til et digital signal........... 46 4.6 Signalflowet fra et digital signal til et akustisk signal........... 46 4.7 (a) Tidsdiskret filtrering af kontinuerte tidssignaler. (b) Digital processering af analoge signaler.......................... 47 4.8 Illustration af princippet for antialiasing................. 48 4.9 Kvantiseringsstøj............................. 49

vi Figurer 4.10 Mikrofonens interne struktur........................ 51 4.11 Noninverterende forstærkerkobling.................... 52 4.12 Aktiv-RC integrator............................ 53 4.13 To-faset clock................................ 53 4.14 Switched-capacitor integrator....................... 53 4.15 Op- og afladning af kondensatorer gennem clock-perioderne φ 1 og φ 2.. 54 4.16 Eldiagram af AGC-kredsløbet....................... 55 4.17 Illustration af flowet for AGC-signaler................... 55 4.18 Princip for en SAR A/D konverter..................... 56 4.19 Princip for en flash A/D konverter..................... 56 4.20 D/A konverter med binært vægtede modstande.............. 58 4.21 D/A konverter med R - 2R netværk.................... 58 4.22 Illustration af funktionaliteten af et rekonstruktionsfilter......... 59 4.23 Den kombinatoriske logik i PLD en til knaptrykstyring.......... 63 4.24 Flowchart for interrupt acknowledge sekvensen.............. 64 4.25 El-diagram over displayet......................... 67 4.26 Timingdiagram for displayets write-cycle.(cd-rom,, disp)...... 67 4.27 Timingdiagram for displayet tilsluttet minimumsystemet......... 68 5.1 Filsystemets struktur............................ 72 C.1 Screenshot af BSVC i gang med at afvikle displaysoftwaren på et simuleret M68k-microprocessorsystem.................... 96 C.2 Bodeplot for antialias filter........................ 98 C.3 FFT-analyse af udgangsignal fra D/A-konverter............. 99 C.4 FFT-analyse af udgangsignal fra forstærker............... 99 C.5 Screenshot fra modultest af knapperne................... 101 D.1 Procesintegrationsplan for diktafonen................... 105 D.2 Integrationstest af trin IT1......................... 106 D.3 Integrationstest af trin IT2......................... 107 D.4 Integrationstest af trin IT3......................... 108 D.5 Integrationstest af trin IT4......................... 110 D.6 Tilstandsdiagram i optagemode...................... 113 D.7 Tilstandsdiagram i afspillemodemode.................. 114 D.8 Tilstandsdiagram i dockingmode..................... 115

Tabeller 3.1 Dataflowguide............................... 9 3.2 Procesguide................................. 11 3.3 Modulspecifikation for Aflæs knapper................... 14 3.4 Funktionsspecifikation for Aflæs knapper................. 14 3.5 Modulspecifikation for Behandl displaydata................ 16 3.6 Funktionsspecifikation for Behandl displaydata.............. 17 3.7 Modulspecifikation for Afspil....................... 17 3.8 Funktionsspecifikation for Afspil...................... 18 3.9 Modulspecifikation for Optag....................... 19 3.10 Funktionsspecifikation for processen Optag................ 19 3.11 Modulspecifikation for Filsystemet.................... 20 3.12 Funktionsspecifikation for Filsystem.................... 21 3.13 Modulspecifikation for Docking...................... 23 3.14 Funktionsspecifikation for Docking.................... 23 3.15 Dataflowguide for PC-programmet.................... 32 3.16 Funktionsspecifikationerne for funktionen Modtag............ 32 3.17 Funktionsspecifikationerne for funktionen Konverter........... 32 4.1 Memorymap for minimumsystem..................... 41 4.2 Sandhedstabel for adressedekodningen af M68k............. 41 4.3 Udsnit af tabel 4.4 og 4.7 i (Clements, 1997, side 227 og side 237). Alle tider er angivet i ns............................. 45 4.4 Mulige valg i de tre modes......................... 61 4.5 Fem mulige valg i forskellige modes.................... 61 4.6 Vektorer og adresser på handling rutiner................. 65 4.7 Tider i ns vedrørende timingdiagrammer; figur 4.26 og 4.27....... 68 4.8 Memorymap for diktafonen........................ 69 5.1 Hardware I/O memorymap for konverteringsdel.............. 75 5.2 HentKnap funktionens returværdier................... 79 5.3 Beskrivelse af registrene i ACIA en.................... 82 5.4 Fejlkoder fordelt på entryfunktioner.................... 84 5.5 Opbygning af wavefil........................... 86

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?

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

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 68000 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.

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.

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 68000 mikroprocessorsystem, der overholder den givne kravspecifikation?"

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 3.1.3 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.

Design af diktafon 7 3.1 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. 3.1.1 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 3.1.2 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).

W W W W W W [ X 8 Designfase D5EGF=H2I=E Q5A=>=:=:=I2E B<cd9 QPA=>*:=K EG?Z V589 7 89:=<>=?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.

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 3.1.1 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

ˆ ˆ ˆ ˆ ˆ ˆ Œ 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.

¼ 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 3.1.2 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.

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. 3.1.2 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.

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.

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.

Design af diktafon 15!" #$ 3 #@A @A3 6 = 5 ' 7 %& @ B4CD* * %.9): %.E) *+,F- %&(' #() *+,- %./10 243 567 6) 8 / 243 567 6) 8/ 243 567 6) 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.

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.

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.

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.

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.

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.

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.

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: ;=< >? @39ABA#C>< ; 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

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.

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.

Design af diktafon 25 3.1.3 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.

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.

½» 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.

á è Ý 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.

A Design af diktafon 29 $C% -_V 4*!-.? 5* #]^,* + (! Z[\ &' $ "! #! $%,*!-.- / 0#1 2435 *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.

30 Designfase Ud fra disse afsnit kodes hovedløkken. Kodningen foregår trinvis gennem integrationstesten D, hvormed samspillet mellem de enkelte moduler sikres. 3.1.4 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. 3.2.1 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.