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



Relaterede dokumenter
0.1 Modultest af hardware

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

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

Det Teknisk-Naturvidenskabelige Fakultet Aalborg Universitet

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

Institut for elektroniske systemer

Programmering af CS7002 GSM/GPRS modul Version 5

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0

Analoge indgange og A/D konvertering. Analoge udgange

FONET Viderestilling. På de næste sider kan du se nogle typiske eksempler: /ff

Arduino Programmering

Log ind. Skriv i din browser. Du logger ind på siden med dit mobilnummer.

Call Recorder Apresa Brugermanual

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

Hassansalem.dk/delpin User: admin Pass: admin BACKEND

FONET Viderestilling. Funktionen opdeles, som vist på nedenstående diagram i 3 naturlige led: - Tilringe Grupper - Tilringe Styring - Aktion

Hvad skal du vide for at bygge din egen computer?

\ \ Computerens Anatomi / /

Programmeringseksempel tl BCxxxx (Seriel)

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

Multi kanal GSM porttelefon med adgangs kontrol

Computerens Anatomi. Af Martin Arnetoft

Microcontroller, Arduino

2017 Recordit.nu version 2. Call Recorder Kvikguide for Apresa Client

Brugermanual. OpenScape Voice. Siemens OpenStage 40. Opsætning på bordtelefon. Version 07/15

Dansk kvik guide til tiptel 274 telefon

Vejledning i oprettelse af menu

FONET Viderestilling

Mobiltelefon. Brugervejledning

IP Telefoni II. IP Telefoni introduktion II. TDC IP telefoni Scale

PBX Online Brugervejledning

Telefonadministration

Svendeprøve Projekt Tyveri alarm

BILAG. til. Kommissionens delegerede forordning

Xpressions Webassistant Administrationsprogram for brugeren

WT-1011RC Programmer User Guide

KOM GODT I GANG MED MENUOMSTILLING

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

tube tube Brugermanual Internet Radio Digital Radio OXX Digital Follow OXX DIGITAL on twitter Follow OXX DIGITAL Scandinavian

3OMSTILLING. Manual til 3Omstilling Webklient for brugere V2.0

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

Vocally 3 Infinity. In-Line, stemme aktiveret opkaldsenhed Brugsanvisning. Rev 1.01

Brugervejledning. TDC Scale Assistent til iphone. Copyright NOMADICCIRCLE All rights reserved

Brugervejledning. ComX brugervejledning version 4.1

Voic indeholder følgende hovedfunktioner (komplet menu-struktur vises senere):

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

IP Telefoni II. IP Telefoni introduktion II. TDC IP telefoni Scale

Kom godt i gang. Kom godt igang. med ComX Telefoni 7 8 # INTERNET TELEFONI

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

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

Computerarkitektur. - en introduktion til computerarkitektur med LINDA

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

MultiProgrammer Manual

Microcontroller, Arduino

BRUGERVEJLEDNING FOR FASTNETTELEFONER

COMPUTER ANATOMI klasse 23. FEBRUAR 2015 HTX - ROSKILDE

1. Generelt om denne brugervejledning

3. Computerens opbygning.

Roholmsvej Albertslund Brugervejledning for analoge telefoner

Indholdsfortegnelse:

03/ PW xxxxxdk BETJENINGSVEJLEDNING. SKIOLD FlexMix PC software Version 2.34

UNO vejledning. Indhold

Indholdsfortegnelse :

WT-1011RC Programmer User Guide

ADVARSEL / VIGTIGT! GENERELT OM LA GARD 3750-K ELEKTRONISK KODELÅS. Brugsanvisning Elektronisk Kodelås 3750-K LED

Brugervejledning for fastnettelefoner

Sådan afbrydes forbindelsen Når du vil afslutte CallPilot-sessionen, skal du trykke 83 for at afbryde forbindelsen eller lægge røret på.

Frekvensbestemmelse. HWP I1 Kursusarbejde Forår 2007

Kravspecifikation For. Gruppen

Programmering af CS7050 TCP/IP modul

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

Business One OneVoic Sådan fungerer OneVoic i Business One

Side 2 CS 9452 Brugervejledning. Afsnit Navn Side. 1 Ordforklaring (terminologi) 3. 3 Betjeningsknapper og -lamper 6

Bilag 1f. Beskedsvar/Voic

QUICK GUIDE SNOM300 VOIP BUSINESS PHONES JULI 2010

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

Klimaovervågningssystem

DaTelTek ApS ich 4 SpAPI Telenor Serviceprovider API

Cisco Unity Express 3.0/3.1 Voic System Brugervejledning til avancerede funktioner

Software Dokumentation

QUICK GUIDE SNOM320 VOIP BUSINESS PHONES REV. 2010

Det er nødvendigt for brugeren at læse, forstå og følge vejledningens instruktioner.

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

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

Brugervejledning - til internetbaseret datakommunikation med Nets ved hjælp af HTTP/S-løsningen

Lommeguide til online-afspilleren "PLEXTALK Linio Pocket"

BRUGERVEJLEDNING TÆND-SLUK ENHED

KOM GODT I GANG SOM ADMINISTRATOR

Bilag 1f: Beskedsvar/Voic

WEA-Base Brugervejledning til vejetransmitter

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

Brugervejledning. LG LKD-8/30-apparater. Til GDK 16/20W-omstillingsanlæg

Brugervejledning for. Telenor Dialer

Amplicomms Telefonsvarer AB900 med ekstra forstærkning

HTX, RTG. Rumlige Figurer. Matematik og programmering

Gem dine dokumenter i BON s Content Management System (CMS)

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

TDC Erhverv P.A. Brugermanual til iphone

Start af nyt schematic projekt i Quartus II

Spil og svar. Journal nr Et webbaseret værktøj udviklet af Programdatateket i Skive

Transkript:

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

School of: Electrical engineering Fredrik Bajers Vej 7 9220 Aalborg Øst Phone: 96 35 86 00 Internet: esn.aau.dk Title: Digital multi-user telephone answering machine Theme: Microdata systems Project period: February 1, 2010 - May 27, 2010 Project group: 10gr413 Members of the group: Anders Wittendorff Jesper Mogensen Palle Ravn Sebastian Jensen Henrik Juul Pedersen Supervisor: Jan H. Mikkelsen Number of copies: 7 Number of pages: 110 Attachments: CD Synopsis: This project is based on the idea of a digital multi-user answering machine, where both hardware and software in a microcomputer system will be covered. The demands laying down the framework for the answering machine will be explained first, followed by an explanation of the implementation of the used hardware. The complete system will build upon a minimalistic system, based on a Motorola M68000 processor, which at first will exist of a minimum of hardware need for a working microcomputer. With the minimalistic system running, more hardware will be added, to realize the needed functionality of the final product. For the final product there will be constructed an operating system, mainly programmed in C. The operation system will be able to handle two users, with the functionality of leaving a message for a specific user. Another great feature is the ability to have more than one welcome greeting, which gives the caller a more individual experience. Appendices: 2 Project completed: May 27, 2010 Contents of this report is freely available, but publication (with specification of source) may only be done after arrangement with the authors.

Studieretningen: Elektronik og IT Fredrik Bajers Vej 7 9220 Aalborg Øst Telefon: 96 35 86 00 Internet: esn.aau.dk Titel: Digital fler-bruger telefonsvarer Tema: Mikrodatamatsystemer Projektperiode: 1. februar 2010-27. maj 2010 Projektgruppe: 10gr413 Medlemmer af gruppen: Anders Wittendorff Jesper Mogensen Palle Ravn Sebastian Jensen Henrik Juul Pedersen Vejleder: Jan H. Mikkelsen Antal kopier: 7 Antal sider: 110 Bilag: CD Appendikser: 2 Synopsis: Dette projekt tager udgangspunkt i konstruktionen af en digital fler-bruger telefonsvarer, som dækker både hardware og software i et mikrocomputer system. Først beskrives hvilke krav, der gør sig gældende for konstruktionen af telefonsvareren, hvorefter der redegøres for implementeringen af de valgte hardwareenheder. Der konstrueres først et minimalsystem, bygget på en Motorola M68000 processor, som ud over processoren kun indeholder de mest basale enheder. Det færdige system er en udbygning af minimalsystemet, med de elementer der er nødvendige for at realisere det endelige produkt. Til det færdige system udvikles et styresystem, som hovedsageligt programmeres i C. Styresystemet kan håndtere to brugere, og gør det muligt, at lægge beskeder på telefonsvareren, som er personspecifikke. Derudover er det muligt at have forskellige velkomsthilsner på telefonsvareren, hvilket giver den opkaldende person en mere personlig oplevelse. Projekt afsluttet: 27. maj, 2010 Rapportens indhold er frit tilgængeligt, men offentliggørelse (med kildeangivelse) må kun ske efter aftale med forfatterne.

Forord Denne rapport er udarbejdet som en del af et 4. semester projekt på Aalborg Universitet. Rapporten er udarbejdet af fem studerende på linjen Elektronik og IT ved det Ingeniør-, Natur- og Sundhedsvidenskabelige Fakultet. I perioden fra d. 1. februar til d. 27. maj 2010. Temaet for dette semester er Mikrodatamatsystemer. Projektet omhandler en digital fler-bruger telefonsvarer. Der designes en mikrocomputer med tilkoblede perifere enheder, hertil programmeres der software. Derved bliver den erhvervede viden fra semesteret anvendt i projektet. Rapporten er henvendt til læsere med kendskab til analog og digital teknik samt programmeringssprogene C og Assembly, men kan også læses af andre interesserede. Kildehenvisninger fremstår i rapporten vha. Harvard metoden. Dvs. at kildehenvisningerne fremstår på følgende måde: [forfatters efternavn/firma, årstal]. Der er vedlagt en litteraturliste, hvor de anvendte kilder fremgår. Det samlede kredsløbsdiagram er vedlagt som foldud side bagerst i rapporten. Der er vedlagt et CD-bilag, som refereres således: sti/. CD en indeholder: software kildekode samt doxygen dokumentation, datablade for komponenter samt PEEL-kode. Der forefindes yderlige en digital version af denne rapport, hvori kilder og referencer er interaktive. Anders Wittendorff Henrik Juul Pedersen Jesper Mogensen Palle Ravn Sebastian Jensen I

Indhold Indledning IV 1 Problemformulering 1 2 Foranalyse 2 2.1 Standarder..................................... 2 2.2 Samplingsfrekvens................................. 5 2.3 Use Cases..................................... 8 2.4 Hardware beskrivelse............................... 15 2.5 Kravspecifikation................................. 17 2.6 Accepttestbeskrivelse............................... 19 3 Minimalsystem 21 3.1 Debugger/Monitor................................ 21 3.2 ACIA....................................... 22 3.3 CPU........................................ 23 3.4 Hukommelse.................................... 30 3.5 Memory Map................................... 31 3.6 Kredsløbsdesign.................................. 35 3.7 Komponentliste.................................. 41 4 Hardware 42 4.1 Interrupts og polling............................... 42 4.2 Interrupttiming.................................. 44 4.3 DTMF Dekoder.................................. 45 4.4 Forfiltrering.................................... 47 4.5 Analog til digital konvertering.......................... 50 4.6 Digital til analog konvertering.......................... 52 4.7 ADC/DAC interrupt Generering......................... 55 II

4.8 Interruptcontroller................................ 58 4.9 Revision af adressedekodning.......................... 59 5 Software 61 5.1 Introduktion til events.............................. 61 5.2 Overordnet struktur............................... 64 5.3 Hovedprogrammet................................ 66 5.4 Interruptrutiner.................................. 67 5.5 Menu-opbygning................................. 76 6 Projektafslutning 89 6.1 Accepttest..................................... 89 6.2 Vurdering..................................... 96 6.3 Konklusion.................................... 97 6.4 Perspektivering.................................. 98 Bilag 99 A Pulstid for 555-timer 100 B Implementation af adressedekodning og anden digital logik 102 Litteratur 108 III

Indledning I dette projekt designes og konstrueres en digital fler-bruger telefonsvarer. Det undersøges, hvilke kommercielle standarder og normer, der gælder for denne. Derudfra opstilles en kravspecifikation til en kommerciel telefonvarer. Denne specifikation afgrænses, så den opfylder læringsmålene på semesteret og er realistisk tidsmæssigt. Der skrives use cases for at stille krav til funktionaliteten af telefonsvareren. Ud fra disse use cases programmeres softwaren til telefonsvareren. For at opfylde læringsmålene på dette semester, anbefales det at projektet baseres på en Motorola 68000 mikroprocessor. Der opbygges derfor en mikrocomputer bestående af denne CPU samt RAM, ROM og en seriel forbindelse, så der kan kommunikeres med en debugger. Dette system kaldes for minimalsystemet. Design og opbygning af minimalsystemet beskrives først, hvorefter der beskrives implementering af yderligere perifere enheder. Efter hardwaredesign og implementering beskrives software strukturen. Her inddrages kodeeksempler og efterfølgende beskrives menusystemet vha. flowcharts. IV

Læsevejledning I rapporten benyttes en række forkortelser og udtryk. Disse er listet med tilhørende forklaring i følgende afsnit. Ordliste Følgende forkortelser anvendes i rapporten: AAU ABEL ACIA ADC ALU AS CPU D/M DAC DS DTMF GCC LDS Aalborg Universitet Advanced Boolean Expression Language Asynchronous Communication Interface Adapter Analog til Digital Converter Arithmetic Logic Unit Adress Strobe Central Processing Unit Debugger/Monitor Digital til Analog Converter Data Strobe Dual Tone Multiple Frequency Gnu Compiler Collection Lower Data Strobe M68k Motorola 68000 MSB NMI PC PEEL R/W Most Significant Bit Nonmaskable Interrupt Program Counter Programmable Eraseable Electrical Logic Read/Write V

RAM ROM Random Access Memory Read Only Memory RS232 Recommended Standard 232 UDS USB V eff V s V ss Upper Data Strobe Universal Serial Bus Volt effektivt Volt spids Volt spids-spids Ind- og udgange, som er aktive lave, betegnes med en streg over. Eksempelvis AS. Variabel i C Typen deklareres foran variablenavn således: short navngives som s_navn char navngives som c_navn int navngives som i_navn void navngives som v_navn Pointers deklareres ved at skrive lille p foran typedeklaration. Eksempelvis skrives en pointer til en en integer som: pi_navn Arrays deklareres tilsvarende med typedeklaration. Et array med integers og et array med pointers til chars angives hhv. som: ai_navn[x] apc_navn[x] VI

Kapitel 1 Problemformulering I dette projekt bearbejdes den overordnede problemstilling: Hvordan kan en digital fler-bruger telefonsvarer designes og konstrueres? Herunder skal det undersøges, hvilke relevante standarder, der skal tages højde for mht. design og konstruktion. Denne problemformulering er tiltænkt et kommercielt produkt, foranalysen skrives derfor med henblik på udvikling af kommercielt produkt og de krav der ville være dertil. Efter foranalysen afgrænses disse krav til et produkt som er realistisk, mht. den tid der er til rådighed, og samtidig opfylder de læringsmæssige krav til semesteret. Den overordnede problemstilling opdeles i følgende underpunkter: Hvordan fungerer telefonnettet? Hvilke krav skal telefonsvareren overholde for at blive koblet på telefonnettet? Hvordan virker vis nummer-funktionen? Hvor stor lagerkapacitet bør en kommerciel telefonsvarer have til lagring af beskeder? Hvilke krav stilles til samplingsfrekvens samt opløsning for at kunne gengive telefonsignalet? Hvorledes kan et funktionelt minimalsystem konstrueres? De ovenstående problemer analyseres og dokumenteres i rapporten. 1

Kapitel 2 Foranalyse Foranalysen afdækker relevante områder, som er gældende for at kunne opstille krav til telefonsvareren, tekniske såvel som funktionelle. Først redegøres for relevante standarder, i forhold til en telefonsvarer, som skal tilkobles telefonnettet. Der estimeres hvor meget lager systemet har brug for. Der laves use cases, som beskriver de funktionelle krav, som telefonsvareren skal opfylde. 2.1 Standarder For udstyr der skal tilkobles telefonnettet, er der en række krav som skal være opfyldt. Disse krav er givet ved NET4, som er en standart udstedt af Telestyrelsen. De relevante krav fra NET4 vil her blive gennemgået. 2.1.1 Telefonnettet For at tilkoble udstyr på det offentlige telefonnet, er der bestemte standarder der skal overholdes. Telefonnettet er bygget op af en A- og B-linie, samt jordforbindelse. Telefoncentralen leverer en jævnspænding på 44-56 V mellem A og B [Telestyrelsen, 1995]. Telefonnettet med tilkoblet udstyr er illustreret på figur 2.1 2

A Telefonnettet Tilkoblet udstyr 44-56 V Z U B Figur 2.1. Illustration af telefonnet med tilkoblet udstyr, som har impedansen Z U. Der er to tilstande for udstyr tilsluttet telefonnettet, rotilstand og sløjfetilstand. Rotilstand er gældende når telefonlinjen ikke er i brug, f.eks. når røret er lagt på. I denne tilstand skal Z U have en impedans på mindst 30 kω. I rotilstand skal udstyret kunne detektere et evt. ringesignal, hvis formål er at oprette forbindelse. Ringesignalet har en spænding varierende fra 40 V eff til 120 V eff, med en frekvens på 25 Hz (±5 Hz) [Telestyrelsen, 1995]. Dette signal varer indtil modtager løfter røret, eller opkalder afbryder opkaldsforsøg. Hvis modtager besvarer, skabes der forbindelse mellem opkalder og modtager. Denne tilstand kaldes sløjfetilstanden. Afsluttes opkaldet, opstår der rotilstand, ved den der har afsluttet opkaldet. Opkaldets anden part vil modtage tone som består af periodiske pulser af 400-450 Hz. Pulsene sendes enten i 0,25 sekunder efterfulgt af 0,25 sekunders pause (± 10%) eller i 0,45 sekunder med 0,45 sekunders pause (± 20%) [Telestyrelsen, 1995]. I sløjfetilstand anbefales det at Z U er en impedans på 600 Ω. I denne tilstand kan opkalder og modtager tale sammen. Frekvensområdet for samtalen er 300-3400 Hz. Tilkoblet udstyr må i sløjfetilstand afgive vekselspændinger på op til 3,5 V s [Telestyrelsen, 1995]. Telefonsvareren skal altså, for at kunne tilkobles telefonnettet, overholde disse krav [Telestyrelsen, 1995]: I rotilstand kræves indgangsimpedans på mindst 30 kω I sløjfetilstand anbefales indgangsimpedans på 600 Ω I rotilstand skal udstyret kunne modtage ringesignaler på 40-120 V I sløjfetilstand skal udstyret kunne sende og modtage talesignaler på højest 3,5 V s Talesignaler skal ligge i området 300-3400 Hz 3

2.1.2 Nummervisningsfunktion Overholdes standarden, beskrevet i foregående afsnit, er det muligt at registrere det nummer der ringer op. Dette gøres i Danmark vha. Dual Tone Multiple Frequency (DTMF), der er et signal bestående af forskellige frekvenser. Sammensætningen af disse frekvenser angiver nummeret, der ringer op. Dette afsnit beskriver DTMF og nummervisningsstandarden [Tele Danmark A/S, 2003], så der kan tages højde for dette i kravspecifikationen Forud for et opkald sendes et DTMF-signal, som indeholder information om hvilket nummer der ringes fra. Selve ringetonen kommer først efter hele DTMF-signalet er sendt. I tilfælde af, at modtageren løfter røret, mens DTMF sendes, så afbrydes dette ikke. Først når hele den opkaldende persons nummer er modtaget, så stilles modtageren igennem til opkaldet. Signalet kan opdeles i fire forskellige typer, hvor de tre er specialtilfælde, hvor nummeret ikke kan vises [Tele Danmark A/S, 2003]. I det generelle tilfælde, hvor nummeret kan vises, så begynder DTMF-signalet med et A. Dette efterfølges af cifrene i telefonnummeret, afslutningen af signalet markeres med #. Eksempelvis så sendes telefonnummeret 12345678 som: A12345678# I de tilfælde, hvor nummeret ikke kan identificeres, så sendes et DTMF-signal, der begynder med D. Dette efterfølges af et tal fra 1 til 3 og afsluttes af #. De tre tilfælde er: D1#: Hemmeligt nummer -funktion D2#: Opkald fra udlandet D3#: Teknisk fejl Et DTMF-signal afgives som en kombination af sinusoidale bølger ved forskellige frekvens. Tabel 2.1 viser frekvenserne til de 16 muligheder. Frekvens [Hz] 1209 1336 1477 1633 697 1 2 3 A 770 4 5 6 B 852 7 8 9 C 941 * 0 # D Tabel 2.1. Frekvenskombinationer i DTMF [Telestyrelsen, 1995]. Her ses det hvilke to frekvenser, der giver anledning til de forskellige toner. Hvis nummeret på den opkaldende part f.eks. begynder med 1, så modtager telefonsvareren summen af to sinusoidale signaler med frekvenserne 1209 Hz og 697 Hz. Dette signal er illustreret på figur 2.2. 4

2.0 1.5 1.0 Voltage (V) 0.5 0.0 0.5 1.0 1.5 2.0 0.000 0.002 0.004 0.006 0.008 0.010 Time (s) Figur 2.2. Sum af to sinus bølger, med 1 V amplituder, på hhv. 697 Hz og 1209 Hz. Dette svarer til DTMF signalet for tallet 1. Varigheden af en impuls (et ciffer) er 50 ms. Hver impuls efterfølges af mindst 40 ms uden signal for at kunne adskille cifrene fra hinanden [Tele Danmark A/S, 2003]. Tastetryk på telefon transmitteres altså vha. DTMF, som består af forskellige kombinationer af to sinus toner som beskrevet i tabel 2.1. 2.2 Samplingsfrekvens I dette afsnit undersøges hvilken samplingsfrekvens, der er nødvendig for at kunne gengive audio-signalet på telefonlinjen. Nyquist-Shannons samplingssætning beskrives og anvendes, hvorefter implementering af denne beskrives. Frekvensen hvorved en sampling udføres kaldes samplingsfrekvensen. I dette projekt udvikles en digital telefonsvarer. Derfor skal en Analog til Digital Converter (ADC) anvendes til at sample signalet til en binær værdi. Den binære opløsning, dvs. antallet af bits til rådighed, bestemmer opløsningen af de enkelte samples. Dette betyder, at flere bits giver bedre signalkvalitet. Kvaliteten er ikke kun bestemt af samplingstørrelsen, men også af samplingsfrekvensen [Weisstein, 2010]. 5

2.2.1 Nyquist-Shannons samplingssætningen Et givent audio signal er en sum af sinusoidale bølger af varierende frekvens, fase og amplitude, hvilket matematisk er udtrykt ved formel 2.1. S(t) = N sin (2π f t + φ f ) [-] (2.1) f=0 Hvor: S(t) er audio signalet. [-] t er tiden. f er frekvensen. φ f er fasen til frekvensen f. N er den øverste frekvens. Dette er en endelig Fourier-række. Denne betragtning betyder at det er muligt at benytte Nyquist-Shannon sampling sætningen. Denne siger det er muligt at rekonstruere alle led i en endelig Fourier række ved sampling. Signalet skal som minimum samples ved en frekvens, der er det dobbelte af den øverste frekvens [Weisstein, 2010][Oppenheim, 2010]. Sætningen siger, at ingen information går tabt, hvis dette krav er opfyldt. [s] [Hz] [rad] [Hz] 2.2.2 Implementering Implementering af Nyquist Shannon teorien har en svaghed i og med at den forudsætter at en uendelig god opløsning er tilgængelig når signalet samples. Uendelige præcision er ikke tilgængelige i dette projekt og derfor bliver opløsningen begrænset. Dette giver anledning til fejl, når signalet samples. Fejlen refereres til som quantization-noise og angiver effekten af fejl i ADC samplingen i forhold til det originale analoge signal. Denne faktor er omvendt proportional med oversamplingsraten, der er givet i formel 2.2. Hvor: M = f S 2N f S er samplingsfrekvensen. N er den øverste frekvens i systemet. M er oversamplingsraten. [-] [Hz] [Hz] [-] (2.2) Effekten er illustreret på figur 2.3 og 2.4. Ved at fordoble samplingsfrekvensen, fra figur 2.3, passer søjlerne bedre på bølgens form i figur 2.4. Derved bliver der mindre fejl. 6

f(x) x f(x) = sin x Figur 2.3. Sinusoidal bølge, med amplituden 1, samplet med samplingsfrekvens f S. De røde søjler illustrer de enkelte samples, taget med en opløsning på 0.25. f(x) x f(x) = sin x Figur 2.4. Samme bølge som i figur 2.3, samplet med den dobbelte frekvens dvs. 2 f S. På telefonnettet er den øverste frekvens 3400 Hz. For at opfylde Nyquist kriteriet kræves en samplingsfrekvens på 6800 Hz. Bedre kvalitet opnås med oversampling, derfor sættes samplingsfrekvensen til 8000 Hz i produktet. 2.2.3 Lager Samplingsfrekvensen er nu valgt og den påkrævende lagerplads, for systemet, kan derudfra estimeres. Dette gøres i dette afsnit. Den påkrævende lagerplads bestemmes primært ud fra mængden af lyd der skal kunne gemmes ukomprimeret på systemet. Den påkrævede lagerplads per sekunds ukomprimeret lyd kan bestemmes ud fra bitraten, denne bestemmes ud fra denne formel 2.3. Bitrate = R f S [bit/s] (2.3) 7

Bitrate er antallet af bit i sekundet. R er opløsningen. f S er samplingsfrekvensen. [bit/s] [bit] [Hz] Samplingsfrekvensen, som specificeret i sektion 2.2 på side 5, er 8000 Hz og opløsningen er 8 bit. Dette giver en bitrate på 64 kbit/s, dette giver at et sekunds lyd vil kræve 8 KiB plads og dermed fylder 1 minut 480 KiB. Anvendes ukomprimeret lyd med en sampelrate på 8 khz og en opløsning på 8 bit, kræves 8 KiB for at lagre et sekunds lyd. Lagring af et minuts lyd kræver 480 KiB. 2.3 Use Cases Krav baseret på standarder samt krav til lyd kvalitet er nu beskrevet. I dette afsnit redegøres der for funktionaliteten af telefonsvareren. Dette gøres ved at beskrive typiske anvendelsesscenarier med use cases. Ud fra use cases opstilles krav til telefonsvareren, der fremgår i kravspecifikationen. Telefonsvareren skal være en flerbrugertelefonsvarer med 2 brugertyper, en bruger og en administrator. Disse kan tilgå menuen vha. opkald til telefonsvareren eller nærbetjening. En bruger har adgang til at aflytte, slette eller gemme modtagne beskeder samt ændre sin personlige velkomsthilsen. En administrator skal udover, at have de samme funktioner som en bruger, også have adgang til at ændre generel velkomst hilsen samt opsætning af telefonsvarerens indstillinger. Der skal, når personer ringer op, være mulighed for at vælge om der vil lægges besked til specifik person eller generel besked til alle brugere af telefonsvareren, ydermere skal telefonsvareren have mulighed for at gemme personer i database så de evt. kan stilles videre til specifik velkomsthilsen. 2.3.1 Beskrivelse af aktører De interagerende personer, som forekommer i use casene, samt fremgår af figur 2.5, er inddelt i fire kategorier. Efter en kort beskrivelse af kategorierne, vil det fremgå af figur 2.5 hvorledes de interagerer med telefonsvareren. Administrator Ved administrator menes den eller de personer, der har det største niveau af rettigheder. Rettigheder som gør det muligt at ændre indstillinger, som f.eks. generel hilsen, som er fælles for alle brugere af systemet. Bruger En person registreret som bruger kan bruge systemets basisfunktioner, og ændre indstillinger 8

som kun er gældende for egen brugerkonto. Bekendt Ved en bekendt menes en ekstern person, som har relationer til en eller flere brugere af systemet. Denne persons telefonnummer skal på forhånd være lageret i systemet, for at blive genkendt som bekendt. Dette sørger for personen omstilles direkte til en specifik velkomsthilsen. Ukendt Ukendt bruges til at beskrive alle personer, som ikke falder i en af overstående kategorier. Som oftest vil der være tale om en ukendt person, men i den situation at en af overstående grupper ringer til telefonsvareren fra et telefonnummer der ikke er registreret i systemet, vil denne blive genkendt som ukendt. Følgende diagram viser overordnet, hvilke funktioner der er tilgængelig alt efter personens rettigheder til systemet, samt lokationen af personen. Ekstern opkald til husstand Bekendt Flerbruger telefonsvarer Indtale besked Aflytte/slette/gennem besked Nærbetjening Administrator Ukendt Ændre personlig velkomstbesked Bruger Administrator Ændre general velkomstbesked Ændre indstillinger Bruger Ikke-bruger Funktion kun Samme funktioner som Administrator Bruger tilgængelig eksternt ved nærbetjening Figur 2.5. Figuren viser hvilke funktioner, der er tilgængelige for de forskellige aktører, med eksterne opkald på venstre side og intern betjening fra huset på højre side. 9

1. Overordnet use case Her beskrives den overordnet use case, som er det scenarie der gælder for indgående opkald kommende fra alle brugertyper Use case 1.1 - Der ringes til telefonsvareren Målbeskrivelse: At modtage indgående opkald fra alle brugertyper. Normalscenarie: Indgående opkald registreres. Der ventes X sekunder inden telefonsvareren tager over. Hvis der er tastet # inden opkaldet besvares sendes den opkaldende til login. Opkaldendes telefonnummer sammenlignes med database over telefonnumre. Opkaldet besvares forskelligt, afhængig af hvilken brugertype telefonnummeret er tilknyttet. Opkaldet afsluttes Undtagelse: Opkald bliver registreret, men der lægges på før indtaling af besked påbegyndes. Opkald logges med telefonnummer og tidspunkt for opkald. 2. Ikke-bruger opkald Her beskrives scenarier for opkald af ikke-brugere, dvs. personer som ringer til husstanden. Use case 2.1 - Bekendt ringer Målbeskrivelse: At optage og lagre besked fra person som er kendt af telefonsvareren, dvs. en person hvis nummer er opgivet i databasen. Normalscenarie: 10 Indgående opkald registreres. Opkaldende nummer genkendes i databasen over telefonnumre. Telefonsvareren besvarer opkaldet efter X antal sekunder. Der gøres opmærksomt på at der kan vælges en anden modtager ved tryk på. Der afspilles den personlige velkomsthilsen der er tilknyttet personen, efterfulgt af biplyd.

Besked optages og lagres, for en fastsat maksimal tid. Opkald afsluttes. Undtagelser: Der trykkes under velkomstbeskeden. Den opkaldende får en liste over mulige personer, der kan ligges en besked til, f.eks. Tast 1 for Dorte Tast 2 for Svend Aage Tast 3 for Lars Den fastsatte maksimale tid for besked overskrides. Det bliver oplyst at maksimal tid er nået hvorefter opkald afsluttes. Ikke tilstrækkelig ledig hukommelse. Der gøres opmærksomt på, at det ikke er muligt at indtale en besked efter den personlige velkomstbesked. Use case 2.2 - Ukendt person ringer Målbeskrivelse: At optage besked fra ukendt person, dvs. en person hvis nummer ikke er opgivet i databasen. Normalscenarie: Indgående opkald registreres. Opkaldende nummer findes ikke i databasen. Telefonsvareren besvarer opkaldet efter X antal sekunder. Der gøres opmærksomt på at der kan vælges en specifik modtager ved tryk på. Den generelle velkomsthilsen oplæses, efterfulgt af biplyd. Besked optages og lagres, for en fastsat maksimal tid. Opkald afsluttes. 11

Undtagelser: Der gælder samme undtagelser som ved foregående use-case samt denne undtagelse: ukendt person er en bruger som kalder fra et ukendt nummer. Hvis personen er en bruger, som ringer fra et andet nummer end sit eget, vil han blive behandlet som en ukendt bruger, undtagen hvis han trykker #, som vil sende ham til login. 3. Bruger opkald Her beskrives scenarier for opkald af brugere og administratorer. Use case 3.1 - Administrator ringer fra kendt nummer Målbeskrivelse: At håndtere opkald fra administrator. Normalscenarie: Indgående nummer genkendes som nummer på administrator. Administrator kan tilgå menu ved at taste #, ellers almindeligt opkald. Vælges menu bedes der om kode, afsluttes ved tryk på #. Der er nu mulighed for følgende muligheder, som vælges ved tast på tilhørende nummer: 1 Aflytte/slette/gemme indtalte beskeder. 2 Ændre personlig velkomsthilsen. 3 Ændre kode. 4 Ændre generel velkomsthilsen. 5 Ændre indstillinger for telefonsvareren. Undtagelser: Kode tastes forkert. Ved forkert indtastet kode bedes om indtastning af kode igen, efter 3 forsøg afsluttes opkald. Opkald afbrydes abrupt. Kun allerede bekræftede ændringer træder i kraft, alle igangværende ændringer som ikke er bekræftet vil blive glemt. Use case 3.2 - Bruger ringer fra kendt nummer Målbeskrivelse: At håndtere opkald for bruger. Normalscenarie: 12

Indgående nummer genkendes som nummer på bruger. Bruger kan tilgå menu ved at taste #, ellers almindeligt opkald. Vælges menu bedes der om kode, afsluttes ved tryk på #. Der er nu mulighed følgende muligheder, som vælges ved tast på tilhørende nummer: 1 Aflytte/slette/gemme indtalte beskeder. 2 Ændre personlig velkomsthilsen. 3 Ændre kode. Undtagelser: Kode tastes forkert. Der bedes om indtastning af kode igen, efter 3 forsøg afsluttes opkald. Opkald afbrydes abrupt. Kun allerede bekræftede ændringer træder i kraft, alle igangværende ændringer som ikke er bekræftet vil blive glemt. Use case 3.3 - Administrator eller bruger ringer fra ukendt nummer Målbeskrivelse: At muliggøre administrator- eller brugerrettigheder selvom der ikke ringes fra kendt nummer. Normalscenarie: Bruger eller administrator ringer fra ukendt nummer. Bruger eller administrator kan tilgå menu ved at taste #, ellers almindeligt opkald. Der bedes om brugernummer, afsluttes med #. Der bedes om kode, afsluttes med #. Nu har bruger eller administrator adgang til samme faciliteter som hvis han/hun ringede fra eget kendte nummer. 13

Undtagelser: Indtastede brugernummer findes ikke. Der bedes om indtastning af brugernummer igen, efter 3 forsøg afsluttes opkald. Kode tastes forkert. Der bedes om indtastning af kode igen, efter 3 forsøg afsluttes opkald. Opkald afbrydes abrupt. Kun allerede bekræftede ændringer træder i kraft, alle igangværende ændringer som ikke er bekræftet vil blive glemt. 4. Nærbetjening Her beskrives scenarier for betjening af telefonsvareren uden opkald til denne. Use case 4.1 - Administrations betjening Målbeskrivelse: At tilgå betjening af menu ved nærbetjening. Normalscenarie: Bruger eller administrator løfter røret på en lokal telefon. Bruger eller administrator trykker #. Der bedes om brugernummer, afsluttes med #. Brugernummeret bliver genkendt som enten bruger eller administrator. Der bedes om kode, afsluttes med #. Nu har brugeren eller administratoren adgang til samme faciliteter som hvis han/hun ringede fra eget kendte nummer. Undtagelser: Indtastede brugernummer findes ikke. Der bedes om indtastning af brugernummer igen, efter 3 forsøg afsluttes opkald. Kode tastes forkert. Der bedes om indtastning af kode igen, efter 3 forsøg afsluttes opkald. Opkald afbrydes abrupt. Kun allerede bekræftede ændringer træder i kraft, alle igangværende ændringer som ikke er bekræftet vil blive glemt. De opstillede use-cases giver altså anledning til en række funktionaliteter som skal implementeres i softwaren til telefonsvareren. Den komplette menu der skal designes vil blive beskrevet i software afsnit 5 på side 61. 14

2.4 Hardware beskrivelse Der er nu beskrevet og opstillet krav til hardwaren og softwaren. I følgende afsnit illustreres, vha. et blokdiagram, den overordnede opbygning af hardwaren til telefonsvareren. De enkelte blokkes funktioner beskrives efterfølgende. Blokdiagrammet for telefonsvareren fremgår på figur 2.6. I diagrammet er parallel busser markeret med en en tyk pil med tilhørende tekst. Clock og chipselect er ikke forbundet til de andre blokke på figuren, da dette vil gøre den uoverskuelig. Besked Lager Database Program Lager Data Adresse Linieenhed DAC ADC 8 bit 8 bit Mikroprocessor Computer Tid / Dato enhed Telefon Clock Chipselect Figur 2.6. Blokdiagrammet viser telefonsvarerens hardware samt skitserer forbindelser enhederne. Funktionerne af de enkelte blokke på figur 2.6 beskrives i følgende underafsnit. Mikroprocessor Der benyttes en mikroprocessor som Central Processing Unit (CPU) til at styre de perifere enheder. Denne skal håndtere beregninger på dataene i lagrene. 15

DAC/ADC For telefonen kan kommunikere med mikroprocessoren, så skal telefonsignalet konverteres fra analogt til digitalt. Dette gøres med en ADC. Tilsvarende konverteres signalet fra mikroprocessoren, til analogt, så det kan sendes via telefonnettet. Linieenhed Linieenheden skal sikre, at telefonsvareren må kobles til telefonnettet. Denne skal derfor sikre, at indgangen overholder relevante standarder indenfor området. Clock Denne blok skal genererer et clock-signal, som er afgørende for timingen i mikroprocessoren, således der ikke sker tab af data. Tid / dato enhed Telefonsvareren skal optage beskeder og gemme information om, hvornår beskeden er optaget. Denne enhed skal derfor holde styr på dato samt klokken, så informationerne kan videregives, når mikroprocessoren forespørger på dem. Computer Systemet skal kunne tilsluttes til en computer, således der kan fejlsøges. Denne blok skal derfor indeholde en grænseflade, der gør kommunikation mellem computer og mikroprocessor mulig. Chipselect Chipselect sikrer, at mikroprocessoren kan hente og skrive data i de rigtige perifere enheder. Denne blok sikre dermed, at det lager mikroprocessoren forespørger på, er aktivt. Lagret beskrives i de efterfølgende 3 blokke. Chipselect er også påkrævet for at håndterer I/Oenheder, som f.eks. kommunikation med en computer. 16