2 σχεδιασμό λογισμικού συστήματος
2.1μC / OS-II αρχιτεκτονική
Το μC / OS-II είναι ένας φορητός, εμφυτεύσιμος πυρήνας λειτουργικού συστήματος multitasking σε πραγματικό χρόνο, υψηλής ταχύτητας εκτέλεσης, μικρός αποτύπωμα, καλή απόδοση σε πραγματικό χρόνο και δυνατότητα κλιμάκωσης. Χαρακτηριστικά, ο μικρότερος πυρήνας μπορεί να μεταγλωττιστεί σε 2KB. Το μC / OS-II είναι γραμμένο στη γλώσσα C και τη συναρμολόγηση. Το μεγαλύτερο μέρος του κώδικα είναι γραμμένο σε C. Μόνο μερικοί κώδικες που σχετίζονται στενά με τον επεξεργαστή είναι γραμμένοι σε γλώσσα συναρμολόγησης. Το μC / OS-II περιλαμβάνει μόνο βασικές λειτουργίες όπως προγραμματισμό εργασιών, διαχείριση εργασιών, διαχείριση χρόνου, διαχείριση μνήμης, επικοινωνία μεταξύ εργασιών και συγχρονισμό.
Ανάθεση καθηκόντων στο σύστημα 2.2μC / OS-II
Μετά την επιτυχή μεταφορά του συστήματος μC / OS-II στο STM32F107, ο προγραμματισμός μC / OS-II γίνεται με διαίρεση μιας μεγάλης εφαρμογής σε σχετικά ανεξάρτητες εργασίες. Καθορίζεται η προτεραιότητα κάθε εργασίας και ο πυρήνας μC / OS-II προγραμματίζει και διαχειρίζεται αυτές τις εργασίες.
Η ιδέα σχεδιασμού λογισμικού είναι να δίδει την ταχύτητα του κινητήρα και τη θέση διεύθυνσης του μηχανισμού διεύθυνσης μέσω της σειριακής θύρας ανάλογα με την πραγματική λειτουργία του ρομπότ. Η ταχύτητα του κινητήρα συγκρίνεται με την καθορισμένη τιμή του αυξητικού κωδικοποιητή και ο έλεγχος κλειστού βρόχου εφαρμόζεται από τον αλγόριθμο ταχύτητας PID. Η θέση του μηχανισμού πηδαλιουχίας είναι κατά κύριο λόγο ότι ο κωδικοποιητής απόλυτης τιμής τροφοδοτεί την τρέχουσα θέση και η ταχύτητα του μηχανισμού διεύθυνσης ρυθμίζεται σύμφωνα με την απαίτηση χρόνου δράσης. Οι λειτουργίες που πρέπει να πραγματοποιηθούν από το λογισμικό του συστήματος ελέγχου κινητήρα αυτού του ρομπότ χειρισμού είναι οι εξής:
◆ Η ανώτερη μηχανή δίνει την ταχύτητα του κινητήρα, τη γωνία διεύθυνσης και το χρόνο δράσης.
◆ Απαιτείται συνεχής ρύθμιση της ταχύτητας του κινητήρα και καλή στατική και δυναμική απόδοση. Η ταχύτητα δεν υπολογίζεται από αλγόριθμο PI.
◆ Απαιτεί γρήγορα το γρανάζι πηδαλιουχίας να φτάσει γρήγορα στην καθορισμένη γωνία και η ανατροφοδότηση θέσης χρησιμοποιείται ως ρύθμιση της δεδομένης ταχύτητας του μηχανισμού διεύθυνσης.
◆ Έχει κάποια λειτουργία προστασίας σφαλμάτων. Όταν ο κινητήρας είναι μπλοκαρισμένος, το ρεύμα είναι πολύ μεγάλο και το γρανάζι του πηδαλίου αγγίζει τον τερματικό διακόπτη, πρέπει να σταματήσει η μονάδα μετάδοσης κίνησης.
Για να υλοποιηθούν οι παραπάνω λειτουργίες, ο σχεδιασμός της εφαρμογής μπορεί να χωριστεί στις ακόλουθες εργασίες:
1 Ξεκινήστε την εργασία. Αρχικοποιήστε το σύστημα, δημιουργήστε μια αρχική κατάσταση κινητήρα, στη συνέχεια διαγράψτε και ξεκινήστε την εργασία για ύπνο.
2 εργασίες προστασίας κινητήρα και τιμονιού. Χρησιμοποιείται για να ανταποκρίνεται σε μια εξωτερική διακοπή όταν είναι ενεργοποιημένος ο υπέρβαρχος ή ο τελικός διακόπτης. Όταν έχει τεθεί η κατάσταση διακοπής, αποστέλλεται το σηματοφόρο εργασίας. Το πρόγραμμα εργασίας εντοπίζει ότι το σηματοφόρο είναι έγκυρο και ανταποκρίνεται στην εργασία και σταματά την έξοδο. Η προτεραιότητα εργασιών έχει οριστεί στο επίπεδο 0.
3 υπολογιστές υποδοχής που έχουν δοθεί καθήκοντα. Χρησιμοποιείται για το ανώτερο μηχάνημα για τον έλεγχο του κινητήρα και του μηχανισμού κινήσεως του πηδαλίου και η προτεραιότητα εργασίας έχει οριστεί στο επίπεδο 1. Όταν δημιουργηθεί ο καταχωρητής εισαγωγής δεδομένων κεντρικού υπολογιστή, θα δημιουργηθεί μια διακοπή, η οποία θα στείλει το ληφθέν byte στο και να απελευθερώσει το σηματοφόρο του δεδομένου έργου του κεντρικού υπολογιστή. όταν εντοπιστεί το σηματοφόρο, η εργασία θα ξεκινήσει την εκτέλεση και θα εκτελεστεί το αντίστοιχο byte. Οι πληροφορίες αναλύονται σε αντίστοιχες πληροφορίες σχετικά με την ταχύτητα του κινητήρα και τη θέση του μηχανισμού κινήσεως του πηδαλίου για να εκχωρήσουν τιμές στις αντίστοιχες μεταβλητές.
4 λειτουργία ελέγχου ταχύτητας μοτέρ. Για ρύθμιση ταχύτητας κλειστού βρόγχου του κινητήρα, η προτεραιότητα εργασίας έχει οριστεί στο επίπεδο 2.
5 εργασίες ελέγχου του συστήματος διεύθυνσης. Χρησιμοποιείται για τον έλεγχο του μηχανισμού διεύθυνσης ώστε να φτάσει στην καθορισμένη θέση εντός του προκαθορισμένου χρόνου και η προτεραιότητα της εργασίας έχει ρυθμιστεί στο επίπεδο 3.
2.3 Εκκίνηση της εργασίας
Στο κύριο πρόγραμμα, πριν καλέσετε άλλες λειτουργίες του μC / OS-II, καλέστε πρώτα τη λειτουργία εκκίνησης του συστήματος OSInit () για να αρχικοποιήσετε όλες τις μεταβλητές και τις δομές δεδομένων του μC / OS-II. ταυτόχρονα, να ορίσετε την αδρανής εργασία OS_TaskIdle (), αυτή η εργασία είναι πάντα είναι σε κατάσταση έτοιμο? καλέστε τη συνάρτηση OSTaskCreate () για να καθορίσετε την εργασία εκκίνησης. καλέστε το OSStart (), μεταβιβάστε τον έλεγχο στον πυρήνα μC / OS-II, ξεκινήστε την εκτέλεση πολλαπλών εργασιών.
Η εργασία εκκίνησης δημιουργείται στο κύριο πρόγραμμα, το οποίο έχει τρεις κύριες λειτουργίες:
1 για την εκκίνηση του συστήματος (μονάδα εξόδου PWM, σειριακή θύρα, μονάδα ADC, λειτουργία διακοπής επιπέδου εισόδου, χρονοδιακόπτης).
2 Καθορίστε την ποσότητα σήματος που χρησιμοποιείται από το σύστημα.
3 καθορίζουν άλλα καθήκοντα του συστήματος.
Τέλος, καλέστε το OSTaskDel (OS_PRIO_SELF) για να διαγραφεί και να ξεκινήσει η εργασία να κοιμηθεί. Η κύρια ροή εργασιών του προγράμματος φαίνεται στο σχήμα 4.
2.4 λειτουργία ελέγχου ταχύτητας μοτέρ
Κάθε φορά που ο αυξητικός κωδικοποιητής δημιουργεί μια εξωτερική διακοπή, το σηματοφόρο εργασίας εκδίδεται στην κατάσταση διακοπής. Το πρόγραμμα εργασιών εντοπίζει ότι το σηματοφόρο είναι έγκυρο και ανταποκρίνεται στην εργασία. Η εργασία πραγματοποιεί έλεγχο κλειστού βρόχου μετρώντας την τρέχουσα ταχύτητα του κινητήρα και τη δεδομένη σύγκριση της ταχύτητας. Η ροή εργασιών ελέγχου ταχύτητας κινητήρα φαίνεται στο σχήμα 5.
2.5 Έλεγχος του συστήματος διεύθυνσης
Ο σερβοέλεγχος παράγει ένα χρόνο αναφοράς από ένα χρονόμετρο, στέλνει ένα σηματοφόρο κάθε καθορισμένο χρόνο και η εργασία θα εκτελεστεί μία φορά. Η εργασία σερβοελέγχου συγκρίνει τη θέση που μετράται από τον απόλυτο κωδικοποιητή με τη δεδομένη θέση και ρυθμίζει την ταχύτητα του σερβο σύμφωνα με τον εναπομείναντα χρόνο. Η ροή εργασιών σερβοέλεγχου φαίνεται στο σχήμα 6.
3 ηλεκτρομηχανική διεπαφή συστήματος
Το γρανάζι του ρομπότ αποτελείται από ένα μειωτήρα 30: 1 που συνδέεται με τον κινητήρα DC. Ο κωδικοποιητής απόλυτης θέσης συνδέεται με το γρανάζι του συστήματος διεύθυνσης και στέλνει το σήμα γωνίας του μηχανισμού διεύθυνσης στην πλακέτα ελέγχου της μονάδας. Οι δύο άξονες του μπροστινού τροχού του ρομπότ συνδέονται με μια ράβδο μετάδοσης κίνησης. Ένας από τους άξονες συνδέεται με το γρανάζι του συστήματος διεύθυνσης με έναν ιμάντα μετάδοσης, έτσι ώστε όταν ο γρανάζι περιστρέφεται, ο ιμάντας μετάδοσης κίνησης οδηγεί τη ράβδο μετάδοσης για να διασφαλίσει ότι οι δύο εμπρόσθιοι τροχοί μπορούν να περιστρέφονται συγχρονισμένα. Ο κινητήρας πίσω τροχού είναι ένας κινητήρας συνεχούς ρεύματος, ο οποίος συνδέεται απευθείας με τον αυξητικό κωδικοποιητή. Αφού ο λόγος μείωσης μειωθεί με ένα μειωτήρα 25: 1, ο πίσω τροχός κινείται από το μηχανικό διαφορικό. Τα σήματα από τον αυξητικό κωδικοποιητή αποστέλλονται επίσης στην πλακέτα ελέγχου μονάδας δίσκου. Η δομή του ηλεκτρομηχανολογικού συστήματος φαίνεται στο σχήμα 7.
συμπέρασμα
Σε αυτή την εργασία, πραγματοποιείται ο σχεδιασμός του υλικού του κινητήρα και του σερβοελεγκτή του ρομπότ χειρισμού. Το λειτουργικό σύστημα μC / OS-II σε πραγματικό χρόνο ενσωματώνεται με επιτυχία στο STM32F107 και ολοκληρώνεται το πείραμα κλειστού βρόχου ταχύτητας του κινητήρα και του μηχανισμού πηδαλίου. Αξιοποιώντας τα χαρακτηριστικά των επιδόσεων πολλαπλών λειτουργιών σε πραγματικό χρόνο του ελεγκτή πυρήνα Cortex-M3 και του συστήματος μC / OS-II, παρέχει ένα υπόβαθρο λογισμικού και υλικού για την επακόλουθη λήψη εικόνας βίντεο ρομπότ και τον εντοπισμό πλοήγησης. Αν βελτιωθεί ο υπάρχων αλγόριθμος PI και μπορεί να επιτευχθεί ο ταχύτητα του κινητήρα και ο τρέχων έλεγχος διπλού κλειστού βρόχου, τα χαρακτηριστικά του κινητήρα ρομπότ θα είναι καλύτερα και η προοπτική εφαρμογής του ρομπότ χειρισμού θα είναι ευρύτερη.





