projektarbete nummerpresentatör - lunds tekniska …...projektarbete nummerpresentatör av: henrik...

11
Institutionen för Informationsteknologi Lunds Tekniska Högskola Projektarbete Nummerpresentatör Av: Henrik Hall Mattias Larsson Romani Nous 2001-01-15

Upload: others

Post on 20-Aug-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Projektarbete Nummerpresentatör - Lunds tekniska …...Projektarbete Nummerpresentatör Av: Henrik Hall Mattias Larsson Romani Nous 2001-01-15 2 Abstract For the unexperienced student,

Institutionen för Informationsteknologi Lunds Tekniska Högskola

Projektarbete

Nummerpresentatör

Av:

Henrik Hall Mattias Larsson Romani Nous

2001-01-15

Page 2: Projektarbete Nummerpresentatör - Lunds tekniska …...Projektarbete Nummerpresentatör Av: Henrik Hall Mattias Larsson Romani Nous 2001-01-15 2 Abstract For the unexperienced student,

2

Abstract For the unexperienced student, designing a digital device can be quite a challenge. During a number of weeks we designed our own Caller ID from scratch. The device is based on the Motorola 68008 micro processor. The rest of the hardware includes a display, memory, a real time clock, programmable logic, a few buttons, a UART and a DTMF transceiver. The UART is used for serial communication with a PC, and the DTMF transceiver is used for detecting signals from the public telephone system. The work started off with setting up goals and composing a requirement specification. By knowing what is expected of the device the suitable components were chosen. The next step was making a wiring diagram, followed by wrapping the pins. Most part of the work was done independently with a li ttle help from the instructor. In this thesis we describe the design, the way of implementation and the debugging of both hardware and software.

Page 3: Projektarbete Nummerpresentatör - Lunds tekniska …...Projektarbete Nummerpresentatör Av: Henrik Hall Mattias Larsson Romani Nous 2001-01-15 2 Abstract For the unexperienced student,

3

Innehållsförteckning 1. Inledning........................................................................................................................4 2. Funktionalitet och arbetsgång........................................................................................4

2.1 Funktionalitet...........................................................................................................4 2.2 Arbetets gång...........................................................................................................4

3. Hårdvara........................................................................................................................5 4. Mjukvara........................................................................................................................6

4.1 Mjukvara i nummerpresentatör ...............................................................................7 4.2 Mjukvara på PC.......................................................................................................7

5. Resultat ..........................................................................................................................8 6. Referenser......................................................................................................................9 Appendix A - Kravspecifikation......................................................................................10 Appendix B - Kretsschema..............................................................................................11

Page 4: Projektarbete Nummerpresentatör - Lunds tekniska …...Projektarbete Nummerpresentatör Av: Henrik Hall Mattias Larsson Romani Nous 2001-01-15 2 Abstract For the unexperienced student,

4

1. Inledning Efter många års studier vid LTH, där flertalet kurser behandlar teoretiska ämnen, kan det vara skönt med en praktisk kurs. Kursen Digitala projekt är just en sådan kurs, där man bygger en digital pryl från grunden till en färdig prototyp. Kursen är extra intressant eftersom den spänner över många områden - datorteknik, digitalteknik, elektronik, mjukvara, kommunikation mfl - dvs man får använda sina surt förvärvade kunskaper från tidigare kurser på ett kreativt sätt. Vid kursens start får man antingen, ur en lista med olika förslag, välja en pryl att bygga eller också komma med ett eget förslag. Arbetet drivs till största delen självständigt med lite hjälp från handledaren. Vi är ett gäng på tre grabbar som valt att bygga en ”avancerad” nummerpresantatör. I denna rapport avser vi att beskriva själva konstruktionen hos nummerpresentatören samt vårt tillvägagångssätt från en hög komponenter och sladdar till färdig prototyp. 2. Funktionalitet och arbetsgång

2.1 Funktionali tet Nummerpresentatören har de vanliga funktionerna som brukar ingå i en traditionell nummerpresentatör, t ex att kunna lagra 30 inkomna samtal till sammans med datum och klockslag, och det går med hjälp av knappar att bläddra i listan av telefonnummer och radera ett eller alla telefonnummer. Men utöver dessa standardfunktioner finns också ett antal mer avancerade finesser. T ex kan nummerpresentatören, via en serielkabel, kopplas till en PC på vilken man kan lägga upp telefonbok. Telefonboken laddas ner till nummerpresentatören och när sedan någon ringer som finns med i telefonboken kommer telefonnumret att mappas til l ett namn som til lsammans med telefonnummer, tid och datum visas på displayen. På PC:n finns också möjlighet att lägga upp en lista med nummer som man vil l svartlista. Då någon som finns med i denna lista ringer stängs telefonen av så att den ej ringer. Ett önskemål kan också vara att det bara är vissa nummer som får ringa under vissa tider, förslagsvis nattetid. Dessa nummer lagras i en vit li sta.

2.2 Arbetets gång Vi har haft 7 veckor till vårt förfogande för att bygga nummerpresentatören. Till en början kändes arbetet överväldigande och man visste inte från vilket håll man skulle angripa problemet. Första anhalten bestod i att formulera kravspecifikationen (se appendix A). Då denna var klar var det dags att bestämma vilka komponenter som behövdes. Därefter ritades ett kretsschema med hjälp av datorprogrammet PADS PowerLogic (se appendix B). Detta schema låg til l grund för själva konstruktionsarbetet, som mestadels bestod av virning och lödning på ett virkort. Då hårdvarukomponenterna fåtts att fungera till sammans på ett bra sätt och testats ingående påbörjades arbetet med mjukvaran. Till vår stora hjälp hade vi då en emulator som bla gjorde att vi slapp bränna om EPROM varje gång vi ändrade i vårt program, istället laddade vi bara ner koden till emulatorn. Dessutom fanns funktioner för

Page 5: Projektarbete Nummerpresentatör - Lunds tekniska …...Projektarbete Nummerpresentatör Av: Henrik Hall Mattias Larsson Romani Nous 2001-01-15 2 Abstract For the unexperienced student,

5

debugging, tex möjlighet att sätta brytpunkter under exekvering av vårt program. Utan denna hjälp hade arbetet med utveckling och felsökning av mjukvaran blivit enormt mycket mer tidskrävande, och absolut inte rymts inom ramarna för denna kurs. För att kunna arbeta li te parallellt med både mjukvara och hårdvara byggde vi hårdvaran för de grundläggande funktionerna klar först, och fick mjukvaran till dessa att fungera. Därefter byggde vi på hårdvaran samt til lhörande mjukvara i moduler. 3. Hårdvara Följande huvudkomponenter användes: Processor: MC68008 Då vi påbörjade vår konstruktion ställdes vi att välja om vi ville basera vår konstruktion på Motorolas processor MC68008 eller enchipsdatorn 68HC11. Då vi ansåg oss behöva mer minne än vad HC11:an kunde ge oss valde vi MC68008 som har större möjligheter för utbyggnad. Detta innebar att vi behövde ganska många separata kretsar, något vi inte behövt med HC11. Dock anser vi i efterhand att det var värt det extra besväret att använda 68008, eftersom vi därigenom mer ingående lärde oss samverkan mellan olika kretsar, kontrollsignaler osv. Minne: 16 kB EPROM samt 32 kB SRAM. I SRAM lagras bla inkommande samtal, telefonbok, svartlista och vitli sta. I EPROM lagras själva programkoden. Klocka: MM58274CN. Interruptstyrd realtidsklocka som används för att hålla koll på datum och tid, då vi vill lagra dessa vid inkommande samtal samt visa klocka då presentatören ej används. UART: MX68C681-PC. Används för kommunikationen mot PC. En seriell kabel ansluts med 9-polig DSUB via en MAX233 spänningskonverterare till UART:en. Kretsen är interruptstyrd. DTMF-transceiver: MT8880AE. Interruptstyrd krets som avkodar analoga signaler från telenätet samt sänder sådana till t elenätet. Anslutningen till t elenätet sker via RJ19-kontakter. Display: Sharp 4x20 tecken. På denna visas allsköns information såsom samtalslista, datum och tid mm. Relä: AX121A-4. Denna komponent använder vi för att kunna bryta spänningen till telefonen så att den ej ringer. In/ut-matning: Fyra knappar samt 2 lysdioder användes för detta. Dessutom användes naturligtvis diverse komponenter för kontrollsignaler. Vi använder oss av en gemensam databuss samt en gemensam adressbuss vilket kräver logik för t.ex.

Page 6: Projektarbete Nummerpresentatör - Lunds tekniska …...Projektarbete Nummerpresentatör Av: Henrik Hall Mattias Larsson Romani Nous 2001-01-15 2 Abstract For the unexperienced student,

6

”chip select” och ”output enable” för att avgöra vem som får till gång til l databussen osv. Denna logik samt logik för avbrottsstyrning implementerades i ett antal PAL-kretsar. Eftersom vår DTMF-avkodare och display är synkrona krävdes extra logik för att få dessa att fungera till fredsställande til lsammans med det övriga systemet som är asynkront. En färdig lösning på detta problem fanns i manualen til l processorn och kopierades rakt av. För in- och utmatning användes D-vippor. För att kunna kontrollera om ett samtal besvarats samt om det ringer använde vi två optokopplare som kopplades till telenätet samt två JK-vippor. Anledningen till att vi vill kunna avgöra om det ringer är att vi bryter telefonen då ett svartlistat nummer försöker ringa. Vi måste då veta när det slutat ringa så att vi kan aktivera telefonen igen. Detta görs genom att optokopplaren nollställer JK-vippan då det ringer, och med jämna mellanrum kontrolleras om vippan är nollställd. Är den det ettställs den. Är den fortfarande ettställd nästa gång man kontrollerar den så har det slutat ringa och reläet kan aktivera telefonen på nytt. Lurlyft kontrolleras på motsvarande sätt.

Fig 1. Hårdvaran 4. Mjukvara Mjukvaran består av två delar, dels den som körs i själva nummerpresentatören, dels programmet på PC för överföring av telefonbok osv.

Page 7: Projektarbete Nummerpresentatör - Lunds tekniska …...Projektarbete Nummerpresentatör Av: Henrik Hall Mattias Larsson Romani Nous 2001-01-15 2 Abstract For the unexperienced student,

7

4.1 Mjukvara i nummerpresentatör Denna är skriven i ANSI C med vissa till ägg i assembler och är till stor del baserad på avbrott. Mycket styrs av realtidsklockan som programmeras att ge avbrott 10 gånger i sekunden. Då kollas knapptryckningar, display och lysdioder uppdateras osv. Dessutom ges avbrott från DTMF-avkodaren då denna tar emot signaler från telenätet samt från UART:en då denna vil l utföra kommunikation mot en PC. Klockan och DTMF-kretsen delar på avbrott 5, medan UART:en använder sig av avbrottsnivå 2. Förutom rutiner för att kunna bläddra i li stan av samtal och liknande finns även funktioner för att ställa datum och tid med hjälp av knapparna. Målet var att nummerpresentatören skall kunna användas som en traditionell sådan självständigt utan att kopplas till en PC så länge man ej önskar använda specialfunktionerna.

Fig 2. Nummerpresentatören igång.

4.2 Mjukvara på PC Denna valde vi att skriva i Visual Basic, pga dess enkelhet att skapa ett snyggt användarvänligt program. Rutiner för seriekommunikationen fanns färdiga vilket ytterligare underlättade. I detta program kan man lägga till samt ta bort nummer och namn i telefonboken, lägga till samt ta bort nummer i svartlistan eller vitli stan samt ladda upp dessa data till nummerpresentatören. En skärmdump från vårt program kan ses nedan.

Page 8: Projektarbete Nummerpresentatör - Lunds tekniska …...Projektarbete Nummerpresentatör Av: Henrik Hall Mattias Larsson Romani Nous 2001-01-15 2 Abstract For the unexperienced student,

8

Fig. 3: Användargränssnitt på PC-sidan 5. Resultat Under kursens gång har vi naturligtvis stött på problem, av varierande omfattning. Trots allt har vi kunnat bygga en pryl som fungerar enligt våra förväntningar, med vissa små undantag. Som en vanlig konventionell nummerpresentatör fungerar den alldeles ypperligt, det är möjligen våra extra funktioner som ännu kräver viss finslipning. En sak man skulle kunna förbättra är också att använda EEPROM istället för SRAM för att lagra telefonbok osv, så att dessa ej försvinner då spänningen bryts. För att det skall vara rimligt att använda vår nummerpresentatör i hemmet måste den naturligtvis också bli mycket mindre, något som kanske uppnåtts om man använt 68HC11. Den stora utmaningen under konstruktionen av hårdvaran låg i att få de olika komponenterna att kommunicera med varandra. DTMF- och UART-krestarna var de största utmaningarna. DTMF-kretsen ställde till stora problem då dess statusregister inte betedde sig enligt datablad. Detta innebar förutom att en massa tid gick att vi sköt upp funktionen med uppringning från DTMF-kretsen. Timing var ett annat problem. När man skickar en signal, måste den ju tas emot i rätt ögonblick på andra sidan. Bland annat tvingades vi fördröja DTACK-signalen till processorn för att kommunikationen med realtidsklockan skulle fungera. Även trimning av optokopplarna för att kunna detektera

Page 9: Projektarbete Nummerpresentatör - Lunds tekniska …...Projektarbete Nummerpresentatör Av: Henrik Hall Mattias Larsson Romani Nous 2001-01-15 2 Abstract For the unexperienced student,

9

lurlyft och ringsignal visade sig dra ut på tiden, även om det til l slut visade sig bli en ganska enkel lösning. Förvånanade nog hade vi inga problem med virningen av sladdar. Vi virade hundratalet sladdar, bestående av kontrollsignaler, databussar och adressbussar. Vi räknade med att sannolikheten för ett fel var enormt stor. Det visade sig att vi virade allt ing rätt direkt och slapp därmed eventuella problem. Slutligen vill vi bara konstatera att kursen varit både väldigt lärorik och inte minst rolig. 6. Referenser Lindvall , Bertil. It-68 Utvecklingssystem för MC68008 version 4.0 Motorola. MC68008 8-/32-bit microprocessor with 8-bit data bus, 1985. Televerket.Överföring av nummerinformation över analog ledning vid ankommande trafik, 1992. Institutionen för informationsteori. Digitala projekt, datablad 68008 Kernighan, Brian W. och Ritchie, Dennis M. The C Programming Language, 1988 Institutionen för informationsteknologi. http://www.it.lth.se/it/courses/Digp/index.html

Page 10: Projektarbete Nummerpresentatör - Lunds tekniska …...Projektarbete Nummerpresentatör Av: Henrik Hall Mattias Larsson Romani Nous 2001-01-15 2 Abstract For the unexperienced student,

10

Appendix A - Kravspecifikation Följande är vår ursprungliga kravspecifikation:

1. Nummerpresentatören skall kunna lagra uppringande telefonnummer. Minst 30

nummer skall kunna lagras. 2. Förutom telefonnummer skall även datum och tid för en uppringning lagras. 3. Nummerpresentatören skall ha en display som kan visa alla uppringande nummer

och dess till hörande datum och tid, ett i taget. 4. Med hjälp av knappar skall användaren kunna bläddra i li stan av uppringande

telefonnummer. 5. Användaren skall med en knapp kunna radera telefonnummer, antingen ett i taget

eller alla på en gång. 6. Användaren skall med hjälp av knappar kunna ställa in datum och tid på

nummerpresentatören. 7. Då inga nummer finns i l istan skall l ämpligt meddelande på displayen tala om

detta. 8. En lysdiod skall tala om ifall det finns nya ej besvarade samtal. 9. Lysdioden skall blinka samma antal gånger som antalet nya ej besvarade samtal,

därefter skall den vara släckt under en viss tid. 10. Nummerpresentatören skall med hjälp av en seriell kabel kunna anslutas till en

PC, och skall kunna konfigureras på PC:n med hjälp av en til lhörande programvara.

11. Användaren skall kunna lägga till telefonnummer till en svart lista, vilket innebär att telefonen ej ringer för dessa telefonnummer .

12. Användaren skall kunna bestämma vilka samtal som släpps igenom under vissa tider på dygnet, en s.k. vit li sta.

13. Konfigurering av vilka telefonnummer som skall finnas i den svarta respektive vita listan görs på en ansluten PC med til lhörande programvara.

14. Den svarta listan skall kunna aktiveras/deaktiveras utan att tömmas. 15. Den vita listan skall kunna aktiveras/deaktiveras utan att tömmas. Vid aktivering

skall tidpunkt för start och stopp anges. 16. På en ansluten PC skall användaren kunna lägga upp ett telefonregister som

mappar telefonnummer mot namn. Då någon som finns med i registret ringer upp skall namnet visas i nummerpresentatörens display til lsammans med telefon-numret.

17. Alla inställningar som gjorts på den anslutna PC:n skall kunna överföras till nummerpresentatörens minne, alltså skall den svarta och vita listan samt namnmappningen fungera på nummerpresentatören även då PC:n inte längre är ansluten.

Page 11: Projektarbete Nummerpresentatör - Lunds tekniska …...Projektarbete Nummerpresentatör Av: Henrik Hall Mattias Larsson Romani Nous 2001-01-15 2 Abstract For the unexperienced student,

11

Appendix B - Kretsschema