Notice: Undefined property: stdClass::$date_art in /home/www/quantique/index.php on line 100
Utilisation d'un processeur Nios II

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

Utilisation d'un processeur Nios II


24

 


               Glossaire

 

 

API

Aplication Program Interface

 

IP

Intelectual Property,

 

FPGA

Field Programmables Gates Arrays : Circuit intégré programmable (réseau de portes programmables).

 

Stratix

Composant associant un FPGA et un microprocesseur de type NiosII

 

NIOSII

Netware Input/Output Subsystem. Modèle particulier de microprocesseur (intégré à un composant Stratix ou Cyclone par exemple)

 

Nios II IDE

Integrated Drive Electronics. Cette interface intégrée à des disques durs gère les transferts de données.

SOPC builder

System On a Programmable Chip (peut se traduire par système sur puce programmable).

Outil de développement associé à Quartus pour créer des systèmes basés sur des processeurs, périphériques, et mémoires.

 

VHDL

Very High Speed Integrated Circuit Hardware Description Language Langage de description matériel permettant de créer un composant particulier en utilisant un FPGA

IHM

Interface Homme Machine

 

PWM

Pulse Width Modulation

 

POM

Position d’Origine des Machine. Ce placement du robot est celui de référence et est permis à l’aide de capteurs optiques (un pour chaque moteur).

 


 

               Présentation du projet

I               Le Nios II au service du robot Youpi

 

L’objectif est de réaliser les drivers Hardwares et Softwares de commande d’un bras manipulateur pour une carte de développement disposant d’un FPGA muni d’un microprocesseur Nios II de la société ALTERA. Cette carte devra se connecter au robot à l’aide d’une carte adaptatrice à fabriquer.

 

 

 

 



 Cahier des charges

 

 

Entrées :

 

- Robot Youpi

- Carte de développement EPC1C12 FPGA NIOS II

- Logiciels Quartus II v5.1, NIOS II, SOPC Builder + docs

 

 

Sorties :

 

Drivers matériels pour le robot YOUPI, indépendants du type de carte pourvue   qu’elle possède suffisamment d’entrées-sorties et un FPGA muni d’un Nios II

-  Librairies logicielles d’accès aux ressources matériels

-  Documentation d’utilisation des codes fournis

-  Carte adaptatrice : carte de développement / robot YOUPI

-  Documentations de la carte adaptatrice

-  Rapport

-  Didacticiel d’utilisation des outils de développements (Quartus, SOPC, NiosII IDE)

 

 

Contraintes :

 

-  Doit s’adapter à la partie commandée via Ethernet

-  Faible budget alloué  (hors carte de développement)


 

               Développement technique

I               Introduction

 

Un FPGA muni d’un processeur Nios II combine les avantages d’un composant logique programmable et d’un microprocesseur. Ainsi, notre IHM sera modifiable en temps réel via un jeu d’instructions (en langage C) exécuté par le processeur Nios II.

 

Le composant Stratix a été choisi pour contrôler le robot à partir de son modèle virtuel, via une liaison de type Ethernet. Notre objectif est de fournir des fonctions en C de contrôle du robot, que les étudiants pourront utiliser pour développer une liaison Ethernet entre la carte de développement et un ordinateur où sera exécuté le modèle virtuel.

 

L’architecture des drivers hardware de notre périphérique se compose des blocs suivants :

 

- Une tâche logique : elle définit les fonctions fondamentales du composant.

- Un registre de fichiers : il est le pont entre les signaux à l’intérieur de la tâche et l’interface de connexion avec le processeur : le bus avalon. Les registres peuvent être lus ou écris via le bus Avalon.

- L’interface Avalon : elle permet au processeur d’accéder et de modifier les registres du périphérique souhaité et donc des signaux de sa tâche logique. Cette interface doit respecter des entrées/sorties spécifiques pour pouvoir communiquer avec le processeur. Elle est intégrée au registrer File


La programmation d’un tel composant se résume à l’implémentation des fichiers suivants :

 

- un fichier de Description : fichier PTF, créé par un programme appelé SOPC Builder qui définit les différents modules (CPU, RAM, 7seg…), intégrés au système,

- des fichiers Hardware : fichiers VHDL qui décrivent l’ensemble des blocs logiques du composant,

- des fichiers Software : fichiers C qui commandent l’écriture ou la lecture des registres, et le programme principal de contrôle du robot.


Voici un tableau récapitulatif des fichiers nécessaires à la configuration du composant Stratix:

 

Répertoires & Noms des fichiers

Description

\standard

Fichiers contenant les composants de la carte de développement

\hardware

Répertoire contenant les fichiers de description hardware

  robot_register_file.vhd

Logique pour écrire ou lire les registres

  robot_avalon_interface.vhd

Relie les tâches logiques et les registres
Fourni une interface Avalon

autres fichiers vhd de description des       différentes taches…

\software

Répertoire contenant les fichiers de description software

  \inc\altera_avalon_robot_regs.h

Accès au registre

  \HAL\inc\altera_avalon_robot_routines.h

Fonctions prototype d'accès au robot

  \HAL\src\altera_avalon_robot_routines.c

Fonctions d'accès au robot

  \Nios_II_IDE\ youpi_altera_avalon_robot.c

Programme de commande du robot

 

Voici de façon schématique comment nous allons aborder d’un point de vue matériel la conception de notre IHM :

 

Vue générale :


Maintenant, voici les étapes pour créer les fichiers de configuration et les implémenter dans un FPGA muni d’un processeur Nios II :

 

- Ecrire des fichiers VHDL qui décrivent les blocs logiques et notamment le "Register File"

- Tester ces fichiers VHDL seuls

- Ecrire les fichiers C qui dialoguent avec les registres

- Utiliser l’éditeur SOPC Builder pour créer un nouveau composant

- Insérer le composant dans un module pour Quartus II et compiler

- Ecrire le programme principal de contrôle du composant avec Nios II IDE et compiler

- Tester l’accès des registres par les composants grâce au simulateur ModelSim

- Envoyer le fichier de compilation au FPGA via Quartus II Programmer et tester

- Envoyer le fichier de compilation au FPGA via Flash Programmer et tester

- Renvoyer le fichier de compilation au FPGA via Quartus II Programmer et tester

 

Chacune de ces étapes est détaillée dans le manuel d’utilisation de QuartusII fourni avec ce rapport.

 

Nous allons maintenant aborder la partie technique du projet.

 

 

 

II          Partie Hardware

 

II.1         Contraintes et spécifications du robot YOUPI

 

Le robot YOUPI est un bras manipulateur de cinq axes comportant six moteurs. Chaque articulation possède un capteur de position. Le déplacement du robot est réalisé par des moteurs pas à pas qui sont commandés via un port de type parallèle.

 

Contraintes liées à la vitesse de déplacement du robot :

Les tests effectués montrent que nous atteignons la vitesse maximum de 1,2ms/pas. Au delà, certains moteurs réagissent aléatoirement ou se bloquent.

 

Contraintes liées aux butées mécaniques :

 

 

Axe1

Axe2

Axe3

Axe4

Axe5

Axe6

Nombre de pas Min

-5100

-1200

-4400

-1300

Infini

0

Nombre de pas Max

5500

5500

3000

7100

Infini

-5100

Plage nombre de pas

10600

6700

7400

8400

Infini

5100

 

Protocole de production de pas :

Pour faire un pas, il faut suivre un protocole en six étapes, détaillé par la suite au Chapitre II.4.3 (production de pas)


 

II.2         Vue interne de la carte Stratix 1s10 :

 

 

Connexions nios/interface robot via l’avalon

Nom du signal en VHDL (interface.vhd)

Type du signal pour le bus Avalon

Nombre de Bits

Sens

Description

clk

clk

1

input

Signal de synchronisation du transfert d’information avec les périphériques

resetn

reset_n

1

input

Signal reset actif à l’état bas

avalon_chip_select

chip_select

1

input

Indique que le processeur communique avec un périphérique

address

address

4

input

Permet de sélectionner un registre

writep

write

1

input

Indique l’écriture

write_data

writedata

32

input

Données à écrire dans un registre

readp

read

1

input

Indique la lecture

read_data

readdata

32

output

Données lues dans un registre

 

II.3         Vue interne de l’interface robot :

 

Pour réaliser les fonctionnalités demandées, nous avons créé les blocs suivants :

 

  • Le bloc gestion des registres qui stock des valeurs transmisent par le processeur NiosII ou bien destinées à êtres lue par ce dernier.
  • Le bloc POM (position d'origine machine) qui doit mettre le robot en position d'origine.
  • Le bloc production de pas qui permet de produire des pas moteur.
  • Le bloc butées qui limite le fonctionnement des moteurs au domaine de rotation prévu par le constructeur.
  • Le bloc gestion des butées qui détermine si l’on peut produire des pas en fonction des informations transmises par le bloc butées
  • Le bloc décompteur qui indique le nombre de pas restant à réaliser.
  • Le bloc production de l’horloge qui sert à produire une horloge cadençant la production des pas. Cette horloge est fonction d’un rapport cycle enregistré dans le bloc gestion des registres.

 

Ainsi que les éléments suivants :

 

  • Un multiplexeur.
  • Des tristates qui permettent l’écriture ou la lecture du registre "nb_pas".

 


 

 

 

 

 



Commentaires sur la page

Auteur: Visiteur Posté le 08/03/2010, 13:37:28
 
Auteur: Posté le 08/03/2010, 13:37:29
 
Auteur: ocladyxb Posté le 30/12/2009, 12:02:12
 
Auteur: Posté le 30/12/2009, 12:02:17
 

Copyright 2006 Quantique.net
Sites partenaires :Grille de sudoku, gratuit Sudoku expert Sudoku diabolique Sedo - Buy and Sell Domain Names and Websites project info: quantique.net Statistics for project quantique.net etracker® web controlling instead of log file analysis