Quantique.net » Electronique » Projets » Utilisation d'un processeur Nios II  

Utilisation d'un processeur Nios II

<<précédent 1 2 3 4 suivant >>

 

III      Partie Software

 

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)

 

               Conclusion

                

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

 

 

               Bibliographie

www.altera.com

http://www.niosforum.com

http://www.opencores.org

 

 

 

               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

 

 

 

 


<<précédent 1 2 3 4 suivant >>

Commentaires sur la page

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