• No results found

Repetitiv spegling av I/O över TCP/IP Med fokus på feltolerans, signalintegritet och tillförlitlighet

N/A
N/A
Protected

Academic year: 2021

Share "Repetitiv spegling av I/O över TCP/IP Med fokus på feltolerans, signalintegritet och tillförlitlighet"

Copied!
96
0
0

Loading.... (view fulltext now)

Full text

(1)

AKADEMIN FÖR TEKNIK OCH MILJÖ

Avdelningen för elektronik, matematik och naturvetenskap

Repetitiv spegling av I/O över TCP/IP

Med fokus på feltolerans, signalintegritet och tillförlitlighet

Stefan Wernhager

2020

Examensarbete, Grundnivå (yrkesexamen), 15 hp Elektroteknik

Automationsingenjör, Co-op

(2)
(3)

Förord

Problemlösning. Det behövs bara ett ord för att beskriva vad som motiverar mig. Så har det alltid varit, ända sen jag som barn blev lurad av min familj att försöka lösa omöjliga problem, till detta examensarbete inom automationsingenjörsprogrammet. Problemen har sett olika ut men tillfredställelsen att försöka lösa dem har varit lika stor, endast överträffad av känslan av att faktiskt lyckas lösa dem.

Detta examensarbete avslutar den utbildning till automationsingenjör på Högskolan i Gävle som för mig varit som en enda lång problemlösningskavalkad. Och vilken av-slutning. Examensarbetet är en perfekt kombination av problemlösning för mig och nytta för min uppdragsgivare.

Därför vill jag börja med att tacka min fru, Erika Wernhager, som stöttat mig ge-nom sena kvällar och helger med mina studier och med detta arbete. Sedan vill jag rikta ett stort tack till samtliga medarbetare på avdelningen för larm och telekom-munikation på Forsmarks Kraftgrupp AB som kontinuerligt bidragit och delat med sig av kunskap, idéer och god gemenskap. Ett särskilt tack vill jag rikta till Daniel Al-mqvist och Anders Lilliehöök som bidragit med en redaktionell granskning av färdig rapport. Avslutningsvis vill jag även tacka samtliga lärare som under åren 2016 – 2020 undervisat mig i kurser relaterade till automationsingenjörsprogrammet vid Högskolan i Gävle.

(4)
(5)

Sammanfattning

Avläsning av tillståndet hos en mikrobrytare kräver att den ansluts till ett I/O hos exempelvis PLC, mikrokontroller eller annan lämplig utrustning. Forsmarks Kraft-grupp AB (FKA) och avdelningen för larm och telekommunikation (NEIT) ser ett behov av att på kärnkraftsanläggningen i Forsmark installera mikrobrytare på platser där det saknas anslutningsutrustning och förmedla dess tillstånd till ett övervakande system. I denna rapport presenteras ett förslag till teknisk lösning som uppfyller FKA:s behov genom att spegla ett I/O över TCP/IP-protokoll.

Lösningen har tagits fram utifrån specifika önskemål från FKA. Funktionen ska bland annat övervaka två områden med mikrobrytare, larma för fel, ha egenövervakning, ta hänsyn till signalintegritet samt baseras på generell mikrokontrollutrustning. Vi-dare har en utvärdering av tillförlitligheten gjorts samt att funktionen har testats. Resultatet presenteras som en prototyputrustning där två mikrokontrollplattformar från Arduino har använts som bas och designen har skett utifrån ett feltolerant per-spektiv. Trippelmodulär redundans, watchdog-timer, dubbelbalanserad slinga och majoritetsvotering är några av de tekniker som tillämpats. Genom en kombination av programmering och föreslagna metoder har FKA:s önskemål uppnåtts.

(6)
(7)

Abstract

Reading the state of a microswitch requires it to be connected to an I/O of, for ex-ample, PLC, microcontroller, or other suitable equipment. Forsmarks Kraftgrupp AB (FKA) and the department of alarms and telecommunications (NEIT) have real-ized a need to install microswitches at Forsmarks nuclear power plant at places where there are no connection equipment and redistribute its state to a monitoring system. This report presents a proposal for a technical solution that meets FKA:s needs by mirroring an I/O over TCP/IP-protocol.

The solution has been developed based on specific requirements from FKA. The function should, among other things, monitor two areas with microswitches, alarm for faults, have self-monitoring, consider signal integrity, and be based on general microcontroller equipment. Furthermore, an analysis of the reliability has been made and the function has been tested.

(8)
(9)

Innehållsförteckning

Förord ... i

Sammanfattning ... iii

Abstract ... v

1 Introduktion ... 1

1.1 Bakgrund och syfte ... 1

1.2 Kravbild ... 2

1.3 Mål ... 2

1.4 Avgränsningar ... 2

1.5 Sekretess och utelämnande av information ... 2

1.6 Disposition ... 3

2 Teori ... 4

2.1 Mikrokontroller ... 4

2.1.1 Digitala och analoga I/O ... 4

2.1.2 Arduino ... 5

2.2 Mikrobrytare ... 8

2.3 Feltolerant design och robust konstruktion ... 8

2.3.1 Redundans ... 8

2.3.2 Trippelmodulär redundans ... 9

2.3.3 Watchdog-timer ... 10

2.4 Balanserad slinga ... 10

2.5 Kryptografi ... 11

2.5.1 Monoalfabetiska- och polyalfabetiska substitutioner ... 12

2.5.2 Symmetrisk- och asymmetrisk kryptering ... 13

2.6 Tillförlitlighet ... 15

2.6.1 Tillförlitlighetsmått ... 15

2.6.2 Modellering av ett systems reliabilitet ... 17

3 Process och resultat ... 18

3.1 Inledande genomgång ... 18

3.1.1 Funktionslista ... 18

3.1.2 Gränsdragningslista ... 19

3.2 Hårdvara och design ... 19

3.2.1 Hårdvara enhet 1 och enhet 2 ... 19

3.2.2 Felhanteringstekniker ... 19

3.2.3 Egenövervakning ... 20

3.2.4 Kommunikation med överordnat system ... 22

3.3 Program och funktioner ... 22

3.3.1 Program ... 22

3.3.2 Funktioner ... 24

3.4 Data mellan enheterna och signalintegritet ... 29

3.4.1 Data mellan enheterna ... 29

3.4.2 Krypteringsalgoritm ... 30

(10)

3.4.4 Nycklar och hanteringen av nycklar ... 33 3.5 Utvärdering av tillförlitlighet ... 33 3.5.1 Arduino UNO ... 34 3.5.2 Ethernet Shield ... 35 3.5.3 Systemets tillförlitlighet ... 35 3.6 Funktionstester ... 37

3.6.1 Tester i normalt tillstånd ... 37

3.6.2 Tester i onormalt tillstånd ... 39

4 Diskussion ... 46

4.1 Diskussion hårdvara och design ... 46

4.2 Diskussion program och funktioner ... 46

(11)

Förkortningar

FKA: Forsmarks Kraftgrupp AB

NEIT: Avdelningen för larm och telekommunikation FN: Förenta nationerna

I/O: Input/Output

PLC: Programmable Logic Controller TCP: Transmission Control Protocol IP: Internet Protocol

CPU: Central Processor Unit ADC: Analog to digital converter DAC: Digital to analog converter V: Volt

8P8C: Eight Position Eight Contact KTH: Kungliga Tekniska Högskolan TMR: Trippelmodulär redundans WDT: Watchdog-timer

RSA: Rivest-Shamir-Adleman

AES: Advanced Encryption Standards MTTF: Mean time to failure

MTTR: Mean time to repair MTBF: Mean time between failure FC: Fault Coverage

(12)

1 Introduktion

Forsmarks Kraftgrupp AB (FKA) och avdelningen för larm och telekommunikation (NEIT) har på kärnkraftsanläggningen i Forsmark identifierat ett behov att installera och avläsa status på mikrobrytare där det saknas anslutnings- och övervakningsmöj-ligheter för sådan utrustning. I detta examensarbete kommer därför ett lösningsför-slag till FKA:s behov redovisas. Lösningsförlösningsför-slaget tar hänsyn till krav och önskemål som FKA har ställt på produktens utförande samt utformas i enlighet med delar ur FN:s globala mål för hållbar utveckling, Agenda 2030 [1]. Produktens användnings-område kommer med hänvisning till sekretess inte beskrivas, se kapitel 1.5. 1.1 Bakgrund och syfte

För att läsa av och övervaka status på en mikrobrytare behöver den anslutas till en I/O anslutning, hos exempelvis en PLC, mikrokontroller, eller annan motsvarande utrustning som för ändamålet är tillämpbar. Avläst status kan därefter hanteras i samma enhet eller förmedlas vidare till en annan enhet, ett system eller för repre-sentation på exempelvis monitor. För FKA är behovet att mikrobrytarnas tillstånd ska förmedlas till ett överordnat system.

På kärnkraftsanläggningen i Forsmark finns ett autonomt kommunikationsnätverk baserat på TCP/IP-protokoll som möjliggör att data kan skickas till och från olika delar av anläggningen. Genom att installera utrustning som kan hantera både anslut-ning av mikrobrytare och TCP/IP kommunikation ges möjligheten för ett överord-nat system att via I/O spegling ta del av mikrobrytarnas tillstånd. I/O spegling inne-bär att en insignal hos en enhet projiceras på en utgång hos en annan enhet. FKA ser därför att möjligheten till repetitiv spegling av I/O över TCP/IP-protokoll utreds och bevisas. Figur 1 visar en principskiss över funktionen.

(13)

1.2 Kravbild

De krav som ställs av FKA på den tekniska lösningen är att den ska realiseras genom en prototyputrustning där mikrokontroller används för hantering av mikrobrytarna. Funktionen av repetitiv I/O skall ha egenövervakning och kunna larma vid förlust av given signal från källa till mottagare. Funktionen skall vidare ta hänsyn till signalin-tegritet (kryptering), driftsäkerhet, reliabilitet och designas utifrån IT-säkerhets-, ekonomiskt-, marknadsanalytiskt-, miljö- och underhålls-perspektiv.

1.3 Mål

Målet med examenarbetet är att skapa en prototyputrustning som bevisar möjlighet-erna att repetera I/O över TCP/IP-protokoll och som även uppfyller de krav som FKA ställer på funktionen. Målbilden inkluderar val av hårdvara, design, program-mering och utvärdering av tillförlitlighet.

Examensarbetet ämnar även bidra målen i Agenda 2030. Agenda 2030 innefattar 17 målområden för en hållbar utveckling [1]. Genom att skapa en prototyp vars livs-längd, miljöpåverkan och skydd mot manipulation tas i beaktande samt låta lösnings-förslaget vara tillgängligt för allmänheten förväntas detta arbete kunna bidra till mål 9 – Hållbar industri, innovationer och infrastruktur samt mål 12 – Hållbar produkt-ion och konsumtprodukt-ion.

1.4 Avgränsningar

Då projektet innefattar flera olika moment görs avgränsningar.

TCP/IP kommunikationens uppbyggnad och hur den tekniskt fungerar utelämnas. TCP/IP kommunikationen är en viktig del av prototyputrustningens utformning men då tekniken redan används så behandlas det inte närmare.

Flera metoder för signalintegritet undersöks och presenteras. Däremot implemente-ras enbart enkla metoder då mer genomträngande metoder förväntas behöva mer tid. De strängare metoderna lämnas istället som förslag till utveckling av prototyput-rustningen.

1.5 Sekretess och utelämnande av information

(14)

1.6 Disposition

Rapporten disponeras enligt följande. Kapitel 1 – Introduktion

Kapitlet ämnar ge en kortfattad introduktion till examensarbetet, dess bakgrund, syfte, kravbild, mål, avgränsningar och information an-gående sekretess.

Kapitel 2 – Teori

I kapitlet ges en genomgång av litteratur, teorier och metoden kopplade till kravspecifikationen för examensarbetet i avseende att skapa underlag för ett välgrundat lösningsförslag.

Kapitel 3 – Process och Resultat

En beskrivning av tillvägagångssätt och implementering av de kunskaper erhållna i kapitel 2.

Programstruktur och tester kopplade till prototyputrustningen redovisas här.

Kapitel 4 – Diskussion

Prototyputrustningens resultat sammanfattas med korta diskussio- ner kopplade till relevanta delar ur litteraturgenomgången från kapitel 2.

Kapitel 5 – Slutsatser

(15)

2 Teori

För att skapa goda möjligheter att ta fram en prototyputrustning som uppfyller FKA:s kravspecifikation presenteras i detta avsnitt de bakgrundsteorier och metoder som har använts och några fördjupningar som kan användas till eventuella fortsatta arbeten. Ytterligare fördjupningsförslag medföljer i bilaga A. Kapitlet följer den ar-betsgång som sedermera användes för att genomföra arbetet.

2.1 Mikrokontroller

En mikrokontroller kan beskrivas som en programmerbar mikrodator innehållandes bland annat CPU, minne, och ofta även timer, räknare, ADC, DAC och I/O anslut-ningar. Delarna är integrerade i en och samma kiselbricka och försedd med stöd-funktioner, bland annat klockgenerator och WDT. Uppfinningen kom i början på 1970-talet och är ofta inbyggd i andra system, även om den kan fungera fristående. Den är utvecklad att i huvudsak utföra specifika uppgifter och realtidsstyrningar [3][4][5].

Mikrokontroller kan delas in i olika kategorier. En indelning sker genom antalet bi-tar, exempelvis 8-, 16- eller 32-bitars mikrokontroller. Andra typer av indelningar kan vara genom vilken minnes- eller instruktions-typ mikrokontrollerutrustningen hanterar. Fördelar med mikrokontroller är dess-, kostnad, storlek, enkelhet och höga tillförlitlighet. De flesta I/O anslutningarna är konfigurerbara vilket medför en hög grad av flexibilitet. En nackdel är att de inte är ämnad att genomföra multipla beräkningar simultant [3][4][5]. Det finns flera olika tillverkare av mikrokontroller, bland annat ”Texas Instruments” och ”Microchip”.

2.1.1 Digitala och analoga I/O

(16)

2.1.2 Arduino

Hernando Barrigán, Massimo Banzi, David Cuartilles, Gianluca Martino och Tom Igoe påbörjade 2005 ett projekt med mål att skapa en användarvänlig, billig och pro-grammerbar plattform där det var enkelt att ansluta exempelvis sensorer och moto-rer [6]. Projektet resulterade i ett kretskort med fysiska anslutningsmöjligheter för strömförsörjning, I/O anslutningar och USB-port. Kretskortet baserades på en mikrokontroller från Atmel. För att programmera enheten utvecklades även en kostnadsfri mjukvara. Hela projektet namngavs ”Arduino”.

Numera (maj 2020) finns det flera olika varianter av kretskort inom Arduino-famil-jen [7]. Även flertalet olika tilläggsutrustningar/”Shields” finns för komplettering, till exempel kommunikationskort eller reläkort. Ardunikorten uppfyller även RoHS direktivet samt är FCC- och CE märkta [8].

Arduino är inte den enda varianten av mikrokontrollplattform. Exempel på liknande produkter erbjuds av bland annat ”Parallax Basic Stamp” och ”Netmedia” [9]. Förde-len med Arduino är att den är en så kallat ”open source” plattform. Det innebär att hårdvara och mjukvara finns tillgänglig för alla att studera, kopiera och förbättra. Vilket har lett till ett brett nätverk av Arduino-användare över hela världen. Exem-pelvis finns Arduinoplattformarnas scheman och layouter tillgängliga för nedladd-ning till kretsschemaprogrammet ”Eagle”.

2.1.2.1 Arduino UNO och Arduino MEGA 2560

Arduino UNO (UNO), Fig. 2, och Arduino MEGA2560 (MEGA), Fig. 3, är två va-rianter av mikrokontrollerplattformar ur Arduino-familjen [7]. UNO bygger på mikrokontrollern ATmega328P och MEGA bygger på mikrokontrollern

ATmega2560. Bägge mikrokontrollerna är 8-bitars mikrokontroller och plattfor-marna har anslutningar för USB och extern strömförsörjning.

(17)

UNO har stöd för 14 digitala I/O och 6 analoga ingångar och MEGA har stöd för 54 digitala I/O och 16 analoga ingångar. I/O anslutningarnas operativa spänning är 5V och kan konfigureras som ingång eller utgång. De analoga ingångarna har en 10 bi-tars ADC som visar värden mellan 0 – 1023 till inspänningarna 0 – 5V. I bilaga B medföljer kopplingsexempel på hur en potentiometer och en LED ansluts till en UNO. I ekvation (1) visas relationen mellan ADC värdet och spänning hos UNO och MEGA.

𝑉 = 𝐴𝐷𝐶 ∗ 5

1023 (1)

där 𝑉 =Resulterande spänningsnivå i Volt 𝐴𝐷𝐶 = Värdet från ADC

Figur 3 – Mikrokontrollplattformen Arduino MEGA 2560.

2.1.2.2 Luxorpart ethernet-shield

(18)

Figur 4 – Luxorpart ethernet-shield.

2.1.2.3 Utvecklingsmiljö

För att programmera mikrokontrollerna i Arduino-plattformarna kan Arduinos inte-grerade utvecklingsmiljö (IDE) användas. Programmet finns tillgängligt för Win-dows, macOS och Linux och är en gratisprogramvara. Programmeringen sker i pro-gramspråket Arduino Programming Language (APL) som baseras på språken C och C++. Uppladdning till enheterna sker genom USB. IDE:t har förutom fönster för programmering även tillgång till ett kommandofönster som gör det möjligt att skriva ut texter, värden, tillstånd eller annat när ett program körs [11]. IDE:t visas i Fig. 5.

(19)

2.1.2.4 Bibliotek och exempelfunktioner

Flera olika bibliotek finns tillgängliga med funktioner för specifika användningsområ-den. Ett exempel är biblioteket ”Ethernet” som innehåller funktioner för uppkopp-ling mot ethernet-nätverk. Biblioteken kan installeras manuellt eller genom IDE:t. Exempel på bibliotek:

– avr/wdt – Används till watchdog-timer.

– AESlib – Används till att ge enheten möjlighet till kryptering med Advanced Encryption Standards (AES).

Till många bibliotek finns färdiga programexempel och förklaringar till hur dess funktioner kan användas, exempelvis ”Telnet-server” för biblioteket ”Ethernet” [12]. 2.2 Mikrobrytare

Mikrobrytare är en komponent vars funktion består av att sluta eller bryta en elekt-risk krets. Komponenten kan användas för att ge indikation om till exempel en dörr är öppen eller stängd [13].

2.3 Feltolerant design och robust konstruktion

För att ett system ska kunna kallas feltolerant behöver det kunna hantera minst en variant av fel utan att det påverkar systemets avsedda funktion [14]. Med fel i ett sy-stem avses att dess hårdvara eller mjukvara inte fungerar så som det är designat att göra [15]. Genom en feltolerant design kan systemets tillgänglighet ökas, vilket in-nebär färre fel och avbrott. Det kan i sin tur leda till en ekonomisk vinning om till-gängligheten för systemen ökar och underhållskostnaderna blir lägre [14].

Utveckling för att öka ett systems tillförlitlig har pågått länge. Redan mellan 60–80-talet ökade kraven på tillförlitliga system rejält. Framför allt inom rymdindustrin där mänskligt liv, uppdragens framgång och utrustning äventyrades om något gick sön-der eller utförde felaktiga beräkningar. Även inom andra områden ökade kraven, till exempel inom industriella styrsystem. Genom att tillföra systemen olika varianter av redundans förbättrades sannolikheten att systemet fungerade på önskvärt sätt under drift [15][16]. Elena Duprova, professor vid KTH, går i sin bok Fault-tolerant design igenom redundanta tekniker och sätt att designa ett system på ett felsäkert sätt [17]. 2.3.1 Redundans

(20)

2.3.1.1 Hårdvaruredundans

Hårdvaruredundans behandlar hårdvarurelaterade åtgärder och innefattar till exem-pel att användandet av multipla kopior av till exemexem-pel sensorer eller styrenheter. Olika metoder kan sedan tillämpas om hur kopiorna ska användas, till exempel om de ska användas parallellt eller en åt gången tills ett fel inträffar på den som är i drift [14].

2.3.1.2 Mjukvaruredundans

Mjukvaruredundans avser lösningar där kritiska delar av program eller data sparas på flera olika ställen. Det innefattar även program som utför tester eller diagnostik av utrustningen eller som kan genomföra omstarter av systemet [16].

2.3.1.3 Informationsredundans

Informationsredundans omfattar teknik som kan upptäcka och eventuellt åtgärda fel i dataflödet mellan två enheter. Tekniken syftar till fel som inte uppfattas som fel-aktiga av mottagande enhet [16].

2.3.1.4 Tidsredundans

Tidsredundans innebär metoder som kan upptäcka fel genom att beräkningar i pro-grammet upprepas och sedan jämförs med varandra. Divergerande beräkningsresul-tat påvisar felaktigheter som följd [16].

2.3.2 Trippelmodulär redundans

En vanlig metod att implementera hårdvaruredundans är genom TMR [17]. Princi-pen för metoden går ut på att använda tre parallella kopior av komponenterna eller modul som utför samma sak. Därefter används en väljare som jämför resultatet från komponenterna och producerar ett slutresultat. Principen kan ses i Fig. 6. Väljaren kan implementeras både hårdvarumässigt genom logiska kretsar eller via mjukvara. För en väljare som arbetar utefter majoritetsprincipen ges ett resultat som överens-stämmer med minst två av de tre komponenterna. En sanningstabell för en väljare som arbetar efter majoritetsprincipen kan ses i tabell 1.

(21)

Tabell 1 – Sanningstabell för en majoritetsväljare med tre ingångar. In 1 In 2 In 3 Ut 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 1 1 1 1 1 1 2.3.3 Watchdog-timer

En metod att implementera felhantering i mjukvaran är via en WDT. Genom att ini-tiera en WDT som startas om vid varje programcykel är det möjligt att undvika att programmet fastnar. Vid en låsning i mjukvaran kommer WDT:n löpa ut och starta on enheten [18]

2.4 Balanserad slinga

(22)

Figur 7 – Principskiss på hur krets med balanserad slinga kopplad till en normalt stängd mikrobrytare [19][20]. Överst: Enkelbalanserad slinga. Mitten: Dubbelbalanserad slinga. Nederst:

Trippelbalanserad slinga.

2.5 Kryptografi

Metoder att göra det svårt eller omöjligt för obehöriga att läsa kommunikation som skickas mellan en eller flera parter kallas kryptografi [21]. Det har varit något som mänskligheten försökt göra under lång tid. Spår av kryptering har funnits från ca år 1900 före Kristus [22]. Grundidén beskrivs enligt Fig. 8. Den som ska sända ett meddelande använder en algoritm och en nyckel för att skapa en krypterad version av texten som sedan mottagaren kan dekryptera med samma algoritm och nyckel [23].

Olika krypteringsalgoritmer har genom åren utvecklats. Till de traditionella tekni-kerna hör bland många andra Caesar cipher år 53 f.Kr. och Vigenère cipher år 1585. Till de moderna teknikerna hör bland annat RSA år 1977 och AES år 2001 [22].

(23)

2.5.1 Monoalfabetiska- och polyalfabetiska substitutioner

Genom historien har två typer av substitutionschiffer använts vid kryptering. Det ena är monoalfabetisk kryptering som innebär att texter krypteras efter ett och samma krypteringsalfabet per meddelande. Alfabetet kan variera från meddelande till meddelande vilket ger ett antal olika krypteringsmöjligheter som beror på alfabe-tets längd. Metoden är däremot känslig för frekvensanalys som används av utomstå-ende för att dekryptera meddelandet. Frekvensanalys innebär att texten analyseras i avseende att finna hur ofta ett tecken förekommer och utifrån det gissa sig till vad som står skrivet. Den andra varianten är polyalfabetisk kryptering och innebär att varje nytt tecken i en text krypteras efter ett annat alfabet än det föregående teck-net. Metoden ger en väldigt stor variation av möjliga krypteringar. Polyalfabetisk kryptering ger även fördelen att likadana tecken krypteras olika vilket medför att det blir svårare att dekryptera meddelandet genom att tillämpa till exempel frekvensa-nalys. Exempel på monoalfabetisk kryptering är Caesar cipher och exempel på po-lyalfabetisk kryptering är Vigenère cipher [23].

2.5.1.1 Caesar cipher

En känd tidig monoalfabetisk krypteringsalgoritm är den som idag kallas för Caesar cipher [23]. Julius Caesar använde år 58 f. Kr. kryptering för militärt bruk med syfte att skicka meddelanden till sina generaler utan att motståndaren fick reda på innehål-let. Algoritmen baseras på ett substitutionsalfabet där varje bokstav i texten byttes mot motsvarande position i substitutionsalfabetet. Substitutionsalfabetet byggdes upp genom att skifta placeringen av bokstäverna i det vanliga alfabetet ett bestämt antal steg. Algoritmen beskrivs matematiskt i ekvation (2) och ett exempel på kryp-tering med Caesar cipher kan ses i tabell 2.

𝑦 = 𝑥 + 𝑛 𝑚𝑜𝑑 𝐴 (2)

där 𝑦 = krypterat tecken

𝑥 = okrypterat tecken 𝑛 = nyckel

𝐴 = är antalet bokstäver i det alfabet som används.

Tabell 2 – Ordet ”automationsingenjör” krypterad med Caesar cipher enligt ekvation (1). Nyckel = 3 och svenskt alfabet med enbart gemener har använts, totalt 29 bokstäver.

Klartext a u t o m a t i o n s i n g e n j ö r

Nyckel 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3

(24)

2.5.1.2 Vigenère cipher

Vigenère cipher är en av de första polyalfabetiska krypteringsalgoritmerna och ut-vecklades år 1585 av Blaise de Vigenère [23]. Algoritmen är en vidareutveckling av Leon Battista Albertis metod att använda två eller fler krypteringsalfabet där första tecknet krypteras enligt det första alfabetet och det andra tecknet efter det andra al-fabetet och sedan rullandes beroende på hur många alfabet som användes. Vigenère cipher använder lika många versioner av krypteringsalfabet som det finns tecken i al-fabetet. Tillsammans bildar dem en Vigenère kvadrat, se exempel i bilaga C. För kryptering används sedan ett nyckelord på valfri längd där första tecknet i nyckelor-det talar om vilken version av alfabet som ska användas att kryptera första tecknet i texten. Andra tecknet i nyckelordet talar om vilken version av alfabet som ska an-vändas för tecken nummer två, etcetera. Om nyckelordet är kortare än texten bör-jar nyckeln om efter sista tecknet i nyckelordet. Exempel på kryptering med Vigenére cipher visas i tabell 3.

Tabell 3 - Ordet ”automationsingenjör” krypterad med Vigenére cipher. Nyckelordet är ”hig” och svenskt alfabet med enbart gemener har använts, 29 bokstäver.

Klartext a u t o m a t i o n s i n g e n j ö r

Nyckel h i g h i g h i g h i g h i g h i g h

Krypterat h ö z v u g å q u u å o u o k u r f y

2.5.2 Symmetrisk- och asymmetrisk kryptering

(25)

2.5.2.1 Rivest-Shamir-Adleman

RSA är en krypteringsalgoritm som bygger på asymmetrisk kryptering. Algoritmen byggs upp av två stora primtal som multipliceras med varandra och vars resultat an-vänds till att beräkna två nycklar, en offentlig och en privat. Dessa anan-vänds för kryp-tering och dekrypkryp-tering. RSA bygger på att det är enkelt att multiplicera två stora primtal och svårt att faktorisera dem. Vilket medför att även om krypteringsproces-sen och den offentliga nyckeln är känd så kommer det ta lång tid att försöka dekryp-tera meddelandet [25].

Nycklarna till RSA algoritmen genereras enligt följande process [25]. – Välj två olika slumpmässiga primtal, 𝒑 och 𝒒.

– Generera produkten 𝒏genom att multiplicera 𝒑 med 𝒒.

– Välj talet 𝒌 ∈ 𝐍 så att följande två kriterier uppfylls. - 𝑘 och (𝑝 − 1)(𝑞 − 1) är relativt prima.

- 1 < 𝑘 < (𝑝 − 1)(𝑞 − 1)

– Beräkna talet d ∈ 𝐍 enligt ekvation (3).

𝑑 ≡ 𝑘−1 𝑚𝑜𝑑((𝑝 − 1)(𝑞 − 1)) (3)

– Offentlig nyckel använder 𝒌 och 𝒏 och hemlig nyckel använder 𝒅 och 𝒏.

Kryptering sker enligt ekvation (4) och dekryptering sker enligt ekvation (5).

𝑦 = 𝑥𝑘 𝑚𝑜𝑑 𝑛 (4)

𝑥 = 𝑦𝑑 𝑚𝑜𝑑 𝑛 (5)

där 𝑦 = krypterat tecken 𝑥 = okrypterat tecken

2.5.2.2 Advanced Encryption Standards

(26)

2.6 Tillförlitlighet

Utvärdering av tillförlitligheten hos ett elektriskt system sker genom två vedertagna metoder, modellering av systemet när det designas eller utvärdering av systemet vid ett senare tillfälle [17]. Det förstnämnda innebär att de ingående komponenternas tillförlitlighet används till att beräkna hela systemets tillförlitlighet, medan den andra metoden utgår från tester och mätningar av det färdiga systemet. Den sistnämnda metoden kommer inte behandlas i detta arbete.

IEEE har utvecklat en standard, IEEE1413 [28], som kan följas för att skapa en full-ständig dokumentation av en förutsägelse av tillförlitlighet. Det kan sedan vara an-vändbart vid analys om multipla uppskattningar görs genom att ta lärdom av styrkor och svagheter hos en förutsägelse. Standarden lägger ingen vikt i vilken metod som används till själva uppskattningen av tillförlitligheten.

2.6.1 Tillförlitlighetsmått

Det finns flertalet olika sätt att beräkna ett systems tillförlitlighet på. Bland annat ge-nom failure rate, MTTF, MTTR, MTBF, reliabilitet och FC [17].

2.6.1.1 Failure rate

Failure rate, 𝜆, är antalet fel en komponent eller ett system förväntas ha per 106timmar. En komponents failure rate kan erhållas från dess tillverkare eller esti-meras genom olika handböcker såsom MIL-HDBK-217F, Telcordia SR-332 eller GJB-Z299C-2006 [29]. MIL-HDBK-217F [30] är en manual för militärt bruk men som år 2016 användes av över 80 % av ingenjörer som beräknar tillförlitlighet [31][32].

Genom att addera samtliga komponenters failure rate enligt ekvation (6) erhålls hela systemets failure rate. Ekvationen förutsätter att fel i en komponent medför att sy-stemet fungerar felaktigt.

𝜆 = ∑ 𝜆𝑖 𝑛

𝑖=1

(6)

där 𝜆𝑖= är den enskilda komponentens failure rate

𝑛 = är totala antalet komponenter

2.6.1.2 Mean time - to failure/- to repair/ - between failures

(27)

MTTF, MTTR och MTBF beräknas enligt ekvation (7)-(10) [17]. 𝑀𝑇𝑇𝐹 =1 𝜆 (7) 𝑀𝑇𝑇𝑅 =1 𝜇 (8) där 𝜆 = failure rate

𝜇 = är ett medelvärde som beskriver antalet reparationer per tidsenhet. 𝑀𝑇𝐵𝐹 = 𝑀𝑇𝑇𝐹 + 𝑀𝑇𝑇𝑅 (9)

Resulterande MTBF för ett system som innehar flera seriella delar beräknas enligt ekvation (10). 𝑀𝑇𝐵𝐹𝑡𝑜𝑡 = 1 ∑ 𝑀𝑇𝐵𝐹1 𝑖 𝑛 𝑖=1 (10)

där 𝑛 = antal enskilda delar i systemet 𝑀𝑇𝐵𝐹𝑡𝑜𝑡= hela systemets MTBF

𝑀𝑇𝐵𝐹𝑖 = den enskilda delens MTBF

2.6.1.3 Reliabilitet

Sannolikheten för att ett system är i drift efter någon given tidpunkt beskrivs som dess reliabilitet, 𝑅(𝑡) och anges med värde mellan 0–1. Sannolikheten är som högst, 1, i början av ett systems livstid och minskar sedan vartefter systemet åldras, 0. Om ett systems hårdvara förutsätts följa en så kallad badkarskurva samt att dess failure rate är konstant under dess användbara livstid beräknas reliabiliteten enligt ekvation (11) [17].

𝑅(𝑡) = 𝑒−𝜆∗𝑡 (11)

där 𝑅(𝑡)= systemets reliabilitet

𝜆 = systemets failure rate

𝑡 = den tid som systemet förväntas vara i drift. 2.6.1.4 Fault coverage

(28)

FC beräknas enligt ekvation (12) [17].

𝐹𝐶 = 𝑃(𝐴|𝐵) (12)

där 𝐴 = antal fel som upptäcks 𝐵 = antal fel som finns

2.6.2 Modellering av ett systems reliabilitet

Modellering av reliabiliteten hos ett system med flera delar kan göras med metoden RBD [36]. Systemets komponenter ritas upp i ett blockdiagram, antingen seriellt el-ler parallellt beroende på hur dess funktioner påverkar systemet. Evaluering sker ge-nom att beräkna reliabiliteten i de seriella och parallella delarna enligt ekvation (13).

𝑅(𝑡)𝑡𝑜𝑡 = { ∏ 𝑅𝑖(𝑡) 𝑛 𝑖=1 , 𝑓ö𝑟 𝑠𝑒𝑟𝑖𝑒𝑙𝑙𝑎 𝑑𝑒𝑙𝑎𝑟 1 − ∏ (1 − 𝑅𝑖(𝑡)) 𝑛 𝑖=1 , 𝑓ö𝑟 𝑝𝑎𝑟𝑎𝑙𝑙𝑒𝑙𝑙𝑎 𝑑𝑒𝑙𝑎𝑟 (13)

där 𝑅(𝑡)𝑡𝑜𝑡=hela systemets reliabilitet vid tidpunkten 𝑡

𝑅𝑖(𝑡) = ingående delarnas reliabilitet vid tidpunkten 𝑡

(29)

3 Process och resultat

Prototyputrustningen har tagits fram genom att tillämpa DRM typ 6 [37]. Arbetet inleddes med en genomgång tillsammans med uppdragsgivaren där ställda krav granskades och kompletterades med en funktions- och gränsdragningslista. Resulta-tet av genomgången gav förutsättningar till studier av relevanta teorier, se kapitel 2. Utifrån genomgången och teorierna designades prototyputrustningen som program-merades efter en välbetänkt programstruktur. Resultatet utvärderades genom att uppskatta prototyputrustningens tillförlitlighet samt genomföra tester relaterade till funktionalitet. Arbetet har utförts på Forsmarks kärnkraftsanläggning i ett kontor på avdelningen för larm och telekommunikation och dokumentering har skett löpande genom arbetets gång.

3.1 Inledande genomgång

Initialt granskades kravspecifikationen och en dialog fördes med systemansvariga på avdelningen för larm och telekommunikation på FKA. Målet med genomgången be-stod i att klargöra förväntad funktionalitet samt hur prototyputrustningen kan kom-municera med överordnat system. Resultatet blev en funktions- och gränsdragnings-lista som tillsammans med FKA:s övriga krav grundar de teorier som studerats i ka-pitel 2 och ligger till grund för den programstruktur som prototyputrustningen för-setts med. Figur 9 visar en principskiss på prototyputrustningens funktion baserad på den inledande genomgången.

3.1.1 Funktionslista

Den enhet som ska hantera avläsning av mikrobrytare (enhet 1) ska ha följande funktioner:

– Kunna hantera tillstånd på mikrobrytare från två områden. Ett område avser ett övervakningsobjekt.

– Hantera eventuella feltillstånd eller manipulationsförsök av mikrobrytarkretsarna. – Hantera eventuella feltillstånd på I/O anslutningarna.

– Regelbundet kommunicera mikrobrytarnas tillstånd över TCP/IP till enhet 2. – Den data som skickas ska skyddas mot avlyssning.

Den enhet som ska hantera kommunikationen mot det överordnade systemet (enhet 2) ska ha följande funktioner:

– Regelbundet ta emot data om mikrobrytarnas tillstånd över TCP/IP från en-het 1 och via två digitala utgångar förmedla tillståndet vidare till överordnat system.

– Förmedla fel till överordnat system genom en larmsignal på en digital ut-gång.

– Övervakning av enhet 1.

(30)

3.1.2 Gränsdragningslista

Prototyputrustningens funktion begränsas enligt följande: – Endast två områden ska kunna avläsas.

– Endast två enheter utreds, även om möjligheterna kan finnas för att ansluta fler enheter till den enhet som kommunicerar med det överordnade syste-met.

– Olika metoder för signalintegritet undersöks och införs i mån av tid, proces-sorkraft och befintliga lösningar.

– Tester av funktionen genomförs genom att testa antalet lyckade kommuni-kationer under en viss tid.

– Två hårdvaruredundanta metoder och en mjukvaruredundant metod införs, vid mån av tid förbereds ytterligare redundanta tekniker.

Figur 9 – Principskiss för prototyputrustningen framtagen efter den inledande undersökningen.

3.2 Hårdvara och design

Hårdvara och feltolerant design beskriver vilken hårdvara som används och hur pro-typutrustningen designats med redundans och egenövervakning. Kommunikationen med överordnat system omnämns avslutningsvis.

3.2.1 Hårdvara enhet 1 och enhet 2

Till enhet 1 och enhet 2 användes mikrokontrollerplattformen Arduino UNO, Fig. 2, som kompletterades med Luxorpart ethernet-shield, Fig. 4. Strömförsörjning ges genom 12VDC till Arduino UNO:s anslutning för extern spänningsmatning.

3.2.2 Felhanteringstekniker

(31)

3.2.2.1 Hårdvara

Två varianter av TMR implementerades. Den ena varianten involverar användandet av tre mikrobytare för övervakning av samma område och den andra varianten invol-verar att en mikrobrytare ansluts till tre olika I/O. I mjukvaran läggs en voteringsal-goritm enligt majoritetsprincipen. De två varianterna implementerades på var sitt område och beskrivs enligt princip i Fig. 10.

Figur 10 – Principen för hårdvaruredundans hos prototyputrustningen. Område 1 har tre mikrobrytare och område 2’s enda mikrobrytare ansluts till tre olika I/O.

3.2.2.2 Mjukvara

I mjukvaran tillförs en WDT med uppgift att starta om enheterna om de skulle fastna i någon programsekvens.

3.2.3 Egenövervakning

Två metoder av egenövervakning tillförs systemet. Dubbelbalanserad slinga till varje mikrobrytare och övervakning av enhet 1 via enhet 2.

3.2.3.1 Dubbelbalanserad slinga

Egenövervakning av mikrobrytarkretsarna sker genom att tillämpa metoden dubbel-balanserad slinga som beskrivs i kapitel 2.4. Kretsen ansluts till en av Arduino UNO:s analoga ingångar samt anpassas enligt inkopplingen av potentiometer, se bi-laga B. Anpassningen medför en extra resistor mellan den analoga ingången och GND, se resulterande krets i Fig. 11.

(32)

Principen om spänningsdelning tillämpas för beräkningar av resistorvärden. Detta görs genom att välja den spänning som systemet ska läsa av vid öppen/stängd mikro-brytare.

Till prototyputrustningen väljs följande spänningsnivåer: 1: Stängd mikrobrytare, önskad avläst spänning = 4 V. 2: Öppen mikrobrytare, önskad avläst spänning = 1,5 V.

Ytterligare en spänningsnivå krävs då det är tre resistorvärden som ska beräknas. Övriga tillstånd som följer naturligt av kretsens uppbyggnad:

3: Kortslutning av krets, avläst spänning = 5 V. 4: Avbrott, avläst spänning = 0 V.

5: Övriga spänningsnivåer:

- 0 V < avläst spänning < 1,5 V - 1,5 V < avläst spänning < 4 V - 4 V < avläst spänning < 5 V

För att uppnå önskad spänningsnivå enligt nivå 1 – 3 måste resistorerna relatera till varandra enligt följande samband:

𝑅1 =1 4𝑅3 𝑅2 =25

12𝑅3 𝑅3 = 𝑅3

Då 𝑅3 är en oberoende resistor kan dess värde väljas fritt, därefter kan 𝑅1 och 𝑅2

beräknas. Till prototyputrustningen väljs 𝑅3 = 4700Ω. Resistorernas värden blir då: 𝑅1 = 1200Ω

𝑅2 = 10000Ω 𝑅3 = 4700Ω

(33)

3.2.3.2 Övervakning av enhet 1

Övervakningen av enhet 1 sker via enhet 2 som efter bestämda tidsintervall begär data av enhet. Vid uteblivet svar ges ett larm till överordnat system. För detaljerad beskrivning om övervakning av enhet 1 och data mellan enheterna, se kapitel 2.3.2.3 och 2.4

3.2.4 Kommunikation med överordnat system

Det överordnade systemet hanterar data via digitala signaler vilket resulterade i att relämoduler kopplas till enhet 2:s digitala utgångar vilka det överordnade systemet sedan kopplades mot. Vid felfritt system och icke manipulerade mikrobrytare med-delas detta via hög signal på utgångarna. Se princip i Fig. 12.

Figur 12 – Princip för kommunikation mellan prototyputrustningen och överordnat system. Digitala I/O på enhet 2 ansluts till reläer som överordnat system ansluts mot. I/O numreringen avser inte den exakta plats som inkopplingen i hårdvaran sker på utan beskriver endast principen.

3.3 Program och funktioner

Program och funktioner beskriver hur prototyputrustningen mjukvara fungerar och är uppbyggd tillsammans med tillhörande funktioner för hantering av redundans, egenövervakning och kommunikation. Koden för program och funktioner medföljer i bilaga E och samtliga flödesscheman som beskriver programmen medföljer i större storlek i bilaga F.

3.3.1 Program

Två program har skapats, ett till vardera enheten. Programmen baseras på enheter-nas specifika funktion och har utgått från två olika scenarier, normalt- och onormalt tillstånd. Normalt tillstånd innebär att samtliga följande kriterier är uppfyllda.

– Mikrobrytare opåverkad (sluten).

– Inget manipulationsförsök av mikrobrytarkretsen upptäckt. – Inget upptäckt fel på mikrobrytare eller I/O.

(34)

Programmeringen har skett i Arduino IDE genom att tillämpa befintliga bibliotek, funktioner och välkända programmeringstekniker, bland annat loopar och villkors-satser.

Figur 13 – Flödesschema över principen för hur programmet är uppbyggd med normalt- och onormalt tillstånd. Efter avläsning av I/O för område 1 och område 2 sker en kontroll av villkoren för normalt tillstånd. Uppfylls alla villkor agerar programmet efter normalt tillstånd annars agerar programmet efter onormalt tillstånd.

Enheternas program är uppbyggda enligt följande ordning: – Konfiguration

- Körs en gång vid programstart. Nödvändiga parametrar läses in, bland an-nat de bibliotek, variabler, nätverksdata och ”enhets ID” som programmet använder. Inställningar som kan ändras ligger här.

– Initiering

- Körs en gång vid programstart, startar upp kommunikation, I/O och för enhet 2 även en serverfunktion.

– Huvudprogram

- Körs upprepande så länge enheten är igång. Här ligger programmets funkt-ion.

– Stödfunktioner

(35)

Huvudfunktionen för enhet 1 utgår från en avläsning av de ingångar som mikrobry-tarna är anslutna till (A0-A5). Behandla dess värde och vid behov eller begäran, skicka data till enhet 2 som krypteras innan sändning. Enhet 2 huvudfunktion utgår från att begära/erhålla data från enhet 1. Hantera data genom dekryptering och ut-värdering samt kommunicera enhets 1:s avlästa tillstånd (I/O:3–4) och eventuella larm/fel (I/O: 2) mot överordnat system. Begäran av data av enhet 1 sker på två sätt, dels där enhet 1’s majoritetsbeslutade ADC-värden begärs och dels där enhet 2 skickar ett femsiffrigt slumptal och begär att samma slumptal återsänds. Flödes-schema för de båda huvudprogrammet kan ses i Fig. 14.

Figur 14 – Flödesschema för huvudprogrammet i enhet 1 och enhet 2.

3.3.2 Funktioner

(36)

3.3.2.1 Majoritetsvotering

Hanteringen av de redundanta mikrobrytarna och I/O anslutningarna sker genom votering i enhet 1. Algoritmen för voteringen är baserad på majoritetsprincipen som beskrivs i kapitel 2.3.2. Tekniken är anpassad för Arduino UNO:s ADC. Funktionen tillåter att insignalerna skiljer sig mellan varandra med ±5. Voteringsalgoritmen be-skrivs enligt sanningsschemat i tabell 4. De resultat som genereras av algoritmen är dels ett majoritetsbeslut om insignalen dels ett larm om inte alla ingångsvärden överensstämmer. Det specialfall som uppstår då alla tre insignaler skiljer sig från varandra hanteras genom att funktionen larmar och returnerar ”9999” som ”vald in-gång”. Huvudprogrammet hanterar då inte insignalen. Flödesschema över funkt-ionen kan ses i Fig. 15.

Tabell 4 – Sanningstabell för majoritetsvoteringsalgoritmen. 1 betyder att ingångarnas ADC-värde ±5 överensstämmer. 0 betyder att ingångens ADC-värde inte överensstämmer med de två andra ingångarnas ADC-värden. In 1 In 2 In 3 Ut 1 1 1 IN: 1-3 1 1 0 IN: 1-2 1 0 1 IN: 1/3 0 1 1 IN: 2-3 0 0 0 IN: -

(37)

3.3.2.2 Dubbelbalanserad slinga

Hanteringen av dubbelbalanserad slinga sker genom en funktion som använder resul-tatet från majoritetsvoteringen. ADC-värdets motsvarande spänningsnivå på in-gången beräknas och jämförs mot spänningsnivåerna 1–5 som ställts upp i kapitel 3.2.3.1. ADC-värdet omvandlas till spänning enligt ekvation (1):

𝑆𝑝ä𝑛𝑛𝑖𝑛𝑔 = 𝐴𝐷𝐶 ∗ ( 5 1023) 𝑉

En toleransnivå på ±0,1V till nivåerna 1 och 2 tillförs. Funktionen genererar en siffra mellan 1 – 3 enligt:

– 4 ± 0,1V = 1 – 1,5 ± 0,1V = 2

– Övriga spänningsnivåer = 3

Flödesschema över funktionen kan ses i Fig. 16.

Figur 16 – Flödesschema över funktionen som kollar statusen på den dubbelbalanserade slingan.

3.3.2.3 Enhetsövervakning

(38)

Figur 17 – Flödesschema som beskriver hur övervakningen av enhet 1 fungerar där fem misslyckade transaktionsförsök tillåts.

3.3.2.4 Krypterings- och dekrypteringsfunktioner

Informationen som skickas mellan enheterna skyddas mot avlyssning genom en krypteringsprocess. I kapitel 3.4 redogörs för processen i detalj.

3.3.2.5 Ethernet-kommunikation

(39)

Figur 18 – Flödesschema som beskriver principen för enheternas kommunikation under då normaltillstånd råder.

3.3.2.6 Larm

Larm och fel kommuniceras till överordnat system genom ett summalarm i enhet 2. Låg nivå indikerar larm. Summalarmet består av följande:

– Kommunikationsbortfall mellan enheterna. – Onormalt tillstånd på mikrobrytare. – Onormalt tillstånd på egenövervakningen.

– Om avvikelse förekommer i majoritetsvoteringen.

– Om ”enhets ID” inte stämmer med förprogrammerat ”enhets ID”. 3.3.2.7 Watchdog-timer

En WDT används för omstart av enheterna efter 8 sekunder om den inte nollställs. Timern startas och nollställs vid inledningen respektive slutet av programcykeln. WDT:n använder följande kommandon:

(40)

3.4 Data mellan enheterna och signalintegritet

Data mellan enheterna och signalintegritet redogör för hur den information som skickas mellan enheterna byggs upp och skyddas mot avlyssning. Principen för data mellan enheterna följer flödesschemat i Fig. 19. Samtliga flödesscheman som beskri-ver data mellan enheterna och signalintegritet medföljer i större storlek i bilaga F.

Figur 19 – Flödesschema som beskriver principen för hur enheterna kommunicerar med varandra under normalt- och onormalt tillstånd.

3.4.1 Data mellan enheterna

Informationen som skickas från enhet 1 till enhet 2 byggs upp som en textsträng i ett specifikt mönster utifrån det tillstånd som råder:

Normalt tillstånd:

data1%data2%data3%data4%data5%data6%data7! Onormalt tillstånd:

(41)

Förklaring:

data1: Tilldelat enhets ID.

data2: ADC värdet från område 1 enligt majoritetsvoteringen eller återsändning av femsiffrigt slumptal.

data3: Tillstånd på område 1 enligt egenövervakningen. data4: Larm från majoritetsvotering område 1.

data5: ADC värdet från område 2 enligt majoritetsvoteringen eller återsändning av femsiffrigt slumptal.

data6: Tillstånd på område 2 enligt egenövervakningen. data7: Larm från majoritetsvotering område 2.

nyckel1: Nyckelversion 1 för kryptering steg 1. nyckel2: Nyckelversion 2 för kryptering steg 2 %: Skiljetecken för data.

!: Tecken för slut på data.

Informationen som skickas från enhet 1 till enhet 2 byggs upp som en textsträng en-ligt:

data1data2nyckel1nyckel2! Förklaring:

data1: A eller C, Talar om för enhet 1 om den ska skicka mikrobrytarstatus eller återsända data2.

data2: Slumpat femsiffrigt tal mellan 10000 - 30000. nyckel1: Nyckelversion 1 för kryptering steg 1.

nyckel2: Nyckelversion 2 för kryptering steg 2. !: Tecken för slut på data.

Informationen som skickas från enhet 1 till enhet 2 krypteras medan informationen från enhet 2 till enhet 1 skickas i klartext. Exempel på textsträngar:

Från enhet 1 till enhet 2: UNOXXX%750%1%0%350%2%1! Från enhet 2 till enhet 1: C123451122!

3.4.2 Krypteringsalgoritm

(42)

Krypteringsalgoritmens resulterande matematik som baseras på ekvation (2) besk-rivs enligt ekvationerna (14)-(15).

Steg 1:

𝑦𝑖 = (𝑥𝑖− 34) + 𝑛1 𝑚𝑜𝑑 93 (14)

Steg 2:

𝑦𝑖 = (𝑦𝑖+ (𝑖 − 1) ∗ 𝑛2 𝑚𝑜𝑑 93) + 34 (15)

där 𝑥𝑖 är det tecken i en textsträng som ska krypteras och 𝑖 är dess ordningsföljd, 𝑛1

är nyckel 1 och 𝑛2 är nyckel 2. 𝑦𝑖 är resultaten av respektive steg. Kryptering av en

textrad följer flödesschemat i Fig. 20. Exempel på hur krypteringen kan se ut visas i Fig. 21.

(43)

Figur 21 – Exempel där texten ”UNOXXX%750%1%0%350%%2%1” har krypterats i två steg fyra olika gånger med olika nycklar, nyckel 1 och nyckel 2. Dekryptering har skett från den krypterade texten i steg 2.

3.4.3 Dekryptering

Dekryptering sker med samma nycklar fast i omvänd ordning gentemot krypte-ringen och genom att subtrahera nyckeln istället för att addera den. Den ordning som texten krypteras, från första till sista tecken, är lika krypteringen. Matematiken för dekryptering baseras på ekvation (2) och beskrivs enligt ekvationerna (16)-(17). Steg 1:

𝑦𝑖 = (𝑦𝑖− 34) − (𝑖 − 1) ∗ 𝑛2 𝑚𝑜𝑑 93 (16)

Steg 2:

(44)

3.4.4 Nycklar och hanteringen av nycklar

Nyckel 1 och nyckel 2 består av respektive 48 primtal mellan 3–227. krypteringsal-goritmen använder slumpade kombinationer av nycklarna för varje kryptering. An-talet möjliga kombinationer beräknas som produkten mellan anAn-talet nycklar:

𝑁𝑦𝑐𝑘𝑒𝑙𝑘𝑜𝑚𝑏𝑖𝑛𝑎𝑡𝑖𝑜𝑛𝑒𝑟 = 48 ∗ 48 = 2304

Nycklarna lagras internt i enheterna genom två vektorer där plats 0 – 9 består av nollor och resterande efterföljande platser består av nycklarna. Det medför att nyck-larnas position i vektorerna blir tvåsiffrig, se exempel i tabell 5. Val av nyckelkombi-nationer sker genom att generera två tvåsiffriga slumptal mellan 10–58 som motsva-rar varje nyckels placering i respektive vektor. För att enheterna ska veta vilket nyckelpar som för tillfället ska användas skickas placeringen i klartext mellan enhet-erna. I prototyputrustningens normaltillstånd maskeras nyckelversionerna genom att föregås av ett slumptal mellan 10000 – 30000.

Tabell 5 – Nyckellagringen hos enheterna. Position 0–9 består av 0. Endast platserna 10–48 används. Enhet 1 och enhet 2 har samma nycklar lagrade.

Position … 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 …

Nyckel 1 … 0 0 0 0 0 3 7 11 13 17 19 23 29 31 37 ...

Nyckel 2 … 0 0 0 0 0 3 7 11 13 17 19 23 29 31 37 …

3.5 Utvärdering av tillförlitlighet

Utvärdering av prototyputrustningens tillförlitlighet sker enligt de teorier som besk-rivs i kapitel 2.6. Mikrobrytarna och relämodulen för kommunikation med det över-ordnade systemet utelämnas från beräkningarna. Utvärderingen är baserad på föl-jande antaganden och begränsningar:

– Omgivningstemperatur på 25 grader. – Fast monterad på stadig mark.

– Enheterna är inte utsatta för regn eller vind. – En trasig komponent medför trasig enhet. – Komponenterna följer ”badkarskurvan”. – Enheternas fysiska resetknapp utelämnas.

– Ethernet-shield består av ungefär samma mängd och typ av komponenter som Arduino UNO.

(45)

3.5.1 Arduino UNO

Arduino UNO utvärderas genom att uppskatta de ingående komponenternas failure rate och därefter använda ekvationerna (7)-(9) och ekvation (11). En BOM från Arduino UNO:s Eagle ritning togs fram i avsikt att identifiera dess komponenter. Med hjälp av den har sedan datablad för komponenterna letats fram. I de fall där da-tablad inte hittats har dada-tablad för likvärdigt funna komponenter använts. Databla-den har sedan använts som hjälpmedel tillsammans med handboken MIL-HDBK-217F för att uppskatta komponenternas failure rate. De allra flesta komponenternas failure rate uppskattades genom denna metod. För de resterande komponenterna användes antingen tillverkarens egna uppgifter eller gavs en failure rate likadan en komponent av likvärdig karaktär. Arduino UNO:s BOM och komponenternas upp-skattade failure rate medföljer i bilaga H.

Total failure rate för Arduino UNO:

𝜆𝑈𝑁𝑂 = 8,886568 106 𝑡𝑖𝑚𝑚𝑎𝑟 MTTF för Arduino UNO: 𝑀𝑇𝑇𝐹𝑈𝑁𝑂 = 1 𝜆𝑈𝑁𝑂 =10 6 𝑡𝑖𝑚𝑚𝑎𝑟 8,886568 = 112529,3814 𝑡𝑖𝑚𝑚𝑎𝑟 ≈ 13 å𝑟

I och med antaganden om att om en trasig komponent medför trasig enhet samman-faller enhetens MTTF med MTBF då komponentens MTTR i sådant fall är 0:

𝑀𝑇𝐵𝐹𝑈𝑁𝑂= 𝑀𝑇𝑇𝐹𝑈𝑁𝑂+ 𝑀𝑇𝑇𝑅𝑈𝑁𝑂= 112529,3814 𝑡𝑖𝑚𝑚𝑎𝑟 + 0

𝑀𝑇𝐵𝐹𝑈𝑁𝑂 ≈ 13 å𝑟

Arduino UNO:s reliabilitet beräknas enligt ekvation (11), dess graf visas i Fig. 22.

(46)

Figur 22 – Framtagen reliabilitetsgraf under 40 års drift för Arduino UNO.

3.5.2 Ethernet Shield

I och med antagandet om att ethernet-shielden antas vara ungefär likvärdig med Arduino UNO blir även failure rate, MTTF, MTBF och reliabilitet likvärdiga.

𝜆𝑒𝑡ℎ = 𝜆𝑈𝑁𝑂= 8,886568 106 𝑡𝑖𝑚𝑚𝑎𝑟 𝑀𝑇𝑇𝐹𝑒𝑡ℎ = 𝑀𝑇𝑇𝐹𝑈𝑁𝑂≈ 13 å𝑟 𝑀𝑇𝐵𝐹𝑒𝑡ℎ = 𝑀𝑇𝐵𝐹𝑈𝑁𝑂≈ 13 å𝑟 𝑅(𝑡)𝑒𝑡ℎ = 𝑅(𝑡)𝑈𝑁𝑂= 𝑒(−8,886568∗10 −6)𝑡 3.5.3 Systemets tillförlitlighet

(47)

En modellering av hela prototyputrustningens reliabilitet har gjorts med metoden RBD som beskrivs i kapitel 2.6.2. Prototyputrustningens kretskort är seriekopplade, se blockdiagram Fig. 23.

Figur 23 – Blockdiagram av prototyputrustningens seriekopplade kretskort.

Prototyputrustningens reliabilitet beräknas enligt ekvation (13) för seriella kompo-nenter: 𝑅(𝑡)𝑃𝑟𝑜𝑡𝑜𝑡𝑦𝑝= ∏ 𝑅𝑖(𝑡) = 𝑅1(𝑡) 4 𝑖=1 𝑅2 (𝑡)𝑅3(𝑡)𝑅4(𝑡) 𝑅(𝑡)𝑃𝑟𝑜𝑡𝑜𝑡𝑦𝑝 = 𝑅(𝑡)𝑈𝑁𝑂∗ 𝑅(𝑡)𝑒𝑡ℎ∗ 𝑅(𝑡)𝑒𝑡ℎ∗ 𝑅(𝑡)𝑈𝑁𝑂= 𝑅(𝑡)4 𝑅(𝑡)𝑃𝑟𝑜𝑡𝑜𝑡𝑦𝑝 = (𝑒−𝜆𝑡) 4 = (𝑒(−8,886568∗10−6)𝑡)4

I Fig. 24. visas en graf för prototyputrustningens reliabilitet under 20 år.

(48)

3.6 Funktionstester

Prototyputrustningen drifttestades med avsikt att utvärdera dess funktion samt finna eventuella fel och brister i mjukvaran. Testerna delades upp i två delar, tester i nor-malt tillstånd och tester i onornor-malt tillstånd.

Funktionstesterna genomfördes i en kontrollerad miljö på kontoret på avdelningen för larm och telekommunikation inne på Forsmarks kärnkraftsanläggning. Enheterna gavs strömförsörjning via ett likspänningsaggregat och kopplades upp mot varandra via Ethernet genom en femportars ethernet-switch. På nätverket fanns inga andra enheter. Substitut för mikrobrytare inklusive redundans och dubbelbalanserad slinga kopplades upp på en kopplingsbräda och ansluts till enhet 1. Utgångarna i enhet 2 anslöts mot led-dioder för att visuellt kunna se nivåerna på utgångarna. I Fig. 25 vi-sas en bild av på enheterna under testerna. Mikrokontrollerna programmerades att skriva ut specifika händelser på kommandofönstret i IDE:t. Kommandofönstret läs-tes av genom att koppla upp enheterna med USB till en dator och låta det vara öppet under testerna.

Figur 25 – Prototyputrustningen under genomförda tester.

3.6.1 Tester i normalt tillstånd

(49)

– Start/omstart av systemet.

- Avsikt att undersöka hur ofta programmet fastnar över tid. – Efter varje 500:e lyckade transaktion mellan enheterna.

- Avsikt att ha koll på mängden lyckade transaktioner mellan eventuella om-starter

– Status på räknaren för enhetsövervakning precis innan ett transaktionsförsök. - Avsikt att undersöka hur väl uppkopplingen mellan enheterna fungerar. Testerna utfördes genom att låta prototyputrustningen vara påslagen med olika transaktionsintervaller mellan enheterna under olika tidsperioder.

– 2,5 transaktioner/sekund – 2 tester, 1–2 dygn/test. – 1 transaktion/sekund – 2 tester, 1–2 dygn/test – 0,75 transaktioner/ sekund – 2 tester, 3–4 dygn/test. – 1 transaktion/minut – 2 tester, 1–2 dygn/test. I tabell 6 visas resultaten av testerna.

Tabell 6 – Resultat av testerna under normala förhållanden.

Test Antal trans-aktioner per tidsenhet Snitt antal lyckade transaktioner mellan om-starter (un-gefär). Lyckades alla om-starter Räknare för en-hetsövervakning Antal tester 2,5 t/s 30 000 Ja Mellan 1–2

Fler förekommer men ovanligt

2

1 t/s 30 000 Ja Mellan 1–2

Fler förekommer men ovanligt

2

0,75 t/s 20 000 Ja Mellan 1–2

Fler förekommer men ovanligt

2

(50)

Övriga observationer av testerna:

– Enhet 2 har vid två upptäckta tillfällen givit ett oönskat resultat genom att alla tre utgångarna gick låga. Endast omstart av enhet 2 har avhjälpt proble-met.

– Visst glapp i testanslutningarna upptäck. 3.6.2 Tester i onormalt tillstånd

Testerna i onormalt tillstånd avsåg att testa funktionerna för dubbelbalanserad slinga och majoritetsvotering samt finna fel och brister i enheternas mjukvara som påver-kar enheternas funktion att spegla I/O och larma till överordnat system samt att återgå till normal funktion. Genomförandet gick ut på att på olika sätt manipulera mikrobrytarkretsarna och kommunikationen mellan enheterna och därefter via led-dioder på I/O anslutningarna i enhet 2 observera vad som kommunicerades mot det överordnade systemet. Programkod adderades till enhet 2:s mjukvara i avsikt att skriva ut på kommandofönstret varje transaktion från enhet 1 till enhet 2. Testerna följer ett specifikt mönster för att ge möjligheten att se transaktionsflödet i avsikt att observera skiftet normalt tillstånd/onormalt tillstånd. Innan testerna påbörjades för-sattes prototyputrustningen i normalt tillstånd där samtliga led-dioder lyser. Följande simulerade manipulationer och gjordes:

– Områdesövervakning

– Kortslutning i mikrobrytarkretsen – Kabelbrott i mikrobrytarkretsen

– TMR: Mikrobrytare och I/O - olika tillstånd – Kommunikationsbortfall mellan enheterna 3.6.2.1 Områdesövervakning

Testet undersöker prototyputrustningens möjlighet till spegling av statusen hos om-råde 1 och 2 samt förmågan att avge larm när ett omom-rådes status påverkas. Omom-råde- Område-nas status ändrades genom att skifta mikrobrytarOmråde-nas läge i avsikt att simulera en åverkan på det övervakade områdena. För område 1 som har redundanta mikrobry-tare skedde skiftet simultant på samtliga. Resultatet kan ses i tabell 7. Testet uppre-pades tio gånger.

(51)

Tabell 7 - Resultat av testerna under onormalt tillstånd där områdesövervakning testas.

Testord-ning

Status I/O enhet 2 Funkt- ions-till-stånd Om-råde 1 Om-råde 2 Område 1 Område 2 Fel/larm 1 0 0 0 0 0 0 2 1 0 1 0 1 1 3 0 0 0 0 0 0 4 0 1 0 1 1 1 5 0 0 0 0 0 0 6 1 1 1 1 1 1 7 0 0 0 0 0 0

3.6.2.2 Kortslutning av dubbalbalanserad slinga

Testerna undersöker prototypfunktionens larmförmåga vid manipulationsförsök av den dubbelbalanserad slingan. Manipulationen som utförs är kortslutning av resistor R1och R2, se Fig. D4 i bilaga D. Resultatet kan ses i tabell 8. Testet upprepades tio gånger.

(52)

Tabell 8 - Resultat av testerna under onormalt tillstånd där kortslutning i dubbelbalanserad slinga testas. Test-ordning Område 1 Tre kretsar Område 2 En krets Enhet 2 Funktions-tillstånd 1 2 3 1 Fel/larm 1 0 0 0 0 0 0 2 1 0 0 0 1 1 3 0 0 0 0 0 0 4 0 1 0 0 1 1 5 0 0 0 0 0 0 6 0 0 1 0 1 1 7 0 0 0 0 0 0 8 0 0 0 1 1 1 9 0 0 0 0 0 0 3.6.2.3 Kabelbrott i mikrobrytarkretsen

Testerna undersöker prototypfunktionens larmförmåga vid kabelbrott i den dubbel-balanserad slingan. Testet genomförs genom att koppla bort kabelanslutningarna till spänning och analog ingång. För område 2 som har redundanta anslutningar till ana-loga ingångarna kopplades samtliga bort. Resultatet kan ses i tabell 9. Testet uppre-pades tio gånger.

(53)

Tabell 9 - Resultat av testerna under onormalt tillstånd där kabelbrott i mikrobrytarkretsen testas. Test-ordning Område 1 Tre kretsar Område 2 En krets Enhet 2 Funktions-tillstånd 1 2 3 1 Fel/larm 1 0 0 0 0 0 0 2 1 0 0 0 1 1 3 0 0 0 0 0 0 4 0 1 0 0 1 1 5 0 0 0 0 0 0 6 0 0 1 0 1 1 7 0 0 0 0 0 0 8 0 0 0 1 1 1 9 0 0 0 0 0 0

3.6.2.4 TMR: Mikrobrytare och I/O - olika tillstånd

Testerna undersöker prototypfunktionens förmåga att upprätthålla avsedd funktion-alitet vid bortfall av en mikrobrytare till område 1 eller en I/O anslutning till om-råde 2. Samt testa förmågan att larma vid sådan händelse. Testet genomförs genom att i område 1 påverka de tre mikrobrytarkretsarna så att en av avläsningarna blir av-vikande. I område 2 sker motsvarande manipulation genom att avlägsna inkopp-lingen till mikrokontrollerplattformen. Resultatet kan ses i tabell 10 för område 1 och i tabell 11 för område 2. Testet upprepades tio gånger.

(54)

Tabell 10 - Resultat av testerna under onormalt tillstånd där olika tillstånd för trippelmodulär redundans testas hos område 1.

Test-ordning

Status område 1 Område 1 Tre kretsar

(55)

Tabell 11 - Resultat av testerna under onormalt tillstånd där olika tillstånd för trippelmodulär redundans testas hos område 2.

Test-ordning

Status område 2 Område 2 Tre I/O

(56)

3.6.2.5 Kommunikationsbortfall mellan enheterna

Testerna undersöker prototypfunktionens larmförmåga och återställningsförmåga vid kommunikationsbortfall mellan enheterna. Fallet simulerades genom att avlägsna enhet 2:s uppkoppling mot Ethernet under en kort tidsperiod och därefter återan-sluta enheten till Ethernet. Olika villkor för hur många återkopplingsförsök innan larm testades även. Resultatet kan ses i tabell 12. Testerna upprepades tio gånger.

Tabell 12 - Resultat av testerna under onormalt tillstånd där kommunikationsbortfall mellan enheterna testas. Test-ordning Antal återkopp-lingsförsök innan larm

(57)

4 Diskussion

Prototyputrustningen som tagits fram bevisar möjligheten att spegla I/O över TCP/IP-protokoll, tillsammans med de krav som FKA har ställt på dess funktion-alitet. I kapitlet förs en diskussion relaterad till de olika delarna ur projektet där teo-rier och resultat knyts samman.

4.1 Diskussion hårdvara och design

Enligt önskemål från FKA skulle en generell mikrokontrollutrustning användas för prototyputrustningen. Valet föll på mikrokontrollerplattformen Arduino UNO, se kapitel 2.1.2. Viktiga aspekter i valet har varit kostnad, open source miljö, RoHs certifiering, många tillgängliga exempelprogram, möjlighet till att utöka funktional-iteten via shieldens och den breda erfarenhet som finns i världen kring Arduino rela-terade projekt och programmering. Förhoppningen är att en plattform från Arduino leder till ekonomiska- och tidsbesparande fördelar vid framtida underhåll eller utök-ningar. En nackdel med valet av Arduino UNO är att dess mikrokontroller på 8-bi-tar har begränsade möjligheter att hantera stora tal, vilket påverkade valet av krypte-ringsalgoritm. Den är även begränsad i antalet analoga ingångar, vilket medför att enbart två områden kan övervakas med vald metod av redundans.

Metoderna för TMR och egenövervakning via balanserad slinga, beskrivna i kapitel 2.3.2 och 2.4, ger systemet flexibilitet och robusthet. Dels upprätthålls protyput-rustningens funktion vid fel på mikrobrytare eller I/O anslutning, dels avgöra om det sker försök till manipulation av mikrobrytarkretsen. Det finns brister med meto-derna. Gällande TMR blir det tydligt i mjukvaran där majoritetsvoteringsalgoritmen inte kan skilja på tre olika värden. Gällande dubbelbalanserad slinga så är tekniken möjlig att överlista. Hur en dubbalbalanserad slinga överlistas behandlas inte detta examensarbete.

4.2 Diskussion program och funktioner

Några specifika metoder för hur en spegling av I/O kan ske rent mjukvarumässigt mellan två mikrokontrollplattformar framkom inte under teoristudierna. Däremot har stödfunktionerna ”kommunikation mellan enheterna”, ”majoritetsvotering”, ”WDT” och ”krypteringsprocessen” bakgrund i de teoretiska resultaten.

(58)

Majoritetsvoteringsalgoritmen, som beskrivs i kapitel 2.3.2, är något modifierad från teorin för att hantera Arduino UNO:s ADC värden mellan 0–1023. Funktionen hanterar även små differenser i ADC-värdet som kan uppstå om de resistorer som används inte är exakt lika.

WDT, som nämns i kapitel 2.1 och 2.3.3 är en vanlig funktion hos mikrokontroller just för att undvika låsningar i mjukvaran. Programmets förmåga att fungera långsik-tigt ökar därmed.

Krypteringsfunktionen omnämns i kapitel 4.3. Övriga funktioner, som kontroll av mikrobrytarkretsens tillstånd utifrån valt ADC-värde från majoritetsalgoritmen och textsträngsbehandling i enhet 2 använder vanliga programmeringstekniker som bland annat ”if-sats”, ”case-sats” och ”for-loop”.

Det är för författaren tänkbart att andra lösningar eller metoder kan användas för liknande funktionalitet. Det går heller inte att säga att det inte förekommer standar-diserade metoder för I/O spegling mellan två mikrokontroller över TCP/IP-protokoll.

4.3 Diskussion signalintegritet

Den krypteringsteknik som använts för att skydda informationen mellan enheterna mot avlyssning är baserad på teckensubstitution som beskrivs i kapitel 2.5.1. Kryp-teringsprocessens första steg är baserad på Caesar cipher, Steg två är baserad på idéerna kring Vigenère cipher. Matematiskt används ekvationen för Caesar cipher där den är något modifierad i steg 2. Modifieringen ger en förskjutning av alfabetet vilket gör att två lika tecken krypteras olika, precis som i Vigenère cipher. Den lös-ning som presenteras i detta examensarbete tillsammans med löslös-ningen för nyckel-hantering, samt att den informationen som skickas mellan enheterna varieras med slumpmässiga tal, medför att målet med signalintegritet uppnås.

För att motivera påståendet om uppnådd signalintegritet, som inte är utvärderat ge-nom tester, förs följande resonemang:

(59)

Ytterligare en detalj är att den i normalt läge statiska texten som skickas mellan en-heterna förändras genom att använda slumpmässigt genererade tal. Det försvårar manipulationsförsök eftersom det blir svårare att anta hur textraden som skickas ser ut. Det nätverk som enheten ska anslutas till är autonomt, vilket medför svårigheter för utomstående att ansluta till det. Fört resonemang motiverar påståendet om att målet för signalintegritet är uppnått.

Modernare metoder som RSA och AES har undersökts, kapitel 2.5.2. Försök att im-plementera metoderna i Arduino UNO har gjorts. För RSA, som använder stora primtal och exponenter blev dessa tal för stora för mikrokontrollerna att hantera. Gällande AES så prövades funktionerna till det existerande biblioteket ”AESlib”. Försöken resulterade i en medvetenhet i den tidsåtgång som krävs att implementera metoderna i Arduino UNO och kommer därför föreslås som utveckling av projektet under kapitel 5.1.

4.4 Diskussion tillförlitlighet

Tillförlitlighetsberäkningarna visar att varje del i systemet (två UNO och två ether-net-shields) enskilt har en MTTF på ungefär 13 år och att hela systemets MTBF är ungefär 3,2 år. Beräkningarna utgår ifrån handboken MIL-HDBK-217F. Det existe-rar osäkerheter i beräkningarna i och med de antaganden som varit nödvändiga för att genomföra uppskattningen. Alla antaganden har i den mån det varit uppenbart gjorts med hänsyn att inte underskatta tillförlitligheten. Det är inget optimalt tillvä-gagångsätt eftersom det kan leda till felaktiga slutsatser. Det är försvarbart att i detta fall göra vissa underskattningar på grund av osäkerheterna som finns samt uteläm-nandet av lod och kontakter. Antagandet att ethernet-shielden har ungefär samma tillförlitlighetsmått som Arduino UNO baseras på en visuell koll av korten där det bedömdes att komponentinnehållet var ungefär detsamma. Det är inte ett optimalt tillvägagångssätt och resultatet skulle bli mer tillförlitligt om en enskild bedömning görs.

Systemets reliabilitetsgraf visar att det är ungefär 50% sannolikhet för felfri drift i 20,000 timmar. Metoden att bestämma reliabilitetsgrafen baseras på att komponen-terna följer den så kallade badkarskurvan som nämns i kapitel 2.6.1.3. Det var svårt att avgöra om specifika komponenter följer badkarskurvan eller inte så antagandet har gjorts att alla komponenter hos systemet följer kurvan.

4.5 Diskussion Tester

References

Related documents

För att kunna kommunicera med mikrokontrollern finns ett SPI interface genom vilket instruktioner och data kan skickas till och från ethernetkontrollern.. Hastigheten

At the receiving end, TCP uses a receive window (TCP RWND) to inform the transmitting end on how many Bytes it is capable of accepting at a given time derived from Round-Trip

Since uIP is a minimal stack designed for 8-bit microcontroller and Leon3 is a 32-bit processor which is distributed as GRLIB IP library [3], a network device driver has

Q uod fi plurimi in tenebris Gentilismi palpitantes, ad abfonas quas­ vis imo &amp; horrendas de mediis expiationis, prolapfi eafent opiniones, non ta m en prorfus

nixum, principium fiendi Jegis naturalis. Ergo ever­ titur tam principium efiendi , quam fiendi eiusdem ; ergo nulli a&amp;ionum,ad eam dari poteft relatio : Er­ g o

Sett i dessa termer innebär en djupare förståelse att det finns länkar för att integrera eller differentiera vardagliga och vetenskapliga sätt att förklara (Scott m.fl.,

simma trots att de enligt skolsystemet på Nya Zeeland ska kunna det (Moran 2008, s.117). I kursplanens centrala innehåll står det uttryckt att simning, lekar i vatten samt

Five variables are tested to establish whether they influence the savings: number of participants (potential suppliers) in the e-auction, total value of the