Untitled - MRTC
Untitled - MRTC
Untitled - MRTC
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Intern realtidskommunikation i framtida Svenska satelliter sid 5<br />
Martin Normark<br />
MMK<br />
Master Project MMK 2003:29 MDA 197<br />
Internal Real-Time Communication in future Swedish<br />
satellites.<br />
Machine Design KTH<br />
Mechatronics Martin Normark<br />
Approved<br />
2003-03-11<br />
Examiner<br />
Martin Törngren<br />
Commissioner<br />
Swedish Space Corporation<br />
Supervisor<br />
Martin Törngren<br />
Contact person<br />
Gunnar Andersson<br />
Abstract<br />
The Swedish Space Corporation, SSC, or Rymdbolaget as it is called in Swedish recently designed<br />
and delivered a satellite named SMART-1. The satellite will be launched in July 2003 and will be the<br />
first satellite in the world using CAN, Controller Area Network, for its internal communication.<br />
However, SSC now wishes to compare the CAN-bus to other potential future networks in order to find<br />
out if any of those handles real-time communication in a satellite better than CAN does. The<br />
investigated networks are:<br />
• CAN<br />
• TTCAN<br />
• FlexRay<br />
• MOST<br />
• Spacewire<br />
• TTP/C<br />
• USB 2.0<br />
Of the networks listed above, FlexRay is the best suited to fulfil the demands defined in collaboration<br />
with- the SSC. FlexRay and TTP/C are the only two networks that are believed to get approval for<br />
steer-by-wire usage, but TTP/C does not pass the SSC demands due to its inflexible TDMA, Time<br />
Division Multiple Acces.<br />
Steer-by-wire means that, for example a car or an airplane is not steered with the steering wheel or the<br />
steering stick mechanically attached to the wheel or the rudder via a steering column but rather<br />
through a digital network communicating with a microprocessor, controlling a steering servo on its<br />
part. One problem with FlexRay is that it has not yet been commercialised.<br />
FlexRay will probably be commercialised earliest in 2004 or 2005, and the SSC will then need to<br />
evaluate FlexRay concerning functionality, whether it will fulfill its specification or not, and how<br />
widely spread it has become; something that is of importance for SSC. Until then the CAN-bus is the<br />
best alternative. The CAN-bus should however be upgraded with better protection against babbling<br />
idiots, i.e. malfunctioning nodes that destroys all other traffic on the network, a method for<br />
synchronizing the nodes and desirable is also a EDF function.<br />
EDF, Earliest Deadline First, is a method that gives the message closest to its deadline access to the<br />
network. By using a simplified version of EDF, every node can be guaranteed a certain bandwidth, a<br />
maximum access delay and can also be offered spare bandwidth if any node choose not to use all its<br />
allocated bandwidth. This thesis shows, by the use of computer-aided simulations and production of a<br />
prototype EDF-CAN-controller implemented in a FPGA, not only that the simplified EDF method<br />
works in a CAN network but also that EDF can be included inside an SSC-designed CAN-controller<br />
as well.<br />
Beside the studied networks, recommended as steer-by-wire networks, USB and Spacewire are also<br />
very potential communication links between two nodes. The great benefit with USB is its wide<br />
commercial spread. What makes Spacewire a good choice is that it is ESA-approved for space usage.<br />
Spacewire is also already integrated in some components as DSP´s, cameras and mass-memories for<br />
space use.
Intern realtidskommunikation i framtida Svenska satelliter sid 6<br />
Martin Normark
Intern realtidskommunikation i framtida Svenska satelliter sid 7<br />
Martin Normark<br />
Innehållsförteckning<br />
1 INLEDNING................................................................................................................................. 9<br />
2 EX-JOBBSBESKRIVNING...................................................................................................... 11<br />
2.1 MÅL...................................................................................................................................... 11<br />
2.2 METOD.................................................................................................................................. 11<br />
2.2.1 Intervjuer med Rymdbolaget-personal ......................................................................... 11<br />
2.2.2 Skapande av kravspecifikation ..................................................................................... 11<br />
2.2.3 Studie av befintliga nätverksprotokoll.......................................................................... 11<br />
2.2.4 Val och implementation av nätverksprotokoll .............................................................. 11<br />
3 INTERVJUER MED RYMDBOLAGET-PERSONAL.......................................................... 13<br />
3.1 INTERVJU MED SYTZE VELDMAN .......................................................................................... 13<br />
3.2 INTERVJU MED BENGT HOLMQVIST ...................................................................................... 13<br />
3.3 INTERVJU MED GUNNAR ANDERSSON ................................................................................... 13<br />
4 KRAV PÅ NÄSTA SATELLITGENERATIONS<br />
INTERNKOMMUNIKATIONSNÄTVERK................................................................................... 15<br />
4.1 SYSTEMBUSSEN .................................................................................................................... 15<br />
4.2 PAYLOADBUSSEN.................................................................................................................. 15<br />
4.3 TIDSSTYRDA RESPEKTIVE HÄNDELSESTYRDA NÄTVERK OCH NODER .................................... 16<br />
4.4 TESTNING OCH UTVECKLING................................................................................................. 16<br />
4.5 RYMDENS KRAV.................................................................................................................... 16<br />
4.5.1 Vakuum......................................................................................................................... 16<br />
4.5.2 Strålning.......................................................................................................................16<br />
4.5.3 Rymdskrot..................................................................................................................... 17<br />
4.6 REDUNDANS OCH FELHANTERING ......................................................................................... 17<br />
4.7 ELEKTRISKT GRÄNSSNITT ..................................................................................................... 18<br />
4.8 SAMMANFATTNING AV KRAV................................................................................................ 18<br />
5 KORT BESKRIVNING AV BEFINTLIGA NÄTVERK SOM KAN KOMMA IFRÅGA . 19<br />
5.1 CAN ..................................................................................................................................... 19<br />
5.1.1 Protokoll.......................................................................................................................19<br />
5.1.2 Elektriskt interface ....................................................................................................... 20<br />
5.2 USB...................................................................................................................................... 20<br />
5.2.1 Protokoll.......................................................................................................................20<br />
5.2.2 Elektriskt gränssnitt...................................................................................................... 21<br />
5.3 SPACEWIRE ........................................................................................................................... 21<br />
5.3.1 Protokoll.......................................................................................................................22<br />
5.3.2 Elektriskt gränssnitt...................................................................................................... 23<br />
5.4 TTP/C................................................................................................................................... 23<br />
5.4.1 Protokoll.......................................................................................................................23<br />
5.4.2 Elektriskt gränssnitt...................................................................................................... 24<br />
5.5 TTCAN ................................................................................................................................ 24<br />
5.5.1 Protokoll.......................................................................................................................25<br />
5.5.2 Elektriskt gränssnitt...................................................................................................... 27<br />
5.6 FLEXRAY .............................................................................................................................. 27<br />
5.7 MOST................................................................................................................................... 28<br />
5.7.1 Protokoll.......................................................................................................................28<br />
5.7.2 Elektriskt gränssnitt...................................................................................................... 29<br />
6 VAL AV NÄTVERK..................................................................................................................31<br />
6.1 BEDÖMNINGSMALL............................................................................................................... 31<br />
6.2 GALLRING AV NÄTVERK ....................................................................................................... 31<br />
6.3 SLUTLIGT NÄTVERKSFÖRSLAG FÖR STEAM......................................................................... 31<br />
6.4 SLUTLIGT GENERELLT NÄTVERKSFÖRSLAG FÖR KOMMANDE SATELLITER ............................ 32
Intern realtidskommunikation i framtida Svenska satelliter sid 8<br />
Martin Normark<br />
7 TESTIMPLEMENTATION AV CAN SOM ANVÄNDER EARLIEST DEADLINE FIRST<br />
33<br />
7.1 KORT BESKRIVNING AV EDF ................................................................................................ 33<br />
7.2 BESKRIVNING AV ANVÄND EDF-ALGORITM ......................................................................... 34<br />
7.3 MÅL MED TEST...................................................................................................................... 35<br />
7.4 SIMULERING AV CAN MED EDF........................................................................................... 36<br />
7.5 IMPLEMENTATION I VHDL ................................................................................................... 37<br />
7.6 SIMULERING AV FUNKTION HOS KOD SKRIVEN I VHDL ........................................................ 38<br />
7.7 PRODUKTION AV TESTHÅRDVARA IMPLEMENTERAT I EN FPGA........................................... 41<br />
7.8 TEST AV FPGA ..................................................................................................................... 42<br />
7.8.1 Testprocedur................................................................................................................. 44<br />
7.8.2 Testresultat................................................................................................................... 45<br />
8 RESULTAT ................................................................................................................................ 49<br />
8.1 REKOMMENDERAT NÄTVERK I FRAMTIDA SATELLITER ......................................................... 49<br />
8.2 TEST AV FÖRBÄTTRAD CAN-BUSS........................................................................................ 49<br />
8.2.1 Simulering av EDF-CAN-buss ..................................................................................... 49<br />
8.2.2 Simulering av funktion hos EDF-CAN-Shellet ............................................................. 50<br />
8.2.3 Test av EDF-CAN-controller implementerad i FPGA ................................................. 50<br />
9 SLUTSATS ................................................................................................................................. 51<br />
10 DISKUSSION OCH MÖJLIGHETER FÖR FRAMTIDA UTREDNINGAR................. 53<br />
11 TACK TILL............................................................................................................................ 55<br />
12 BEGREPP OCH FÖRKORTNINGAR SOM ANVÄNDS I DENNA RAPPORT............ 57<br />
13 REFERENSER....................................................................................................................... 59<br />
13.1 MUNTLIGA KÄLLOR OCH INTERVJUER................................................................................... 60<br />
13.2 LITTERATURTIPS ................................................................................................................... 60<br />
APPENDIX A SIMULERING AV EDF-ALGORITM................................................................... 61<br />
APPENDIX B INTERVJUER AV RYMDBOLAGSPERSONAL ................................................ 71<br />
FRÅGOR ............................................................................................................................................ 71<br />
Svar på frågor Sytze Veldman...................................................................................................... 71<br />
Svar på frågor Bengt Holmqvist................................................................................................... 72<br />
Svar på frågor Gunnar Andersson ............................................................................................... 73<br />
APPENDIX C VHDL-KOD I CAN-SHELL.................................................................................... 75<br />
TRANSMISSION_STATE_MACHINE.................................................................................................... 75<br />
RETRANSMISSION_BUFFER ............................................................................................................... 79<br />
APPENDIX D VHDL-KOD FÖR TEST 5.1 OCH 6.1.................................................................... 81<br />
APPENDIX E……………………………………….…………………………………………Se utvikbar bild
Intern realtidskommunikation i framtida Svenska satelliter sid 9<br />
Martin Normark<br />
1 Inledning<br />
Rymdbolaget, eller Swedish Space Corporation, SSC, som bolaget heter på engelska, jobbar precis<br />
som namnet antyder, med tjänster och produkter inriktade mot rymdindustrin. Som exempel kan<br />
nämnas: Kommunikationslänkar till satelliter, service på rymdbasen Esrange strax utanför Kiruna,<br />
experiment som utförs i viktlöst tillstånd samt utveckling av satelliter. Rymdbolagets huvudsakliga<br />
kunder är Svenska Rymdstyrelsen och ESA, European Space Agency, men många andra kunder<br />
förekommer.<br />
Den senaste satelliten heter SMART-1 och får betraktas som en försökssatellit. SMART-1 är utrustad<br />
med en nyutvecklad solcellsdriven jonmotor som skall föra satelliten från en bana nära jorden ut till<br />
månen för att där placeras i en bana kring densamma. SMART-1 är även unik på ett annat sätt, den är<br />
nämligen den första satellit som utrustats med CAN-bussen för sin interna kommunikation mellan<br />
instrument och datorer ombord.<br />
CAN, Controller Area Network, utvecklades av BOSCH 1989 och var i första hand tänkt som ett<br />
tvåtråds-nätverk mellan diverse mikrokontrollers i bilar. Dock har standarden spridits till ett flertal<br />
olika industriella tillämpningar och har nu även tagit steget upp i rymden. En elektronisk<br />
nätverksstandard utvecklad för bilindustrin måste vara mycket robust och okänslig för störningar, då<br />
en bil är en mycket svår miljö med avsevärda vibrationer, smuts, fukt och inte minst elektroniska<br />
störningar. Dessa egenskaper har CAN, som inbyggt i protokollet har funktioner för såväl<br />
feldetektering som felhantering, där felaktiga meddelanden automatiskt sänds om m.m.<br />
CAN-protokollet är, i sitt grundutförande, dock behäftat med ett antal svagheter som kan medföra<br />
problem och/eller begränsningar ombord på en satellit. Som exempel kan nämnas att CAN är ett så<br />
kallat händelsestyrt protokoll, vilket innebär att varje nod i nätet kan försöka sända när som helst och<br />
en på förhand fastställd prioritering avgör vilken nod som skall få sända först. Detta passar inte så bra<br />
i ett realtidsstyrt reglersystem där det är viktigt med väl synkroniserade noder som kräver tillgång till<br />
ett deterministiskt nätverk där det i förhand är känt vilken nod som i en given tidpunkt har tillgång till<br />
nätverket. Vidare erbjuder CAN-protokollet endast en begränsad bandbredd, 1 Mbps, vilket kan vara<br />
för lite för instrument som kontinuerligt sänder mycket information, t.ex. en kamera. CAN-protokollet<br />
erbjuder heller ingen inbyggd redundans, vilket är nödvändigt ombord på en satellit. Det skall dock<br />
tilläggas att CAN-protokollet genom att det har funktioner på en låg nivå tillåter den enskilde<br />
designern att själv lägga till funktionalitet såsom exempelvis sändscheman, det är bland annat denna<br />
strategi som lett till CAN´s stora framgång.<br />
Rymdbolaget har fått i uppdrag av Rymdstyrelsen att presentera ett förslag till design för en eventuell<br />
framtida satellit, STEAM, vars uppgift kommer att bli att mäta växthusgaser i atmosfären i en cirkulär,<br />
solsynkron bana 700 km över jordytan. Rymdbolaget avser att i STEAM uppgradera CAN-bussen till<br />
en buss som inte bara passar STEAM´s mission samt eliminerar ovan nämnda svagheter, utan även<br />
kan tänkas i framtida generationer av satelliter.<br />
Detta examensarbete avser utreda huruvida det är möjligt att delvis eller helt ersätta nuvarande CANbuss<br />
med en alternativ buss, alternativt komplettera CAN-bussen med mjukvara, i syfte att tillgodose<br />
framtida behov.
Intern realtidskommunikation i framtida Svenska satelliter sid 10<br />
Martin Normark
Intern realtidskommunikation i framtida Svenska satelliter sid 11<br />
Martin Normark<br />
2 Ex-jobbsbeskrivning<br />
2.1 Mål<br />
Målet med examensarbetet är att finna den lämpligast möjliga designen för de interna nätverken<br />
ombord på Rymdbolagets framtida satelliter. Med framtida satelliter avses främst STEAM som<br />
projekteras just nu. Men nätverket bör även designas på sådant sätt att det kan användas i framtida, i<br />
dagsläget ej planerade, satelliter. Nätverket skall vara så robust att funktionen kan garanteras under<br />
satellitens hela livslängd, vidare skall det uppfylla kraven på nästa satellitgenerations<br />
internkommunikationsnätverk, närmare beskrivet i kap 4.<br />
2.2 Metod<br />
2.2.1 Intervjuer med Rymdbolaget-personal<br />
Arbetet inleds med intervjuer av Rymdbolaget-personal. Intervjuerna fokuseras kring följande<br />
punkter:<br />
• Systemkrav<br />
• Bandbreddsbehov<br />
• Behov av tidsstyrda respektive händelsestyrda nätverk och noder<br />
• Synkronisering av noder<br />
• Redundans och felhantering<br />
• Rymdens krav<br />
• Skillnader mellan Systembussen och Payloadbussen<br />
• Dagens design i SMART-1<br />
• Vikten av återanvändning av tidigare nätverk<br />
• Elektriskt gränssnitt<br />
2.2.2 Skapande av kravspecifikation<br />
Intervjuerna syftar dels till att skapa förståelse för designen hos framtida sateliter men framför allt till<br />
att formulera kraven på nästa satellitgenerations internkommunikationsnätverk (se kap 4).<br />
Kravspecifikationen skall styra in studierna av befintliga nätverk åt rätt håll samt ligga till grund för<br />
eventuella mjukvarutillägg till det nätverksprotokoll som slutligen väljs.<br />
2.2.3 Studie av befintliga nätverksprotokoll<br />
Följande nätverk kommer att studeras:<br />
• USB<br />
• Spacewire<br />
• TTP/C<br />
• CAN/TTCAN<br />
• FlexRay<br />
• MOST<br />
Inledningsvis inriktas studierna mot en översiktlig förståelse av protokollens huvudsakliga<br />
egenskaper, vilka sedan jämförs i en jämförelsemall (se bilaga). Därvid sker en första gallring,<br />
varefter de återstående 2-3 nätverksprotokollen studeras närmare.<br />
2.2.4 Val och implementation av nätverksprotokoll<br />
I samråd med Rymdbolaget-personal väljs det lämpligaste nätverksprotokollet. Detta implementeras<br />
sedan i syfte att visa att kravspecifikationen efterlevs. Vikt läggs därvid att implementera de nya<br />
egenskaperna och då framför allt de som eventuellt måste läggas till mjukvarumässigt.
Intern realtidskommunikation i framtida Svenska satelliter sid 12<br />
Martin Normark
Intern realtidskommunikation i framtida Svenska satelliter sid 13<br />
Martin Normark<br />
3 Intervjuer med Rymdbolaget-personal<br />
Intervjuformulär, samt de intervjuades svar på frågorna finns utskrivet i sin helhet i Appendix B.<br />
3.1 Intervju med Sytze Veldman<br />
Sytze Veldman [16] arbetar med systemutveckling inom Space Systems på Rymdbolaget.<br />
Enligt Sytze finns planer på att separera satellitplattform och instrumentering varvid instrumenten<br />
förses med eget mass-minne.<br />
Veldman är mycket nöjd med CAN-bussen som den används i SMART-1.<br />
Om endast radioskopet används räcker CAN-bussen gott och väl. Detta under förutsättning att 1<br />
Mbps-länk finnes mellan mass-minne och TMTC.<br />
3.2 Intervju med Bengt Holmqvist<br />
Bengt Holmqvist [17] jobbar bl.a. med kommunikation mellan GS (ground station) och satellit.<br />
Han skulle gärna se en kommunikationsmetod i satelliten som är kompatibel med vanliga<br />
kommunikationsmetoder på jorden t.ex. USB 2.0 eller TCP/IP. Fördelen med det är att den enskilde<br />
forskaren kan använda samma protokoll vid testning på jorden samt vid kommunikation med det<br />
enskilda experimentet i realtid, via exempelvis Internet, då satelliten ligger i sin bana. Bengt menar<br />
dock att en sådan förändring kan bli alltför stor, såtillvida att den tar för lång tid och kostar för mycket<br />
att implementera, och kan ställa för höga krav på såväl mjuk- som hårdvara ombord på satelliten.<br />
Bengt betonar att ett nätverk som erbjuder god testbarhet för såväl instrument som nätet självt sparar<br />
mycken tid i utveckling och testning.<br />
Bengt tycker även att USB 2.0 kan vara intressant, främst med tanke på utveckling och testning, då<br />
USB 2.0 är så pass kompatibel med en vanlig PC på jorden.<br />
Han gör bedömningen att en trolig överföringshastighet, inom en överblickbar framtid, mellan GS<br />
och Rymdbolaget-tillverkad satellit med banhöjder motsvarande STEAM blir ca 1 Mbps.<br />
Ett framtida de facto standard-gränssnitt på rymdinstrument och avancerade komponenter kan tänkas<br />
bli TCP/IP eller Spacewire.<br />
CAN-bussen är ett bra alternativ, såtillvida att den uppfyller de krav som ställs. Dock kan<br />
felhanteringen förbättras. En bättre synkronisering av noderna kan dock vara önskvärd, detta medför<br />
även att nuvarande sekund-tick som idag sänds, i SMART-1, på en enskild förbindelse kan läggas<br />
över nätet istället.<br />
3.3 Intervju med Gunnar Andersson<br />
Gunnar Andersson [18] arbetar med systemdesign och har bl.a. designat CAN-bussen på SMART-1.<br />
Gunnars många men relativt kortfattade riktlinjer för ett nätverk är att det skall vara:<br />
• Säkert<br />
• Redundant<br />
• Standardiserat på något sätt<br />
• Tillräckligt EMC-tyst<br />
• Effektsnålt<br />
• Tillräckligt bredbandigt<br />
• Avlyssningsbart i en punkt<br />
Gunnar anser att det som borde förbättras/läggas till jämfört med nuvarande CAN-buss är<br />
• Redundansen, använd två linor kontinuerligt<br />
• Global klockdistribution<br />
• Synkronisering av noder, 0,1 ms<br />
• Om bandbredden skall ökas skall den minst tiofaldigas
Intern realtidskommunikation i framtida Svenska satelliter sid 14<br />
Martin Normark
Intern realtidskommunikation i framtida Svenska satelliter sid 15<br />
Martin Normark<br />
4 Krav på nästa satellitgenerations<br />
internkommunikationsnätverk<br />
Generellt kan sägas att det finns ett självändamål med att återanvända så mycket som möjligt av<br />
tidigare design, då detta sparar tid och pengar framför allt i utvecklingsfasen. Samtidigt måste givetvis<br />
kraven som ställs på nätverket uppfyllas. Dock är vissa krav mer att betrakta som önskemål även om<br />
gränsen är tämligen flytande. Vissa kombinationer av krav kan också vara mer eller mindre omöjliga<br />
att realisera samtidigt. Sedermera kommer alltså krav att ställas mot återanvändning, men även krav<br />
som ställs emot andra krav kommer att förekomma, på samma sätt som det är svårt att bygga en<br />
fjäderlätt pansarvagn med gott skydd. Det skall tilläggas att ingen idag vet hur nästa satellit eller<br />
satellitgeneration ser ut. Därför får kraven en ganska allmän karaktär och många grundläggande<br />
designdrag, varav många givetvis från SMART-1 [1], såsom den av Rymdbolaget ganska flitiga<br />
uppdelningen mellan last, (payload) som ofta består av instrument och kameror, och satellitens egna<br />
system.<br />
4.1 Systembussen<br />
Systembussens uppgift är som namnet antyder att erbjuda kommunikation mellan alla delar i<br />
satellitens systemdelar, t.ex. de delar som sköter kommunikationen med jorden, positionsangivning,<br />
attitydstyrning, elkraftreglering, huvuddator. Systembussens meddelandekaraktär är således till större<br />
delen av typen periodiskt återkommande kontrollmeddelanden. Perioden ligger idag kring 1 Hz. I<br />
framtida satelliter där det kan komma att ställas allt högre krav på positions- och attitydstyrningen<br />
kommer periodfrekvensen att öka, en ökning med tio gånger ska nog inte ses som orealistisk, även om<br />
detta är spekulationer. Detta gäller dock inte den/de närmaste i tiden kommande satelliterna. Trots en<br />
ökad periodicitet, kommer inte mängden information per cykel att minska, dock kan tänkas att<br />
noggrannheten, d.v.s. antalet databitar, i kontrolldatameddelandena ökar varför även mängden data per<br />
cykel kan tänkas öka med upp till 50%. I dagens CAN-buss lösning används 3,25 % av tillgänglig<br />
bandbredd, en framtida satellit kan därför tänkas använda:<br />
10 ⋅ ( 1,<br />
5⋅<br />
3,<br />
25%)<br />
= 48,<br />
75%<br />
≈ 50%<br />
av tillgänglig bandbredd.<br />
Att i princip 50 % av tillgänglig bandbredd används kan tyckas ligga på den övre gränsen av vad som<br />
bör allokeras i ett nätverk. Dock kan i ett tidsschememässigt uppstyrt nätverk höga nätlaster tillåtas, då<br />
inga toppar och dalar i kommunikationen tillåts. Det är dock stor risk att systemet växer ur nätverket<br />
om ytterligare funktionalitet läggs till. Därför kan en bandbreddshöjning tänkas vara klok då nästa<br />
nätverksgeneration skall designas.<br />
Med större noggrannhet i position och attityd följer ett större noggrannhetskrav vad gäller<br />
synkroniseringen noderna emellan och att en distribuerad global tid med hög noggrannhet når alla<br />
noder. Ett minsta krav, enligt Gunnar Andersson på Rymdbolaget [18], på noggrannheten är 100µs,<br />
gärna bättre. Styrsystem med hög prestanda kräver dessutom att tiden det tar att sända ett meddelande<br />
på förhand är känd och kan garanteras för viktiga meddelanden. Detta kräver alltså ett tämligen<br />
deterministiskt nätverk.<br />
Nätverket bör dessutom vara distribuerat, d.v.s. att alla noder skall höra samtliga meddelanden, detta<br />
då flera noder än en sannolikt behöver ta del av information som position, tid och globala uppgifter<br />
vid en given tidpunkt.<br />
Systembussen är idag skild från payloadbussen av två skäl: Framför allt ökas säkerheten, såtillvida att<br />
ett instrument som ”löper amok” inte saboterar trafiken på systembussen utan istället kan stängas av,<br />
genom att strömmen till enheten kopplas bort med hjälp av ett kommando från jorden eller från<br />
huvuddatorn ombord. Det andra skälet är att en högsta fördröjning av viktiga meddelanden lättare kan<br />
garanteras. Kan säkerheten på ett framtida nät höjas, genom att t.ex en busguardian bevakar varje nod<br />
och stänger av en skenande dylik, samt den garanterade sändningstiden för viktiga meddelanden hålls<br />
låg, kan de både näten slås samman.<br />
4.2 Payloadbussen<br />
Syftet med satelliten är i allmänhet att bära en nyttolast. Lasten består ofta av diverse instrument<br />
och/eller sambandsutrustning. Payloadbussen erbjuder dessa typer av noder<br />
kommunikationsmöjligheter instrumenten emellan men framför allt med controllern, satellitens<br />
huvuddator. Då det i själva verket är nyttolasten som ställer de allt högre kraven på satellitens position
Intern realtidskommunikation i framtida Svenska satelliter sid 16<br />
Martin Normark<br />
och attityd, är det rimligt att anta att nyttolasten kräver tillgång till samma distribuerade globala tid<br />
med samma noggrannhet som systemenheterna d.v.s. 100 µs, gärna bättre. Vad beträffar determinism i<br />
kommunikationen ställs inte samma krav som på systemsidan. Ett flexibelt sätt att få tillgång till<br />
nätverket kan i själva verket vara att föredra. Ett av skälen är att vissa instrument t.ex. en kamera<br />
kanske bara ibland, typiskt när ett foto precis har tagits, vill ha tillgång till bussen och snabbt tömma<br />
sin minnesbuffert för att tillåta fler bilder att tas. Flexibiliteten kan lösas antingen genom att<br />
arbitrering avgör vilken nod som får sända vid vilket ögonblick, alternativt genom att tidsschemat kan<br />
byta mode såtillvida att olika noder får olika tillgång till nätet beroende av vilken huvudsaklig uppgift<br />
satelliten löser vid ett givet tillfälle eller genom att bandbredden är så pass stor att alla noder ständigt<br />
har tillgång till sin toppbelastning. Den senare av dessa lösningar kan av andra skäl, såsom EMC,<br />
effektförbrukning och störningskänslighet, dock vara mindre lämplig<br />
Bandbredden är svår att sia om då den är helt beroende av lasten, alla de intervjuade på rymdbolaget<br />
är dock överens om att en för liten bandbredd inte får tillåtas begränsa verksamheten. Då<br />
payloadbussen ofta utsätts för punktlaster kan det vara lämpligt att dimensionera efter dessa och en<br />
bandbredd uppemot 10 Mbps kan vara lämpligt även om 1Mbps räcker gott och väl för SMART-1 och<br />
för STEAM.<br />
4.3 Tidsstyrda respektive händelsestyrda nätverk och noder<br />
Även om trenden inom inbäddade system går mot mer och mer tidsstyrda noder, planeras systemet<br />
bestå av både tidsstyrda- och händelsestyrda noder. Därför bör nätverksprotokollet stödja såväl<br />
schemalagd- som spontan sändning av meddelanden. Nätverket skall distribuera global tid samt<br />
synkronisera noderna med en noggrannhet om minst 100 µs. Om ett nätverk med endast schemastyrd<br />
tilldelning till bussen ändå väljs, måste det ha tillräcklig bandbredd för att de noder som bara behöver<br />
sända ibland ändå tilldelas minst en tidslucka i varje TDMA-omgång. Dessutom kan dessa noder<br />
behöva ett gränssnitt mellan applikation och nätverk som säkerställer att applikationen använder sina<br />
egna tidsluckor även om applikationen i sig inte "känner till" att dessa finns, då applikationen är helt<br />
händelsstyrd.<br />
4.4 Testning och utveckling<br />
Vikt skall läggas vid att nätverksprotokollet redan tidigare är väl använt och spritt, då detta medger att<br />
kringutrustning och kunnig personal är lättare att få tag på.<br />
All trafik på en buss skall gå att avlyssna från en punkt i nätet, i syfte att möjliggöra testning och<br />
diagnostisering.<br />
4.5 Rymdens krav<br />
Att sateliten skall skickas upp i rymden ställer mycket höga krav på utrustningen. Inte bara förhåller<br />
det sig så att reparationer i praktiken är helt otänkbara för de flesta satelliter, rymdmiljön i sig är<br />
mycket krävande. Nedan tas de ur elektronikutvecklingshänseende besvärligaste aspekterna upp.<br />
4.5.1 Vakuum<br />
Elektronik påverkas av vakuum på sådant sätt att komponenter som i vanliga fall använt luft för<br />
kylning inte kan göra det. Detta kan leda till överhettning och det problemet löses lättast genom att<br />
använda energisnåla komponenter. Värmet kan även ledas till radiatorer där det strålas ut i rymden.<br />
Vakuum leder även till att många material, däribland många plaster, gasar ur. Det vill säga att det<br />
obefintliga omgivande trycket får materialet att sakta men säkert förgasas. Detta är givetvis inte<br />
önskvärt, utan material som klarar vakuum måste användas till isolering, kretskort,<br />
komponentinneslutningar m.m.<br />
4.5.2 Strålning<br />
Det finns, enligt Leif Granholm [19] på Rymdbolaget, många sorters strålning och de kan delas upp i<br />
Gamma- och partikelstrålning. Partikelstrålningen kan i sin tur delas upp i protonstrålning,<br />
elektronstrålning och tunga joner.<br />
Gammastrålningen, som består av högenergetiska fotoner, skapar bl.a. dislokationer i<br />
komponenternas kiselstrukturer, varför komponenterna degenererar vilket leder till ökade<br />
läckströmmar, minskade förstärkningar och allmänna defekter. Gammastrålningens intensitet kan<br />
minskas med blysköldar men det är knappast aktuellt inom rymdindustrin, med tanke på sköldarnas<br />
vikt.
Intern realtidskommunikation i framtida Svenska satelliter sid 17<br />
Martin Normark<br />
Protonstrålning orsakar inte bara samma skador som gammastrålning utan dess elektriska laddning<br />
kan dessutom leda till att databitar, d.v.s. logiska ettor resp. nollor, kan byta värde i såväl kablar,<br />
processorer som minnen. Detta fenomen kallas ibland för bit-flip. Ett centimetertjockt aluminiumhölje<br />
utgör dock ett gott skydd mot protonstrålning.<br />
Tunga joner är elektriskt laddade och har höga energier, ibland över 1GeV. De orsakar i stort sett<br />
samma skador som gammastrålning och protonstrålning, d.v.s. degenerering och bit-flips. De tunga<br />
jonerna är p.g.a. dess höga energier, i praktiken omöjliga att skärma av rent fysiskt.<br />
Uppladdning av dielektrikum förekommer också, detta orsakas av alla laddade partiklar och kan<br />
leda till elektriska överslag i och mellan kretsar.<br />
Även s.k. Latch-up kan förekomma, detta kan liknas vid en kortslutning i chipet som mycket<br />
snabbt leder till haveri i kretsen om inte strömmen bryts mycket snabbt. En strömåtgångsövervakare<br />
kan dock användas för att i förekommande fall bryta strömmen till den felande kretsen. Efter att<br />
strömmen brutits kan kretsen startas upp igen på normalt sätt.<br />
Stråldoser mäts i rad eller gray (100 rad = 1 gray) där gray är en SI-enhet [J/kg]. Strålningen<br />
varierar med avståndet till jordytan och generellt kan sägas att den ökar med höjden, då jordens<br />
magnetfält minskar. Men även andra faktorer spelar in, som t.ex. strålningsbälten runt jorden, solens<br />
aktivitet, dag- respektive nattsida av jorden m.m. Den närmast, i tiden, planerade svenska satelliten<br />
STEAM skall cirkla runt jorden i en cirkulär solsynkron bana, 700 km över jordytan i 4 år. STEAM<br />
beräknas då exponeras för en strålningsdos om högst 100 Gray. I sammanhanget kan nämnas att 4<br />
Gray betraktas som en dödlig dos för en människa.<br />
Då ett normalt mikrochip av kisel klarar en dos om cirka 20 Gray kan dessa inte nyttjas utan<br />
strålningståliga komponenter måste användas. Strålningståliga komponenter finns och de klarar<br />
strålning i olika klasser mellan 30 och 10.000 Gray. Komponenterna tillverkas dock i små serier och<br />
endast ett fåtal olika komponenter och kretsar ges ut i strålningstålig modell. Att ta fram en ny<br />
strålningstålig modell är mycket kostsamt, varför detta sällan sker. Detta leder till att till synes triviala<br />
komponentval kan bli relativt komplexa. Dock finns strålningsklassade FPGA:er på marknaden.<br />
FPGA:er är logiska programmerbara grindnätverk i vilka det är möjligt att programmera instruktioner,<br />
kod och information. Dessa kan sedan användas som mikrokontrollers. Storleken och hastigheten på<br />
dessa är dock begränsade. En rimlig storlek för en nätverkskontroller är, enligt Gunnar Andersson på<br />
Rymdbolaget, kring 100 000 grindar.<br />
Då det är svårt att skärma alla kablar mot protonstrålning och omöjligt att begränsa tungajonstrålningen<br />
är bit-flippar inte möjliga att undvika. I stället måste datorerna ombord vara<br />
programmerade för att upptäcka och rätta till skadad information.<br />
4.5.3 Rymdskrot<br />
I jordens närhet finns en mängd partiklar från dammkornsstorlek och uppåt. En del av dessa partiklar<br />
är rester av tidigare mänsklig rymdverksamhet. En satellit som ligger i STEAM´s bana rör sig med ca<br />
7 km/s, det är troligt att en partikel i dess närhet håller minst samma hastighet. Det innebär att<br />
hastighetsskillnaden mellan två kolliderande föremål med stor sannolikhet är flera tusen m/s, detta kan<br />
jämföras med en gevärskula vars hastighet, när den träffar målet, sällan överstiger 900 m/s. Att<br />
resultatet av en dylik träff är förödande inses lätt -minst det delsystem som direktträffas kan slås ut.<br />
Det finns i praktiken bara två sätt att minska risken för katastrofer av detta slag: Genom att undvika<br />
banor där mycket rymdskrot förekommer samt att bygga in redundans i systemet. Redundansen<br />
innebär ofta att varje delsystem finns duplicerat.<br />
4.6 Redundans och felhantering<br />
Med tanke på rymdens krav är i stort sett hela satelliten redundant. Det vill säga, att om en komponent<br />
(single point of failure) eller, i de flesta fall, ett delsystem faller bort av någon anledning, finns minst<br />
ett alternativt sätt att lösa den bortfallna komponentens uppgift. Detta gäller även nätverket, som<br />
därför alltid skall sända över två parallella, av varandra oberoende linjer. Controllern skall sedan, om<br />
så är fallet, sortera bort det felaktiga meddelandet.<br />
Protokollet skall ha funktioner för att finna och automatiskt rätta till enskilda fel som beror av sändfel<br />
eller störningar. Systemet skall vidare kunna identifiera samt stänga av och/eller möjligöra<br />
avstängning av en nod, en så kallad babbling idiot, som kontinuerligt skapar sändfel och på så sätt stör<br />
ut bussen.
Intern realtidskommunikation i framtida Svenska satelliter sid 18<br />
Martin Normark<br />
4.7 Elektriskt gränssnitt<br />
CAN-bussen i SMART-1[1] använder RS-485, ett standardiserat, differentierat elektriskt gränssnitt<br />
som erbjuder ca 10Mbit/s i överföringshastighet och förbrukar ca 0,3 W per nod. Ett snabbare och<br />
säkrare nät kan tillåtas förbruka något mer men effektuttag över 1 W bör undvikas. Vidare skall<br />
bussen vara tålig mot kortslutning och ESD och ej heller stråla ut för mycket EMC.<br />
4.8 Sammanfattning av krav<br />
Nedan sammanfattas de krav som redovisats i detta kapitel i fallande prioritetsordning.<br />
• Alla komponenter ingående i nätverket skall vara rymdklassade eller rymmas i en FPGA med<br />
högst 100 000 grindar.<br />
• Feldetektion samt felhantering skall vara minst lika bra som i CAN.<br />
• En babbling idiot, eller ”död nod” skall gå att identifiera och åtgärder vidtagas.<br />
• Bandbredden på systemsidan skall vara minst 1Mbps, gärna mer, med mindre än ca 50 %<br />
overhead,.<br />
• Bussen geografiska totala längd skall kunna uppgå till minst 5m.<br />
• Nätverken skall kunna distribuera global tid och kunna synkronisera noderna noggrannare än 100µs.<br />
• Nätverket skall stödja såväl tidsstyrda som händelsestyrda applikationer.<br />
• Nätverket skall kunna allokera bandbredd till den nod som anses behöva den mest, alternativt<br />
erbjuda samtliga noder toppbelastning vid varje tillfälle.<br />
• Hela nätverket skall vara redundant, såtillvida att all information ständigt sänds över två linor<br />
alternativt ha möjlighet att byta lina om det går ner.<br />
• All nätverkstrafik skall vara avlyssningsbar i en punkt.<br />
• Alla noder på respektive buss skall kunna sända meddelanden till varandra, om så krävs via en<br />
bussmaster<br />
• Nätverket skall vara väl spritt.<br />
• Payload bussen kan ha en bandbredd om 1Mbps men bör ha en bandbredd om minst 10 Mbps.<br />
Även här med ca 50 % overhead.<br />
• System- och payloadbuss kan, men måste inte vara separerade.<br />
Vidare skall stor vikt läggas vid att finna en robust lösning där tillförlitlighetstänkande dominerar.
NOD<br />
A<br />
Intern realtidskommunikation i framtida Svenska satelliter sid 19<br />
Martin Normark<br />
5 Kort beskrivning av befintliga nätverk som kan komma<br />
ifråga<br />
5.1 CAN<br />
Can används idag i satelliten SMART-1 [1] och utgör såväl payload- som systembuss. CAN som är<br />
utvecklat av BOSCH som ett inbäddat nätverk för bilar, sprids nu mycket snabbt även bland<br />
användare utanför bilindustrin. Anledningarna till dess stora användning är dess robusthet, felsäkerhet<br />
och enkelhet. CAN-controllers finns numera inbyggda i många av de microcontrollers som säljs på<br />
marknaden, varför dessa kan kopplas ihop till ett nätverk utan alltför stort besvär. CAN implementerar<br />
OSI-modellens lager 1-2 och passar bra för korta frekventa kontrollmeddelanden.<br />
5.1.1 Protokoll<br />
CAN är [3] ett distribuerat nätverk, d.v.s. alla noder ingående i nätverket hör vad alla andra noder<br />
sänder.<br />
NOD<br />
B<br />
Figur 5.1 CAN´s topologi<br />
NOD<br />
C<br />
NOD<br />
D<br />
All information sänds i paketform, paketen kallas meddelanden. Meddelandet har ingen explicit adress<br />
utan snarare en ID-kod som beskriver dess innehåll. De noder som är programmerade att läsa en viss<br />
typ av meddelanden gör det, de andra låter bli. En nod kan både lyssna på och sända iväg flera olika<br />
meddelandetyper. ID-koden som är 11 (CAN 2.0A) eller 29 bitar (CAN 2.0B) beskriver även<br />
meddelandets prioritet om flera noder önskar sända samtidigt. Då sker en så kallad arbitrering där<br />
meddelandet med högst prioritet får sända först. Av den anledningen kallas den del av meddelandet<br />
som innehåller ID-koden för arbitreringsfält. Efter arbitreringsfältet följer ett kontrollfält som anger<br />
meddelandets typ och längd, följt av ett datafält. Datafältet innehåller 0-8 bytes data. Efter datafältet<br />
följer en 15 bitars CRC-checksumma som används för feldetektering. Sist kommer en lucka som heter<br />
ACK-slot, i den meddelar de noder som uppfattat -och inte hittat något fel på- meddelandet, detta.<br />
Med andra ord räcker det med att en nod uppfattar meddelandet för att sändarnoden skall uppfatta<br />
meddelandet som uppfattat av alla. Det finns dock ingen garanti för att den tilltänkta noden verkligen<br />
uppfattat meddelandet.<br />
Figur 5.2 Meddelandepaketets utseende för CAN<br />
Vilken nod som helst kan, om den uppfattar något fel, avbryta pågående sändning varvid sändande<br />
nod avbryter och automatiskt sänder om. Om ingen nod uppfattar meddelandet sänds det också om.<br />
CAN HI<br />
CAN LOW
Intern realtidskommunikation i framtida Svenska satelliter sid 20<br />
Martin Normark<br />
Arbitreringen ställer krav på samtidighet bland noderna, därför är den högsta tillåtna hastigheten<br />
1 Mbps och då måste bussens sammanlagda längd understiga 40 m. Med ökande fysisk längd, på<br />
bussen, minskar den högsta möjliga hastigheten.<br />
CAN har inget inbyggt stöd för tidsscheman eller synkronisering av noder, det finns heller ingen<br />
inbyggd funktion för att identifiera, och tysta, en så kallad babbling idiot.<br />
5.1.2 Elektriskt interface<br />
ISO 11898, 5 V differentierad tvinnat par terminerad med två 120 ohms motstånd i vardera änden,<br />
rekommenderas av CAN-standarden. RS-485 eller motsvarande går också att använda.<br />
5.2 USB<br />
USB 2.0 har på kort tid blivit mycket populär inom hemdatorindustrin, detta framför allt på grund av<br />
dess stora spridning bland kringkomponenter, dess höga bandbredd samt att den är mycket enkel att<br />
använda för slutanvändaren. USB 2.0 [4] synkroniserar alla noder varje 1 ms (125 µs för USB High<br />
Speed) men är detta till trots inte lämpad för schemastyrda realtidsapplikationer. Dock kan USB 2.0<br />
tänkas vara ett bra alternativ på payloadsidan då det får betraktas som mycket flexibelt och erbjuder<br />
hög bandbredd.<br />
5.2.1 Protokoll<br />
USB [4] kan beskrivas som en pyramid-hierarki med stjärnnät, där en master i toppen pollar upp till<br />
127 noder anslutna till högst 7 hubbar. Varje nivå i pyramiden ytgörs av minst en hub, men flera<br />
hubbar kan ligga på samma nivå.<br />
Figur 5.3 Topologin hos USB<br />
Protokollet stödjer in- och urkoppling av noder och hubbar utan att nätverket behöver stängas ned.<br />
Det finns tre hastighetsstandarder:<br />
- USB Low Speed: 1,5 Mbps<br />
- USB Full Speed: 12 Mbps, vanligt i PC<br />
- USB High Speed: 480 Mbps
Intern realtidskommunikation i framtida Svenska satelliter sid 21<br />
Martin Normark<br />
Feldetektering erbjuds med hjälp av CRC för både controll- och datafält, enligt tillverkaren skall<br />
CRC:n upptäcka 100% av alla enkel- eller dubbelbitsfel. Då ett fel upptäcks erbjuder standarden<br />
automatisk omsändning och/eller rapport om fel.<br />
Det finns fyra dataflödestyper:<br />
- Control Transfers: Används då en ny nod kopplas in eller då nätet startas upp. En applikation<br />
kan tillåtas välja att använda Control Transfers till ytterligare inställningar även efter att den<br />
blivit inkopplad.<br />
- Bulk Transfers: Överföring av en större mängd data t.ex. en bild eller motsvarande. Bulk<br />
Transfer använder automatisk feldetektion. Hur stor del av den totala bandbredden som används<br />
regleras automatiskt med hänsyn till annan trafik på bussen d.v.s. ej allokerad bandbredd tilldelas<br />
Bulk transfers. 8, 16, 32 eller 64 bytes kan sändas per paket.<br />
- Interupt Transfers: Litet meddelande som kan skjutas in när som helst av vem som helst med<br />
en garanterad högsta fördröjning. Max 64 bytes (1024 bytes för USB High Speed) kan överföras<br />
i en transfer.<br />
- Isochronous Transfers: Kontinuerlig realtidssändning t.ex. audio eller video. Helt utan<br />
feldetektering och felkorrigering. Högst 90% av bandbredden kan allokeras för Interupt- och<br />
Isochronous Transfers.<br />
När ett device eller en function (USB-termer för nod) ansluts till nätet upprättas en pipe, en virtuell<br />
ledning mellan host och device. En device kan kopplas in när som helst, även då andra sändningar<br />
pågår på bussen. Det finns två sorters pipes:<br />
- Streampipe, ett flöde av paket, på vilka det inte ställs några krav att följa några USBstrukturregler,<br />
till en eller flera mottagare som inte kommer att synkroniseras. Streampipe<br />
används av Bulk-, Interupt- och Isochronous Transfers.<br />
- Message pipe, är mer uppstyrd till sin natur och kommunicerar på följande sätt: Applikationens<br />
mjukvara, på mastersidan, skickar ett IRP (I/O Request Packet). Detta följs av dataöverföring i<br />
önskad riktning, för att slutligen avslutas med ett statusmeddelande. Message pipen används för<br />
Control transfers.<br />
Bussens tid delas sedan upp i 1ms långa timeframes (125 µs i USB High Speed). I varje timeframe<br />
kan flera olika transfers sändas. 10% (20 % i USB High Speed) av bandbredden i varje timeframe<br />
reserveras för Control transfers, denna andel minskas dock om behovet minskas och ökas om<br />
utrymmet på bussen tillåter detta. Maximalt antal controlltransfers, innehållande 8 bytes, som kan<br />
sändas inom en timeframe är 28 (32 st 64 bytes för USB High Speed). USB-protokollet är inte<br />
deterministiskt i det avseendet att antalet transfers av olika slag alltid kan förutsägas<br />
5.2.2 Elektriskt gränssnitt<br />
USB använder differentierade skärmade tvinnade kablar terminerade av ett 45Ω motstånd.<br />
Fördröjningen i kabeln får ej uppgå till mer än 26 ns och den differentierade spänningen över<br />
termineringsmotståndet skall vara +/- 400 mV.<br />
5.3 Spacewire<br />
Spacewire är en blivande standard som tas fram av ECSS (European Cooperation for Space<br />
Standardization) [5] som i sin tur opererar under ESA (European Space Agency). Standarden är så<br />
gott som helt fastställd, utkast 3 håller i skrivande stund på att korrekturläsas. Standarden<br />
implementerar skikt 1-2 i OSI-modellen. Redan idag finns rymdkvalificerade noder, "SMCS332" eller<br />
"SMCS lite", implementerade i kameror, massminnen och DSP-kort. Vissa av dessa är operativa i<br />
missioner idag. Även rymdkvalificerade routrar, liksom tranceiver-receiver-par med kabel finns att<br />
köpa idag.<br />
Spacewire är en full-duplex, seriell, punkt-till-punkt datalänk. Om routrar används bildar Spacewire<br />
ett nätverk. Spacewire erbjuder dataöverföringshastigheter mellan 2-400 Mbps.
Intern realtidskommunikation i framtida Svenska satelliter sid 22<br />
Martin Normark<br />
Figur 5.4 Nätverkstopologin hos Spacewire<br />
Spacewire erbjuder synkronisering av noderna med en noggrannhet av ca 10 µs vid 100 Mbps. Dock<br />
stöder standarden i sig ingen tidsschedulering. Spacewire skulle kunna ersätta payloadbussen, om<br />
tidsschedulering läggs till kan ett spacewirenätverk ersätta såväl system- som payloadbuss.<br />
5.3.1 Protokoll<br />
Definierat i protokollet finns två teckentyper:<br />
- Datatecken, består av totalt tio bitar, varav en paritetsbit, en data-kontroll-flagg och åtta<br />
databitar. Paritetsbiten ser till att antalet ettor alltid är udda och data-kontroll-flaggen indikerar<br />
huruvida tecknet är ett datatecken eller ett Kontrolltecken.<br />
- Kontrolltecken, består av fyra bitar. En paritetsbit, en data-kontroll-flaggsbit och två<br />
värdetecken. De fyra kombinationerna blir då: FCT (Flow Control Token), EOP (normal End Of<br />
Packet), EEP (Error End of Packet) samt ESC (Escape). Escape kan sedan byggas på i syfte att<br />
skapa tecknet NULL (totalt 8 bitar) som används för handskakning eller Time-Code-tecken<br />
(totalt 14 bitar) som används för synkronisering av noderna i nätet.<br />
Spacewire använder paketstrukturer som består av tre delar:<br />
= där adressen kan delas upp i följande:<br />
= … <br />
Paketet innehåller ingen CRC. Vilket innebär att dubbla bitfel i ett datatecken eller kontrolltecken inte<br />
nödvändigtvis upptäcks. Paketen kan enligt tillverkaren ganska enkelt göras om till TCP/IP.<br />
Spacewire-nätverket byggs upp av minst två noder, noll eller flera routrar samt länkar mellan dessa.<br />
Ett nätverk utan router använder inte adressdelen i meddelandepaketet, då det endast existerar en<br />
mottagare. Adresseringen i ett routat nätverk är dock tämligen enkel till sin natur; deladresserna består<br />
helt enkelt av ett heltal som talar om genom vilken utgång respektive router skall skicka vidare<br />
meddelandet.<br />
Då ett paket skall sändas genomförs en handskakning mellan noderna, följt av sändning av paketet,<br />
efter paketslut skickas ett statusmeddelande tillbaka. För att mottagarnoden inte skall drabbas av<br />
överfull minnesbuffert meddelar mottagaren sändaren då denne är redo att ta emot ytterligare åtta<br />
byte. Skulle förbindelsen brytas eller störas under en sändning upptäcks detta varvid meddelandet<br />
termineras och en ny handskakning, anpassad för återupprättande av förbindelse, inleds och<br />
meddelandet sänds om.<br />
På ett tämligen enkelt sätt skapas redundans genom att lägga upp parallella routrar, som möjliggör<br />
flera vägar för meddelandet. Meddelandet kan då skickas genom en eller flera ledningar samtidigt för<br />
att sedan jämföras, mjukvarumässigt, när det kommer fram.
Intern realtidskommunikation i framtida Svenska satelliter sid 23<br />
Martin Normark<br />
Tidssynkronisering stöds av protokollet. Vid varje "tidstick" sänds en 6-bitars tidskod ut, denna kod<br />
kan ses som systemtidens lägst signifikanta bitar. Vid varje tick räknas värdet upp med ett (modulo<br />
64). Tidsmeddelandet har förtur gentemot andra meddelanden i nätet, dock måste tidsmeddelandet<br />
vänta på att ett eventuellt tecken som håller på att sändas skall sändas klart, samt självt sändas klart.<br />
Detta upprepas sedan genom varje routerlager. Tillverkaren anser inte att en användare skall räkna<br />
med att få en större noggrannhet än 10 µs.<br />
Tidsschedulering stöds ej av Spacewire-protokollet.<br />
5.3.2 Elektriskt gränssnitt<br />
Det elektriska gränssnittet utgörs av Low Voltage Differential Signalling (LVDS ANSI/TIA/EIA-<br />
644). Kabeln har fyra tvinnade par, totalt 8 trådar. Detta för att full duplex skall uppnås. LVDS<br />
använder spänningsnivåer på 350 mV, vilket erbjuder en hastighet upp till 400 Mbps i upp till 10 m<br />
långa kablar. Varje tranceiver-receiver-par förbrukar 50mW. LVDS är ESA-godkänd beträffande<br />
EMC,ESD,EMI.<br />
Även RS-422 eller RS-485 kan användas, men erbjuder då endast 10 Mbps.<br />
5.4 TTP/C<br />
TTP/C står för Time Triggered Protokoll och tros [20] bli/vara en av kombattanterna som konkurrerar<br />
om att bli nästa de facto standard inom området "mycket säkra inbäddade nätverk". Denna typ av<br />
nätverk planeras att inom bl.a. bil och flygindustrin användas som s.k. Steer-By-Wire protokoll.<br />
TTP/C är operativt sedan 1998 och har nyligen kommit ut i en andra version. TTP/C [7] stödjer<br />
sändning med bithastigheterna 5 respektive 25 Mbps och reglerar skikt 2 i OSI-modellen. Nätverket<br />
stöds av ett flertal stora företag såsom: Airbus, Wolksvagen, Audi med flera. TTP/C är ett tänkbart<br />
alternativ som systembuss men skulle även kunna användas som payloadbuss.<br />
5.4.1 Protokoll<br />
TTP/C implementerar OSI modellens skikt 2-3. Detta sker medelst sammankopplade noder i ett<br />
broadcastat redundant nätverk. Nätverket är redundant såtillvida att varje nod sänder, respektive tar<br />
emot över två, av varandra oberoende, parallella fysiska nätverk, den emottagna informationen<br />
jämförs sedan i syfte att upptäcka eventuella fel. Olika information kan också sändas i syfte att öka<br />
bandbredden, denna information blir dock inte redundant. En annan mycket viktig aspekt inom<br />
säkerhetstänkandet är vad som händer då en komponent slås ut av olika skäl. I TTP/C garanteras<br />
nätverkets fortlevnad, oavsett vilket enskilt hårdvarufel som inträffar. Detta löses bl.a. genom dubbla<br />
sändningskanaler, multipla klockor, membership service, skuggnoder som kan ta över om en viktig<br />
nod faller ifrån. TTP/C-noderna kan kopplas ihop till en buss eller med hjälp av en stjärnkopplare<br />
kopplas ihop till stjärnnät eller kombinationer av dessa.
Intern realtidskommunikation i framtida Svenska satelliter sid 24<br />
Martin Normark<br />
Figur 5.5 Möjliga topologier hos TTP/C<br />
Ett tidsschema, vid namn TDMA (Time-Division Multiple Acces), reglerar vilken nod som sänder<br />
när, vilket innebär att inga krockar sker på nätet utan detsamma kan användas effektivt. Detta<br />
kontrolleras även av en busguardian som har möjlighet att tysta ned en nod som försöker sända då den<br />
inte skall göra det. En annan följd av tidsschemat är att användaren redan i förväg känner till, och kan<br />
bestämma, när meddelandet sänds, hur lång tid det kommer att ta och med vilken fördröjning det<br />
kommer att ske. Detta är givetvis en stor fördel vid reglersystemdesign. Minst fyra av varandra<br />
oberoende klockor finns utspridda bland noderna och definierar tillsammans nätverkets tid, som<br />
synkroniseras mellan noderna i storleksordningen 1 µs.<br />
Membership service är en funktion där varje nod en gång under varje TDMA-runda,<br />
storleksordningen 1-10ms, med hjälp av en Membership vector informeras om alla andra noders<br />
status. Med hjälp av detta kan därför åtgärder, t.ex. att systemet går in i felsäkert läge eller att en<br />
skuggnod tar över den trasiges plats, vidtas inom högst 2-3 TDMA-rundor från det att en nod fallit<br />
ifrån.<br />
Sänd- och mottagningsfel upptäcks inom en TDMA-runda av alla noder eftersom den sändande noden<br />
inte kommer att ingå i membership vektorn. Applikationen kan då omedelbart avgöra vilken åtgärd<br />
som vidtas. All applikationsdata och alla kontrolldata sänds i paketform. Applikationspaketen kan<br />
innehålla 0-239 bytes data och kontrollpaketens storlek varierar med uppgiften.<br />
5.4.2 Elektriskt gränssnitt<br />
Det elektriska gränssnittet regleras inte av TTP/C [7] standarden men för asynkron sändning<br />
rekommenderas ISO-11898 (samma som CAN-standarden förordar) för hastigheter 1-2 Mbps och RS-<br />
485 för hastigheter upp till 5Mbps.<br />
TTP/C stöder även synkron sändning över 100 Mbit/s Ethernet (IEEE 802.3) medium.<br />
Maxhastigheten är då 25 Mbps.<br />
5.5 TTCAN<br />
TTCAN [9] är en utveckling av CAN 2.0, där ett logiskt lager lagts ovanför den fortfarande orörda<br />
CAN-standarden. Tilläggen syftar till att göra CAN mer deterministiskt genom att tidsschemastyra<br />
alla sändningar samt synkronisera noderna. TTCAN får trots sitt tidsschema betraktas som tämligen<br />
flexibelt då tidsluckor kan läggas in där alla CAN-noder kan arbitrera på samma sätt som i CAN 2.0.<br />
TTCAN är i skrivande stund i princip färdigutvecklat och provkretsar finns att tillgå. Spridningen är<br />
ännu inte särskilt stor men mycket av den testutrustning som finns för CAN 2.0 fungerar även för
Intern realtidskommunikation i framtida Svenska satelliter sid 25<br />
Martin Normark<br />
TTCAN. TTCAN´s svaghet ligger i dess något låga bandbredd (1 Mbps) samt dess bristande förmåga<br />
att identifiera och tysta ned en babbling idiot. TTCAN kan tänkas användas där CAN används idag,<br />
d.v.s. som systembuss och ev. som payloadbuss.<br />
5.5.1 Protokoll<br />
Utöver att erbjuda allting (med vissa undantag, som omsändning av felaktiga meddelanden) som CAN<br />
2.0 erbjuder, delar TTCAN [8] in tiden i cykler, som kallas basic cycle. I varje cykel finns av<br />
användaren fördefinierade separerade tidsfönster. Verksamheten inom varje tidsfönster är reglerad av<br />
användaren under utvecklingen av nätverket. Möjliga verksamheter inom ett tidsfönster är exklusiv<br />
sändning från en viss nod, arbitrering mellan alla noder, eller ett tomt fönster där ingen nod är tillåten<br />
att sända. Syftet med tomma fönster är att kunna reservera bandbredd till kommande applikationer.<br />
Flera ”basic cycles” av samma längd, men innehållande olika långa- med olika typer av tidsfönster,<br />
kan läggas efter varandra. Dessa bildar då en systemmatris.<br />
Alla noder inom nätverket är programmerade med systemmatrisen, vilket innebär att de vet när de<br />
skall sända respektive kan tänkas få ett meddelande.<br />
För att tidsscheduleringen skall fungera korrekt måste noderna synkroniseras noggrant.<br />
Synkroniseringen sker kring en tidsmasternod som backas upp av en eller flera redundanta noder som<br />
omedelbart tar över om mastern faller ifrån. Början av varje basic cycle definieras av att tidsmastern<br />
skickar ett tidsreferensmeddelande.<br />
Figur 5.6 Synkronisering av nod<br />
Varje nod är försedd med en klocka som anger lokal tid (local Time). Vid varje mottaget eller sänt<br />
meddelandes synkroniseringsbit sparas automatiskt värdet på den lokala tiden undan i ett register som<br />
heter Sync_Mark (se fig 5.6 ovan). Om meddelandet visar sig vara ett giltigt tidsreferensmeddelande<br />
sparas värdet i Sync_Mark undan till ett register vid namn Ref_Mark. En variabel vid namn Cycle<br />
Time (Cycle Time=Local Time-Ref_Mark) visar sedan hur lång tid som, vid ett givet tillfälle, förflutit<br />
i den aktuella cykeln. Noden jämför sedan värdet i Cycle Time mot systemmatrisen i syfte att se vad<br />
den förväntas vidta för åtgärder.<br />
TTCAN kan också distribuera en global tid. Mastern skickar då ett meddelande vid namn<br />
Master_Ref_Mark, som är en kopia av tidsmasterns lokala tid då Ref_Mark skickades. I den enskilda<br />
noden jämförs sedan (se fig 5.7 nedan) nodens egna Ref_Mark med Master_Ref_Mark varefter felet<br />
(Local_Offset) läggs till/dras ifrån den lokala tiden, vilken sedan kommer att visa samma tid som<br />
tidsmastern.
Intern realtidskommunikation i framtida Svenska satelliter sid 26<br />
Martin Normark<br />
Figur 5.7 Synkronisering av global tid<br />
Dessvärre gäller detta endast för synkroniseringsögonblicket. Då klockor i allmänhet alltid går olika<br />
fort, kommer synkroniseringen att bli felaktig med en okänd tidsdifferans intill nästa<br />
Tidsreferensmeddelande. Detta löser dock TTCAN medelst en driftkompensation.<br />
Kompensationskoefficienten (Time Unit Ratio) skapas (se fig 5.8) genom att differensen mellan den<br />
aktuella och den tidigare Master_Ref_Mark divideras med differensen mellan den aktuella och den<br />
tidigare Ref_Mark. Genom att ta den lokala klockans hastighet multiplicerat med<br />
kompensationskoefficienten erhålles en klockhastighet som väl överensstämmer med tidsmasterns.<br />
Figur 5.8 Klockdriftskompensation i TTCAN<br />
Om kompensationskoefficienten varierar kraftigt är detta ett tecken på att den lokala klockan är<br />
mycket ostadig, varför controllern flaggar upp detta för datorn som styr densamme. För att tidschemat<br />
skall hålla tillåts ingen omsändning av skadade eller felaktiga meddelanden, denna funktion är därför<br />
avstängd i TTCAN. Dock flaggas även detta fel upp för datorn som själv får vidta åtgärder.
Intern realtidskommunikation i framtida Svenska satelliter sid 27<br />
Martin Normark<br />
5.5.2 Elektriskt gränssnitt<br />
TTCAN använder samma elektriska gränssnitt som CAN 2.0 d.v.s. ISO 11898 eller RS 485.<br />
5.6 FlexRay<br />
Även FlexRay gör anspråk på att bli den nya de facto standarden inom området "mycket säkra<br />
nätverk" [20]. Många nätverksprotokoll, t.ex. TTP/C, tar hjälp av determinism, som ett sätt att<br />
undvika krockar och detektera felaktigheter, i syfte att nå upp till önskad säkerhetsnivå. Även FlexRay<br />
[10], som ännu inte är färdigutvecklat, avser göra detta till viss del men har även ambitionen att<br />
tillföra en rejäl dos flexibilitet. En flexibilitet som är hett efterlängtad av vissa användare, medan<br />
andra hävdar att säkerhet och flexibilitet inte kan kombineras och att säkerheten alltid måste sättas<br />
först. Skulle FlexRay lyckas, vilket på intet sätt får anses orealistiskt, nå upp till nödvändig säkerhet<br />
utan att för den skull bli för krånglig, kan flexibiliteten bli den avgörande faktorn som gör att FlexRay<br />
tar hem vinsten i striden om en framtida de facto standard, åtminstone i bilindustrin.<br />
Konsortiet FlexRay har många stora medlemmar t.ex. BMW, DaimlerChrysler, BOSCH och General<br />
Motors för att nämna några.<br />
Tillverkarna räknar med att nätverket skall finnas tillgängligt på marknaden i slutet av 2004 och att<br />
den första serietillverkade bilen som innehåller FlexRay skall säljas 2006.<br />
FlexRay skulle i en framtid mycket väl kunna agera som en sammanslagen payload- och systembuss i<br />
nästa generation av satelliter. Ett problem vid utvärdering av FlexRay är att tillverkarna är tämligen<br />
tystlåtna och inte gärna delar med sig av algoritmer och metoder som används i protokollet.<br />
- Lager i OSI-modellen: FlexRay definierar lager 1-3 i OSI-modellen<br />
-Topologi: Tre topologier stöds, nämligen passiv buss, passivt stjärnnät samt aktivt stjärnnät med eller<br />
utan passiv buss. FlexRay stödjer dessutom samtidig sändning över en parallell redundant buss eller<br />
ett stjärnnät. Nätverket kan konfigureras för att innehålla endast statiska meddelanden, endast<br />
dynamiska meddelanden eller en godtycklig blandning av de båda typerna.<br />
-Paketutseende: Det finns två pakettyper, dels FlexRay Frame Format som används för såväl statiska<br />
som dynamiska meddelanden och dels Byteflight Frame Format som endast används för dynamiska<br />
meddelanden och då krävs dessutom att nätverket är konfigurerat för endast dynamiska meddelanden.<br />
FlexRay-paketet (se fig 5.9) innehåller en header om 5 bytes, som beskriver bl.a. identiteten och<br />
storleken på paketet. Identiteten beskiver även paketets prioritet då det sänds. Därefter följer 0-246<br />
bytes data som är skyddat av 24 bitars CRC. Det är även möjligt att använda de två första byten i<br />
datafältet som ytterligare ett ID-fält men i det här fallet mer av formen meddelande-ID.<br />
Figur 5.9 FlexRays meddelandepaket<br />
Byteflight-paketet (se fig 5.10), som finns med för att skapa bakåtkompabilitet med just det BMWägda<br />
nätverket Byteflight, är något enklare till sitt utförande och innehåller i princip bara ett 8-bitars<br />
ID-fält, ett 0-12 bytes datafält samt en 15-bitars CRC.<br />
Figur 5.10 Byteflight´s meddelandepaket
Intern realtidskommunikation i framtida Svenska satelliter sid 28<br />
Martin Normark<br />
-Klocksynkronisering och schedulering av meddelanden: Metoderna för synkroniseringen går<br />
tillverkarna inte särskilt djupt in på, i den senaste specifikationen. Dock dikteras ett antal krav,<br />
däribland att synkroniseringen av den globala tiden mellan noderna skall vara minst 1µs. Vidare skall<br />
nätverket vara feltolerant såtillvida att den/de noder som distribuerar tiden skall kunna haverera utan<br />
att nätverkets trafik eller synkronisering gör det. Synkroniseringsmeddelandet är ett vanligt FlexRaypaket<br />
där SYNC-biten sätts till 1. Synkroniseringen i den dynamiska delen skall följa rutinerna för<br />
Byteflight. Så mycket mer är svårt att få fram, om såväl FlexRay´s som Byteflight´s dynamiska delar,<br />
i nuläget.<br />
-Arbitrering: Den statiska delen använder en TDMA för att avgöra vilken nod som skall sända när,<br />
noderna kontrolleras av en bus-guardian. Den dynamiska delen är ännu något höljd i dunkel, men<br />
skall garantera en högsta fördröjning för vissa meddelanden och även använda sig av en<br />
prioriteringsordning mellan meddelandetyperna.<br />
-Feldetektering och felhantering: FlexRay-paketet har ett tämligen kraftfullt CRC-skydd, bestående<br />
av 9+24 bitar. Andra typer av feldetekteringar som planeras är på media-, bit-, topology-,<br />
synkroniserings- och tidsnivå. Vidare skall en FlexRaycontroller genast meddela mikrocontrollern<br />
som styr noden om ett meddelande inte sänts, eller mottagits korrekt.<br />
-Elektriskt gränssnitt: Det fysiska gränssnittet är inte helt definierat ännu, men skall stödja såväl<br />
elektriskt som optiskt media. Vidare får nätverkscontroller, med tillbehör, inte dra mer ström än 60mA<br />
vid kontinuerlig användning.<br />
5.7 MOST<br />
MOST (Media Oriented Systems Transport) [12] är ett nätverk främst framtaget för överföring av<br />
digitala media såsom audio och video. Samtidigt skall nätverket även transportera<br />
kontrollmeddelanden mellan dessa digitala enheter som kan bestå av datorer, video, DVD, CD,<br />
mobiltelefoner och displayer i ett fordon eller hem. MOST kan maximalt överföra 24.8 Mbps<br />
(tillräckligt för 15 st stereoöverföringar av CD-kvalitet), varav 700 kbps är dedikerat till<br />
kontrollmeddelanden. MOST är framtaget för att använda optisk fiber som medium men koaxialkabel<br />
eller twisted pair går också att använda. MOST får i första hand betraktas som ett alternativ till<br />
payloadbuss men kan tänkas ersätta även dagens systembuss tack vare förmågan att överföra<br />
kontrollmeddelanden. Mer information om MOST finns på deras hemsida: http://www.mostnet.de/<br />
eller http://www.mostcooperation.com<br />
5.7.1 Protokoll<br />
MOST implementerar alla lager i OSI-modellen men en applikationsutvecklare kan själv välja på<br />
vilken nivå gränssnittet mot den egna applikationen skall ligga. Endast nivå 1-3 kommer att beskrivas<br />
här.<br />
Nätverket styrs av en master som delar upp tiden i block. Blocken håller en frekvens motsvarande<br />
samplingshastigheten på en audio-CD, nämligen 44.1 kHz (kan dock ställas in mellan 30-50 kHz).<br />
Dessa block delas sedan upp i 16 MOST-paket (frames) om vardera 64 bytes. Detta paket är i sig<br />
uppdelat i en administrativ del om 2 bytes, en datadel om 60 bytes samt en kontrolldel om 2 bytes.<br />
Datadelen består dels av synkron data och dels av asynkron data, proportionerna dessemellan (kan)<br />
ändras efter hand. MOST-paketet i sig skyddas endast av en paritetsbit.<br />
De administrativa byten används för synkronisering av noder, bestämning av proportionerna mellan<br />
asynkron- och synkron data samt distribution av TDM; tidsschemat som bestämmer när respektive<br />
nod skall sända.<br />
De två kontrollbyten från varje MOST-paket bildar, tillsammans inom ett block, ett 16*2 bytes stort<br />
kontrollpaket. Kontrollpaketet innehåller bl.a. arbitrering, avsändar- samt mottagaradress, CRC samt<br />
17 bytes data. Vid sänd eller mottagarfel meddelas applikationen.<br />
Den synkrona delen är till för att i en jämn ström skicka över data från t.ex. en CD-spelare till en<br />
högtalare eller en förstärkare och är inte skyddat på något sätt, är ett paket skadat accepteras det felet<br />
och lyssnaren märker antagligen inget ändå. Det skickas typiskt 44 100 samples per sekund och nod<br />
eller färre.<br />
De asynkrona delarna bildar paket på ett sätt som liknar kontrollpaketens, datamängden varierar dock<br />
mellan 24 och 1014 bytes. De asynkrona paketen har samma CRC-skydd och adressering som<br />
kontrollpaketen. De asynkrona paketen är tänkta att snabbt kunna transportera datamängder som inte<br />
sänds kontinuerligt t.ex. datafiler eller bilder från en kamera eller motsvarande. Den faktiska databandbredden<br />
för asynkron sändning ligger, beroende på inställningar och data paketstorlek, mellan 1-<br />
11,8 Mbps.
Intern realtidskommunikation i framtida Svenska satelliter sid 29<br />
Martin Normark<br />
Då dessa paket sätts samman av hårdvaran i MOST-controllern är det svårt om inte omöjligt att<br />
förutse exakt när ett meddelande sänds och i vilka MOST-paket det kommer att delas upp i. Vid hög<br />
nätbelastning är det dessutom svårt att garantera sändning av prioriterade meddelanden inom en viss<br />
tidsram.<br />
Figur 5.11 Diverse noder i MOST-ring<br />
Nätverket kopplas i en ring, eller två ringar om redundans önskas, där alla medlemmar känner till sin<br />
egen fördröjning i förhållande till mastern. På så sätt kan noderna synkroniseras. Om en nod havererar<br />
går oftast tranceivern in i bypassmode vilket innebär att informationen bara passerar den trasiga<br />
noden. Skulle den dock misslyckas med detta kommer informationen att stanna vid den trasiga noden<br />
och nätverket är trasigt. Dock kan en controller som tidigare varit slav gå in som master på den<br />
eventuella del som saknar master då nätet gått sönder, varvid nätet eller de olika nätdelarna kan<br />
fortsätta leva.<br />
5.7.2 Elektriskt gränssnitt<br />
MOST är ursprungligen designat för att använda POF (Plastic Optical Fiber) [11] med rött laserljus,<br />
men även koaxialkabel eller twisted pair kan användas.
Intern realtidskommunikation i framtida Svenska satelliter sid 30<br />
Martin Normark
Intern realtidskommunikation i framtida Svenska satelliter sid 31<br />
Martin Normark<br />
6 Val av nätverk<br />
Med hjälp av en grafisk bedömningsmall (Appendix E), konsultation av Håkan Sivencrona [20]på<br />
Sveriges Provnings- och Forskningsinstitut och dialog med Gunnar Andersson [18] på Rymdbolaget<br />
väljs här ett nätverk ut för vidare tester.<br />
6.1 Bedömningsmall<br />
I syfte att skapa en överblick skapas en grafisk bedömningsmall där de viktigaste<br />
kraven/egenskaperna hos nätverken sammanställs (se Appendix E). I fälten för egenskaperna har<br />
tillgänglig information lagts in. Dock är vissa fält tomma, detta beror på att informationen med en<br />
rimlig arbetsinsats inte gått att finna. Vissa fält är färgkodade, detta för att enkelt påvisa huruvida<br />
egenskaperna klarar av de krav som ställs på nätverket. Ett grönt fällt skall tolkas som att nätverket<br />
klart klarar det aktuella kravet och ett rött som att nätverket alls icke klarar tidigare ställda krav. Ett<br />
gult fält innebär att kravet i fråga inte uppfylls men att det går att gå runt problemet eller genom<br />
tillägg lösa detsamma.<br />
6.2 Gallring av nätverk<br />
Följande nätverk kommer av nedanstående skäl inte i fråga som controllnätverk i kommande svenska<br />
satelliter:<br />
MOST: Av bedömningsmallen syns tydligt att MOST inte är lämpligt för Rymdbolagets ändamål,<br />
vilket inte är så konstigt då det ursprungligen är tänkt att operera som transportör av media och inte<br />
som kontrollnätverk i känsliga och dyrbara system.<br />
USB lämpar sig heller inte särskilt bra för ett nätverk till ett distribuerat styrsystem, då det är toppstyrt<br />
snarare än distribuerat. Dessutom är det svårt att avlyssna all trafik på ett enkelt sätt för en utvecklare.<br />
Programvara och drivrutiner bedöms ta stor plats i varje nod och i huvuddatorn. Dock tycks USB vara<br />
ett bra alternativ till Payloadbussen i de fall mycket data skall flyttas från ett ställe till ett annat.<br />
Särskilt som det har en mycket stor spridning och många tillämpningar kommersiellt.<br />
Spacewire: Är fortfarande endast i sin linda med begränsad uppbackning från stora kommersiella<br />
användare/utvecklare. Spacewire definierar endast en tämligen låg nivå av kommunikationen, vilket<br />
innebär att en stor del av utvecklingen kvarstår för användaren. Spacewire är i grunden till för<br />
kommunikation mellan endast två punkter och där kan det i framtiden lämpa sig mycket väl för<br />
Rymdbolaget då kretsarna redan finns för rymdbruk och även är integrerade i vissa komponenter<br />
såsom kameror, minnen och datorer för rymdbruk.<br />
TTCAN: Är mycket flexibelt och tycks minst lika säkert som CAN. TTCAN erbjuder en god<br />
tidssynkronisering men ärver de svagheter, såsom låg bandbredd och dålig övervakning av babbling<br />
idiots, som CAN redan från början har. Det har i skrivande stund ej heller synts några tecken på något<br />
kommersiellt genomslag något som Rymdbolaget anser vara viktigt.<br />
Kvar som förslag till framtida nätverk är därför FlexRay, TTP/C och ett egenhändigt förbättrat CAN.<br />
6.3 Slutligt nätverksförslag för STEAM<br />
För att få en uppfattning om säkerhetsnivåerna hos FlexRay, TTP/C och CAN kontaktas Håkan<br />
Sivencrona på SP, Sveriges Provnings- och Forskningsinstitut. Håkan har genomfört omfattande tester<br />
på TTP/C, medelst felinjektioner i syfte att testa tillförlitligheten. Håkan har också en god uppfattning<br />
om FlexRay´s kommande kapacitet. Han menar att TTP/C, idag, är ett mycket tillförlitligt<br />
kontrollnätverk, det säkraste på marknaden. Han menar också att FlexRay´s tillförlitlighett kommer att<br />
komma upp i motsvarande nivå den dag det lanseras. Detta kommer enligt Håkan ske tidigast 2004.<br />
Enligt Håkan kommer såväl TTP/C som FlexRay, med stor sannolikhet, kunna godkännas för<br />
högkritiska tillämpningar såsom steer-by-wire applikationer i bilar och flygplan, vilket varken CAN<br />
eller TTCAN kommer godkännas för. Det enda befintliga nätverk som uppfyller den säkerhet som<br />
efterfrågas är alltså TTP/C. Då FlexRay inte är operativt kan detta dessvärre inte användas.<br />
TTP/C är dock behäftat med en svaghet; TDMA, d.v.s. schemat som styr vilken nod som sänder när,<br />
till stor del helt saknar flexibilitet. Detta innebär att en nod som önskar sända mer än normalt
Intern realtidskommunikation i framtida Svenska satelliter sid 32<br />
Martin Normark<br />
förhindras göra detta. Detta medför att satelliten hindras arbeta inom olika arbetsmoder, då detta<br />
sannolikt innebär olika användningsmönster för noderna på bussen. Efter en dialog med Gunnar<br />
Andersson på Rymdbolaget konstateras att försök har gjorts tidigare med liknande TDMA. Resultatet<br />
av dessa tester var att dylikt schema ej skall användas på svenska satelliter på grund av dess dåliga<br />
flexibilitet. Gunnar Andersson föreslår därför att nuvarande CAN-buss vidareutvecklas och förses<br />
med tillägg för att synkronisera noderna samt med ett köhanteringssystem vars namn är EDF, Earliest<br />
Deadline First, vilket skall tjäna till att öka användningsgraden på bussen samt se till att det för<br />
stunden viktigaste meddelandet får sända först.<br />
Det slutliga Nätverksförslaget för STEAM blir därför ett CAN-nätverk med tillägg av EDF och<br />
tidssynkronisering. CAN-bussen<br />
6.4 Slutligt generellt nätverksförslag för kommande satelliter<br />
För kommande satelliter rekommenderas dock FlexRay, då detta nätverk väntas bli mycket spritt [20]<br />
och dessutom uppfylla Rymdbolagets krav.
Intern realtidskommunikation i framtida Svenska satelliter sid 33<br />
Martin Normark<br />
7 Testimplementation av CAN som använder Earliest<br />
Deadline First<br />
I SMART-1 används ett pollat CAN-nätverk [2]. I STEAM kan dock ett Earliest Deadline First (EDF)<br />
baserat sändschema komma att testas. I detta kapitel beskrivs teorin bakom EDF. Dessutom undersöks<br />
huruvida detta är möjligt att använda i ett CAN-nätverk.<br />
Testerna inleds med en datasimulering där ett tiotal noder simuleras i syfte att kontrollera att alla<br />
noder ständigt får sända inom sin garanterade sändtid och att överbliven bandbredd kan utnyttjas av<br />
noder som önskar sända mer än garanterad bandbredd.<br />
Därefter skall ett riktigt CAN-nät testas i syfte att visa att teorin fungerar även i praktiken. Till det<br />
kommer SMART-1´s CAN-nät att förses med tillägg i de CAN-controllers som ingår i nätet. Genom<br />
att göra förändringen i CAN-controllern är inga förändringar i övriga datorer i satelliten nödvändiga.<br />
Controllern består idag av en FPGA, ACTEL A54SX32PQ208, i vilken VHDL-kod implementeras.<br />
Det är alltså denna VHDL-kod som skall förses med tillägg, för att sedan brännas ned i en ny FPGA<br />
av samma typ som den tidigare. Den nya FPGA´n ersätter därefter den ordinarie controllern i de<br />
prototypdatorkort som finns kvar sedan SMART-1-utvecklingen. De slutliga hårdvarutesten<br />
genomförs sedermera på ett av dessa protypdatakort, närmare bestämt GRWRTU-kortet (Gyro and<br />
Reaction Wheel Real Time Unit), försett med den nya EDF-CAN-controllern..<br />
7.1 Kort beskrivning av EDF<br />
Earliest Deadline First eller EDF är, precis som det låter, en tämligen enkel teori som bygger på att<br />
ingen process skall bli försenad genom att helt enkelt exekvera den process som har mest bråttom<br />
först. EDF kan tillämpas i en mängd sammanhang men här kommer främst kommunikation på en<br />
broadcastad kommunikationsbuss med arbitrering, i det här fallet CAN, att behandlas.<br />
För enkelhetens skull antas i det här exemplet att alla meddelanden har samma längd. Alla noder eller<br />
meddelandetyper erhåller en på förhand bestämd, individuellt garanterad bandbredd, exempelvis kan<br />
nod A garanteras en bandbredd UA=1/6 av bussens totala kapacitet, nod B kan garanteras UB=1/8<br />
o.s.v. Detta innebär att en given nod, t.ex. Nod A, i genomsnitt och om behov finnes, får sända minst<br />
var sjätte meddelande på bussen. Den längsta accesstiden för noden kan också garanteras men kan<br />
givetvis inte bli kortare än tiden mellan två garanterade meddelanden, i det här fallet alltså tiden det<br />
tar att sända 6 meddelanden på bussen. Detta gäller endast för en nod, alla de övriga erhåller en längre<br />
garanterad accesstid, mer om accesstider för EDF i kap 7.2.<br />
Ju närmare tidpunkten för nodens deadline ju högre prioritet erhåller noden ifråga. Omedelbart före<br />
deadline, erhåller därför noden den högsta just då, på bussen, förekommande prioriteten och får sända.<br />
Teorin om Earliest Deadline First presenterades första gången 1973 i artikeln ”Scheduling Algorithms<br />
for Multiprogramming in a Hard-Real-Time Environment” av C. L. LIU, MIT Massachusetts Institute<br />
of Technology, och James W. Layland, California Institute of Technology [14]. Enligt artikeln ställs<br />
ett antal krav på systemet, nämligen att den högsta prioriteten delas ut till den nod som har närmast till<br />
deadline, att meddelandena är oberoende av varandra, att de sänds periodiskt samt att den totalt<br />
garanterade bandbredden Utot inte överstiger bussens maximala bandbredd, det vill säga:<br />
U tot = ∑U<br />
i ≤ 1 (1)<br />
i=<br />
A,<br />
B,<br />
C...<br />
Att vid varje tillfälle jämföra alla noders kvarvarande tid till deadline kräver antingen en central<br />
övervakning eller en hög upplösning i prioritetsangivningen. Det finns dessvärre varken utrymme för<br />
någon av dessa funktioner ombord på den satellit som skissas, det enda tillgängliga medel för att ändra<br />
prioriteten på meddelandena är en enda prioritetsbit i CAN-meddelandets ID-fält (se även kap. 7.2).<br />
Därmed uppfylls inte det första kravet för att EDF skall fungera. Det finns dock en metod som heter<br />
”Dual Priority Assignment” [15] som beskrivs i en artikel med samma namn, skriven av Alan Burns,<br />
University of York. Grundförutsättningarna för Dual Priority Assignment är desamma som för EDF,<br />
dock räcker det, enligt Burns, att n-1 noder i ett system innehållandes n noder kan växla mellan en<br />
standardprioritet och en högre prioritet, för att alla noder skall få sända i tid. Den n:te noden behöver<br />
endast en prioritet. Vidare finns det för varje system där (1) uppfylles minst en konfiguration, av<br />
kombinationer mellan grundprioriteter, högre prioriteter och när noden skall växla mellan dessa, där<br />
alla noderna får sända i tid. Vid höga garanterade laster, där U är nära ett, kan det dock vara svårt att<br />
finna denna kombination. Den rätta kombinationen kan dock bli betydligt enklare att finna om en<br />
periodicitet används där alla meddelanden kan sändas inom en periodtid, vars längd är en multipel av
Intern realtidskommunikation i framtida Svenska satelliter sid 34<br />
Martin Normark<br />
den minsta gemensamma nämnaren hos alla Ui. Om en nod avstår från att sända innebär detta i sig<br />
inget problem, det är däremot inte säkert att noden senare kan ta igen de missade sändtillfällena.<br />
Detta kan låta avskräckande men fördelarna med EDF är stora. Dels kan en större del av bandbredden<br />
scheduleras, med statisk prioritet går den högsta möjliga utnyttjandegraden mot U ≤ Ln2 ≈ 0,69 då<br />
många noder används [14] och dels kan eventuell överbliven bandbredd enkelt utnyttjas av övriga<br />
noder.<br />
7.2 Beskrivning av använd EDF-algoritm<br />
Alla noder erhåller en garanterad minsta tillgång Ui till den totala bussbandbredden enligt ovanstående<br />
resonemang. Därefter kontrolleras att den totalt garanterade bandbredden Utot inte överstiger 1.<br />
Som beskrivet i kapitel 5.1 om CAN-protokollet, använder sig CAN av ett 29 bitars ID-fält i början av<br />
varje meddelande. Dessa 29 bitar används dels för att identifiera meddelandetypen men även för att<br />
avgöra meddelandets prioritet. Vilken nod som får sända avgörs genom arbitrering där den nod med<br />
det lägsta binära värdet på de 29 ID-bitarna har högst prioritet och får sända först. D.v.s. ett<br />
meddelande med ID-fältet ”00101…” får sända före ett meddelande med ID-fältet ”01101…”.<br />
I Rymdbolagets satellit SMART-1 används ID-fältet enligt figur 7.1 nedan.<br />
Originator Destination Message type S P<br />
28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Figur 7.1 ID-fältets utseende i SMART-1<br />
Som synes finns två bitar markerade med P respektive S. P står för ”paritetsbit” och skyddar resten av<br />
ID-fältet mot enkelbitsfel. S är en s.k. spare-bit, dvs den är reserverad för senare bruk. Denna spare-bit<br />
flyttas nu längst fram och används som en EDF-bit som går från 1 till 0 då den sändande noden<br />
kommer nära sin deadline. Nodens prioritet höjs alltså då den närmar sig deadline. Upplösningen blir<br />
dock inte så hög och det blir endast två prioritetsområden: hög och normal. Inom dessa gäller dock<br />
ordinarie prioritetsordning där den nod med högst tilldelad bandbredd också tilldelas högst prioritet.<br />
Det nya ID-fältet får således utseendet enligt figur 7.2 nedan:<br />
EDF Originator Destination Message type P<br />
28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Figur 7.2 ID-fältets framtida utseende i STEAM<br />
-Metod för att avgöra huruvida deadline är nära: Noden/Meddelandetypen (varje nod kan ju sända<br />
flera meddelandetyper) förses med en räknare, vars initialvärde är lika med det inverterade värdet av<br />
Ui , i fallet nod A (där UA=1/6) i kap 7.1 blir initialvärdet alltså 6. Vid varje arbitrering, då noden<br />
försöker sända minskas värdet på räknaren med 1, varje gång arbitreringen lyckas ökas värdet på<br />
räknaren med initialvärdet. I samband med varje arbitrering jämförs värdet på räknaren med dess<br />
initialvärde; om värdet är mindre eller lika med initialvärdet sätts den första biten (EDF-Biten) i IDfältet<br />
till 0 (högprioområdet) annars till 1 (lågprio). Se även flödesschema, figur 7.3, nedan.
Intern realtidskommunikation i framtida Svenska satelliter sid 35<br />
Martin Normark<br />
Figur 7.3 Flödesschema för räknare i EDF<br />
-Garanterad Accesstid: Högsta värdet på räknaren begränsas till 2*initialvärdet i syfte att hålla ned<br />
den garanterade accesstiden. Då noden är garanterad att få sända senast då räknaren nått noll, blir<br />
således den högsta accesstiden, generellt, just tiden det tar att sända 2*initialvärdet st meddelanden.<br />
För Nod A, som har högre prioritet än B, i exemplet alltså maximalt tiden det tar för tolv meddelanden<br />
att sändas. Detta gäller dock generellt, för noder med hög ordinarie prioritet minskar accesstiden ända<br />
ned till 1*initialvärdet för den högst prioriterade noden. Med hänsyn tagen till detta sänks den<br />
garanterade accesstiden för nod A (UA=1/6) till 6 meddelandetidsrymder och för nod B (UB=1/8) till 9<br />
meddelandetidsrymder. Att det för nod B blir 9 tidsrymder beror på att nod A kommer att tränga sig<br />
före Nod B , vid ett och endast ett sändtillfälle, om de båda noderna befinner sig i respektive<br />
högprioritetsområde. På samma sätt kommer den garanterade accesstiden att fortsätta öka för de lägre<br />
prioriterade noderna. Detta gäller dock endast för periodiskt återkommande meddelanden. För<br />
meddelanden som sänds spontant kan den minsta accesstiden bli mycket komplex och tämligen lång.<br />
Aperiodiska meddelanden påverkar även de periodiska meddelandena med lägre prioritet om sådana<br />
finnes. För värdena ovan förutsätts även att bussen är ledig, om så inte är fallet tvingas den nod som<br />
önskar sända vänta intill dess det meddelande som sänds har sänts klart. Detta oavsett vilken prioritet<br />
de olika meddelandena har.<br />
-Överbliven bandbredd: Det är ju inte nödvändigtvis så att all tillgänglig bandbredd på bussen<br />
allokeras till noderna, det kan ju också tänkas att vissa noder avstår från att sända sin garanterade<br />
andel. Båda dessa fall leder till överbliven bandbredd. Denna bandbredd kan givetvis nyttjas av de<br />
noder som så önskar, dock kommer den nod med högst ordinarie prioritet få exklusiv rätt att nyttja<br />
den överblivna bandbredden, därefter erbjuds den i fallande prioritetsordning till lägre prioriterade<br />
noder. Med en högre upplösning i prioritetsförändringarna kan överbliven bandbredd fördelas mer<br />
”rättvist” mellan alla noder, detta är dock inte möjligt med endast en bits upplösning, som i<br />
Rymdbolagets fall.<br />
7.3 Mål med test<br />
Om EDF-funktionaliteten kan implementeras i CAN-controllern slipper CPU:n i varje nod ägna sig åt<br />
att räkna ut när och hur noden i fråga får sända, utan kan ägna sig åt viktigare saker. Vidare skall<br />
EDF-CAN-controllern ha samma gränssnitt som den ordinarie CAN-controllern mot CPU:n i syfte att<br />
nätverket skall kunna uppgraderas utan att övriga systemet byggs om.<br />
Målet med testet är med andra ord att utröna huruvida det är möjligt att komplettera en CANcontroller<br />
med med en EDF-funktion. Vidare skall testet visa om EDF-algoritmen fungerar i<br />
praktiken, hur stor plats funktionaliteten tar på en FPGA samt visa om gränssnittet mellen FPGA och<br />
övrig hårdvara behöver förändras eller inte.
Intern realtidskommunikation i framtida Svenska satelliter sid 36<br />
Martin Normark<br />
7.4 Simulering av CAN med EDF<br />
I syfte att visa att det är möjligt att det är möjligt att tillämpa EDF i ett CAN-nätverk skapas ett<br />
simuleringsprogram i C (se Appendix A). Programmet simulerar ett nätverk med 8 noder, nod A till<br />
nod H. Nod A har en garanterad bandbredd UA motsvarande 1/3 av total bandbredd, vilket med andra<br />
ord innebär att nod A får initialvärde 3 på sin räknare. För att förenkla hanteringen av grundprioriteten<br />
erhåller nod A grundprio=0 som är den högsta möjliga prioriteten, för de övriga noderna noderna<br />
stegas grundprioriteten upp med 1 för varje nod. Den garanterade bandbredden samt övrig data för<br />
samtliga noder är:<br />
UA=1/3. Grundprio=0. Initialvärde för räknare=3.<br />
UB=1/6. Grundprio=1. Initialvärde för räknare=6.<br />
UC=1/10. Grundprio=2. Initialvärde för räknare=10.<br />
UD=1/13. Grundprio=3. Initialvärde för räknare=13.<br />
UE=1/22. Grundprio=4. Initialvärde för räknare=22.<br />
UF=1/23. Grundprio=5. Initialvärde för räknare=23.<br />
UG=1/24. Grundprio=6. Initialvärde för räknare=24.<br />
UH=1/25. Grundprio=7. Initialvärde för räknare=25.<br />
Vilket ger<br />
U<br />
tot<br />
= ∑U<br />
i<br />
i=<br />
A,<br />
B,<br />
C...<br />
=<br />
0.<br />
848<br />
≤ 1<br />
Vilket uppfyller villkoret om maximalt garanterad bussbandbredd.<br />
Vid simuleringen testas tre varianter, den första där värdet på räknaren förhindras att anta värden<br />
högre än dubbla initialvärdet, en andra variant där värdet tillåts gå högre men där noden avstår från att<br />
sända då värdet på räknaren är dubbelt så högt som initialvärdet eller högre samt en tredje där 100<br />
procent av tillgänglig bussbandbredd garanteras.<br />
Syftet med de två första varianterna är dels att kontrollera om det ställer till problem då accesstiden<br />
begränsas (jfr kap 7.2) medelst en övre gräns för räknaren, respektive att studera hur tillgänglig<br />
bandbredd kan röra sig nedåt i hierarkin då de högst prioriterade noderna avstår från att sända.<br />
Simuleringen nedan visar på komplexiteten då U går mot 1. Där ändras värdena till:<br />
UA=1/3. Grundprio=0. Initialvärde för räknare=3.<br />
UB=1/5. Grundprio=1. Initialvärde för räknare=5.<br />
UC=1/6. Grundprio=2. Initialvärde för räknare=6.<br />
UD=1/11. Grundprio=3. Initialvärde för räknare=11.<br />
UE=1/13. Grundprio=4. Initialvärde för räknare=13.<br />
UF=1/22. Grundprio=5. Initialvärde för räknare=22.<br />
UG=1/23. Grundprio=6. Initialvärde för räknare=23.<br />
UH=1/24. Grundprio=7. Initialvärde för räknare=24.<br />
Vilket ger<br />
U<br />
tot<br />
= ∑U<br />
i<br />
i=<br />
A,<br />
B,<br />
C...<br />
=<br />
0.<br />
998<br />
Då prioriteterna tydligen inte är rätt ordnade noderna emellan blir resultatet av körningen ovan<br />
katastrofalt med totalt 897 missade deadlines efter 2000 sändomgångar. De missade sändningarna<br />
beror alltså på operiodicitet och ickeharmoniska perioder.<br />
≤ 1
Intern realtidskommunikation i framtida Svenska satelliter sid 37<br />
Martin Normark<br />
Med relativt små ändringar kan dock en lyckad konfiguration finnas, test nr 2 av samma simulering<br />
har värdena:<br />
UA=1/4. Grundprio=0. Initialvärde för räknare=4.<br />
UB=1/4. Grundprio=1. Initialvärde för räknare=4.<br />
UC=1/5. Grundprio=2. Initialvärde för räknare=5.<br />
UD=1/10. Grundprio=3. Initialvärde för räknare=10.<br />
UE=1/20. Grundprio=4. Initialvärde för räknare=20.<br />
UF=1/20. Grundprio=5. Initialvärde för räknare=20.<br />
UG=1/20. Grundprio=6. Initialvärde för räknare=20.<br />
UH=1/20. Grundprio=7. Initialvärde för räknare=20.<br />
Vilket ger<br />
U<br />
tot<br />
= ∑U<br />
i<br />
i=<br />
A,<br />
B,<br />
C...<br />
Med denna fördelning syns tydligt att sändningarna kommer att delas in i perioder om 20<br />
meddelanden inom vilka alla meddelanden kommer att kunna sändas. Simuleringen ger också ett gott<br />
resultat med inga missade deadlines. Detta trots att bussen nyttjas i en högre grad.<br />
Simuleringskörningarna, som finns utskrivna i Appendix A, visar att ingen nod missar sin deadline<br />
vid någon av tidigare beskrivna körningar om prioriteterna ställs in rätt mellan noderna. Simuleringen<br />
visar även att 100% av bussens kapacitet kan allokeras till noderna då all garanterad bandbredd kan<br />
användas av de noder som blivit tilldelad denna, vidare kan all övrig tillgänglig bandbredd som<br />
uppstår av att en nod inte utnyttjar sin tilldelade bandbredd eller inte är allokerad till någon nod,<br />
användas. Dock kommer de högst grundprioriterade noderna att få tillgång till detta extra utrymme på<br />
bussen i första hand.<br />
7.5 Implementation i VHDL<br />
Som CAN-controller används på Rymdbolaget en FPGA (Field Programmable Gate Array) i vilken<br />
BOSCH´s CAN-kärna tillsammans med, för övrig hård- och mjukvara, lämpliga skal, logik och<br />
gränsnitt programmerats. Alla dessa komponenter programmeras i VHDL (Very high speed integrated<br />
circuit (VHSIC) Hardware Description Language ). Vid programmeringen av tilläggen i den nya EDF-<br />
CAN-controllern sker de flesta förändringarna i den modul som Rymdbolaget kallar CAN-Shell.<br />
CAN-Shellet ligger som ett skal kring CAN-Kärnan, se fig 7.4, och hanterar input och output av<br />
kommandon och data till kärnan. CAN-Shellet utgör därför en bra plats för implementering av EDFtilläggen.<br />
Då den garanterade bandbreddstilldelningen är individuell för varje CAN-controller samt att<br />
denna kan komma att behöva ändras måste dock samtliga lager utanför CAN-Shellet designas om<br />
något för att tillåta transport av denna information från de fysiska pinnarna på FPGA´ns utsida in till<br />
CAN-Shellet.<br />
I denna rapport kommer av copyright-skäl endast de större förändringarna i CAN-Shellet att<br />
redovisas, det skall dock tilläggas att de redovisade förändringarna är de som i stora drag förändrar<br />
karaktäristika hos CAN-controllern.<br />
= 1
Intern realtidskommunikation i framtida Svenska satelliter sid 38<br />
Martin Normark<br />
Figur 7.4 Delar av CAN-Shellet.<br />
Figur 7.5 Transmission_State_Machine ombyggd för EDF<br />
7.6 Simulering av funktion hos kod skriven i VHDL<br />
Rymdbolaget tog i samband med utvecklingen av SMART-1 fram en testbänk vars syfte var att testa<br />
funktionaliteten hos CAN-Shellet. Även testbänken är skriven i VHDL och körs tillsammans med<br />
koden för CAN-Shellet i simuleringsprogrammet Modelsim PE. Efter att testbänken modifierats för
Intern realtidskommunikation i framtida Svenska satelliter sid 39<br />
Martin Normark<br />
att passa EDF-CAN-controldesignen kördes samtliga tester med lyckat resultat. Dessutom skapades<br />
nya tester (test 5.1 och test 6.1) vars syfte var att testa funktionen hos initialvärdet (här kallat ”PRIO”),<br />
räknaren (”counter”) och EDF-ID-biten (här kallat”ID_bit_28”). VHDL-koden för testerna 5.1 och 6.1<br />
finns återgivna i Appendix D.<br />
Test 6.1<br />
Nedan (fig 7.6 och 7.7) visas urklipp ur testet 6.1 där CAN-Shellets beteende vid övergång från<br />
nodens lågprio- till högrio-område testas:<br />
Figur 7.6 Simulering av CAN-Shell<br />
• Vid tiden 59300 ns laddas samtliga ID-, Kontroll- och databitar från CAN-Shellet till CAN-<br />
Kärnan i och med att signalen ”load_shift_reg_int” går hög. Observera att vid detta tillfälle är<br />
EDF-biten (”ID_bit_28”) hög vilket innebär att noden jobbar i sitt lågprio-område. Detta<br />
illustreras även med att ”send_identfiier” har värdet ”1000011…”.<br />
• En klockcykel senare vid tiden 59450 beordras CAN-Kärnan, medelst ”tx_request” =1, att<br />
försöka sända det nyss laddade meddelandet på CAN-bussen.<br />
• Vid tiden 60200 är bussen ledig och CAN-Kärnan går ut och arbitrerar på CAN-bussen. Detta<br />
indikeras med att insignalen ”transmitter” sätts hög av CAN-Kärnan.<br />
• ”transmitter” =1 triggar CAN-Shellet att byta state till ”cur_state” = ”0010” –<br />
”Sending_or_Receiving”. Detta leder till att räknaren, ”counter”, räknas ned ett steg till<br />
”0001100b”. Observera att räknarens värde numera överensstämmer med initialvärdets (”PRIO”)<br />
”01100b”
Intern realtidskommunikation i framtida Svenska satelliter sid 40<br />
Martin Normark<br />
Figur 7.7 Simulering av CAN-Shell. Vid tiden 62050 går noden in i sitt<br />
högprio-område<br />
• Vid tiden 62050 ns går ”transmitter” låg vilket innebär att CAN-Kärnan förlorat arbitreringen.<br />
Vid samma tillfälle jämförs också värdet för ”counter” och ”PRIO”, då dessa numera har samma<br />
värde går ”ID_bit_28” låg. Därmed går noden in i sitt högprio-område enligt EDF-algoritmen<br />
(kap 7.2).<br />
• Vid tiden 62100 ändras därför ”send_identifier” till ”0000011…”.<br />
• Därefter påbörjas en ny sändcykel där samma meddelande sänds om. Numera dock med den<br />
högre prioriteten.<br />
Test 6.1 får därmed betraktas som lyckat.<br />
Test 5.1<br />
I test 5.1 testas CAN-Shellets beteende vid en vunnen arbitrering där meddelandet sänds iväg på<br />
bussen. Nedan (Fig 7.8) visas ett urklipp även ur detta test.
Intern realtidskommunikation i framtida Svenska satelliter sid 41<br />
Martin Normark<br />
Figur 7.8 Vid tiden 11100 ns går noden in i sitt lågprio-område<br />
• Vid urklippets början (10250 ns) har CAN-kärnan redan beordrats att sända iväg ett meddelande<br />
(jfr Fig 7.8 ovan). Noden var då i sitt högprio-område och befinner sig i state ”0010” –”<br />
Sending_or_Receiving ” och väntar på besked från CAN-kärnan som skall tillkännage huruvida<br />
arbitreringen vunnits eller förlorats.<br />
• Vid tiden 10600 ns meddelar CAN-kärnan genom att sätta signalen ”tx-complete” hög att<br />
arbitreringen vunnits samt att meddelandet är sänt.<br />
• CAN-Shellet byter state till ”0100” –”Counter_addition” där räknarens (”counter”) värde räknas<br />
upp (jfr EDF-algoritm kap 7.2) med initialvärdets (”PRIO”). Räknarens nya värde blir därför<br />
0001010b + 01100b = 0010110b.<br />
• Vid tiden 11100 ns leder detta till att att ”ID_bit_28” går hög och noden går in i sitt lågprioområde.<br />
• Detta bekräftas vid tiden 11150 ns genom att ”send_identifier” ändras till ”0000011…”.<br />
• Därefter är CAN-Shellet redo att sända ett nytt meddelande.<br />
Även Test 5.1 får därmed betraktas som godkänt.<br />
7.7 Produktion av Testhårdvara implementerat i en FPGA<br />
Vid produktion av FPGA måste VHDL-koden koden syntiseras till nätlistor, nätlistorna sättas ihop<br />
(merge), en chipdesign skapas och integreras med en beskrivning av FPGA´ns fysiska pinnplaceringar<br />
och slutligen brännas ned i en tom FPGA.<br />
Syntetisering:<br />
När VHDL-koden är testad och befunnits kodkänd kan syntetisering av hårdvaran ske. Syntetisering<br />
innebär att en koden kompileras och en nätlista över alla ledningar och grindar skapas. Till detta<br />
används i detta projekt programmet Synplify 7.0.
Intern realtidskommunikation i framtida Svenska satelliter sid 42<br />
Martin Normark<br />
De moduler som syntiseras är:<br />
CAN-Core innehåller CAN-Kärnan, designad av BOSCH<br />
CAN-Shell servar kärnan med kommandon, data och EDF-logik för sändning, omsändning och<br />
mottagning<br />
CAN-Shell-int Kopplar ihop de två ovanstående modulerna<br />
GRWRTU Innehåller logik för Gyro Reaction Wheel Real Time Unit meddelanden.<br />
GRWRTU_Can Kopplar ihop samtliga ovanstående moduler och utgör gränssnitt mot de fysiska<br />
pinnarna på FPGA´n.<br />
Mergning:<br />
De syntiserade modulerna slås ihop med hjälp av ett program som heter Merge. ”Mergningen”<br />
innebär att nätlistorna sätts ihop till en stor lista som beskriver hela chiparkitekturen.<br />
Nätlistorna sätts ihop i följande ordning:<br />
CAN-Core + CAN-Shell + CAN-Shell-int => CAN-Shell-int_merged<br />
CAN-Shell-int_merged + GRWRTU + GRWRTU_can => GRWRTU_can_merged<br />
Design av hårdvaran:<br />
Hårdvaran designas i ett program avsett för aktuell chiptyp, i det fallet ACTEL Designer v. 4. I<br />
designern placeras de fysiska grindarna och ledningarna på så sätt att dragning av dessa blir möjlig,<br />
dessutom optimeras chipets egenskaper på så sätt som önskas, idet här fallet för storlek. Detta är<br />
nödvändigt då ytterligare logik är tillförd varför det annars inte får plats på chipets yta. Detta medför<br />
dessvärre att designen inte är lämpat för rymdbruk då denna optimering ökar risken för problem<br />
orsakade av strålning (jfr kap 4.5.2).<br />
Utöver detta kopplas alla signaler ihop med de pinnar som finns beskrivna i pin-filen. Samma pin-fil<br />
används till EDF-CAN-chipet som till det ordinarie chipet, använt i SMART-1. Detta medför att EDF-<br />
CAN-chipet kan testas och användas i befintlig testhårdvara framtagen vid utvecklingen av SMART-1.<br />
Chipdesignen är en omfattande process och kräver mycket datakraft, med en modern PC tar<br />
processen, som är automatisk då den väl startats, ca 2 timmar i anspråk.<br />
Bränning av FPGA:<br />
Då designen är klar kan logiken slutligen brännas ned på en FPGA.. Detta sker med hjälp av såväl<br />
hård- som mjukvara från ACTEL.<br />
FPGA´n som används heter ACTEL A54SX32PQ208 och är en vanlig, kommersiell, kiselkrets, ej<br />
lämpad för rymdbruk. De chip som används i rymden är 50-100 gånger dyrare och används därför inte<br />
vid prototyptillverkning och tester.<br />
FPGA´n innehåller 20 000 st vippor och en stor mängd ledningar mellan dessa. Genom att belasta<br />
dessa ledningar med högre strömmar än de nominella bränns de oönskade ledningarna bort, varefter<br />
endast de önskade ledningarna kvarstår. Om brännprocessen lyckas, vilken den oftast gör, och<br />
designen är rätt erhålles därefter ett chip med den logik som designern skapat.<br />
Bränningen är irreversibel, d.v.s. efter att bränning är genomförd kan chipegenskaperna inte förändras<br />
igen. Detta innebär att om chipets egenskaper behöver ändras, exempelvis efter ett mindre lyckat test,<br />
måste alla moment fr.o.m. implementation i VHDL (kap 7.5) göras om.<br />
7.8 Test av FPGA<br />
Vid test av EDF-CAN-controllern används en testrigg bestående av:<br />
• Controllerkort till SMART-1 styrt via JTAG från en PC. Detta är en kopia på SMART-1´s<br />
huvuddator. Controllerkortet är utrustat med sin ordinarie CAN-controller.<br />
• Ett GRWRTU-kort från SMART-1 utrustat med ett ordinarie CAN-Controllerchip och ett EDF-<br />
CAN-controllerchip. GRWRTU-kortet innehåller en nominell arkitektur och en i stort sett<br />
identisk redundant del. Vid test hålls båda delarna aktiva, vilket förklarar varför två CANcontrollers<br />
finns på samma kort.<br />
• Ett oscilloscope som lyssnar på bussen samt på sändpinnen på EDF-CAN-controllern.<br />
• Samt en test-PC med avlyssnar/sändarutrustning anpassad för tester på SMART-1, bestående av<br />
en PC med ett CAN-kort, som utgör en egen nod i nätverket.<br />
Totalt finns alltså 4 noder i testnätverket varav 1 utgörs av en ny EDF-CAN-controller.
Intern realtidskommunikation i framtida Svenska satelliter sid 43<br />
Martin Normark<br />
Som synes förekommer i stort sett enbart utrustning designad för SMART-1. Detta innebär vissa<br />
komplikationer, dels måste EDF-CAN-controllern anpassas så att den förstår SMART-1´s ordinarie<br />
ID-fält och sänder meddelanden som har relevans för testutrustningen. Dessutom måste en förståelse<br />
för SMART-1´s användning av ID-fälten skapas i syfte att förstå hur resultaten skall tolkas.<br />
Tabellen nedan visar hur ID-fältet används i SMART-1 [2]<br />
Bit No of bits Function Note<br />
ID28 - ID24 5 Originator<br />
ID23 – ID9 15 Destination<br />
ID8 – ID2 7 Message Type<br />
ID1 1 Spare bit = 1<br />
ID0 1 ID field destination<br />
sub-field (ID23-ID9)<br />
parity bit<br />
En del av de avsändare (Originators) som förekommer i SMART-1 är följande:<br />
Addresses<br />
ID28-ID24<br />
Node abbr. Node name<br />
Even parity = number<br />
of ones even<br />
00000 CON1 Spacecraft controller<br />
00001 CON2<br />
00010 GRWRTU1 Gyro/reaction wheel remote terminal unit<br />
00011 GRWRTU2<br />
…<br />
…<br />
För testet ovidkommande adresser mellan 00100-<br />
01111<br />
10000 PCDU1 Power control and distribution unit<br />
10001 PCDU2<br />
10010 PCDU3<br />
En del av de i SMART-1 förekommande mottagare, där en nolla i destinationsbiten adresserar noden<br />
ifråga:<br />
Destination bit Node name Node type<br />
ID23 CON1 and CON 2 Bus master<br />
ID22 GRWRTU1 AOCS<br />
ID21 GRWRTU2 AOCS<br />
… ID 20-ID 11 är för testet<br />
… ointressanta mottagare<br />
ID12 TMTC1 and TMTC2 TMTC<br />
ID11 PCDU1 Power<br />
ID10 PCDU2 Power<br />
ID9 PCDU3 Power<br />
Ett meddelande med godtyckligt innehåll från CON2 till GRWRTU1 och PCDU1 skulle därför ha<br />
följande utseende:<br />
Originator Destination Message type S P<br />
28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 X X X X X X X 1 1
Intern realtidskommunikation i framtida Svenska satelliter sid 44<br />
Martin Normark<br />
I ett EDF-CAN-meddelande har ju dock, som tidigare beskrivet i kap 7.2, spare-biten tagits bort och<br />
ersatts av EDF-biten som flyttats till Bit 28. Motsvarande EDF-meddelande får därför följande<br />
utseende:<br />
EDF Originator Destination Message type P<br />
28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
X 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 X X X X X X X 1<br />
Där EDF-biten är en nolla då noden befinner sig i sitt högprio-område och en etta då den befinner sig i<br />
sitt lågprio-område.<br />
En CAN-nod i Smart-1, liksom de som används i testutrustningen, skulle dock uppfatta meddelandet<br />
som antingen ursprunget från CON1, vid högprio-mode, eller från PCDU1 vi lågprio-mode. Resten av<br />
ID-fältet skulle också uppfattas fel, sannolikt skulle pariteten bli vanställd och meddelandet kastas<br />
bort. Därför specialtillverkas en EDF-CAN-controller där bit 28 fortfarande utgör EDF-bit, bit 27-24<br />
är satta till noll och bitarna 23-0 har samma egenskaper som i övriga ID-fält förekommande i<br />
SMART-1. Initialvärdet hos EDF-CAN-controllerns räknare är satt till 4. Därmed kan EDF-CANchipet<br />
kommunicera med de andra noderna i testnätverket.<br />
7.8.1 Testprocedur<br />
EDF-CAN-controllern testas enligt följande testschema:<br />
Testnr Beskrivning av test Förväntad respons<br />
1 Ett godtyckligt meddelande skickas iväg<br />
på bussen från test-PC´n.<br />
2 Meddelandet RIBUS* sänds, av test-<br />
PC´n, periodiskt (1 gång per sekund) på<br />
den nominella bussen. Avsändare: CON1<br />
3 PING** skickas till GRWRTU1 från test-<br />
PC´n. Avsändare: CON1<br />
4*** Kontroll att EDF-CAN-controllern går<br />
från hög- till lågprio-område. POLL-<br />
GRWRTU**** sänds från test-PC´n med<br />
avsändare CON1<br />
5 Kontroll att EDF-CAN-controllern går<br />
från låg- till högprio-område. Ingen<br />
åtgärd; GRWRTU-noderna är redan<br />
engagerade i att besvara POLLen från test<br />
4.<br />
6 Samma som test 1, dock sänder<br />
Controllerkortet till SMART-1 ständigt<br />
meddelanden med avsändare CON2 på<br />
bussen. Bussen fylls till 100%.<br />
Meddelandet har ingen destination.<br />
7 Samma som test 2, dock sänder<br />
Controllerkortet till SMART-1 ständigt<br />
meddelanden med avsändare CON2 på<br />
EDF-CAN-controllern sänder en ACKnoledgebit<br />
vid rätt tillfälle.<br />
EDF-CAN-controllern uppfattar meddelandet<br />
och stannar kvar på den nominella bussen.<br />
EDF-CAN-controllern besvarar PINGet, dock<br />
torde avsändaren tolkas som CON1 eller<br />
PCDU1.<br />
EDF-CAN-controllern svarar som CON1, går<br />
därefter in i lågprio område. Där förloras<br />
arbitreringen mot GRWRTU1 som svarar 3<br />
gånger…<br />
…varefter EDF-CAN-controllern åter går in i<br />
sitt högprio-område och vinner arbitreringen<br />
med ett, och endast ett, meddelande från<br />
CON1. EDF-CAN-controllern går därefter<br />
återigen in i sitt lågprio-område varvid<br />
GRWRTU1 sänder 3 meddelanden. Följt av<br />
CON1 och GRWRTU1 med sina 2 sista<br />
meddelanden. Slutligen sänder EDF-CANcontrollern<br />
sina sista 5 meddelanden, varav ett<br />
som CON1 och därefter som avsändare<br />
PCDU1 då controllern är i sitt lågprio-område.<br />
EDF-CAN-controllern sänder ACKnoledgebitar<br />
vid rätt tillfälle, vid varje meddelande.<br />
EDF-CAN-controllern uppfattar RIBUSmeddelandet<br />
och stannar kvar på den nominella<br />
bussen.
Intern realtidskommunikation i framtida Svenska satelliter sid 45<br />
Martin Normark<br />
bussen. Bussen fylls till 100%.<br />
Meddelandet har ingen destination.<br />
8 Samma som test 3, dock sänder<br />
Controllerkortet till SMART-1 ständigt<br />
meddelanden med avsändare CON2 på<br />
bussen. Bussen fylls till 100%.<br />
Meddelandet har ingen destination.<br />
9 Samma som test 4, dock sänder<br />
Controllerkortet till SMART-1 ständigt<br />
meddelanden med avsändare CON2 på<br />
bussen. Bussen fylls till 100%.<br />
Meddelandet har ingen destination.<br />
10 Samma som test 5, dock sänder<br />
Controllerkortet till SMART-1 ständigt<br />
meddelanden med avsändare CON2 på<br />
bussen. Bussen fylls till 100%.<br />
Meddelandet har ingen destination.<br />
EDF-CAN-controllern besvarar PINGet, som<br />
CON1<br />
EDF-CAN-controllern svarar som CON1, går<br />
därefter in i lågprio-område. Där förloras<br />
arbitreringen mot Controllerkortet för SMART-<br />
1 som sänder 3 gånger…<br />
EDF-CAN-controllern går in i sitt högprioområde<br />
och sänder ytterligare ett meddelande<br />
som CON1. Detta beteende fortsätter cykliskt<br />
intill dess att CON1 sänt 8 meddelanden.<br />
GRWRTU1 kommer inte in med sina<br />
meddelanden förrän controllerkortets<br />
sändningar som CON2 avbryts.<br />
* RIBUS= RIght BUS. Ett meddelande som i SMART-1-sytemet sänds av controllern varje sekund<br />
och upplyser RTU-noderna att de lyssnar på rätt buss. Upffattas inget RIBUS inom 4 sekunder byter<br />
noden buss till den redundanta CAN-bussen.<br />
** PING är ett meddelande som beordrar samtliga noder att svara som ett bekräftande att de är<br />
operativa.<br />
*** Inför test nr 4 startas GRWRTU-noden om i syfte att sätta räknaren i sitt initialvärde.<br />
**** . POLL-GRWRTU beordrar GRWRTU-noden att sända data om nodens status. Datat uppgår till<br />
8 st CAN-meddelanden. Under testet är såväl GRWRTU1 och GRWRTU2 aktiverade varför båda<br />
försöker svara. GRWRTU2 är dock utrustad med ett EDF-CAN-controllerkort och kommer därför att<br />
identifiera sig som CON1 eller PCDU1.<br />
7.8.2 Testresultat<br />
Testnr Respons Godkänt/icke godkänt<br />
Kommentarer<br />
1 EDF-CAN-controllern ACKar samtliga meddelanden Godkänt<br />
2 EDF-CAN-controllern stannar kvar på bussen intill dess att RIBUS<br />
meddelandena upphör då noden efter fyra sekunder byter buss<br />
Godkänt<br />
3 EDF-CAN-controllern besvarar pinget som CON1 eller PCDU1. Godkänt<br />
4 EDF-CAN-controllern svarar som CON1 och går sedan in i låg- Godkänt såtillvida att EDFpriomode<br />
där tillåts dock GRWRTU sända 4 gånger i stället för CAN-controllern faktiskt går<br />
förväntade 3 gånger. Se även fig. 7.9<br />
in i sitt låg-prioområde, dock<br />
beter sig inte räknaren som<br />
förväntat.<br />
5 EDF-CAN-controllern går åter in i sitt hög-prioområde. Fortsätter Godkänt. Se dock kommentar<br />
dock att bete sig enligt kommentar i test 4.<br />
ovan.<br />
6 EDF-CAN-controllern ACKar samtliga meddelanden Godkänt<br />
7 EDF-CAN-controllern stannar kvar på bussen intill dess att RIBUS<br />
meddelandena upphör då noden efter fyra sekunder byter buss<br />
Godkänt<br />
8 EDF-CAN-controllern besvarar pinget som CON1 Godkänt<br />
9 EDF-CAN-controllern svarar som CON1 och går sedan in i låg- Godkänt, se dock kommentar<br />
priomode där tillåts dock controllerkortet sända 4 gånger i stället för<br />
förväntade 3 gånger. Se även diagram i fig. 7.10<br />
test 4.<br />
10 EDF-CAN-controllern går åter in i sitt hög-prioområde, där den Godkänt, se dock kommentar<br />
sänder ett meddelande som CON1. Därefter sänder den var femte,<br />
istället för förväntade var fjärde, meddelande intill dess att samtliga<br />
åtta meddelanden sänts. Då controllerkortets sändningar avbryts<br />
sänder GRWRTU1 sina 8 meddelanden i tät följd.<br />
test 4.
Intern realtidskommunikation i framtida Svenska satelliter sid 46<br />
Martin Normark<br />
Figur 7.9 EDF-CAN-controllern sänder ett meddelande som CON1 varje<br />
gång den går in i sitt högprio-område.<br />
Figur 7.10 Bussen är helt fylld med meddelanden (övre<br />
diagrammet), dock kommer EDF-CAN-controllern (undre<br />
grafen) in vid var femte meddelande. Det syns tydligt att EDF-<br />
CAN-controllern ACKar samtliga meddelanden.
Intern realtidskommunikation i framtida Svenska satelliter sid 47<br />
Martin Normark<br />
Testerna visar tydligt att CAN-kärnan i EDF-CAN-controllern är operativ samt att gränssnittet mot<br />
GRWRTU-kortet fungerar tillfredställande. Vidare visar testet att det är möjligt att ” i farten” ändra<br />
prioritet på meddelandet, något som inte är möjligt med alla kommersiella CAN-controllers.<br />
Dock sker förändringen av prioriteten senare än tidigare simuleringar visat. Anledningen till detta är<br />
ännu okänd men skulle kunna ha sitt ursprung i att den nya prioriteten helt enkelt inte hinner laddas in<br />
i eller att koden i blocket ” Sending_or_Receiving ” i VHDL-koden inte exekveras på så sätt som<br />
önskas och därför inte räknar ned räknaren de gånger som arbitreringen vinns.
Intern realtidskommunikation i framtida Svenska satelliter sid 48<br />
Martin Normark
Intern realtidskommunikation i framtida Svenska satelliter sid 49<br />
Martin Normark<br />
8 Resultat<br />
Resultaten från den här utredningen kan delas upp i två delar:<br />
8.1 Rekommenderat nätverk i framtida satelliter<br />
FlexRay är det enda nätverk som både bedöms bli ett godkänt X-by-wire nätverk [20] och är<br />
tillräckligt flexibelt för att passa i Rymdbolagets satelliter[18]. FlexRay uppfyller dessutom så gott<br />
som alla krav som Rymdbolaget ställer på ett framtida nätverk. De kraven som inte uppfylls är att<br />
nätverket inte bedöms kommersialiseras förrän tidigast 2004 och därför av naturliga skäl inte heller<br />
idag har någon spridning bland användare. Dock väntas nätverket bli ordentligt spritt och väl använt<br />
då stora bolag som t.ex. BMW, DaimlerChrysler, BOSCH och General Motors alla ger sitt stöd till<br />
nätverksstandarden.<br />
FlexRay rekommenderas därför som framtida nätverk, dock måste innan FlexRay används en<br />
utvärdering beträffande dess verkliga förmåga och spridning i praktiken genomföras. Det är med<br />
andra ord knappast sannolikt att FlexRay kan ingå i något tillverkningsprojekt före 2006.<br />
TTP/C har efter tester genomförda av SP, även det visat sig vara ett mycket tillförlitligt nätverk [20],<br />
dock lämpar sig TTP/C mindre väl för användning av Rymdbolaget i dess satelliter [18]. Den<br />
huvudsakliga anledningen till det är TTP/C´s TDMA som bedöms alltför inflexibelt.<br />
Fram till dess bör därför CAN fortsätta att användas. Anledningarna till att CAN bör användas även i<br />
den närmaste framtiden är att en stor del av tidigare design kan återanvändas, varför det sannolikt kan<br />
bli både säkrare och billigare än andra, aldrig av Rymdbolaget använda, koncept. Vid sidan av detta<br />
finns det inga tecken på en omedelbar mycket stor förändring i mängden information som skall<br />
spridas i näten. Möjligen kan tänkas ett stort informationsflöde mellan ett instrument och en dator men<br />
detta kan i sådana fall lösas med en informationslänk mellan dessa två enheter. CAN-bussen bör dock,<br />
om så är möjligt, kompletteras med tidsdistribution, bättre bevakning mot babbling idiots och ett<br />
system för att bättre utnyttja tillgänglig bandbredd samtidigt som de viktigaste meddelandena får<br />
sändas först. Det senare skulle kunna lösas med s.k. EDF (Earliest Deadline First).<br />
Ett annat tekniskt bra sätt att uppgradera CAN-bussen kan vara att byta ut den mot TTCAN. Dock<br />
bedöms den ekonomiska och tidsmässiga kostnaden alltför stor i förhållande till de tekniska<br />
förbättringar som de facto erhålles vid en dylik uppgradering.<br />
Vid sidan om de rekommenderade nätverken har framkommit att såväl USB som Spacewire kan<br />
utgöra mycket kraftfulla kommunikationslänkar mellan två noder. Där den stora fördelen med USB är<br />
dess stora kommersiella spridning, medan det som talar för Spacewire är att rymdkretsar redan finns<br />
framtagna samt också finns integrerade med diverse komponenter, såsom DSP´s, Kameror och<br />
massminnen, som används i rymdsammanhang.<br />
8.2 Test av förbättrad CAN-buss<br />
Efter dialog med Gunnar Andersson på Rymdbolaget bestämdes att försök med att utveckla en CANbuss<br />
med EDF (Earliest Deadline First) skulle genomföras. Försöken kan delas upp i tre delmoment:<br />
8.2.1 Simulering av EDF-CAN-buss<br />
Simuleringskörningarna, som finns utskrivna i Appendix A, visar att ingen nod missar sin deadline<br />
vid någon av tidigare beskrivna körningar. Simuleringen visar vidare att all garanterad bandbredd kan<br />
användas av de noder som blivit tilldelad denna, vidare kan all övrig tillgänglig bandbredd som<br />
uppstår av att en nod inte utnyttjar sin tilldelade bandbredd eller inte är allokerad till någon nod,<br />
användas. Dock kommer de högst grundprioriterade noderna att få tillgång till detta extra utrymme på<br />
bussen i första hand.<br />
Nedan visas en sammanställning av resultatet från en simuleringskörning där noderna hela tiden sände<br />
så mycket de kunde:
Intern realtidskommunikation i framtida Svenska satelliter sid 50<br />
Martin Normark<br />
number of transmissions rounds: 6360<br />
node 0: 0.485 used bandwidth, 0.333 guaranteed bandwidth<br />
node 1: 0.167 used bandwidth, 0.167 guaranteed bandwidth<br />
node 2: 0.100 used bandwidth, 0.100 guaranteed bandwidth<br />
node 3: 0.077 used bandwidth, 0.077 guaranteed bandwidth<br />
node 4: 0.046 used bandwidth, 0.045 guaranteed bandwidth<br />
node 5: 0.044 used bandwidth, 0.043 guaranteed bandwidth<br />
node 6: 0.042 used bandwidth, 0.042 guaranteed bandwidth<br />
node 7: 0.040 used bandwidth, 0.040 guaranteed bandwidth<br />
guaranteed bus utilisation = 0.848<br />
actual bus utilisation = 1.000<br />
number of missed deadlines 0<br />
Vidare en sammanställning av resultatet från en simuleringskörning där noder ibland avstod från att<br />
sända då de blev erbjudna mer bandbredd utöver den garanterade.<br />
number of transmissions rounds: 8273<br />
node 0: 0.412 used bandwidth, 0.333 guaranteed bandwidth<br />
node 1: 0.240 used bandwidth, 0.167 guaranteed bandwidth<br />
node 2: 0.100 used bandwidth, 0.100 guaranteed bandwidth<br />
node 3: 0.077 used bandwidth, 0.077 guaranteed bandwidth<br />
node 4: 0.046 used bandwidth, 0.045 guaranteed bandwidth<br />
node 5: 0.044 used bandwidth, 0.043 guaranteed bandwidth<br />
node 6: 0.042 used bandwidth, 0.042 guaranteed bandwidth<br />
node 7: 0.040 used bandwidth, 0.040 guaranteed bandwidth<br />
guaranteed bus utilisation = 0.848<br />
actual bus utilisation = 1.000<br />
number of missed deadlines 0<br />
Simuleringarna visar att det är möjligt att använda EDF i ett CAN-nätverk och att genom att endast<br />
dedicera en bit från ID-fältet få tillräcklig upplösning för att alla noder skall hinna sända innan dess<br />
deadline nåtts. Simuleringen visar vidare att överbliven bandbredd fördelas, nedåt genom hierarkien,<br />
på så sätt att den nod som har högst prioritet först får chansen att nyttja den.<br />
8.2.2 Simulering av funktion hos EDF-CAN-Shellet<br />
Det nya EDF-CAN-shellet testades först i Rymdbolagets testbänk för CAN-Shell, skriven i VHDL.<br />
Simuleringsprogrammet som användes var Modelsim PE. Samtliga av Rymdbolagets tester lyckades.<br />
Därefter kompletterades testbänken med ytterligare tester, test 5.1 samt test 6.1, vars uppgift är att<br />
kontrollera att räknaren och EDF-priobiten i ID-fältet uppförde sig som de skulle, se även kap 7.6.<br />
Simuleringen visar att det är möjligt att integrera en EDF-funktion i Rymdbolagets CAN-Shell.<br />
Simuleringen visar dessutom att EDF-shellet är rätt programmerat såtillvida att räknare och EDF-IDbiten<br />
beter sig som den skall då noden vinner resp. förlorar en arbitrering och därmed på ett<br />
tillfredsställande sätt växlar mellan låg- och hög-prioområde.<br />
Test 5.1 och Test 6.1 finns återgivna i sin helhet i Appendix D<br />
8.2.3 Test av EDF-CAN-controller implementerad i FPGA<br />
Testerna, som finns beskrivna i kap. 7.8, visar tydligt att CAN-kärnan i EDF-CAN-controllern är<br />
operativ samt att gränssnittet mot GRWRTU-kortet fungerar tillfredsställande. Vidare visar testet att<br />
det är möjligt att ” i farten” ändra prioritet på meddelandet. Dock sker ändringen av prioriteten upp till<br />
nodens hög-prioområde ett meddelande senare än tidigare simuleringar visat. Vilket får till följd att<br />
EDF-noden endast sänder var femte meddelande istället för var fjärde. Anledningen till detta är ännu<br />
okänd men skulle kunna ha sitt ursprung i att den nya prioriteten helt enkelt inte hinner laddas in i<br />
eller att koden i blocket ”Tranceiver_or_receiver” i VHDL-koden inte exekveras på så sätt som önskas<br />
och därför inte räknar ned räknaren de gånger som arbitreringen vinns. Detta ses dock inte som något<br />
större problem utan kan lösas med lite traditionell debuggning, något som dock inte är aktuellt för<br />
denna prototypcontroller.
Intern realtidskommunikation i framtida Svenska satelliter sid 51<br />
Martin Normark<br />
9 Slutsats<br />
CAN-bussen, på det sätt den används i SMART-1, är inte idealisk i en framtida satellit. Anledningen<br />
till detta är dels att bandbredden är begränsad till 1Mbps men framför allt därför att CAN-bussen<br />
saknar teknik för att hantera bortfallna noder, noder som stör ut bussen, s.k. babbling idiots, på olika<br />
sätt samt teknik för synkronisering av noderna ingående i nätverket. Avsaknaden av inbyggt stöd för<br />
tidssynkronisering leder till att en separat kommunikationsväg för tidssynkronisering användas på<br />
SMART-1, vilket tar upp onödig vikt och datakraft. Avsaknad av teknik för att hantera babbling idiots<br />
kan i värsta fall leda till systemkollaps där inga i satelliten ingående noder kan kommunicera med<br />
varandra.<br />
Ett framtida nätverk skulle kunna utgöras av FlexRay, ett nytt nätverk med stort stöd från bilindustrin.<br />
FlexRay hanterar ovanstående problem på ett säkert sätt, så säkert att det bedöms bli ett av de första<br />
nätverk i världen som godkänns för säkerhetskritiska X-by-wire applikationer. Säkerheten till trots är<br />
FlexRay, till skillnad från andra lika säkra nätverk, tillräckligt flexibelt för att passa i en satellit<br />
tillverkad av Rymdbolaget. FlexRay uppfyller Rymdbolagets alla tekniska krav på ett framtida<br />
nätverk men är dock inte färdigutvecklat för kommersiell användning ännu. Tidigast år 2004 beräknas<br />
FlexRay ha nått dit. Därefter återstår att återigen utvärdera FlexRay innan det kan komma till bruk<br />
inom Rymdbolaget.<br />
Fram till dess framstår CAN-bussen som det bästa alternativet, då om möjligt med förstärkt skydd mot<br />
babbling idiots, tidssynkronisering och gärna EDF.<br />
EDF, Earliest Deadline First, är en metod där det meddelande som mest skyndsamt måste levereras<br />
vid varje tillfälle erhåller högst prioritet på bussen. Dessutom har EDF de fördelarna att alla noder kan<br />
garanteras en viss andel an bussens totala kapacitet med en garanterad maximal fördröjning. EDF är<br />
möjligt att använda i ett CAN-nätverk. Det är dessutom möjligt att integrera i Rymdbolagets CANcontroller,<br />
vilket leder till att EDF kan användas utan förändringar i datorerna och gränssnitten hos<br />
satelliten. Detta visas genom framgångsrika datasimuleringar samt produktion av en fungerande<br />
prototyp-CAN-controller med EDF.
Intern realtidskommunikation i framtida Svenska satelliter sid 52<br />
Martin Normark
Intern realtidskommunikation i framtida Svenska satelliter sid 53<br />
Martin Normark<br />
10 Diskussion och möjligheter för framtida utredningar<br />
I efterhand frågar jag mig gärna varför inte fler, eller ibland också andra, nätverk studerades. Svaret är<br />
helt enkelt, och riktigt, att tiden inte bedömdes räcka till, respektive okunnighet från min sida då<br />
projektet startades och nätverken valdes. Några av de nätverk som hade varit intressanta att studera är<br />
ju TCP/IP, tänk själv att enkelt kunna accessa satelliten från Internet, med intressanta<br />
tillförlitlighetsjämförelser mot TTP/och FlexRay men även Firewire som kunnats jämföras mot såväl<br />
USB som Spacewire. Firewire hade varit extra intressant då Honeywell i dagarna släppt en ny<br />
strålningstålig krets för just Firewire. Vad som heller inte framgår av rapporten är det formidabla krig<br />
som pågår mellan FlexRay och TTP/C. Båda parter slåss om den åtråvärda titeln som de facto<br />
standard inom x-by-wire industrin. Ett krig där TTP/c har tagit täten genom att redan nu ha ett<br />
operativt, kommersiellt nätverk som av erkänd testare som exempelvis SP anses vara säkert. Många<br />
anser dock att FlexRay kan gå om TTP/C då de dels har en flexiblare lösning på sin schedulering,<br />
något som var värdefullt för exempelvis Rymdbolaget, och dels har fler och större företag som backar<br />
upp dem.<br />
Näten har också kommit till på lite olika sätt, där TTP/C tämligen kompromisslöst skapats på ett<br />
universitet i Österrike för att sedan erbjudas marknaden designat och klart. Tvärtom har FlexRay<br />
tillkommit på initiativ från ett antal aktörer inom biltillverkningsmarknaden, där de tillsammans<br />
försöker att tillgodose de krav och önskemål som inkommer från olika håll. Rykten säger till och med<br />
att FlexRay uppkom på grund av att tillverkaren av TTP/C vägrade tillgodose vissa biltillverkares<br />
krav på förändringar av TTP/C. Det är alltså på intet sätt självklart vilket nätverk som faktiskt kommer<br />
att bli bäst, det vetenskapligt strikta nätverk, TTP/C, som kanske inte passar någon eller det av<br />
kompromisser, mellan flexibilitet, säkerhetskrav och övriga tillverkarkrav ihoppusslade nätverk som<br />
heter FlexRay.<br />
Det kunde också vara intressant att undersöka CANopen som inte blev undersökt. Det verkar kunna<br />
bli riktigt spritt och har ju därför en stor potential, extra synd eftersom CANopen under resans gång<br />
dessutom utsågs till en rymdstandard av ESA.
Intern realtidskommunikation i framtida Svenska satelliter sid 54<br />
Martin Normark
Intern realtidskommunikation i framtida Svenska satelliter sid 55<br />
Martin Normark<br />
11 Tack till<br />
Leif Granholm, utan vars hjälp, med VHDL-programmeringen, detta examensarbete inte skulle ha<br />
varit möjligt att genomföra.<br />
Mats Rehnström, för hjälp med hårdvara, inspiration och nya intressanta teorier rörande det mesta.<br />
Håkan Sivencrona och Per Johannessen för att ni låtit mig ta del av såväl Sveriges Provnings- och<br />
Forskningsinstituts som delar av VOLVO´s erfarenheter beträffande säkerhet och användning av<br />
TTP/C, FlexRay och CAN. Detta trots mitt morgonhumör…<br />
Martin Törngren för en föredömligt genomförd handledning.<br />
Gunnar Andersson som trots en, särskilt inledningsvis, kraftig tidspress hjälpte mig på rätt väg.<br />
Sist men inte minst min förtjusande flickvän Jenny Sperens som stått ut med mig och dessutom<br />
korrekturläst denna rapport.
Intern realtidskommunikation i framtida Svenska satelliter sid 56<br />
Martin Normark
Intern realtidskommunikation i framtida Svenska satelliter sid 57<br />
Martin Normark<br />
12 Begrepp och förkortningar som används I denna rapport<br />
Busguardian Separat hårdvara som kontrollerar att en nod endast sänder då den<br />
skall sända.<br />
CAN Controller Area Network<br />
CON1, CON2 SMART-1´s två huvuddatorer<br />
DSP Digital Signal Processor<br />
EDF Earliest Deadline First<br />
ESA European Space Agency<br />
ESD Electro Static Discharge<br />
FlexRay Namn på ett nätverk<br />
FPGA Field Programmable gate array<br />
GRWRTU-kort Gyro and Reaction Wheel Real Time Unit<br />
GS Ground Station (vid radiokommunikation)<br />
Mbps Mega bits per second<br />
MOST Media Oriented Systems Transport<br />
NTU Node Timer Unit<br />
Payloadbussen Databuss för transport av information till och från intrument ombord<br />
på SMART-1<br />
RIBUS You are on the right bus<br />
SMART-1 Rymdbolagets senaste satellit<br />
SP Sveriges Provnings- och Forskningsinstitut<br />
Spacewire Namn på ett datanätverk<br />
SSC Swedish Space Corporation (Rymdbolagets engelska namn)<br />
STEAM Arbetsnamn på en eventuell framtida satellit hos rymdbolaget<br />
Systembussen Databuss för transport av information till och från systemdelar<br />
ombord på SMART-1<br />
TMTC Transponderenheten på en satellit<br />
TTCAN Time Triggered CAN<br />
TTP/C Time Triggered Protocoll version C<br />
USB Universal Serial Bus<br />
VHDL Very high speed integrated circuit (VHSIC) Hardware Description<br />
Language<br />
x-by-wire Samlingsnamn för bl.a. steer-, throttle-, och brake-by-wire.
Intern realtidskommunikation i framtida Svenska satelliter sid 58<br />
Martin Normark
Intern realtidskommunikation i framtida Svenska satelliter sid 59<br />
Martin Normark<br />
13 Referenser<br />
1. SMART-1 CAN Bus Hardware Architectural Description<br />
Document ID: S1-SU-HAD-26 Version 1.3 Swedish Space Corporation<br />
2. SMART-1 CAN controller user manual<br />
Document ID: S1-SU-MA-1 Version 3.5 Swedish Space Corporation<br />
3. CAN Specification 2.0B från http://www.can.bosch.com/content/Literature.html den 14/10-02<br />
4. Universal Serial Bus Specification Revision 2.0 från http://www.usb.org/developers/docs.html den<br />
25/9-02<br />
5. Space engineering, SpaceWire -Links, nodes routers and network. ECSS-E-50-12 Draft 3<br />
Utgiven av ESA Publication Division 22 april 2002<br />
http://www.estec.esa.nl/tech/spacewire/ den 24/8 -02<br />
6. Time-Triggered Protocol TTP/C Bus-Compatibility Specification<br />
Document number D-032-S-10-032<br />
TTTech Computerrechnik AG<br />
http://www.tttech.com<br />
7. TTP/C-C1 Communications Controller<br />
Austriamicrosystems<br />
http://www.tttech.com<br />
8. TTCAN IP Module User´s Manual Revision 1.5<br />
BOSCH<br />
http://www.can.bosch.com/content/Literature.html den 23/8 -02<br />
9. CAN Network with Time Triggered Communication<br />
av B. Müller, T Führer, F. Hartwich, R. Hugel och H. Weiler<br />
http://www.can.bosch.com/content/Literature.html den 23/8 -02<br />
10. FlexRay Requirements Specification ver.2.0.2<br />
http://www.flexray.com/<br />
11. OS8104 MOST Network Tranceiver, final data sheet, Dec 2000.<br />
Utgiven OASIS SiliconSystems AG<br />
http://www.mostnet.de/downloads/Specifications/ den 7/10 -02<br />
12. MOST Specification Rev 2.1 02/2001<br />
Utgiven av MOST Cooperation<br />
http://www.mostnet.de/downloads/Specifications/ den 7/10 –02<br />
13. EDF applied to CAN<br />
Gunnar Andersson<br />
Swedish Space Corporation<br />
14. ”Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment”<br />
C. L. LIU, MIT Massachusetts Institute of Technology, och James W. Layland, California Institute of<br />
Technology<br />
Kan laddas ned från: http://www.vmars.tuwien.ac.at/courses/betriebssysteme/artikel_liu73.pdf<br />
15. Dual Priority Assignment<br />
Alan Burns, University of York<br />
Kan laddas ned från: ftp://ftp.cs.york.ac.uk/pub/realtime/papers/dual.ps.Z
Intern realtidskommunikation i framtida Svenska satelliter sid 60<br />
Martin Normark<br />
13.1 Muntliga källor och Intervjuer<br />
16. Sytze Veldman, Rymdbolaget den 2/9 -02<br />
17. Bengt Holmqvist, Rymdbolaget den 4/9 -02<br />
18. Gunnar Andersson, Rymdbolaget 10/9 -02<br />
19. Leif Granholm, Rymdbolaget 8/9 -02<br />
20. Håkan Sivencrona SP, Statens Provningsinstitut<br />
13.2 Litteraturtips<br />
End-to-end arguments in system design<br />
J.H. Saltzer et. al.<br />
Laboratory for Computer Science, MIT.<br />
Från http://web.mit.edu/Saltzer/www/publications/endtoend/endtoend.pdf<br />
Bus Architectures For Safety-Critical Embedded Systems<br />
John Rushby, Computer Science Laboratory<br />
SRI International.<br />
Probabilistic End-to-End Delay Bound for Earliest Deadline First Scheduling.<br />
Matthew Andrews, Bell Laboratories.<br />
Från www.ieee-infocom.org/2000/papers/483.pdf<br />
Schemaläggning.<br />
Peter Loborg<br />
Institutionen för Datavetenskap, Universitetet i Linköping.<br />
Från www.ida.liu.se/~m_reap/TDDI80/OH-Fo5.ps samt<br />
www.ida.liu.se/~m_reap/TDDI80/OH-Fo6.ps<br />
SMART-1 System Unit Hardware Architectural Design Description<br />
Document ID: S1-SU-HAD-33 Version:1.2 Swedish Space Corporation<br />
CAN-skola på nätet:<br />
www.kvaser.com<br />
Information om Spacewire<br />
http://www.estec.esa.nl/tech/spacewire/<br />
Time Triggered Communication on CAN<br />
Timing in the TTCAN Network<br />
Fault tolerant TTCAN network<br />
Ovanstående artiklar är författade av B. Müller, T Führer, F. Hartwich, R. Hugel och H. Weiler från<br />
BOSCH och kan laddas ned från http://www.can.bosch.com/content/Literature.html<br />
TTCAN Testchip på http://www.can.bosch.com/content/TTCAN_TC.html<br />
Advantages with a global clock in CAN system av Lars-Berno Fredriksson, Kvaser AB
Intern realtidskommunikation i framtida Svenska satelliter sid 61<br />
Martin Normark<br />
Appendix A Simulering av EDF-algoritm<br />
Nedan återfinns utdrag ur simuleringskörningarna, varje rad motsvarar ett meddelande och under<br />
nodernas respektive kolumn finns räknarens värde samt aktuell prioritet redovisat som (räknarens<br />
värde : grundprio + lågprio/högprio) värdet för låg- resp högprio är 0 resp. 64. Sist i varje rad<br />
redovisas vilken nod som fick sända under aktuell runda, dvs den nod med lägst aktuell prioritet. Av<br />
praktiska skäl är en stor del av sändingarna ej redovisade, dock finns alla med i den sammanfattning<br />
som avslutar varje körning.<br />
De två första körningarna har följande inställningar:<br />
UA=1/3. Grundprio=0. Initialvärde för räknare=3.<br />
UB=1/6. Grundprio=1. Initialvärde för räknare=6.<br />
UC=1/10. Grundprio=2. Initialvärde för räknare=10.<br />
UD=1/13. Grundprio=3. Initialvärde för räknare=13.<br />
UE=1/22. Grundprio=4. Initialvärde för räknare=22.<br />
UF=1/23. Grundprio=5. Initialvärde för räknare=23.<br />
UG=1/24. Grundprio=6. Initialvärde för räknare=24.<br />
UH=1/25. Grundprio=7. Initialvärde för räknare=25.<br />
Vilket ger<br />
U<br />
tot<br />
= ∑U<br />
i<br />
i=<br />
A,<br />
B,<br />
C...<br />
=<br />
0.<br />
848<br />
≤ 1<br />
Körning där räknaren värde begränsas till dubbla initialvärdet.<br />
setting up initial conditions<br />
nod-A nod-B nod-C nod-D nod-E nod-F nod-G nod-H s„ndare<br />
--------------------------------------------------------<br />
2: 0 5: 1 9: 2 12: 3 21: 4 22: 5 23: 6 24: 7 tx = 0<br />
4:64 4: 1 8: 2 11: 3 20: 4 21: 5 22: 6 23: 7 tx = 1<br />
3:64 9:65 7: 2 10: 3 19: 4 20: 5 21: 6 22: 7 tx = 2<br />
2: 0 8:65 16:66 9: 3 18: 4 19: 5 20: 6 21: 7 tx = 0<br />
4:64 7:65 15:66 8: 3 17: 4 18: 5 19: 6 20: 7 tx = 3<br />
3:64 6:65 14:66 20:67 16: 4 17: 5 18: 6 19: 7 tx = 4<br />
2: 0 5: 1 13:66 19:67 37:68 16: 5 17: 6 18: 7 tx = 0<br />
4:64 4: 1 12:66 18:67 36:68 15: 5 16: 6 17: 7 tx = 1<br />
3:64 9:65 11:66 17:67 35:68 14: 5 15: 6 16: 7 tx = 5<br />
2: 0 8:65 10:66 16:67 34:68 36:69 14: 6 15: 7 tx = 0<br />
4:64 7:65 9: 2 15:67 33:68 35:69 13: 6 14: 7 tx = 2<br />
3:64 6:65 18:66 14:67 32:68 34:69 12: 6 13: 7 tx = 6<br />
2: 0 5: 1 17:66 13:67 31:68 33:69 35:70 12: 7 tx = 0<br />
4:64 4: 1 16:66 12: 3 30:68 32:69 34:70 11: 7 tx = 1<br />
3:64 9:65 15:66 11: 3 29:68 31:69 33:70 10: 7 tx = 3<br />
2: 0 8:65 14:66 23:67 28:68 30:69 32:70 9: 7 tx = 0<br />
4:64 7:65 13:66 22:67 27:68 29:69 31:70 8: 7 tx = 7<br />
3:64 6:65 12:66 21:67 26:68 28:69 30:70 32:71 tx = 0<br />
5:64 5: 1 11:66 20:67 25:68 27:69 29:70 31:71 tx = 1<br />
4:64 10:65 10:66 19:67 24:68 26:69 28:70 30:71 tx = 0<br />
5:64 9:65 9: 2 18:67 23:68 25:69 27:70 29:71 tx = 2<br />
4:64 8:65 18:66 17:67 22:68 24:69 26:70 28:71 tx = 0<br />
5:64 7:65 17:66 16:67 21: 4 23:69 25:70 27:71 tx = 4<br />
4:64 6:65 16:66 15:67 42:68 22: 5 24:70 26:71 tx = 5<br />
3:64 5: 1 15:66 14:67 41:68 44:69 23: 6 25:71 tx = 1
Intern realtidskommunikation i framtida Svenska satelliter sid 62<br />
Martin Normark<br />
2: 0 10:65 14:66 13:67 40:68 43:69 22: 6 24: 7 tx = 0<br />
4:64 9:65 13:66 12: 3 39:68 42:69 21: 6 23: 7 tx = 3<br />
3:64 8:65 12:66 24:67 38:68 41:69 20: 6 22: 7 tx = 6<br />
2: 0 7:65 11:66 23:67 37:68 40:69 43:70 21: 7 tx = 0<br />
4:64 6:65 10:66 22:67 36:68 39:69 42:70 20: 7 tx = 7<br />
3:64 5: 1 9: 2 21:67 35:68 38:69 41:70 44:71 tx = 1<br />
2: 0 10:65 8: 2 20:67 34:68 37:69 40:70 43:71 tx = 0<br />
4:64 9:65 7: 2 19:67 33:68 36:69 39:70 42:71 tx = 2<br />
3:64 8:65 16:66 18:67 32:68 35:69 38:70 41:71 tx = 0<br />
5:64 7:65 15:66 17:67 31:68 34:69 37:70 40:71 tx = 0<br />
5:64 6:65 14:66 16:67 30:68 33:69 36:70 39:71 tx = 0<br />
5:64 5: 1 13:66 15:67 29:68 32:69 35:70 38:71 tx = 1<br />
4:64 10:65 12:66 14:67 28:68 31:69 34:70 37:71 tx = 0<br />
5:64 9:65 11:66 13:67 27:68 30:69 33:70 36:71 tx = 0<br />
5:64 8:65 10:66 12: 3 26:68 29:69 32:70 35:71 tx = 3<br />
4:64 7:65 9: 2 24:67 25:68 28:69 31:70 34:71 tx = 2<br />
|<br />
|<br />
|<br />
|<br />
number of transmissions rounds: 6360<br />
node 0: 0.485 used bandwidth, 0.333 guaranteed bandwidth<br />
node 1: 0.167 used bandwidth, 0.167 guaranteed bandwidth<br />
node 2: 0.100 used bandwidth, 0.100 guaranteed bandwidth<br />
node 3: 0.077 used bandwidth, 0.077 guaranteed bandwidth<br />
node 4: 0.046 used bandwidth, 0.045 guaranteed bandwidth<br />
node 5: 0.044 used bandwidth, 0.043 guaranteed bandwidth<br />
node 6: 0.042 used bandwidth, 0.042 guaranteed bandwidth<br />
node 7: 0.040 used bandwidth, 0.040 guaranteed bandwidth<br />
guaranteed bus utilisation = 0.848<br />
actual bus utilisation = 1.000<br />
number of missed deadlines 0<br />
Körning där nod avstår från sändning då räknaren överstiger dubbla initialvärdet<br />
setting up initial conditions<br />
nod-A nod-B nod-C nod-D nod-E nod-F nod-G nod-H s„ndare<br />
--------------------------------------------------------<br />
2: 0 5: 1 9: 2 12: 3 21: 4 22: 5 23: 6 24: 7 tx = 0<br />
4:64 4: 1 8: 2 11: 3 20: 4 21: 5 22: 6 23: 7 tx = 1<br />
3:64 9:65 7: 2 10: 3 19: 4 20: 5 21: 6 22: 7 tx = 2<br />
2: 0 8:65 16:66 9: 3 18: 4 19: 5 20: 6 21: 7 tx = 0<br />
4:64 7:65 15:66 8: 3 17: 4 18: 5 19: 6 20: 7 tx = 3<br />
3:64 6:65 14:66 20:67 16: 4 17: 5 18: 6 19: 7 tx = 4<br />
2: 0 5: 1 13:66 19:67 37:68 16: 5 17: 6 18: 7 tx = 0<br />
4:64 4: 1 12:66 18:67 36:68 15: 5 16: 6 17: 7 tx = 1<br />
3:64 9:65 11:66 17:67 35:68 14: 5 15: 6 16: 7 tx = 5<br />
2: 0 8:65 10:66 16:67 34:68 36:69 14: 6 15: 7 tx = 0<br />
4:64 7:65 9: 2 15:67 33:68 35:69 13: 6 14: 7 tx = 2<br />
3:64 6:65 18:66 14:67 32:68 34:69 12: 6 13: 7 tx = 6<br />
2: 0 5: 1 17:66 13:67 31:68 33:69 35:70 12: 7 tx = 0
Intern realtidskommunikation i framtida Svenska satelliter sid 63<br />
Martin Normark<br />
4:64 4: 1 16:66 12: 3 30:68 32:69 34:70 11: 7 tx = 1<br />
3:64 9:65 15:66 11: 3 29:68 31:69 33:70 10: 7 tx = 3<br />
2: 0 8:65 14:66 23:67 28:68 30:69 32:70 9: 7 tx = 0<br />
4:64 7:65 13:66 22:67 27:68 29:69 31:70 8: 7 tx = 7<br />
3:64 6:65 12:66 21:67 26:68 28:69 30:70 32:71 tx = 0<br />
5:64 5: 1 11:66 20:67 25:68 27:69 29:70 31:71 tx = 1<br />
4:64 10:65 10:66 19:67 24:68 26:69 28:70 30:71 tx = 0<br />
6:64 9:65 9: 2 18:67 23:68 25:69 27:70 29:71 tx = 2<br />
5:64 8:65 18:66 17:67 22:68 24:69 26:70 28:71 tx = 0<br />
6:64 7:65 17:66 16:67 21: 4 23:69 25:70 27:71 tx = 4<br />
5:64 6:65 16:66 15:67 42:68 22: 5 24:70 26:71 tx = 5<br />
4:64 5: 1 15:66 14:67 41:68 44:69 23: 6 25:71 tx = 1<br />
3:64 10:65 14:66 13:67 40:68 43:69 22: 6 24: 7 tx = 6<br />
2: 0 9:65 13:66 12: 3 39:68 42:69 45:70 23: 7 tx = 0<br />
4:64 8:65 12:66 11: 3 38:68 41:69 44:70 22: 7 tx = 3<br />
3:64 7:65 11:66 23:67 37:68 40:69 43:70 21: 7 tx = 7<br />
2: 0 6:65 10:66 22:67 36:68 39:69 42:70 45:71 tx = 0<br />
4:64 5: 1 9: 2 21:67 35:68 38:69 41:70 44:71 tx = 1<br />
3:64 10:65 8: 2 20:67 34:68 37:69 40:70 43:71 tx = 2<br />
2: 0 9:65 17:66 19:67 33:68 36:69 39:70 42:71 tx = 0<br />
4:64 8:65 16:66 18:67 32:68 35:69 38:70 41:71 tx = 0<br />
6:64 7:65 15:66 17:67 31:68 34:69 37:70 40:71 tx = 1<br />
5:64 12:65 14:66 16:67 30:68 33:69 36:70 39:71 tx = 0<br />
6:64 11:65 13:66 15:67 29:68 32:69 35:70 38:71 tx = 1<br />
5:64 12:65 12:66 14:67 28:68 31:69 34:70 37:71 tx = 0<br />
6:64 11:65 11:66 13:67 27:68 30:69 33:70 36:71 tx = 1<br />
5:64 12:65 10:66 12: 3 26:68 29:69 32:70 35:71 tx = 3<br />
4:64 11:65 9: 2 24:67 25:68 28:69 31:70 34:71 tx = 2<br />
3:64 10:65 18:66 23:67 24:68 27:69 30:70 33:71 tx = 0<br />
5:64 9:65 17:66 22:67 23:68 26:69 29:70 32:71 tx = 0<br />
6:64 8:65 16:66 21:67 22:68 25:69 28:70 31:71 tx = 1<br />
5:64 12:65 15:66 20:67 21: 4 24:69 27:70 30:71 tx = 4<br />
4:64 11:65 14:66 19:67 42:68 23:69 26:70 29:71 tx = 0<br />
6:64 10:65 13:66 18:67 41:68 22: 5 25:70 28:71 tx = 5<br />
5:64 9:65 12:66 17:67 40:68 44:69 24:70 27:71 tx = 0<br />
6:64 8:65 11:66 16:67 39:68 43:69 23: 6 26:71 tx = 6<br />
5:64 7:65 10:66 15:67 38:68 42:69 46:70 25:71 tx = 0<br />
6:64 6:65 9: 2 14:67 37:68 41:69 45:70 24: 7 tx = 2<br />
5:64 5: 1 18:66 13:67 36:68 40:69 44:70 23: 7 tx = 1<br />
4:64 10:65 17:66 12: 3 35:68 39:69 43:70 22: 7 tx = 3<br />
3:64 9:65 16:66 24:67 34:68 38:69 42:70 21: 7 tx = 7<br />
2: 0 8:65 15:66 23:67 33:68 37:69 41:70 45:71 tx = 0<br />
4:64 7:65 14:66 22:67 32:68 36:69 40:70 44:71 tx = 0<br />
6:64 6:65 13:66 21:67 31:68 35:69 39:70 43:71 tx = 1<br />
|<br />
|<br />
|<br />
|<br />
number of transmissions rounds: 8273<br />
node 0: 0.412 used bandwidth, 0.333 guaranteed bandwidth<br />
node 1: 0.240 used bandwidth, 0.167 guaranteed bandwidth
Intern realtidskommunikation i framtida Svenska satelliter sid 64<br />
Martin Normark<br />
node 2: 0.100 used bandwidth, 0.100 guaranteed bandwidth<br />
node 3: 0.077 used bandwidth, 0.077 guaranteed bandwidth<br />
node 4: 0.046 used bandwidth, 0.045 guaranteed bandwidth<br />
node 5: 0.044 used bandwidth, 0.043 guaranteed bandwidth<br />
node 6: 0.042 used bandwidth, 0.042 guaranteed bandwidth<br />
node 7: 0.040 used bandwidth, 0.040 guaranteed bandwidth<br />
guaranteed bus utilisation = 0.848<br />
actual bus utilisation = 1.000<br />
number of missed deadlines 0<br />
Körning där 100% av bussbandbredden allokeras och fördelas på ett dåligt sätt<br />
Inställningar:<br />
UA=1/3. Grundprio=0. Initialvärde för räknare=3.<br />
UB=1/5. Grundprio=1. Initialvärde för räknare=5.<br />
UC=1/6. Grundprio=2. Initialvärde för räknare=6.<br />
UD=1/11. Grundprio=3. Initialvärde för räknare=11.<br />
UE=1/13. Grundprio=4. Initialvärde för räknare=13.<br />
UF=1/22. Grundprio=5. Initialvärde för räknare=22.<br />
UG=1/23. Grundprio=6. Initialvärde för räknare=23.<br />
UH=1/24. Grundprio=7. Initialvärde för räknare=24.<br />
Vilket ger<br />
U<br />
tot<br />
= ∑U<br />
i<br />
i=<br />
A,<br />
B,<br />
C...<br />
=<br />
0.<br />
998<br />
≤ 1<br />
setting up initial conditions<br />
nod-A nod-B nod-C nod-D nod-E nod-F nod-G nod-H s„ndare<br />
--------------------------------------------------------<br />
2: 0 4: 1 5: 2 10: 3 12: 4 21: 5 22: 6 23: 7 tx = 0<br />
4:14 3: 1 4: 2 9: 3 11: 4 20: 5 21: 6 22: 7 tx = 1<br />
3:14 7:13 3: 2 8: 3 10: 4 19: 5 20: 6 21: 7 tx = 2<br />
2: 0 6:13 8:12 7: 3 9: 4 18: 5 19: 6 20: 7 tx = 0<br />
4:14 5:13 7:12 6: 3 8: 4 17: 5 18: 6 19: 7 tx = 3<br />
3:14 4: 1 6:12 16:11 7: 4 16: 5 17: 6 18: 7 tx = 1<br />
2: 0 8:13 5: 2 15:11 6: 4 15: 5 16: 6 17: 7 tx = 0<br />
4:14 7:13 4: 2 14:11 5: 4 14: 5 15: 6 16: 7 tx = 2<br />
3:14 6:13 9:12 13:11 4: 4 13: 5 14: 6 15: 7 tx = 4<br />
2: 0 5:13 8:12 12:11 16:10 12: 5 13: 6 14: 7 tx = 0<br />
4:14 4: 1 7:12 11:11 15:10 11: 5 12: 6 13: 7 tx = 1<br />
3:14 8:13 6:12 10: 3 14:10 10: 5 11: 6 12: 7 tx = 3<br />
2: 0 7:13 5: 2 20:11 13:10 9: 5 10: 6 11: 7 tx = 0<br />
4:14 6:13 4: 2 19:11 12: 4 8: 5 9: 6 10: 7 tx = 2<br />
3:14 5:13 9:12 18:11 11: 4 7: 5 8: 6 9: 7 tx = 4<br />
2: 0 4: 1 8:12 17:11 23:10 6: 5 7: 6 8: 7 tx = 0<br />
4:14 3: 1 7:12 16:11 22:10 5: 5 6: 6 7: 7 tx = 1<br />
3:14 7:13 6:12 15:11 21:10 4: 5 5: 6 6: 7 tx = 5<br />
2: 0 6:13 5: 2 14:11 20:10 25: 9 4: 6 5: 7 tx = 0<br />
4:14 5:13 4: 2 13:11 19:10 24: 9 3: 6 4: 7 tx = 2
Intern realtidskommunikation i framtida Svenska satelliter sid 65<br />
Martin Normark<br />
3:14 4: 1 9:12 12:11 18:10 23: 9 2: 6 3: 7 tx = 1<br />
2: 0 8:13 8:12 11:11 17:10 22: 9 1: 6 2: 7 tx = 0<br />
4:14 7:13 7:12 10: 3 16:10 21: 5 0: 6 1: 7 tx = 3<br />
3:14 6:13 6:12 20:11 15:10 20: 5 -1: 6 0: 7 tx = 5<br />
2: 0 5:13 5: 2 19:11 14:10 41: 9 -2: 6 -1: 7 tx = 0<br />
4:14 4: 1 4: 2 18:11 13:10 40: 9 -3: 6 -2: 7 tx = 1<br />
3:14 8:13 3: 2 17:11 12: 4 39: 9 -4: 6 -3: 7 tx = 2<br />
2: 0 7:13 8:12 16:11 11: 4 38: 9 -5: 6 -4: 7 tx = 0<br />
4:14 6:13 7:12 15:11 10: 4 37: 9 -6: 6 -5: 7 tx = 4<br />
3:14 5:13 6:12 14:11 22:10 36: 9 -7: 6 -6: 7 tx = 6<br />
2: 0 4: 1 5: 2 13:11 21:10 35: 9 15: 6 -7: 7 tx = 0<br />
4:14 3: 1 4: 2 12:11 20:10 34: 9 14: 6 -8: 7 tx = 1<br />
3:14 7:13 3: 2 11:11 19:10 33: 9 13: 6 -9: 7 tx = 2<br />
2: 0 6:13 8:12 10: 3 18:10 32: 9 12: 6-10: 7 tx = 0<br />
4:14 5:13 7:12 9: 3 17:10 31: 9 11: 6-11: 7 tx = 3<br />
3:14 4: 1 6:12 19:11 16:10 30: 9 10: 6-12: 7 tx = 1<br />
2: 0 8:13 5: 2 18:11 15:10 29: 9 9: 6-13: 7 tx = 0<br />
4:14 7:13 4: 2 17:11 14:10 28: 9 8: 6-14: 7 tx = 2<br />
3:14 6:13 9:12 16:11 13:10 27: 9 7: 6-15: 7 tx = 6<br />
2: 0 5:13 8:12 15:11 12: 4 26: 9 29: 8-16: 7 tx = 0<br />
4:14 4: 1 7:12 14:11 11: 4 25: 9 28: 8-17: 7 tx = 1<br />
3:14 8:13 6:12 13:11 10: 4 24: 9 27: 8-18: 7 tx = 4<br />
2: 0 7:13 5: 2 12:11 22:10 23: 9 26: 8-19: 7 tx = 0<br />
4:14 6:13 4: 2 11:11 21:10 22: 9 25: 8-20: 7 tx = 2<br />
3:14 5:13 9:12 10: 3 20:10 21: 5 24: 8-21: 7 tx = 3<br />
2: 0 4: 1 8:12 20:11 19:10 20: 5 23: 8-22: 7 tx = 0<br />
4:14 3: 1 7:12 19:11 18:10 19: 5 22: 6-23: 7 tx = 1<br />
3:14 7:13 6:12 18:11 17:10 18: 5 21: 6-24: 7 tx = 5<br />
2: 0 6:13 5: 2 17:11 16:10 39: 9 20: 6-25: 7 tx = 0<br />
4:14 5:13 4: 2 16:11 15:10 38: 9 19: 6-26: 7 tx = 2<br />
3:14 4: 1 9:12 15:11 14:10 37: 9 18: 6-27: 7 tx = 1<br />
2: 0 8:13 8:12 14:11 13:10 36: 9 17: 6-28: 7 tx = 0<br />
4:14 7:13 7:12 13:11 12: 4 35: 9 16: 6-29: 7 tx = 4<br />
3:14 6:13 6:12 12:11 24:10 34: 9 15: 6-30: 7 tx = 6<br />
2: 0 5:13 5: 2 11:11 23:10 33: 9 37: 8-31: 7 tx = 0<br />
4:14 4: 1 4: 2 10: 3 22:10 32: 9 36: 8-32: 7 tx = 1<br />
3:14 8:13 3: 2 9: 3 21:10 31: 9 35: 8-33: 7 tx = 2<br />
2: 0 7:13 8:12 8: 3 20:10 30: 9 34: 8-34: 7 tx = 0<br />
4:14 6:13 7:12 7: 3 19:10 29: 9 33: 8-35: 7 tx = 3<br />
3:14 5:13 6:12 17:11 18:10 28: 9 32: 8-36: 7 tx = 7<br />
2: 0 4: 1 5: 2 16:11 17:10 27: 9 31: 8-13: 7 tx = 0<br />
4:14 3: 1 4: 2 15:11 16:10 26: 9 30: 8-14: 7 tx = 1<br />
3:14 7:13 3: 2 14:11 15:10 25: 9 29: 8-15: 7 tx = 2<br />
2: 0 6:13 8:12 13:11 14:10 24: 9 28: 8-16: 7 tx = 0<br />
4:14 5:13 7:12 12:11 13:10 23: 9 27: 8-17: 7 tx = 7<br />
3:14 4: 1 6:12 11:11 12: 4 22: 9 26: 8 6: 7 tx = 1<br />
2: 0 8:13 5: 2 10: 3 11: 4 21: 5 25: 8 5: 7 tx = 0<br />
4:14 7:13 4: 2 9: 3 10: 4 20: 5 24: 8 4: 7 tx = 2<br />
|<br />
|<br />
|<br />
|<br />
number of transmissions rounds: 18324
Intern realtidskommunikation i framtida Svenska satelliter sid 66<br />
Martin Normark<br />
node 0: 0.333 used bandwidth, 0.333 guaranteed bandwidth<br />
node 1: 0.200 used bandwidth, 0.200 guaranteed bandwidth<br />
node 2: 0.167 used bandwidth, 0.167 guaranteed bandwidth<br />
node 3: 0.091 used bandwidth, 0.091 guaranteed bandwidth<br />
node 4: 0.077 used bandwidth, 0.077 guaranteed bandwidth<br />
node 5: 0.045 used bandwidth, 0.045 guaranteed bandwidth<br />
node 6: 0.043 used bandwidth, 0.043 guaranteed bandwidth<br />
node 7: 0.043 used bandwidth, 0.042 guaranteed bandwidth<br />
guaranteed bus utilisation = 0.998<br />
actual bus utilisation = 1.000<br />
number of missed deadlines 897<br />
Körning där 100% av bussbandbredden allokeras och fördelas på ett bra sätt<br />
Inställningar:<br />
UA=1/4. Grundprio=0. Initialvärde för räknare=4.<br />
UB=1/4. Grundprio=1. Initialvärde för räknare=4.<br />
UC=1/5. Grundprio=2. Initialvärde för räknare=5.<br />
UD=1/10. Grundprio=3. Initialvärde för räknare=10.<br />
UE=1/20. Grundprio=4. Initialvärde för räknare=20.<br />
UF=1/20. Grundprio=5. Initialvärde för räknare=20.<br />
UG=1/20. Grundprio=6. Initialvärde för räknare=20.<br />
UH=1/20. Grundprio=7. Initialvärde för räknare=20.<br />
Vilket ger<br />
U<br />
tot<br />
= ∑U<br />
i<br />
i=<br />
A,<br />
B,<br />
C...<br />
= 1<br />
Som synes ger detta en tydlig periodicitet som är markerad med tjockare stil.<br />
setting up initial conditions<br />
nod-A nod-B nod-C nod-D nod-E nod-F nod-G nod-H s„ndare<br />
--------------------------------------------------------<br />
3: 0 3: 1 4: 2 9: 3 19: 4 19: 5 19: 6 19: 7 tx = 0<br />
6:64 2: 1 3: 2 8: 3 18: 4 18: 5 18: 6 18: 7 tx = 1<br />
5:64 5:65 2: 2 7: 3 17: 4 17: 5 17: 6 17: 7 tx = 2<br />
4:64 4:65 6:66 6: 3 16: 4 16: 5 16: 6 16: 7 tx = 3<br />
3: 0 3: 1 5:66 15:67 15: 4 15: 5 15: 6 15: 7 tx = 0<br />
6:64 2: 1 4: 2 14:67 14: 4 14: 5 14: 6 14: 7 tx = 1<br />
5:64 5:65 3: 2 13:67 13: 4 13: 5 13: 6 13: 7 tx = 2<br />
4:64 4:65 7:66 12:67 12: 4 12: 5 12: 6 12: 7 tx = 4<br />
3: 0 3: 1 6:66 11:67 31:68 11: 5 11: 6 11: 7 tx = 0<br />
6:64 2: 1 5:66 10:67 30:68 10: 5 10: 6 10: 7 tx = 1<br />
5:64 5:65 4: 2 9: 3 29:68 9: 5 9: 6 9: 7 tx = 2<br />
4:64 4:65 8:66 8: 3 28:68 8: 5 8: 6 8: 7 tx = 3<br />
3: 0 3: 1 7:66 17:67 27:68 7: 5 7: 6 7: 7 tx = 0<br />
6:64 2: 1 6:66 16:67 26:68 6: 5 6: 6 6: 7 tx = 1
Intern realtidskommunikation i framtida Svenska satelliter sid 67<br />
Martin Normark<br />
5:64 5:65 5:66 15:67 25:68 5: 5 5: 6 5: 7 tx = 5<br />
4:64 4:65 4: 2 14:67 24:68 24:69 4: 6 4: 7 tx = 2<br />
3: 0 3: 1 8:66 13:67 23:68 23:69 3: 6 3: 7 tx = 0<br />
6:64 2: 1 7:66 12:67 22:68 22:69 2: 6 2: 7 tx = 1<br />
5:64 5:65 6:66 11:67 21:68 21:69 1: 6 1: 7 tx = 6<br />
4:64 4:65 5:66 10:67 20:68 20:69 20:70 0: 7 tx = 7<br />
3: 0 3: 1 4: 2 9: 3 19: 4 19: 5 19: 6 19: 7 tx = 0<br />
6:64 2: 1 3: 2 8: 3 18: 4 18: 5 18: 6 18: 7 tx = 1<br />
5:64 5:65 2: 2 7: 3 17: 4 17: 5 17: 6 17: 7 tx = 2<br />
4:64 4:65 6:66 6: 3 16: 4 16: 5 16: 6 16: 7 tx = 3<br />
3: 0 3: 1 5:66 15:67 15: 4 15: 5 15: 6 15: 7 tx = 0<br />
6:64 2: 1 4: 2 14:67 14: 4 14: 5 14: 6 14: 7 tx = 1<br />
5:64 5:65 3: 2 13:67 13: 4 13: 5 13: 6 13: 7 tx = 2<br />
4:64 4:65 7:66 12:67 12: 4 12: 5 12: 6 12: 7 tx = 4<br />
3: 0 3: 1 6:66 11:67 31:68 11: 5 11: 6 11: 7 tx = 0<br />
6:64 2: 1 5:66 10:67 30:68 10: 5 10: 6 10: 7 tx = 1<br />
5:64 5:65 4: 2 9: 3 29:68 9: 5 9: 6 9: 7 tx = 2<br />
4:64 4:65 8:66 8: 3 28:68 8: 5 8: 6 8: 7 tx = 3<br />
3: 0 3: 1 7:66 17:67 27:68 7: 5 7: 6 7: 7 tx = 0<br />
6:64 2: 1 6:66 16:67 26:68 6: 5 6: 6 6: 7 tx = 1<br />
5:64 5:65 5:66 15:67 25:68 5: 5 5: 6 5: 7 tx = 5<br />
4:64 4:65 4: 2 14:67 24:68 24:69 4: 6 4: 7 tx = 2<br />
3: 0 3: 1 8:66 13:67 23:68 23:69 3: 6 3: 7 tx = 0<br />
6:64 2: 1 7:66 12:67 22:68 22:69 2: 6 2: 7 tx = 1<br />
5:64 5:65 6:66 11:67 21:68 21:69 1: 6 1: 7 tx = 6<br />
4:64 4:65 5:66 10:67 20:68 20:69 20:70 0: 7 tx = 7<br />
3: 0 3: 1 4: 2 9: 3 19: 4 19: 5 19: 6 19: 7 tx = 0<br />
6:64 2: 1 3: 2 8: 3 18: 4 18: 5 18: 6 18: 7 tx = 1<br />
5:64 5:65 2: 2 7: 3 17: 4 17: 5 17: 6 17: 7 tx = 2<br />
4:64 4:65 6:66 6: 3 16: 4 16: 5 16: 6 16: 7 tx = 3<br />
3: 0 3: 1 5:66 15:67 15: 4 15: 5 15: 6 15: 7 tx = 0<br />
6:64 2: 1 4: 2 14:67 14: 4 14: 5 14: 6 14: 7 tx = 1<br />
5:64 5:65 3: 2 13:67 13: 4 13: 5 13: 6 13: 7 tx = 2<br />
4:64 4:65 7:66 12:67 12: 4 12: 5 12: 6 12: 7 tx = 4<br />
3: 0 3: 1 6:66 11:67 31:68 11: 5 11: 6 11: 7 tx = 0<br />
|<br />
|<br />
|<br />
|<br />
number of transmissions rounds: 2765<br />
node 0: 0.250 used bandwidth, 0.250 guaranteed bandwidth<br />
node 1: 0.250 used bandwidth, 0.250 guaranteed bandwidth<br />
node 2: 0.200 used bandwidth, 0.200 guaranteed bandwidth<br />
node 3: 0.100 used bandwidth, 0.100 guaranteed bandwidth<br />
node 4: 0.050 used bandwidth, 0.050 guaranteed bandwidth<br />
node 5: 0.050 used bandwidth, 0.050 guaranteed bandwidth<br />
node 6: 0.050 used bandwidth, 0.050 guaranteed bandwidth<br />
node 7: 0.050 used bandwidth, 0.050 guaranteed bandwidth<br />
guaranteed bus utilisation = 1.000<br />
actual bus utilisation = 1.000
Intern realtidskommunikation i framtida Svenska satelliter sid 68<br />
Martin Normark<br />
number of missed deadlines 0<br />
C-Kod för simulering av EDF-noder i CAN-nätverk<br />
#include <br />
#include<br />
#include <br />
#define max_nodes 8<br />
#define low_prio_base 80<br />
#define sparebit 64 //High or low prio<br />
char deadline[max_nodes] = {3,6,10,13,22,23,24,25};<br />
char basic_prio[max_nodes] = {0,1,2,3,4,5,6,7};<br />
char prio[max_nodes];<br />
int counter[max_nodes];<br />
int number_of_transmissions[max_nodes] = {0,0,0,0,0,0,0,0};<br />
char over_active_node[max_nodes] = {1,1,1,1,1,1,1,1};<br />
char tx_request[max_nodes] = {0,0,0,0,0,0,0,0};<br />
int missed_deadlines = 0;<br />
long number_of_rounds = 0;<br />
/*********************NYA<br />
KONSTANTER************************************/<br />
char rescent_tx[max_nodes] = {0,0,0,0,0,0,0,0};<br />
/*******************************************************************<br />
****/<br />
/*******************************************************************<br />
****/<br />
void handle_prio(int node)<br />
{<br />
if (counter[node] > 2*deadline[node])<br />
{<br />
tx_request[node] = 0;<br />
counter[node] = 2*deadline[node]+1;<br />
}<br />
else tx_request[node] = 1;<br />
if (counter[node]
Intern realtidskommunikation i framtida Svenska satelliter sid 69<br />
Martin Normark<br />
// prio[node] = low_prio_base + basic_prio[node]; //basic<br />
idea<br />
// #endif<br />
// }<br />
// }<br />
//}<br />
/*******************************************************************<br />
****/<br />
void next_round(void)<br />
{<br />
int i,j;<br />
char next_to_transmit = 0;<br />
char earliest_deadline = 127;<br />
number_of_rounds++;<br />
for(i=0;i
Intern realtidskommunikation i framtida Svenska satelliter sid 70<br />
Martin Normark<br />
float actual =0;<br />
float utilisation = 0;<br />
printf("setting up initial conditions\n");<br />
printf(" nod-A nod-B nod-C nod-D nod-E nod-F nod-G nod-H<br />
s„ndare\n");<br />
printf("--------------------------------------------------------<br />
\n");<br />
for(i=0;i
Intern realtidskommunikation i framtida Svenska satelliter sid 71<br />
Martin Normark<br />
Appendix B Intervjuer av Rymdbolagspersonal<br />
Frågor<br />
Genom att intervjua SSC-personal måste följande frågor få svar:<br />
1. Framtida bandbreddsbehov<br />
2. Behov av redundans, parallella sändningar på flera linor med röstning eller gå över till redundant<br />
bus vid problem eller helt annan typ av lösning<br />
3. Kan det finnas anledning att endast förändra system bussen och inte payload bussen.<br />
4. Fysiska avstånd -kabellängder<br />
5. Felhantering??? Krävs det mer än det CAN erbjuder idag<br />
6. Feldetektion??? Idag och i framtiden?<br />
7. Hur övervakas nätet<br />
8. Robusthet??? Hur bedöms det???<br />
9. Måste ACKet komma från den nod som meddelandet skall till eller kan det som i CAN komma<br />
från vilken som helst av noder.<br />
10. Önskas ett routat nät, typ Spacewire, eller är CAN-varianten att föredra<br />
11. Hur synkroniserade måste noderna vara<br />
12. Hur lång tid får det ta att skicka ett meddelande<br />
13. Hur är noderna programmerade, eventstyrda eller tidsstyrda med deadlines eller…<br />
14. Kan meddelanden skickas spontant eller skall varje meddelandetyp erhålla en tidslucka<br />
15. Eller skall både och tillåtas<br />
16. Med hur många Hz jobbar en framtida reglerloop<br />
17. Förekommer det olika modes med vitt skilda typer av kommunikationsmönster på rymdskeppet<br />
18. Vilka kända problem, ej av Bug-karaktär men som drabbar vår tillämpning, finns i dagens CAN<br />
och hur allvarliga är dessa<br />
19. Vilka kända buggar finns i CAN.<br />
20. Finns det ett självändamål med en fortsättning med CAN (uppgraderat till TTCAN), om så är<br />
fallet kan någon av punkterna ovan stryka på foten<br />
21. Är vissa nätverk enklare/snabbare/billigare att implementera än andra och hur mycken vikt skall<br />
läggas därvid<br />
22. Är vissa nätverk mer flyttbara (än andra nätverk)mellan olika FPGA och i såfall vilka<br />
23. Kan det vara viktbesparande att sända informationen i nätverket på t.ex en kraftkabel eller är detta<br />
en befängd idé<br />
Svar på frågor Sytze Veldman<br />
1. Bandbredd<br />
Systembuss: < 1 Mbps med undantag för modes då t.ex. stjärnsensor skickar hel bild eller då GPS<br />
skickar all möjlig information om alla GPS-satelliter. Detta förekommer sällan och behöver ej<br />
tilldelas, på förhand, exklusiv tillgång till bussen.<br />
Payloadbuss: I nuläget, i samband med STEAM-studien, 50 kbps med radiometer och optisk<br />
spektrograf. Kommande fas A studier på STEAM ska ge en mer detaljerad bild av instrumentens<br />
bandbreddsbehov. Dock kan andra instrument såsom radar eller kamera tänkas varvid trafiken<br />
kommer att överstiga 1 Mbps<br />
Länk mellan mass-minne och TMTC: >= 1Mbps för downlink av mätdata i fallet av STEAM.<br />
2. Redundans<br />
Ja, allt måste vara redundant.<br />
3. Förändring av endast en buss<br />
Ja, men inte i onödan.<br />
Länk mellan mass-minne och TMTC måste vara snabbare än CAN, kan tänkas integreras med<br />
övriga payloadbussen.<br />
4. Längd på kablar
Intern realtidskommunikation i framtida Svenska satelliter sid 72<br />
Martin Normark<br />
Upp till 2m<br />
8. Acknowledge<br />
Säkrare med ACK från adresserad nod<br />
12. Noders programmering<br />
System t.ex. attityd är tidsstyrd 1Hz.<br />
Payload kan vara eventstyrd<br />
15. Olika modes<br />
Systembuss: GPS och stjärnsensor, se fråga 1.<br />
Payloadbuss: Sändning av mass-minnes innehåll till GS via TMTC >=1 Mbps.<br />
16. Kända problem med CAN-buss<br />
Liten bandbredd<br />
18. Självändamål med CAN-buss<br />
Ja (se svar på 23), men bandbredden kan inte kompromissas bort<br />
23. Allmän spridning av protokoll<br />
CAN är ett ”buzz-word” i branschen, det är bra.<br />
Allmän spridning innebär att en lösning ej behöver säljas in till kund.<br />
Lättare att få tag på- och, till underleverantör, tillhandahålla testutrustning.<br />
Lättare att specificera- samt billigare att beställa instrument till rymdfarkosten.<br />
Svar på frågor Bengt Holmqvist<br />
1. Bandbredd<br />
Mindre än 1 Mbps, förutom mellan mass-minne och TMTC<br />
2. Redundans<br />
Redundansen som CAN-bussen i SMART-1 erbjuder är tillräcklig. Åtminstone på linjesidan,<br />
dock kan det faktum att den nominella och den redundanta bussen använder samma kontroller<br />
ställa till problem, om just buss-kontrollern fallerar.<br />
3. Förändring av Payloadbuss och/eller Systembuss<br />
Det är inte nödvändigtvis enklare att förändra båda bussarna. Kräver endast en av bussarna<br />
ytterligare egenskaper kan denna ändras.<br />
4. Kabellängd<br />
Sällan över två meter.<br />
5. Feldetektion<br />
Behöver inte bli bättre än i SMART-1<br />
6. Felhantering<br />
Kan behöva förbättras. T.ex. kan idag en "babblande idiot" förstöra all kommunikation på en<br />
buss. Då kontrollern byter till den redundanta bussen kan den defekta noden uppfatta detta, byta<br />
buss även den, varvid den förstör trafiken även där. Avstängning av den defekta noden kan<br />
dessutom omöjliggöras då ett kommando till power-enheten, över den redan utstörda bussen, att<br />
stänga av den defekta noden kanske inte uppfattas . Detta kan leda till systemkollaps.<br />
7. Nätövervakning<br />
Nätet övervakas idag av kontrollern, vilket kan vara lämpligt även i framtiden då en separat<br />
övervakare för varje nod, vilket stöds i vissa protokoll, kan ta för mycket plats hårdvarumässigt<br />
sett.<br />
8. Acknowledge<br />
Spelar inte så stor roll varifrån ACK:et kommer.
Intern realtidskommunikation i framtida Svenska satelliter sid 73<br />
Martin Normark<br />
9. Routat eller broadcastat nät<br />
Broadcastat är bättre av flera anledningar. En del meddelanden är avsedda för flera noder, mindre<br />
åtgång av komponenter, kan vara enklare att implementera.<br />
10. Synkronisering av noder<br />
Någonstans mellan 0.1-1 ms.<br />
14. Frekvens på reglerloop<br />
ODIN har en reglerfrekvens på 16 Hz, denna storleksordning verkar rimlig även för framtida<br />
projekt<br />
15. Olika moder<br />
Ja, mass-minne till TMTC<br />
16. Nätverkets allmänna spridning<br />
Mycket viktigt, förenklar implementation, testning och beställning av instrument.<br />
17. Överlagring av information på kraftkabel<br />
Kan låta intressant vid en första anblick. Dock är det alltför riskabelt med tanke på potentiella<br />
kortslutningar m.m. Den eventuella viktbesparingen skulle antagligen ätas upp av de<br />
skyddsåtgärder som krävs.<br />
Svar på frågor Gunnar Andersson<br />
1. Bandbredd<br />
1-2 Mbps för telemetrin<br />
2. Redundans<br />
Sändning över två linor<br />
3. Förändring av endast en buss<br />
Endast en buss kan förändras, men även hopslagning är möjlig<br />
4. Fysiska avstånd<br />
< 5m<br />
5. Feldetektion<br />
Viktigt att kunna identifiera babbling idiots…<br />
6. Felhantering<br />
…och kunna stänga av dem<br />
7. Övervakning<br />
Idag: Platform supervisor tittar på health-meddelanden<br />
8. ACK:et<br />
Då noderna pollas idag, spelar detta ingen större roll<br />
9. Routat eller Broadcastat nät<br />
Broadcast medger enkel avlyssning<br />
10. Synkronisering<br />
Intern realtidskommunikation i framtida Svenska satelliter sid 74<br />
Martin Normark<br />
21. Stor fördel med samma elektriska interface som CAN<br />
Nej, egentligen inte<br />
23. Är allmän spridning viktig<br />
Ja, jätteviktigt. Lättare att hitta folk och utrustning<br />
24. Information på kraftkabel<br />
Befängd idé, då olika kraftnät används
Intern realtidskommunikation i framtida Svenska satelliter sid 75<br />
Martin Normark<br />
Appendix C VHDL-kod i CAN-shell<br />
Transmission_State_Machine<br />
---------------------------------------------------------------------------<br />
-- Entity declaration of 'Transmission_State_Machine'.<br />
---------------------------------------------------------------------------<br />
LIBRARY ieee, synplify ;<br />
USE ieee.std_logic_1164.all ;<br />
USE ieee.std_logic_arith.all ;<br />
USE ieee.std_logic_unsigned.all ;<br />
USE synplify.attributes.ALL ;<br />
ENTITY Transmission_State_Machine IS<br />
PORT(<br />
LOAD_SHIFT_REG : OUT std_ulogic_vector(12 DOWNTO 0) ;<br />
TX_REQUEST : OUT std_ulogic ;<br />
Clk : IN std_logic ; -- Clock<br />
Reset_n : IN std_logic ; -- Reset<br />
LOAD_ENABLE : IN std_ulogic_vector(1 DOWNTO 0) ;<br />
New_Frame_Tx : IN std_logic ;<br />
TRANSMITTER : IN std_ulogic ;<br />
TX_COMPLETE : IN std_ulogic ;<br />
Tx_Buffer_Empty : OUT std_logic ;<br />
BUSOFF_EVENT : IN std_logic ;<br />
INIT : OUT std_ulogic ;<br />
INIT_Request : IN std_logic ;<br />
BUSOFF : IN std_logic ;<br />
Message_Lost : OUT std_logic ;<br />
ID_Bit_28 : OUT std_ulogic ;<br />
PRIO : IN std_logic_vector(4 DOWNTO 0) := "00100" ) ;<br />
END ENTITY Transmission_State_Machine ;<br />
---------------------------------------------------------------------------<br />
-- Architecture 'a0' of 'Transmission_State_Machine'<br />
---------------------------------------------------------------------------<br />
ARCHITECTURE a0 OF Transmission_State_Machine IS<br />
-- State Machine Options:<br />
-- State assignment : Gray code.<br />
-- State decoding : Case construct.<br />
-- Actions on transitions: Combinational.<br />
-- Actions on states : Combinational.<br />
CONSTANT Configure : std_logic_vector(3 DOWNTO 0) := "0000" ;<br />
CONSTANT Idle : std_logic_vector(3 DOWNTO 0) := "0001" ;<br />
CONSTANT Check_Load_Status : std_logic_vector(3 DOWNTO 0) := "0011" ;<br />
CONSTANT Sending_Or_Receiving : std_logic_vector(3 DOWNTO 0) := "0010" ;<br />
CONSTANT Load_Register : std_logic_vector(3 DOWNTO 0) := "0110" ;<br />
CONSTANT Request_Transmission : std_logic_vector(3 DOWNTO 0) := "0111" ;<br />
CONSTANT Check_Bus_Off : std_logic_vector(3 DOWNTO 0) := "0101" ;<br />
CONSTANT Initialisation : std_logic_vector(3 DOWNTO 0) := "0100" ;<br />
CONSTANT Counter_addition : std_logic_vector(3 DOWNTO 0) := "1100" ;<br />
SIGNAL cur_state : std_logic_vector(3 DOWNTO 0) ; -- Current State<br />
SIGNAL next_state : std_logic_vector(3 DOWNTO 0) ; -- Next State
Intern realtidskommunikation i framtida Svenska satelliter sid 76<br />
Martin Normark<br />
SIGNAL LOAD_SHIFT_REG_INT : std_ulogic;<br />
shared variable Counter : std_logic_vector(6 DOWNTO 0);<br />
shared variable check : bit := '1';<br />
BEGIN<br />
LOAD_SHIFT_REG '1') WHEN LOAD_SHIFT_REG_INT='1' ELSE<br />
(OTHERS=>'0');<br />
next_state_decoding: PROCESS (cur_state, LOAD_ENABLE, New_Frame_Tx,<br />
TRANSMITTER, TX_COMPLETE, BUSOFF_EVENT, INIT_Request, BUSOFF) IS<br />
BEGIN<br />
next_state
Intern realtidskommunikation i framtida Svenska satelliter sid 77<br />
Martin Normark<br />
END IF ; -- Global transition<br />
END PROCESS next_state_decoding ;<br />
state_transition: PROCESS (Clk, Reset_n) IS<br />
BEGIN -- State transition<br />
IF (Reset_n='0') THEN<br />
cur_state
Intern realtidskommunikation i framtida Svenska satelliter sid 78<br />
Martin Normark<br />
IF Counter
Intern realtidskommunikation i framtida Svenska satelliter sid 79<br />
Martin Normark<br />
Message_Lost
Intern realtidskommunikation i framtida Svenska satelliter sid 80<br />
Martin Normark<br />
SEND_IDENTIFIER
Intern realtidskommunikation i framtida Svenska satelliter sid 81<br />
Martin Normark<br />
Appendix D VHDL-kod för test 5.1 och 6.1<br />
when 51 => -- Test 5.1<br />
-- After reset<br />
wait for 0 ns;<br />
LOAD_ENABLE '1',<br />
INIT_exp => '1',<br />
Message_Lost_exp => '1'<br />
);<br />
wait until clk_int = '1';<br />
-- Step 3)<br />
Compare_Outputs(<br />
Tx_Buffer_Empty_exp => '1'<br />
);<br />
losing_arbitration;<br />
re_win_arbitration;<br />
losing_arbitration;<br />
for J in 0 to 18 loop<br />
re_losing_arbitration;<br />
end loop;<br />
re_win_arbitration;<br />
losing_arbitration;<br />
re_win_arbitration;<br />
losing_arbitration;<br />
re_win_arbitration;<br />
-- Step 17)<br />
ID_Field_Standard_Tx
Intern realtidskommunikation i framtida Svenska satelliter sid 82<br />
Martin Normark<br />
SEND_CONTROL_exp => Frame_Type_Tx_c2(0) & NOT Frame_Type_Tx_c2(1) &<br />
Data_Length_Tx_c2,<br />
SEND_DATA_exp => Data_Field_Tx_c2<br />
);<br />
WAIT UNTIL clk_int='1';<br />
-- Step 19)<br />
Compare_Outputs(<br />
LOAD_SHIFT_REG_exp => "1111111111111",<br />
SEND_IDENTIFIER_exp => ID_Bit_28 & ID_Field_Standard_Tx_c2 &<br />
ID_Field_Extended_Tx_c2,<br />
SEND_CONTROL_exp => Frame_Type_Tx_c2(0) & NOT Frame_Type_Tx_c2(1) &<br />
Data_Length_Tx_c2,<br />
SEND_DATA_exp => Data_Field_Tx_c2<br />
);<br />
WAIT UNTIL clk_int='1';<br />
-- Step 20)<br />
Compare_Outputs(<br />
TX_REQUEST_exp => '1',<br />
SEND_IDENTIFIER_exp => ID_Bit_28 & ID_Field_Standard_Tx_c2 &<br />
ID_Field_Extended_Tx_c2,<br />
SEND_CONTROL_exp => Frame_Type_Tx_c2(0) & NOT Frame_Type_Tx_c2(1) &<br />
Data_Length_Tx_c2,<br />
SEND_DATA_exp => Data_Field_Tx_c2<br />
);<br />
WAIT ON LOAD_SHIFT_REG, TX_REQUEST, Tx_Buffer_Empty, INIT, Message_Lost,<br />
SEND_IDENTIFIER,<br />
SEND_CONTROL, SEND_DATA FOR 8*period;<br />
Compare_Outputs(<br />
TX_REQUEST_exp => '1',<br />
SEND_IDENTIFIER_exp => ID_Bit_28 & ID_Field_Standard_Tx_c2 &<br />
ID_Field_Extended_Tx_c2,<br />
SEND_CONTROL_exp => Frame_Type_Tx_c2(0) & NOT Frame_Type_Tx_c2(1) &<br />
Data_Length_Tx_c2,<br />
SEND_DATA_exp => Data_Field_Tx_c2<br />
);<br />
LOAD_ENABLE '1',<br />
SEND_IDENTIFIER_exp => ID_Bit_28 & ID_Field_Standard_Tx_c2 &<br />
ID_Field_Extended_Tx_c2,<br />
SEND_CONTROL_exp => Frame_Type_Tx_c2(0) & NOT Frame_Type_Tx_c2(1) &<br />
Data_Length_Tx_c2,<br />
SEND_DATA_exp => Data_Field_Tx_c2<br />
);<br />
-- Step 22)<br />
WAIT UNTIL clk_int='1';<br />
Compare_Outputs(<br />
SEND_IDENTIFIER_exp => ID_Bit_28 & ID_Field_Standard_Tx_c2 &<br />
ID_Field_Extended_Tx_c2,<br />
SEND_CONTROL_exp => Frame_Type_Tx_c2(0) & NOT Frame_Type_Tx_c2(1) &<br />
Data_Length_Tx_c2,<br />
SEND_DATA_exp => Data_Field_Tx_c2<br />
);<br />
WAIT ON LOAD_SHIFT_REG, TX_REQUEST, Tx_Buffer_Empty, INIT, Message_Lost,<br />
SEND_IDENTIFIER,<br />
SEND_CONTROL, SEND_DATA FOR 10*period;
Intern realtidskommunikation i framtida Svenska satelliter sid 83<br />
Martin Normark<br />
Compare_Outputs(<br />
SEND_IDENTIFIER_exp => ID_Bit_28 & ID_Field_Standard_Tx_c2 &<br />
ID_Field_Extended_Tx_c2,<br />
SEND_CONTROL_exp => Frame_Type_Tx_c2(0) & NOT Frame_Type_Tx_c2(1) &<br />
Data_Length_Tx_c2,<br />
SEND_DATA_exp => Data_Field_Tx_c2<br />
);<br />
LOAD_ENABLE ID_Bit_28 & ID_Field_Standard_Tx_c2 &<br />
ID_Field_Extended_Tx_c2,<br />
SEND_CONTROL_exp => Frame_Type_Tx_c2(0) & NOT Frame_Type_Tx_c2(1) &<br />
Data_Length_Tx_c2,<br />
SEND_DATA_exp => Data_Field_Tx_c2<br />
);<br />
WAIT UNTIL clk_int='1';<br />
Compare_Outputs(<br />
LOAD_SHIFT_REG_exp => "1111111111111",<br />
SEND_IDENTIFIER_exp => ID_Bit_28 & ID_Field_Standard_Tx_c2 &<br />
ID_Field_Extended_Tx_c2,<br />
SEND_CONTROL_exp => Frame_Type_Tx_c2(0) & NOT Frame_Type_Tx_c2(1) &<br />
Data_Length_Tx_c2,<br />
SEND_DATA_exp => Data_Field_Tx_c2<br />
);<br />
REPORT "************** Test Result ***************";<br />
IF Test_OK = '0' THEN<br />
REPORT "Test 5.1 Failure";<br />
ELSE<br />
REPORT "Test 5.1 Success";<br />
END IF;<br />
REPORT "********** End of test 5.1 ***************";<br />
Disable_Clock -- Test 6.1<br />
-- After reset<br />
wait for 0 ns;<br />
LOAD_ENABLE '1',<br />
INIT_exp => '1',<br />
Message_Lost_exp => '1'<br />
);<br />
wait until clk_int = '1';<br />
-- Step 3)<br />
Compare_Outputs(<br />
Tx_Buffer_Empty_exp => '1'<br />
);<br />
losing_arbitration;<br />
re_win_arbitration;<br />
losing_arbitration;<br />
re_win_arbitration;
Intern realtidskommunikation i framtida Svenska satelliter sid 84<br />
Martin Normark<br />
losing_arbitration;<br />
re_win_arbitration;<br />
wait for 10*period;<br />
wait until clk_int = '1';<br />
START_OF_FRAME