summaryrefslogtreecommitdiff
path: root/2004
diff options
context:
space:
mode:
authorgalmes2004-02-08 14:09:44 +0000
committergalmes2004-02-08 14:09:44 +0000
commit089a11514051cae1f190a424fc40bcbf4b2ab08c (patch)
tree472ce668383edbf269e37bd49c529e573f60e43e /2004
parent3bdb08319bada4d501b90894f6bdc65e132d48bb (diff)
Ajout du dossier de présentation.
Diffstat (limited to '2004')
-rw-r--r--2004/n/fpga/doc/robot_DV/Makefile15
-rw-r--r--2004/n/fpga/doc/robot_DV/images/Makefile7
-rw-r--r--2004/n/fpga/doc/robot_DV/images/schema1.fig86
-rw-r--r--2004/n/fpga/doc/robot_DV/rapport.tex278
4 files changed, 386 insertions, 0 deletions
diff --git a/2004/n/fpga/doc/robot_DV/Makefile b/2004/n/fpga/doc/robot_DV/Makefile
new file mode 100644
index 0000000..39f2670
--- /dev/null
+++ b/2004/n/fpga/doc/robot_DV/Makefile
@@ -0,0 +1,15 @@
+SUBDIR= images
+
+all:
+ for i in $(SUBDIR); do (cd $$i; $(MAKE) all); done
+ $(MAKE) rapport.pdf
+
+%.pdf: %.tex
+ pdflatex $<
+ pdflatex $<
+ pdflatex $<
+
+clean:
+ for i in $(SUBDIR); do (cd $$i; $(MAKE) clean); done
+ rm -f *.dvi *.aux *.log *.toc *.eps *.pdf *.ps
+
diff --git a/2004/n/fpga/doc/robot_DV/images/Makefile b/2004/n/fpga/doc/robot_DV/images/Makefile
new file mode 100644
index 0000000..6002908
--- /dev/null
+++ b/2004/n/fpga/doc/robot_DV/images/Makefile
@@ -0,0 +1,7 @@
+all: schema1.pdf
+
+%.pdf: %.fig
+ fig2dev -L pdf -p dummy $< $@
+
+clean:
+ rm -f *.pdf *.eps
diff --git a/2004/n/fpga/doc/robot_DV/images/schema1.fig b/2004/n/fpga/doc/robot_DV/images/schema1.fig
new file mode 100644
index 0000000..2d63711
--- /dev/null
+++ b/2004/n/fpga/doc/robot_DV/images/schema1.fig
@@ -0,0 +1,86 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter
+100.00
+Single
+-2
+1200 2
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 1200 2175 3375 2175 3375 6675 1200 6675 1200 2175
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 6300 2175 8775 2175 8775 6675 6300 6675 6300 2175
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 12
+ 5700 5700 3975 5700 4200 6000 3375 5550 4200 5100 3975 5400
+ 5700 5400 5400 5100 6300 5550 5400 6000 5700 5700 5700 5700
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 1 2
+ 2 0 2.00 120.00 240.00
+ 2 0 2.00 120.00 240.00
+ 3375 3900 6300 3900
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 1 2
+ 2 0 2.00 120.00 240.00
+ 2 0 2.00 120.00 240.00
+ 3375 3000 6300 3000
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 1 2
+ 2 0 1.00 60.00 120.00
+ 2 0 1.00 60.00 120.00
+ 8775 2700 10200 2700
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 1 2
+ 2 0 1.00 60.00 120.00
+ 2 0 1.00 60.00 120.00
+ 8775 3300 10200 3300
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+ 2 0 1.00 60.00 120.00
+ 8775 3900 10200 3900
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+ 2 0 1.00 60.00 120.00
+ 8775 4500 9450 4500
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 9450 4575 10500 4575 10500 4275 9450 4275 9450 4575
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+ 2 0 1.00 60.00 120.00
+ 10500 4500 10950 4500
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 1 2
+ 2 0 1.00 60.00 120.00
+ 2 0 1.00 60.00 120.00
+ 8775 5400 10200 5400
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 6300 7575 8775 7575 8775 8700 6300 8700 6300 7575
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 1 2
+ 2 0 1.00 60.00 120.00
+ 2 0 1.00 60.00 120.00
+ 7200 6675 7200 7575
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 1 2
+ 2 0 1.00 60.00 120.00
+ 2 0 1.00 60.00 120.00
+ 8100 6675 8100 7575
+2 2 1 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 5
+ 6150 6675 3525 6675 3525 2175 6150 2175 6150 6675
+2 2 2 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 5
+ 1350 5700 3225 5700 3225 6600 1350 6600 1350 5700
+2 2 2 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 5
+ 1350 4725 3225 4725 3225 5625 1350 5625 1350 4725
+2 2 2 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 5
+ 1350 3750 3225 3750 3225 4650 1350 4650 1350 3750
+4 0 0 50 -1 0 14 0.0000 4 150 570 6525 3150 FPGA\001
+4 0 0 50 -1 0 14 0.0000 4 195 1905 3900 3675 Requete d'interruption\001
+4 0 0 50 -1 0 14 0.0000 4 195 1275 4125 2775 Requete DMA\001
+4 0 0 50 -1 0 14 0.0000 4 165 1365 9075 2550 Ports s\351rie TTL\001
+4 0 0 50 -1 0 14 0.0000 4 150 735 9075 3075 Port I2C\001
+4 0 0 50 -1 0 14 0.0000 4 150 1380 9075 3675 Servos-moteurs\001
+4 0 0 50 -1 0 14 0.0000 4 150 510 8925 4350 PWM\001
+4 0 0 50 -1 0 14 0.0000 4 150 870 9525 4500 Puissance\001
+4 0 0 50 -1 0 14 0.0000 4 150 735 11025 4500 Moteurs\001
+4 0 0 50 -1 0 14 0.0000 4 150 510 9150 5250 GPIO\001
+4 0 0 50 -1 0 14 0.0000 4 150 1455 6600 7950 Camera OV6620\001
+4 0 0 50 -1 0 14 0.0000 4 150 1335 8175 7200 Bus de controle\001
+4 0 0 50 -1 0 14 0.0000 4 165 1350 5775 7200 Bus de donn\351es\001
+4 0 0 50 -1 0 14 0.0000 4 165 2070 3825 5025 Donn\351es & commandes\001
+4 0 0 50 -1 0 14 0.0000 4 150 735 3675 6525 Bus ISA\001
+4 0 0 50 -1 0 14 0.0000 4 165 795 1500 4200 M\351moire\001
+4 0 0 50 -1 0 14 0.0000 4 150 1125 1500 5175 Controleur d'\001
+4 0 0 50 -1 0 14 0.0000 4 195 990 1500 5430 interruption\001
+4 0 0 50 -1 0 14 0.0000 4 150 1485 1500 6225 Controleur DMA\001
+4 0 0 50 -1 0 14 0.0000 4 150 930 1425 2625 Ordinateur\001
+4 0 0 50 -1 0 14 0.0000 4 150 585 1425 2850 PC104\001
diff --git a/2004/n/fpga/doc/robot_DV/rapport.tex b/2004/n/fpga/doc/robot_DV/rapport.tex
new file mode 100644
index 0000000..c88d6b5
--- /dev/null
+++ b/2004/n/fpga/doc/robot_DV/rapport.tex
@@ -0,0 +1,278 @@
+\documentclass[a4paper,dvips,pdftex,titlepage]{article}
+
+% Inclusion de packages :
+%{{{1
+\usepackage[T1]{fontenc}
+\usepackage[latin1]{inputenc}
+\usepackage[french]{babel}
+\usepackage{fancyhdr}
+\usepackage[dvips]{graphicx,color}
+%\usepackage[pdftex]{graphicx,color}
+%\usepackage{verbatim}
+\usepackage{times}
+
+% Pour les maths :
+%\usepackage{amssymb}
+%\usepackage{amsfonts}
+%\usepackage{amsmath,amsthm}
+%}}}1
+
+% Mise en page du document :
+%{{{1
+\pagestyle{fancy}
+\parskip=10pt
+\baselineskip=11pt
+\parindent=0pt % alinéa
+
+% Entête de page :
+\lhead{\small{Thomas Burg - Pierre-Andre Galmes \\ Fidèle Gafan - Pierre
+Prot}}
+\rhead{I2 ET\\ Février 2004}
+
+% Structure du document :
+\begin{document}
+
+\title{Pré-projet de VHDL : \\ Réalisation d'un périphérique ISA pour
+PC104}
+\author{Thomas Burg - Pierre-Andre Galmes - Fidèle Gafan - Pierre Prot\\ EFREI - Ingénieur
+2$^{\textrm{ième}}$ année}
+\date{Février 2004}
+\maketitle
+\tableofcontents
+\pagebreak
+
+\section{Introduction}
+
+Nous souhaitons réaliser une carte ISA pour ordinateur PC104 dans le cadre
+du projet de VHDL. Nous voulons mener à terme ce projet pour pouvoir
+ensuite l'utiliser sur les robots présentés à la coupe de robotique.
+Ceci remplacerai le projet de I2 de VHDL. Le projet donnera lieu à une
+note qui comptera pour le projet de VHDL.
+
+Pour la première fois l'année derniere, notre groupe, constitué en partie
+d'élève de promo 2005 a présenté un robot à la coupe. Nous en avons tiré
+quelques enseignements de cet épreuve. Les systèmes développés avaient des
+défauts que nous voudrions voir disparaitre : manque de fiabilité,
+encombrement.
+D'un autre coté, cette année, le règlement de la coupe autorise la
+présence de deux robots sur le terrain. Nous allons donc ré-utiliser
+l'odinateur de l'année dernier (Une carte prototype fournit par la société
+Ipricot) et un ordinateur de type PC104.
+
+Malheureusement ce type de carte standard ne dispose pas des bus que nous
+voulons exploiter: i2c, GPIO, ligne servo-moteur et bus caméra. L'an
+dernier, nous avons réalisé des cartes individuelles pour chacune de ces
+fonctions. La carte que nous souhaitons réaliser aura pour mission de
+regrouper tous ces modules individuels en un seul package adaptable
+directement sur le port ISA.
+
+\pagebreak
+\section{Description du projet}
+
+Nous allons pour faire face à notre problème, réaliser une carte ISA.
+La carte PC104 dispose d'un tel bus. Ce bus à tendance à disparaitre
+progressivement de nos ordinateurs de bureau au profit de bus plus rapide.
+(PCI, AGP, XPCI ...), mais il reste suffisament performant pour l'application
+que nous voulons faire:
+\begin{center}
+\begin{itemize}
+\item 1 bus i2c
+\item 2 ports séries
+\item 8 lignes servo
+\item 2 lignes de PWM
+\item 2 blocs d'IO
+\item 3 blocs d'IO pour le bus parallèle
+\item gestion d'accès à la camera ov6620
+\end{itemize}
+\end{center}
+La figure \ref{schema1} de la page \pageref{schema1} l'illustre bien.
+
+\begin{figure}[htbp]
+\caption{Illustration}
+%\begin{center}
+%\scalebox{0.5}{
+\includegraphics[width=\textwidth]{images/schema1.pdf}
+%}
+%\end{center}
+\label{schema1}
+\end{figure}
+
+Chacun des périphériques sera directement adressable. Le design
+comportera un systeme de d'interruption, afin de pouvoir déclencher une
+interruption sur l'ordinateur et effectuer un traitement particulier.
+
+Le dispositif de gestion de la caméra utilisera les possibilités DMA du bus
+ISA et ainsi nous n'aurons pas besoin de stocker les images provenant de la
+caméra dans le fpga. Cela évitera d'avoir d'un circuit contenant une très
+grosse quantité de mémoire ou bien une RAM externe.
+
+Pour réaliser les fonctionnalités nous envisagons de nous inspirer des
+sources mises à diposition par le projet OpenCores (www.opencores.org).
+
+
+\pagebreak
+\section{Cahier des charges}
+
+Voici les caractéristiques du module que nous voulons réaliser:
+
+\begin{description}
+\item [Caractéristiques physiques compatibles PC104]. Format : si possible
+90x96 mm, sinon le plus petit possible. Connecteur de bus PC104.\\
+
+\item [Fonctionnement sur bus ISA.] Tous les modules internes seront reliés
+à ce bus et possèderont chacun leur adresse, de sorte qu'ils seront
+accessibles directement par la carte-mère.\\
+
+\item [Gestion d'interruptions] pour permettre à chaque module de signaler
+au driver tout changement sur les entrées du circuit.\\
+
+\item [Paramétrage possible de l'IRQ et du canal DMA] utilisés sur le bus
+isa.\\
+
+\item [1 bus i2c standart.] Ce bus est très utilisé dans l'industrie, et de nombreux
+microcontrôleurs le supportent en hard. \\
+
+\item [2 ports série.] Ces ports seront utilisés pour relier les
+modules externes réalisés pour le robot (système de positionnement, carte
+d'actionneurs spéciaux, etc...). Ils seront en niveau TTL, car ils sont
+destinés à être reliés à d'autres circuits logiques. On évitera ainsi
+l'utilisation de paires de MAX232 pour le passage en niveaux -12V/+12V.\\
+
+\item [8 lignes de contrôle de servo-moteur.] Ces lignes permettent de
+contrôler des servos de modélisme. Ils délivrent un signal modulé en
+largeur d'impulsion qui correspond à la position que doit prendre le
+servo.\\
+
+\item [2 lignes de PWM.] Ces lignes permettront de piloter des moteurs à
+vitesse variable, via une interface de puissance.\\
+
+\item [1 bus parallèle.] Ces entrées-sorties seront utilisées si besoin est,
+pour réaliser un bus parallèle, le même qui fut utilisé l'an dernier sur le
+robot, et qui est toujours en service sur la carte MIPS. Ce bus permettra la
+compatibilité avec les modules destinés à tourner avec la carte MIPS. Le bus
+sera contôlé logiciellement par le driver.\\
+
+\item [16 GPIO.] Ces lignes seront dédiées aux entrées (de capteurs,
+d'interrupteurs, etc...), et au sorties (actionneurs, voyants, etc...)\\
+
+\item [1 bus caméra ov6620.] C'est un bus parallèle de 8 ou 16 bits de
+données, 3 fils de contrôle et 3 fils de synchronisation. Il permet de
+configurer la caméra et d'en rappatrier les données. Ce bus devra intégrer la
+\emph{gestion du DMA} pour rapatrier les images de la caméra. Ainsi, cela
+facilite les transferts vers la mémoire.\\
+
+\end{description}
+
+
+\pagebreak
+\section{Réalisation pratique}
+
+Pour être le plus efficace possible nous allons procéder par étapes.
+
+\subsection{Codage RTL et simulation}
+La première étape constitue en l'écriture du code et sa simulation. Une
+fois celle-ci finie, nous connaitrons précisément les ressources
+nécessaires. Nous choisirons alors le FPGA en fonction de nos besoins, des
+facilités d'approvisionnement et des contraintes de réalisation.
+
+\subsection{Réalisation de la carte}
+Nous réaliserons une carte au format PC104 permettant le branchement du
+FPGA au bus ISA et aux modules de test. Nous élaborerons donc un PCB puis
+nous le ferons réaliser par une entreprise extérieure spécialisée dans la
+réalisation de prototype.
+
+\subsection{Ecriture des drivers Linux}
+Une fois la carte réalisée nous pourrons vérifier son bon fonctionnement et
+écrire les drivers du système d'exploitation afin de pouvoir l'utiliser
+dans des application tournant sur le système.
+
+\section{Evaluation}
+Pour nous évaluer sur ce projet ambitieux, nous proposons de nous évaluer sur
+les 3 points cités plus haut : le "Codage RTL et la simulation" comptant
+pour la moitier de la note, la "Réalisation de la carte" et le test final
+ou l'écriture des drivers comptant chacun pour un quart de la note.
+
+Des revues entre les différentes phases avec un professeur seraient
+intéressantes, afin de valider les choix et minimiser les risques.
+
+
+\section{Répartition initiale des modules}
+\begin{center}
+\begin{tabular}{|*{2}{c}|}
+\hline
+Noms & Blocs à realiser \\
+\hline
+Thomas BURG & Camera \\
+ & bus I2C \\
+Fidèle GAFAN & Servo Moteur\\
+Pierre-Andre GALMES & blocs d'entrées / sorties\\
+Pierre PROT & liaison serie UART\\
+\hline
+\end{tabular}
+\end{center}
+
+
+
+\pagebreak
+\section{Ressources techniques}
+
+Voici un rapide récaptitulatif des ressources trouvées jusqu'à présent:
+
+\subsection{Bus isa}
+\begin{itemize}
+\item
+http://directory.google.com/Top/Computers/Hardware/Buses/ISA/
+\item http://www.mindshare.com/pdf/eisabook.pdf
+\item ISA \& EISA Theory and Operation By Edward Solari (ISBN: 0929392159)
+\end{itemize}
+
+Bien que ce bus soit sur les PC grand publique depuis au moins 15 ans,
+force est de constater qu'on ne trouve pas facilement de sites traitant du
+bus ISA.
+
+\subsection{OpenCores}
+Le projet OpenCore est un peu ce qu'est le projet GNU à l'informatique,
+C'est du code mis à disposition par des groupes vendant des models IP.
+C'est un moyens de se faire de la publicité.
+
+Un certain nombre de fonctions que nous souhaitons implémenter sont déjà
+écrites. Parfois elles le sont en Verilog. Ce qui nous demandera un travail
+d'adapation.
+www.opencores.org/project/
+
+\subsection{camera ov6620}
+C'est une caméra que nous commencons à connaitre, nous l'avons déjà
+utilisée l'an passé. Cette caméra est bon marché : \$60 la carte
+d'évaluation montée avec son optique. C'est une caméra numérique couleur
+sortant sur bus parallèle de 8 ou 16 bits. On peut effectuer divers
+réglages via un bus très similaire à de l'i2c.
+
+\begin{itemize}
+\item http://www.ovt.com/cc6620.html
+\item http://www-2.cs.cmu.edu/~cmucam/
+\end{itemize}
+
+\pagebreak
+\section {Conclusion}
+
+Ce projet a deux objectifs : faire le projet de VHDL prévu par le cursus et
+nous permettre de consacrer du temps sur le robot.
+
+Le projet nous permettra de mettre en pratique la conception de circuit,
+plus particulièrement le developpement de produit à base de FPGA. Nous en
+profiterons aussi pour acquérir une expérience dans le prototypage de
+carte en passant par un sous-traitant, puisque la technique mise en oeuvre
+n'est plus accessible avec les moyens disponibles à l'école.
+
+Ce projet nous permettra de revenir sur des points vu dans le \emph{cours
+d'architecture des ordinateurs}, avec la réalisation pratique d'un
+périphérique.
+
+Cette carte, si elle est bien réalisée, pourra être réutilisée par les
+personnes voulant réaliser le challenge de la coupe de Robotique les années
+suivantes. De par sa compacité et son niveau d'intégration, elle remplacera de
+nombreuse cartes, d'où un gain de place, et de temps de mise en oeuvre.
+
+
+\pagebreak
+\end{document}