30.08.2013 Views

Untitled - MRTC

Untitled - MRTC

Untitled - MRTC

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!