Jeffrey Cross
Jeffrey Cross

SPARK Project # 1, Post # 5

Shawn Schafferts ratcheting schemaläggare

Operativsystem i realtid?

Även om det här projektet handlar om en smart hemdashboard som inte nödvändigtvis har några tidskritiska uppgifter, kan det mycket enkelt. Vad händer om ett moln täckte solpanelerna, och jag ville dimma ljuset som svar. Jag vill inte att min programvara väntar på att alla temperatursensorer ska bli uppdaterade innan belysningen ändras. För att undvika detta potentiella problem vill jag ha ett "realtidssystem" för mitt projekt.

System som använder inbäddade styrenheter kännetecknas ofta av behovet av att uppvisa realtidsberäkningsbeteende. Det är viktigt att förstå vad det innebär och hur det påverkar valet av programvara som ska användas i ett projekt. Ingen skulle argumentera för att datorer har blivit snabbare och snabbare under åren. Hårddisk, minneskort, grafikkort och moderkorthastigheter och klockfrekvenser har ständigt ökat med varje ny generation av hårdvara. Detta har inneburit att användaren kan köra komplexa applikationer utan att behöva vänta orimliga mängder tid, och de enkla applikationerna utför sina funktioner i försvinnande små tidsintervaller. För de flesta stationära applikationer är små förseningar i programkörandet onotifierbara och obetydliga. Men vad händer om en del av din ansökan övervakar nödstoppsknappen för din hembyggda CNC-fräsmaskin? Du behöver nödstoppsknappen för att stänga av maskinen under en garanterad tid. Att inte ha denna determinism kan skapa en mycket farlig situation om en bakgrundsuppgift som att spela musik eller spara en fil har tagit över datorns bandbredd. Du trycker på och släpper nödstoppet och tittar i rädsla när din kvarnbiten fortsätter att gå genom din del.

Det tar ingen kraftfull eller snabb CPU för att ge ett korrekt svar på en enda bitändring i ett perifert I / O-register. Den som har programmerat ett portavbrott i en enkel 8-bitars mikrokontroller kan ta reda på hur lång tid det tar för 8-bitarsprocessorn att fånga I / O-avbrottet och ringa upp koden för att svara på händelsen. Med PC-operativsystem som OSX, Windows och Linux finns det viss förmåga att implementera "realtid" -trådar, men den här funktionen implementeras ofta genom att man överväger operativsystemets normala beteende genom att använda ett operativsystemtillägg för att uppnå denna förmåga . Dessa operativsystem utformades för att vara effektiva verktyg för allmän användning för att driva ett brett utbud av applikationer och interagera med många tredje parts hårddiskenheter, men de var inte konstruerade för att ha realtidsbestämmande beteende.

Ett riktigt operativsystem för realtid (RTOS) är utformat med funktioner så att ett program kan delas upp i uppgifter som körs på ett fast schema, och asynkrona händelser, såsom CNC-kranens nödstoppsknapp, kommer att ha ett garanterat maximalt latens innan de utförs. Du kan skriva ett program för att växla en I / O-pin vid 5 kHz och en annan vid 1 kHz med minimal jitter eller programmera nödstoppsknappens svar för att stänga av dina CNC-kvarnmotorer inom en garanterad 1 millisekund.

Kolla in en lista över operativsystem i realtid och ta reda på om Windows Embedded CE 6.0 R2 här.


Detta SPARK Your Imagination Make: Windows Embedded-projektserien sponsras av Microsoft Corporation.

Del

Lämna En Kommentar