2 rendszer szoftver tervezése
2.1μC / OS-II architektúra
A μC / OS-II egy hordozható, beültethető ROM-ot hordozó, előrehajló, valós idejű multitasking operációs rendszermag, amelynek nagy teljesítményhatása, kis helyigénye, jó valós idejű teljesítménye és skálázhatósága. Jellemzők: a legkisebb kernel 2KB-ra állítható. A μC / OS-II C-ben és az assembly nyelvben van írva. A kód legtöbbje C-ben van írva. A processzorhoz szorosan kapcsolódó kódok közül csak néhány szerepel az assembly nyelvben. A μC / OS-II csak olyan alapfunkciókat tartalmaz, mint a feladat ütemezése, feladatkezelés, időkezelés, memóriakezelés, feladatok közötti kommunikáció és szinkronizálás.
A feladatok feladása 2.2μC / OS-II rendszer alatt
A μC / OS-II rendszer STM32F107-re történő sikeres átvitelét követően a μC / OS-II alapú programozást úgy hajtják végre, hogy egy nagy alkalmazást viszonylag független feladatokra osztanak fel. Az egyes feladatok prioritása meghatározásra kerül, és a μC / OS-II kernel ütemezi és kezeli ezeket a feladatokat.
A szoftver tervezési ötlete, hogy a motor sebessége és a kormányberendezés kormányhelyzete a soros porton keresztül történjen a robot tényleges működése alapján. A motor sebességét összehasonlítjuk az inkrementális jeladó beállított értékével, és a zárt hurkú vezérlést a sebesség PID algoritmus hajtja végre. A kormányberendezés helyzete elsősorban az, hogy az abszolútérték-jeladó visszaadja az aktuális pozíciót, és a kormányberendezés sebessége a cselekvési idő követelményének megfelelően van beállítva. A kezelő robot motorvezérlő rendszer szoftverével megvalósítandó funkciók a következők:
◆ A felső gép megadja a motor fordulatszámát, kormányzási szögét és a működési időt;
◆ A motor fordulatszámának és a jó statikus és dinamikus teljesítménynek folyamatos beállítását igényli. A sebességet nem számítjuk a PI algoritmus.
◆ A kormányberendezésnek gyorsan meg kell haladnia a megadott szöget, és a pozíció visszacsatolás a kormánymű adott sebességének beállításakor történik;
◆ Van egy bizonyos hibamegfigyelési funkciója. Ha a motor le van zárva, az áram túl nagy, és a kormányberendezés megérinti a végálláskapcsolót, meg kell állítani a meghajtómodult.
A fenti funkciók megvalósításához az alkalmazás tervezése a következő feladatokra osztható:
1 Indítsa el a feladatot. Inicializálja a rendszert, hozzon létre egy kezdeti motorállapotot, majd törölje magát és elindítsa a feladatot alvó állapotba.
2 motor- és kormányberendezés-védelmi feladatok. Külső megszakításra reagál, amikor a túláram vagy a végállás kapcsoló be van kapcsolva. Amikor a megszakítási állapot be van adva, a feladat szemaforája elküldésre kerül. A feladatprogram észleli, hogy a szemafor érvényes, reagál a feladatra és leállítja a kimenetet. A feladat prioritása 0. szint.
3 host számítógép adott feladatokat. A felső géphez a motor és a kormányberendezés vezérlésére van szükség, és a feladat prioritása az 1. szintre van állítva. Ha a gazdaszámítógép adatbeviteli regisztere generálódik, egy megszakítás jön létre, amely a fogadott bájtot a puffer és engedje el a fogadó számítógép adott feladatának szemaforáját; amikor a szemaforát észlelik, a feladat elindul, és a megfelelő bájt végrehajtódik. Az információt a megfelelő motorfordulatszám- és kormányberendezés-helyzetinformációval elemezzük, hogy hozzárendeljük az értékeket a megfelelő változókhoz.
4 motor fordulatszám-szabályozási feladata. A motor zárt hurkú fordulatszám szabályozásakor a feladat prioritása a 2. szintre van beállítva.
5 kormánymű-vezérlési feladatok. A kormányberendezés vezérlésére szolgál, hogy elérje a megadott pozíciót a megadott időn belül, és a feladat prioritása a 3. szintre van állítva.
2.3 Indítsa el a feladatot
A főprogramban, mielőtt a μC / OS-II egyéb feladatait hívná, először hívja az OSInit () inicializáló funkciót a μC / OS-II összes változójának és adatstruktúrájának inicializálására; ugyanakkor létrehozza az üresjárati feladatot OS_TaskIdle (), ez a feladat mindig kész állapotban van; hívja az OSTaskCreate () függvényt az indítási feladat létrehozásához; hívja az OSStart () -ot, az átvitelt a μC / OS-II kernelre, elindítja a multitasking-t.
Az indítási feladat létrejön a főprogramban, amelynek három fő funkciója van:
1 a rendszer inicializálásához (PWM kimeneti modul, soros port, ADC modul, bemeneti szint megszakítási funkció, időzítő).
2 Állítsa be a rendszer által használt jel nagyságát.
3 a rendszer egyéb feladatait meghatározza.
Végül hívja az OSTaskDel (OS_PRIO_SELF) -ot, hogy törölje magát és elindítsa a feladatot alvó állapotba. A program fő feladatát a 4. ábrán mutatjuk be.
2.4 motor fordulatszám-szabályozási feladat
Minden alkalommal, amikor az inkrementális kódoló külső megszakítást generál, a feladat szemaforát a megszakítási állapotban adják ki. A feladatprogram észleli, hogy a szemafor érvényes, és reagál a feladatra. A feladat megvalósítja a zárt hurkú vezérlést az aktuális motorfordulatszám és az adott fordulatszám-összehasonlítás mérésével. A motor fordulatszám-szabályozó feladatáramát az 5. ábrán mutatjuk be.
2.5 kormányművezérlési feladat
A szervo vezérlés referencia időt hoz létre egy időzítővel, minden félidőben elküldi a szemaforát, és a feladatot egyszer végrehajtja. A szervo vezérlési feladat összehasonlítja az abszolútérték-jeladóval mért pozíciót az adott pozícióval, és beállítja a szervo sebességét a hátralévő időnek megfelelően. A szervo vezérlés feladatáramát a 6. ábra mutatja be.
3 rendszer elektromechanikus interfész
A robot kormányműve egy, a DC motorhoz csatlakoztatott 30: 1 szűkítőből áll. Az abszolút pozíció kódolója a kormányberendezéshez csatlakozik, és elküldi a kormányberendezés szögjelét a hajtásvezérlő lapra. A robot első kerékének két tengelyét egy átviteli rúd köti össze. Az egyik tengely egy sebességváltószalaghoz kapcsolódik a kormányberendezéshez, így amikor a kormányberendezés forog, akkor a sebességváltó szíj hajtja az átviteli rudat, hogy a két első kerék szinkronban elfordulhasson. A hátsókerék-hajtás egy egyenáramú motor, amely közvetlenül az inkrementális jeladóhoz csatlakozik. Miután a redukciós arány 25: 1 -es csökkentővel csökkent, a hátsó kereket a mechanikus differenciálmű vezérli. Az inkrementális jeladóból származó jeleket a hajtásvezérlő kártyára is továbbítják. Az elektromechanikus rendszer szerkezete a 7. ábrán látható.
Következtetés
Ebben a dokumentumban a kezelő robot motor- és szervo vezérlő hardvereinek kialakítása valósul meg. A μC / OS-II valós idejű operációs rendszert sikeresen beágyazták az STM32F107-be, és befejeződött a motor és a kormánymű sebesség-zárt hurkú kísérlete. A Cortex-M3 központi vezérlő és a μC / OS-II rendszer multi-task valós idejű teljesítményének kihasználásával szoftveres és hardveres alapot biztosít a későbbi robotképes videofelvételhez és navigációs nyomkövetéshez. Ha a meglévő PI-algoritmus javul és a motor sebessége és a jelenlegi kettős zárt hurkú vezérlése megvalósítható, a robotmotor jellemzői jobbak lesznek, és a kezelő robot alkalmazási lehetősége szélesebb lesz.





