summaryrefslogtreecommitdiff
path: root/2004/n/fpga/doc/robot_DV/rapport.tex
blob: 5344d0d0731b26561baf929462fca5f93e4fde6c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
\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
%1}}}

\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, dont 3 fils de synchronisation et 3 fils de contr�le. 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}