Untitled - MRTC
Untitled - MRTC
Untitled - MRTC
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