• No results found

Huvudprogrammets funktion

In document UTVECKLING AV PROCESSORPLATTFORM (Page 40-48)

5.5. Mjukvarans funktion

5.5.5. Huvudprogrammets funktion

Huvudprogrammet ska fungera generellt, medan val av enhet är godtyckligt. De enheter som lämnas ut kan innehålla vilka funktioner som helst. Programmet behöver därför kunna upptäcka vilka enheter som kan användas.

Varje enhet som används initieras och körs tills ett mål uppnåtts. Målet kan vara ett speciellt tecken eller kommando. Val av en enhet är inte i skrivande stund färdigt men enhetens avslutningskommando gör att en ny enhet kan initieras.

Följande punkter hjälper till att göra programmets funktion, mer förståelig. Denna beskrivning är allmän och tänkt att fungera på varje enhet med samma princip.

Körning av huvudprogram: 1. Start

2. Försök till initiering av enhet. Om initieringen misslyckas gör om punkt 2 med nästa enhet.

3. Vänta på startsignal. Om användaren signalerar ”avsluta”, gå till punkt 6. 4. Kör och hämta eller skicka data.

5. Vänta på avslutad överföring. 6. Avsluta och gå till Start.

Flödesdiagrammet i figur 26 visar att enheter söks och initieras. De initierade enheter kan sedan användas efter ett interrupt. Operatören väljer då den enhet som ska köras [22].

Status för startprocessen visas på displayen under initieringen. Användbara enheter kan sedan väljas på displayen. Valet sker genom att tangentbordet skapar ett interrupt där användaren väljer enhet eller avbryter en överföring. Om inget interrupt skett, körs den aktuella enheten klart.

Rahman Hassanzadeh 35 Magisterprogrammet i elektronik Figur 26: Flödesdiagram över huvudprogrammet

Rahman Hassanzadeh 36 Magisterprogrammet i elektronik

6.

Funktionstest av prototyper

För att kunna testköra varje enhet för sig skapade jag separata prototyper till de enheter som programmerades till att styras av mikroprocessorn. Bland dem kan nämnas D/A-omvandlaren (MAX533) och tangentbord. Enligt datablad kopplade jag komponenter på en vit

laborationsplatta (kopplingsdäck), så att de kunde kommunicera med processorn via

signalledningar. Efter programladdningen testkördes de tills jag fick det önskade resultatet (se figur 28 och 29).

6.1. Serieporten RS-232

Här nedan i figur 27 visas kommunikationen mellan RS-232 och en terminal (Tera-Term). Uppkopplingen gjordes mellan en PC med ett terminalprogram och prototypen för RS-232.

Testprogrammet för RS-232 returnerar ett skrivet tecken på PC-tangentbordet och ett bindestreck till terminalen (se figur 22).

Rahman Hassanzadeh 37 Magisterprogrammet i elektronik

6.2. Tangentbord

Bilden nedan visar hur prototypen av ett tangentbord 4x4 ser ut och hur den fungerar när den kopplas till processorn AT90CAN32.

Resultatet av programkörningen visar att när knapp C tryckts ner, blir valet kolumn 4 i ordning (1101) och rad 3 (1110) dvs. 1101 1110 = 1 + 2 + 8 + 16 + 32 + 64 = 123 (se figurer 16 och 23 samt tillhörande källkoden i bilaga 2).

Figur 28: Testkörning av tangentbordet 4x4 som kopplats till processorn AT90CAN32

Kolumner Rader AVR- Dragon

(emulator) STK501 (adapter) AT90CAN- 32/128 RS-232 STK500 LCD4 (display)

Rahman Hassanzadeh 38 Magisterprogrammet i elektronik

6.3. D/A-omvandlaren MAX533

Figuren 29 visar resultatet av testkörning av en prototyp av D/A-omvandlaren MAX533. D/A-omvandlaren omvandlar en referensspänning med hjälp av styrsignaler. Nedan visas (i figuren på voltmetrar) att referensspänningen 1,06 volt omvandlas till 0,53 volt med 8 bitar då värdet 128 (000000012) överförts (se avsnitt 5.5.3 och figur 24).

Figur 29: Resultatet av testkörningen av prototypen på D/A-omvandlaren MAX533 och processorn AT90CAN32

Chip Select

Clock signal Data In

+3,3volt matnings- spänning Referens- spänning Utspänning på en av utgångarna CLR (hög) 100nF kondensator PDE (låg)

Rahman Hassanzadeh 39 Magisterprogrammet i elektronik

7.

Slutsats

Syftet med detta projekt var att bygga ett enkel- eller dubbelsidigt mönsterkort med ytmonterade komponenter. Målet var även att få de anslutna periferierna att kommunicera med processorn.

Jag har skapat ett byggblock som består av hårdvara och mjukvara. På mjukvarudelen används C-programmering för att programmera valda enheter.

I största möjliga mån valde jag komponenter från Kitrons komponentdatabas, förutom processorn AT90CAN32 som i början av projektet inte fanns i Kitrons databas.

Processorns effektförbrukning var mindre än 1W. Eftersom själva displayen drar mer än 1W, kan man släcka den med hjälp av programmet för att sänka strömförbrukningen under 1W. Processorns klockning ställdes till 20 MHz. Enligt projektets specifikationskrav skulle enheten spänningsmatas med +3,3V, varför jag försökte välja komponenter med +3,3V matningsspänning för att slippa införa flera olika spänningsregulatorer. Komponenterna valdes så att de klarade temperaturområde från -40 till +85 grader.

Plattformen byggdes med 2 lager och designen gjordes i både programmet OrCAD Capture och MultiSim/Ultiboard. Företaget behövde en färdig lösning som designats i programmet OrCAD. Varje periferi/enhet skulle finnas på ett separat blad så att företaget ska kunna införa lösningar enligt kundernas önskemål och göra en layout (se bilaga 1).

Plattformen blev programmerad för en D/A-omvandlare, RS-232, en display och ett

tangentbord. Plattformen har visserligen stöd för flera enheter, men uppdragsgivaren ställde inget krav på att mjukvaran skulle utvecklas. Koden för klassbiblioteket RS-232 togs från Atmega16, men utvecklades för att passa AT90CAN32 som har fler serieportar. Skillnaden i inkluderade filer gjorde att några extra kommandon krävdes samt att vissa funktioner hade fått andra namn.

Företaget KD i Karlskoga, där jag fick genomföra mitt examensprojekt stämde riktigt bra överens med min teoretiska utbildning som jag har skaffat mig inom Magisterprogrammet i elektronik.

Bland de tidigare nämnda verktyg som användes för att utföra arbetet hade jag aldrig arbetat med programmet OrCAD Capture. Enligt företagets kravspecifikation skulle emellertid kopplingsschemat ritas i OrCAD, så fick jag lära mig det programmet. Det fanns dock ingen person på Kitron i Karlskoga som kunde hantera OrCAD. Däremot hade en medarbetare på Kitron i Jönköping erfarenhet av programmet. Min handledare rådde mig därför att vända mig till honom för att få hjälp. Jag lärde mig en hel del om OrCAD under hans vägledning. Under tiden ritade jag kopplingarna i programmet MultiSim som används på universitetet i Örebro. Det var också tack vare mina kunskaper i MultiSim som jag lärde mig OrCAD Capture relativt snabbt. Programmet är verkligen intressant, därför att modifieringen av

komponentsymboler är enkel och kan utföras snabbt.

Jag upptäckte också att processorn AT90CAN32 inte har samma klassbibliotek som Atmega16, varför jag fick lära mig att använda ett helt nytt klassbibliotek samt en del nya funktioner.

Rahman Hassanzadeh 40 Magisterprogrammet i elektronik Med denna metod kan nya enheter kompletteras med gamla och nya lösningar utvecklas. Sedan kan projektet vidareutvecklas och leda till fortsatt forskning.

8.

Käll- och litteraturförteckning

[1] Webbsida till Företaget Kitron AB, med information om företaget där examensarbetet

utfördes. Tillgänglig på:http://www.kitron.com/(2007-03-12)

[2] Atmel Corporation, 8-bitars AVR Microcontroller with 32 K Bytes of ISP Flash and CAN

Controller AT90CAN32 [www]. Publicerad 2006. Tillgänglig på:

(2007-03-27)

[3] Texas Instruments, MSP430FG439 (60KB 256 B Minneskortt, 2KB RAM) Mixed Signal

Microcontroller [www]. Publicerad 2004-2007. Tillgänglig på:

(2007-03-27)

[4] Microchip, PIC18F66J10 Microcontroller [www]. Publicerad 2006. Tillgänglig på:

! " ! (2007-03-26)

[5] Freescale Semiconductor, 8-bitars Microcontrollers MC9S08LC60 [www]. Publicerad 2007. Tillgänglig på:

#$ % &'$ (2007-03-26)

[6] Atmel, Microcontrollers AT91SAM7A2 [www]. Publicerad 2007. Tillgänglig på: ( (2007-03-25)

[7] Atmel, ATmega16A 8-bit AVR Microcontroller [www]. Publicerad 2007. Tillgänglig på:

& ) (2007-03-19)

[8] Atmel, ATmega128 8-bit AVR Microcontroller [www]. Publicerad 2007. Tillgänglig på:

( (2007-03-19)

[9] Mårdensjö, Kjell (2004). AVR RISC processorer. Örebro universitet: Institutionen för teknik.

[10] Hemert, Lars-Hugo (2001). Digitala kretsar. 3 uppl. Lund: Studentlitteratur.

[11] Maxim Integrated Products, USB Peripheral Controller with SPI Interface MAX340E [www]. Publicerad 2007. Tillgänglig på:

http://datasheets.maxim-ic.com/en/ds/MAX3420E.pdf (2007-04-08)

[12] Microchip Technology Incorporated, ENC28J60 Stand-Alone Ethernet Controller with

SPI Interface [www]. Publicerad 2006. Tillgänglig på:

http://ww1.microchip.com/downloads/en/DeviceDoc/39662b.pdf (2007-04-04)

[13] Pencz, Jack (2005). Datakommunikation för ingenjörer. Grundläggande teori för

Rahman Hassanzadeh 41 Magisterprogrammet i elektronik [14] Philips Semiconductors, PCA82C251 CAN Transceiver for 24 V systems [www].

Publicerad 1997. Tillgänglig på: http://www.elfa.se/pdf/73/737/07374606.pdf(2007-03-28) [15] Maxim Integrated Products, 8-Bit Quad DAC MAX533 [www]. Publicerad 1996. Tillgänglig på:http://datasheets.maxim-ic.com/en/ds/MAX533.pdf (2007-05-11) [16] Produktinformation. Elfl, artikelnr. 35-678-31, Tangenybord 4x4 [www].

Tillgänglig på: http://www.elfa.se/elfa-bin/inforuta.pl?textfield=3567831 (2007-04-02) [17] Maxim Integrated Products, MAX3232 [www]. Publicerad 2003. Tillgänglig på:

http://www.elfa.se/pdf/73/732/07322845.pdf (2007-03-29)

[18] Produktinformation, Elfa, artikelnr. 73-485-01, LTC485CN RS485-krets [www]. Publicerad 2001. Tillgänglig på:http://www.elfa.se/pdf/73/734/07348501.pdf (2007-03-29) [19] Densitron Europe LTD, Artikelnr. 316-7720, Graphic matrix display module of a Liquid

Crystal Display [www]. Tillgänglig på: http://se.farnell.com/densitron/hc-lm4068bgsny-

1218/lcd-module-graphic-64x100/dp/3167720?_requestid=456127 (2007-04-05)

[20] Molin, Bengt (2001). Analog elektronik. Lund: Studentlitteratur.

[21] Produktinformation. Lawicell, artikelnr. ATSTK500, ATSTK501, ATAVRDRAGON [www]. Publicerad 2002. Tillgänglig på: http://www.lawicel-shop.se/shop/ (2007-05-14)

[22] Flödesdiagram är ritade med programmet Dia.

Tillgänglig på:http://www.gnome.org/projects/dia (2007-05-23)

[23] Mårdensjö, Kjell (2004). Objektorienterad modulering. Örebro universitet: Institutionen för teknik.

Rahman Hassanzadeh 42 Magisterprogrammet i elektronik

9.

Appendix

Bilaga 1: Kopplingsschema i OrCAD Capture

In document UTVECKLING AV PROCESSORPLATTFORM (Page 40-48)

Related documents