Home

Projet de Fin d`Etudes « Programmation des - SED

image

Contents

1. b Architecture logicielle d un Module A l amor age du micro contr leur quatre programmes se d roulent en concurrence e le programme principal main attend les messages CAN et les traite e une routine d interruption d clench e sur un TIMER 10 millisecondes permet de d rouler des fonctions p riodiques Celles ci peuvent tre autoris es ou non dynamiquement A titre d exemple sur chaque Module de traction se trouve une routine TIMER qui annule la sortie puissance si celle ci n est pas mise jour r guli rement Sur le Module Directior Joystick une routine TIMER permet l asservissement en position de la direction Il est noter que le protocole de plus haut niveau d crit par la suite un seul ma tre acquittement permanent permet d viter tout blocage sur le MPCSSS 3 3 LE PROTOCOLE CAN CYCAB a Choix sur la communication Quelques r gles g n rales e Je bus CAN est le seul moyen de communication entre la carte et les Modules e la carte sous Linux dialogue avec le r seau pour l amor age par exemple via le lien ethernet RF Du point de vue du bus CAN la carte est ma tre alors que les Modules ou les autres entit s CAN sont esclaves C est donc la carte qui prend l initiative de la communication le ou les Modules se contentent de rester l coute et de r pondre si on leur demande b Le Protocole CAN CYCAB Chaque entit sur le bus CAN doit se conformer au protocole suivant
2. t l charger du code En reprenant le rapport de Fabien LYDOIRE on se rend compte qu il faut adapter le programme dwnbin aux ports d entr es sorties de la carte CAN valeurs que l on obtient en effectuant la commande cat proc pci Dans notre cas on doit adapter dwnbin l adresse du CAN sur bcycab On remplace donc dans le code de dwnbin c define CANO 0xD800 par Hdefine CANO OxE000 Ce changement doit tre r alis dans le programme dwnbin c dont le makefile g n re un ex cutable c est dire la commande dwnbin_bcycab qui permettra de t l charger du code aux n uds qui sont sur le bus CAN de bcycab Mais galement dans le programme robosoft c du r pertoire cycab2 Comcycab Linux qui g re la communication c t Linux et notamment la g n ration d une librairie On compile et on obtient un ex cutable test linux_bcycab pour le bcycab On se met root sur bcycab on t l charge le code test au MPC555 avec la commande dwnbin_bcycab test 555 bin 16404 on v rifie que le code est bien charg et que le LCD affiche bien le fait que le MPCSSS soit en attente de messages Puis on tape la commande test linux_bcycab pour valider le test On obtient alors les m mes r sultats que pour le test effectu sur chouffe On v rifie ainsi le bon fonctionnement du PC Linux embarqu sur bcycab ENSIEG 26 INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab On essaye donc de nouvea
3. Quatri me test Trame Loader sur chouffe On essaye d envoyer la trame qui est sens faire passer la carte en mode loader au n ud avant on retire donc la carte du Cycab on la connecte sur chouffe on se place root et on envoie la trame en question par la commande fest loader_chouffe Mais on obtient les m mes messages d erreur que lors des essais r alis s sur le Cycab Cinqui me test Avec SDS Le service robotique dispose d un outil de debug pour le MPCSSS il s agit du logiciel SDS il permet l ex cution pas pas d un programme ainsi que la visualisation de la valeur des registres par le port BDM du module J ai donc retir le n ud arri re du Cycab pour regarder l tat des diff rents registres g rant l acc s la m moire de ce n ud J ai ensuite utilis l option reset de SDS en esp rant ainsi effacer la m moire du MPC353 J ai rebranch ensuite le n ud arri re sur le Cycab et j ai recommenc les tests dans le but de t l charger aux n uds le code d velopp l INRIA J ai donc essay de lui t l charger l ex cutable du test de la communication avec la commande dwnbin_bcycab test 555 bin 16393 en pensant t l charger le code au n ud avant Le t l chargement a alors r ussi sans rester bloquer apr s l envoie de la premi re trame de 8 byt ENSIEG 27 INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab es mais en fait le code e
4. 0x1 ra regq dp dp ack ack trame exp 0x0 id 0x2 key 0x33 data 0x0 0x0 0x0 0x2 valeur 0x2 adr rec 0x1 ra regq dp dp ack ack trame exp 0x0 id 0x3 key 0x1 data 0x0 0x0 0x0 0x0 reponse 0 adr rec 0x1 ra req dp dp ack ack trame exp 0x0 id 0x4 key 0x1 data 0x0 0x0 0x0 0x1 reponse 1 adr rec 0x1 ra req dp dp ack ack trame exp 0x0 id 0x5 key 0x1 data 0x0 0x0 0x0 0x2 reponse 2 adr rec 0x1 ra req dp no_dp ack ack trame exp 0x0 id 0x6 key 0xFF ENSIEG INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab cycabComClose 5 3 LE PROBLEME DES INTERRUPTIONS Pour valider les tests d interruptions on doit t l charg au n ud l ex cutable drvCycab555 g n r par cycab2 DrvCycab555 Dans la fonction main qui fait appel la fonction cycablnit qui doit elle initialiser la structure CYCAB_COM on fait appel la fonction InitInterrupt int PITValue qui fixe pour le MPC555 la fr quence des routines d interruptions en choisissant PIT Value l aide de la formule PITP riode PIT Value 1 15625 O PITPeriod est exprim e en secondes En fait on fixe ici la fr quence laquelle la fonction interruptHandlerPIT va tre appel e A partir de ce moment le MPCSSS prend le contr le des op rations on sort du mode s quentiel d sormais des interruptions sont g n r es et on effectue alo
5. 2 N ud avant Dans une premi re version des n uds bas s sur le micro contr leur MC68332 de chez Motorola coeur 68020 taient connect s sur ce bus Le Cycab a ensuite volu et les n uds ont t remplac s par de nouvelles cartes base de micro contr leur MPCSSS 32 bits c ur Power PC construites par la soci t Virtual Micro Design Le Cycab est maintenant commercialis par la soci t Robosoft On peut voir sur la figure 2 le n ud plac l avant du Cycab autour de trois amplificateurs de puissance commande de deux moteurs de traction et d un moteur de direction La figure 3 pr sente un agrandissement de la partie intelligence et figure 4 pr sente les diff rents l ments sur la carte Figure 3 N ud base de MPC555 ENSIEG 10 INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab Figure label Description Al o o o gt wm N gt from 11 to 14 MPC555 Power supply 18 60V DC from batteries BDM Interface Basic Debug Interface 7 analog inputs 16 logical inputs and 20 logical outputs Synchronous serial line SPI Asynchronous serial lines port 0 Asynchronous serial lines port 1 CAN bus port 0 CAN bus port 1 4 connectors dedicated to axis control including 1 analog output per axis Figure 4 Les l ments du n ud 2 3 SUJET DU STAGE Le sujet de mon stage s intitule Programmation des asservissements et de
6. internationaux ENSIEG 5 INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab Assurer le transfert et la diffusion des connaissances et du savoir faire Contribuer a la valorisation des r sultats de la recherche Contribuer notamment par la formation des programmes de coop ration pour le d veloppement Effectuer des expertises scientifiques Contribuer des actions de normalisation VV VvVyv c P les de recherche L INRIA Rh ne Alpes m ne ses activit s en troite collaboration avec les laboratoires de recherche publics et priv s nationaux et internationaux et elle entretient des liens privil gi s avec l institut d Informatique et Math matiques Appliqu es de Grenoble IMAG Ces activit s sont organis es autour de quatre p les de recherche gt Ma triser les syst mes et r seaux informatiques R seaux parall lisme et syst mes r partis gt Aider la conception et la cr ation Bases de connaissances documents multim dia mod les cognitifs gt Percevoir simuler et agir Synth se d images r alit virtuelle vision par ordinateur et robotique gt Mod liser les ph nom nes complexes Automatique simulation et calcul scientifique 1 3 PRESENTATION DU SERVICE Mon stage se d roule au sein du service robotique vision et r alit virtuelle RV2 de l INRIA Rh ne Alpes dont le r le est la mise en uvre des outils mat riels et log
7. les diff rents tests de communication et d interruptions valid s j ai pu passer aux essais sur le nouveau Cycab dit Cycab blanc Jusqu pr sent personne n avait essay de charger du code au nouveau Cycab Le PC sous linux embarqu sur le Cycab s appelle bcycab Lorsque l on met le Cycab sous tension les deux MPC53555 bootent alors sur leur m moire flash qui contient le code crit par Robosoft o l on retrouve notamment la structure Robosoft que l on avait repris pour programmer la communication Pour valider le test d asservissement du r pertoire cycab2 Drvcycab 555 on doit t l charger au n ud le programme ex cutable gr ce au bus CAN en sp cifiant pour chaque n ud sont num ro d identifiant Ici le n ud avant a comme ID en H xa 0x4009 soit en d cimal ID 16393 On se met root sous bcycab et on tape la commande dwnbin DrvCycab555 bin 16393 mais le transfert s arr te apr s l envoie de la premi re trame de 8 bytes sans afficher l accus de r ception On ne peut donc pas envoyer directement du code nouveau au MPCSSS Il faut absolument le faire entrer en mode Loader En regardant le code Robosoft de plus pr t dans le programme cycab2 cycab 000MAI_C c on se rend compte que l on peut faire passer le MPC555 en mode Loader ce qui est possible en lui envoyant un message comportant les valeurs suivantes partir de la structure Robosoft Trame 0 18 256 Trame 1 0 Trame 2 3
8. trouver quel message doit tre transmis de d cider lequel des messages re us via la couche transfert est en cours d utilisation de produire une interface la couche applicative en relation avec le hard relatif au syst me La couche Transfert a pour mission principale de s occuper du transfert du protocole C est dire de g rer et de contr ler la mise en forme de la trame de r aliser l arbitrage des conflits de bus de v rifier l absence ou la pr sence d erreurs et de signaler les diff rents types d erreurs s il y en a ainsi que les fautes de confinement C est l int rieur de cette couche qu il est d cid si le bus est libre pour d marrer une nouvelle transmission ou bien si une r ception d un message incident est juste en train de d marrer La couche Physique a pour r le d assurer le transfert physique des bits entre les n uds en accord avec toutes les propri t s lectriques ou lectroniques du syst me 3 2 RAPPEL SUR LE HARDWARE DU CYCAB RHONE ALPES a Le Cycab poss de e un PC sous Linux un module IP CAN Controller Area Network et une liaison ethernet RF Radio Fr quence e deux Modules traction avant traction arri re compos s chacun d un microprocesseur 555 et d une interface CAN ENSIEG 12 INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab e des entit s peuvent tre rapport es sur le bus CAN ultrasons cam ra lin aire
9. 4 COLOMBANI Eric 3 Ann e gt Option CDSE INP Grenoble ENSIEG Projet de Fin d Etudes Programmation des asservissements et de la communication CAN sur le Cycab Stage ing nieur Date du 01 03 2000 au 30 06 2000 Lieu Institut National de Recherche en Informatique et Automatique Montbonnot 38 I N R I A Rh ne Alpes Ma tre de stage M Herv MATHIEU ing nieur de recherche aux moyens robotiques PLN R LA Rh ne Alpes Tuteur de stage M Jocelyn CHANUSSOT INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab REMERCIMENTS Je tiens remercier vivement l INRIA Rh ne Alpes de m avoir accueilli pour effectuer mon stage de fin d tudes dans le service robotique m offrant ainsi la possibilit s d acqu rir une exp rience professionnelle tr s enrichissante Je remercie ensuite tout particuli rement Herv Mathieu mon responsable de stage pour ses conseils et le temps qu il a bien voulu me consacrer tout au long de ce stage Il m a patiemment expliqu les concepts que je ne connaissais pas C est gr ce a lui et au travail propos que ce stage a t si formateur Je souhaite galement remercier toute l quipe du Service Robotique Vision et R alit Virtuelle de l INRIA Rh ne Alpes G rard Baille Soraya Arias et Jean Fran ois Cuniberto pour leur aide lorsque certains probl mes se sont pr sent s Je remercie aussi tous l
10. LCDPutString dans les programmes compil s et t l charg s MPCSSS Figure 8 Carte Test ENSIEG 20 INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab Ce MPCSSS poss de un code minimum charg dans sa m moire flash si bien qu au d marrage la mise sous tension donc cette carte se place en attente de recevoir du code Apr s chaque reset on doit donc recharger du code au MPCSSS par l interm diaire du bus CAN Pour identifier le destinataire du code dans le r seau CAN la carte poss de un num ro d identifiant en hexad cimal Ici 4014 qui correspond 16404 en d cimal Pour tester la communication sur le bus CAN on se place root sur chouffe on se met dans le r pertoire cycab2 ComCycab Test Test 555 test 555 c et on t l charge alors le programme ex cutable partir de la commande dwnbin test 555 bin 16404 o test 555 bin est un ex cutable compil sous Linux et transform en format binaire Notons qu une fois le code t l charg le MPCSSS boote directement sur ce code et commence son ex cution Pour valider la communication sur le bus CAN on doit galement lancer en parall le le programme test ex cutable qui tourne sous Linux On se place l aussi root sur chouffe on se met dans le r pertoire cycab2 ComCycab Test Test linux test linux c et on lance le programme partir de la commande test linux a Premi re S rie de Tests Dans les premiers tests d
11. N c t Linux et MPC555 dans cycab2 Comcycab 555 comCycab555 c et cycab2 Comcycab Linux comCycabLinux c Mais galement trois sous r pertoires Le fichier cycab2 ComCycab 555 contient les pilotes de la communication c t 555 et le makefile de ce r pertoire g n re la librairie libcomCycab555 a partir du programme comCycab555 c qui regroupe les fonctions qui g rent la communication sur le bus CAN et de xFunBasS h o l on retrouve la d claration de toutes les fonctions en assembleur du r pertoire cycab2 Libnode Le fichier cycab2 ComCycab Linux contient les pilotes de la communication c t Linux et le makefile de ce r pertoire g n re la librairie libRcomCycab a partir du programme comCycabLinux c qui regroupe les fonctions qui g rent la communication sur le bus CAN de robosoft c qui contient les fonctions permettant d envoyer et de recevoir des trames sur le bus CAN et de robosoft h o l on retrouve la d claration de toutes les fonctions en C du programme comCycabLinux c Le fichier cycab2 ComCycab Test contient lui aussi deux sous r peretoires On a ainsi le r pertoire cycab2 ComCycab Test Test 555 o le makefile g n re un binaire ex cutable qui permet de tester les pilotes de la communication cris dans cycab2 ComCycab 555 Ce binaire est compil partir du fichier test 555 c qui est un petit programme test en C avec un main et des librairies g n r es dans cycab2 ComCycab 555 L e
12. NSIEG 29 INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab 7 BIBLIOGRAPHIE e 1 La page web de l INRIA http www inria fr 2 La page web de l INRIA Rh ne Alpes http www inrialpes fr 3 La page web du Service Robotique Vision et R alit Virtuelle de l INRIA Rh ne Alpes http www inrialpes fr iramr 4 La page de Motorola http www motorola com e 5 La page de Robosoft http www robosoft fr e 6 Motorola MPC555 User s Manual e 7 Motorola MPC555 Evaluation Board Quick Reference 8 Motorola Time Processor Unit Reference Manual 9 Rapport de stage DESS Essi Fabien Lydoire Programmation d une centrale de contr le commande base de Power PC 10 Rapport technique G rard Baille Philippe Garnier Herv Mathieu Roger Pissard Gibollet Le Cycab de l INRIA Rh ne Alpes ENSIEG 30
13. ation de l tat 442 MF HT ressources propres 174 MF HT L Ressources humaines titulaires INRIA 724 post Doctorants et Contractuels 256 doctorants 550 chercheurs et enseignants d autres organismes 230 conseillers collaborateurs divers et invit s 430 L Indicateurs contrats de recettes actifs plus de 600 contrats de recettes sign s dans l ann e plus de 200 un peu mins d une cinquantaine de soci t s sont issues de l INRIA depuis Ilog aujourd hui cot e au Nasdacq jusqu aux toutes derni res 5 en 1998 6 en 1999 11 en 2000 ENSIEG 4 INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab 7 brevets initiaux d pos s en 1999 1 est en pleine propri t INRIA les autres sont en copropri t s 5 avec des industriels et 1 avec une universit c Gestion des projets Un projet de recherche est une quipe rassemblant de 15 20 personnes autour d une th matique forte et sur des objectifs scientifiques pr cis Ces quipes g rent de fa on autonome leur budget Les r sultats obtenus et les retomb es industrielles qu ils induisent sont r guli rement valu s Une action de recherche est un groupe de chercheurs poursuivant un travail commun sur une th matique sp cifique qui peut aboutir la cr ation d un projet de recherche 1 2 PRESENTATION DE L INRIA RHONE ALPES a Introduction Cr e en d cembre 1992 l INRIA Rh n
14. compilation des pilotes de la communication des r pertoires cycab2 ComCycab 555 et cycab2 ComCycab linux les ex cutables recompil s et le code du MPCSSS t l charg j ai pu reprendre les tests et v rifier que le PC sous Linux affichait bien les valeurs attendues pour l identifiant c est dire les valeurs crites en dures dans le programme cycab2 ComCycab Test Test 555 test 555 c b Deuxi me S rie de Tests Pour la deuxi me s rie de tests on voulait v rifier le circuit total emprunt par les messages dans le cadre du fonctionnement sur le Cycab On d cide donc de valider le passage de l tape 1 l tape 4 du sch ma de la figure 7 Pour cela le PC sous Linux devait envoyer un message crit en dur dans le programme test cycab2 ComCycab Test Test linux test linux c alors que le MPCSSS passait en attente de message Une fois le message re u celui ci tait renvoy aussit t sur le bus CAN puis regu par le PC sous Linux qui tait repass en mode attente de message Mais j avais hiss dans ce nouveau test le test pr c dent que je venais de valider Le d but du programme se d roulait bien savoir le message crit cot MPC555 puis envoy tait bien re u par Linux qui ensuite envoyait un nouveau message qui ne devait faire qu un aller retour entre lui et le MPC555 Mais le second message re u par Linux celui qui devait faire l aller retour correspondait en r alit au premier message crit e
15. des asservissements et de la communication CAN sur le Cycab 6 CONCLUSION Ce stage m a donn l occasion de suivre et comprendre les diff rentes tapes de d veloppement d une application de contr le commande base de micro contr leur en partant de la carte lectronique en passant par le langage assembleur pour arriver au langage C De plus le fait de s impliquer et de comprendre des programmes d j existants pour les adapter un nouvel environnement aura t tr s formateur Les nombreux probl mes survenus lors des essais sur le Cycab m auront appris prendre des initiatives pour cibler les causes de ces probl mes Enfin j aurai galement d couvert de nouvelles notions autour des architectures distribu es gr ce notamment e L tude et la mise en place d un protocole de communication entre deux identit s diff rentes e L tude et la validation des codes en langage assembleur fournis par Robosoft Ce stage m aura ainsi permis de suivre mon projet de la conception l impl mentation d int grer des composants mat riels et logiciels complexes tout en travaillant en quipe avec les doctorants et chercheurs utilisant le Cycab La documentation technique laiss e l INRIA sera reprise et compl t e dans un rapport technique de l INRIA Elle permettra la poursuite et l utilisation de mon travail ainsi que le d veloppement d application fonctionnant sur le n ud Robosoft dans le cas du Cycab E
16. e Alpes est la plus r cente des cinq unit s de recherche de l INRIA Men es au sein d une r gion en plein essor technologique les activit s de l unit de recherche INRIA Rh ne Alpes mobilisent plus de 330 personnes dont 220 chercheurs g ographiquement r parties sur trois sites le site de l INRIA Montbonnot le campus universitaire de Grenoble et l Ecole Normale Sup rieure de Lyon Ces activit s s inscrivent dans le cadre des missions que doit accomplir l INRIA en tant qu tablissement de recherche national tout en se focalisant sur les objectifs strat giques poursuivis par l institut dans le domaine des sciences et technologies de l information et de la communication L INRIA Rh ne Alpes accueille plus de 130 doctorants ing nieurs et stagiaires Ses chercheurs participent l enseignement sup rieur au sein des universit s et grandes coles de la r gion Rh ne Alpes Institut National Polytechnique de Grenoble universit Joseph Fourier universit Pierre Mend s France universit de Savoie Ecole Nationale Sup rieure de Lyon b Missions de l INRIA Rh ne Alpes En tant qu unit de recherche de l INRIA les principales missions de l INRIA Rh ne Alpes sont selon le d cret du 2 ao t 1985 portant sur l organisation et le fonctionnement de l institut gt Entreprendre des recherches fondamentales et appliqu es gt R aliser des syst mes exp rimentaux gt Organiser des changes scientifiques
17. e bus CAN g n re une interruption si le bit correspondant est mis 1 On a du modifier la valeur de ce registre la mettre O ici pour tester les interruptions alors qu en fonctionnement normal le buffer O doit g n rer une interruption apr s chaque bonne transmission r ception Deuxi me type d interruptions ENSIEG 24 INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab Il existe galement 3 autres interruptions bus off error et wake up On s assure alors que dans le registre CANCTRLO les bits BOFFMSK et ERRMSK soient bien mis z ro Ainsi que le bit WAKEMSK dans le registre TCNMCR Une fois ces r galages effectu s on peut tester les interruptions On r alise alors une fonction d interruption test qui contient un compteur dont on affiche la valeur sur l cran gr ce la fonction LCDPutString en s assurant qu elle ne g n re pas d interruptions On v rifie ainsi le bon fonctionnement du changement de la valeur du status dans la structure CYCAB_COM ainsi que la bonne correspondance entre les valeurs du compteur des interruptions et celui de la fonction test effectu e On valide donc les routines d interruptions en v rifiant qu galement que l on peut faire descendre la p riode des interruptions jusqu 1 ms lorsque les routines d interruptions sont vides c est dire avec juste un compteur 5 4 LA COMMUNICATION SUR LE CYCAB Une fois
18. e communication effectu s nous avions choisit de commencer les changes par un message qui serait crit en dur dans le programme test t l charg et envoy par le MPCSSS sur le bus CAN alors que Linux lui de son cot restait en attente d un message On d cide donc de valider le passage de l tape 3 l tape 4 du sch ma de la figure 7 Les premiers tests r alis s avec diff rentes valeurs pour les 11 bits consacr s l identifiant retournaient des messages avec toujours les m mes valeurs d identifiant En fait tout se passait comme si les 11 bits taient tous z ro Il a donc fallu reprendre le chemin s quentiel suivi par la structure CYCAB On retrouvait dans le main du programme test 555 c une structure CYCAB crite en dure c est dire dont les valeurs avaient t fix es et qui tait alors envoy e vers le PC sous Linux par la fonction cycabCanSend Cette fonction qui transforme cette structure CYCAB en structure Robosoft fait appel la fonction CANSendMsg d crite en assembleur dans le programme CANASM s du r pertoire cycab2 Libnode En regardant le code assembleur de cette fonction je me suis aper u que lors de la phase de manipulation des registres celui qui contenait la valeur de l identifiant tait mal exploit puisque seuls les bits de 16 23 sur les 32 bits du registre taient utilis s dans la suite alors que cet emplacement est toujours vide bits z ro J ai donc r alis u
19. e programme t l charger chaque n ud l identifiant de ce dernier concr tement on choisit le num ro 1 pour le n ud avant et 2 pour l arri re D sormais chaque module poss de un identifiant unique et donc un fichier g n r unique puisqu il a t d cid de ne pas avoir d allocation dynamique d identifiant Pour am liorer le test on rajoute un deuxi me argument pour que l utilisateur fixe le nombre de messages envoy s par le PC en direction d un n ud Une fois cette modification apport e les biblioth ques r g n r es les ex cutables recompil s et le code du MPCSSS t l charg j ai pu reprendre les tests et v rifier que le PC sous Linux affichait bien les valeurs attendues c est dire les valeurs crites en dures dans le programme cycab2 ComCycab Test Test linux test linux c On valide alors d finitivement la communication en t l chargeant au n ud le binaire ex cutable recompil avec la valeur 1 pour le num ro d identifiant sur le bus CAN avec toujours la m me commande dwnbin test 555 bin 16404 Puis cot PC on lance la commande test linux I 6 On a alors l cran cycabComInit init du device Can sur le PC linux work on CAN 0 d800 adr rec 0x1 ra regq dp dp ack ack trame exp 0x0 id 0x0 key 0x33 data 0x0 0x0 0x0 0x0 valeur 0x0 adr rec 0x1 ra regq dp dp ack ack trame exp 0x0 id 0x1 key 0x33 data 0x0 0x0 0x0 0x1 valeur 0x1 adr rec
20. es stagiaires pr sents sur place dans la halle robotique de l INRIA o se d roulait mon stage ENSIEG 2 INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab Table des mati res 1 Description de Pentreprise 1 1 Pr sentation de I INRIA 1 2 Pr sentation de l INRIA Rh ne Alpes 1 3 Pr sentation du service 2 Pr sentation du stage 2 1 Th me du stage le Cycab 2 2 Les projets concern s 2 3 Sujet du stage 3 Description de l Impl mentation Logicielle sur le CYCAB Rh ne Alpes 3 1 Le bus CAN 3 2 Rappel sur le Hardware du Cycab 3 3 Le Protocole CAN Cycab 3 4 Outils de Programmation 4 Description du code avant le stage 4 1 Le code Robosoft en langage Assembleur 4 2 Le code en C d veloppe par l INRIA 5 Description du travail r alis 5 1 Arborescence autour du Cycab 5 2 La communication sur une carte test 5 3 Le probl mes des interruptions 5 4 La communication sur le Cycab 6 Conclusion 7 Biographie S Annexes 9 R sum Abstract ENSIEG 3 INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab 1 Description de l entreprise 1 1 PRESENTATION DE L INRIA a Introduction Cr en 1967 Rocquencourt pr s de Paris INRIA Institut National de Recherche en Informatique et en Automatique est un tablissement public caract re scientifique et technologique qui m ne de
21. et c est partir de ces fonctions que j ai pu construire une architecture logicielle pour le nouveau Cycab ENSIEG 15 INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab 5 Description du travail r alis 5 1 ARBORESCENCE AUTOUR DU CYCAB Mon stage a donc commenc ainsi en tablissant une architecture logicielle J ai donc d fini une arborescence fonctionnelle pour ranger les diff rents programmes qui g rent la communication CAN et les asservissements sur le Cycab a Sch ma de l arborescence Cycab2 Don Test Test 555 Linux ENSIEG 16 INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab b Description de Parchitecture logicielle du Cycab Voici une description des cinq sous r pertoires pr sents sous cycab2 mais pour une meilleure compr hension il est souhaitable de se r f rer aux annexes en fin de rapport Dans cycab2 Cycab on retrouve toutes les fonctions d velopp es par Robosoft qui permettent l utilisateur du Cycab de se servir du v hicule lorsque celui ci est utilis dans un mode sp cifique Au d marrage du Cycab on peut suivant l orientation du joystick choisir cinq modes de fonctionnements Les modules bootent alors sur le code crit par Robosoft dans leur m moire flash Rappelons que le but du stage est d adapter le propre code d velopp par INRIA au nouveau Cycab j ai en
22. et pour i 3 7 Trame 1 0 Premier Test Trame Loader sur bcycab ENSIEG 25 INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab On se met root sous beycab et on envoie par Linux un message qui doit permettre au MPCSSS de se mettre en mode Loader On utilise alors la fonction cycabSendCmd qui fait appelle la fonction sendCanBuf de Robosoft Pour suivre ce message on demande Linux d afficher le message de retour mais dans le suivi s quentiel du programme principal on en conclut que le message est bien envoy mais que celui ci n est pas renvoy De plus lorsque l on essaye de t l charger au MPCSSS l ex cutable on se retrouve dans le m me cas que lors du premier test savoir bloquer apr s l envoie de la premi re trame de 8 bytes Ceci nous laisse alors penser un probl me d identifiant c est dire que le message envoy sur le Bus CAN n est en fait jamais lu par le MPCSSS Remarque On r alise ces essais en testant les 2 ports du CAN CANO et CANI Deuxi me Test Test du PC On d cide alors de v rifier le bon fonctionnement du PC Linux embarqu Pour cela on branche sur le PC le bus CAN et le MPC555 qui m avait servi tester la communication puisque ce MPC553 ne boote pas sur un programme crit dans sa m moire flash Avec la commande dwnbin test 555 bin 16404 on envoie au MPCSSS le code du programme test mais l encore on n arrive pas
23. fait juste introduit ces fonctions titre indicatif Dans cycab2 Libnode on retrouve les fonctions Robosoft crites en langage assembleur de chez motorola qui sont en fait les fonctions de base du MPCSSS Le makefile de ce r pertoire g n re la librairie libnode5353 a qui est utilis e dans la compilation de toutes les fonctions qui sont destin es aux n uds Dans cycab2 DrvCycabLinux on retrouve les fonctions d veloppes par l INRIA pour g rer les asservissements sur le Cycab cot utilisateur Ce sont les pilotes de l asservissement cot Linux ils sont utilisables avec l ex cutable drvCycabLinux Dans cycab2 DrvCycab555 on retrouve les fonctions d velopp es par l INRIA pour g rer les asservissements sur le Cycab Ce sont les pilotes cot s MPC555 Le makefile g n re un binaire ex cutable drvCycab355 qui permet de tester les pilotes des asservissements Ce binaire est compil partir des fichiers main c interruption c et de driver h e Dans driver h on a la d finition de la structure MODULE_COM en langage C qui regroupe les param tres globaux du code Il s agit d une structure assez lourde mais qui permet de manipuler tous les l ments n cessaires au contr le du Cycab dont les routines d interruptions Ces interruptions sont g r es dans la structure MODULE _IT_TIMER qui est une variable de la structure MODULE_COM e Dans interruption c on retrouve la fonction cycabIntrInit qui initialise le tableau i
24. figure 5 En r sumant les transferts sur le bus CAN sont bas s sur des trames constitu es de 11 bits d en t te et de 8 octets de message L ent te est utilis pour identifier le destinataire de mani re unique 8 bits et le type de message 3 bits Les diff rents types de messages sont e envoi d une requ te avec ou sans donn s et avec ou sans demande d acquittement e r ponse une requ te avec ou sans donn s Les 8 octets de messages se d composent en ENSIEG 13 INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab un octet pour l identifiant de l envoyeur un octet pour l identifiant du message un octet pour le mot de commande ex cuter quatre octets pour les donn es ventuelles dernier octet disponible jamais utilis Dans la version actuelle du CYCAB seules des requ tes avec demande d acquittement sont utilis es ErTete Message 11blts Joctets _ _ A Destinatalre Requete Envoyeur jp Commande Donnees Message Figure 5 Trame d un message 3 4 OUTILS DE PROGRAMMATION a Le compilateur Pour le PC sous Linux la cha ne de d veloppement GNU est utilis e On utilise le compilateur Cross GCC le GNU Compiler Collection un compilateur standard dans le monde UNIX La partie GNU est aussi utilis e pour d velopper le code des modules b Les outils Robosoft Les outils Robosoft consistent en deux programmes L u
25. iciels pour les exp rimentations robotiques des projets de recherche du site Ce service compte gt 3 ing nieurs de recherche gt 1 ing nieur expert gt 1 technicien gt 1 assistante de service a Les missions du service Les missions qui lui sont attribu es sont de trois types gt Activit de service Y maintenance des syst mes robotiques v installation et maintenance de logiciels sp cialis s v interface entre les utilisateurs et le service informatique Y assistance aux utilisateurs gt Activit de d veloppement Y mise en place d exp rimentations Y d veloppement de logiciels d di s la robotique gt Activit de recherche ENSIEG 6 INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab Y conception de syst mes robotiques Y confrontation th orie et exp rimentation Le but du Service Robotique est de f d rer l effort exp rimental en favorisant gt les exp rimentations inter projets gt la mise en commun des moyens exp rimentaux gt les outils r utilisables environnement de d veloppement machine de vision b Les projets concern s Les moyens robotiques travaillent avec les projets tels que Interaction homme machine images donn es connaissances et Simulation et optimisation de syst mes complexes impliqu s en robotique et vision gt SHARP Programmation automatique et syst mes d cisionnel
26. la communication CAN sur le Cycab Le but du stage est de transf rer les asservissements et la communication CAN Controller Area Network con us pour le Cycab pr c dent sur ce nouveau Cycab ENSIEG INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab 3 Description de l Impl mentation Logicielle sur le CYCAB Rh ne Alpes 3 1 LE BUS CAN Le bus CAN est un bus s rie asynchrone 2 fils sym trique Il se pr sente sous la forme normalis e des diff rentes couches ISO OSI Il en est sa version 2 0 qui comprend 2 parties A et B La partie A d crit la trame CAN la plus courante qui permet d adresser des identificateurs sur 11 bits contre 29 bits pour la version B ou tendue Le bus CAN poss de les principales propri t s suivantes e hi rarchisation des messages e garantie des temps de latence e souplesse de configuration e r ception de multiples sources avec synchronisation temporelle e syst me multima tre d tection et signalisation d erreurs e retransmission automatique des messages alt r s d s que le bus est lib r e distinction entre des erreurs temporaires et des non fonctionnalit s permanentes au niveau d un n ud e d connexion automatique des n uds d fectueux Le protocole CAN a t subdivis en diff rentes couches la couche Objet la couche Transfert et la couche Physique La couche Objet a pour mission principale de
27. n elf2sdxbin permet de transformer le code compil format elf en binaire t l chargeable au MPCSSS On peut alors charger ce code sur la carte en utilisant le second programme dwnbin Notons que le programme dwnbin utilise directement les ports d entr e sortie de la carte CAN Il est donc n cessaire d tre root pour Putiliser ENSIEG 14 INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab 4 Description du code avant le stage 4 1 LE CODE ROBOSOFT EN LANGAGE ASSEMBLEUR Dans le code utilis sur la version pr c dente du Cycab on retrouve une biblioth que Robosoft crite en langage assembleur de chez Motorola permettant l utilisation du MPCSSS J ai donc commenc par tudier le code de la biblioth que Robosoft concernant la communication via le bus CAN Ce fut mon premier contact avec de l assembleur Power PC J aurai pu traduire ces fonctions en langage C mais nous avons pr f r conserver ces fonctions C est partir des ces fonctions que j ai pu comprendre et utiliser les fonctions en langage C d velopp es par INRIA 4 2 LE CODE EN C DEVELOPPE PAR L INRIA Pour la version pr c dente du Cycab qui fonctionnait sous un environnement VxWorks l INRIA avait d velopp des fonctions en langage C pour la programmation des asservissements et de la communication CAN L encore c est partir de ces fonctions que j ai pu comprendre la philosophie du Cycab
28. n nouveau masque sur ce registre qui nous garantissait de bien retrouver les 11 bits qui codent pour l identifiant du message Mais malgr cette modification apport e au code assembleur de Robosoft les tests continuaient pr senter les m mes r sultats c est dire un identifiant nul Il a valut continuer remonter le code pour voir ou se situait l erreur Cot Linux on tait en attente d un message gr ce une boucle infinie qui appelait la fonction cycabReceiveMessage qui re oit un message du CAN gr ce la fonction recyCANbuf d crite dans le programme Robosoft c du r pertoire cycab2 Comcycab Linux et qui va lire sur le bus CAN un ventuel message ENSIEG 21 INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab En regardant de plus pr s le code C de cette fonction j ai vu que la variable adr qui doit recevoir la valeur de l identifiant du message tait mal manipul e En effet les bits 3 a 10 tait rang s dans adr auquel on ajoutait avec l op rateur amp op rateur logique et les bits O 2 si bien qu au final on se retrouvait avec une valeur nulle dans adr soit ous les bits de l identifiant z ro J ai donc remplac l op rateur amp par un op rateur op rateur logique ou pour retrouver toutes les valeurs de l identifiant sans perdre de bits Une fois ces modifications apport es les biblioth ques r g n r es c est dire apr s
29. nvoy sur le bus CAN tait r cup r par le n ud arri re J ai pu le v rifier en recommengant le test en d branchant le n ud avant et en donnant une valeur quelconque pour le num ro d identifiant du module Il fallait ensuite valider le t l chargement en lan ant test linux_bcycab 1 6 sur le PC embarqu On a alors l cran cycabComInit init du device can sur le PC linux work on CAN 0 e000 adr rec 0x1 ra ack dp no_dp ack no_ack trame exp 0xA id 0x0 key 0x0 data 0x0 0x0 0x0 0x0 valeur 0x134521372 Alors que l on aurait du obtenir l cran cycabComInit init du device can sur le PC linux work on CAN O e000 adr rec 0x1 ra reg dp dp ack ack trame exp 0x0 id 0x0 key 0x33 data 0x0 0x0 0x0 0x0 valeur 0x0 On ne retrouve donc pas les valeurs crites en dures dans le programme cycab2 ComCycab Test Test linux test linux c Ceci montre que le t l chargement n a pas r ussi Le transfert des trames s tait pourtant bien effectu mais l vidence il y a un probl me dans l criture des registres C est arriv cette tape que j al interrompu mon travail afin de pr parer mon rapport de stage Apr s cela je disposerai encore de deux semaines de stages pour achever mon travail J essayerai donc partir de la carte test que je placerai sur le Cycab de valider les commandes pour les moteurs ENSIEG 28 INRIA Rh ne Alpes Programmation
30. our h ville Ils tudient en particulier le concept du libre service et celui de la voiture automatique Les premiers r sultats de recherche ont d bouch sur le projet Praxit le 1993 1999 qui tait en exploitation Saint Quentin en Yvelines Les partenaires industriels du projet taient CGFTE la filiale transports publics de Vivendi Dassault Electronique EDF et Renault Dans le cadre du projet Praxit le l INRIA a d montr la faisabilit de la conduite automatique sous certaines conditions cr neau et train de v hicule exp riment sur une Ligier lectrique instrument e cet effet Pour des raisons de l gislation et de responsabilit ces automatismes de conduite n ont pas pu tre impl ment s sur les Clio lectriques de Saint Quentin en Yvelines Le Cycab a ensuite t d velopp par l INRIA avec l aide de l Inrets de EDF de la RATP et de la soci t Andruet S A pour montrer le potentiel de l informatique dans la conduite de v hicules Le Cycab est un v hicule lectrique quatre roues motrices et directrices avec une motorisation ind pendante pour chacune des roues et pour la direction Pour contr ler et commander les 9 moteurs du Cycab 4 de traction 1 de direction et 4 de frein une architecture mat rielle a t choisie Elle est constitu e de n uds intelligents pouvant g rer les diff rents moteurs du Cycab et r partie autour d un bus de terrain CAN Controller Area Network tr s r pandu dan
31. rs chaque p riode d interruption la fonction interruptHandlerPIT Cette fonction contient un compteur qui g re le nombre de passage dans interruptHandlerPIT donc le nombre de passage depuis la derni re interruption Ensuite on v rifie dans cette fonction pour toutes les proc dures d interruption la valeur du sfatus ainsi que la valeur du compteur par rapport celle du modulo Pour tester les interruptions on charge au n ud l ex cutable drvCycab555 g n r partir du programme interruption c notamment Dans ce programme on cr e une routine d interruption test qui ne contient qu un simple compteur de boucle pour contr ler le nombre de passage dans cette routine On ne passe la variable status OK que pour cette routine Lors des premiers tests le LCD affiche que le MPC555 est bien en attende d un message de Linux Mais une fois un message envoy lorsque l on recharge le code apr s avoir reseter on ne retourne plus dans la boucle d attente En fait dans le manuel d utilisateur du micro contr leur on apprend que le bus CAN lui m me g n re des interruptions On s assure alors que le bus CAN ne g n re pas d interruptions en v rifiant dans cycab2 Libnode CANASM s que les masques ne d clenchent pas les diff rentes routines d interruptions possibles Premier type d interruptions Le registre IMASK d termine quel buffer c est l que sont stock s les messages re us o envoy s sur l
32. s en robotique gt MOVI Mod lisation localisation reconnaissance et interpr tation en vision par ordinateur gt BIP Conception et contr le de robots marcheurs et applications gt iMAGIS Mod les algorithmes g om trie pour le graphique et l image de synth se gt PRIMA d velopper des techniques pour l int gration de la perception et de l action en robotique ENSIEG 7 INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab 2 Pr sentation du stage 2 1 THEME DU STAGE LE CYCAB Figure 1 Le Cycab Dans le cadre de la route automatis e l INRIA a imagin un syst me de transport original de v hicules en libre service pour la ville de demain Ce syst me de transport public est bas sur une flotte de petits v hicules lectriques sp cifiquement con us pour les zones o la circulation automobile doit tre fortement restreinte Pour tester et illustrer ce syst me un prototype nomm Cycab Figure 1 a t r alis Aujourd hui l INRIA Rh ne Alpes poss de trois Cycabs pour d velopper des applications autour de ce mode de transport 2 2 L ETAT D AVANCEMENT DU PROJET ENSIEG 8 INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab Les chercheurs de INRIA et de l Inrets Institut National de Recherche sur les Transports et leur S curit travaillent depuis 1991 sur de nouveaux moyens de transport intelligent p
33. s le monde de l automobile Le r le des n uds est d asservir les moteurs en fonction des consignes de vitesse et de braquage qui transitent sur le bus CAN soit en provenance de l interface homme machine la position du joystick soit par un programme de planification de trajectoires Le n ud doit donc non seulement tre capable de fournir la puissance n cessaire aux moteurs mais aussi ex cuter les boucles d asservissement de vitesse ou de position Pour ce faire il doit prendre en compte un certain nombre d informations en provenance des capteurs proprioceptifs tat odom trie fins de course mesures de temp rature de courant Cette description succincte fait appara tre trois entit s composant un n ud e Un module de puissance avec des transistors MOS FET de puissance et leur commande de GATE pour piloter les moteurs e Un module d interface et de communication dont le r le est essentiellement de mettre en forme les signaux Tout ou Rien ou de convertir les signaux analogiques en provenance des capteurs du joystick ou allant vers les indicateurs d tat pour qu ils soient exploitables par le micro contr leur Ce module g re aussi les communications sur le bus CAN e Un module de calcul qui partir des consignes et des donn es proprioceptives calcule les courants envoyer aux moteurs ENSIEG 9 INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab Figure
34. s recherches avanc es dans le domaine des sciences et technologies de l information et de la communication Ce domaine inclut l informatique et l automatique mais aussi les t l communications et le multim dia la robotique le traitement du signal et le calcul scientifique L INRIA est plac sous la double tutelle du Minist re de la Recherche et du Minist re de l Economie des Finances et de l Industrie L INRIA a l ambition d tre au plan mondial un institut de recherche au c ur de la soci t de l information Sa volont est de mettre en r seau des comp tences et des talents de l ensemble du dispositif de recherche fran ais dans le domaine des STIC Ce r seau permet de mettre l excellence scientifique au service des progr s technologiques cr ateurs d emplois de richesse et de nouveaux usages r pondant des besoins socio conomiques Son organisation d centralis e 5 unit s de recherche ses petites quipes autonomes et valu es r guli rement permettent l INRIA d amplifier ses partenariats 47 projets de recherche sur 87 sont communs avec les universit s les grandes coles et les organismes de recherche Il renforce son implication dans les travaux de valorisation des r sultats de recherche et le transfert technologique 600 contrats R amp D avec l industrie et un peu moins d une cinquantaine de soci t s sont issues de l INRIA b Quelques chiffres d cembre 2000 L Ressources budg taires dot
35. t envoy par le MPC555 au d but Tout se passait comme si le message crit en dur cot MPCSSS n tait pas cras par les messages envoy s par Linux En fait le probl me se trouvait dans le registre I FLAG de la fonction canasm s qui contient un bit qui est pass 1 pendant une r ception transmission et qui est remis z ro la fin d une bonne r ception transmission Il a fallut passer outre et m me si dans les tests o l on commen ait par envoyer des messages de Linux c est dire sans crire en dur cot MPCSSS on ne retrouvait pas ce probl me Pour cela et se pr venir d ventuels probl mes dans les futurs tests nous avons du rajouter des v rifications de conditions par les tests de communications On a donc introduit un marqueur sur chaque message qui v rifie pour chaque r ception la valeur de l identifiant en regardant la variable can_in id A ce moment les tests de communication r pondaient bien au cahier des charges qui avait t choisi par le service robotique Mais dans le but d impl menter ce protocole de communication au nouveau Cycab qui est compos de deux n uds on a choisi d introduire ENSIEG 22 INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab un argument dans le programme ex cutable de Linux pour distinguer les diff rents n uds avec lesquelles le PC peut entrer en communication On aura bien sur auparavant crit en dur dans l
36. t_timer 5 de structure MODULE _IT_TIMER servant aux fonctions d interruptions et fixe la fr quence des interruptions gr ce la fonction initinterrupt On a ainsi cinq fonctions qui d crivent les routines d interruption comme par exemple cycablntr Velocity qui s occupe de r guler la vitesse du Cycab par rapport une consigne chaque fois que cette fonction est appel e Une de ces fonctions est appel e lorsque sa variable sfatus est OK c est dire quand l utilisateur d cide de rentre active cette routine d interruption et que le compteur des interruptions la valeur de sa variable modulo qui fixe la fr quence de cette interruption Ce sont les fonctions cycablntrStop et cycabIntrStart qui g rent le passage du status OK ce qui active l interruption et ERROR ce qui rend inactive l interruption e Dans main c la fonction cycablnit initialise les premi res valeurs de la structure MODULE _COM La fonction cycabExecute dont l argument d entr e correspond au message re u donc l instruction s occupe d appliquer la commande et de renvoyer un accus de r ception au PC ENSIEG 17 INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab Dans cycab2 ComCycab j ai cr le programme comCycab h o l on retrouve les d clarations des structures CYCAB et CanMsgStruct en langage C ainsi que la d claration des fonctions qui g rent la communication CA
37. u de faire passer le MPC555 en mode Loader en se pla ant root sur bcycab avec la commande test loader_bcycab le programme ayant t recompil avec les changements d adresse du CAN apport s dans robosoft c Mais l encore si le message est bien envoy sur le bus CAN on ne re oit jamais de message r ponse de la part du MPCSSS qui ne passe toujours pas en mode loader Troisi me test Test du c ble Devant la complexit du probl me j ai d cid de tester d autres configurations pour essayer de d terminer l origine du probl me On teste alors le bon fonctionnement du c blage CAN du Cycab blanc en branchant la carte sur le bus CAN du Cycab J ai ainsi branch sur le circuit CAN du Cycab blanc la place de la carte avant le MPCSSS du test de la communication puis j ai essay de lui t l charger l ex cutable du test de la communication avec la commande dwnbin_bcycab test 555 bin 16404 J ai r ussi t l charger l int gralit du code compil et au format binaire On teste alors la communication en lan ant le programme test du c t Linux avec la commande test linux_bcycab 1 6 et on retrouve bien en r ception les deux s ries de r ponses avec trois valeurs 0x00 0x01 et 0x02 puis les trois r ponses 0 1 et 2 comme pour le test sur chouffe On obtient alors l cran les m mes r sultats que pour le test de communication sur chouffe On v rifie alors que le bus CAN du Cycab fonctionne correctement
38. unication CAN sur le Cycab Le PC a alors les informations pour construire un message en remplissant la structure CYCAB Le message est envoy sur le bus CAN par la fonction CycabSendCmd qui transforme le message en une structure CanMsgStruct pour utiliser la fonction SendCanBuf de robosoft c C t MPC555 le message de structure CanMsgStruct est r cup r sur le bus par la fonction Robosoft CanRecvMsg de cycab2 Libnode canasm s Le n ud exploite alors le message avec la fonction CycabCanRece qui assure le passage d une structure CanMsgStruct en une structure CYCAB que le code charg au n ud pourra comprendre Comme le protocole de communication l a d fini le n ud doit renvoyer un message pour informer le PC de sa bonne r ception C est la fonction CycabCanSend qui transforme le message de structure CYCAB en structure CanMsgStruct que la fonction Robosoft CanSendMsg envoie sur le bus CAN L accus de r ception est r cup r alors par le PC avec la fonction CycabReceiveMessage qui transforme le message en structure CYCAB le message r cup r en structure CanMsgStruct par la fonction RecvCanBuf de robosft c Le Service Robotique dispose d une carte d valuation MPC555 figure 8 aliment par une alimentation 48V comme sur le Cycab et reli via un bus CAN chouffe un PC sous Linux qui poss de un port CAN Cette carte poss de galement un cran LCD qui peut afficher des caract res l aide de la fonction
39. x cutable est ensuite transform au format binaire pour tre t l charg au n ud C t linux on a le r pertoire cycab2 ComCycab Test Test Linux o le makefile g n re un binaire ex cutable qui permet de tester les pilotes de la communication cris dans cycab2 ComCycab Linux Ce binaire est compil partir du fichier test linux c qui est un petit programme test en C avec un programme principal et des librairies g n r es dans cycab2 ComCycab Linux L ex cutable est ensuite utilisable sous Linux partir de la commande test linux c Etapes de la communication entre le PC et le n ud _via le bus CAN Voici sur un exemple comment se d roule la communication sur le cycab Un utilisateur du Cycab d cide d envoyer une commande pour d marrer les moteurs avant En lan ant l application drvCycabLinux sur le PC embarqu il choisit dans le menu d appliquer cette commande ENSIEG 18 INRIA Rh ne Alpes Programmation des asservissements et de la communication CAN sur le Cycab Applicatif sous linux CycabSendCmd Structure Cycab CycabReceiveMessage Structure Cycab SendCanBuf Structure Robosoft RecvCanBuf Structure Robosoft ENE AAA AAA ARAU AAA AAA AO O Bus CAN CanSendMsg Structure Robosoft CanRecvMsg StructureRobosoft CycabCanRece Structure Cycab CycabCanSend Structure Cycab Applicatif 555 ENSIEG 19 INRIA Rh ne Alpes Programmation des asservissements et de la comm

Download Pdf Manuals

image

Related Search

Related Contents

  Toro ProCore Processor (09749) Specifications  B - Ricoh  業務実績リスト - マニュアル|取扱説明書110番  Samsung DVD-VR300E Instrukcja obsługi      2 - BiggerHammer  C2/C2C User Manual  CG 18DL • CG 18DAL  

Copyright © All rights reserved.
Failed to retrieve file