
Utilisation d'un processeur Nios II
Cette partie présente la mise en œuvre de fonctions permettant la commande des 6 moteurs du sens et de la vitesse du Robot. Nous avons aussi mis en place la gestion des boutons poussoirs de la carte, celle de l’afficheur LCD et de l’afficheur 2x7 segments.
III.1 Librairies C permettant le dialogue avec les registres
Le design de notre périphérique le rend simplement commandable par la lecture ou l’écriture des 9 registres du "Register_File" (voir chap II.4.1)
Ces opérations sont permises par l’appel des fonctions IORD (Input Output Read) pour la lecture et IOWR (Input Output Write) pour l’écriture.
Les prototypes de ces fonctions sont:
IOWR(adresse du périphérique, numéro du registre, données à écrire)
IORD(adresse du périphérique, numéro du registre) qui retourne une valeur sur 32 bits
Par exemple pour choisir d’activer le moteur 0 il suffit d’écrire :
IOWR(Z_ROBOT_0_BASE, 3, 0) ;
Z_ROBOT_0 est le nom choisi pour notre périphérique lors de son ajout au système sous SOPC builder (voir manuel d’utilisation de Quartus II chap V)
Les fonctions suivantes sont disponible via cette librairie :
Dans toutes les fonctions suivantes le paramètre address prend Z_ROBOT_0 comme valeur. De même, elles renvoient 0 si elles se sont correctement exécutées.
- int altera_avalon_robot_init(unsigned int address, unsigned int clock_divider, unsigned int duty_cycle);
Cette fonction permet d’initialiser l’horloge contrôlant la vitesse de déplacement du robot.
Renvoie -1 si duty_cycle est supérieur à clock_divide.
- int altera_avalon_robot_enable(unsigned int address);
Cette fonction permet de mettre en marche le moteur précédemment sélectionné et n’est pas bloquante.
Renvoie -2 si une erreur s’est produite.
- int altera_avalon_robot_disable(unsigned int address);
Cette fonction permet de stopper le mouvement du robot.
Renvoie -3 si une erreur s’est produite.
- int altera_avalon_robot_change_duty_cycle(unsigned int address, unsigned int duty_cycle);
Cette fonction permet de modifier le rapport cyclique de l’horloge contrôlant la vitesse de déplacement du robot.
Elle renvoie -1 si duty_cycle est supérieur à clock_divide.
- int altera_avalon_robot_pas(unsigned int address, unsigned int address_moteur, unsigned int sens);
Cette fonction permet de mettre en marche un moteur dans le sens souhaité. Elle doit nécessairement s’accompagner de la fonction altera_avalon_robot_disable pour stopper le moteur mis en marche (par exemple au relâcher du bouton poussoir). Cette fonction n’est pas bloquante.
Renvoie -2 si une erreur s’est produite.
sens prend la valeur 1 ou 0.
address_moteur prend une valeur entière de 1 à 6.
- int altera_avalon_robot_faire_n_pas(unsigned int address, unsigned int address_moteur, unsigned int sens,unsigned int pas);
Cette fonction permet de mettre en marche un moteur dans le sens souhaité pour un nombre de pas n. Tant que les pas ne sont pas terminés, elle reste bloquante.
Renvoie -2 si une erreur s’est produite.
pas peut prendre une valeur comprise entre 1 et 10600.
- int altera_avalon_robot_refaire_pom(unsigned int address);
Cette fonction permet de lancer la Prise d’Origine Machine. Elle est bloquante tant que celle-ci n’est pas terminée.
- void sevenseg_set_dec(int hex)
Cette fonction affiche la valeur hexadécimale de hex sur l’afficheur 2x7 segments
III.2 Programme principal de contrôle du composant sans gestion du réseau
Le programme principal reçoit les interruptions des boutons poussoirs et fait appel aux fonctions précédemment décrites.
A chaque appui ou relâcher d’un des 4 boutons poussoirs de la carte, une interruption est générée. La fonction IORD_ALTERA_AVALON_PIO_EDGE_CAP(BUTTON_PIO_BASE) prend une valeur représentative du numéro du bouton pressé (0x1 pour le bouton 1 0x2 pour le second, 0x4 pour le troisième et 0x8 pour le dernier).
De même, l’état (appuyé ou relâché) des boutons est lisible grâce à l’instruction IORD_ALTERA_AVALON_PIO_DATA(BUTTON_PIO_BASE) qui renvoie une valeur sur 4 bits. Chacun des bits représente l’état d’un des quatre boutons. Exemple : 0101 indique que les boutons 4 et 2 sont enfoncés.
N Pour aller plus loin :
Si l’on cherche dans le fichier "altera_avalon_pio\incaltera_avalon_pio_regs.h", on se rend compte que les fonctions sont simplement des IORD ou IOWR identiques à celles que l’on utilise pour notre périphérique robot.
IV La Carte adaptatrice entre le robot et la carte de développement
Pour protéger les deux organes, il a été décidé de créer une carte intermédiaire. Celle-ci est d’une conception assez simple : les entrées et sorties sont reliées par des buffers (simple suiveurs) qui permettent à la fois de protéger les deux éléments et de convertir les signaux (venant du robot) de 5V en signaux (allant vers la carte) de 3.3V et vice versa.
Cette carte peut être alimentée de deux façons (sélection via les Jumpers) :
- soit par un adaptateur secteur de 9V,
- soit en utilisant les sorties d’alimentation de 5V et 3.3V de la carte de développement en les raccordant aux borniers de la carte adaptatrice prévus à cet effet.
Lorsque la carte est correctement alimentée, la DEL verte s’allume. Cette dernière permet de s’assurer du bon fonctionnement des trois buffers.
Lorsque la carte de développement est connectée à la carte adaptatrice, la DEL rouge est connecté à la broche 13 (PIN_N8) du connecteur J11. Elle permet ainsi de visualiser un signal choisi dans le code VHDL (par exemple le sens des moteurs)
La technologie Nios est très novatrice et préfigure comme l’avenir de l’électronique. L’exemple de l’interface entre le robot réel et le robot virtuel nous a montré les immenses possibilités que peut offrir cette technologie. Voici deux applications trouvées sur Internet :
- Développement d’un lecteur/encodeur de fichiers son MP3 sur FPGA
http://sjeffroy.free.fr/Liens/CV/annalePFE.pdf
- Conception logicielle et matérielle d’un décodeur MP3 sur plateforme NIOS-Stratix
http://www.irisa.fr/cosi/Derrien/IFSIC/Diic3/2004-2005/MP3/Mini-projets-DIIC-2004.ppt
Le Nios semble avoir un bel avenir, il permet déjà de faire de la vidéo sur IP : http://www.globaldistribution.com/news/glyph/sonovision_P12-news495.pdf
Liste des composants de la carte adaptatrice :
|
Description |
Type |
Quantité |
|
Buffer |
74HCT244 / Philips |
2 |
|
Buffer |
74LCX244M / STMicroelectronics |
1 |
|
Régulateur 3.3V |
L4931CV33 |
1 |
|
Régulateur 5V |
MC7805CT |
1 |
|
Résistance |
1K |
2 |
|
Condensateur |
1uF |
2 |
|
Condensateur |
0.1uF |
3 |
|
Condensateur |
10nF |
3 |
|
LED |
HLMP-1700 |
1 |
|
LED |
HLMP-1790 |
1 |
|
Header, 2X20-Pin |
Connecteur 40 broches |
1 |
|
Header 1X3-Pin |
JUMPER |
2 |
|
Diode |
1N4148 |
1 |
|
DC Connector 9V |
486-662 |
1 |
|
Bornier |
MKDS 1.5/2-5.08 |
2 |
|
SUBD25 Femelle coudé CI avec harpon |
SDBS25SN |
1 |
| Auteur: Georgiana | Posté le 02/06/2008, 05:59:45 |
| comment3, buy loxitane online, >:[, buy desyrel online, %[[[, buy sumycin, =))), buy relafen, =)), | |
| Auteur: Gordan | Posté le 02/06/2008, 05:59:45 |
| comment4, buy tricor, ilt, buy atrovent, >:-((, | |
| Auteur: Constantine | Posté le 02/06/2008, 05:59:45 |
| comment6, buy wellbutrin sr, lrxlr, buy xanax online, 7474, buy trandate, hyzfjo, buy cipro online, vttzb, | |
| Auteur: Philippe | Posté le 02/06/2008, 05:59:47 |
| comment3, bactroban, adeek, buy danazol, 01462, buy rogaine online, tgvun, buy karela online, 8]], | |
| Auteur: Kass | Posté le 02/06/2008, 05:59:47 |
| comment2, buy prinivil, =-], buy chitosan, 8-[[[, triphala, 758, buy orgasm enhancer online, 954512, buy nirdosh online, 20561, | |
| Auteur: Elka | Posté le 02/06/2008, 05:59:47 |
| comment5, wellbutrin sr, 8]]], buy lortab online, 4264, | |
| Auteur: Margarete | Posté le 02/06/2008, 05:59:47 |
| comment3, buy zyprexa online, 522, buy confido online, usgx, | |
| Auteur: Ricky | Posté le 02/06/2008, 05:59:47 |
| comment4, viagra jelly, 203466, buy imdur online, 9996, buy accupril, uttwnx, buy micardis, 26115, | |
| Auteur: Mareah | Posté le 02/06/2008, 05:59:47 |
| comment6, buy synthroid, =((, buy penis growth pills online, 7646, ayurslim, >:[[, | |
| Auteur: Hewet | Posté le 02/06/2008, 05:59:47 |
| comment5, buy coumadin, :]]], buy detrol, 992764, buy nicotinell, 7087, | |
| Auteur: Abey | Posté le 02/06/2008, 05:59:47 |
| comment6, buy pravachol online, =[[, atrovent, :]]], aristocort, :OO, buy zestril online, 215511, cyklokapron, vptis, | |
| Auteur: Rosabel | Posté le 02/06/2008, 05:59:47 |
| comment5, atacand, 776032, atarax, >:-[[[, buy norpace cr online, ilvyov, buy atrovent online, 110, buy trimox online, lzhq, | |
| Auteur: Verina | Posté le 02/06/2008, 05:59:47 |
| comment6, chitosan, 8PP, buy cardizem, 6470, premarin, =O, | |
| Auteur: Rubina | Posté le 02/06/2008, 05:59:47 |
| comment4, buy chitosan online, 081416, buy pletal online, >:-))), buy clomid online, otofm, advair diskus, 463592, | |
| Auteur: Bruno | Posté le 02/06/2008, 05:59:47 |
| comment6, buy neurontin, =P, buy hytrin online, >:), | |
| Auteur: Malchy | Posté le 02/06/2008, 05:59:48 |
| comment5, cymbalta, :-D, buy ansaid online, ecxepr, | |
| Auteur: Fairlie | Posté le 02/06/2008, 05:59:48 |
| comment5, buy lortab, nujpy, buy augmentin online, taziml, buy avandia, xqc, buy ansaid, 67120, | |
| Auteur: Vinny | Posté le 02/06/2008, 05:59:48 |
| comment1, nimotop, >:-(((, actoplus met, :[, | |
| Auteur: Celestina | Posté le 02/06/2008, 05:59:48 |
| comment3, buy diarex online, 20248, buy deltasone, ikvrb, buy aristocort, :-D, buy didronel, 67522, buy advair diskus online, 8-(((, | |
| Auteur: Xavier | Posté le 02/06/2008, 05:59:48 |
| comment5, buy cardizem online, %(, buy phentrimine, nzat, | |
| Auteur: Donella | Posté le 02/06/2008, 05:59:48 |
| comment1, buy norvasc, =-), isoptin, %PPP, buy levothroid online, kllx, buy vasotec online, 400679, | |
| Auteur: Debbi | Posté le 02/06/2008, 05:59:48 |
| comment5, buy prilosec, zamtg, arimidex, =-PP, buy zyvox, 43139, buy ritalin online, jgedz, buy micardis online, uccxb, | |
| Auteur: Kitty | Posté le 02/06/2008, 05:59:48 |
| comment1, buy avapro, hqzvcb, buy rythmol sr online, rhsni, breast augmentation, =D, buy cyklokapron, 8(((, | |
| Auteur: Tremain | Posté le 02/06/2008, 05:59:48 |
| comment4, buy cardizem online, 7344, buy accupril online, igsua, buy aldactone online, 8463, hyzaar, 8-)), | |
| Auteur: Heda | Posté le 02/06/2008, 05:59:48 |
| comment4, buy relafen, tkp, buy orgasm enhancer, fcmiu, buy azulfidine online, %], buy aciphex, 24672, | |
| Auteur: Jaine | Posté le 02/06/2008, 05:59:48 |
| comment3, buy altace online, 6244, avandamet, %-PP, | |
| Auteur: Emlyn | Posté le 02/06/2008, 05:59:48 |
| comment1, clarina, 285, prilosec, vomgxt, buy cardizem online, zqxok, buy cordarone, 64242, | |
| Auteur: Willa | Posté le 02/06/2008, 05:59:48 |
| comment6, buy celexa online, 2441, buy exelon, jqasbn, kytril, 8D, | |
| Auteur: Keane | Posté le 02/06/2008, 05:59:48 |
| comment2, buy confido, 07511, ansaid, xfhv, nexium, chq, buy fioricet, >:-[, buy accupril online, maxa, | |
| Auteur: Allayne | Posté le 02/06/2008, 05:59:48 |
| comment3, buy lariam, 8), buy hytrin, :-PP, bactroban, ehv, buy relafen, ujr, buy glucophage, >:PP, | |
| Auteur: Rocky | Posté le 02/06/2008, 05:59:48 |
| comment1, buy ritalin, yhfl, sustiva, 8D, isoptin, %)), | |
| Auteur: Jeanie | Posté le 02/06/2008, 05:59:48 |
| comment4, coumadin, 643, prilosec, %-OO, menosan, 8-))), buy zovirax online, :-(, buy evista online, :), | |
| Auteur: Hilary | Posté le 02/06/2008, 05:59:49 |
| comment3, buy zyloprim, %-]], rhinocort, pqs, | |
| Auteur: Ambros | Posté le 02/06/2008, 05:59:49 |
| comment1, diovan, >:P, buy mexitil online, 333, buy pamelor, nterz, | |
| Auteur: Melesa | Posté le 02/06/2008, 05:59:49 |
| comment2, buy azulfidine online, 8-))), meridia, :-[[, | |
| Auteur: Charley | Posté le 02/06/2008, 05:59:49 |
| comment1, propecia, %[[[, buy zithromax, hqc, | |
| Auteur: Si | Posté le 02/06/2008, 05:59:49 |
| comment5, clarina, =-[, parlodel, =-], | |
| Auteur: Joellen | Posté le 02/06/2008, 05:59:49 |
| comment4, sumycin, 911, buy mexitil online, %OOO, bust enhancer, 688, | |
| Auteur: Yvon | Posté le 02/06/2008, 05:59:50 |
| comment5, buy ventolin, 340, buy noroxin online, fmlgq, | |
| Auteur: Mellisa | Posté le 02/06/2008, 05:59:50 |
| comment5, buy synthroid online, nyoqrb, buy ritalin, fukss, chitosan, %]]], buy norvasc online, 177, buy celebrex, tauom, | |
| Auteur: Esteban | Posté le 02/06/2008, 05:59:50 |
| comment2, buy nexium, 0191, buy synthroid, 360228, | |
| Auteur: Ina | Posté le 02/06/2008, 05:59:50 |
| comment6, proscar, >:-D, atrovent, =DD, buy dostinex, lrm, | |
| Auteur: Hildagard | Posté le 02/06/2008, 05:59:50 |
| comment2, buy clarina, szsq, buy zyprexa online, 755270, buy altace, bbya, buy cytotec, 8-[, buy purim online, 51487, | |
| Auteur: Nicholle | Posté le 02/06/2008, 05:59:50 |
| comment3, urispas, 2466, buy prozac, 7497, buy serophene, :-O, buy rogaine, =-]], buy sinequan online, gtmju, | |
| Auteur: Natividad | Posté le 02/06/2008, 05:59:50 |
| comment1, loxitane, ceia, buy viagra jelly, 6504, buy cystone online, 28030, aciphex, 3916, buy glucophage online, :PPP, | |
| Auteur: Erminie | Posté le 02/06/2008, 05:59:50 |
| comment3, buy proventil online, wef, prilosec, :OOO, lincocin, 166973, buy emsam online, wcsrno, dostinex, :-))), | |
| Auteur: Kristan | Posté le 02/06/2008, 05:59:50 |
| comment2, buy arava online, 5967, buy loprox online, :-[, buy amoxil online, 82669, buy sorbitrate online, kvda, buy purinethol online, =-OO, | |
| Auteur: Cointon | Posté le 02/06/2008, 05:59:50 |
| comment4, fosamax, >:-D, buy diovan, aoj, buy valium online, hexanu, | |
| Auteur: Osbourne | Posté le 02/06/2008, 05:59:50 |
| comment3, buy seroquel online, 930442, buy endep, :(((, valium, =D, buy zantac, =-DDD, aldactone, yrlkmh, | |
| Auteur: Chariot | Posté le 02/06/2008, 05:59:50 |
| comment1, buy lortab online, ooukad, buy tramadol, =(((, buy pletal, nit, | |
| Auteur: Giacinta | Posté le 02/06/2008, 05:59:50 |
| comment1, prinivil, 8), buy breast enhancement gum, ifwhlb, buy zanaflex, pshs, | |
| Auteur: Nadya | Posté le 02/06/2008, 05:59:50 |
| comment4, buspar, 834809, buy tramadol online, fzd, adalat, 298016, buy parlodel online, rgbjyy, | |
| Auteur: Vanya | Posté le 02/06/2008, 05:59:51 |
| comment2, flomax, >:-[[[, buy aceon, 164678, buy zovirax online, sbghi, buy depakote online, %-[[[, | |
| Auteur: Herschel | Posté le 02/06/2008, 05:59:51 |
| comment5, buy exelon online, 513, buy abana online, 397314, | |
| Auteur: Leda | Posté le 02/06/2008, 05:59:51 |
| comment2, urispas, srmef, buy penisole online, 526, buy depakote online, ujpypj, | |
| Auteur: Alexei | Posté le 02/06/2008, 05:59:51 |
| comment3, buy prinivil, llkg, cardizem, 555, buy cytotec online, >:PP, | |
| Auteur: Yevette | Posté le 02/06/2008, 05:59:51 |
| comment4, buy zyvox online, =OO, sumycin, uhdeog, | |
| Auteur: Delainey | Posté le 02/06/2008, 05:59:51 |
| comment4, lotrisone, mzbc | |