2 sistemska programska oprema
2.1μC / OS-II arhitektura
μC / OS-II je prenosni, implantabilni ROM, croppable, preemptive v večnamenskih operacijskih sistemih v realnem času z večjo učinkovitostjo delovanja, majhnim odtisom, dobrim delovanjem v realnem času in skalabilnostjo. Značilnosti, najmanjše jedro se lahko zbira na 2KB. μC / OS-II je napisan v C in v jeziku montaže. Večina kode je napisana v C. Le nekaj kod, tesno povezanih s procesorjem, so zapisane v zbirnem jeziku. μC / OS-II vsebuje samo osnovne funkcije, kot so razporejanje opravil, upravljanje nalog, upravljanje časa, upravljanje pomnilnika, komunikacija med opravili in sinhronizacija.
Dodelitev nalog pod 2.2μC / OS-II sistemom
Po uspešno prenašanju sistema μC / OS-II na STM32F107 programiranje na osnovi μC / OS-II opravimo z razdelitvijo velike aplikacije v relativno neodvisne naloge. Prednost vsake naloge je definirana in jedra μC / OS-II načrtuje in upravlja te naloge.
Ideja o oblikovanju programske opreme je, da se hitrosti motorja in krmilnemu položaju krmilne naprave po serijski vrsti glede na dejansko delovanje robota. Hitrost motorja se primerja z nastavljeno vrednostjo inkrementalnega dajalnika, krmiljenje z zaprto zanko pa se izvaja s hitrostnim PID algoritmom. Položaj krmilne naprave je predvsem v tem, da dajalnik absolutne vrednosti hrani nazaj trenutni položaj, hitrost krmilne naprave pa se prilagodi glede na čas delovanja. Funkcije, ki jih mora izvajati programska oprema za krmiljenje motorja tega rokovanja, so:
◆ zgornji stroj daje hitrost motorja, krmilni kot in čas delovanja;
◆ zahteva neprekinjeno nastavitev hitrosti motorja ter dobro statično in dinamično delovanje. Hitrost ne šteje PI algoritem.
◆ Potrebno je, da krmilna naprava hitro doseže podorni kot in da se kot nastavitev določene hitrosti krmilne naprave uporabi povratna informacija o položaju;
◆ Ima določeno zaščito pred poškodbami. Ko je motor blokiran, je tok prevelik in krmilna naprava dotakne končno stikalo, potrebno je zaustaviti pogonski modul.
Za zgoraj navedene funkcije, ki jih je treba izvesti, se lahko načrtovanje aplikacij razdeli na naslednje naloge:
1 Začnite opravilo. Inicializirajte sistem, ustvarite začetno stanje motorja, nato zbrišite sebe in zaženite nalogo za spanje.
2 naloge motorja in krmilne naprave. Uporablja se za odzivanje na zunanjo prekinitev, ko je aktivirano prekoračeno ali končno stikalo. Ko je vnesen status prekinitve, se pošlje semaforja naloge. Program naloge zazna, da je semafor veljaven in se odziva na nalogo in ustavi izpisovanje. Prednostna naloga je nastavljena na raven 0.
3 gostiteljski računalnik, ki mu je dodeljena naloga. Uporablja se za zgornji stroj za krmiljenje motorja in krmilne naprave, prednostna naloga pa je nastavljena na raven 1. Ko se generira register vnosov podatkov gostiteljskega računalnika, se generira prekinitev, ki bo poslala prejeti bajt v pufer in sprosti semaforje naloge gostiteljskega računalnika; ko se zazna semafor, se bo naloga začela izvajati in ustrezen bajt bo izveden. Informacije se razčlenijo v ustrezne podatke o hitrosti motorja in položaju krmilne naprave, da dodelijo vrednosti ustreznim spremenljivkam.
4 naloga za nadzor hitrosti motorja. Za regulacijo hitrosti zaprtega kroga motorja je prednostna naloga nastavljena na raven 2.
5 naloge krmilne naprave. Uporablja se za krmiljenje krmilne naprave, da doseže določen položaj v določenem času, prednostna naloga pa je nastavljena na 3. stopnjo.
2.3 Začnite opravilo
V glavnem programu, preden pokličete druge naloge μC / OS-II, najprej pokličite funkcijo za inicializacijo sistema OSInit (), da inicializirate vse spremenljivke in podatkovne strukture μC / OS-II; istočasno določite nedejavno opravilo OS_TaskIdle (), ta naloga je vedno v stanju pripravljenosti; pokličite funkcijo OSTaskCreate (), da določite zagonsko opravilo; pokličite OSStart (), prenesite nadzor v jedro μC / OS-II, začnite zagnati večopravilnost.
Zagonska naloga je ustvarjena v glavnem programu, ki ima tri glavne funkcije:
1 za inicializacijo sistema (izhodni modul PWM, serijska vrata, modul ADC, funkcija prekinitve vhoda, časomer).
2 Določite količino signala, ki ga uporablja sistem.
3 vzpostaviti druge naloge sistema.
Nazadnje pokličite OSTaskDel (OS_PRIO_SELF), da se izbriše in zažene nalogo. Glavni tok programa je prikazan na sliki 4.
2.4 naloga za nadzor hitrosti motorja
Vsakič, ko inkrementalni dajalnik ustvari zunanjo prekinitev, semaforska naloga naloga izda v stanju prekinitve. Task program ugotovi, da je semafor veljaven in da se odziva na nalogo. Naloga uresničuje nadzor z zaprto zanko z merjenjem trenutne hitrosti motorja in danega števila vrtljajev. Tok dela nadzora hitrosti motorja je prikazan na sliki 5.
2.5 naloga upravljanja krmilne naprave
Servo krmilnik ustvari referenčni čas s časovnikom, pošlje vsakega popravljenega semaforja in opravilo se izvede enkrat. Naloga servo-kontrole primerja položaj, ki ga izmeri absolutni dajalnik z določenim položajem, in prilagodi hitrosti servomotorja glede na preostali čas. Tok dela servo-nadzora je prikazan na sliki 6.
3 sistemski elektromehanski vmesnik
Krmilna naprava robota je sestavljena iz reduktorja 30: 1, priključenega na enosmerni motor. Dajalnik absolutnega položaja je priključen na krmilno napravo in pošilja kotni signal krmilne naprave na krmilno ploščo pogona. Obe gredi prednjega kolesa robota sta povezana s prenosno palico. Ena od gredi je povezana s krmilnim mehanizmom s transmisijskim jermenom, tako da se, ko se krmilno orodje vrti, transmisijski jermen poganja prenosno palico, da se lahko obe sprednji kolesi zasučeta sinhrono. Pogonski motor zadnjega kolesa je enosmerni motor, ki je neposredno priključen na inkrementalni dajalnik. Ko zmanjša razmerje redukcije z reduktorjem 25: 1, se zadnje kolo poganja z mehanskim diferencialom. Signali iz inkrementalnega dajalnika se pošljejo tudi na krmilno ploščo pogona. Struktura elektromehanskega sistema je prikazana na sliki 7.
Zaključek
V tem prispevku je zasnovana strojna in krmilna strojna oprema rokovanja robota. Operacijski sistem μC / OS-II v realnem času je uspešno vstavljen v STM32F107, zaključen pa je tudi preskus hitrosti zaprtega kroga motorja in krmilne naprave. Z uporabo značilnosti večstopenjske zmogljivosti Cortex-M3 jedrnega krmilnika in sistema μC / OS-II v realnem času zagotavlja osnovo za programsko in strojno opremo za nadaljnje sledenje robotskim slikam in sledenje navigaciji. Če se obstoječi algoritem PI izboljša in se lahko uresniči hitrost in trenutna dvojna kontrola z zaprto zanko, bodo značilnosti motorja robota boljše in možnost uporabe aplikacije robotskega robota bo širša.





