• No results found

Kostnadseffektiv enhet för fjärrövervakning av inbyggda system

N/A
N/A
Protected

Academic year: 2021

Share "Kostnadseffektiv enhet för fjärrövervakning av inbyggda system"

Copied!
148
0
0

Loading.... (view fulltext now)

Full text

(1)

Fakulteten för teknik och samhälle

Examensarbete

15 Högskolepoäng, grundnivå

Kostnadseffektiv enhet för fjärrövervakning av

inbyggda system

Cost-effective device for remote monitoring of

embedded systems

Henrik Byström

Filip Rickardsson

Examen: Högskoleingenjörsexamen i datateknik, 180hp Examinator: Ivan Kruzela Huvudområde: Data och Telekommunikationsteknik Handledare: Tommy Andersson Datum för slutseminarium: 2013-05-31

(2)

Abstract

Companies can have production plants in a variety of locations around the world. The industrial equipment used in facilities often includes some form of built-in systems which require maintenance or monitoring at regular intervals. The equipment can be technologically advanced and therefore maintenance must be performed by a service technician. Smaller suppliers of industrial equipment are not always able to have service departments in each country, which often means an additional cost. It would therefore be advantageous with an additional communication system that acts as an intermediary between the service technician and the target system that can be located in different places. The communication system developed in this project acts as a kind of remote monitoring where it is possible to perform remote reading, and change different settings remotely. The purpose of this study is therefore to develop a simple and cost effective device designed for remote monitoring of equipment containing embedded systems.

The study resulted in a cost-effective prototype, based on the single board computer Raspberry Pi, of a monitoring device that can be connected to a target system when service is needed. The communication system was tested throughout the project on a target system based on the single board computer Arduino Uno. The monitoring unit is able to communicate with the target system via three different ways: RS-232, JTAG and communication via GPIO-pins. These communication methods can be used for different purposes as these communication methods are useful for various applications and can thus enable implementation of many different functions. The communication methods are also widely used and suitable for many different target systems. Service technicians have two available user interfaces for interacting with the monitoring unit. The primary user interface is a web interface where the output of the target system can be monitored and that there is the possibility to set different settings. The second interface is remote controlling of the monitoring device which has functions to perform debugging and the ability to flash a new program into the target system.

(3)

Sammanfattning

Företag kan ha produktionsanläggningar på ett antal olika platser runt om i världen. Den industriella utrustningen som används i anläggningarna innehåller ofta någon form av inbyggt system som kräver underhåll eller övervakning vid jämna mellanrum. Utrustningen kan vara tekniskt avancerad och därför måste underhållet skötas av en servicetekniker. Mindre leverantörer av industriella utrustningar har inte alltid möjlighet att ha serviceorganisationer i varje land då detta innebär en extra kostnad. Det hade därför varit fördelaktigt med ett kompletterande kommunikationssystem som fungerar som en mellanhand mellan servicetekniker och målsystem som kan befinna sig på skilda platser. Kommunikationssystemet som tagits fram i detta projekt fungerar som en typ av fjärrövervakning där det är möjligt att utföra fjärravläsning samt ändra inställningar på distans. Syftet med examensarbetet är därför att utveckla en enkel och kostnadseffektiv enhet avsedd för fjärrövervakning av utrustningar innehållande inbyggda system.

Examensarbetet resulterade i en kostnadseffektiv prototyp av en övervakningsenhet, baserad på enkortsdatorn Raspberry Pi, som kan kopplas in till ett målsystem när service behövs. I projektet testades kommunikationssystemet mot ett målsystem baserat på enkortsdatorn Arduino Uno. Övervakningsenheten har möjlighet att kommunicera med målsystemet via tre olika sätt: RS-232, JTAG samt kommunikation via GPIO-pinnar. Dessa kommunikationssätt kan användas till olika ändamål då kommunikationssätten är användbara för olika tillämpningar och kan därmed möjliggöra implementering av många olika funktioner. Kommunikationssätten är dessutom välanvända och passar till många olika målsystem. Servicetekniker har två tillgängliga användargränssnitt för att interagera med övervakningsenheten. Det primära användargränssnittet är ett webbgränssnitt där utdata från målsystemet kan övervakas samt att det finns möjlighet att ställa in olika inställningar. Det andra användargränssnittet består av fjärrstyrning av övervakningsenheten där funktioner finns för att utföra felsökning (eng. debugging) samt möjlighet att ladda in ett nytt program på målsystemet.

(4)

Förord

Denna uppsats är resultatet av vårt examensarbete och är den avslutande delen av vår utbildning till Högskoleingenjörer i data och telekommunikationsteknik på Malmö högskola. Arbetet utfördes på Malmö högskola under våren 2013 och har både varit lärorikt och intressant.

Vi vill passa på och tacka de personer som bidragit och hjälpt oss med examensarbetet. Ett stort tack vill vi först och främst rikta till vår handledare Tommy Andersson, universitetslektor på Malmö högskola, som bidragit med stöd och engagemang samt kunskaper under arbetets gång. Vi vill även tacka vår examinator Ivan Kruzela.

Henrik Byström Filip Rickardsson Malmö högskola 2013

(5)

Innehållsförteckning

1. Inledning ... 1 1.1 Bakgrund ... 1 1.2 Syfte ... 1 1.3 Avgränsningar ... 1 1.4 Kravspecifikation ... 2 2. Övergripande systembeskrivning ... 3 2.1 Systembeskrivning ... 3 2.2 Användarscenario ... 4 3. Existerande fjärrövervakningssystem ... 5 3.1 SCADA ... 5 3.2 PLC och RTU ... 6

3.3 Likheter och skillnader med utvecklat system ... 7

4. Metod ... 8 4.1 Förstudie ... 8 4.2 Informationssökning ... 8 4.3 Prototyp av kommunikationssystem ... 9 5. Jämförelse av enkortsdatorer ... 10 5.1 Identifiering av utvärderingskriterier ... 10 5.2 Viktning av utvärderingskriterier ... 11 5.3 Utvärderingstabell ... 12 5.4 Sensitivitetsanalys ... 14 6. Övervakningsenhet ... 17 6.1 Raspberry Pi - Hårdvara ... 17 6.2 Raspberry Pi - Mjukvara/Operativsystem ... 18 6.3 Systembeskrivning av övervakningsenhet ... 18 6.4 Webbserver... 19 6.5 Databas ... 20

6.6 Kommunikation med målsystem ... 23

6.7 Webbgränssnitt ... 24

6.8 Fjärrstyrning ... 26

7. Kommunikation mellan övervakningsenhet och målsystem ... 27

7.1 RS-232 ... 27

(6)

7.1.2 Koppling RS-232 ... 30

7.2 Avläsning/Påverkan av digitala signaler ... 31

7.2.1 Koppling Avläsning/Påverkan av digitala signaler ... 32

7.3 JTAG ... 33 7.3.1 Felsökningsmjukvara ... 34 7.3.2 Koppling ... 35 8. Målsystem ... 36 9. Prototypkostnad ... 38 10. Test av system ... 39 10.1 Test av RS-232 ... 39

10.2 Tester av digital avläsning/påverkan av digitala pinnar ... 40

10.3 Test av JTAG ... 42

10.4 Tester av webbgränssnittet ... 43

11. Diskussion ... 44

11.1 Analys av testresultat... 44

11.2 Svårigheter och begränsningar ... 44

12. Slutsats ... 46

Ordlista ... 48

14. Källförteckning eller Referenser ... 50

Bilaga 1 - Förstudien ... 52

Bilaga 2 - Instruktionsmanual ... 64

(7)

1

1. Inledning

I detta inledande kapitel kommer bakgrunden och syftet med examensarbetet att beskrivas, dessutom kommer avgränsningarna som gjorts i projektet att tas upp tillsammans med de krav som utformats för systemet.

1.1 Bakgrund

Inbyggda system används i dag i en mängd produktionsutrustningar i industrin. Dessa utrustningar kan vara tekniskt komplicerade och kräver ofta specialutbildade servicetekniker för underhåll. Mindre leverantörer har dock inte möjlighet att ha egna serviceorganisationer i varje land. Det skulle därför vara värdefullt om man kunde komplettera existerande system med ett kommunikationssystem via vilket man kan utföra fjärravläsning och göra inställningar på distans, dvs. en typ av fjärrövervakning. På så sätt behöver inte den sakkunniga serviceteknikern ta sig fysiskt till varje maskin som skall underhållas. Fjärrövervakningssystem för industriella automationssystem existerar idag men är dyra och i regel avsedda för utrustning från en viss leverantör.

1.2 Syfte

Syftet med detta examensarbete är att utveckla en enkel och kostnadseffektiv enhet avsedd för fjärrövervakning av inbyggda system.

1.3 Avgränsningar

 Kommunikationen mellan servicetekniker och övervakningsenhet skall ske över internet.

 Övervakningsenheten skall byggas kring en befintlig plattform såsom Raspberry Pi, BeagleBoard eller liknande med Linux som operativsystem.

 Övervakningsenheten skall kommunicera med det inbyggda systemet, i fortsättningen benämnt målsystemet, via, i detta sammanhang, vanliga kommunikationsgränssnitt.

 I projektet kommer tester endast att utföras på ett testsystem baserat på enkortsdatorn Arduino.

(8)

2

1.4 Kravspecifikation

I tabell 1 nedan är en kravspecifikation listad med de krav som togs fram i projektets inledning.

Krav-nr. M/I/Ö Kravspecifikation

K1 M Övervakningsenheten ska vara kostnadseffektiv i förhållande till målsystemet

K2 M Övervakningsenheten ska kunna kommunicera med målsystemet via RS-232 protokollet

K3 M Övervakningsenheten ska kunna kommunicera med målsystemet genom direkt avläsning/påverkan av digitala signaler

K4 I Hårdvara som möjliggör kommunikation med målsystemet via JTAG ska finnas tillgänglig

K5 Ö Mjukvara för kommunikation med målsystemet via JTAG ska vara tillgänglig

K6 M Inställningar i testmålsystemet ska kunna ändras genom input från PC

K7 M Övervakningsenheten ska kunna presentera avlästa värden i ett webbgränssnitt

K8 M Webbgränssnittet ska göras så pass generellt att det lätt ska gå att anpassa till olika användare.

K9 Ö Det ska finnas möjlighet till bildöverföring till PC:n från övervakningsenheten

K10 M Det ska finnas autentisering av användare i webbgränssnittet

K11 M Testmålsystemet ska kunna utföra övervakning av komponenter

K12 Ö Det ska finnas möjlighet att kunna starta en loggning av mätvärden för att kunna se dessa över en tidsperiod

M = Minimikrav, I = Idealkrav, Ö = Önskvärt

(9)

3

2. Övergripande systembeskrivning

I detta kapitel kommer kommunikationssystemet beskrivas övergripligt där dess olika delar samt användargränssnitt kort förklaras. Utöver detta kommer ett användarscenario beskrivas där det förklaras hur kommunikationssystemet kan användas i verkligheten.

2.1 Systembeskrivning

Övervakningsenheten fungerar som en mellanhand mellan en PC och målsystemet då dessa två inte kan kommunicera direkt med varandra. Mätvärden från målsystemet avläses av övervakningsenheten som lagrar dessa värden i en databas och som sedan presenterar dem för PC:n via ett webbgränssnitt. I övervakningsenheten finns det därför en webbserver som är värd för detta webbgränssnitt. Vid PC:n finns det möjlighet att utföra inställningar som skickas till övervakningsenheten som lagrar dessa inställningar i databasen och som sedan vidarebefordrar inställningarna till målsystemet. Det finns även möjlighet för en användare att ta kontroll över övervakningsenhetens operativsystem för att kunna komma åt andra funktioner vilket diskuteras längre fram i texten.

I figur 1 visas en övergripande systembild, vilken illustrerar hela kommunikationssystemet.

(10)

4

2.2 Användarscenario

Följande beskriver ett användningsscenario för övervakningssystemet.

Potatis AB är ett företag som har specialiserat sig på att tillverka maskiner som sorterar sten från potatis. Sten är ett problem för jordbrukare då det följer med en hel del när potatis skördas. Sorteringsmaskinerna är köpta av jordbrukare i ett antal olika länder i Europa. Maskinerna behöver ibland underhåll vilket kräver att en tekniker befinner sig på plats. Det är tidskrävande och kostsamt att behöva skicka runt tekniker runt om i Europa så därför skulle det vara bra om visst underhåll skulle kunna utföras på distans. Som en lösning på detta har ägarna i Potatis AB därför införskaffat vårt övervakningssystem och satt det i bruk tillsammans med sina maskiner.

Systemet är inte tänkt att ständigt vara igång utan endast vid underhåll av maskinen. Operatören ringer därför ner till jordbrukaren, vars maskin behöver underhåll, som sätter igång övervakningssystemet. Operatören navigerar till webbgränssnittet där denne loggar in genom att ange sina användaruppgifter. Väl inloggad har operatören ett antal valmöjligheter. Det första som kontrolleras är mätvärden från målsystemet för att se om de ser korrekta ut. Operatören tycker att mätvärdena ser felaktiga ut och justerar därför inställningarna som finns tillgängliga i webbgränssnittet. I webbgränssnittet finns en funktion där värden kan avläsas från ett antal digitala GPIO-pinnar. Operatören läser av dessa värden och bestämmer sig för att de ser bra ut. Till sist bestämmer operatören sig för att se över mätvärdena från målsystemet ytterligare en gång efter justeringarna. Mätvärdena ser nu bra ut och därför bestämmer sig operatören för att avsluta sessionen genom att logga ut från webbgränssnittet och därefter meddela jordbrukaren.

(11)

5

3. Existerande fjärrövervakningssystem

Ett existerande övervaknings- och styrsystem som finns på marknaden idag är SCADA (Supervisory Control And Data Acquisition) med tillhörande PLC (Programmable Logic Controller) och RTU (Remote Terminal Unit) vilket tas upp i detta avsnitt. Denna typ av övervakningssystem liknar övervakningssystemet som utvecklats i detta projekt i vissa avseende vilket diskuteras mot slutet av avsnittet.

3.1 SCADA

SCADA (Supervisory Control and Data Acquisition) är en typ av datorstyrt industriellt kontrolleringssystem (eng. Industrial Control Systems) som övervakar och styr industriella processer. SCADA är en term för ett centralt styrsystem som innehåller fyra olika komponenter: [1,2]

 Målsystem - enhet som skall kontrolleras, innehållande t.ex. sensorer.

 Lokala insamlingsenheter - består av RTU (Remote Terminal Unit) eller PLC (Programmable Logic Controller) enheter som samlar in information från målsystemet.

 Nätverks kommunikation – används för att kommunicera på distans mellan insamlingsenheterna och den centrala SCADA-enheten.

 En central enhet för övervakning - samlar information från de lokala

insamlingsenheterna för att sedan sammanställa och presentera det för användaren. Ett SCADA system kan t.ex. ha till uppgift att övervaka en anläggning med olika vattenledningar. Om en läcka på en av ledningarna uppstår så utför systemet nödvändiga analyser och kontroller för att t.ex. bestämma om läckan är kritiskt för att sedan presentera informationen för användaren på ett organiserat och logiskt sätt. SCADA-system är mångsidiga då de kan vara relativt enkla, t.ex. för att övervaka miljöförhållanden i en kontorsbyggnad, eller mycket komplexa för att t.ex. övervaka aktivitet i kärnkraftverk eller vattenreningsverk. Tidigare har SCADA-system använt sig av det publika telefonnätet för att kommunicera mellan de olika delarna men använder idag nätverk såsom LAN, WAN och även trådlösa kommunikationsförbindelser. [3]

(12)

6

I figur 2 nedan visas uppbyggnaden av ett enkelt SCADA-system.

Figur 2: SCADA-system

3.2 PLC och RTU

Sensorer och liknande utrustning utgör SCADA-systemens ”ögon och öron”. Exempelvis utrustning i ett vattenreningsverk såsom nivåmätare, trycksensorer och temperaturmätare tillhandahåller information till SCADA-systemet som berättar för en operatör om systemet fungerar som det ska. Annan utrustning såsom motorstyrning och ventilstyrning möjliggör för operatören att utföra justeringar i systemet. [3]

Innan denna övervakning eller styrning kan fungera måste utrustningarnas information översättas till ett språk som SCADA-systemet kan förstå. För att lösa detta används ett system kallat RTU. En Remote Terminal Unit är en enhet som används tillsammans med SCADA-systemet som automatiskt samlar in data från sensorer och annan utrustning som den är ansluten till. RTU-enheten samlar in information, som den sedan konverterar till ett språk som SCADA-systemet kan förstå för att till sist skicka iväg informationen över en kommunikationskanal. RTU-enheterna brukar vanligtvis vara belägna nära målsystemet som skall övervakas och kommunicerar med dessa m.h.a. kommandon. De viktigaste egenskaperna hos en RTU-enhet är kommunikationskanalerna, antalet digitala/analoga ingångar/utgångar och minnesstorleken. De vanligaste kommunikationskanalerna är RS-232, RS-485, RS-422 och Ethernet. [4]

(13)

7

Instruktioner för att styra olika utrustningar finns ofta lagrat lokalt då instruktioner inte kan skickas från SCADA-systemet då bandbredden är begränsad. Dessa instruktioner är lagrade i PLC-system PLC-system (Programmable Logic Controllers) som är en dator som används i industriell miljö för att övervaka in- och utdata från olika målsystem och baserat på detta ta olika beslut [5]. Dessa beslut verkställs av PLC-systemet genom att det kommunicerar med den industriella utrustningen via digitala eller analoga I/O anslutningar [5]. Andra kommunikationsätt som är vanliga är parallell och seriell kommunikation. Parallellkommunikationen möjliggör hög överföringshastighet över korta avstånd medan seriellkommunikationen används för att överföra data med lägre hastighet över längre avstånd [6]. En av PLC-systemens främsta fördelar är att de är enkla att programmera då de använder ett lättförståeligt programmeringsspråk vilket innebär att systemen är lätta att anpassa eller modifiera vid behov. PLC-system kan ingå i större system såsom SCADA, som beskrivits tidigare, men kan även vara fristående och användas som ett primärt kontrolleringssystem på mindre anläggningar, komplett med tillhörande användargränssnitt [5]. PLC-system används främst till att styra industriell utrustning inom ett lokalt område där flera PLC-system kopplas ihop via LAN för att på ett bättre och effektivare sätt kunna styra anläggningen då systemen kan utbyta information mellan varandra samtidigt som hela systemet kan styras från en lokalt belägen central [7].

PLC-system har sitt ursprung inom automationsindustrin och används ofta i produktionsanläggningar där det inte fanns något stort behov av att kunna ansluta till något kommunikationsnätverk. SCADA-system å andra sidan har sitt ursprung i att kunna utföra fjärrmätning där det tidigare endast var nödvändigt att hämta grundläggande information från sina olika RTU-system. På senare tid har det dock blivit önskvärt att påverka programmen i PLC-systemen från en avlägsen plats samtidigt som det blivit önskvärt att kunna styra enklare utrustning m.h.a. system. På detta sätt har gränsen mellan PLC- och RTU-system suddats ut då tillverkare av båda typer av RTU-system numera konkurrerar om samma kunder. [3]

3.3 Likheter och skillnader med utvecklat system

Kommunikationssystemet som tagits fram i detta projekt är inte i närheten av den grad av komplexitet som ovan nämnda system har, men grundtanken är ändå densamma. I både vårt och ovan nämnda system är det ett målsystem som skall övervakas, kontrolleras och styras via en enhet som i sin tur kommunicerar med användaren på olika sätt. Skillnaderna mellan systemen är att övervakningsenheten som ska utvecklas i detta projekt är ett mycket enklare, mindre och dessutom kostnadseffektivare system då insamlingsenheten, nätverkskommunikationen och centralenheten har integrerats i en och samma enhet. På detta sätt kan även vår övervakningsenhet både samla in och sammanställa data i en databas för att slutligen presentera det för användaren via ett webbgränssnitt. SCADA, PLC och RTU system är som nämnts ofta komplexa men även mycket dyra och dessutom framtagna för specifika utrustningar. Systemet som utvecklats i detta projekt skiljer sig på denna punkt då det innehåller avsevärt enklare funktioner vilket dock möjliggör att det enklare kan anpassas och därmed göras kompatibelt med många olika målsystem istället för ett specifikt.

(14)

8

4. Metod

Arbetet inleddes med att en förstudie genomfördes där delproblem, mål och lösningsprinciper identifierades. Därefter utfördes en informationssökning där det söktes efter vetenskapliga artiklar med relevant information för att lösa de olika delproblemen. En planering i form av ett Gantt-schema utformades där en tidsuppskattning gjordes för varje delproblem. När detta arbete var klart påbörjades sedan huvudarbetet med att konstruera en prototyp för kommunikationssystemet.

4.1 Förstudie

Under förstudien delades huvudproblemet upp i delproblem för att få en översiktlig bild över projektet. Avgränsningar togs fram för att hålla projektet inom rimliga ramar för att projektet skulle vara genomförbart. En kravspecifikation skapades där mål till varje delproblem identifierades och rangordnades efter hur viktigt målet ansågs vara med tanke på tillgänglig tid. Därefter utformades en tidsplanering i form av ett Gantt-schema. I diagrammet gjordes en tidsuppskattning för varje delproblem samt en ansvarsuppdelning för de olika aktiviteterna. Det har även gjorts en genomförbarhetsanalys där möjligheterna till att lösa de olika delproblemen, med valda lösningsprinciper, har analyserats med hjälp av resultatet från informationssökningen. Efter genomförbarhetsanalysen kunde en slutsats sedan dras om att projektet var genomförbart. (se Bilaga 1; Förstudien)

4.2 Informationssökning

Under förstudien utfördes en informationssökning för att kunna lösa de teoretiska delarna av projektet. Informationssökningen innefattade bland annat böcker, artiklar och elektroniska källor. När relevanta artiklar samlats in så skapades en tabell där artiklarna kopplades samman med respektive lösningsprinciper. För att utföra en korrekt informationssökning har det tagits del av information om hur man använder databaser med vetenskapligt innehåll t.ex. IEEE Xplore eller Science Direct. Detta innefattade hur man använder sig av avancerade sökningar samt kritisk granskning för att hitta så relevant information som möjligt. Vid informationssökningen har därför utgångspunkten varit att kritiskt granska all insamlad information enligt följande fyra punkter, där frågan har ställts om:

 Informationen är pålitlig  Informationen är aktuell  Informationen är opartisk  Informationen är relevant

(15)

9

4.3 Prototyp av kommunikationssystem

Under projektets gång har en prototyp utvecklats enligt kravspecifikationen som togs fram under förstudien. Då syftet med projektet är att skapa en kostnadseffektiv enhet för fjärrövervakning så inleddes först ett utredningsarbete (se kapitel 5) för att bedöma vilken av olika enkortsdatorer som lämpade sig bäst för ändamålet.

Under utvecklingen av prototypen har vi jobbat tillsammans och arbetat parallellt på olika delar av prototypen. Koden som skrivits har kontinuerligt granskats av båda parter dels för att ändra eller förbättra men även för att båda ska få en förståelse för hela systemet. Koden som skrivits har kontinuerligt lagts upp på en gemensam it-plattform, dels för att ha en säkerhetskopia av koden så att inget går förlorat men främst för att koden alltid skulle vara tillgänglig för varandra. På detta sätt kunde arbetet fortgå även om någon var frånvarande. Prototypen har utvecklats genom en iterativ metod där syftet varit att så fort som möjligt få ihop ett fungerande system. Systemet har sedan hela tiden förbättras och utökats med nya funktioner vid varje iteration. Denna metod underlättade för att lättare hitta brister eller möjligheter som skulle kunna förbättra programmet.

I figur 3 nedan visas en bild på prototypen som utvecklats under projektet.

(16)

10

5. Jämförelse av enkortsdatorer

För att ta reda på vilken enkortsdator som lämpar sig bäst för arbetet så har ett utredningsarbete av ett antal olika enkortsdatorer utförts. Detta utredningsarbete har gjorts enligt “Cost-benefit Analysis” metoden som beskrivs av Gerhard Pahl m.fl. i boken Engineering Design - A Systematic Approach. Syftet med utredningen är att ta reda på styrkor och svagheter hos olika enkortsdatorer baserat på ett antal olika kriterier.

5.1 Identifiering av utvärderingskriterier

Det första steget i utredningsarbetet är att ta reda på vilka områden som är viktiga för att kunna identifiera utvärderingskriterier. Detta görs genom att man ritar upp ett diagram innehållande olika träd, ett för varje intresseområde. Roten i dessa träd är det breda intresseområdet, medan förgreningarna är utvärderingskriterier som identifierats. [8]

I figur 4 kan det ses vilka intresseområden och utvärderingskriterier som identifierats.

(17)

11

5.2 Viktning av utvärderingskriterier

Det andra steget är att ta reda på värdet av varje utvärderingskriterium genom att vikta dem. Detta är viktigt i detta skede då relativt oväsentliga kriterier redan nu kan sållas bort innan jämförelsen av enkortsdatorerna börjar. Denna vikt består av ett reellt, positivt nummer och är en indikation på hur viktigt varje intresseområde och utvärderingskriterium är relativt till varandra. I detta utredningsarbete har det valts att vikta områden och kriterier mellan 0 till 1 med två decimalers noggrannhet vilket i praktiken innebär 100 olika värden. [8]

I figur 5 nedan har tidigare identifierade intresseområden och kriterier viktats.

Figur 5: Viktning av utvärderingskriterier

Viktningen ska utföras på ett sådant vis att summan av alla viktfaktorerna på varje nivå alltid måste vara lika med 1 [8]. I figur 5 ovan motsvarar viktfaktorn de värden som står på vänster sida i varje sfär. För att få ut den relativa vikten (högervärde i varje sfär) på nästa nivå i trädet multipliceras viktfaktorn med den relativa vikten i föregående nivå. Detta förklaras lättare med följande exempel för att få ut den relativa vikten av O121:

Viktfaktor av O121 * relativ vikt av O12 = 0,5 * 0,3 = 0,15. Detta resulterar i att 0,15 blir den nya relativa vikten för O121.

Att genomföra detta steg med tre nivåer ger en mer realistisk rangordning mellan de olika utvärderingskriterierna än om endast en nivå skulle ha använts. [8]

(18)

12

5.3 Utvärderingstabell

Nästa steg är själva utvärderingen av enkortsdatorerna genom en utvärderingstabell. Innan denna kan ställas upp måste det dock tas fram parametrar som varje kriterium bedöms efter. Parametrarna ska antingen vara kvantifierbara eller vara uttryckta på ett så konkret sätt som möjligt. Efter att dessa parametrar har bestämts så är det dags att betygsätta varje enkortsdator efter hur väl de uppfyller utvärderingskriterierna. När betygsättningen är klar summeras resultaten och sedan ska dessa summor sättas i förhållande till priset för att få ut hur många tekniska enheter man får per prisenhet för respektive enkortsdator. [8]

Först och främst undersöktes det vilka enkortsdatorer som finns på marknaden idag. Av dessa valdes ett antal ut som eventuellt skulle kunna passa vårt system. När enkortsdatorerna valts ut så undersöktes samtliga för att ta reda på tillräckligt med information för att kunna betygsätta dem efter de olika kriterierna. Efter detta arbete var slutfört insågs det att vissa av enkortsdatorerna inte lämpade sig för ändamålet och sållades därför bort i detta skede. Efter detta betygsattes utvärderingskriterierna för varje enkortsdator med ett betyg från 1-10. Vid betygsättningen ska endast betyget 0 eller 10 ges om kriteriet uppfylls exceptionellt bra eller dåligt [8]. Resultatet av undersökningsarbetet kan ses i tabell 2 där endast de tekniska aspekterna finns med.

Kriterier Parametrar

Nr. Vikt Enhet 1 Processorkraft 0,14 Processorhastighet MHz 2 RAM Kapacitet 0,14 Storlek på RAM KB 3 Flash-minne Kapacitet 0,12 Storlek på Flash-minne MB 4 Öppen mjukvara 0,15 Om mjukvaran är öppen - 5 Öppen hårdvara 0,15 Om hårdvaran är öppen - 6 Dokumentation 0,18 Lättillgänglig dokumentation - 7 Community 0,12 Aktiv community -

Beaglebone Beaglebone xm Pandaboard Raspberry Pi APC Rock

Magnitud Värde Viktat

Värde Magnitud Värde Viktat

Värde Magnitud Värde Viktat

Värde Magnitud Värde Viktat

Värde Magnitud Värde Viktat Värde 720 8 1,1 1000 10 1,4 1200 10 1,4 700 8 1,1 800 9 1,3 256 000 7 1,0 512 000 9 1,3 8 000 000 10 1,4 512 000 9 1,3 512 000 9 1,3 SD 10 1,2 SD 10 1,2 SD 10 1 SD 10 1,2 4000 8 1,0 Ja 10 1,5 Ja 10 1,5 Delvis 6 0,9 Delvis 6 0,9 Delvis 6 0,9 Ja 10 1,5 Ja 10 1,5 Delvis 6 0,9 Delvis 6 0,9 Nej 2 0,3 Ja 9 1,6 Ja 8 1,4 Ja 5 0,9 Ja 7 1,3 Ja 9 1,6 Ja 8 1,0 Ja 8 1,0 Ja 7 0,8 Ja 10 1,2 Ja 7 0,8

Summa: 8,9 Summa: 9,3 Summa: 7,5 Summa: 7,8 Summa: 7,1

(19)

13

De olika tekniska summorna från resultatet i tabell 2 sattes sedan i förhållande till priset för de olika enkortsdatorerna för att få ut det slutgiltiga resultatet. Resultatet innebär hur mycket tekniska enheter man får per prisenhet.

Nr. Enkortsdator Pris Teknik/Prisenhet

1 Beaglebone 900 9,9 2 Beaglebone xm 1500 6,2 3 Pandaboard 1650 4,6 4 Raspberry Pi 320 24,5 5 APC Rock 650 11,0

Tabell 3: Teknik per prisenhet

För att få en ökad förståelse för vad betygen innebär i tabell 2 så beskrivs samtliga betyg i tabell 4 nedan.

Betygsskala

Betyg Innebörd

0 Absolut oanvändbar lösning 1 Mycket otillräcklig lösning 2 Dålig lösning

3 Tolererbar lösning 4 Tillräcklig lösning 5 Tillfredställande lösning 6 Bra lösning med fåtal nackdelar 7 Bra lösning

8 Mycket bra lösning

9 Lösning som överstiger kraven 10 Ideal lösning

Tabell 4: Förklaring av betyg

Efter ett avslutat utvärderingsarbete blev resultatet att enkortsdatorn “Raspberry Pi” lämpar sig bäst för ändamålet då den visats sig uppfylla de tekniska kraven men framförallt för att den är den mest kostnadseffektiva enkortsdatorn av de olika alternativen.

(20)

14

5.4 Sensitivitetsanalys

Det sista steget är att göra en sensitivitetsanalys efter att utvärderingen av enkortsdatorerna blivit färdigställd i föregående rubrik. En sensitivitetsanalys används till att ta reda på hur känslig en modell är för förändringar av dess struktur eller värdet av dess parametrar. En sensitivitetsanalys utförs genom ett antal tester genomförs där parametrar såsom t.ex. vikter och magnituder ändras eller tas bort för att se om resultatet av utvärderingen blir samma som tidigare eller om någon förändring sker. Genom sensitivitetsanalysen kan man då bedöma om modellen är känslig för förändringar av parametrar eller om resultatet blir likt resultatet i utvärderingstabellen från föregående steg. Genom att visa hur modellen beter sig beroende på hur parametrar, som kan upplevas som osäkra eller svårbedömda, ändras så kan man på detta sätt bygga upp ett förtroende och visa att modellen återspeglar verkligheten på ett korrekt sätt. [9]

Sensitivitetsanalysen i detta utredningsarbete kommer först ske genom att sätta alla vikter till 1, för att se hur mycket dessa påverkar det slutgiltiga resultatet. I tabell 5 och 6 nedan visas resultatet av utvärderingstabellen när alla vikter är satta till 1.

Kriterier Parametrar

Nr. Vikt Enhet 1 Processorkraft 1 Processorhastighet MHz 2 RAM Kapacitet 1 Storlek på RAM KB 3 Flash-minne Kapacitet 1 Storlek på Flash-minne MB 4 Öppen mjukvara 1 Om mjukvaran är öppen - 5 Öppen hårdvara 1 Om hårdvaran är öppen - 6 Dokumentation 1 Lättillgänglig dokumentation - 7 Community 1 Aktiv community -

Beaglebone Beaglebone xm Pandaboard Raspberry Pi APC Rock

Magnitud Värde Viktat

Värde Magnitud Värde Viktat

Värde Magnitud Värde Viktat

Värde Magnitud Värde Viktat

Värde Magnitud Värde Viktat Värde 720 8 8,0 1000 10 10,0 1200 10 10,0 700 8 8,0 800 9 9,0 256 000 7 7,0 512 000 9 9,0 8 000 000 10 10,0 512 000 9 9,0 512 000 9 9,0 SD 10 10 SD 10 10 SD 10 10 SD 10 10 4000 8 8,0 Ja 10 10 Ja 10 10 Delvis 6 6 Delvis 6 6 Delvis 6 6 Ja 10 10 Ja 10 10 Delvis 6 6 Delvis 6 6 Nej 2 2 Ja 9 9,0 Ja 8 8,0 Ja 5 5,0 Ja 7 7,0 Ja 9 9,0 Ja 8 8,0 Ja 8 8,0 Ja 7 7,0 Ja 10 10 Ja 7 7,0

Summa: 62,0 Summa: 65,0 Summa: 54,0 Summa: 56,0 Summa: 50,0

Tabell 5: Utvärderingstabell utan påverkan av vikt

Nr. Enkortsdator Pris Teknik/Prisenhet

1 Beaglebone 900 68,9 2 Beaglebone xm 1500 43,3 3 Pandaboard 1650 32,7 4 Raspberry Pi 320 175,0 5 APC Rock 650 76,9

(21)

15

Resultatet av detta steg visar att resultatet från utvärderingstabellen är pålitligt då det fortfarande blir samma rangordning inbördes mellan de olika enkortsdatorerna.

Nästa steg i denna sensitivitetsanalys är att ta bort varje intresseområde var för sig för att ta reda på hur stor inverkan varje intresseområde har på slutresultatet.

I tabell 7 nedan visas resultatet utan intresseområdet ”Prestanda”

Nr. Enkortsdator Pris Teknik/Prisenhet

1 Beaglebone 900 6,2 2 Beaglebone xm 1500 3,6 3 Pandaboard 1650 2,1 4 Raspberry Pi 320 13,3 5 APC Rock 650 5,6

Tabell 7: Teknik per prisenhet utan intresseområde ”Prestanda” I tabell 8 nedan visas resultatet utan intresseområdet ”Open Source”

Nr. Enkortsdator Pris Teknik/Prisenhet

1 Beaglebone 900 6,5 2 Beaglebone xm 1500 4,2 3 Pandaboard 1650 3,5 4 Raspberry Pi 320 18,9 5 APC Rock 650 9,1

Tabell 8: Teknik per prisenhet utan intresseområde ”Open Source” I tabell 9 nedan visas resultatet utan intresseområdet ”Support”

Nr. Enkortsdator Pris Teknik/Prisenhet

1 Beaglebone 900 7,0 2 Beaglebone xm 1500 4,6 3 Pandaboard 1650 3,5 4 Raspberry Pi 320 16,8 5 APC Rock 650 7,2

Tabell 9: Teknik per prisenhet utan intresseområde ”Support”

Resultatet av detta steg visar att de enskilda intresseområdena påverkar Teknik/Pris men inte den inbördes rangordningen, förutom när intresseområdet ”Prestanda” tas bort då enkortsdatorerna Beaglebone och APC Rock bytar plats. Detta visar att modellen fortfarande är pålitlig då resultatet liknar det som togs fram under rubrik 5.3.

(22)

16

Sensitivitetsanalysen visar att priset haft en stor inverkan på de olika resultaten. I och med detta så har ett sista steg lagts till i analysen där priset på de olika enkortsdatorerna, förutom Raspberry Pi, minskats med 50 %. 50 % har satts som en rimlig gräns då det inte är sannolikt att priset på enkortsdatorerna minskas med mer än så. I tabell 10 visas resultatet när priset halverats för alla enkortsdatorer utom Raspberry Pi.

Nr. Enkortsdator Pris Teknik/Prisenhet

1 Beaglebone 450 19,7 2 Beaglebone xm 750 12,3 3 Pandaboard 825 9,1 4 Raspberry Pi 320 24,5 5 APC Rock 325 22,0

Tabell 10: Teknik per prisenhet med prissänkning

Resultatet av detta steg blev att de andra enkortsdatorerna fortfarande inte kommer upp i samma Teknik/Prisenhet som Raspberry Pi men de kommer utan tvekan närmare. Slutsatsen av denna sensitivitetsanalys är att priset är den avgörande faktorn, vilket visas av de olika resultaten där Raspberry Pi är bäst i samtliga fall. Detta innebär att modellen som använts är pålitlig och återspeglar verkligheten på ett korrekt sätt. Denna slutsats är viktig för detta projekt då syftet är att skapa en kostnadseffektiv övervakningsenhet.

(23)

17

6. Övervakningsenhet

I detta avsnitt beskrivs först hårdvaran tillsammans med operativsystemet som används till övervakningsenheten. Webbserverns och databasens roll i systemet förklaras tillsammans med övriga mjukvarudelar som övervakningsenheten innehåller. Det förklaras även hur övervakningsenheten kommunicerar med målsystemet och till sist tas det upp vilka användargränssnitt som finns tillgängliga för användaren.

6.1 Raspberry Pi - Hårdvara

Raspberry Pi är plattformen som övervakningsenheten är baserad på och innehåller allt som krävs för att bilda en liten dator på ett kretskort i kreditkortsstorlek. Plattformen är baserad på en s.k. SoC (System on Chip) från företaget Broadcom och innehåller en ARM11 processor som arbetar i 700 MHz samt en relativt kraftfull GPU vid namn Videocore 4 som exempelvis klarar av att spela upp film i full HD. Plattformen har 512 MB RAM och använder ett SD-kort som flash-minne. Utöver detta har plattformen ett antal anslutningsmöjligheter varav de viktigaste för kommunikationssystemet är Ethernetporten, då internetåtkomst är nödvändigt, samt en uppsättning GPIO (General Purpose Input Output) pinnar som används till att kommunicera med målsystemet. Ritningar finns för hur Raspberry Pi är kopplad till dess periferienheter men dock så är kretsen från Broadcom stängd hårdvara vilket kan vara en nackdel om Raspberry Pi skulle sluta produceras. Den främsta fördelen med Raspberry Pi är att den är relativt billig, vilket är viktigt för arbetets ändamål, med tanke på hur kraftfull den är då den vid denna tidpunkt (våren 2013) går att köpa för ungefär 320 kr ink. moms. Raspberry Pi var först och främst tänkt som ett initiativ för att förse barn i världen med billiga datorer för att de skulle ha möjlighet att lära sig programmering men används idag till allt möjligt från mediaspelare till robotar. I figur 6 visas en bild på en Raspberry Pi. [10]

(24)

18

6.2 Raspberry Pi - Mjukvara/Operativsystem

Man kan i princip använda vilket operativsystem eller mjukvara som helst till Raspberry Pi bara det finns stöd för ARM-arkitektur. Det rekommenderade operativsystemet är en Linux distribution kallad “Raspbian”, som i grunden bygger på Linux-distributionen “Debian”, vilket installeras på ett SD-kort. Raspbian är ett komplett operativsystem med alla de funktioner som man kan förvänta sig och har dessutom inbyggt stöd för hantering av GPIO-pinnarna genom ett antal olika programmeringsspråk. Python är det programmeringsstöd som officiellt stöds av utvecklarna bakom Raspberry Pi. De påpekar dock att man inte är begränsad till detta språk utan i stort sett alla välkända programmeringsspråk såsom C, C++, Java m.fl. har stöd och kan kompilera till ARM-arkitektur. Eftersom operativsystemet bygger på Linux så finns det ett stort bibliotek av färdig mjukvara som man kan ta del av och installera på Raspberry Pi. Då Linux och stor del av dess mjukvara bygger på öppen källkod så har mycket av de program som finns till konventionell x86 arkitektur kompilerats om för ARM-arkitektur och gjort tillgänglig för bl.a. Raspbian. [10]

6.3 Systembeskrivning av övervakningsenhet

Övervakningsenheten innehåller ett antal olika mjukvaror för att systemet ska fungera. Mjukvaror för att möjliggöra kommunikation med både användare samt målsystem finns integrerade i en och samma enhet. Dessa olika mjukvaror tas upp i efterföljande rubriker nedan men beskrivs först i figur 7. Genom figur 7 får man en inblick i vad övervakningsenheten innehåller och hur de olika delarna kommunicerar och utbyter information både internt samt med användare och målsystem.

(25)

19

6.4 Webbserver

I övervakningsenheten finns en webbserver installerad som är värd för ett grafiskt webbgränssnitt. Webbserverns huvudsakliga uppgift är att presentera mätvärden från målsystemet i webbgränssnittet samt att ta emot information som representerar de inställningar som användaren har möjlighet att ställa in. Webbservern arbetar tillsammans med en databas där mätvärden och inställningar hämtas respektive sparas. I figur 7 kan man se hur webbservern interagerar med användare och databas.

I operativsystemet Linux finns inbyggt stöd för TCP/IP, därför behöver endast en webbserver installeras och konfigureras för att få den att fungera. Det finns ett antal olika webbservrar att välja mellan som är open source, har låg hårdvarubelastning samt stöd för Linux. [11]

I projektet valdes webbservern Lighttpd som har fördelarna att den har låg hårdvarubelastning, är effektiv, har hög prestanda och är open source. Det är en viktig egenskap att webbservern har låg hårdvarubelastning då systemresurserna är begränsade i övervakningsenheten. En annan fördel med webbservern är att den stödjer många olika moduler såsom FastCGI. FastCGI är en viktig komponent i systemet som möjliggör exekveringen av scriptspråket PHP. [11]

PHP (Hypertext Preprocessor) är ett populärt scriptspråk som används och exekveras på webbservrar för att kunna visa dynamiskt innehåll på webbsidor. PHP exekveras på webbservern till skillnad från t.ex. JavaScript som exekveras på klientsidan i webbläsaren. Detta är en viktig egenskap då användaren inte kan se PHP-koden som körs utan endast slutresultatet av denna. Om man vill, som i detta system, ansluta till en databas så är detta extra viktigt då de interna inloggningsuppgifterna till databasen inte får skickas till användaren. Några av fördelarna med PHP är att det är gratis, fungerar bra för både stora och små webbplatser, stöds av många operativsystem och databaser, syntaxen har många likheter med C-programmering samt god support och utvecklingsmöjligheter då vem som helst kan utveckla språket eftersom det bygger på open source. [12]

I webbgränssnittet används PHP till de olika funktioner som finns tillgängliga. När användaren använder sig av en funktion i webbgränssnittet så anropas ett PHP-skript på webbservern som i sin tur exekverar det. Om resultatet av scriptet består av några grafiska element så returneras detta till webbläsaren som uppdaterar innehållet. Innehållet kan uppdateras dynamiskt på detta sätt vilket underlättar då hela sidan inte behöver laddas om varje gång något element ska uppdateras. (se Bilaga 3; PHP-kod)

(26)

20

6.5 Databas

Information från både målsystem och användare lagras i en databas. Avlästa mätvärden från målsystemet lagras i databasen för att sedan hämtas av webbgränssnittet. Funktioner som användaren har möjlighet att ställa in lagras också i databasen för att sedan vidarebefordras till målsystemet. På detta vis fungerar databasen som en mellanhand där olika delar av systemet både kan hämta och lagra data. Utöver detta så används även databasen för att validera användare vid inloggningsfunktionen i webbgränssnittet.

I systemet används en MySQL databas från företaget Oracle [13]. Databasen valdes på grund av följande kriterier:

 MySQL stöds av många operativsystem däribland Linux  Databasen är gratis att använda

 MySQL är en populär databaslösning vilket gör att många olika programmeringsspråk har inbyggt stöd för den.

 MySQL inriktar sig till stor del på stabilitet, säkerhet och prestanda

I projektet används följande 3 tabeller som olika delar i systemet har åtkomst till, där mätvärde och inställningar lagras och hämtas:

I tabellen “measurements” lagras de avlästa värdena från målsystemet. Tabellen har tre kolumner; “id”, “value” och “fetched”. Kolumnen id ger varje lagrat värde ett unikt id, i value sparas det avlästa värdet och fetched anger om värdet har hämtats av webbgränssnittet eller inte, vilket är viktigt då samma värde inte ska visas mer än en gång. När en användare är inloggad i webbgränssnittet hämtas dessa värden automatiskt från databasen om värdet i fetched är 1 och så fort de är hämtade så sätts värdet till 0 för att skilja på hämtade och nya värden.

I tabellen “settings” lagras inställningar som användaren har möjlighet att ställa in genom webbgränssnittet. Tabellen har två kolumner; “id” och “state”. Kolumnen id ger varje inställning ett unikt id och state anger i vilket läge inställningen befinner sig i vilket antingen kan vara “On” eller “Off”.

I tabellen “pins” lagras inställningar om varje enskild GPIO-pinne. Tabellen har tre kolumner “id”, “currentIO” och “state”. Kolumnen id ger varje pinne ett unikt id, currentIO kan endast ha värdet “Input” eller “Output” och state kan ha värdena “High” eller “Low”. Användare har möjlighet att ändra pinnarnas inställningar i webbgränssnittet där det finns möjlighet att sätta dem till in och utgångar samt om de ska vara höga eller låga.

(27)

21

I figur 8 visas en översiktlig bild över dessa tre tabeller och dess kolumner

PK = Primary Key

Figur 8: Översiktsbild över databasen ”Control”

Uppsättningen tabeller i stycket nedanför används till att validera användaren vid inloggningen. Upplägget av dessa tabeller är delvis hämtat från http://goo.gl/SZVID.

Tabellen “members” innehåller inloggningsuppgifter för olika användare som har åtkomst till webbgränssnittet. Tabellen har 5 kolumner; “id”, “username”, “email”, “password” och “salt”. Kolumnen id ger varje användare ett unikt id, username innehåller namnet på användaren, email och password innehåller inloggningsuppgifterna som används till att logga in i webbgränssnittet, salt innehåller ett slumpmässigt genererat värde på 128 tecken som är unikt för varje användare. Det är viktigt att lösenord inte sparas i klartext då det är möjligt att databasen kan utsättas för intrång. Lösenorden sparas därför i krypterad form där lösenordet tillsammans med värdet i kolumnen salt krypteras med hjälp av krypteringsalgoritmen sha512 för att bilda ett unikt hash-värde, dvs. resultatet man får ut av algoritmen. Anledningen till att hash-värdet genereras tillsammans med värdet i kolumnen salt är pga. att flera användare kan ha likadana lösenord. Detta skulle resultera i likadana hash-värde om det unika värdet i salt inte skulle användas vilket inte är önskvärt ur säkerhetssynpunkt.

Tabellen “login_attempts” lagrar misslyckade login-försök. Om ett visst antal misslyckade försök görs på ett visst användarkonto så låses detta konto för att förhindra att obehöriga att ta sig in genom “Brute-force” metoden. Brute-force metoden innebär att en hackare testar alla möjliga teckenkombinationer för att få åtkomst till systemet. Syftet med denna tabell är att göra dessa attacker omöjliga. Tabellen har två kolumner “user_id” och “time”. I kolumnen user_id sparas användarens unika id och i time sparas tiden för det misslyckade login-försöket.

(28)

22

I figur 9 visas en översiktlig bild över dessa två tabeller och dess kolumner

PK = Primary Key

(29)

23

6.6 Kommunikation med målsystem

På övervakningsenheten körs ett program, programmerat i språket Python, som sköter kommunikationen med målsystemet. Programmet har hand om den seriella kommunikationen över RS-232 protokollet samt sköter inställningarna och avläsningen av GPIO-pinnarna. Programspråket Python valdes då det är ett programmeringsspråk som officiellt stöds av tillverkarna bakom plattformen Raspberry Pi samt för att där finns färdig kod att importera för seriekommunikationen samt GPIO-pinnarna.

Python är ett objektorienterat programmeringsspråk och används till allt från vetenskapliga ändamål till spel och 3D grafik. Python stöds av en mängd olika operativsystem och bygger på öppen källkod. Utvecklarna bakom Python lägger stor vikt vid att språket ska vara kraftfullt. Med kraftfullt menas att ett stort standardbibliotek har utvecklats där de menar att det finns funktioner för de flesta ändamål. Snabbhet är en annan egenskap utvecklarna lägger vikt vid då de menar att Python använder en mycket optimerad kompilator som även utnyttjar olika färdiga bibliotek med kod. [14]

Python-programmet är uppdelat i två trådar som kör i en oändlig loop där båda har möjlighet att kommunicera med databasen. Den första tråden sköter inkommande data från seriekommunikationen. Denna inkommande data består av mätvärden som målsystemet skickar. Vid jämna mellanrum kontrolleras det om det tagits emot något nytt mätvärde och om så är fallet så läggs värdet in i databasen.

Den andra tråden har två uppgifter varav den första är att sköta utgående seriell kommunikation till målsystemet och den andra uppgiften är att styra och avläsa GPIO-pinnarna. Följande sekvens av händelser sker med jämna intervall i tråden: Först hämtas information från databasen om hur inställningarna är inställda. Om dessa skiljer sig från hur inställningarna var tidigare så skickas det ett eller flera kodord, på 4 tecken, över den seriella kommunikationen till målsystemet. Målsystemet är programmerat på så vis att det känner igen vissa fördefinierade kodord och vet då vilken inställning som ska ändras. De hämtade värdena från databasen sparas för att kunna jämföras med nya värden nästa gång loopen körs. När detta är slutfört hämtas ny information från databasen angående GPIO-pinnarnas inställningar. Om inställningarna skiljer sig från tidigare hämtade värden så ändras dessa. Programmet avläser sedan de pinnar som är inställda som ingångar för att se efter om de är höga eller låga. Värdena sparas och sedan uppdateras databasen med dessa nya värden. Till sist lagras de hämtade värdena för pinnarnas inställningar i ett fält för att kunna jämföras med nya värden från databasen nästa gång loopen körs.

När Python-programmet startas och loopen körs för första gången så skickas alla kodord till målsystemet samt att alla inställningar för GPIO-pinnarna ställs in för att säkerhetsställa att övervakningsenheten och målsystemet följer alla inställningar som ställts in av användaren. (se Bilaga 3; Python-kod)

(30)

24

6.7 Webbgränssnitt

Webbgränssnittet är det primära användargränssnittet som användare har tillgång till för att övervaka målsystemet. Det är övervakningsenheten som är värd för webbgränssnittet vilket blir automatiskt tillgängligt när enheten ansluts till internet. Utseendet på webbgränssnittet är programmerat i HTML/CSS medan funktionaliteten är programmerad i JavaScript och PHP. För att ansluta till webbgränssnittet så skriver man övervakningsenhetens IP-adress följt av startsidan på formen http://xxx.xxx.xxx/login.php i en webbläsare. Det första man möts av är en inloggningssida där användaren måste ange inloggningsuppgifter som sedan kontrolleras mot databasen. Det är viktigt att påpeka att delar av koden i PHP och JavaScript till inloggningsfunktionen inte har skrivits själv utan har hämtats från http://goo.gl/SZVID. När användaren har verifierats så kommer man in på övervakningssidan där följande funktioner finns tillgängliga:

 Användaren kan se avlästa värden från målsystemet. Dessa värden uppdateras automatiskt när användaren befinner sig på webbsidan.

 Användaren kan ställa in olika inställningar som påverkar målsystemet.  Användaren kan dynamiskt bestämma över ett antal digitala GPIO-pinnar på

övervakningsenheten om de antingen ska vara in- eller utgångar.

 Användaren kan avläsa om GPIO-ingångarna får in hög eller låg insignal från målsystemet samt kunna sätta GPIO-utgångarna till att antingen höga eller låga. I bilaga 2 finns en instruktionsmanual där det förklaras hur webbgränssnittet används i detalj. I figur 10 visas en bild på webbgränssnittet.

(31)

25

När användaren kommer in på övervakningssidan så hämtas och presenteras aktuell information från databasen om hur de olika inställningarna är inställda. Från denna utgångspunkt kan användaren sedan utföra eventuella justeringar. När en justering av en inställning utförs så anropas en specifik metod i JavaScript, beroende på inställning, som anropar ett PHP-skript på servern. Detta PHP-skript skickar i sin tur en förfrågan till databasen där korrekt inställning uppdateras. När databasen har utfört ändringen så returneras den nya informationen om inställningen tillbaka till JavaScriptet som uppdaterar webbgränssnittet. Att den nya informationen returneras är viktigt då man som användare kan vara säker på att uppdateringen av inställningen har utförts och att webbgränssnittet alltid visar aktuell information. Information på sidan såsom mätvärde och om pinnarna läser av hög eller låg signal måste uppdateras kontinuerligt då ny information kan vara tillgänglig. Därför finns det ett JavaScript på sidan som hämtar och uppdaterar denna information med jämna mellanrum.

All uppdatering av information i webbgränssnittet, både automatisk och manuell, görs med hjälp av AJAX. AJAX (Asynchronous JavaScript and XML) är ett samlingsnamn för en uppsättning verktyg som har varit implementerat i Internet Explorer sedan version 4.0 och som alla de största webbläsarna stödjer idag. Den huvudsakliga delen i AJAX är XMLHttpRequest som är ett sätt att kunna kommunicera och utbyta information med en webbserver. XMLHttpRequest utvecklades av företaget Mozilla från ett ActiveX objekt skapat av Microsoft. Det fungerar på sätt att man med hjälp av JavaScript först öppnar en anslutning till servern, skickar en förfrågan och sedan väntar på svar i form av data som antingen kan skickas i XML format eller i vanlig text. AJAX kan sedan användas till att byta ut inaktuell information mot den nya i specifika delar av webbsidan utan att behöva ladda om den. Det är bl.a. denna funktion som har gjort AJAX så pass populär som den är idag. [15] (se Bilaga 3; JavaScript-kod)

(32)

26

6.8 Fjärrstyrning

Fjärrstyrningen av övervakningsenheten innebär att man har möjlighet att komma åt och styra operativsystemet som körs. Eftersom operativsystemet Linux körs på övervakningsenheten så finns där stöd för fjärrstyrning via internet. Fjärrstyrningen kan antingen ske genom ett textbaserat terminalprogram, exempelvis “Putty”, eller ett grafiskt användargränssnitt, som representerar operativsystemet, genom t.ex. Windows mjukvara “Fjärrskrivbord” (eng. Remote Desktop). Genom denna funktion har man full åtkomst till att göra vilka ändringar som helst i övervakningsenheten men är först och främst tänkt för att användas till ändamål såsom:

 Byta ut/utföra ändringar av Python-programmet som sköter kommunikationen mellan övervakningsenheten och målsystemet.

 Göra ändringar i webbgränssnittet för att lägga till eller ta bort funktioner.  Spara ner innehåll från databasen i en textfil.

 Använda sig av JTAG för att t.ex. felsöka (eng. debugging) enheten eller ladda in ett nytt program.

I bilaga 2 förklaras det i detalj hur man använder sig av fjärrstyrningen.

Detta projekt är avgränsat till att endast undersöka vad det finns för möjligheter att använda sig av JTAG i Linux med ARM-arkitektur. Någon egen mjukvara kommer inte att utvecklas. JTAG-funktionerna kan endast användas genom anslutning via fjärrstyrningen.

(33)

27

7. Kommunikation mellan övervakningsenhet och

målsystem

I denna del förklaras de tre kommunikationssätten RS-232, JTAG och avläsning/påverkan av digitala signaler, som övervakningsenheten använder sig av för att kommunicera med målsystemet. De olika fördelarna med respektive kommunikationssätt kommer förklaras, vilka funktioner de möjliggör samt hur de är kopplade med målsystemet.

7.1 RS-232

RS-232 är ett av de kommunikationssätt som övervakningsenheten använder sig av. Protokollet används till att skicka seriell information mellan övervakningsenheten och målsystemet. Målsystemet skickar information i form av mätvärden medan övervakningsenheten skickar kodord som representerar inställningar, som användaren ställt in i webbgränssnittet, som målsystemet ska verkställa.

RS-232 är ett protokoll som använts sedan 1960-talet och vars användningsområden blev fler än vad som var tänkt från början. RS-232 började först utvecklas 1962 men protokollet tog inte fart på allvar förrän 1980-talet när PC-datorer introducerades. Protokollet blev standard inom industrin för att koppla ihop PC-datorer med olika enheter såsom skrivare eller tangentbord. RS-232 är ett protokoll som visade sig vara mycket pålitligt, om det installerats korrekt, och i och med det blev RS-232 ett av de mest använda protokollen för seriell kommunikation. [16]

Numera är serieporten på datorer utbytt av USB men det finns trots det fortfarande områden där RS-232 används. USB protokollet upplevs ibland som ett något omständligt protokoll då data måste skickas i paket. Data måste packas ner och skickas iväg för att sedan packas upp på mottagarsidan. Denna procedur kan vara onödigt omständig om man bara vill utföra enkel textbaserad kommunikation. I dessa fall lämpar sig RS-232 bättre då protokollet är simpelt att använda sig av och implementera både hårdvaru- och mjukvarumässigt. Med dessa punkter i åtanke och i och med att kommunikationen mellan övervakningsenheten och målsystemet i projektet är textbaserad så har RS-232 valts att implementeras.

(34)

28

7.1.1 UART

För att kunna kommunicera via RS-232 så måste man koppla ihop de två kommunicerande systemen via en UART (Universal Asynchronous Receiver/Transmitter). UARTens uppgift är att omvandla parallell till seriell kommunikation och tvärt om. En UART är uppbyggd av tre olika delar vilka är mottagare (eng. reciever), sändare (eng. transmitter) och en klockgenerator. Data som skickas genom RS-232 skickas seriellt vilket innebär att varje bit skickas efter varandra. Mottagarens uppgift är att sampla insignalen kallad rxd för att sedan skifta in bitarna i ett skiftregister. Mottagaren räknar de inkomna bitarna, väntar på en stopbit, och konverterar sedan denna seriella data till parallell data genom att sätta ihop bitarna till bytes. [17]

Sändaren tar hela bytes som ligger i ett skiftregister och konverterar dessa till seriell data genom att skifta varje bit en efter en och skickar iväg dem efter varandra på en signal kallad txd. Sändaren räknar antal skickade bitar för att veta när en stopbit ska skickas. Signaler som skickas från sändaren är 16 gånger långsammare än pulserna hos mottagaren för att denna ska hinna sampla signalen. När sändaren inte skickar någon data så sätts txd signalen på utgången till en etta. När ny data ska börja skickas så markeras detta av sändaren genom en skicka en startbit i form av en nolla. På slutet av varje överföringssekvens kan en paritetsbit skickas. Användningen av denna paritetsbit är frivillig och behöver inte användas. [17]

I figur 11 visas hur en överföringssekvens kan se ut via RS-232.

(35)

29

För att sändaren och mottagaren ska fungera korrekt så måste det finnas en klockgenerator, som genererar en signal kallad clk16, som gör att de båda enheterna håller takten vid sampling respektive sändning av data. Det är viktigt att pulserna från klockgeneratorn sker vid rätt tillfällen då data annars riskerar att blir mottagen på ett felaktigt vis. Det blir optimalt om klockpulserna sker i mitten av varje bit som ska skickas då det finns en tidsmarginal om signalen förskjuts något. Intervallen på klockpulserna beror på överföringshastigheten och måste ändras om överföringshastigheten ändras. Det finns en konstant kallad divider som bestämmer överföringshastigheten. Denna konstant avgör när ett register kallat counter ska nollställas. När counter har ett värde som motsvarar en annan konstant kallad skew, som innehåller hälften av värdet i divider, så genereras en klockpuls på signalen clk16. För att beräkna divider så tar man hastigheten på systemklockan och dividerar denna med 16 multiplicerat med överföringshastigheten. [17]

I projektet används en överföringshastighet på 9600 b/s och då Raspberry Pi har en systemklocka på 25 MHz så beräknar man konstanten skew och divider på följande vis:

Divider:

(36)

30

7.1.2 Koppling RS-232

UARTens in- och utgångar, rx och tx, på Raspberry Pi finns i egenskap av två GPIO-pinnar. GPIO-pinnarna på Raspberry Pi går direkt till processorn utan någon spänningsreglering däremellan. Eftersom processorn drivs av 3,3 V innebär detta att det är mycket viktigt att inspänningarna från GPIO-pinnarna inte överstiger 3,3 V då detta annars kan skada processorn. Målsystemet, i form av en Arduino, som användes i projektet har likaså 2 GPIO-pinnar för seriell kommunikation. Detta system drivs dock av en spänning på 5 V vilket innebär att det är tvunget att använda en nivåomvandlare (BOB-08745) som både sänker och höjer signalspänningarna till korrekta nivåer för de båda systemen. I figur 12 visas ett kretsschema på hur seriekommunikationen via RS-232 är kopplad tillsammans med en nivåomvandlare.

(37)

31

7.2 Avläsning/Påverkan av digitala signaler

Övervakningsenheten kan kommunicera med målsystemet genom avläsning eller påverkan av digitala signaler. Med detta menas att det går att koppla GPIO-pinnar från övervakningsenheten till målsystemet. Direktavläsning/påverkning av digitala signaler har valt att användas då de flesta inbyggda system på marknaden idag har någon form av General Purpose Inputs/Outputs [18]. Syftet med GPIO-pinnar är att på ett enkelt sätt kunna få åtkomst för att kunna styra eller avläsa det inbyggda systemet. Det finns ofta flera av dessa GPIO-pinnar som kan fungera antingen som in- eller utgångar för att kunna få ut information alternativt ge input tillbaka till systemet [18].

Raspberry Pi har en uppsättning GPIO-pinnar varav 8 av dessa används till denna kommunikation. Pinnarna kan programmeras till att antingen bete sig som digitala in eller utgångar. I projektet konfigurerades två av dessa pinnar till ingångar, två till utgångar och de fyra sista är hybrida som användaren har möjlighet att bestämma riktning på. Användaren kan bestämma riktningen på pinnarna genom webbgränssnittet där det även finns möjlighet att avläsa ingångarna samt ställa utgångarna till höga eller låga. Om användaren bestämmer sig för att skifta en ingång till en utgång så måste även målsystemet skifta sin utgång till en ingång för att det ska bli någon effekt. Detta sker genom att det skickas ett kodord genom seriekommunikationen till målsystemet som då ändrar portens rikting. I och med detta så är systemet utformat på ett sådant vis att båda kommunikationssätten måste vara inkopplade samtidigt för att alla funktioner ska fungera korrekt.

(38)

32

7.2.1 Koppling Avläsning/Påverkan av digitala signaler

Precis som i fallet med seriekommunikationen så måste signalerna nivåskiftas då övervakningsenheten arbetar med 3,3 V medan målsystemet arbetar med 5 V. Därför kopplades det in ett kretskort (TXB0108) med 8 kanaler som omvandlar signalerna till 5 V på ena sidan och 3,3 V på andra. Kretsen byter dessutom riktning automatiskt vilken underlättar på de hybrida pinnarna. I figur 13 visas ett kretsschema på hur pinnarna är kopplade.

(39)

33

7.3 JTAG

Vid utveckling av mjukvara så är det i princip omöjligt att hålla den helt fri från buggar. Om man utvecklar mjukvara som är tänkt att exekvera på en PC så finns det ett antal olika verktyg man kan använda sig av däribland mjukvara för felsökning (eng. debugging). Med hjälp av felsökning kan man lättare lösa svårhittade buggar i koden då man kan följa exekveringen rad för rad. Felsökning av mjukvara är svårare att utföra om den inte exekveras lokalt utan istället på ett inbyggt system. För att lösa detta har JTAG implementerats som ett av kommunikationssätten i övervakningsenheten. Genom JTAG möjliggörs framförallt två funktioner: att felsöka målsystemet samt att ladda in ett nytt program.

JTAG-standarden (IEEE 1149.1) utvecklades under 1980-talet av Joint Test Action Group (därav JTAG) och blev färdigt år 1990. Ett antal förbättringar av den ursprungliga versionen gjordes och den senaste versionen, som fortfarande används idag, blev klar 1994 [19]. JTAG används främst i stor skala inom industrin när det gäller testning av komplexa konstruktioner inom elektronik för att hitta brister under tillverkningsprocessen. Under åren har det dock insetts vikten av användningsområden utanför produktionen. JTAG kan numera användas inom design, felsökning och till underhåll av elektronik. På så sätt är det lättare att motivera implementationen av JTAG då den kan användas i flera stadier under produktens livscykel [20]. Med hjälp av JTAG fås det tillgång till systemets interna delar såsom processor, RAM och dess olika periferienheter. Detta är en viktig egenskap som gör det möjligt för utvecklare att få full obegränsad kontroll över systemet och dess information på hårdvaru-nivå. [21]

Konceptet bakom användning av JTAG är relativt enkel. I komponenten som ska testas, t.ex. processorn, så måste speciella kretsar för test placeras vid varje pinne. Test-kretsen har förmågan att antingen kontrollera händelseförloppet i komponenten eller endast övervaka den. Till varje test-krets finns även ytterligare logik som berättar när test-kretsen ska utföra tester och när den ska låta komponenten bete sig som vanligt när JTAG inte används. Användningen av dessa test-kretsar innebär att de kan få specifika saker att hända i system eller delsystem samt se vad resultatet blev utan att behöva veta något om komponenterna eller hur de fungerar. Detta gör JTAG till en testmetod som är helt oberoende av den bakomliggande komplexiteten hos komponenterna som testas. [22] Till JTAG finns ett standardiserat språk definierat kallat BSDL (Boundary-Scan Description Language). Med hjälp av detta språk kan tillverkare av diverse komponenter beskriva vilka testmöjligheter som finns för deras respektive komponenter. Eftersom ansvaret att beskriva testmöjligheterna fallit på tillverkarna av komponenterna så har standardiseringen av språket varit viktigt då det har hjälpt till att förebygga problem orsakade av inkorrekt användning av språket. Dessa beskrivningar finns till en mängd olika komponenter och är en av anledningarna till att JTAG används så pass flitigt. [22]

Figure

Figur 2: SCADA-system
Figur 3: Bild på prototyp
Figur 4: Utvärderingskriterier
Figur 5: Viktning av utvärderingskriterier
+7

References

Related documents

Arbetet syftar till att undersöka huruvida olika protokoll fungerar bättre med olika inställningar av MTU:n, samt att finna hur förhållandet mellan hastighet och MTU skiftar

På frågan om vilket inflytande faktorer som skolform, specialpedagogisk kompetens, yrkeserfarenhet och ämneskategori har på lärares inställningar till inkludering generellt samt

personuppgiftsincident att läsa i akter som man inte behöver ta del av för att kunna utföra sitt uppdrag och det måste anmälas till berörd chef och kontaktperson för GDPR

De slutsatser vi kan dra av denna studie är att det är relativt många i den aktuella skolan som är positiva till den vegetariska maten i skolan. Detta tycks dock innebära att de

Undervisningen av Kemi tycks vara lustfylld och intresseväckande vilket resulterar i att eleverna vill lära sig mer inom det ämnet Eleverna utrycker positiva

När Vivo PC-programvara används för fjärrövervakning visas en panel för inställningar.. Den påminner om panelen Inställningar vid markör, bortsett från att alla värden

I föreliggande litteraturstudie visar resultatet att de som var mot eutanasi hade som argument att en god palliativ vård, få patienter i koma eller palliativ sedering var

Det står ingenstans i styrdokumenten att skolan ska vara rolig och att det är det undervisningen ska fokusera på. Men det är oftast mer intressant för elever att lära om