summaryrefslogtreecommitdiff
path: root/2004/n/fpga/doc
diff options
context:
space:
mode:
authorprot2004-03-19 15:01:11 +0000
committerprot2004-03-19 15:01:11 +0000
commit1d7e765944c338de064c997695ed50a117c2002d (patch)
tree4d577b81fe4168c9803334a884994adee271f62f /2004/n/fpga/doc
parentc23de270a2c335a382328525e0e00a6731cf8e56 (diff)
concaténation de tous les rapports
Diffstat (limited to '2004/n/fpga/doc')
-rw-r--r--2004/n/fpga/doc/dcd/Makefile2
-rw-r--r--2004/n/fpga/doc/dcd/portserie/portserie.tex60
-rw-r--r--2004/n/fpga/doc/dcd/portserie/rxserie.sxdbin8738 -> 0 bytes
-rw-r--r--2004/n/fpga/doc/dcd/portserie/rxserie.tex145
-rw-r--r--2004/n/fpga/doc/dcd/portserie/txserie.sxdbin8689 -> 0 bytes
-rw-r--r--2004/n/fpga/doc/dcd/portserie/txserie.tex139
-rw-r--r--2004/n/fpga/doc/dcd/rapport.tex30
7 files changed, 60 insertions, 316 deletions
diff --git a/2004/n/fpga/doc/dcd/Makefile b/2004/n/fpga/doc/dcd/Makefile
index 5025bc4..4a56edb 100644
--- a/2004/n/fpga/doc/dcd/Makefile
+++ b/2004/n/fpga/doc/dcd/Makefile
@@ -1,4 +1,4 @@
-SUBDIR= interrupt gpio
+SUBDIR= interrupt gpio ovcam portserie
all:
for i in $(SUBDIR); do (cd $$i; $(MAKE) all); done
diff --git a/2004/n/fpga/doc/dcd/portserie/portserie.tex b/2004/n/fpga/doc/dcd/portserie/portserie.tex
index 944ed60..8593864 100644
--- a/2004/n/fpga/doc/dcd/portserie/portserie.tex
+++ b/2004/n/fpga/doc/dcd/portserie/portserie.tex
@@ -1,5 +1,5 @@
-\section{Le TXserie}
-\subsection{Cahier des charges}
+\subsection{Le TXserie}
+\subsubsection{Cahier des charges}
Le cahier des charges du transmetteur série est le suivant :
\begin{itemize}
@@ -10,20 +10,20 @@ Le cahier des charges du transmetteur série est le suivant :
\end{itemize}
-\subsection{Schéma-bloc}
+\subsubsection{Schéma-bloc}
\begin{figure}[htbp]
\caption{Schéma-bloc du TXserie}
-\includegraphics[width=\textwidth]{images/txserie.pdf}
+\includegraphics[width=\textwidth]{./portserie/images/txserie.pdf}
\label{schematxserie}
\end{figure}
Le schéma modulaire est visible sur la figure \ref{schematxserie} page \pageref{schematxserie}.
-\subsection{Descritpion des modules}
+\subsubsection{Descritpion des modules}
\label{descriptmodules}
-\subsubsection{La fifo}
+\paragraph{La fifo}
C'est une fifo générée avec coregen. Elle contient des mots de 8 bits en
mémoire distribuée (car les BRAMs du FPGA seront utilisés à d'autres fins).
@@ -36,14 +36,14 @@ qu'on écrit à son adresse mémoire, la fifo charge la donnée présente sur le
bus.
-\subsubsection{Le TXcever}
+\paragraph{Le TXcever}
C'est un transmetteur série qui reçoit en entrée les données provenant de la
fifo. Dès qu'il est vide, il agit sur le signal ckout de la fifo, ce qui
dépile un élément, et le charge dans le transmetteur, qui peut alors le
transmettre.
-\subsubsection{Le générateur de clock}
+\paragraph{Le générateur de clock}
C'est un prédiviseur de la fréquence d'horloge du fpga. Il a pour but de
fournir l'horloge de référence pour le transmetteur (égale à 16 fois le
@@ -56,35 +56,35 @@ Pour avoir la bonne fréquence en sortie, on doit avoir en entrée une fréquence
multiple de 16 fois 115200 (le baudrate maxi). Les quartz qui sont utilisables
sont : 14.7456MHz, 29.4912MHz (14.7456*2), et 44.2368MHz (14.7456*3),
-\subsubsection{Registre config}
+\paragraph{Registre config}
C'est un registre de 8 bits branché sur le bus, en lecture/écriture, dans
lequel le PC vient déposer les bits de configuration du port série.
La sortie du registre controle le générateur de clock (pour fixer le
baudrate), et le gestionaire d'IRQ.
-\subsubsection{Registre flag}
+\paragraph{Registre flag}
C'est un registre de 8 bits branché sur le bus en lecture seule dans lequel le
PC vient lire l'état des flags de la fifo. Son entrée est branchée sur les
sorties flag de la fifo.
-\subsubsection{IRQ}
+\paragraph{IRQ}
Le gestionaire d'IRQ est tout simplement un activateur d'interruptions. Il
déclenche des IRQ sur front montant, et ceci à condition que le signal IntEn
soit activé.
-\subsection{Fonctionalités et utilisation}
+\subsubsection{Fonctionalités et utilisation}
Ce port série utilise 3 registres : TxData, Flag, et Config
-\subsubsection{Txdata}
+\paragraph{Txdata}
Ce registre 8 bits sert à recevoir les données à envoyer. On les écrit
séquentiellement, et chaque écriture dans ce registre empile la donnée en haut
de la fifo.
-\subsubsection{Flag}
+\paragraph{Flag}
C'est le registre d'état. il donne essentiellement des informations sur l'état
de remplissage de la pile de transmision.
@@ -119,7 +119,7 @@ interruption
transmission est donc terminée.
\end{description}
-\subsubsection{Config}
+\paragraph{Config}
Ce registre sert de configuration pour la transmission.
Structure :
@@ -154,7 +154,7 @@ transmission. \\
\item [On/Off] : active ou non la transmission
\end{description}
-\subsection{Procédure d'utilisation}
+\subsubsection{Procédure d'utilisation}
Pour utiliser ce port série, on doit pouvoir effectuer les actions suivantes :
\begin{itemize}
@@ -174,7 +174,7 @@ ne s'effectue que sur front montant de ce bit.
\end{itemize}
-\subsection{Interfaçage vhdl}
+\subsubsection{Interfaçage vhdl}
Voici le code vhdl de l'entité txserie :
\begin{verbatim}
@@ -217,8 +217,8 @@ Voici une description de ces signaux :
% Deuxième partie : le RXserie
-\section{Le RXserie}
-\subsection{Cahier des charges}
+\subsection{Le RXserie}
+\subsubsection{Cahier des charges}
Le cahier des charges du récepteur série est le suivant :
\begin{itemize}
@@ -230,38 +230,38 @@ Le cahier des charges du récepteur série est le suivant :
\end{itemize}
-\subsection{Schéma-bloc}
+\subsubsection{Schéma-bloc}
Le schéma modulaire est visible sur la figure \ref{schemarxserie} page \pageref{schemarxserie}.
\begin{figure}[htbp]
\caption{Schéma-bloc du RXserie}
-\includegraphics[width=\textwidth]{images/rxserie.pdf}
+\includegraphics[width=\textwidth]{./portserie/images/rxserie.pdf}
\label{schemarxserie}
\end{figure}
-\subsection{Descritpion des modules}
-\subsubsection{Le RXcever}
+\subsubsection{Descritpion des modules}
+\paragraph{Le RXcever}
C'est un récepteur série qui présente ses données à l'entrée de la fifo
Dès qu'il a reçu un octet, il agit sur le signal fifockin de la fifo
ce qui empile l'octet reçu.
-\subsubsection{Autres modules}
+\paragraph{Autres modules}
Les autres modules utilisés sont les mêmes que pour le transmetteur. Voir
chapitre \ref{descriptmodules}.
-\subsection{Fonctionalités et utilisation}
+\subsubsection{Fonctionalités et utilisation}
Ce port série utilise 3 adresses mémoire :
-\subsubsection{Rxdata}
+\paragraph{Rxdata}
Ce registre 8 bits permet de récupérer les données reçues. On les lit
séquentiellement, et chaque lecture dans ce registre dépile la donnée en bas
de la fifo.
-\subsubsection{Flag}
+\paragraph{Flag}
C'est le registre d'état. Il donne essentiellement des informations sur l'état
de remplissage de la pile de réception.
@@ -297,7 +297,7 @@ donnée est arrivée dans le récepteur. Chaque front montant de ce bit déclenche
l'interruption DRInt
\end{description}
-\subsubsection{Config}
+\paragraph{Config}
Ce registre sert de configuration pour la transmission.
Structure
@@ -332,7 +332,7 @@ DataReady (actif à 1)
\item [On/Off] : active ou non la réception de données
\end{description}
-\subsection{Procédure d'utilisation}
+\subsubsection{Procédure d'utilisation}
Pour utiliser ce port série, on doit pouvoir effectuer les actions suivantes :
\begin{itemize}
\item Mettre le bit On/Off à 1 pour activer la réception des données.
@@ -352,7 +352,7 @@ de la fifo pour la vider.
-\subsection{Interfaçage vhdl}
+\subsubsection{Interfaçage vhdl}
Voici le code vhdl de l'entité rxserie :
\begin{verbatim}
diff --git a/2004/n/fpga/doc/dcd/portserie/rxserie.sxd b/2004/n/fpga/doc/dcd/portserie/rxserie.sxd
deleted file mode 100644
index cc63937..0000000
--- a/2004/n/fpga/doc/dcd/portserie/rxserie.sxd
+++ /dev/null
Binary files differ
diff --git a/2004/n/fpga/doc/dcd/portserie/rxserie.tex b/2004/n/fpga/doc/dcd/portserie/rxserie.tex
deleted file mode 100644
index ae840f6..0000000
--- a/2004/n/fpga/doc/dcd/portserie/rxserie.tex
+++ /dev/null
@@ -1,145 +0,0 @@
-\section{Cahier des charges}
-Le cahier des charges du récepteur série est le suivant :
-
-\begin{itemize}
-\item Réception série 8 bits, 1 start, 2 stop
-\item Vitesse : paramétrable 9600 et 115200 bauds
-\item Fifo de stockage des données reçues
-\item Interruption activable signalant que la fifo est pleine
-\item Interruption activable signalant qu'on a reçu une donnée
-\end{itemize}
-
-\section{Architecture globale}
-Voici le schéma modulaire du récepteur :
-
-\section{Utilisation}
-Ce port série utilise 3 adresses mémoire :
-\subsection{Rxdata}
-Ce registre 8 bits permet de récupérer les données reçues. On les lit
-séquentiellement, et chaque lecture dans ce registre dépile la donnée en bas
-de la fifo.
-
-Adresse : \textit{adresse\_module} + 0
-
-\subsection{Flag}
-C'est le registre d'état. Il donne essentiellement des informations sur l'état
-de remplissage de la pile de réception.
-
-Adresse : \textit{adresse\_module} + 1
-
-Structure :
-\begin{tabular}
-bit ! 7 ! 6 ! 5 ! 4 ! 3 ! 2 ! 1 ! 0
-nom ! x ! x ! x ! x ! FNE ! FFull ! FL1 ! FL0
-\end{tabular}
-
-Signification des bits :
-\begin{description}
-\item [FL1/FL0] : Fifo Level 1/0. Ces bits donnent le niveau de remplissage de
-la fifo.
- \begin{tabular}
- FL1/FL0 ! Tx de remplissage
- 00 ! < 25\%
- 01 ! 25\% < Tx < 50\%
- 10 ! 20\% < Tx < 75\%
- 11 ! 75\% < Tx
- \end{tabular}
-\item [FFull] : indique que la pile est pleine. Chaque front montant de ce
-bit déclenche l'interruption FifoFullInt
-\item [FNE] : FifoNonEmpty. Indique que la fifo n'est pas vide, et donc qu'une
-donnée est arrivée dans le récepteur. Chaque front montant de ce bit déclenche
-l'interruption FifiNonEmptyInt
-\end{description}
-
-\subsection{Config}
-Ce registre sert de configuration pour la transmission.
-
-Adresse : \textit{adresse\_module} + 2
-
-Structure
-\begin{tabular}
-bit ! 7 ! 6 ! 5 ! 4 ! 3 ! 2 ! 1 ! 0
-nom ! x ! x ! x ! On/Off ! FNEIE ! FFIE ! BdR1 ! BdR0
-\end{tabular}
-
-Signification des bits :
-\begin{description}
-\item [BdR1/BdR0] : BaudRate1/0. Ces bits paramètrent la vitesse de
-transmission.
- \begin{tabular}
- BdR1/BdR0 ! Vitessse
- 00 ! 9600
- 01 ! 19200
- 10 ! 57600
- 11 ! 115200
- \end{tabular}
-\item [FFIF] : FifoFull-Int-Enable. Active ou non l'interruption FifoFull
-(actif à 1)
-\item [FNEIE] : FifiNonEmpty-Int-Enable. Active ou non l'interruption
-FifiNonEmpty (actif à 1)
-\item [On/Off] : active ou non la réception de données
-\end{description}
-
-\subsection{Utilisation}
-\begin{itemize}
-\item Mettre le bit On/Off à 1 pour activer la réception des données.
-\item Paramétrer la vitesse à l'aide des bits BdR1/0
-\item Il est conseillé d'activer l'interruption de fifo pleine (FFInt) en
-mettant à 1 le bit FFIE.
-\item On peut également activer l'interruption de donnée reçue FNEInt en
-mettant à 1 le bit FNEIE.
-\item Tester si une donnée est présente dans le buffer en testant le bit FNE.
-S'il est à 1, lire la donnée dans rxdata. La donnée est alors automatiquement
-dépilée de la fifo.
-\item On peut lire en permanence l'état de la fifo grâce aux bits FL1/0.
-\item Quand la fifo est pleine, le flag FFI passe à 1, et le front
-montant de ce bit génère une interruption. Il faut alors lire les 512 octets
-de la fifo pour la vider.
-\end{itemize}
-
-
-\section{Interfaçage}
-
-Voici le schéma de l'entité txserie :
-
-Voici le code vhdl de l'entité rxserie :
-\begin{verbatim}
-entity rxserie is
-generic(adr : integer);
-constant adr_w : integer :=10;
-port(
- adrbus: in std_logic_vector((adr_w - 1) downto 0);
- databus: inout std_logic_vector(7 downto 0);
- rw: in std_logic;
- busck: in std_logic;
- rst: in std_logic;
- masterck: in std_logic;
- rxin: in std_logic;
- FNEIout: out std_logic;
- FFIout: out std_logic;
- );
-end rxserie;
-\end{verbatim}
-
-\begin{description}
-\item [adr : integer] : paramètre générique entier définissant l'adresse du
-module (notée \textit{adress\_module})
-\item [adr\_w] : largeur du bus d'adresse. le code peut ainsi être modifié
-pour s'adapter à plusieurs largeurs de bus d'adresse.
-\item [adrbus] : bus d'adresse
-\item [databus] : bus de données
-\item [rw] : ligne Read/Write\_
-\item [busck] : horloge bus
-\item [rst] : patte de reset
-\item [masterck] : horloge générale du fpga
-\item [rxin] : patte de sortie série
-\item [FNEIout] : sortie d'interruption FNEInt
-\item [FFIout] : sortie d'interruption FFInt
-\end{description}
-
-
-\section{Conclusion}
-Ce récepteur est polyvalent, il intègre les fonctions les plus utilisées,
-et permet de les utiliser facilement.
-
-
diff --git a/2004/n/fpga/doc/dcd/portserie/txserie.sxd b/2004/n/fpga/doc/dcd/portserie/txserie.sxd
deleted file mode 100644
index c087515..0000000
--- a/2004/n/fpga/doc/dcd/portserie/txserie.sxd
+++ /dev/null
Binary files differ
diff --git a/2004/n/fpga/doc/dcd/portserie/txserie.tex b/2004/n/fpga/doc/dcd/portserie/txserie.tex
deleted file mode 100644
index 20648fd..0000000
--- a/2004/n/fpga/doc/dcd/portserie/txserie.tex
+++ /dev/null
@@ -1,139 +0,0 @@
-\section{Cahier des charges}
-Le cahier des charges du transmetteur série est le suivant :
-
-\begin{itemize}
-\item Transmission série 8 bits, 1 start, 2 stop
-\item Vitesse : paramétrable 9600 et 115200 bauds
-\item Fifo de stockage avant transmision
-\item Interruption activable signalant que la pile est pleine
-\end{itemize}
-
-\section{Architecture globale}
-Voici le schéma modulaire du transmetteur :
-
-\section{Utilisation}
-Ce port série utilise 3 adresses mémoire :
-\subsection{Txdata}
-Ce registre 8 bits sert à recevoir les données à envoyer. On les écrit
-séquentiellement, et chaque écriture dans ce registre empile la donnée en haut
-de la fifo.
-
-Adresse : \textit{adresse\_module} + 0
-
-\subsection{Flag}
-C'est le registre d'état. il donne essentiellement des informations sur l'état
-de remplissage de la pile de transmision.
-
-Adresse : \textit{adresse\_module} + 1
-
-Structure :
-\begin{tabular}
-bit ! 7 ! 6 ! 5 ! 4 ! 3 ! 2 ! 1 ! 0
-nom ! x ! x ! x ! x ! Empty ! Full/Int ! FLI1 ! FLI0
-\end{tabular}
-
-Signification des bits :
-\begin{description}
-\item [FL1/FL0] : Fifo Level 1/0. Ces bits donnent le niveau de remplissage de
-la fifo.
- \begin{tabular}
- FL1/FL0 ! Tx de remplissage
- 00 ! < 25\%
- 01 ! 25\% < Tx < 50\%
- 10 ! 20\% < Tx < 75\%
- 11 ! 75\% < Tx
- \end{tabular}
-\item [Full/Int] : indique que la pile est pleine, ce qui déclenche une
-interruption
-\item [Empty] : indique que la pile ET le transmetteur sont vides, que la
-transmission est donc terminée.
-\end{description}
-
-\subsection{Config}
-Ce registre sert de configuration pour la transmission.
-
-Adresse : \textit{adresse\_module} + 2
-
-Structure
-\begin{tabular}
-bit ! 7 ! 6 ! 5 ! 4 ! 3 ! 2 ! 1 ! 0
-nom ! x ! x ! x ! On/Off ! Purge ! IntEn ! BdR1 ! BdR0
-\end{tabular}
-
-Signification des bits :
-\begin{description}
-\item [BdR1/BdR0] : BaudRate1/0. Ces bits paramètrent la vitesse de
-transmission.
- \begin{tabular}
- BdR1/BdR0 ! Vitessse
- 00 ! 9600
- 01 ! 19200
- 10 ! 57600
- 11 ! 115200
- \end{tabular}
-\item [Int/En] : active ou non l'interruption de fifo pleine
-\item [Purge] : vide la fifo de toutes ses données
-\item [On/Off] : active ou non la transmission
-\end{description}
-
-\subsection{Utilisation}
-\begin{itemize}
-\item Mettre le bit On/Off à 1 pour activer la transmission
-\item Paramétrer la vitesse à l'aide des bits BdR1/0
-\item Il est conseillé d'activer l'interruption de fifo pleine en mettant à 1
-le bit IntEn.
-\item Ecriture dans txdata pour charger les données dans la fifo. Elles sont
-alors automatiquement transférées, au plus tôt. Dès que le registre à décalage
-est vide, il dépile le dernier élément de la fifo et le transmet à nouveau.
-\item On peut lire en permanence l'état de la fifo grâce aux bits FL1/0.
-\item Quand la fifo est pleine, le flag Full/Int passe à 1, et le front
-montant de ce bit génère une interruption.
-\item Il est possible de vider la fifo en mettant Purge à 1. Il faut le
-remettre à 0 pour qu'il puisse être à nouveau actif, car la purge de la fifo
-ne s'effectue que sur front montant de ce bit.
-\end{itemize}
-
-
-\section{Interfaçage}
-
-Voici le schéma de l'entité txserie :
-
-Voici le code vhdl de l'entité txserie :
-\begin{verbatim}
-entity txserie is
-generic(adr : integer);
-constant adr_w : integer :=10;
-port(
- adrbus: in std_logic_vector((adr_w - 1) downto 0);
- databus: inout std_logic_vector(7 downto 0);
- rw: in std_logic;
- busck: in std_logic;
- rst: in std_logic;
- masterck: in std_logic;
- txout: out std_logic;
- intout: out std_logic;
- );
-end txserie;
-\end{verbatim}
-
-\begin{description}
-\item [adr : integer] : paramètre générique entier définissant l'adresse du
-module (notée \textit{adress\_module})
-\item [adr\_w] : largeur du bus d'adresse. le code peut ainsi être modifié
-pour s'adapter à plusieurs largeurs de bus d'adresse.
-\item [adrbus] : bus d'adresse
-\item [databus] : bus de données
-\item [rw] : ligne Read/Write\_
-\item [busck] : horloge bus
-\item [rst] : patte de reset
-\item [masterck] : horloge générale du fpga
-\item [txout] : patte de sortie série
-\item [intout] : sortie d'interruption
-\end{description}
-
-
-\section{Conclusion}
-Ce transmetteur est polyvalent, il intègre les fonctions les plus utilisées,
-et permet de les utiliser facilement.
-
-
diff --git a/2004/n/fpga/doc/dcd/rapport.tex b/2004/n/fpga/doc/dcd/rapport.tex
index e38df34..0fd0a6f 100644
--- a/2004/n/fpga/doc/dcd/rapport.tex
+++ b/2004/n/fpga/doc/dcd/rapport.tex
@@ -44,10 +44,21 @@ PC104}
\section{Introduction}
+
+Notre projet de carte fpga avance. Nous avons répartit les tâches, et commencé
+à concevoir les modules du projet.
+
+Le présent dossier a pour but de présenter l'architecture de chacun de ces
+modules.
+
\pagebreak
% Ici, explication sur la carte dans son ensemble ?
+\section{Architecture globale}
+\input{./archi/archi.tex}
+\pagebreak
+
% Les différents modules de la carte
\section{La gestion des interruptions}
\input{./interrupt/interrupt.tex}
@@ -57,8 +68,25 @@ PC104}
\input{./gpio/gpio.tex}
\pagebreak
+\section{Le bloc port série}
+\input{./portserie/portserie.tex}
+\pagebreak
-\section {Conclusion}
+\section{Les sorties servo}
+%\input{./servo/servo.tex}
+\pagebreak
+
+\section{Les sorties PWM}
+%\input{./pwm/pwm.tex}
+\pagebreak
+
+\section{Le bloc de gestion de la caméra}
+\input{./ovcam/ovcam.tex}
\pagebreak
+
+\section {Conclusion}
+
+
+
\end{document}