Advertisement
Guest User

Untitled

a guest
Mar 29th, 2015
269
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Latex 10.35 KB | None | 0 0
  1. \documentclass{article}
  2. \usepackage[utf8]{inputenc}
  3. \usepackage[frenchb]{babel}
  4.  
  5. \usepackage{geometry}
  6. \geometry{
  7. a4paper,
  8. total={210mm,297mm},
  9. margin = 1.2in
  10. }
  11.  
  12. \title{Compte rendu intermédiaire Intégration des système - Groupe 17}
  13. \author{Matheus Schuh - Romain Jayles}
  14. \date{Mars 2015}
  15.  
  16. \usepackage{natbib}
  17. \usepackage{graphicx}
  18. \usepackage{float}
  19. \usepackage{minted}
  20.  
  21. \begin{document}
  22.  
  23. \begin{titlepage}
  24.  
  25. \newcommand{\HRule}{\rule{\linewidth}{0.5mm}} % Defines a new command for the horizontal lines, change thickness here
  26.  
  27. \center % Center everything on the page
  28. \vspace*{\fill}
  29. %----------------------------------------------------------------------------------------
  30. %   HEADING SECTIONS
  31. %----------------------------------------------------------------------------------------
  32.  
  33. \textsc{\LARGE ENSIMAG}\\[1.5cm] % Name of your university/college
  34. \textsc{\Large Intégration des Systèmes}\\[0.5cm] % Major heading such as course name
  35. \textsc{\large Filière Systèmes et Logiciels Embarqués}\\[0.5cm] % Minor heading such as course title
  36.  
  37. %----------------------------------------------------------------------------------------
  38. %   TITLE SECTION
  39. %----------------------------------------------------------------------------------------
  40.  
  41. \HRule \\[0.4cm]
  42. { \huge \bfseries Compte rendu - TP Filtre}\\[0.4cm] % Title of your document
  43. \HRule \\[1.5cm]
  44.  
  45. %----------------------------------------------------------------------------------------
  46. %   AUTHOR SECTION
  47. %----------------------------------------------------------------------------------------
  48.  
  49. \begin{minipage}{0.4\textwidth}
  50. \begin{flushleft} \large
  51. \emph{Élèves:}\\
  52. \textsc{Schuh} Matheus \\  % Your name
  53. \textsc{Jayles} Romain \\ % Your name
  54. \textsc {Groupe 17}
  55. \end{flushleft}
  56. \end{minipage}
  57. ~
  58. \begin{minipage}{0.4\textwidth}
  59. \begin{flushright} \large
  60. \emph{Enseignants:} \\
  61. \textsc{Portolan} Michele \\  % Supervisor's Name
  62. \textsc{Belhadj Amor} Zeineb \\ % Supervisor's Name
  63. \textsc{Di Pendina} Gregory  % Supervisor's Name
  64. \end{flushright}
  65. \end{minipage}\\[4cm]
  66. \vspace*{\fill}
  67. % If you don't want a supervisor, uncomment the two lines below and remove the section above
  68. %\Large \emph{Author:}\\
  69. %John \textsc{Smith}\\[3cm] % Your name
  70.  
  71. %----------------------------------------------------------------------------------------
  72. %   DATE SECTION
  73. %----------------------------------------------------------------------------------------
  74.  
  75. {\large Mars 2015} % Date, change the \today to a set date if you want to be precise
  76.  
  77.  
  78.  % Fill the rest of the page with whitespace
  79.  
  80. \end{titlepage}
  81.  
  82.  
  83. %\maketitle
  84.  
  85. \section{Introduction}
  86. Le but de ce TP est de réaliser la partie contrôle (FSM) d'un filtre à réponse impulsionnelle finie ainsi que le programme assembleur du microntrôleur qui aura pour tâche de programmer les coefficients du filtre. Pour ce faire, une très bonne compréhension de l'ensemble des éléments du filtre était nécessaire.
  87. \section{Théorie}
  88.  
  89. \subsection{Filtre}
  90. Après avoir étudié les différents composants du filtre et après avoir produit un chronogramme (cf. fig. 2) pour faciliter la compréhension de celui-ci, nous avons réalisé la machine de Mealy suivante : \newline
  91.  
  92. \begin{figure}[H]
  93. \centering
  94. \includegraphics[scale=0.25]{machine_etat.png}
  95. \caption{Machine à États du filtre}
  96. \label{fig:Machine a Etats du filtre}
  97. \end{figure}
  98.  
  99. \begin{figure}[H]
  100. \centering
  101. \includegraphics[scale=0.35]{chrono.png}
  102. \caption{Chronogramme de la FSM}
  103. \label{fig:Chronogramme de la FSM}
  104. \end{figure}
  105.  
  106. Cette machine a directement été traduite en VHDL, en prenant bien soin de connecter l'ensemble des signaux de sortie. On a par exemple constaté que deux signaux étaient toujours connectés au compteur, quel que soit l'état et la transition en cours :
  107.  
  108. \begin{minted}{vhdl}
  109. Ram_address <= Tap_Number;
  110. Delay_line_address <= Tap_Number;
  111. \end{minted}
  112.  
  113. Pour que le code VHDL soit propre et bien synthétisable, certaines valeurs par défaut ont été définies pour quelques signaux : si ils ne se voient pas attribués une valeur dans une transition de la machine à états, la valeur prise est celle par défaut :
  114.  
  115. \begin{minted}{vhdl}
  116. Buff_OE <= '1';
  117. DAC_wr <= '0';
  118. Accu_ctrl <= '0';
  119. Delay_line_sample_shift <= '0';
  120. ADC_convst <= '1';
  121. \end{minted}
  122.  
  123. \subsection {$\mu C$}
  124. Pour la deuxième partie de ce TP, nous avions pour objectif de programmer (assez librement) la partie contrôle du microcontrôleur. Ce microcontrôleur a pour but de copier les 32 coefficients du filtre depuis sa RAM vers la RAM du filtre. Une fois ceci réalisé, il doit donner la main au filtre pour que celui-ci puisse opérer et aller chercher les coefficients enregistrés dans sa RAM.
  125.  
  126. Le microcontrôleur va, en premier lieu, lire l'entrée de configuration pour savoir quels coefficients aller chercher dans sa RAM (ceux correspondants au filtre passe-bas, filtre passe-haut, ...).
  127.  
  128. Afin d'avoir une grande flexibilité dans le choix de la configuration (et donc du filtre), le choix du filtre se fait en plaçant sur l'entrée de configuration la première adresse du tableau des coefficients du  filtre (par exemple $128$ pour la filtre passe bas). Ainsi nous gagnions en rapidité (pas de if then else pour choisir la configuration) et en flexibilité puisqu'il suffit de rajouter des coefficients dans la RAM et de donner la première adresse de ces coefficients sur l'entrée de configuration pour choisir ce type de filtre.
  129.  
  130. Le code assembleur sera donc :
  131.  
  132. \begin{minted}[linenos,
  133.               numbersep=5pt,
  134.               frame=lines,
  135.               framesep=2mm]{asm}
  136. IN R1
  137. LI R5 0
  138. LI R0 31
  139. BRIGT 8
  140. MOVA R3 R5
  141. MOVA R2 R5
  142. LW R2 R1 R0
  143. SHL8 R3 R0
  144. OR R3 R2 R3
  145. OUT R3
  146. DEC R0 R0
  147. BRIUMP -9
  148. LI R0 3
  149. SHL14 R3 R0
  150. OUT R3
  151. BRIUMP -1
  152. \end{minted}
  153.  
  154. On constate que ce code possède deux boucles :
  155.  
  156. \begin{itemize}
  157. \item [{$\bullet$}]La première va parcourir les adresses de la RAM (du processeur) de 31 à 0, puis les écrire dans la RAM du filtre.
  158. \item [{$\bullet$}]La deuxième va mettre les bits $14$ et $15$ de $ExtOut$ à $1$ pour laisser la main au filtre. Cette boucle est faite indéfiniment.
  159. \end{itemize}
  160.  
  161. \section{Expérimentation et vérification}
  162. \subsection{Vérification du filtre}
  163. Pour commencer la vérification du filtrage simplement, on peut utiliser une entrée impulsionnelle et regarder les valeurs de $Accu\_out$ ($Accu\_out$ doit prendre successivement les valeurs des coefficients du filtre puisque le $1$ de l'entrée se propage grâce au $delay\_line$).\newline
  164.  
  165. \begin{figure}[H]
  166. \centering
  167. \includegraphics[scale=0.43]{impul_recd.png}
  168. \caption{Réponse impulsionnelle}
  169. \label{fig:Reponse impulsionnelle}
  170. \end{figure}
  171.  
  172. On constate, si on regarde les valeurs des bits $0$ à $7$ de $AccuOut$, que la théorie est vérifiée.\newline
  173.  
  174. Pour vérifier le filtrage avec des conditions plus réalistes, on peut mettre en entrée $Filter\_in$ un sinus avec une fréquence qui augmente de $0.01\%$ à chaque période d'horloge. Avec la configuration de base (filtre passe bas), on doit observer au bout d'un certain moment (le temps que la fréquence du sinus soit assez élevée) la sortie qui s'atténue fortement.\newline
  175.  
  176. \begin{figure}[H]
  177. \centering
  178. \includegraphics[scale=0.44]{passe-bas_filtre.png}
  179. \caption{Filtre passe-bas}
  180. \label{fig:Filtre passe-bas verification}
  181. \end{figure}
  182. Une autre solution, pour vérifier, serait de mettre en entrée un signal carré avec une fréquence approprié : $100\ kHz$ dans notre cas, et la même amplitude que le sinus. Avec le filtre passe-bas, nous devrions observer un sinus synchronisé (au déphasage près) avec le signal carré.\newline
  183.  
  184. \begin{figure}[H]
  185. \centering
  186. \includegraphics[scale=0.45]{SquareWaveToSinus_recd.png}
  187. \caption{Signal carré}
  188. \label{fig:Signal carre}
  189. \end{figure}
  190.  
  191. On constate que les sorties désirées sont conformes à nos attentes.
  192.  
  193. \subsection{Vérification du microcontrôleur}
  194. Pour vérifier le bon fonctionnement de la configuration du filtre, on peut laisser en entrée le même sinus que précédemment, et choisir les différentes configurations possible du filtre. On doit obtenir des sorties différentes en fonction du choix du filtre (passe-haut, passe-bas, ...)\newline
  195.  
  196. L'adresse du tableau des coefficients du filtre passe-bas est :$128$
  197.  
  198. L'entrée de configuration sera donc $128$.
  199.  
  200. On observe : \newline
  201. \begin{figure}[H]
  202. \centering
  203. \includegraphics[scale=0.4]{passe-bas_recd.png}
  204. \caption{Filtre passe-bas}
  205. \label{fig:Filtre passe-bas}
  206. \end{figure}
  207.  
  208. On voit bien qu'une fois que le sinus atteint une certaine fréquence, le signal est filtré.\newline
  209.  
  210. L'adresse du tableau des coefficients du filtre passe-haut est $160$.
  211.  
  212. L'entrée de configuration sera donc $160$.
  213.  
  214. On observe :\newline
  215.  
  216. \begin{figure}[H]
  217. \centering
  218. \includegraphics[scale=0.48]{passe-haut_recd.png}
  219. \caption{Filtre passe-haut}
  220. \label{fig:Filtre passe-haut}
  221. \end{figure}
  222. On peut donc dire que le filtrage des basses fréquences est effectif.\newline
  223.  
  224. L'adresse du tableau des coefficients du filtre passe-bande est $192$.
  225.  
  226. L'entrée de configuration sera donc $192$.
  227.  
  228. On observe :\newline
  229. \begin{figure}[H]
  230. \centering
  231. \includegraphics[scale=0.48]{passebande_recd.png}
  232. \caption{Filtre passe-bande}
  233. \label{fig:Filtre passe-bande}
  234. \end{figure}
  235. On voit bien que le sinus n'est pas atténué que dans une certaine bande de fréquence.\newline
  236.  
  237. L'adresse du tableau des coefficients du filtre arbitraire est $224$.
  238.  
  239. L'entrée de configuration sera donc $224$.
  240.  
  241. On observe :\newline
  242. \begin{figure}[H]
  243. \centering
  244. \includegraphics[scale=0.48]{ham_recd.png}
  245. \caption{Filtre arbitraire}
  246. \label{fig:Filtre arbitraire}
  247. \end{figure}
  248. Ce filtre fait bien l'effet de deux passe bande consécutifs. Le signal est dégradé vers la fin car la fréquence du signal est trop élevée pour la période d'échantillonage.
  249. \section{Conclusion}
  250. On peut dire que le filtrage se passe correctement. En observant les détails du processus (avec la réponse impulsionnelle), on remarque que l'on a les valeurs attendues. Avec des signaux plus évolués comme le sinus ou le signal carré et avec les différents filtres, nous observons les comportements attendus.
  251.  
  252. Le microcontrôleur, quand à lui, rempli bien son rôle en fonction de l'entrée de configuration et a été conçu de manière à rajouter facilement d'autres configurations de filtrage sans avoir à changer le code assembleur.
  253.  
  254. \end{document}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement