summaryrefslogtreecommitdiff
path: root/2004
diff options
context:
space:
mode:
authorprot2004-02-24 10:05:25 +0000
committerprot2004-02-24 10:05:25 +0000
commit273b35dc4e1accf4f3c702cdd5b2869305e8e7ef (patch)
treeb242b7e51f59dc7e7f3de04c2199c008b0147776 /2004
parent62f4ff258c479cca9073c5c1a782ac4861fc125f (diff)
Ajout des rapport de txserie et rxserie
Diffstat (limited to '2004')
-rw-r--r--2004/n/fpga/doc/dcd/portserie/rxserie.tex145
-rw-r--r--2004/n/fpga/doc/dcd/portserie/txserie.tex139
2 files changed, 284 insertions, 0 deletions
diff --git a/2004/n/fpga/doc/dcd/portserie/rxserie.tex b/2004/n/fpga/doc/dcd/portserie/rxserie.tex
new file mode 100644
index 0000000..ae840f6
--- /dev/null
+++ b/2004/n/fpga/doc/dcd/portserie/rxserie.tex
@@ -0,0 +1,145 @@
+\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.tex b/2004/n/fpga/doc/dcd/portserie/txserie.tex
new file mode 100644
index 0000000..20648fd
--- /dev/null
+++ b/2004/n/fpga/doc/dcd/portserie/txserie.tex
@@ -0,0 +1,139 @@
+\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.
+
+