<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>https://wiki-ima.plil.fr/mediawiki//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jvaessen</id>
		<title>Wiki d'activités IMA - Contributions de l’utilisateur [fr]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki-ima.plil.fr/mediawiki//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jvaessen"/>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php/Sp%C3%A9cial:Contributions/Jvaessen"/>
		<updated>2026-05-13T06:41:20Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.29.2</generator>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Projets_IMA5_2014/2015&amp;diff=17732</id>
		<title>Projets IMA5 2014/2015</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Projets_IMA5_2014/2015&amp;diff=17732"/>
				<updated>2015-02-24T11:16:30Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* Répartition des binômes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Merci de référencer vos pages de projets ici. Merci aussi d'uniformiser vos formats que ce soit en regardant la présentation des projets déjà créés ou en allant modifier le format des précédents si votre façon de faire vous semble la meilleure. Dans tous les cas un minimum de communication entre les binômes est conseillée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Projet&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Elèves&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Encadrant Ecole&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Rapport décembre&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Rapports finaux&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[P1 Modélisation et commande de l'auto-ignition d'un moteur HCCI]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Moulé Alexandre / Taché Clément &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; Anne-Lise Gehin / Jean-Yves Dieulot &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Fichier:Rapport decembre moule tache.pdf]]  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Fichier: RapportFinPFE.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P5 Filtrage des indicateurs numériques de diagnostic]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; ZIOU Ismaïl / HAMZAOUI Oussama &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Belkacem Ould Bouamama &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:rapport_Z.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:Rapport PFE ZIOU HAMZAOUI.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[P6 Gestion des flux thermiques du bâtiment Polytech]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Florian Royer / Zohour Assaieb &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; Belkacem Ould Bouamama &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; [[Fichier:Rapport_Intermédiaire_Royer_Assaieb.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; [[Fichier:Rapport_Final_PFE_ProjetP6.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P7 Utilisation d'un Robot Nao pour les enfants autistes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Rodriguez Loïc/Ismaïl Tahry&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; GAPAS/Laurent Grisoni &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:Projetpfenaomi.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:Rapport PFE RodriguezTahry.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P8 Pilulier]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Alexandre Mercier / Emile Pinet&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Thomas VANTROYS / Alexandre BOE &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:Rapport decembre PFE pilulier mercier pinet.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:Rapport PFE Pinet Mercier.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P9 Agenda pour personnes non lectrices]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Cédric DESPREZ &amp;amp; Soufiane HADDAOUI &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; GAPAS/Laurent Grisoni &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:Rapport_MiSoutenance_DESPREZ_HADDAOUI.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:RapportFinal_Desprez-Haddaoui.pdf‎]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P11 Détecteur d'obstacles pour fauteuils électriques]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Geoffrey ROSE / Marjorie TIXIER &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; GAPAS / Blaise Conrard &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:Rapport_Intermédiaire_PFE_GAPAS_Rose_Tixier.pdf]]&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P12 Automatiser à l'aide d'une interface LabView la procédure de mesure de conductivité électrique d'un alternateur à griffes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Hugo FONDU &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Abdelkader Benabou &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:rapport_presoutenance.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P13 Construction d'un support motorisé pour la réalisation des essais de décharges électrostatique]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; JEBBARI Zineb / BEKRAOUI Oumaima &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Nathalie Rolland &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:rapportJebbek.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:rapport-final-jebbek.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P19 Contrôle et synchronisation d'instruments en microscopie]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Simon Duthoit&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Samuel Hym &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:RapportPFESimonDuthoit.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P21 Balise Bluetooth Low Energy]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Kévin CHALONO / Armagan YAMNAZ&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Thomas VANTROYS &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[ Fichier:ProjetBLE 1 pdf.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:Rapport_PFE_Yanmaz_Chalono2.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P21 Bis Prototypage d'interactions localisées et contextualisées ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Olivier Tailliez&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Thomas Vantroys / Yvan Peter &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier: PFE_Olivier_Tailliez.pdf‎]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P22 Google Glass en logistique ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Jérémy Gondry / Vincent Meunier &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Laurent Grisoni &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:Rapport_intermediaire_Gondry_Meunier.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:Rapport_final_PFE_Meunier_Gondry.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P24 Robot de surveillance domestique]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Sébastien DELTOMBE &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Xavier Redon &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:Rapport_PFE_P24_Deltombe.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P25 SmartMeter]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Thomas Ederlé / Sylvain Fossaert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Guillaume Renault / Xavier Redon / Alexandre Boé &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:RapportFossaertEderle.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:RapportEderleFossaert.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P26 Vehicule Electrique ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Smain Labdouni / Adnane Jaoui &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Arnaud Chielens / Philippe Delarue &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;  [[Fichier:RAPPORT_VE_DEC.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;  [[Fichier:Rapport_pfe_Jaoui_Labdouni_Fevrier.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P27 Controle Direct de Puissance d'un Convertisseur Matriciel ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Quentin Pesqueux / Nicolas Alexandre &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Philippe Delarue &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;  [[Fichier:PFE_IMA5_MATRIX_CONVERTER_Alexandre_Pesqueux.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;  [[Fichier:Rapport_PFE_Alexandre_Pesqueux.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P28 Modélisation d'un robot chirurgical déformable pour la simulation et le contrôle]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Charlotte BRICOUT / Nathan MARTIN &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Jérémie DEQUIDT&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:-BRICOUT MARTIN--Rapport PFE.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P33 Ligthing contactless / &amp;quot;wireless&amp;quot;]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Benjamin Lafit &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Alexandre Boé &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:Rapport_Benjamin_Lafit.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:Rapport_Final_Benjamin_Lafit.pdf‎]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P35 Hack-a-Wii : Emulation de wiimote pour rendre la Wii accessibles aux personnes handicapées ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Fabien Violier &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Laurent Grisoni &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;  &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P37 Creation d'un composant d'audit des accès cache mémoire sur un microprocesseur LEON3 simulé en FPGA ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Jérôme Vaessen &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Julien Cartigny / Pierrick Buret &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:Rapport_VAESSEN_presoutenance.pdf‎]] &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:Rapport_PFE_P37_VAESSEN_finale.pdf‎]] &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P44 Création d'un systeme domotique sans fil ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Benoit MALIAR / Thomas MAURICE&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Pierrick BURET / Thomas VANTROYS  &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:RapportMaliarMauriceDecembre.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:Rapport_final_Maliar_Maurice.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P45 Aide à la navigation d'un véhicule autonome]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Pierre APPERCÉ&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Rochdi MERZOUKI &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P46 Simulation Temps Réel d'un Environnement de Robots Autonomes Logisticiens]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Valentin VERGEZ&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Rochdi MERZOUKI &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P57 CHRU Lille : Smart Picking]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Mathieu Bossennec / Florian Caron&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Gwénaëlle Maton / Alexandre Boé / Thomas Vantroys &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[P58 Transformation des spectateurs d’un concert en afficheur géant interactif]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; Hautecoeur Mélanie &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; Alexandre Boé / Thomas Vantroys &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Fichier : PFE_Rapport_Hautecoeur_Melanie.pdf‎]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P59 Assistance globale pour aide au parking]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Mathieu GERIER / Céline LY &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Alexandre BOE / Thomas VANTROYS &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:Rapport_projet_intermediaire_GERIER_LY.pdf]]‎&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:Rapport_projet_GERIER_LY.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Projets_IMA5_2014/2015&amp;diff=17730</id>
		<title>Projets IMA5 2014/2015</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Projets_IMA5_2014/2015&amp;diff=17730"/>
				<updated>2015-02-24T11:14:55Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* Répartition des binômes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Merci de référencer vos pages de projets ici. Merci aussi d'uniformiser vos formats que ce soit en regardant la présentation des projets déjà créés ou en allant modifier le format des précédents si votre façon de faire vous semble la meilleure. Dans tous les cas un minimum de communication entre les binômes est conseillée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Projet&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Elèves&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Encadrant Ecole&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Rapport décembre&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Rapports finaux&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[P1 Modélisation et commande de l'auto-ignition d'un moteur HCCI]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Moulé Alexandre / Taché Clément &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; Anne-Lise Gehin / Jean-Yves Dieulot &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Fichier:Rapport decembre moule tache.pdf]]  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Fichier: RapportFinPFE.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P5 Filtrage des indicateurs numériques de diagnostic]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; ZIOU Ismaïl / HAMZAOUI Oussama &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Belkacem Ould Bouamama &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:rapport_Z.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:Rapport PFE ZIOU HAMZAOUI.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[P6 Gestion des flux thermiques du bâtiment Polytech]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Florian Royer / Zohour Assaieb &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; Belkacem Ould Bouamama &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; [[Fichier:Rapport_Intermédiaire_Royer_Assaieb.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; [[Fichier:Rapport_Final_PFE_ProjetP6.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P7 Utilisation d'un Robot Nao pour les enfants autistes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Rodriguez Loïc/Ismaïl Tahry&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; GAPAS/Laurent Grisoni &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:Projetpfenaomi.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:Rapport PFE RodriguezTahry.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P8 Pilulier]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Alexandre Mercier / Emile Pinet&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Thomas VANTROYS / Alexandre BOE &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:Rapport decembre PFE pilulier mercier pinet.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:Rapport PFE Pinet Mercier.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P9 Agenda pour personnes non lectrices]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Cédric DESPREZ &amp;amp; Soufiane HADDAOUI &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; GAPAS/Laurent Grisoni &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:Rapport_MiSoutenance_DESPREZ_HADDAOUI.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:RapportFinal_Desprez-Haddaoui.pdf‎]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P11 Détecteur d'obstacles pour fauteuils électriques]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Geoffrey ROSE / Marjorie TIXIER &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; GAPAS / Blaise Conrard &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:Rapport_Intermédiaire_PFE_GAPAS_Rose_Tixier.pdf]]&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P12 Automatiser à l'aide d'une interface LabView la procédure de mesure de conductivité électrique d'un alternateur à griffes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Hugo FONDU &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Abdelkader Benabou &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:rapport_presoutenance.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P13 Construction d'un support motorisé pour la réalisation des essais de décharges électrostatique]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; JEBBARI Zineb / BEKRAOUI Oumaima &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Nathalie Rolland &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:rapportJebbek.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:rapport-final-jebbek.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P19 Contrôle et synchronisation d'instruments en microscopie]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Simon Duthoit&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Samuel Hym &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:RapportPFESimonDuthoit.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P21 Balise Bluetooth Low Energy]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Kévin CHALONO / Armagan YAMNAZ&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Thomas VANTROYS &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[ Fichier:ProjetBLE 1 pdf.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:Rapport_PFE_Yanmaz_Chalono2.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P21 Bis Prototypage d'interactions localisées et contextualisées ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Olivier Tailliez&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Thomas Vantroys / Yvan Peter &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier: PFE_Olivier_Tailliez.pdf‎]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P22 Google Glass en logistique ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Jérémy Gondry / Vincent Meunier &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Laurent Grisoni &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:Rapport_intermediaire_Gondry_Meunier.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:Rapport_final_PFE_Meunier_Gondry.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P24 Robot de surveillance domestique]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Sébastien DELTOMBE &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Xavier Redon &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:Rapport_PFE_P24_Deltombe.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P25 SmartMeter]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Thomas Ederlé / Sylvain Fossaert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Guillaume Renault / Xavier Redon / Alexandre Boé &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:RapportFossaertEderle.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:RapportEderleFossaert.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P26 Vehicule Electrique ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Smain Labdouni / Adnane Jaoui &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Arnaud Chielens / Philippe Delarue &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;  [[Fichier:RAPPORT_VE_DEC.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;  [[Fichier:Rapport_pfe_Jaoui_Labdouni_Fevrier.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P27 Controle Direct de Puissance d'un Convertisseur Matriciel ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Quentin Pesqueux / Nicolas Alexandre &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Philippe Delarue &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;  [[Fichier:PFE_IMA5_MATRIX_CONVERTER_Alexandre_Pesqueux.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;  [[Fichier:Rapport_PFE_Alexandre_Pesqueux.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P28 Modélisation d'un robot chirurgical déformable pour la simulation et le contrôle]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Charlotte BRICOUT / Nathan MARTIN &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Jérémie DEQUIDT&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:-BRICOUT MARTIN--Rapport PFE.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P33 Ligthing contactless / &amp;quot;wireless&amp;quot;]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Benjamin Lafit &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Alexandre Boé &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:Rapport_Benjamin_Lafit.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:Rapport_Final_Benjamin_Lafit.pdf‎]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P35 Hack-a-Wii : Emulation de wiimote pour rendre la Wii accessibles aux personnes handicapées ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Fabien Violier &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Laurent Grisoni &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;  &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P37 Creation d'un composant d'audit des accès cache mémoire sur un microprocesseur LEON3 simulé en FPGA ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Jérôme Vaessen &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Julien Cartigny / Pierrick Buret &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:Rapport_PFE_P37_VAESSEN_finale.pdf‎]] &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P44 Création d'un systeme domotique sans fil ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Benoit MALIAR / Thomas MAURICE&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Pierrick BURET / Thomas VANTROYS  &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:RapportMaliarMauriceDecembre.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:Rapport_final_Maliar_Maurice.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P45 Aide à la navigation d'un véhicule autonome]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Pierre APPERCÉ&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Rochdi MERZOUKI &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P46 Simulation Temps Réel d'un Environnement de Robots Autonomes Logisticiens]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Valentin VERGEZ&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Rochdi MERZOUKI &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P57 CHRU Lille : Smart Picking]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Mathieu Bossennec / Florian Caron&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Gwénaëlle Maton / Alexandre Boé / Thomas Vantroys &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[P58 Transformation des spectateurs d’un concert en afficheur géant interactif]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; Hautecoeur Mélanie &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; Alexandre Boé / Thomas Vantroys &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Fichier : PFE_Rapport_Hautecoeur_Melanie.pdf‎]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P59 Assistance globale pour aide au parking]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Mathieu GERIER / Céline LY &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Alexandre BOE / Thomas VANTROYS &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:Rapport_projet_intermediaire_GERIER_LY.pdf]]‎&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:Rapport_projet_GERIER_LY.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Rapport_PFE_P37_VAESSEN_finale.pdf&amp;diff=17729</id>
		<title>Fichier:Rapport PFE P37 VAESSEN finale.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Rapport_PFE_P37_VAESSEN_finale.pdf&amp;diff=17729"/>
				<updated>2015-02-24T11:14:21Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=17150</id>
		<title>P37 Creation d'un composant d'audit des accès cache mémoire sur un microprocesseur LEON3 simulé en FPGA</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=17150"/>
				<updated>2015-02-18T15:03:41Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* Semaine 20: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rapport de Présoutenance =&lt;br /&gt;
&lt;br /&gt;
http://projets-imasc.plil.net/mediawiki/images/0/05/Rapport_VAESSEN_presoutenance.pdf&lt;br /&gt;
&lt;br /&gt;
= Presentation du projet =&lt;br /&gt;
&lt;br /&gt;
Ce projet s'inscrit dans l'amélioration d'une solution d'IP pour un SoftCore implanté dans un FPGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
Il faudra créer un composant VHDL capable de:&lt;br /&gt;
&lt;br /&gt;
1.&lt;br /&gt;
sniffer les paquets à destination de la SDRAM/RAM (via le memory controler)&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
Vérifier le contenu du paquet savoir, le type d'accès (lecture/écriture) de la mémoire&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
compter le nombre d'accès mémoire en écriture&lt;br /&gt;
&lt;br /&gt;
4.&lt;br /&gt;
Différencier les zones mémoires qui sont accéder afin de déterminer l'application/taches qui est à l'origine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faudra aussi, faire cohabiter deux (ou plus) SoftCore Leon3 communicants sur le même bus AMBA.&lt;br /&gt;
&lt;br /&gt;
== Planning: ==&lt;br /&gt;
&lt;br /&gt;
=== Semaine 1:  ===&lt;br /&gt;
Décourverte de l'équipe et discussion concernant le projet&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2: ===&lt;br /&gt;
Mise en place des outils (cygwin64 avec &amp;quot;développement&amp;quot;) et discussion concernant les possibilités offertes concernant le bus AMBA&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3: ===&lt;br /&gt;
Après plusieurs essais d'utilisation des paquets tcl/tk fournis avec cygwin, nous nous sommes aperçus que l'environnement cygwin ne semble pas utilisable pour le projet.&lt;br /&gt;
C'est pour cela que nous passons à une autre solution ie Msys cependant nous sommes en train de faire en sorte d'avoir la bonne version des outils TCL/TK.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4: ===&lt;br /&gt;
Mise en place d'un SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5: ===&lt;br /&gt;
&lt;br /&gt;
Mise en place de multiple SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 6: ===&lt;br /&gt;
&lt;br /&gt;
Abandon du cache L2C (composant manquant).&lt;br /&gt;
&lt;br /&gt;
Compilation d'un &amp;quot;hello world&amp;quot; avec les outils et paramètres adéquats pour une architecture multicoeur.&lt;br /&gt;
&lt;br /&gt;
Épluchage des documentations afin d'établir les signaux pertinents pour réaliser des compteurs qui auront les caractéristiques suivantes:&lt;br /&gt;
&lt;br /&gt;
-une paire de compteurs pour la lecture et l'écriture en mémoire&lt;br /&gt;
&lt;br /&gt;
-3 paire de compteur (PROM, RAM et SDRAM).&lt;br /&gt;
&lt;br /&gt;
=== Semaine 7: ===&lt;br /&gt;
&lt;br /&gt;
Étude du composant contrôleur mémoire afin d'y implanter le composant. Cela nous permettra d'accéder facilement aux signaux pertinents pour le contrôle du composant. On fera en sorte d'avoir une sortie sur un GPIO.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 8: ===&lt;br /&gt;
&lt;br /&gt;
Au lieu d'essayer de comprendre comment fonctionne de manière précise l'abritrage du bus amba et comment fontionne le processus de selection d'un composant en fonction de l'adresse sur le bus, je me suis concentré sur les signaux reliées directement au mémoire (ram, rom et sdram) physique afin d'écrire mon composant.&lt;br /&gt;
&lt;br /&gt;
L'idée serait d'utiliser ces signaux et faire une sortie sur un GPIO pour connaitre son état en le visualisant sur un oscilloscope.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 9: ===&lt;br /&gt;
&lt;br /&gt;
Discussion et abandon de l'idée de la semaine 8, car une nouvelle contrainte a été fixée:&lt;br /&gt;
&lt;br /&gt;
-le résultat de chacun des compteurs devra pouvoir être accessible à des adresses mémoire sur le bus amba donc accessible par le processeur.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 10: ===&lt;br /&gt;
&lt;br /&gt;
Mise au propre du cahier des charges, et étude de la norme AMBA.&lt;br /&gt;
&lt;br /&gt;
Test grmon RCP au travers Eclipse, infructueux, car la carte n'est pas reconnue.&lt;br /&gt;
&lt;br /&gt;
== Semaine 11: ==&lt;br /&gt;
&lt;br /&gt;
Écriture d'une ébauche de composant et étude des possibilités en fonction des signaux disponible dans le contrôleur mémoire.&lt;br /&gt;
&lt;br /&gt;
== Semaine 12: ==&lt;br /&gt;
&lt;br /&gt;
Étude bibliographique (documents de Gaisler, norme AMBA).&lt;br /&gt;
&lt;br /&gt;
== Semaine 13: ==&lt;br /&gt;
&lt;br /&gt;
Rédaction du rapport et préparation à la présoutenance.&lt;br /&gt;
&lt;br /&gt;
== Semaine 14: ==&lt;br /&gt;
&lt;br /&gt;
Prise en main de ModelSim PE 10.4, pour simuler le SOC (des erreurs sont encore à régler).&lt;br /&gt;
&lt;br /&gt;
== Semaine 15: ==&lt;br /&gt;
&lt;br /&gt;
Début de l'écriture du composant:&lt;br /&gt;
- correction des incohérences du design (au niveau du déclenchement du composant)&lt;br /&gt;
- amélioration du design (réduction de largeur des bus)&lt;br /&gt;
&lt;br /&gt;
== Semaine 16: ==&lt;br /&gt;
&lt;br /&gt;
Écriture et test du composant.&lt;br /&gt;
&lt;br /&gt;
== Semaine 17: ==&lt;br /&gt;
&lt;br /&gt;
Écriture de la fonction de la reconnaissance d'écriture dans un composant surveillé.&lt;br /&gt;
&lt;br /&gt;
Écriture de la fonction permettant la reprogrammation du composant en valeur maximale. &lt;br /&gt;
&lt;br /&gt;
Documentation sur l'utilitaire Chipscope Pro et son utilisation avec la carte.&lt;br /&gt;
&lt;br /&gt;
== Semaine 18: ==&lt;br /&gt;
&lt;br /&gt;
Tentative d'utilisation de Chipscope Pro, des erreurs sont constatées (ce qui est d'ailleurs évoqué lors de la configuration dans Chipscope : &amp;quot;connection to PAD or IBUFG net can cause error in PAR&amp;quot;) (Qui provoque des erreurs lors de l'implémentation du design).&lt;br /&gt;
&lt;br /&gt;
On rajoute des bascules D afin d'éviter ces erreurs, cependant nous ne verrons que l'état des bus au moment des fronts montants ou descendants (ce que est logique, car l'on ne peut pas échantillonné avec durée inférieur à celle de l'horloge).&lt;br /&gt;
&lt;br /&gt;
L'implémentation avec est impossible à cause d'un signal &amp;quot;non existent&amp;quot;, alors que celui existe belle et bien, donc on peut confirmer le fonctionnement du composant grâce à la simulation.&lt;br /&gt;
&lt;br /&gt;
Test des commandes utiles au travers de grmon pour la version non modifiée et modifié du leon3.&lt;br /&gt;
&lt;br /&gt;
On a commencé la réflexion sur un cache l2c primitif, ce composant permettrais de fournir directement le résultat si celui-ci à déjà était réalisé auparavant (Analogie: une personne que pose deux fois de suite la même question dans un intervalle borné relativement court).&lt;br /&gt;
&lt;br /&gt;
== Semaine 19: ==&lt;br /&gt;
&lt;br /&gt;
Début du rapport final.&lt;br /&gt;
&lt;br /&gt;
Raccourcissement du code du composant.&lt;br /&gt;
&lt;br /&gt;
Écriture des signaux de sortie: hrdata, hresp et hready, des fonctions de multiplexage en sortie seront nécessaires.&lt;br /&gt;
&lt;br /&gt;
Ceci reste à confirmer grâce à un test sur la carte et/ou une simulation.&lt;br /&gt;
&lt;br /&gt;
Nous avons réussi à faire fonctionner la simulation sur Modelsim PE.&lt;br /&gt;
&lt;br /&gt;
Nous avons fait en sorte que le composant soit visible et reconnu lors de la simulation*&lt;br /&gt;
&lt;br /&gt;
*à confirmer sans les attributes keep&lt;br /&gt;
&lt;br /&gt;
== Semaine 20: ==&lt;br /&gt;
&lt;br /&gt;
Réalisé:&lt;br /&gt;
&lt;br /&gt;
Le composant est présent dans le log de la simulation modelsim pe. Nous n'avons pas confirmé par la simulation du design, en effet on cherche une &amp;quot;solution simple&amp;quot; pour montrer son bon fonctionnement.&lt;br /&gt;
&lt;br /&gt;
Reconnaissance du composant par le contrôleur de bus AMBA, on trouve une trace cohérente dans la mémoire à l'adresse 0xFFFFF800 (via grmon) est faite sur le design réelle (la carte).&lt;br /&gt;
&lt;br /&gt;
Lecture de la valeur du compteur dans grmon (sur la carte), cela-ci s'incrémente en permanence (le compteur est régler pour s'incrémenter à chaque accés au contrôleur mémoire), il faut montrez qu'il est possible de surveiller une portion de la mémoire.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
à faire:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Début de la présentation de PFE à faire.&lt;br /&gt;
&lt;br /&gt;
Et rédaction du rapport à terminer.&lt;br /&gt;
&lt;br /&gt;
Vidéo à faire.&lt;br /&gt;
&lt;br /&gt;
-confirmer la présence du composant avec son compteur dans ModelSim PE&lt;br /&gt;
:Utile ?&lt;br /&gt;
&lt;br /&gt;
== Annexes: ==&lt;br /&gt;
&lt;br /&gt;
=== Notes: ===&lt;br /&gt;
D'après la section 2.15 [3], on a la correspondance suivante:&lt;br /&gt;
GRLIB IP Cores&lt;br /&gt;
Core Vendor&lt;br /&gt;
LEON3|0x01 (ie Gaisler Research [2] p49)&lt;br /&gt;
MCTRL|0x04 (ie European Space Agency [2]p49)&lt;br /&gt;
Ce qui nous permettra d'identifier le contrôleur mémoire&lt;br /&gt;
&lt;br /&gt;
Voici quelques suggestions que l'on peut faire concernant le sniffeur de paquets:&lt;br /&gt;
&lt;br /&gt;
Pour cela on utilise très largement le document [2] (GRLIB IP Library User’s Manual)&lt;br /&gt;
&lt;br /&gt;
Lors d'une simulation du code VHDL, il est possible d'afficher le contenu du BAR (bank address registers).&lt;br /&gt;
&lt;br /&gt;
Pour ce qui de la gestion de la prochaine tache à exécuter il y a possibilité de faire en sorte que notre composant:&lt;br /&gt;
-changer la priorité du master sur le bus AMBA&lt;br /&gt;
-empêcher l'accès en dur en modifiant le comportement du contrôleur de bus (1).&lt;br /&gt;
&lt;br /&gt;
(1): Ceci ne fonctionnera que si les taches sont sur des partitions différentes et sur des processeurs indépendants.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser le composant, il est envisageable de l'intégrer directement au sein du contrôleur de mémoire.&lt;br /&gt;
&lt;br /&gt;
Celui devra donc récupérer le contenu des caches des processeurs afin de déterminé quel programme et en exécution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bibliographie: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] lien site gaisler&lt;br /&gt;
gaisler.com/index.php&lt;br /&gt;
&lt;br /&gt;
[2] lien vers GRLIB IP Library User’s Manual&lt;br /&gt;
http://www.gaisler.com/products/grlib/grlib.pdf&lt;br /&gt;
&lt;br /&gt;
[3] lien vers LEON3 GR-XC3S-1500 Template Design &lt;br /&gt;
http://www.gaisler.com/products/grlib/grip.pdf&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=16984</id>
		<title>P37 Creation d'un composant d'audit des accès cache mémoire sur un microprocesseur LEON3 simulé en FPGA</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=16984"/>
				<updated>2015-02-16T08:24:30Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* Semaine 20: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rapport de Présoutenance =&lt;br /&gt;
&lt;br /&gt;
http://projets-imasc.plil.net/mediawiki/images/0/05/Rapport_VAESSEN_presoutenance.pdf&lt;br /&gt;
&lt;br /&gt;
= Presentation du projet =&lt;br /&gt;
&lt;br /&gt;
Ce projet s'inscrit dans l'amélioration d'une solution d'IP pour un SoftCore implanté dans un FPGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
Il faudra créer un composant VHDL capable de:&lt;br /&gt;
&lt;br /&gt;
1.&lt;br /&gt;
sniffer les paquets à destination de la SDRAM/RAM (via le memory controler)&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
Vérifier le contenu du paquet savoir, le type d'accès (lecture/écriture) de la mémoire&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
compter le nombre d'accès mémoire en écriture&lt;br /&gt;
&lt;br /&gt;
4.&lt;br /&gt;
Différencier les zones mémoires qui sont accéder afin de déterminer l'application/taches qui est à l'origine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faudra aussi, faire cohabiter deux (ou plus) SoftCore Leon3 communicants sur le même bus AMBA.&lt;br /&gt;
&lt;br /&gt;
== Planning: ==&lt;br /&gt;
&lt;br /&gt;
=== Semaine 1:  ===&lt;br /&gt;
Décourverte de l'équipe et discussion concernant le projet&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2: ===&lt;br /&gt;
Mise en place des outils (cygwin64 avec &amp;quot;développement&amp;quot;) et discussion concernant les possibilités offertes concernant le bus AMBA&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3: ===&lt;br /&gt;
Après plusieurs essais d'utilisation des paquets tcl/tk fournis avec cygwin, nous nous sommes aperçus que l'environnement cygwin ne semble pas utilisable pour le projet.&lt;br /&gt;
C'est pour cela que nous passons à une autre solution ie Msys cependant nous sommes en train de faire en sorte d'avoir la bonne version des outils TCL/TK.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4: ===&lt;br /&gt;
Mise en place d'un SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5: ===&lt;br /&gt;
&lt;br /&gt;
Mise en place de multiple SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 6: ===&lt;br /&gt;
&lt;br /&gt;
Abandon du cache L2C (composant manquant).&lt;br /&gt;
&lt;br /&gt;
Compilation d'un &amp;quot;hello world&amp;quot; avec les outils et paramètres adéquats pour une architecture multicoeur.&lt;br /&gt;
&lt;br /&gt;
Épluchage des documentations afin d'établir les signaux pertinents pour réaliser des compteurs qui auront les caractéristiques suivantes:&lt;br /&gt;
&lt;br /&gt;
-une paire de compteurs pour la lecture et l'écriture en mémoire&lt;br /&gt;
&lt;br /&gt;
-3 paire de compteur (PROM, RAM et SDRAM).&lt;br /&gt;
&lt;br /&gt;
=== Semaine 7: ===&lt;br /&gt;
&lt;br /&gt;
Étude du composant contrôleur mémoire afin d'y implanter le composant. Cela nous permettra d'accéder facilement aux signaux pertinents pour le contrôle du composant. On fera en sorte d'avoir une sortie sur un GPIO.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 8: ===&lt;br /&gt;
&lt;br /&gt;
Au lieu d'essayer de comprendre comment fonctionne de manière précise l'abritrage du bus amba et comment fontionne le processus de selection d'un composant en fonction de l'adresse sur le bus, je me suis concentré sur les signaux reliées directement au mémoire (ram, rom et sdram) physique afin d'écrire mon composant.&lt;br /&gt;
&lt;br /&gt;
L'idée serait d'utiliser ces signaux et faire une sortie sur un GPIO pour connaitre son état en le visualisant sur un oscilloscope.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 9: ===&lt;br /&gt;
&lt;br /&gt;
Discussion et abandon de l'idée de la semaine 8, car une nouvelle contrainte a été fixée:&lt;br /&gt;
&lt;br /&gt;
-le résultat de chacun des compteurs devra pouvoir être accessible à des adresses mémoire sur le bus amba donc accessible par le processeur.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 10: ===&lt;br /&gt;
&lt;br /&gt;
Mise au propre du cahier des charges, et étude de la norme AMBA.&lt;br /&gt;
&lt;br /&gt;
Test grmon RCP au travers Eclipse, infructueux, car la carte n'est pas reconnue.&lt;br /&gt;
&lt;br /&gt;
== Semaine 11: ==&lt;br /&gt;
&lt;br /&gt;
Écriture d'une ébauche de composant et étude des possibilités en fonction des signaux disponible dans le contrôleur mémoire.&lt;br /&gt;
&lt;br /&gt;
== Semaine 12: ==&lt;br /&gt;
&lt;br /&gt;
Étude bibliographique (documents de Gaisler, norme AMBA).&lt;br /&gt;
&lt;br /&gt;
== Semaine 13: ==&lt;br /&gt;
&lt;br /&gt;
Rédaction du rapport et préparation à la présoutenance.&lt;br /&gt;
&lt;br /&gt;
== Semaine 14: ==&lt;br /&gt;
&lt;br /&gt;
Prise en main de ModelSim PE 10.4, pour simuler le SOC (des erreurs sont encore à régler).&lt;br /&gt;
&lt;br /&gt;
== Semaine 15: ==&lt;br /&gt;
&lt;br /&gt;
Début de l'écriture du composant:&lt;br /&gt;
- correction des incohérences du design (au niveau du déclenchement du composant)&lt;br /&gt;
- amélioration du design (réduction de largeur des bus)&lt;br /&gt;
&lt;br /&gt;
== Semaine 16: ==&lt;br /&gt;
&lt;br /&gt;
Écriture et test du composant.&lt;br /&gt;
&lt;br /&gt;
== Semaine 17: ==&lt;br /&gt;
&lt;br /&gt;
Écriture de la fonction de la reconnaissance d'écriture dans un composant surveillé.&lt;br /&gt;
&lt;br /&gt;
Écriture de la fonction permettant la reprogrammation du composant en valeur maximale. &lt;br /&gt;
&lt;br /&gt;
Documentation sur l'utilitaire Chipscope Pro et son utilisation avec la carte.&lt;br /&gt;
&lt;br /&gt;
== Semaine 18: ==&lt;br /&gt;
&lt;br /&gt;
Tentative d'utilisation de Chipscope Pro, des erreurs sont constatées (ce qui est d'ailleurs évoqué lors de la configuration dans Chipscope : &amp;quot;connection to PAD or IBUFG net can cause error in PAR&amp;quot;) (Qui provoque des erreurs lors de l'implémentation du design).&lt;br /&gt;
&lt;br /&gt;
On rajoute des bascules D afin d'éviter ces erreurs, cependant nous ne verrons que l'état des bus au moment des fronts montants ou descendants (ce que est logique, car l'on ne peut pas échantillonné avec durée inférieur à celle de l'horloge).&lt;br /&gt;
&lt;br /&gt;
L'implémentation avec est impossible à cause d'un signal &amp;quot;non existent&amp;quot;, alors que celui existe belle et bien, donc on peut confirmer le fonctionnement du composant grâce à la simulation.&lt;br /&gt;
&lt;br /&gt;
Test des commandes utiles au travers de grmon pour la version non modifiée et modifié du leon3.&lt;br /&gt;
&lt;br /&gt;
On a commencé la réflexion sur un cache l2c primitif, ce composant permettrais de fournir directement le résultat si celui-ci à déjà était réalisé auparavant (Analogie: une personne que pose deux fois de suite la même question dans un intervalle borné relativement court).&lt;br /&gt;
&lt;br /&gt;
== Semaine 19: ==&lt;br /&gt;
&lt;br /&gt;
Début du rapport final.&lt;br /&gt;
&lt;br /&gt;
Raccourcissement du code du composant.&lt;br /&gt;
&lt;br /&gt;
Écriture des signaux de sortie: hrdata, hresp et hready, des fonctions de multiplexage en sortie seront nécessaires.&lt;br /&gt;
&lt;br /&gt;
Ceci reste à confirmer grâce à un test sur la carte et/ou une simulation.&lt;br /&gt;
&lt;br /&gt;
Nous avons réussi à faire fonctionner la simulation sur Modelsim PE.&lt;br /&gt;
&lt;br /&gt;
Nous avons fait en sorte que le composant soit visible et reconnu lors de la simulation*&lt;br /&gt;
&lt;br /&gt;
*à confirmer sans les attributes keep&lt;br /&gt;
&lt;br /&gt;
== Semaine 20: ==&lt;br /&gt;
&lt;br /&gt;
à faire:&lt;br /&gt;
&lt;br /&gt;
-confirmer la présence du composant avec son compteur dans ModelSim PE&lt;br /&gt;
&lt;br /&gt;
-tester une lecture si possible dans ModelSim PE et/ou sur la carte directement, faire des corrections en cas de besoin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Début de la présentation de PFE à faire.&lt;br /&gt;
&lt;br /&gt;
== Annexes: ==&lt;br /&gt;
&lt;br /&gt;
=== Notes: ===&lt;br /&gt;
D'après la section 2.15 [3], on a la correspondance suivante:&lt;br /&gt;
GRLIB IP Cores&lt;br /&gt;
Core Vendor&lt;br /&gt;
LEON3|0x01 (ie Gaisler Research [2] p49)&lt;br /&gt;
MCTRL|0x04 (ie European Space Agency [2]p49)&lt;br /&gt;
Ce qui nous permettra d'identifier le contrôleur mémoire&lt;br /&gt;
&lt;br /&gt;
Voici quelques suggestions que l'on peut faire concernant le sniffeur de paquets:&lt;br /&gt;
&lt;br /&gt;
Pour cela on utilise très largement le document [2] (GRLIB IP Library User’s Manual)&lt;br /&gt;
&lt;br /&gt;
Lors d'une simulation du code VHDL, il est possible d'afficher le contenu du BAR (bank address registers).&lt;br /&gt;
&lt;br /&gt;
Pour ce qui de la gestion de la prochaine tache à exécuter il y a possibilité de faire en sorte que notre composant:&lt;br /&gt;
-changer la priorité du master sur le bus AMBA&lt;br /&gt;
-empêcher l'accès en dur en modifiant le comportement du contrôleur de bus (1).&lt;br /&gt;
&lt;br /&gt;
(1): Ceci ne fonctionnera que si les taches sont sur des partitions différentes et sur des processeurs indépendants.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser le composant, il est envisageable de l'intégrer directement au sein du contrôleur de mémoire.&lt;br /&gt;
&lt;br /&gt;
Celui devra donc récupérer le contenu des caches des processeurs afin de déterminé quel programme et en exécution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bibliographie: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] lien site gaisler&lt;br /&gt;
gaisler.com/index.php&lt;br /&gt;
&lt;br /&gt;
[2] lien vers GRLIB IP Library User’s Manual&lt;br /&gt;
http://www.gaisler.com/products/grlib/grlib.pdf&lt;br /&gt;
&lt;br /&gt;
[3] lien vers LEON3 GR-XC3S-1500 Template Design &lt;br /&gt;
http://www.gaisler.com/products/grlib/grip.pdf&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=16981</id>
		<title>P37 Creation d'un composant d'audit des accès cache mémoire sur un microprocesseur LEON3 simulé en FPGA</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=16981"/>
				<updated>2015-02-16T08:14:49Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* Semaine 18: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rapport de Présoutenance =&lt;br /&gt;
&lt;br /&gt;
http://projets-imasc.plil.net/mediawiki/images/0/05/Rapport_VAESSEN_presoutenance.pdf&lt;br /&gt;
&lt;br /&gt;
= Presentation du projet =&lt;br /&gt;
&lt;br /&gt;
Ce projet s'inscrit dans l'amélioration d'une solution d'IP pour un SoftCore implanté dans un FPGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
Il faudra créer un composant VHDL capable de:&lt;br /&gt;
&lt;br /&gt;
1.&lt;br /&gt;
sniffer les paquets à destination de la SDRAM/RAM (via le memory controler)&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
Vérifier le contenu du paquet savoir, le type d'accès (lecture/écriture) de la mémoire&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
compter le nombre d'accès mémoire en écriture&lt;br /&gt;
&lt;br /&gt;
4.&lt;br /&gt;
Différencier les zones mémoires qui sont accéder afin de déterminer l'application/taches qui est à l'origine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faudra aussi, faire cohabiter deux (ou plus) SoftCore Leon3 communicants sur le même bus AMBA.&lt;br /&gt;
&lt;br /&gt;
== Planning: ==&lt;br /&gt;
&lt;br /&gt;
=== Semaine 1:  ===&lt;br /&gt;
Décourverte de l'équipe et discussion concernant le projet&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2: ===&lt;br /&gt;
Mise en place des outils (cygwin64 avec &amp;quot;développement&amp;quot;) et discussion concernant les possibilités offertes concernant le bus AMBA&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3: ===&lt;br /&gt;
Après plusieurs essais d'utilisation des paquets tcl/tk fournis avec cygwin, nous nous sommes aperçus que l'environnement cygwin ne semble pas utilisable pour le projet.&lt;br /&gt;
C'est pour cela que nous passons à une autre solution ie Msys cependant nous sommes en train de faire en sorte d'avoir la bonne version des outils TCL/TK.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4: ===&lt;br /&gt;
Mise en place d'un SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5: ===&lt;br /&gt;
&lt;br /&gt;
Mise en place de multiple SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 6: ===&lt;br /&gt;
&lt;br /&gt;
Abandon du cache L2C (composant manquant).&lt;br /&gt;
&lt;br /&gt;
Compilation d'un &amp;quot;hello world&amp;quot; avec les outils et paramètres adéquats pour une architecture multicoeur.&lt;br /&gt;
&lt;br /&gt;
Épluchage des documentations afin d'établir les signaux pertinents pour réaliser des compteurs qui auront les caractéristiques suivantes:&lt;br /&gt;
&lt;br /&gt;
-une paire de compteurs pour la lecture et l'écriture en mémoire&lt;br /&gt;
&lt;br /&gt;
-3 paire de compteur (PROM, RAM et SDRAM).&lt;br /&gt;
&lt;br /&gt;
=== Semaine 7: ===&lt;br /&gt;
&lt;br /&gt;
Étude du composant contrôleur mémoire afin d'y implanter le composant. Cela nous permettra d'accéder facilement aux signaux pertinents pour le contrôle du composant. On fera en sorte d'avoir une sortie sur un GPIO.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 8: ===&lt;br /&gt;
&lt;br /&gt;
Au lieu d'essayer de comprendre comment fonctionne de manière précise l'abritrage du bus amba et comment fontionne le processus de selection d'un composant en fonction de l'adresse sur le bus, je me suis concentré sur les signaux reliées directement au mémoire (ram, rom et sdram) physique afin d'écrire mon composant.&lt;br /&gt;
&lt;br /&gt;
L'idée serait d'utiliser ces signaux et faire une sortie sur un GPIO pour connaitre son état en le visualisant sur un oscilloscope.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 9: ===&lt;br /&gt;
&lt;br /&gt;
Discussion et abandon de l'idée de la semaine 8, car une nouvelle contrainte a été fixée:&lt;br /&gt;
&lt;br /&gt;
-le résultat de chacun des compteurs devra pouvoir être accessible à des adresses mémoire sur le bus amba donc accessible par le processeur.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 10: ===&lt;br /&gt;
&lt;br /&gt;
Mise au propre du cahier des charges, et étude de la norme AMBA.&lt;br /&gt;
&lt;br /&gt;
Test grmon RCP au travers Eclipse, infructueux, car la carte n'est pas reconnue.&lt;br /&gt;
&lt;br /&gt;
== Semaine 11: ==&lt;br /&gt;
&lt;br /&gt;
Écriture d'une ébauche de composant et étude des possibilités en fonction des signaux disponible dans le contrôleur mémoire.&lt;br /&gt;
&lt;br /&gt;
== Semaine 12: ==&lt;br /&gt;
&lt;br /&gt;
Étude bibliographique (documents de Gaisler, norme AMBA).&lt;br /&gt;
&lt;br /&gt;
== Semaine 13: ==&lt;br /&gt;
&lt;br /&gt;
Rédaction du rapport et préparation à la présoutenance.&lt;br /&gt;
&lt;br /&gt;
== Semaine 14: ==&lt;br /&gt;
&lt;br /&gt;
Prise en main de ModelSim PE 10.4, pour simuler le SOC (des erreurs sont encore à régler).&lt;br /&gt;
&lt;br /&gt;
== Semaine 15: ==&lt;br /&gt;
&lt;br /&gt;
Début de l'écriture du composant:&lt;br /&gt;
- correction des incohérences du design (au niveau du déclenchement du composant)&lt;br /&gt;
- amélioration du design (réduction de largeur des bus)&lt;br /&gt;
&lt;br /&gt;
== Semaine 16: ==&lt;br /&gt;
&lt;br /&gt;
Écriture et test du composant.&lt;br /&gt;
&lt;br /&gt;
== Semaine 17: ==&lt;br /&gt;
&lt;br /&gt;
Écriture de la fonction de la reconnaissance d'écriture dans un composant surveillé.&lt;br /&gt;
&lt;br /&gt;
Écriture de la fonction permettant la reprogrammation du composant en valeur maximale. &lt;br /&gt;
&lt;br /&gt;
Documentation sur l'utilitaire Chipscope Pro et son utilisation avec la carte.&lt;br /&gt;
&lt;br /&gt;
== Semaine 18: ==&lt;br /&gt;
&lt;br /&gt;
Tentative d'utilisation de Chipscope Pro, des erreurs sont constatées (ce qui est d'ailleurs évoqué lors de la configuration dans Chipscope : &amp;quot;connection to PAD or IBUFG net can cause error in PAR&amp;quot;) (Qui provoque des erreurs lors de l'implémentation du design).&lt;br /&gt;
&lt;br /&gt;
On rajoute des bascules D afin d'éviter ces erreurs, cependant nous ne verrons que l'état des bus au moment des fronts montants ou descendants (ce que est logique, car l'on ne peut pas échantillonné avec durée inférieur à celle de l'horloge).&lt;br /&gt;
&lt;br /&gt;
L'implémentation avec est impossible à cause d'un signal &amp;quot;non existent&amp;quot;, alors que celui existe belle et bien, donc on peut confirmer le fonctionnement du composant grâce à la simulation.&lt;br /&gt;
&lt;br /&gt;
Test des commandes utiles au travers de grmon pour la version non modifiée et modifié du leon3.&lt;br /&gt;
&lt;br /&gt;
On a commencé la réflexion sur un cache l2c primitif, ce composant permettrais de fournir directement le résultat si celui-ci à déjà était réalisé auparavant (Analogie: une personne que pose deux fois de suite la même question dans un intervalle borné relativement court).&lt;br /&gt;
&lt;br /&gt;
== Semaine 19: ==&lt;br /&gt;
&lt;br /&gt;
-en cours- Début du rapport final.&lt;br /&gt;
&lt;br /&gt;
-en cours- Raccourcissement du code.&lt;br /&gt;
&lt;br /&gt;
-en cours- Écriture des signaux de sortie: hrdata, hresp et hready, des fonctions de multiplexage en sortie seront nécessaires.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
abandonné:&lt;br /&gt;
-améliorer le modèle de simulation grâce à la simulation ModelSim PE&lt;br /&gt;
&lt;br /&gt;
== Annexes: ==&lt;br /&gt;
&lt;br /&gt;
=== Notes: ===&lt;br /&gt;
D'après la section 2.15 [3], on a la correspondance suivante:&lt;br /&gt;
GRLIB IP Cores&lt;br /&gt;
Core Vendor&lt;br /&gt;
LEON3|0x01 (ie Gaisler Research [2] p49)&lt;br /&gt;
MCTRL|0x04 (ie European Space Agency [2]p49)&lt;br /&gt;
Ce qui nous permettra d'identifier le contrôleur mémoire&lt;br /&gt;
&lt;br /&gt;
Voici quelques suggestions que l'on peut faire concernant le sniffeur de paquets:&lt;br /&gt;
&lt;br /&gt;
Pour cela on utilise très largement le document [2] (GRLIB IP Library User’s Manual)&lt;br /&gt;
&lt;br /&gt;
Lors d'une simulation du code VHDL, il est possible d'afficher le contenu du BAR (bank address registers).&lt;br /&gt;
&lt;br /&gt;
Pour ce qui de la gestion de la prochaine tache à exécuter il y a possibilité de faire en sorte que notre composant:&lt;br /&gt;
-changer la priorité du master sur le bus AMBA&lt;br /&gt;
-empêcher l'accès en dur en modifiant le comportement du contrôleur de bus (1).&lt;br /&gt;
&lt;br /&gt;
(1): Ceci ne fonctionnera que si les taches sont sur des partitions différentes et sur des processeurs indépendants.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser le composant, il est envisageable de l'intégrer directement au sein du contrôleur de mémoire.&lt;br /&gt;
&lt;br /&gt;
Celui devra donc récupérer le contenu des caches des processeurs afin de déterminé quel programme et en exécution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bibliographie: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] lien site gaisler&lt;br /&gt;
gaisler.com/index.php&lt;br /&gt;
&lt;br /&gt;
[2] lien vers GRLIB IP Library User’s Manual&lt;br /&gt;
http://www.gaisler.com/products/grlib/grlib.pdf&lt;br /&gt;
&lt;br /&gt;
[3] lien vers LEON3 GR-XC3S-1500 Template Design &lt;br /&gt;
http://www.gaisler.com/products/grlib/grip.pdf&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=16572</id>
		<title>P37 Creation d'un composant d'audit des accès cache mémoire sur un microprocesseur LEON3 simulé en FPGA</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=16572"/>
				<updated>2015-02-06T14:07:13Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* Semaine 18: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rapport de Présoutenance =&lt;br /&gt;
&lt;br /&gt;
http://projets-imasc.plil.net/mediawiki/images/0/05/Rapport_VAESSEN_presoutenance.pdf&lt;br /&gt;
&lt;br /&gt;
= Presentation du projet =&lt;br /&gt;
&lt;br /&gt;
Ce projet s'inscrit dans l'amélioration d'une solution d'IP pour un SoftCore implanté dans un FPGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
Il faudra créer un composant VHDL capable de:&lt;br /&gt;
&lt;br /&gt;
1.&lt;br /&gt;
sniffer les paquets à destination de la SDRAM/RAM (via le memory controler)&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
Vérifier le contenu du paquet savoir, le type d'accès (lecture/écriture) de la mémoire&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
compter le nombre d'accès mémoire en écriture&lt;br /&gt;
&lt;br /&gt;
4.&lt;br /&gt;
Différencier les zones mémoires qui sont accéder afin de déterminer l'application/taches qui est à l'origine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faudra aussi, faire cohabiter deux (ou plus) SoftCore Leon3 communicants sur le même bus AMBA.&lt;br /&gt;
&lt;br /&gt;
== Planning: ==&lt;br /&gt;
&lt;br /&gt;
=== Semaine 1:  ===&lt;br /&gt;
Décourverte de l'équipe et discussion concernant le projet&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2: ===&lt;br /&gt;
Mise en place des outils (cygwin64 avec &amp;quot;développement&amp;quot;) et discussion concernant les possibilités offertes concernant le bus AMBA&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3: ===&lt;br /&gt;
Après plusieurs essais d'utilisation des paquets tcl/tk fournis avec cygwin, nous nous sommes aperçus que l'environnement cygwin ne semble pas utilisable pour le projet.&lt;br /&gt;
C'est pour cela que nous passons à une autre solution ie Msys cependant nous sommes en train de faire en sorte d'avoir la bonne version des outils TCL/TK.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4: ===&lt;br /&gt;
Mise en place d'un SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5: ===&lt;br /&gt;
&lt;br /&gt;
Mise en place de multiple SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 6: ===&lt;br /&gt;
&lt;br /&gt;
Abandon du cache L2C (composant manquant).&lt;br /&gt;
&lt;br /&gt;
Compilation d'un &amp;quot;hello world&amp;quot; avec les outils et paramètres adéquats pour une architecture multicoeur.&lt;br /&gt;
&lt;br /&gt;
Épluchage des documentations afin d'établir les signaux pertinents pour réaliser des compteurs qui auront les caractéristiques suivantes:&lt;br /&gt;
&lt;br /&gt;
-une paire de compteurs pour la lecture et l'écriture en mémoire&lt;br /&gt;
&lt;br /&gt;
-3 paire de compteur (PROM, RAM et SDRAM).&lt;br /&gt;
&lt;br /&gt;
=== Semaine 7: ===&lt;br /&gt;
&lt;br /&gt;
Étude du composant contrôleur mémoire afin d'y implanter le composant. Cela nous permettra d'accéder facilement aux signaux pertinents pour le contrôle du composant. On fera en sorte d'avoir une sortie sur un GPIO.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 8: ===&lt;br /&gt;
&lt;br /&gt;
Au lieu d'essayer de comprendre comment fonctionne de manière précise l'abritrage du bus amba et comment fontionne le processus de selection d'un composant en fonction de l'adresse sur le bus, je me suis concentré sur les signaux reliées directement au mémoire (ram, rom et sdram) physique afin d'écrire mon composant.&lt;br /&gt;
&lt;br /&gt;
L'idée serait d'utiliser ces signaux et faire une sortie sur un GPIO pour connaitre son état en le visualisant sur un oscilloscope.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 9: ===&lt;br /&gt;
&lt;br /&gt;
Discussion et abandon de l'idée de la semaine 8, car une nouvelle contrainte a été fixée:&lt;br /&gt;
&lt;br /&gt;
-le résultat de chacun des compteurs devra pouvoir être accessible à des adresses mémoire sur le bus amba donc accessible par le processeur.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 10: ===&lt;br /&gt;
&lt;br /&gt;
Mise au propre du cahier des charges, et étude de la norme AMBA.&lt;br /&gt;
&lt;br /&gt;
Test grmon RCP au travers Eclipse, infructueux, car la carte n'est pas reconnue.&lt;br /&gt;
&lt;br /&gt;
== Semaine 11: ==&lt;br /&gt;
&lt;br /&gt;
Écriture d'une ébauche de composant et étude des possibilités en fonction des signaux disponible dans le contrôleur mémoire.&lt;br /&gt;
&lt;br /&gt;
== Semaine 12: ==&lt;br /&gt;
&lt;br /&gt;
Étude bibliographique (documents de Gaisler, norme AMBA).&lt;br /&gt;
&lt;br /&gt;
== Semaine 13: ==&lt;br /&gt;
&lt;br /&gt;
Rédaction du rapport et préparation à la présoutenance.&lt;br /&gt;
&lt;br /&gt;
== Semaine 14: ==&lt;br /&gt;
&lt;br /&gt;
Prise en main de ModelSim PE 10.4, pour simuler le SOC (des erreurs sont encore à régler).&lt;br /&gt;
&lt;br /&gt;
== Semaine 15: ==&lt;br /&gt;
&lt;br /&gt;
Début de l'écriture du composant:&lt;br /&gt;
- correction des incohérences du design (au niveau du déclenchement du composant)&lt;br /&gt;
- amélioration du design (réduction de largeur des bus)&lt;br /&gt;
&lt;br /&gt;
== Semaine 16: ==&lt;br /&gt;
&lt;br /&gt;
Écriture et test du composant.&lt;br /&gt;
&lt;br /&gt;
== Semaine 17: ==&lt;br /&gt;
&lt;br /&gt;
Écriture de la fonction de la reconnaissance d'écriture dans un composant surveillé.&lt;br /&gt;
&lt;br /&gt;
Écriture de la fonction permettant la reprogrammation du composant en valeur maximale. &lt;br /&gt;
&lt;br /&gt;
Documentation sur l'utilitaire Chipscope Pro et son utilisation avec la carte.&lt;br /&gt;
&lt;br /&gt;
== Semaine 18: ==&lt;br /&gt;
&lt;br /&gt;
Tentative d'utilisation de Chipscope Pro, des erreurs sont constatées (ce qui est d'ailleurs évoqué lors de la configuration dans Chipscope : &amp;quot;connection to PAD or IBUFG net can cause error in PAR&amp;quot;) (Qui provoque des erreurs lors de l'implémentation du design).&lt;br /&gt;
&lt;br /&gt;
On rajoutera des bascules D afin d'éviter ces erreurs, cependant nous ne verrons que l'état des bus au moment des fronts montants ou descendants (ce que est logique, car l'on ne peut pas échantillonné avec durée inférieur à celle de l'horloge).&lt;br /&gt;
&lt;br /&gt;
Test des commandes utiles au travers de grmon pour la version non modifiée et modifié du leon3.&lt;br /&gt;
&lt;br /&gt;
On a commencé la réflexion sur un cache l2c primitif, ce composant permettrais de fournir directement le résultat si celui-ci à déjà était réalisé auparavant (Analogie: une personne que pose deux fois de suite la même question dans un intervalle borné relativement court).&lt;br /&gt;
&lt;br /&gt;
== Semaine 19: ==&lt;br /&gt;
&lt;br /&gt;
-en cours- Début du rapport final.&lt;br /&gt;
&lt;br /&gt;
-en cours- Raccourcissement du code.&lt;br /&gt;
&lt;br /&gt;
-en cours- Écriture des signaux de sortie: hrdata, hresp et hready, des fonctions de multiplexage en sortie seront nécessaires.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
abandonné:&lt;br /&gt;
-améliorer le modèle de simulation grâce à la simulation ModelSim PE&lt;br /&gt;
&lt;br /&gt;
== Annexes: ==&lt;br /&gt;
&lt;br /&gt;
=== Notes: ===&lt;br /&gt;
D'après la section 2.15 [3], on a la correspondance suivante:&lt;br /&gt;
GRLIB IP Cores&lt;br /&gt;
Core Vendor&lt;br /&gt;
LEON3|0x01 (ie Gaisler Research [2] p49)&lt;br /&gt;
MCTRL|0x04 (ie European Space Agency [2]p49)&lt;br /&gt;
Ce qui nous permettra d'identifier le contrôleur mémoire&lt;br /&gt;
&lt;br /&gt;
Voici quelques suggestions que l'on peut faire concernant le sniffeur de paquets:&lt;br /&gt;
&lt;br /&gt;
Pour cela on utilise très largement le document [2] (GRLIB IP Library User’s Manual)&lt;br /&gt;
&lt;br /&gt;
Lors d'une simulation du code VHDL, il est possible d'afficher le contenu du BAR (bank address registers).&lt;br /&gt;
&lt;br /&gt;
Pour ce qui de la gestion de la prochaine tache à exécuter il y a possibilité de faire en sorte que notre composant:&lt;br /&gt;
-changer la priorité du master sur le bus AMBA&lt;br /&gt;
-empêcher l'accès en dur en modifiant le comportement du contrôleur de bus (1).&lt;br /&gt;
&lt;br /&gt;
(1): Ceci ne fonctionnera que si les taches sont sur des partitions différentes et sur des processeurs indépendants.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser le composant, il est envisageable de l'intégrer directement au sein du contrôleur de mémoire.&lt;br /&gt;
&lt;br /&gt;
Celui devra donc récupérer le contenu des caches des processeurs afin de déterminé quel programme et en exécution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bibliographie: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] lien site gaisler&lt;br /&gt;
gaisler.com/index.php&lt;br /&gt;
&lt;br /&gt;
[2] lien vers GRLIB IP Library User’s Manual&lt;br /&gt;
http://www.gaisler.com/products/grlib/grlib.pdf&lt;br /&gt;
&lt;br /&gt;
[3] lien vers LEON3 GR-XC3S-1500 Template Design &lt;br /&gt;
http://www.gaisler.com/products/grlib/grip.pdf&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=16275</id>
		<title>P37 Creation d'un composant d'audit des accès cache mémoire sur un microprocesseur LEON3 simulé en FPGA</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=16275"/>
				<updated>2015-01-30T17:14:01Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* Semaine 17: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rapport de Présoutenance =&lt;br /&gt;
&lt;br /&gt;
http://projets-imasc.plil.net/mediawiki/images/0/05/Rapport_VAESSEN_presoutenance.pdf&lt;br /&gt;
&lt;br /&gt;
= Presentation du projet =&lt;br /&gt;
&lt;br /&gt;
Ce projet s'inscrit dans l'amélioration d'une solution d'IP pour un SoftCore implanté dans un FPGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
Il faudra créer un composant VHDL capable de:&lt;br /&gt;
&lt;br /&gt;
1.&lt;br /&gt;
sniffer les paquets à destination de la SDRAM/RAM (via le memory controler)&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
Vérifier le contenu du paquet savoir, le type d'accès (lecture/écriture) de la mémoire&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
compter le nombre d'accès mémoire en écriture&lt;br /&gt;
&lt;br /&gt;
4.&lt;br /&gt;
Différencier les zones mémoires qui sont accéder afin de déterminer l'application/taches qui est à l'origine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faudra aussi, faire cohabiter deux (ou plus) SoftCore Leon3 communicants sur le même bus AMBA.&lt;br /&gt;
&lt;br /&gt;
== Planning: ==&lt;br /&gt;
&lt;br /&gt;
=== Semaine 1:  ===&lt;br /&gt;
Décourverte de l'équipe et discussion concernant le projet&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2: ===&lt;br /&gt;
Mise en place des outils (cygwin64 avec &amp;quot;développement&amp;quot;) et discussion concernant les possibilités offertes concernant le bus AMBA&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3: ===&lt;br /&gt;
Après plusieurs essais d'utilisation des paquets tcl/tk fournis avec cygwin, nous nous sommes aperçus que l'environnement cygwin ne semble pas utilisable pour le projet.&lt;br /&gt;
C'est pour cela que nous passons à une autre solution ie Msys cependant nous sommes en train de faire en sorte d'avoir la bonne version des outils TCL/TK.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4: ===&lt;br /&gt;
Mise en place d'un SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5: ===&lt;br /&gt;
&lt;br /&gt;
Mise en place de multiple SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 6: ===&lt;br /&gt;
&lt;br /&gt;
Abandon du cache L2C (composant manquant).&lt;br /&gt;
&lt;br /&gt;
Compilation d'un &amp;quot;hello world&amp;quot; avec les outils et paramètres adéquats pour une architecture multicoeur.&lt;br /&gt;
&lt;br /&gt;
Épluchage des documentations afin d'établir les signaux pertinents pour réaliser des compteurs qui auront les caractéristiques suivantes:&lt;br /&gt;
&lt;br /&gt;
-une paire de compteurs pour la lecture et l'écriture en mémoire&lt;br /&gt;
&lt;br /&gt;
-3 paire de compteur (PROM, RAM et SDRAM).&lt;br /&gt;
&lt;br /&gt;
=== Semaine 7: ===&lt;br /&gt;
&lt;br /&gt;
Étude du composant contrôleur mémoire afin d'y implanter le composant. Cela nous permettra d'accéder facilement aux signaux pertinents pour le contrôle du composant. On fera en sorte d'avoir une sortie sur un GPIO.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 8: ===&lt;br /&gt;
&lt;br /&gt;
Au lieu d'essayer de comprendre comment fonctionne de manière précise l'abritrage du bus amba et comment fontionne le processus de selection d'un composant en fonction de l'adresse sur le bus, je me suis concentré sur les signaux reliées directement au mémoire (ram, rom et sdram) physique afin d'écrire mon composant.&lt;br /&gt;
&lt;br /&gt;
L'idée serait d'utiliser ces signaux et faire une sortie sur un GPIO pour connaitre son état en le visualisant sur un oscilloscope.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 9: ===&lt;br /&gt;
&lt;br /&gt;
Discussion et abandon de l'idée de la semaine 8, car une nouvelle contrainte a été fixée:&lt;br /&gt;
&lt;br /&gt;
-le résultat de chacun des compteurs devra pouvoir être accessible à des adresses mémoire sur le bus amba donc accessible par le processeur.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 10: ===&lt;br /&gt;
&lt;br /&gt;
Mise au propre du cahier des charges, et étude de la norme AMBA.&lt;br /&gt;
&lt;br /&gt;
Test grmon RCP au travers Eclipse, infructueux, car la carte n'est pas reconnue.&lt;br /&gt;
&lt;br /&gt;
== Semaine 11: ==&lt;br /&gt;
&lt;br /&gt;
Écriture d'une ébauche de composant et étude des possibilités en fonction des signaux disponible dans le contrôleur mémoire.&lt;br /&gt;
&lt;br /&gt;
== Semaine 12: ==&lt;br /&gt;
&lt;br /&gt;
Étude bibliographique (documents de Gaisler, norme AMBA).&lt;br /&gt;
&lt;br /&gt;
== Semaine 13: ==&lt;br /&gt;
&lt;br /&gt;
Rédaction du rapport et préparation à la présoutenance.&lt;br /&gt;
&lt;br /&gt;
== Semaine 14: ==&lt;br /&gt;
&lt;br /&gt;
Prise en main de ModelSim PE 10.4, pour simuler le SOC (des erreurs sont encore à régler).&lt;br /&gt;
&lt;br /&gt;
== Semaine 15: ==&lt;br /&gt;
&lt;br /&gt;
Début de l'écriture du composant:&lt;br /&gt;
- correction des incohérences du design (au niveau du déclenchement du composant)&lt;br /&gt;
- amélioration du design (réduction de largeur des bus)&lt;br /&gt;
&lt;br /&gt;
== Semaine 16: ==&lt;br /&gt;
&lt;br /&gt;
Écriture et test du composant.&lt;br /&gt;
&lt;br /&gt;
== Semaine 17: ==&lt;br /&gt;
&lt;br /&gt;
Écriture de la fonction de la reconnaissance d'écriture dans un composant surveillé.&lt;br /&gt;
&lt;br /&gt;
Écriture de la fonction permettant la reprogrammation du composant en valeur maximale. &lt;br /&gt;
&lt;br /&gt;
Documentation sur l'utilitaire Chipscope Pro et son utilisation avec la carte.&lt;br /&gt;
&lt;br /&gt;
-en cours- Écriture des signaux de sortie: hrdata, hresp et hready, des fonctions de multiplexage en sortie seront nécessaires.&lt;br /&gt;
&lt;br /&gt;
TODO:&lt;br /&gt;
-améliorer le modèle de simulation grâce à la simulation ModelSim PE&lt;br /&gt;
&lt;br /&gt;
== Annexes: ==&lt;br /&gt;
&lt;br /&gt;
=== Notes: ===&lt;br /&gt;
D'après la section 2.15 [3], on a la correspondance suivante:&lt;br /&gt;
GRLIB IP Cores&lt;br /&gt;
Core Vendor&lt;br /&gt;
LEON3|0x01 (ie Gaisler Research [2] p49)&lt;br /&gt;
MCTRL|0x04 (ie European Space Agency [2]p49)&lt;br /&gt;
Ce qui nous permettra d'identifier le contrôleur mémoire&lt;br /&gt;
&lt;br /&gt;
Voici quelques suggestions que l'on peut faire concernant le sniffeur de paquets:&lt;br /&gt;
&lt;br /&gt;
Pour cela on utilise très largement le document [2] (GRLIB IP Library User’s Manual)&lt;br /&gt;
&lt;br /&gt;
Lors d'une simulation du code VHDL, il est possible d'afficher le contenu du BAR (bank address registers).&lt;br /&gt;
&lt;br /&gt;
Pour ce qui de la gestion de la prochaine tache à exécuter il y a possibilité de faire en sorte que notre composant:&lt;br /&gt;
-changer la priorité du master sur le bus AMBA&lt;br /&gt;
-empêcher l'accès en dur en modifiant le comportement du contrôleur de bus (1).&lt;br /&gt;
&lt;br /&gt;
(1): Ceci ne fonctionnera que si les taches sont sur des partitions différentes et sur des processeurs indépendants.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser le composant, il est envisageable de l'intégrer directement au sein du contrôleur de mémoire.&lt;br /&gt;
&lt;br /&gt;
Celui devra donc récupérer le contenu des caches des processeurs afin de déterminé quel programme et en exécution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bibliographie: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] lien site gaisler&lt;br /&gt;
gaisler.com/index.php&lt;br /&gt;
&lt;br /&gt;
[2] lien vers GRLIB IP Library User’s Manual&lt;br /&gt;
http://www.gaisler.com/products/grlib/grlib.pdf&lt;br /&gt;
&lt;br /&gt;
[3] lien vers LEON3 GR-XC3S-1500 Template Design &lt;br /&gt;
http://www.gaisler.com/products/grlib/grip.pdf&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=15420</id>
		<title>P37 Creation d'un composant d'audit des accès cache mémoire sur un microprocesseur LEON3 simulé en FPGA</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=15420"/>
				<updated>2015-01-25T10:21:24Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* Semaine 12: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rapport de Présoutenance =&lt;br /&gt;
&lt;br /&gt;
http://projets-imasc.plil.net/mediawiki/images/0/05/Rapport_VAESSEN_presoutenance.pdf&lt;br /&gt;
&lt;br /&gt;
= Presentation du projet =&lt;br /&gt;
&lt;br /&gt;
Ce projet s'inscrit dans l'amélioration d'une solution d'IP pour un SoftCore implanté dans un FPGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
Il faudra créer un composant VHDL capable de:&lt;br /&gt;
&lt;br /&gt;
1.&lt;br /&gt;
sniffer les paquets à destination de la SDRAM/RAM (via le memory controler)&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
Vérifier le contenu du paquet savoir, le type d'accès (lecture/écriture) de la mémoire&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
compter le nombre d'accès mémoire en écriture&lt;br /&gt;
&lt;br /&gt;
4.&lt;br /&gt;
Différencier les zones mémoires qui sont accéder afin de déterminer l'application/taches qui est à l'origine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faudra aussi, faire cohabiter deux (ou plus) SoftCore Leon3 communicants sur le même bus AMBA.&lt;br /&gt;
&lt;br /&gt;
== Planning: ==&lt;br /&gt;
&lt;br /&gt;
=== Semaine 1:  ===&lt;br /&gt;
Décourverte de l'équipe et discussion concernant le projet&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2: ===&lt;br /&gt;
Mise en place des outils (cygwin64 avec &amp;quot;développement&amp;quot;) et discussion concernant les possibilités offertes concernant le bus AMBA&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3: ===&lt;br /&gt;
Après plusieurs essais d'utilisation des paquets tcl/tk fournis avec cygwin, nous nous sommes aperçus que l'environnement cygwin ne semble pas utilisable pour le projet.&lt;br /&gt;
C'est pour cela que nous passons à une autre solution ie Msys cependant nous sommes en train de faire en sorte d'avoir la bonne version des outils TCL/TK.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4: ===&lt;br /&gt;
Mise en place d'un SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5: ===&lt;br /&gt;
&lt;br /&gt;
Mise en place de multiple SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 6: ===&lt;br /&gt;
&lt;br /&gt;
Abandon du cache L2C (composant manquant).&lt;br /&gt;
&lt;br /&gt;
Compilation d'un &amp;quot;hello world&amp;quot; avec les outils et paramètres adéquats pour une architecture multicoeur.&lt;br /&gt;
&lt;br /&gt;
Épluchage des documentations afin d'établir les signaux pertinents pour réaliser des compteurs qui auront les caractéristiques suivantes:&lt;br /&gt;
&lt;br /&gt;
-une paire de compteurs pour la lecture et l'écriture en mémoire&lt;br /&gt;
&lt;br /&gt;
-3 paire de compteur (PROM, RAM et SDRAM).&lt;br /&gt;
&lt;br /&gt;
=== Semaine 7: ===&lt;br /&gt;
&lt;br /&gt;
Étude du composant contrôleur mémoire afin d'y implanter le composant. Cela nous permettra d'accéder facilement aux signaux pertinents pour le contrôle du composant. On fera en sorte d'avoir une sortie sur un GPIO.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 8: ===&lt;br /&gt;
&lt;br /&gt;
Au lieu d'essayer de comprendre comment fonctionne de manière précise l'abritrage du bus amba et comment fontionne le processus de selection d'un composant en fonction de l'adresse sur le bus, je me suis concentré sur les signaux reliées directement au mémoire (ram, rom et sdram) physique afin d'écrire mon composant.&lt;br /&gt;
&lt;br /&gt;
L'idée serait d'utiliser ces signaux et faire une sortie sur un GPIO pour connaitre son état en le visualisant sur un oscilloscope.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 9: ===&lt;br /&gt;
&lt;br /&gt;
Discussion et abandon de l'idée de la semaine 8, car une nouvelle contrainte a été fixée:&lt;br /&gt;
&lt;br /&gt;
-le résultat de chacun des compteurs devra pouvoir être accessible à des adresses mémoire sur le bus amba donc accessible par le processeur.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 10: ===&lt;br /&gt;
&lt;br /&gt;
Mise au propre du cahier des charges, et étude de la norme AMBA.&lt;br /&gt;
&lt;br /&gt;
Test grmon RCP au travers Eclipse, infructueux, car la carte n'est pas reconnue.&lt;br /&gt;
&lt;br /&gt;
== Semaine 11: ==&lt;br /&gt;
&lt;br /&gt;
Écriture d'une ébauche de composant et étude des possibilités en fonction des signaux disponible dans le contrôleur mémoire.&lt;br /&gt;
&lt;br /&gt;
== Semaine 12: ==&lt;br /&gt;
&lt;br /&gt;
Étude bibliographique (documents de Gaisler, norme AMBA).&lt;br /&gt;
&lt;br /&gt;
== Semaine 13: ==&lt;br /&gt;
&lt;br /&gt;
Rédaction du rapport et préparation à la présoutenance.&lt;br /&gt;
&lt;br /&gt;
== Semaine 14: ==&lt;br /&gt;
&lt;br /&gt;
Prise en main de ModelSim PE 10.4, pour simuler le SOC (des erreurs sont encore à régler).&lt;br /&gt;
&lt;br /&gt;
== Semaine 15: ==&lt;br /&gt;
&lt;br /&gt;
Début de l'écriture du composant:&lt;br /&gt;
- correction des incohérences du design (au niveau du déclenchement du composant)&lt;br /&gt;
- amélioration du design (réduction de largeur des bus)&lt;br /&gt;
&lt;br /&gt;
== Semaine 16: ==&lt;br /&gt;
&lt;br /&gt;
Écriture et test du composant.&lt;br /&gt;
&lt;br /&gt;
TODO:&lt;br /&gt;
-améliorer le modèle de simulation grâce à la simulation ModelSim PE&lt;br /&gt;
&lt;br /&gt;
== Annexes: ==&lt;br /&gt;
&lt;br /&gt;
=== Notes: ===&lt;br /&gt;
D'après la section 2.15 [3], on a la correspondance suivante:&lt;br /&gt;
GRLIB IP Cores&lt;br /&gt;
Core Vendor&lt;br /&gt;
LEON3|0x01 (ie Gaisler Research [2] p49)&lt;br /&gt;
MCTRL|0x04 (ie European Space Agency [2]p49)&lt;br /&gt;
Ce qui nous permettra d'identifier le contrôleur mémoire&lt;br /&gt;
&lt;br /&gt;
Voici quelques suggestions que l'on peut faire concernant le sniffeur de paquets:&lt;br /&gt;
&lt;br /&gt;
Pour cela on utilise très largement le document [2] (GRLIB IP Library User’s Manual)&lt;br /&gt;
&lt;br /&gt;
Lors d'une simulation du code VHDL, il est possible d'afficher le contenu du BAR (bank address registers).&lt;br /&gt;
&lt;br /&gt;
Pour ce qui de la gestion de la prochaine tache à exécuter il y a possibilité de faire en sorte que notre composant:&lt;br /&gt;
-changer la priorité du master sur le bus AMBA&lt;br /&gt;
-empêcher l'accès en dur en modifiant le comportement du contrôleur de bus (1).&lt;br /&gt;
&lt;br /&gt;
(1): Ceci ne fonctionnera que si les taches sont sur des partitions différentes et sur des processeurs indépendants.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser le composant, il est envisageable de l'intégrer directement au sein du contrôleur de mémoire.&lt;br /&gt;
&lt;br /&gt;
Celui devra donc récupérer le contenu des caches des processeurs afin de déterminé quel programme et en exécution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bibliographie: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] lien site gaisler&lt;br /&gt;
gaisler.com/index.php&lt;br /&gt;
&lt;br /&gt;
[2] lien vers GRLIB IP Library User’s Manual&lt;br /&gt;
http://www.gaisler.com/products/grlib/grlib.pdf&lt;br /&gt;
&lt;br /&gt;
[3] lien vers LEON3 GR-XC3S-1500 Template Design &lt;br /&gt;
http://www.gaisler.com/products/grlib/grip.pdf&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=15419</id>
		<title>P37 Creation d'un composant d'audit des accès cache mémoire sur un microprocesseur LEON3 simulé en FPGA</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=15419"/>
				<updated>2015-01-25T10:21:05Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* Semaine 10: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rapport de Présoutenance =&lt;br /&gt;
&lt;br /&gt;
http://projets-imasc.plil.net/mediawiki/images/0/05/Rapport_VAESSEN_presoutenance.pdf&lt;br /&gt;
&lt;br /&gt;
= Presentation du projet =&lt;br /&gt;
&lt;br /&gt;
Ce projet s'inscrit dans l'amélioration d'une solution d'IP pour un SoftCore implanté dans un FPGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
Il faudra créer un composant VHDL capable de:&lt;br /&gt;
&lt;br /&gt;
1.&lt;br /&gt;
sniffer les paquets à destination de la SDRAM/RAM (via le memory controler)&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
Vérifier le contenu du paquet savoir, le type d'accès (lecture/écriture) de la mémoire&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
compter le nombre d'accès mémoire en écriture&lt;br /&gt;
&lt;br /&gt;
4.&lt;br /&gt;
Différencier les zones mémoires qui sont accéder afin de déterminer l'application/taches qui est à l'origine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faudra aussi, faire cohabiter deux (ou plus) SoftCore Leon3 communicants sur le même bus AMBA.&lt;br /&gt;
&lt;br /&gt;
== Planning: ==&lt;br /&gt;
&lt;br /&gt;
=== Semaine 1:  ===&lt;br /&gt;
Décourverte de l'équipe et discussion concernant le projet&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2: ===&lt;br /&gt;
Mise en place des outils (cygwin64 avec &amp;quot;développement&amp;quot;) et discussion concernant les possibilités offertes concernant le bus AMBA&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3: ===&lt;br /&gt;
Après plusieurs essais d'utilisation des paquets tcl/tk fournis avec cygwin, nous nous sommes aperçus que l'environnement cygwin ne semble pas utilisable pour le projet.&lt;br /&gt;
C'est pour cela que nous passons à une autre solution ie Msys cependant nous sommes en train de faire en sorte d'avoir la bonne version des outils TCL/TK.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4: ===&lt;br /&gt;
Mise en place d'un SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5: ===&lt;br /&gt;
&lt;br /&gt;
Mise en place de multiple SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 6: ===&lt;br /&gt;
&lt;br /&gt;
Abandon du cache L2C (composant manquant).&lt;br /&gt;
&lt;br /&gt;
Compilation d'un &amp;quot;hello world&amp;quot; avec les outils et paramètres adéquats pour une architecture multicoeur.&lt;br /&gt;
&lt;br /&gt;
Épluchage des documentations afin d'établir les signaux pertinents pour réaliser des compteurs qui auront les caractéristiques suivantes:&lt;br /&gt;
&lt;br /&gt;
-une paire de compteurs pour la lecture et l'écriture en mémoire&lt;br /&gt;
&lt;br /&gt;
-3 paire de compteur (PROM, RAM et SDRAM).&lt;br /&gt;
&lt;br /&gt;
=== Semaine 7: ===&lt;br /&gt;
&lt;br /&gt;
Étude du composant contrôleur mémoire afin d'y implanter le composant. Cela nous permettra d'accéder facilement aux signaux pertinents pour le contrôle du composant. On fera en sorte d'avoir une sortie sur un GPIO.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 8: ===&lt;br /&gt;
&lt;br /&gt;
Au lieu d'essayer de comprendre comment fonctionne de manière précise l'abritrage du bus amba et comment fontionne le processus de selection d'un composant en fonction de l'adresse sur le bus, je me suis concentré sur les signaux reliées directement au mémoire (ram, rom et sdram) physique afin d'écrire mon composant.&lt;br /&gt;
&lt;br /&gt;
L'idée serait d'utiliser ces signaux et faire une sortie sur un GPIO pour connaitre son état en le visualisant sur un oscilloscope.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 9: ===&lt;br /&gt;
&lt;br /&gt;
Discussion et abandon de l'idée de la semaine 8, car une nouvelle contrainte a été fixée:&lt;br /&gt;
&lt;br /&gt;
-le résultat de chacun des compteurs devra pouvoir être accessible à des adresses mémoire sur le bus amba donc accessible par le processeur.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 10: ===&lt;br /&gt;
&lt;br /&gt;
Mise au propre du cahier des charges, et étude de la norme AMBA.&lt;br /&gt;
&lt;br /&gt;
Test grmon RCP au travers Eclipse, infructueux, car la carte n'est pas reconnue.&lt;br /&gt;
&lt;br /&gt;
== Semaine 11: ==&lt;br /&gt;
&lt;br /&gt;
Écriture d'une ébauche de composant et étude des possibilités en fonction des signaux disponible dans le contrôleur mémoire.&lt;br /&gt;
&lt;br /&gt;
== Semaine 12: ==&lt;br /&gt;
&lt;br /&gt;
Étude bibliographique (documents de Gaisler, norme AMBA).&lt;br /&gt;
&lt;br /&gt;
=== Semaine 13: ===&lt;br /&gt;
&lt;br /&gt;
Rédaction du rapport et préparation à la présoutenance.&lt;br /&gt;
&lt;br /&gt;
== Semaine 14: ==&lt;br /&gt;
&lt;br /&gt;
Prise en main de ModelSim PE 10.4, pour simuler le SOC (des erreurs sont encore à régler).&lt;br /&gt;
&lt;br /&gt;
== Semaine 15: ==&lt;br /&gt;
&lt;br /&gt;
Début de l'écriture du composant:&lt;br /&gt;
- correction des incohérences du design (au niveau du déclenchement du composant)&lt;br /&gt;
- amélioration du design (réduction de largeur des bus)&lt;br /&gt;
&lt;br /&gt;
== Semaine 16: ==&lt;br /&gt;
&lt;br /&gt;
Écriture et test du composant.&lt;br /&gt;
&lt;br /&gt;
TODO:&lt;br /&gt;
-améliorer le modèle de simulation grâce à la simulation ModelSim PE&lt;br /&gt;
&lt;br /&gt;
== Annexes: ==&lt;br /&gt;
&lt;br /&gt;
=== Notes: ===&lt;br /&gt;
D'après la section 2.15 [3], on a la correspondance suivante:&lt;br /&gt;
GRLIB IP Cores&lt;br /&gt;
Core Vendor&lt;br /&gt;
LEON3|0x01 (ie Gaisler Research [2] p49)&lt;br /&gt;
MCTRL|0x04 (ie European Space Agency [2]p49)&lt;br /&gt;
Ce qui nous permettra d'identifier le contrôleur mémoire&lt;br /&gt;
&lt;br /&gt;
Voici quelques suggestions que l'on peut faire concernant le sniffeur de paquets:&lt;br /&gt;
&lt;br /&gt;
Pour cela on utilise très largement le document [2] (GRLIB IP Library User’s Manual)&lt;br /&gt;
&lt;br /&gt;
Lors d'une simulation du code VHDL, il est possible d'afficher le contenu du BAR (bank address registers).&lt;br /&gt;
&lt;br /&gt;
Pour ce qui de la gestion de la prochaine tache à exécuter il y a possibilité de faire en sorte que notre composant:&lt;br /&gt;
-changer la priorité du master sur le bus AMBA&lt;br /&gt;
-empêcher l'accès en dur en modifiant le comportement du contrôleur de bus (1).&lt;br /&gt;
&lt;br /&gt;
(1): Ceci ne fonctionnera que si les taches sont sur des partitions différentes et sur des processeurs indépendants.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser le composant, il est envisageable de l'intégrer directement au sein du contrôleur de mémoire.&lt;br /&gt;
&lt;br /&gt;
Celui devra donc récupérer le contenu des caches des processeurs afin de déterminé quel programme et en exécution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bibliographie: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] lien site gaisler&lt;br /&gt;
gaisler.com/index.php&lt;br /&gt;
&lt;br /&gt;
[2] lien vers GRLIB IP Library User’s Manual&lt;br /&gt;
http://www.gaisler.com/products/grlib/grlib.pdf&lt;br /&gt;
&lt;br /&gt;
[3] lien vers LEON3 GR-XC3S-1500 Template Design &lt;br /&gt;
http://www.gaisler.com/products/grlib/grip.pdf&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Rapport_VAESSEN_presoutenance.pdf&amp;diff=15244</id>
		<title>Fichier:Rapport VAESSEN presoutenance.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Rapport_VAESSEN_presoutenance.pdf&amp;diff=15244"/>
				<updated>2014-12-17T21:25:17Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : a téléversé une nouvelle version de « Fichier:Rapport VAESSEN presoutenance.pdf » : Révision numéro 2 du rapport de présoutenance VAESSEN IMA5 2014-2015&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Rapport Présoutenance PFE VAESSEN IMA5 SC 2014-2015&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Projets_IMA5_2014/2015&amp;diff=15111</id>
		<title>Projets IMA5 2014/2015</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Projets_IMA5_2014/2015&amp;diff=15111"/>
				<updated>2014-12-17T05:36:55Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* Répartition des binômes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Merci de référencer vos pages de projets ici. Merci aussi d'uniformiser vos formats que ce soit en regardant la présentation des projets déjà créés ou en allant modifier le format des précédents si votre façon de faire vous semble la meilleure. Dans tous les cas un minimum de communication entre les binômes est conseillée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Projet&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Elèves&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Encadrant Ecole&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Rapport décembre&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[P1 Modélisation et commande de l'auto-ignition d'un moteur HCCI]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Moulé Alexandre / Taché Clément &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; Anne-Lise Gehin / Jean-Yves Dieulot &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P5 Filtrage des indicateurs numériques de diagnostic]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; ZIOU Ismaïl / HAMZAOUI Oussama &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Belkacem Ould Bouamama &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[P6 Gestion des flux thermiques du bâtiment Polytech]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Florian Royer / Zohour Assaieb &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; Belkacem Ould Bouamama &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P7 Utilisation d'un Robot Nao pour les enfants autistes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Rodriguez Loïc/Ismaïl Tahry&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; GAPAS/Laurent Grisoni &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P8 Pilulier]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Alexandre Mercier / Emile Pinet&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Thomas VANTROYS / Alexandre BOE &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P9 Agenda pour personnes non lectrices]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Cédric DESPREZ &amp;amp; Soufiane HADDAOUI &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; GAPAS/Laurent Grisoni &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P11 Détecteur d'obstacles pour fauteuils électriques]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Geoffrey ROSE / Marjorie TIXIER &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; GAPAS / Blaise Conrard &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P12 Automatiser à l'aide d'une interface LabView la procédure de mesure de conductivité électrique d'un alternateur à griffes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Hugo FONDU &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Abdelkader Benabou &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P13 Construction d'un support motorisé pour la réalisation des essais de décharges électrostatique]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; JEBBARI Zineb / BEKRAOUI Oumaima &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Nathalie Rolland &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:rapportJebbek.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P21 Balise Bluetooth Low Energy]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Kévin CHALONO / Armagan YAMNAZ&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Thomas VANTROYS &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[ Fichier:ProjetBLE 1 pdf.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P22 Google Glass en logistique ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Jérémy Gondry / Vincent Meunier &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Laurent Grisoni &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P24 Robot de surveillance domestique]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Sébastien DELTOMBE &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Xavier Redon &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P25 SmartMeter]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Thomas Ederlé / Sylvain Fossaert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Guillaume Renault / Xavier Redon / Alexandre Boé &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P26 Vehicule Electrique ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Smain Labdouni / Adnane Jaoui &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Arnaud Chielens / Philippe Delarue &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P27 Controle Direct de Puissance d'un Convertisseur Matriciel ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Quentin Pesqueux / Nicolas Alexandre &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Philippe Delarue &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P28 Modélisation d'un robot chirurgical déformable pour la simulation et le contrôle]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Charlotte BRICOUT / Nathan MARTIN &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Jérémie DEQUIDT&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P33 Ligthing contactless / &amp;quot;wireless&amp;quot;]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Benjamin Lafit &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Alexandre Boé &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P37 Creation d'un composant d'audit des accès cache mémoire sur un microprocesseur LEON3 simulé en FPGA ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Jérôme Vaessen &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Julien Cartigny / Pierrick Buret &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:Rapport_VAESSEN_presoutenance.pdf]] &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P44 Création d'un systeme domotique sans fil ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Benoit MALIAR / Thomas MAURICE&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Pierrick BURET / Thomas VANTROYS  &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P45 Aide à la navigation d'un véhicule autonome]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Pierre APPERCÉ&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Rochdi MERZOUKI &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P46 Simulation Temps Réel d'un Environnement de Robots Autonomes Logisticiens]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Valentin VERGEZ&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Rochdi MERZOUKI &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P57 CHRU Lille : Smart Picking]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Mathieu Bossennec / Florian Caron&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Gwénaëlle Maton / Alexandre Boé / Thomas Vantroys &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P59 Assistance globale pour aide au parking]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Mathieu GERIER / Céline LY &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Alexandre BOE / Thomas VANTROYS &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=15110</id>
		<title>P37 Creation d'un composant d'audit des accès cache mémoire sur un microprocesseur LEON3 simulé en FPGA</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=15110"/>
				<updated>2014-12-17T05:31:06Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* Presentation du projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Rapport de Présoutenance =&lt;br /&gt;
&lt;br /&gt;
http://projets-imasc.plil.net/mediawiki/images/0/05/Rapport_VAESSEN_presoutenance.pdf&lt;br /&gt;
&lt;br /&gt;
= Presentation du projet =&lt;br /&gt;
&lt;br /&gt;
Ce projet s'inscrit dans l'amélioration d'une solution d'IP pour un SoftCore implanté dans un FPGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
Il faudra créer un composant VHDL capable de:&lt;br /&gt;
&lt;br /&gt;
1.&lt;br /&gt;
sniffer les paquets à destination de la SDRAM/RAM (via le memory controler)&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
Vérifier le contenu du paquet savoir, le type d'accès (lecture/écriture) de la mémoire&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
compter le nombre d'accès mémoire en écriture&lt;br /&gt;
&lt;br /&gt;
4.&lt;br /&gt;
Différencier les zones mémoires qui sont accéder afin de déterminer l'application/taches qui est à l'origine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faudra aussi, faire cohabiter deux (ou plus) SoftCore Leon3 communicants sur le même bus AMBA.&lt;br /&gt;
&lt;br /&gt;
== Planning: ==&lt;br /&gt;
&lt;br /&gt;
=== Semaine 1:  ===&lt;br /&gt;
Décourverte de l'équipe et discussion concernant le projet&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2: ===&lt;br /&gt;
Mise en place des outils (cygwin64 avec &amp;quot;développement&amp;quot;) et discussion concernant les possibilités offertes concernant le bus AMBA&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3: ===&lt;br /&gt;
Après plusieurs essais d'utilisation des paquets tcl/tk fournis avec cygwin, nous nous sommes aperçus que l'environnement cygwin ne semble pas utilisable pour le projet.&lt;br /&gt;
C'est pour cela que nous passons à une autre solution ie Msys cependant nous sommes en train de faire en sorte d'avoir la bonne version des outils TCL/TK.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4: ===&lt;br /&gt;
Mise en place d'un SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5: ===&lt;br /&gt;
&lt;br /&gt;
Mise en place de multiple SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 6: ===&lt;br /&gt;
&lt;br /&gt;
Abandon du cache L2C (composant manquant).&lt;br /&gt;
&lt;br /&gt;
Compilation d'un &amp;quot;hello world&amp;quot; avec les outils et paramètres adéquats pour une architecture multicoeur.&lt;br /&gt;
&lt;br /&gt;
Épluchage des documentations afin d'établir les signaux pertinents pour réaliser des compteurs qui auront les caractéristiques suivantes:&lt;br /&gt;
&lt;br /&gt;
-une paire de compteurs pour la lecture et l'écriture en mémoire&lt;br /&gt;
&lt;br /&gt;
-3 paire de compteur (PROM, RAM et SDRAM).&lt;br /&gt;
&lt;br /&gt;
=== Semaine 7: ===&lt;br /&gt;
&lt;br /&gt;
Étude du composant contrôleur mémoire afin d'y implanter le composant. Cela nous permettra d'accéder facilement aux signaux pertinents pour le contrôle du composant. On fera en sorte d'avoir une sortie sur un GPIO.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 8: ===&lt;br /&gt;
&lt;br /&gt;
Au lieu d'essayer de comprendre comment fonctionne de manière précise l'abritrage du bus amba et comment fontionne le processus de selection d'un composant en fonction de l'adresse sur le bus, je me suis concentré sur les signaux reliées directement au mémoire (ram, rom et sdram) physique afin d'écrire mon composant.&lt;br /&gt;
&lt;br /&gt;
L'idée serait d'utiliser ces signaux et faire une sortie sur un GPIO pour connaitre son état en le visualisant sur un oscilloscope.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 9: ===&lt;br /&gt;
&lt;br /&gt;
Discussion et abandon de l'idée de la semaine 8, car une nouvelle contrainte a été fixée:&lt;br /&gt;
&lt;br /&gt;
-le résultat de chacun des compteurs devra pouvoir être accessible à des adresses mémoire sur le bus amba donc accessible par le processeur.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 10: ===&lt;br /&gt;
&lt;br /&gt;
(En cours: Mise au propre du cahier des charges)&lt;br /&gt;
&lt;br /&gt;
== Annexes: ==&lt;br /&gt;
&lt;br /&gt;
=== Notes: ===&lt;br /&gt;
D'après la section 2.15 [3], on a la correspondance suivante:&lt;br /&gt;
GRLIB IP Cores&lt;br /&gt;
Core Vendor&lt;br /&gt;
LEON3|0x01 (ie Gaisler Research [2] p49)&lt;br /&gt;
MCTRL|0x04 (ie European Space Agency [2]p49)&lt;br /&gt;
Ce qui nous permettra d'identifier le contrôleur mémoire&lt;br /&gt;
&lt;br /&gt;
Voici quelques suggestions que l'on peut faire concernant le sniffeur de paquets:&lt;br /&gt;
&lt;br /&gt;
Pour cela on utilise très largement le document [2] (GRLIB IP Library User’s Manual)&lt;br /&gt;
&lt;br /&gt;
Lors d'une simulation du code VHDL, il est possible d'afficher le contenu du BAR (bank address registers).&lt;br /&gt;
&lt;br /&gt;
Pour ce qui de la gestion de la prochaine tache à exécuter il y a possibilité de faire en sorte que notre composant:&lt;br /&gt;
-changer la priorité du master sur le bus AMBA&lt;br /&gt;
-empêcher l'accès en dur en modifiant le comportement du contrôleur de bus (1).&lt;br /&gt;
&lt;br /&gt;
(1): Ceci ne fonctionnera que si les taches sont sur des partitions différentes et sur des processeurs indépendants.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser le composant, il est envisageable de l'intégrer directement au sein du contrôleur de mémoire.&lt;br /&gt;
&lt;br /&gt;
Celui devra donc récupérer le contenu des caches des processeurs afin de déterminé quel programme et en exécution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bibliographie: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] lien site gaisler&lt;br /&gt;
gaisler.com/index.php&lt;br /&gt;
&lt;br /&gt;
[2] lien vers GRLIB IP Library User’s Manual&lt;br /&gt;
http://www.gaisler.com/products/grlib/grlib.pdf&lt;br /&gt;
&lt;br /&gt;
[3] lien vers LEON3 GR-XC3S-1500 Template Design &lt;br /&gt;
http://www.gaisler.com/products/grlib/grip.pdf&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Rapport_VAESSEN_presoutenance.pdf&amp;diff=15109</id>
		<title>Fichier:Rapport VAESSEN presoutenance.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Rapport_VAESSEN_presoutenance.pdf&amp;diff=15109"/>
				<updated>2014-12-17T05:29:33Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : Rapport Présoutenance PFE VAESSEN IMA5 SC 2014-2015&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Rapport Présoutenance PFE VAESSEN IMA5 SC 2014-2015&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=14888</id>
		<title>P37 Creation d'un composant d'audit des accès cache mémoire sur un microprocesseur LEON3 simulé en FPGA</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=14888"/>
				<updated>2014-12-06T07:45:19Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : Ajout du travail effectué les trois dernières semaines&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Presentation du projet =&lt;br /&gt;
&lt;br /&gt;
Ce projet s'inscrit dans l'amélioration d'une solution d'IP pour un SoftCore implanté dans un FPGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
Il faudra créer un composant VHDL capable de:&lt;br /&gt;
&lt;br /&gt;
1.&lt;br /&gt;
sniffer les paquets à destination de la SDRAM/RAM (via le memory controler)&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
Vérifier le contenu du paquet savoir, le type d'accès (lecture/écriture) de la mémoire&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
compter le nombre d'accès mémoire en écriture&lt;br /&gt;
&lt;br /&gt;
4.&lt;br /&gt;
Différencier les zones mémoires qui sont accéder afin de déterminer l'application/taches qui est à l'origine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faudra aussi, faire cohabiter deux (ou plus) SoftCore Leon3 communicants sur le même bus AMBA.&lt;br /&gt;
&lt;br /&gt;
== Planning: ==&lt;br /&gt;
&lt;br /&gt;
=== Semaine 1:  ===&lt;br /&gt;
Décourverte de l'équipe et discussion concernant le projet&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2: ===&lt;br /&gt;
Mise en place des outils (cygwin64 avec &amp;quot;développement&amp;quot;) et discussion concernant les possibilités offertes concernant le bus AMBA&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3: ===&lt;br /&gt;
Après plusieurs essais d'utilisation des paquets tcl/tk fournis avec cygwin, nous nous sommes aperçus que l'environnement cygwin ne semble pas utilisable pour le projet.&lt;br /&gt;
C'est pour cela que nous passons à une autre solution ie Msys cependant nous sommes en train de faire en sorte d'avoir la bonne version des outils TCL/TK.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4: ===&lt;br /&gt;
Mise en place d'un SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5: ===&lt;br /&gt;
&lt;br /&gt;
Mise en place de multiple SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 6: ===&lt;br /&gt;
&lt;br /&gt;
Abandon du cache L2C (composant manquant).&lt;br /&gt;
&lt;br /&gt;
Compilation d'un &amp;quot;hello world&amp;quot; avec les outils et paramètres adéquats pour une architecture multicoeur.&lt;br /&gt;
&lt;br /&gt;
Épluchage des documentations afin d'établir les signaux pertinents pour réaliser des compteurs qui auront les caractéristiques suivantes:&lt;br /&gt;
&lt;br /&gt;
-une paire de compteurs pour la lecture et l'écriture en mémoire&lt;br /&gt;
&lt;br /&gt;
-3 paire de compteur (PROM, RAM et SDRAM).&lt;br /&gt;
&lt;br /&gt;
=== Semaine 7: ===&lt;br /&gt;
&lt;br /&gt;
Étude du composant contrôleur mémoire afin d'y implanter le composant. Cela nous permettra d'accéder facilement aux signaux pertinents pour le contrôle du composant. On fera en sorte d'avoir une sortie sur un GPIO.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 8: ===&lt;br /&gt;
&lt;br /&gt;
Au lieu d'essayer de comprendre comment fonctionne de manière précise l'abritrage du bus amba et comment fontionne le processus de selection d'un composant en fonction de l'adresse sur le bus, je me suis concentré sur les signaux reliées directement au mémoire (ram, rom et sdram) physique afin d'écrire mon composant.&lt;br /&gt;
&lt;br /&gt;
L'idée serait d'utiliser ces signaux et faire une sortie sur un GPIO pour connaitre son état en le visualisant sur un oscilloscope.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 9: ===&lt;br /&gt;
&lt;br /&gt;
Discussion et abandon de l'idée de la semaine 8, car une nouvelle contrainte a été fixée:&lt;br /&gt;
&lt;br /&gt;
-le résultat de chacun des compteurs devra pouvoir être accessible à des adresses mémoire sur le bus amba donc accessible par le processeur.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 10: ===&lt;br /&gt;
&lt;br /&gt;
(En cours: Mise au propre du cahier des charges)&lt;br /&gt;
&lt;br /&gt;
== Annexes: ==&lt;br /&gt;
&lt;br /&gt;
=== Notes: ===&lt;br /&gt;
D'après la section 2.15 [3], on a la correspondance suivante:&lt;br /&gt;
GRLIB IP Cores&lt;br /&gt;
Core Vendor&lt;br /&gt;
LEON3|0x01 (ie Gaisler Research [2] p49)&lt;br /&gt;
MCTRL|0x04 (ie European Space Agency [2]p49)&lt;br /&gt;
Ce qui nous permettra d'identifier le contrôleur mémoire&lt;br /&gt;
&lt;br /&gt;
Voici quelques suggestions que l'on peut faire concernant le sniffeur de paquets:&lt;br /&gt;
&lt;br /&gt;
Pour cela on utilise très largement le document [2] (GRLIB IP Library User’s Manual)&lt;br /&gt;
&lt;br /&gt;
Lors d'une simulation du code VHDL, il est possible d'afficher le contenu du BAR (bank address registers).&lt;br /&gt;
&lt;br /&gt;
Pour ce qui de la gestion de la prochaine tache à exécuter il y a possibilité de faire en sorte que notre composant:&lt;br /&gt;
-changer la priorité du master sur le bus AMBA&lt;br /&gt;
-empêcher l'accès en dur en modifiant le comportement du contrôleur de bus (1).&lt;br /&gt;
&lt;br /&gt;
(1): Ceci ne fonctionnera que si les taches sont sur des partitions différentes et sur des processeurs indépendants.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser le composant, il est envisageable de l'intégrer directement au sein du contrôleur de mémoire.&lt;br /&gt;
&lt;br /&gt;
Celui devra donc récupérer le contenu des caches des processeurs afin de déterminé quel programme et en exécution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bibliographie: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] lien site gaisler&lt;br /&gt;
gaisler.com/index.php&lt;br /&gt;
&lt;br /&gt;
[2] lien vers GRLIB IP Library User’s Manual&lt;br /&gt;
http://www.gaisler.com/products/grlib/grlib.pdf&lt;br /&gt;
&lt;br /&gt;
[3] lien vers LEON3 GR-XC3S-1500 Template Design &lt;br /&gt;
http://www.gaisler.com/products/grlib/grip.pdf&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=14617</id>
		<title>P37 Creation d'un composant d'audit des accès cache mémoire sur un microprocesseur LEON3 simulé en FPGA</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=14617"/>
				<updated>2014-11-16T17:07:29Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* Semaine 6: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Presentation du projet =&lt;br /&gt;
&lt;br /&gt;
Ce projet s'inscrit dans l'amélioration d'une solution d'IP pour un SoftCore implanté dans un FPGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
Il faudra créer un composant VHDL capable de:&lt;br /&gt;
&lt;br /&gt;
1.&lt;br /&gt;
sniffer les paquets à destination de la SDRAM/RAM (via le memory controler)&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
Vérifier le contenu du paquet savoir, le type d'accès (lecture/écriture) de la mémoire&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
compter le nombre d'accès mémoire en écriture&lt;br /&gt;
&lt;br /&gt;
4.&lt;br /&gt;
Différencier les zones mémoires qui sont accéder afin de déterminer l'application/taches qui est à l'origine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faudra aussi, faire cohabiter deux (ou plus) SoftCore Leon3 communicants sur le même bus AMBA.&lt;br /&gt;
&lt;br /&gt;
== Planning: ==&lt;br /&gt;
&lt;br /&gt;
=== Semaine 1:  ===&lt;br /&gt;
Décourverte de l'équipe et discussion concernant le projet&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2: ===&lt;br /&gt;
Mise en place des outils (cygwin64 avec &amp;quot;développement&amp;quot;) et discussion concernant les possibilités offertes concernant le bus AMBA&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3: ===&lt;br /&gt;
Après plusieurs essais d'utilisation des paquets tcl/tk fournis avec cygwin, nous nous sommes aperçus que l'environnement cygwin ne semble pas utilisable pour le projet.&lt;br /&gt;
C'est pour cela que nous passons à une autre solution ie Msys cependant nous sommes en train de faire en sorte d'avoir la bonne version des outils TCL/TK.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4: ===&lt;br /&gt;
Mise en place d'un SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5: ===&lt;br /&gt;
&lt;br /&gt;
Mise en place de multiple SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 6: ===&lt;br /&gt;
&lt;br /&gt;
Abandon du cache L2C (composant manquant).&lt;br /&gt;
&lt;br /&gt;
Compilation d'un &amp;quot;hello world&amp;quot; avec les outils et paramètres adéquats pour une architecture multicoeur.&lt;br /&gt;
&lt;br /&gt;
Épluchage des documentations afin d'établir les signaux pertinents pour réaliser des compteurs qui auront les caractéristiques suivantes:&lt;br /&gt;
&lt;br /&gt;
-une paire de compteurs pour la lecture et l'écriture en mémoire&lt;br /&gt;
&lt;br /&gt;
-3 paire de compteur (PROM, RAM et SDRAM).&lt;br /&gt;
&lt;br /&gt;
=== Semaine 7: ===&lt;br /&gt;
&lt;br /&gt;
Étude du composant contrôleur mémoire afin d'y implanter le composant. Cela nous permettra d'accéder facilement aux signaux pertinents pour le contrôle du composant. On fera en sorte d'avoir une sortie sur un GPIO.&lt;br /&gt;
&lt;br /&gt;
== Annexes: ==&lt;br /&gt;
&lt;br /&gt;
=== Notes: ===&lt;br /&gt;
D'après la section 2.15 [3], on a la correspondance suivante:&lt;br /&gt;
GRLIB IP Cores&lt;br /&gt;
Core Vendor&lt;br /&gt;
LEON3|0x01 (ie Gaisler Research [2] p49)&lt;br /&gt;
MCTRL|0x04 (ie European Space Agency [2]p49)&lt;br /&gt;
Ce qui nous permettra d'identifier le contrôleur mémoire&lt;br /&gt;
&lt;br /&gt;
Voici quelques suggestions que l'on peut faire concernant le sniffeur de paquets:&lt;br /&gt;
&lt;br /&gt;
Pour cela on utilise très largement le document [2] (GRLIB IP Library User’s Manual)&lt;br /&gt;
&lt;br /&gt;
Lors d'une simulation du code VHDL, il est possible d'afficher le contenu du BAR (bank address registers).&lt;br /&gt;
&lt;br /&gt;
Pour ce qui de la gestion de la prochaine tache à exécuter il y a possibilité de faire en sorte que notre composant:&lt;br /&gt;
-changer la priorité du master sur le bus AMBA&lt;br /&gt;
-empêcher l'accès en dur en modifiant le comportement du contrôleur de bus (1).&lt;br /&gt;
&lt;br /&gt;
(1): Ceci ne fonctionnera que si les taches sont sur des partitions différentes et sur des processeurs indépendants.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser le composant, il est envisageable de l'intégrer directement au sein du contrôleur de mémoire.&lt;br /&gt;
&lt;br /&gt;
Celui devra donc récupérer le contenu des caches des processeurs afin de déterminé quel programme et en exécution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bibliographie: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] lien site gaisler&lt;br /&gt;
gaisler.com/index.php&lt;br /&gt;
&lt;br /&gt;
[2] lien vers GRLIB IP Library User’s Manual&lt;br /&gt;
http://www.gaisler.com/products/grlib/grlib.pdf&lt;br /&gt;
&lt;br /&gt;
[3] lien vers LEON3 GR-XC3S-1500 Template Design &lt;br /&gt;
http://www.gaisler.com/products/grlib/grip.pdf&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=14616</id>
		<title>P37 Creation d'un composant d'audit des accès cache mémoire sur un microprocesseur LEON3 simulé en FPGA</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=14616"/>
				<updated>2014-11-16T17:07:15Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* Semaine 6: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Presentation du projet =&lt;br /&gt;
&lt;br /&gt;
Ce projet s'inscrit dans l'amélioration d'une solution d'IP pour un SoftCore implanté dans un FPGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
Il faudra créer un composant VHDL capable de:&lt;br /&gt;
&lt;br /&gt;
1.&lt;br /&gt;
sniffer les paquets à destination de la SDRAM/RAM (via le memory controler)&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
Vérifier le contenu du paquet savoir, le type d'accès (lecture/écriture) de la mémoire&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
compter le nombre d'accès mémoire en écriture&lt;br /&gt;
&lt;br /&gt;
4.&lt;br /&gt;
Différencier les zones mémoires qui sont accéder afin de déterminer l'application/taches qui est à l'origine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faudra aussi, faire cohabiter deux (ou plus) SoftCore Leon3 communicants sur le même bus AMBA.&lt;br /&gt;
&lt;br /&gt;
== Planning: ==&lt;br /&gt;
&lt;br /&gt;
=== Semaine 1:  ===&lt;br /&gt;
Décourverte de l'équipe et discussion concernant le projet&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2: ===&lt;br /&gt;
Mise en place des outils (cygwin64 avec &amp;quot;développement&amp;quot;) et discussion concernant les possibilités offertes concernant le bus AMBA&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3: ===&lt;br /&gt;
Après plusieurs essais d'utilisation des paquets tcl/tk fournis avec cygwin, nous nous sommes aperçus que l'environnement cygwin ne semble pas utilisable pour le projet.&lt;br /&gt;
C'est pour cela que nous passons à une autre solution ie Msys cependant nous sommes en train de faire en sorte d'avoir la bonne version des outils TCL/TK.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4: ===&lt;br /&gt;
Mise en place d'un SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5: ===&lt;br /&gt;
&lt;br /&gt;
Mise en place de multiple SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 6: ===&lt;br /&gt;
&lt;br /&gt;
Abandon du cache L2C (composant manquant).&lt;br /&gt;
&lt;br /&gt;
Compilation d'un &amp;quot;hello world&amp;quot; avec les outils et paramètres adéquats pour une architecture multicoeur.&lt;br /&gt;
&lt;br /&gt;
Épluchage des documentations afin d'établir les signaux pertinents pour réaliser des compteurs qui auront les caractéristiques suivantes:&lt;br /&gt;
&lt;br /&gt;
-une paire de compteurs pour la lecture et l'écriture en mémoire&lt;br /&gt;
&lt;br /&gt;
-3 paire de compteur (PROM, RAM et SDRAM).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Semaine 7: ===&lt;br /&gt;
&lt;br /&gt;
Étude du composant contrôleur mémoire afin d'y implanter le composant. Cela nous permettra d'accéder facilement aux signaux pertinents pour le contrôle du composant. On fera en sorte d'avoir une sortie sur un GPIO.&lt;br /&gt;
&lt;br /&gt;
== Annexes: ==&lt;br /&gt;
&lt;br /&gt;
=== Notes: ===&lt;br /&gt;
D'après la section 2.15 [3], on a la correspondance suivante:&lt;br /&gt;
GRLIB IP Cores&lt;br /&gt;
Core Vendor&lt;br /&gt;
LEON3|0x01 (ie Gaisler Research [2] p49)&lt;br /&gt;
MCTRL|0x04 (ie European Space Agency [2]p49)&lt;br /&gt;
Ce qui nous permettra d'identifier le contrôleur mémoire&lt;br /&gt;
&lt;br /&gt;
Voici quelques suggestions que l'on peut faire concernant le sniffeur de paquets:&lt;br /&gt;
&lt;br /&gt;
Pour cela on utilise très largement le document [2] (GRLIB IP Library User’s Manual)&lt;br /&gt;
&lt;br /&gt;
Lors d'une simulation du code VHDL, il est possible d'afficher le contenu du BAR (bank address registers).&lt;br /&gt;
&lt;br /&gt;
Pour ce qui de la gestion de la prochaine tache à exécuter il y a possibilité de faire en sorte que notre composant:&lt;br /&gt;
-changer la priorité du master sur le bus AMBA&lt;br /&gt;
-empêcher l'accès en dur en modifiant le comportement du contrôleur de bus (1).&lt;br /&gt;
&lt;br /&gt;
(1): Ceci ne fonctionnera que si les taches sont sur des partitions différentes et sur des processeurs indépendants.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser le composant, il est envisageable de l'intégrer directement au sein du contrôleur de mémoire.&lt;br /&gt;
&lt;br /&gt;
Celui devra donc récupérer le contenu des caches des processeurs afin de déterminé quel programme et en exécution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bibliographie: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] lien site gaisler&lt;br /&gt;
gaisler.com/index.php&lt;br /&gt;
&lt;br /&gt;
[2] lien vers GRLIB IP Library User’s Manual&lt;br /&gt;
http://www.gaisler.com/products/grlib/grlib.pdf&lt;br /&gt;
&lt;br /&gt;
[3] lien vers LEON3 GR-XC3S-1500 Template Design &lt;br /&gt;
http://www.gaisler.com/products/grlib/grip.pdf&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=14527</id>
		<title>P37 Creation d'un composant d'audit des accès cache mémoire sur un microprocesseur LEON3 simulé en FPGA</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=14527"/>
				<updated>2014-11-09T21:28:12Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* Semaine 5: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Presentation du projet =&lt;br /&gt;
&lt;br /&gt;
Ce projet s'inscrit dans l'amélioration d'une solution d'IP pour un SoftCore implanté dans un FPGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
Il faudra créer un composant VHDL capable de:&lt;br /&gt;
&lt;br /&gt;
1.&lt;br /&gt;
sniffer les paquets à destination de la SDRAM/RAM (via le memory controler)&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
Vérifier le contenu du paquet savoir, le type d'accès (lecture/écriture) de la mémoire&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
compter le nombre d'accès mémoire en écriture&lt;br /&gt;
&lt;br /&gt;
4.&lt;br /&gt;
Différencier les zones mémoires qui sont accéder afin de déterminer l'application/taches qui est à l'origine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faudra aussi, faire cohabiter deux (ou plus) SoftCore Leon3 communicants sur le même bus AMBA.&lt;br /&gt;
&lt;br /&gt;
== Planning: ==&lt;br /&gt;
&lt;br /&gt;
=== Semaine 1:  ===&lt;br /&gt;
Décourverte de l'équipe et discussion concernant le projet&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2: ===&lt;br /&gt;
Mise en place des outils (cygwin64 avec &amp;quot;développement&amp;quot;) et discussion concernant les possibilités offertes concernant le bus AMBA&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3: ===&lt;br /&gt;
Après plusieurs essais d'utilisation des paquets tcl/tk fournis avec cygwin, nous nous sommes aperçus que l'environnement cygwin ne semble pas utilisable pour le projet.&lt;br /&gt;
C'est pour cela que nous passons à une autre solution ie Msys cependant nous sommes en train de faire en sorte d'avoir la bonne version des outils TCL/TK.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4: ===&lt;br /&gt;
Mise en place d'un SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5: ===&lt;br /&gt;
&lt;br /&gt;
Mise en place de multiple SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 6: ===&lt;br /&gt;
&lt;br /&gt;
Abandon du cache L2C (composant manquant).&lt;br /&gt;
&lt;br /&gt;
Compilation d'un &amp;quot;hello world&amp;quot; avec les outils et paramètres adéquats pour une architecture multicoeur.&lt;br /&gt;
&lt;br /&gt;
Épluchage des documentations afin d'établir les signaux pertinents pour réaliser des compteurs qui auront les caractéristiques suivantes:&lt;br /&gt;
&lt;br /&gt;
-une paire de compteurs pour la lecture et l'écriture en mémoire&lt;br /&gt;
&lt;br /&gt;
-3 paire de compteur (PROM, RAM et SDRAM).&lt;br /&gt;
&lt;br /&gt;
== Annexes: ==&lt;br /&gt;
&lt;br /&gt;
=== Notes: ===&lt;br /&gt;
D'après la section 2.15 [3], on a la correspondance suivante:&lt;br /&gt;
GRLIB IP Cores&lt;br /&gt;
Core Vendor&lt;br /&gt;
LEON3|0x01 (ie Gaisler Research [2] p49)&lt;br /&gt;
MCTRL|0x04 (ie European Space Agency [2]p49)&lt;br /&gt;
Ce qui nous permettra d'identifier le contrôleur mémoire&lt;br /&gt;
&lt;br /&gt;
Voici quelques suggestions que l'on peut faire concernant le sniffeur de paquets:&lt;br /&gt;
&lt;br /&gt;
Pour cela on utilise très largement le document [2] (GRLIB IP Library User’s Manual)&lt;br /&gt;
&lt;br /&gt;
Lors d'une simulation du code VHDL, il est possible d'afficher le contenu du BAR (bank address registers).&lt;br /&gt;
&lt;br /&gt;
Pour ce qui de la gestion de la prochaine tache à exécuter il y a possibilité de faire en sorte que notre composant:&lt;br /&gt;
-changer la priorité du master sur le bus AMBA&lt;br /&gt;
-empêcher l'accès en dur en modifiant le comportement du contrôleur de bus (1).&lt;br /&gt;
&lt;br /&gt;
(1): Ceci ne fonctionnera que si les taches sont sur des partitions différentes et sur des processeurs indépendants.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser le composant, il est envisageable de l'intégrer directement au sein du contrôleur de mémoire.&lt;br /&gt;
&lt;br /&gt;
Celui devra donc récupérer le contenu des caches des processeurs afin de déterminé quel programme et en exécution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bibliographie: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] lien site gaisler&lt;br /&gt;
gaisler.com/index.php&lt;br /&gt;
&lt;br /&gt;
[2] lien vers GRLIB IP Library User’s Manual&lt;br /&gt;
http://www.gaisler.com/products/grlib/grlib.pdf&lt;br /&gt;
&lt;br /&gt;
[3] lien vers LEON3 GR-XC3S-1500 Template Design &lt;br /&gt;
http://www.gaisler.com/products/grlib/grip.pdf&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=14526</id>
		<title>P37 Creation d'un composant d'audit des accès cache mémoire sur un microprocesseur LEON3 simulé en FPGA</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=14526"/>
				<updated>2014-11-09T21:27:54Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : ajout de la semaine 6&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Presentation du projet =&lt;br /&gt;
&lt;br /&gt;
Ce projet s'inscrit dans l'amélioration d'une solution d'IP pour un SoftCore implanté dans un FPGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
Il faudra créer un composant VHDL capable de:&lt;br /&gt;
&lt;br /&gt;
1.&lt;br /&gt;
sniffer les paquets à destination de la SDRAM/RAM (via le memory controler)&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
Vérifier le contenu du paquet savoir, le type d'accès (lecture/écriture) de la mémoire&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
compter le nombre d'accès mémoire en écriture&lt;br /&gt;
&lt;br /&gt;
4.&lt;br /&gt;
Différencier les zones mémoires qui sont accéder afin de déterminer l'application/taches qui est à l'origine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faudra aussi, faire cohabiter deux (ou plus) SoftCore Leon3 communicants sur le même bus AMBA.&lt;br /&gt;
&lt;br /&gt;
== Planning: ==&lt;br /&gt;
&lt;br /&gt;
=== Semaine 1:  ===&lt;br /&gt;
Décourverte de l'équipe et discussion concernant le projet&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2: ===&lt;br /&gt;
Mise en place des outils (cygwin64 avec &amp;quot;développement&amp;quot;) et discussion concernant les possibilités offertes concernant le bus AMBA&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3: ===&lt;br /&gt;
Après plusieurs essais d'utilisation des paquets tcl/tk fournis avec cygwin, nous nous sommes aperçus que l'environnement cygwin ne semble pas utilisable pour le projet.&lt;br /&gt;
C'est pour cela que nous passons à une autre solution ie Msys cependant nous sommes en train de faire en sorte d'avoir la bonne version des outils TCL/TK.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4: ===&lt;br /&gt;
Mise en place d'un SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5: ===&lt;br /&gt;
&lt;br /&gt;
Mise en place de multiple SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Semaine 6: ===&lt;br /&gt;
&lt;br /&gt;
Abandon du cache L2C (composant manquant).&lt;br /&gt;
&lt;br /&gt;
Compilation d'un &amp;quot;hello world&amp;quot; avec les outils et paramètres adéquats pour une architecture multicoeur.&lt;br /&gt;
&lt;br /&gt;
Épluchage des documentations afin d'établir les signaux pertinents pour réaliser des compteurs qui auront les caractéristiques suivantes:&lt;br /&gt;
&lt;br /&gt;
-une paire de compteurs pour la lecture et l'écriture en mémoire&lt;br /&gt;
&lt;br /&gt;
-3 paire de compteur (PROM, RAM et SDRAM).&lt;br /&gt;
&lt;br /&gt;
== Annexes: ==&lt;br /&gt;
&lt;br /&gt;
=== Notes: ===&lt;br /&gt;
D'après la section 2.15 [3], on a la correspondance suivante:&lt;br /&gt;
GRLIB IP Cores&lt;br /&gt;
Core Vendor&lt;br /&gt;
LEON3|0x01 (ie Gaisler Research [2] p49)&lt;br /&gt;
MCTRL|0x04 (ie European Space Agency [2]p49)&lt;br /&gt;
Ce qui nous permettra d'identifier le contrôleur mémoire&lt;br /&gt;
&lt;br /&gt;
Voici quelques suggestions que l'on peut faire concernant le sniffeur de paquets:&lt;br /&gt;
&lt;br /&gt;
Pour cela on utilise très largement le document [2] (GRLIB IP Library User’s Manual)&lt;br /&gt;
&lt;br /&gt;
Lors d'une simulation du code VHDL, il est possible d'afficher le contenu du BAR (bank address registers).&lt;br /&gt;
&lt;br /&gt;
Pour ce qui de la gestion de la prochaine tache à exécuter il y a possibilité de faire en sorte que notre composant:&lt;br /&gt;
-changer la priorité du master sur le bus AMBA&lt;br /&gt;
-empêcher l'accès en dur en modifiant le comportement du contrôleur de bus (1).&lt;br /&gt;
&lt;br /&gt;
(1): Ceci ne fonctionnera que si les taches sont sur des partitions différentes et sur des processeurs indépendants.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser le composant, il est envisageable de l'intégrer directement au sein du contrôleur de mémoire.&lt;br /&gt;
&lt;br /&gt;
Celui devra donc récupérer le contenu des caches des processeurs afin de déterminé quel programme et en exécution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bibliographie: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] lien site gaisler&lt;br /&gt;
gaisler.com/index.php&lt;br /&gt;
&lt;br /&gt;
[2] lien vers GRLIB IP Library User’s Manual&lt;br /&gt;
http://www.gaisler.com/products/grlib/grlib.pdf&lt;br /&gt;
&lt;br /&gt;
[3] lien vers LEON3 GR-XC3S-1500 Template Design &lt;br /&gt;
http://www.gaisler.com/products/grlib/grip.pdf&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=14323</id>
		<title>P37 Creation d'un composant d'audit des accès cache mémoire sur un microprocesseur LEON3 simulé en FPGA</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=14323"/>
				<updated>2014-10-20T20:11:26Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* Semaine 4: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Presentation du projet =&lt;br /&gt;
&lt;br /&gt;
Ce projet s'inscrit dans l'amélioration d'une solution d'IP pour un SoftCore implanté dans un FPGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
Il faudra créer un composant VHDL capable de:&lt;br /&gt;
&lt;br /&gt;
1.&lt;br /&gt;
sniffer les paquets à destination de la SDRAM/RAM (via le memory controler)&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
Vérifier le contenu du paquet savoir, le type d'accès (lecture/écriture) de la mémoire&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
compter le nombre d'accès mémoire en écriture&lt;br /&gt;
&lt;br /&gt;
4.&lt;br /&gt;
Différencier les zones mémoires qui sont accéder afin de déterminer l'application/taches qui est à l'origine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faudra aussi, faire cohabiter deux (ou plus) SoftCore Leon3 communicants sur le même bus AMBA.&lt;br /&gt;
&lt;br /&gt;
== Planning: ==&lt;br /&gt;
&lt;br /&gt;
=== Semaine 1:  ===&lt;br /&gt;
Décourverte de l'équipe et discussion concernant le projet&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2: ===&lt;br /&gt;
Mise en place des outils (cygwin64 avec &amp;quot;développement&amp;quot;) et discussion concernant les possibilités offertes concernant le bus AMBA&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3: ===&lt;br /&gt;
Après plusieurs essais d'utilisation des paquets tcl/tk fournis avec cygwin, nous nous sommes aperçus que l'environnement cygwin ne semble pas utilisable pour le projet.&lt;br /&gt;
C'est pour cela que nous passons à une autre solution ie Msys cependant nous sommes en train de faire en sorte d'avoir la bonne version des outils TCL/TK.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4: ===&lt;br /&gt;
Mise en place d'un SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 5: ===&lt;br /&gt;
Objectifs:&lt;br /&gt;
Mise en place de multiple SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.&lt;br /&gt;
&lt;br /&gt;
== Annexes: ==&lt;br /&gt;
&lt;br /&gt;
=== Notes: ===&lt;br /&gt;
D'après la section 2.15 [3], on a la correspondance suivante:&lt;br /&gt;
GRLIB IP Cores&lt;br /&gt;
Core Vendor&lt;br /&gt;
LEON3|0x01 (ie Gaisler Research [2] p49)&lt;br /&gt;
MCTRL|0x04 (ie European Space Agency [2]p49)&lt;br /&gt;
Ce qui nous permettra d'identifier le contrôleur mémoire&lt;br /&gt;
&lt;br /&gt;
Voici quelques suggestions que l'on peut faire concernant le sniffeur de paquets:&lt;br /&gt;
&lt;br /&gt;
Pour cela on utilise très largement le document [2] (GRLIB IP Library User’s Manual)&lt;br /&gt;
&lt;br /&gt;
Lors d'une simulation du code VHDL, il est possible d'afficher le contenu du BAR (bank address registers).&lt;br /&gt;
&lt;br /&gt;
Pour ce qui de la gestion de la prochaine tache à exécuter il y a possibilité de faire en sorte que notre composant:&lt;br /&gt;
-changer la priorité du master sur le bus AMBA&lt;br /&gt;
-empêcher l'accès en dur en modifiant le comportement du contrôleur de bus (1).&lt;br /&gt;
&lt;br /&gt;
(1): Ceci ne fonctionnera que si les taches sont sur des partitions différentes et sur des processeurs indépendants.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser le composant, il est envisageable de l'intégrer directement au sein du contrôleur de mémoire.&lt;br /&gt;
&lt;br /&gt;
Celui devra donc récupérer le contenu des caches des processeurs afin de déterminé quel programme et en exécution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bibliographie: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] lien site gaisler&lt;br /&gt;
gaisler.com/index.php&lt;br /&gt;
&lt;br /&gt;
[2] lien vers GRLIB IP Library User’s Manual&lt;br /&gt;
http://www.gaisler.com/products/grlib/grlib.pdf&lt;br /&gt;
&lt;br /&gt;
[3] lien vers LEON3 GR-XC3S-1500 Template Design &lt;br /&gt;
http://www.gaisler.com/products/grlib/grip.pdf&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=14197</id>
		<title>P37 Creation d'un composant d'audit des accès cache mémoire sur un microprocesseur LEON3 simulé en FPGA</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=14197"/>
				<updated>2014-10-11T07:48:37Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* Cahier des charges */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Presentation du projet =&lt;br /&gt;
&lt;br /&gt;
Ce projet s'inscrit dans l'amélioration d'une solution d'IP pour un SoftCore implanté dans un FPGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
Il faudra créer un composant VHDL capable de:&lt;br /&gt;
&lt;br /&gt;
1.&lt;br /&gt;
sniffer les paquets à destination de la SDRAM/RAM (via le memory controler)&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
Vérifier le contenu du paquet savoir, le type d'accès (lecture/écriture) de la mémoire&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
compter le nombre d'accès mémoire en écriture&lt;br /&gt;
&lt;br /&gt;
4.&lt;br /&gt;
Différencier les zones mémoires qui sont accéder afin de déterminer l'application/taches qui est à l'origine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faudra aussi, faire cohabiter deux (ou plus) SoftCore Leon3 communicants sur le même bus AMBA.&lt;br /&gt;
&lt;br /&gt;
== Planning: ==&lt;br /&gt;
&lt;br /&gt;
=== Semaine 1:  ===&lt;br /&gt;
Décourverte de l'équipe et discussion concernant le projet&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2: ===&lt;br /&gt;
Mise en place des outils (cygwin64 avec &amp;quot;développement&amp;quot;) et discussion concernant les possibilités offertes concernant le bus AMBA&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3: ===&lt;br /&gt;
Après plusieurs essais d'utilisation des paquets tcl/tk fournis avec cygwin, nous nous sommes aperçus que l'environnement cygwin ne semble pas utilisable pour le projet.&lt;br /&gt;
C'est pour cela que nous passons à une autre solution ie Msys cependant nous sommes en train de faire en sorte d'avoir la bonne version des outils TCL/TK.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4: ===&lt;br /&gt;
Nous prévoyons:&lt;br /&gt;
Mise en place d'un SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Annexes: ==&lt;br /&gt;
&lt;br /&gt;
=== Notes: ===&lt;br /&gt;
D'après la section 2.15 [3], on a la correspondance suivante:&lt;br /&gt;
GRLIB IP Cores&lt;br /&gt;
Core Vendor&lt;br /&gt;
LEON3|0x01 (ie Gaisler Research [2] p49)&lt;br /&gt;
MCTRL|0x04 (ie European Space Agency [2]p49)&lt;br /&gt;
Ce qui nous permettra d'identifier le contrôleur mémoire&lt;br /&gt;
&lt;br /&gt;
Voici quelques suggestions que l'on peut faire concernant le sniffeur de paquets:&lt;br /&gt;
&lt;br /&gt;
Pour cela on utilise très largement le document [2] (GRLIB IP Library User’s Manual)&lt;br /&gt;
&lt;br /&gt;
Lors d'une simulation du code VHDL, il est possible d'afficher le contenu du BAR (bank address registers).&lt;br /&gt;
&lt;br /&gt;
Pour ce qui de la gestion de la prochaine tache à exécuter il y a possibilité de faire en sorte que notre composant:&lt;br /&gt;
-changer la priorité du master sur le bus AMBA&lt;br /&gt;
-empêcher l'accès en dur en modifiant le comportement du contrôleur de bus (1).&lt;br /&gt;
&lt;br /&gt;
(1): Ceci ne fonctionnera que si les taches sont sur des partitions différentes et sur des processeurs indépendants.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser le composant, il est envisageable de l'intégrer directement au sein du contrôleur de mémoire.&lt;br /&gt;
&lt;br /&gt;
Celui devra donc récupérer le contenu des caches des processeurs afin de déterminé quel programme et en exécution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bibliographie: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] lien site gaisler&lt;br /&gt;
gaisler.com/index.php&lt;br /&gt;
&lt;br /&gt;
[2] lien vers GRLIB IP Library User’s Manual&lt;br /&gt;
http://www.gaisler.com/products/grlib/grlib.pdf&lt;br /&gt;
&lt;br /&gt;
[3] lien vers LEON3 GR-XC3S-1500 Template Design &lt;br /&gt;
http://www.gaisler.com/products/grlib/grip.pdf&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=14196</id>
		<title>P37 Creation d'un composant d'audit des accès cache mémoire sur un microprocesseur LEON3 simulé en FPGA</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P37_Creation_d%27un_composant_d%27audit_des_acc%C3%A8s_cache_m%C3%A9moire_sur_un_microprocesseur_LEON3_simul%C3%A9_en_FPGA&amp;diff=14196"/>
				<updated>2014-10-11T07:37:35Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : Page créée avec « = Presentation du projet =  Ce projet s'inscrit dans l'amélioration d'une solution d'IP pour un SoftCore implanté dans un FPGA.   == Cahier des charges ==  Il faudra créer... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Presentation du projet =&lt;br /&gt;
&lt;br /&gt;
Ce projet s'inscrit dans l'amélioration d'une solution d'IP pour un SoftCore implanté dans un FPGA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
Il faudra créer un composant VHDL capable de:&lt;br /&gt;
&lt;br /&gt;
1.&lt;br /&gt;
sniffer les paquets à destination de la SDRAM/RAM (via le memory controler)&lt;br /&gt;
2.&lt;br /&gt;
Vérifier le contenu du paquet savoir, le type d'accès (lecture/écriture) de la mémoire,&lt;br /&gt;
3.&lt;br /&gt;
compter le nombre d'accès mémoire en écriture&lt;br /&gt;
4.&lt;br /&gt;
Différencier les zones mémoires qui sont accéder afin de déterminer l'application/taches qui est à l'origine.&lt;br /&gt;
&lt;br /&gt;
Il faudra aussi, faire cohabiter deux (ou plus) SoftCore Leon3 communicants sur le même bus AMBA.&lt;br /&gt;
&lt;br /&gt;
== Planning: ==&lt;br /&gt;
&lt;br /&gt;
=== Semaine 1:  ===&lt;br /&gt;
Décourverte de l'équipe et discussion concernant le projet&lt;br /&gt;
&lt;br /&gt;
=== Semaine 2: ===&lt;br /&gt;
Mise en place des outils (cygwin64 avec &amp;quot;développement&amp;quot;) et discussion concernant les possibilités offertes concernant le bus AMBA&lt;br /&gt;
&lt;br /&gt;
=== Semaine 3: ===&lt;br /&gt;
Après plusieurs essais d'utilisation des paquets tcl/tk fournis avec cygwin, nous nous sommes aperçus que l'environnement cygwin ne semble pas utilisable pour le projet.&lt;br /&gt;
C'est pour cela que nous passons à une autre solution ie Msys cependant nous sommes en train de faire en sorte d'avoir la bonne version des outils TCL/TK.&lt;br /&gt;
&lt;br /&gt;
=== Semaine 4: ===&lt;br /&gt;
Nous prévoyons:&lt;br /&gt;
Mise en place d'un SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Annexes: ==&lt;br /&gt;
&lt;br /&gt;
=== Notes: ===&lt;br /&gt;
D'après la section 2.15 [3], on a la correspondance suivante:&lt;br /&gt;
GRLIB IP Cores&lt;br /&gt;
Core Vendor&lt;br /&gt;
LEON3|0x01 (ie Gaisler Research [2] p49)&lt;br /&gt;
MCTRL|0x04 (ie European Space Agency [2]p49)&lt;br /&gt;
Ce qui nous permettra d'identifier le contrôleur mémoire&lt;br /&gt;
&lt;br /&gt;
Voici quelques suggestions que l'on peut faire concernant le sniffeur de paquets:&lt;br /&gt;
&lt;br /&gt;
Pour cela on utilise très largement le document [2] (GRLIB IP Library User’s Manual)&lt;br /&gt;
&lt;br /&gt;
Lors d'une simulation du code VHDL, il est possible d'afficher le contenu du BAR (bank address registers).&lt;br /&gt;
&lt;br /&gt;
Pour ce qui de la gestion de la prochaine tache à exécuter il y a possibilité de faire en sorte que notre composant:&lt;br /&gt;
-changer la priorité du master sur le bus AMBA&lt;br /&gt;
-empêcher l'accès en dur en modifiant le comportement du contrôleur de bus (1).&lt;br /&gt;
&lt;br /&gt;
(1): Ceci ne fonctionnera que si les taches sont sur des partitions différentes et sur des processeurs indépendants.&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser le composant, il est envisageable de l'intégrer directement au sein du contrôleur de mémoire.&lt;br /&gt;
&lt;br /&gt;
Celui devra donc récupérer le contenu des caches des processeurs afin de déterminé quel programme et en exécution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bibliographie: ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] lien site gaisler&lt;br /&gt;
gaisler.com/index.php&lt;br /&gt;
&lt;br /&gt;
[2] lien vers GRLIB IP Library User’s Manual&lt;br /&gt;
http://www.gaisler.com/products/grlib/grlib.pdf&lt;br /&gt;
&lt;br /&gt;
[3] lien vers LEON3 GR-XC3S-1500 Template Design &lt;br /&gt;
http://www.gaisler.com/products/grlib/grip.pdf&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Projets_IMA5_2014/2015&amp;diff=14195</id>
		<title>Projets IMA5 2014/2015</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Projets_IMA5_2014/2015&amp;diff=14195"/>
				<updated>2014-10-11T07:31:53Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* Répartition des binômes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Merci de référencer vos pages de projets ici. Merci aussi d'uniformiser vos formats que ce soit en regardant la présentation des projets déjà créés ou en allant modifier le format des précédents si votre façon de faire vous semble la meilleure. Dans tous les cas un minimum de communication entre les binômes est conseillée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Projet&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Elèves&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Encadrant Ecole&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Rapport décembre&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P5 Filtrage des indicateurs numériques de diagnostic]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; ZIOU Ismaïl / HAMZAOUI Oussama &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Belkacem Ould Bouamama &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[P6 Gestion des flux thermiques du bâtiment Polytech]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Florian Royer / Zohour Assaieb &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; Belkacem Ould Bouamama &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P7 Utilisation d'un Robot Nao pour les enfants autistes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Rodriguez Loïc/Ismaïl Tahry&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; GAPAS/Laurent Grisoni &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P8 Pilulier]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Alexandre Mercier / Emile Pinet&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Thomas VANTROYS / Alexandre BOE &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P9 Agenda pour personnes non lectrices]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Cédric DESPREZ &amp;amp; Soufiane HADDAOUI &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; GAPAS/Laurent Grisoni &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P11 Détecteur d'obstacles pour fauteuils électriques]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Geoffrey ROSE / Marjorie TIXIER &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; GAPAS / Blaise Conrard &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P12 Automatiser à l'aide d'une interface LabView la procédure de mesure de conductivité électrique d'un alternateur à griffes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Hugo FONDU &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Abdelkader Benabou &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P13 Construction d'un support motorisé pour la réalisation des essais de décharges électrostatique]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; JEBBARI Zineb / BEKRAOUI Oumaima &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Nathalie Rolland &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P21 balise Bluetooth Low Energy]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Kévin CHALONO / Armagan YAMNAZ&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Thomas VANTROYS &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P22 Google Glass en logistique ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Jérémy Gondry / Vincent Meunier &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Laurent Grisoni &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P24 Robot de surveillance domestique]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Sébastien DELTOMBE &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Xavier Redon &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P28 Modélisation d'un robot chirurgical déformable pour la simulation et le contrôle]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Charlotte BRICOUT / Nathan MARTIN &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Jérémie DEQUIDT&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P33 Ligthing contactless / « wireless]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Benjamin Lafit &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Alexandre Boé &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P37 Creation d'un composant d'audit des accès cache mémoire sur un microprocesseur LEON3 simulé en FPGA ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Jérôme Vaessen &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Julien Cartigny / Pierrick Buret &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P44 Création d'un systeme domotique sans fil ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Benoit MALIAR / Thomas MAURICE&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Pierrick BURET / Thomas VANTROYS  &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P45 Aide à la navigation d'un véhicule autonome]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Pierre APPERCÉ&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Rochdi MERZOUKI &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P46 Simulation Temps Réel d'un Environnement de Robots Autonomes Logisticiens]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Valentin VERGEZ&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Rochdi MERZOUKI &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P57 CHRU Lille : Smart Picking]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Mathieu Bossennec / Florian Caron&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Gwénaëlle Maton / Alexandre Boé / Thomas Vantroys &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P59 Assistance globale pour aide au parking]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Mathieu GERIER / Céline LY &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Alexandre BOE / Thomas VANTROYS &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=12166</id>
		<title>Modem pour le numérique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=12166"/>
				<updated>2014-04-15T20:19:56Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* 10éme semaine: (du 07/04/2014 au 10/04/2014) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Modulateur et démodulateur pour communications numériques =&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
=== Présentation générale du projet ===&lt;br /&gt;
&lt;br /&gt;
Dans le cadre des TPs d'électronique et de transmission RF, nous avons découvert qu'il existe plusieurs modes de modulation, pour transmettre un signal modulant.&lt;br /&gt;
&lt;br /&gt;
Celles vues en TP au S7 sont la modulation en amplitude, en fréquence, en phase, en BPSK et en QPSK.&lt;br /&gt;
&lt;br /&gt;
Or les modulations en phase, en fréquence et en amplitude étant celles les plus connues, la modulation en QAM (Modulation d'Amplitude en Quadrature) est quant à elle moins connue, mais tout aussi utilisées:&lt;br /&gt;
&lt;br /&gt;
-pour la TNT en 64 QAM (en France).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_64qam.jpg|300px|thumb|center|Exemple de constellation 64QAM.]]&lt;br /&gt;
&lt;br /&gt;
-pour le WiFi en 64-QAM ou 256-QAM (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Or ces deux dernières étant peu représentées au niveau des travaux pratiques, ce projet permettra de fournir un peu plus de pratique sur les modulations de type QAM (en diagramme I/Q) dans le domaine des radiofréquences (~800MHz).&lt;br /&gt;
&lt;br /&gt;
(Le nombre devant le QAM indique le nombre de points dans le diagramme I/Q qu'on appelle aussi constellation)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se réserve le droit de faire '''évoluer''' le cahier des charges a posteriori, si certaines contraintes étaient amenées à évoluer ou se préciser.&lt;br /&gt;
&lt;br /&gt;
=== Objectif et intérêt du projet ===&lt;br /&gt;
&lt;br /&gt;
Pour cela, on nous a fourni des modules commerciaux Mini-circuit pouvant travailler dans les radios-fréquences.&lt;br /&gt;
&lt;br /&gt;
Ceux-ci permettront de mettre en place une grande partie de la chaine de transmission (voir schéma de la chaine de transmission).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_modulation.PNG|300px|thumb|center|Modulation.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_demodulation.PNG|300px|thumb|center|Démodulation.]]&lt;br /&gt;
&lt;br /&gt;
On a tout d'abord à mettre en place une carte FPGA et/ou un dispositif permettant d'envoyer un flux de données numériques continuellement pour pouvoir visualiser le diagramme I/Q (mise en valeur du diagramme I/Q et voir même un diagramme un peu plus complexe que le BPSK ou le QPSK).&lt;br /&gt;
&lt;br /&gt;
Le canal de transmission qui sera un simple fil électrique, mais pourra devenir une antenne réceptrice et émettrice si le temps imparti le permet (mise en valeur du et mesure du Bit Error Rate qui sera bien sûr différent suivant le canal de transmission).&lt;br /&gt;
&lt;br /&gt;
Du côté réception ,après démodulation du signal, une remise en forme et une interprétation des données seront réalisées, celle-ci dépendra bien entendu de la provenance du flux de données (constater le succès ou l'échec d'un envoi de données).&lt;br /&gt;
&lt;br /&gt;
Enfin si le temps le permets on pourra mettre en une place un système de codage de l'information avec par exemple un codage redondant permettant de corrigé l'erreur (À définir, on pourra faire constater l'efficacité d'une méthode de codage au choix).&lt;br /&gt;
&lt;br /&gt;
=== Étapes/Déroulement du projet ===&lt;br /&gt;
&lt;br /&gt;
De même que pour le cahier des charges, il se peut que les étapes diffèrent plus ou moins, en fonction des disponibilités, matérielles et contraintes.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Caractérisation des blocs Mini-circuits et épluchage des documentations techniques====&lt;br /&gt;
Avant de les utiliser dans la chaine de transmission, nous avons à faire une caractérisation des blocs fournis:&lt;br /&gt;
&lt;br /&gt;
-la caractérisation du VCO.&lt;br /&gt;
&lt;br /&gt;
-l'étude des possibilités offerte par le modulateur (cela déterminera le nombre de points possible dans la constellation, ie savoir si l'on peut aller au-delà de la QPSK).&lt;br /&gt;
&lt;br /&gt;
-la caractérisation des mélangeurs (Mixer), leurs facteurs réels de multiplication.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Utilisation et exploitation des caractérisations ====&lt;br /&gt;
On pourra ensuite trouver les paramètres pour régler correctement dans notre chaine de transmission certains de nos sous-systèmes comme la boucle à verrouillage de phase.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Génération d'un flux des données numériques ====&lt;br /&gt;
Comme dit précédemment, l'idéal et d'avoir un flux de données numériques transmis en permanence.&lt;br /&gt;
Pour cela plusieurs solutions s'offre à nous, on pourra utiliser un montage générateur pseudo aléatoire (un circuit que l'on a fait l'année dernière en Conception de Circuit Électronique).&lt;br /&gt;
On pourra &amp;quot;émuler&amp;quot; ce montage avec un Arduino, ou bien même le faire au moyen de la Nanoboard.&lt;br /&gt;
On pourra aussi transmettre des chaines de caractère en continu.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Test de la chaine ====&lt;br /&gt;
Une fois les étapes précédentes réalisées, on pourra passer au test de la chaine de transmission. Il faudra vérifier le bon fonctionnement en aval, dedans (boucle à verrouillage de phase), et en amont de la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Première mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
Il est possible que la conception d'un dispositif soit nécessaire que ce soit pour les deux mesures du B.E.R..&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Antennes ====&lt;br /&gt;
Si toutes les étapes précédentes sont satisfaites, on pourra alors faire un canal de transmission plus intéressant, à savoir l'air.&lt;br /&gt;
Nous passerons alors à la conception des antennes, émettrice et réceptrice.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Deuxième mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Codage de l'information et correction d'erreur ====&lt;br /&gt;
En toute fin de ce projet, on pourra même mettre deux dispositifs en aval et en amont de la chaine de transmission.&lt;br /&gt;
On réalisera alors un codeur et un décodeur permettant de faire de la détection/correction d'erreur.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Mise en place d'outil de débogage (tout au long)====&lt;br /&gt;
La mise en place de simples outils de débogage et primordiale, ceux-ci permettront de vérifier le bon fonctionnement de la chaine.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Proposition d'un sujet de TP (tout au long) ====&lt;br /&gt;
Il se trouve que lors du déroulement du projet, on pourra être amené à se poser des questions au niveau des réglages de la chaine de transmission.&lt;br /&gt;
Or il est fort probable que les élèves qui travailleront sur ce TP pourront alors se poser les mêmes questions.&lt;br /&gt;
C'est pour cela qui sera judicieux de prendre soin de noter les problématiques rencontrées et de donner un certain fil de développement pour venir à bout de la problématique posée.&lt;br /&gt;
Ce qui reviendra à proposer des axes/questions sur les manipulations de cette maquette de TP.&lt;br /&gt;
&lt;br /&gt;
== Note valable pour toutes les semaines ==&lt;br /&gt;
&lt;br /&gt;
'''[[Si un point vous semble imprécis, veuillez vous reporter aux détails fournis en annexe.]]'''&lt;br /&gt;
&lt;br /&gt;
== 1éme semaine: (du 27/01/2014 au 01/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Séance du 05/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Pour bien comprendre les différentes choses à réaliser, on a refait les manipulations vues en TP. On a, pour cela utiliser la maquette didactique TIMS pour générer différent type de modulation:&lt;br /&gt;
&lt;br /&gt;
-la modulation en 4,8,16PSK (on obtient une constellation en forme de cercle).&lt;br /&gt;
&lt;br /&gt;
-La modulation en 4,8,16QAM (on obtient une constellation avec un carré, ou deux: de différentes tailles).&lt;br /&gt;
&lt;br /&gt;
On a très vite dégagé la nécessité de réaliser un montage générateur de tous les mots numériques possibles.&lt;br /&gt;
On a donc fait un programme sur arduino qui équivaut au générateur pseudo aléatoire.&lt;br /&gt;
Celui-ci est directement inspiré du montage que l'on a réalisé l'année dernière en conception de circuit électronique.&lt;br /&gt;
&lt;br /&gt;
Séance du 06/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Lors de cette séance on a exploré toutes les possibilités concernant la communication entre la maquette/carte, car cela pour avoir une influence non négligeable sur le choix de la carte F.P.G.A. et du design de la maquette.&lt;br /&gt;
&lt;br /&gt;
On a donc aussi fait des recherches concernant les possibilités de communications et les blocs I.P. (Intellectual Properties) permettant de programmer un F.P.G.A.&lt;br /&gt;
&lt;br /&gt;
Et enfin, on a eu une discussion avec un responsable technique pour ce qui de la C.E.M. (Compatibilité Electro-Magnétique)&lt;br /&gt;
&lt;br /&gt;
== 2éme semaine: (du 03/02/2014 au 08/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Réflexion sur les possibilités possibles et offertes par le sujet pour ce qui est des parties de communications entre la maquette en interne et de son environnement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_principe_carte_semaine_2.PNG|300px|thumb|center|Maquette en interne/externe.]]&lt;br /&gt;
&lt;br /&gt;
N'ayant jamais utilisé d'autre carte que la Nanoboard, on s'est attelé à faire des recherches sur la manière de procéder pour programmer une carte F.P.G.A., il se trouve que chaque carte de développement à ses propres manières pour être programmé.&lt;br /&gt;
&lt;br /&gt;
On a pris le soin de noter toutes les questions concernant le F.P.G.A. pour un intervenant industriel qui assura un cours la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
== 3éme semaine: (du 10/02/2014 au 15/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Ayant les oscillateurs commandables en tension, on a pu commencer à faire une manipulation avec les composants Mini-Circuit.&lt;br /&gt;
&lt;br /&gt;
Mais après un problème suite à une manipulation l'un des VCOs ne fonctionne plus.&lt;br /&gt;
&lt;br /&gt;
Ce qui nous amène à penser qu'il sera judicieux de prévoir une alimentation au niveau de la carte.&lt;br /&gt;
&lt;br /&gt;
Celle-ci devra être inférieure ou égale à la tension maximale d'alimentation du composant (ceux-ci étant très sensible).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Questions/Réponses:&lt;br /&gt;
&lt;br /&gt;
Comment fait-on pour programmer une carte F.P.G.A. est-ce que la programmation se fait &amp;quot;in situe&amp;quot; ? (in situe : c'est à dire sur la carte elle-même) &lt;br /&gt;
Oui, c'est ce qui est utilisé, via un câble JTAG.&lt;br /&gt;
&lt;br /&gt;
Est-ce possible faire une interface USB pour permettre à un ordinateur de communiquer avec la maquette/carte via un F.P.G.A. ? Oui.&lt;br /&gt;
&lt;br /&gt;
Est-ce que la gestion de l'interface Ethernet est envisageable ? Oui.&lt;br /&gt;
&lt;br /&gt;
Pour une communication en protocole UDP avec un ordinateur via une liaison Ethernet, est-ce qu'il y a d'autres façons que d'utiliser un &amp;quot;SoftCore&amp;quot; ?&lt;br /&gt;
&lt;br /&gt;
Oui, il existe aussi bien en Software, qu'en Hardware.&lt;br /&gt;
&lt;br /&gt;
== 4éme semaine: (du 17/02/2014 au 22/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a donc repris l'idée de la 2éme semaine.&lt;br /&gt;
&lt;br /&gt;
Après avoir mis en place un cahier des charges au niveau des qualités, bande passante minimale.&lt;br /&gt;
&lt;br /&gt;
Nous avons fait des recherches sur les composants à utiliser (i.e. CAN, CAN, ...)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous a permis après une édition rapide de schéma électrique (schematic) d'avoir une idée du nombre de pins dont nous aurons besoin sur une carte FPGA afin de réaliser le projet.&lt;br /&gt;
&lt;br /&gt;
Après prospection, il se trouve que nous nous dirigerions vers la carte Digilent Spartan 3, dont l'école était déjà en possession.&lt;br /&gt;
&lt;br /&gt;
Donc nous nous sommes attelés à faire des recherches et des essais sur cette carte et pour notamment trouver un moyen de la faire fonctionner.&lt;br /&gt;
&lt;br /&gt;
== 5éme semaine: (du 03/03/2014 au 08/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, après plusieurs heures de recherches et d'essai infructueux, on a fini par trouver les drivers pour le câble USB diligent.&lt;br /&gt;
&lt;br /&gt;
Et donc ainsi avoir un fonctionnement de la communication via le câble JTAG plus propice au fonctionnement de la carte.&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur une partie des composants et des dimensionnements pour certains d'entre eux (valeur de résistance,capacité...)&lt;br /&gt;
&lt;br /&gt;
Schématics: Édition de multiple bibliothèque pour Altium, intégrant à la fois schématics et leur empreinte PCB associée.&lt;br /&gt;
&lt;br /&gt;
(On a pu constater qu'une interface 3v3 5v n'est pas forcement nécessaire pour assurer le bon fonctionnement entre deux cartes avec des tensions d'alimentation différentes.)&lt;br /&gt;
&lt;br /&gt;
== 6éme semaine: (du 10/03/2014 au 15/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur l'ensemble des composants et des choix de régulateur et utilisation d'autre diode Zener.&lt;br /&gt;
&lt;br /&gt;
On trouvera le schéma intégral avec les bibliothèques nécessaires dans la semaine 5.&lt;br /&gt;
&lt;br /&gt;
Cette semaine a été dédiée à l'envoi de la commande des composants au sein du magasin de l'école et du fournisseur.&lt;br /&gt;
&lt;br /&gt;
Après envoi de la commande, il se trouve que le projet a changé d'objectif principal.&lt;br /&gt;
&lt;br /&gt;
Il est maintenant prioritaire de réaliser un code VHDL capable d'évaluer la vitesse de transmission numérique du côté récepteur.&lt;br /&gt;
&lt;br /&gt;
== 7éme semaine: (du 17/03/2014 au 22/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Pour cette semaine, on s'est concentré sur la réalisation d'un générateur pseudo aléatoire en interne au FPGA.&lt;br /&gt;
&lt;br /&gt;
On réalisera une échelle de résistance afin de réaliser une conversion numérique analogique afin de l'envoyer sur la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
Ce code de &amp;quot;base&amp;quot; nous permettra de réaliser un flux de données fictif pour obtenir toutes les combinaisons récupérant le résultat du bus.&lt;br /&gt;
&lt;br /&gt;
[[MédiaP34_2013_2014_gene_pseudo_19_03_2014_6_semaine_7.zip|Archive contenant le projet ISE Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_rtl_semaine_7.PNG|300px|thumb|center|extrait du schéma RTL, on peut y voir clairement les inférences de Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
Ce schéma a deux entrées et une sortie, une entrée d'initialisation, une horloge et une sortie pour la trame en pseudo aléatoire.&lt;br /&gt;
&lt;br /&gt;
On fera l'essai sur la carte lors de la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
== 8éme semaine: (du 24/03/2014 au 26/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Après le premier test, on pourrait penser que l'on récupère du bruit en sortie de la carte:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0024_1_probleme_d_overshoot_semaine_8.jpg|300px|thumb|center|Overshoot.]]&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir remédier à ce problème, on a fait une prédivision de l'horloge&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0037_1_div_freq_semaine_8.jpg|300px|thumb|center|Overshoot après division.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0039_1_div_freq_zoom_semaine_8.jpg|300px|thumb|center|Overshoot après division (Zoom).]]&lt;br /&gt;
&lt;br /&gt;
Archive contenant toutes les modifications:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_26_03_2014_2_semaine_8.zip|VHDL Semaine 8.]]&lt;br /&gt;
&lt;br /&gt;
On a trouvé un moyen de faire un CNA facilement, via une &amp;quot;échelle dite R-2R&amp;quot;. [[http://www.uchobby.com/index.php/2008/01/08/arduino-audio-dac-options/|Pour le réseau R 2R.]]&lt;br /&gt;
&lt;br /&gt;
Il faut encore modifier le VHDL pour pouvoir l'exploiter et ainsi générer une constellation.&lt;br /&gt;
&lt;br /&gt;
== 9éme semaine: (du 28/03/2014 au 03/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pris donc le soin de modifier le VHDL:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_31_03_2014_1_semaine_9.zip|VHDL semaine 9]]&lt;br /&gt;
&lt;br /&gt;
Ce VHDL à été mis à jour, avec deux entrées (initialisation et une horloge) et un bus de sortie (8 bits), avec les trames pseudoaléatoires.&lt;br /&gt;
&lt;br /&gt;
On envoie ces signaux sur deux C.N.A.s (4 bits chacun) pour générer deux signaux I et Q, on peut voir une constellation se dessiner en mode X-Y.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0072_1_Montage_entier_4qam_semaine_9.jpg|300px|thumb|center|Montage avec constellations 4QAM.]]&lt;br /&gt;
&lt;br /&gt;
D'autres constellations réalisées sont disponibles en annexe. On peut monter jusqu'à une constellation de 256 points (2^4*2^4).&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage complet de toute la chaine de transmission. Il se trouve que la Boucle à Verrouillage de Phase (ou appellée PLL, Phase Loop Locker) ne se verrouille pas sur la porteuse du signal que l'on souhaite récupéré, de ce fait on ne peut pas récupérer les signaux I et Q.&lt;br /&gt;
&lt;br /&gt;
== 10éme semaine: (du 07/04/2014 au 10/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage que l'on évoquait en semaine 9:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0027_montage_realisee_semaine_10.jpg|center|thumb|300px|Montage pour améliorer la PLL.]]&lt;br /&gt;
&lt;br /&gt;
Il se trouve qu’après un réglage précis de la tension d'offset permettant d'être un proche de la fréquence à capturer on obtient:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0025_PLL_non_verrouillage_semaine_10.jpg|center|thumb|300px|Signaux I/Q après ajout du montage.]]&lt;br /&gt;
&lt;br /&gt;
Pour ce qui des axes d'amélioration et de développement, on pourra proposer:&lt;br /&gt;
&lt;br /&gt;
-Améliorer la P.L.L.&lt;br /&gt;
&lt;br /&gt;
-Écrire le VHDL permettant de faire la remise en forme en utilisant un montage simplifié de la chaine de transmission&lt;br /&gt;
&lt;br /&gt;
-Réaliser la carte&lt;br /&gt;
&lt;br /&gt;
Liens pour la P.L.L.:&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Phase-locked_loop&lt;br /&gt;
&lt;br /&gt;
http://fr.wikipedia.org/wiki/Boucle_%C3%A0_phase_asservie&lt;br /&gt;
&lt;br /&gt;
== Conclusion: ==&lt;br /&gt;
&lt;br /&gt;
Ce projet intéressant m'a permis de prendre conscience les différences fondamentales entre la théorie et la pratique. Cela m'a permis de prendre conscience que faut toujours avoir un esprit critique envers la théorie, car il faut savoir découvrir l'origine du problème en cas de dysfonctionnement, car le travail d'un ingénieur ne se limite pas à fournir des solutions.&lt;br /&gt;
&lt;br /&gt;
Mon projet scolaire s'est donc achevé à ce point, cependant d'autres élèves pourront prendre le relais en réalisant la carte correspondant au schéma et ainsi réaliser rapidement l'interface entre la carte FPGA et la maquette. Et pourront se concentrer sur la mise en route intégrale de la chaine.&lt;br /&gt;
&lt;br /&gt;
= Annexes =&lt;br /&gt;
&lt;br /&gt;
== Annexe A: Détails techniques des semaines ==&lt;br /&gt;
&lt;br /&gt;
=== 1éme semaine: (du 27/01/2014 au 01/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Après on a réfléchi sur la potentielle conception/utilisation d'une carte FPGA.&lt;br /&gt;
Il sera judicieux de ne pas se précipiter sur le schéma et la conception/utilisation d'une carte FPGA, sans avoir, au préalable fait le VHDL et le testez avec un banc de test virtuel.&lt;br /&gt;
L'intérêt et de mettre en valeur la nécessité ou non de certains signaux pour le schéma de la carte.&lt;br /&gt;
On va mettre en oeuvre les connaissances acquises au S7 en VHDL (en TP de Circuit Numérique Programmble).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est de l'Arduino, on a répondu aux interrogations suivantes (certaines de ces questions paraissent triviales, mais on préfère éviter les surprises):&lt;br /&gt;
&lt;br /&gt;
Quelle est la vitesse maximale de la communication série de l'Arduino ?&lt;br /&gt;
-115200bauds&lt;br /&gt;
&lt;br /&gt;
Est-ce que, un programme de type &amp;quot;Analog Write&amp;quot; est-il une vraie sortie analogique ?&lt;br /&gt;
&lt;br /&gt;
-Non, c'est juste une PWM. Elle sera exploitable pour faire les signales I/Q mais très contraignantes, car il faudra filtré le signal, et ce sera beaucoup trop lent (du au fait que la modulation est faite au alentour de 850Mhz), le FPGA sera un passage obligé cela ouvrira les portes d'un plus grand débit.&lt;br /&gt;
&lt;br /&gt;
==== Manipulation réalisée sur la maquette TIMS : ====&lt;br /&gt;
&lt;br /&gt;
On a fait un des montages présentés dans l'ouvrage &amp;quot;Volume D1 Fundamental Digital Experiments&amp;quot; dans le but de visualiser l’objectif à atteindre.&lt;br /&gt;
&lt;br /&gt;
On obtient la constellation suivante (16QAM):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_tims_semaine_1.PNG|300px|thumb|center|Constellation visualisée en mode X-Y.]]&lt;br /&gt;
&lt;br /&gt;
Ce qui correspond à deux signaux en visualisation temporelle de cette forme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_temporelle_tims_semaine_1.PNG|300px|thumb|center|Signaux I et Q. (Image très floutée, à remplacer)]]&lt;br /&gt;
&lt;br /&gt;
On pourra facilement obtenir le même résultat en générant un bus de trame pseudo aléatoire et en l'injectant dans un C.N.A. (Conversion Numérique Analogique)&lt;br /&gt;
&lt;br /&gt;
==== Code Arduino réalisé: ====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schema_electronique_generateur_pseudo_aleatoire.png|300px|thumb|center|Schéma électronique du générateur pseudo aléatoire.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_chrono_simule.PNG|300px|thumb|center|Résultat de la simulation du générateur pseudo aléatoire (on a eu la même chose en pratique).]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_arduino.jpg|300px|thumb|center|Resultat avec le générateur pseudo aléatoire &amp;quot;émuler&amp;quot; avec l'Arduino.]]&lt;br /&gt;
&lt;br /&gt;
Comparaison carte réelle/résultat Arduino:&lt;br /&gt;
&lt;br /&gt;
C'était exactement les signaux attendus (même s'il y un décalage a par rapport à l'original).&lt;br /&gt;
&lt;br /&gt;
On aura bien pour une QPSK (4PSK) tous les couples (ie 00,01,11 et 10).&lt;br /&gt;
&lt;br /&gt;
À propos de l'arduino, on pourra envisager une amélioration pour générer une séquence plus longue:&lt;br /&gt;
&lt;br /&gt;
-il faudra simplement utiliser un tableau d'entier.&lt;br /&gt;
&lt;br /&gt;
-paramétrer sa taille avec un N par exemple.&lt;br /&gt;
&lt;br /&gt;
-N correspondra à la taille de séquence de longueur 2^N.&lt;br /&gt;
&lt;br /&gt;
Voir la section &amp;quot;Code Arduino réalisé&amp;quot; en annexe B dans la semaine correspondante.&lt;br /&gt;
&lt;br /&gt;
==== Possibilités de communications: ====&lt;br /&gt;
&lt;br /&gt;
Exploration des possibilités de communication entre le PC et la carte en amont:&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; Ethernet: =====&lt;br /&gt;
&lt;br /&gt;
*+ Vitesse de transmission (~10M-100M-G)bauds&lt;br /&gt;
&lt;br /&gt;
*- La gestion du flux de données doit être faite par un microcontrôleur (celui-ci pourra être implémenté un bloc I.P. à l'intérieur du FPGA)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; - Haute consommation de CLB du FPGA.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; SPI (communication série): =====&lt;br /&gt;
&lt;br /&gt;
*- Vitesse de transmission&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Arduino capable de communiquer jusqu'a 115200 bauds&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; D'après certaines discussions sur des forums, on pourrait « pousser » au-delà.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; I2C : =====&lt;br /&gt;
&lt;br /&gt;
Communication abandonnée, ce n'est pas une priorité.&lt;br /&gt;
&lt;br /&gt;
==== À propos des blocs I.P.: ====&lt;br /&gt;
&lt;br /&gt;
En consultant les ordinateurs et en s'appuyant des T.P.s de CNP, on constate que les blocs suivants existent:&lt;br /&gt;
&lt;br /&gt;
- Xilinx Microblaze/Xilinx Power PC (&amp;quot;µP FPGA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Est-ce possible d'utiliser ces blocs I.P. pour programmer un FPGA sur une carte autre que la Nanoboard ? Comment ?&lt;br /&gt;
&lt;br /&gt;
- EMACx (Ethernet Media Acess Control)(:lien physique entre processeurs et &amp;quot;standart Physical Layer device IEEE802.3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===== Conception de la carte: =====&lt;br /&gt;
&lt;br /&gt;
L'idéal est de se documenter sur la Compatibilité électromagnétique.&lt;br /&gt;
&lt;br /&gt;
=== 2éme semaine: (du 03/02/2014 au 08/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 3éme semaine: (du 10/02/2014 au 15/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, après avoir eu le problème de manipulation, nous avons pu prendre connaissance d'un certain montage qui s’avéra utile pour la conception de la carte/maquette.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_limiteur_de_courant_semaine_3.PNG|300px|thumb|center|Schéma limiteur de courant.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que ce montage se retrouve dans la partie &amp;quot;typical application&amp;quot; de la documentation technique du 7805.&lt;br /&gt;
&lt;br /&gt;
=== 4éme semaine: (du 17/02/2014 au 22/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
On souhaite pouvoir réaliser une communication unidirectionnelle ou même transmettre un signal audio ce qui nous contraint à une bande passante minimale de 48kHz, on prendra 200kHz (pour être bien au-delà de la condition du théorème de Shannon): le but serait donc de brancher par exemple une source audio quelconque puis de la transmettre à travers la maquette et de la recomposer en fin de chaine.&lt;br /&gt;
&lt;br /&gt;
Après édition rapide du schéma, on en dégage qu'il nous faudra un minimum d'environ 50 entrées/sorties. Mais ceci ce nombre sera très probablement revu à la hausse lors de prochaine séance.&lt;br /&gt;
&lt;br /&gt;
Voici la carte que l'on utilisera dans la suite du projet:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_S3BOARD-top-400_semaine_4.gif|300px|thumb|center|Digilent Spartan 3.]]&lt;br /&gt;
&lt;br /&gt;
=== 5éme semaine: (du 03/03/2014 au 08/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lien vers le Design complet avec les librairies incluses (on remarquera qu'il serait judicieux d’installer toutes les librairies avant d’essayer d'ouvrir le schéma)&lt;br /&gt;
&lt;br /&gt;
A notez aussi que l'on trouvera des reliques de feuilles Excel permettant de trouver rapidement des ratios dans la série E12.&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_Design_pcb_plus_librairies_semaine_5_6.zip|Schéma + Bibliothèques.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.pdf|Schéma en PDF.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.png|Schéma au format A2.]]&lt;br /&gt;
&lt;br /&gt;
=== 6éme semaine: (du 10/03/2014 au 15/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 7éme semaine: (du 17/03/2014 au 22/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 8éme semaine: (du 24/03/2014 au 26/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 9éme semaine: (du 28/03/2014 au 03/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0061_1_r_2r_semaine_9.jpg|center|thumb|300px|Le réseau R-2R.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0062_1_4QAM_semaine_9.jpg|center|thumb|300px|4QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0066_1_16QAM_semaine_9.jpg|center|thumb|300px|16QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0069_1_64QAM_semaine_9.jpg|center|thumb|300px|64QAM.]]&lt;br /&gt;
&lt;br /&gt;
Pas de photos pour la constellation à 256 points, mais elle a été réalisée.&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du montage, malgré que la P.L.L., on a un signal d'erreur après filtrage :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Chaine 1: Vtune (commande du V.C.O.)/Chaine 2: &amp;quot;erreur&amp;quot; de commande]]&lt;br /&gt;
&lt;br /&gt;
Ce qui met en valeur immédiatement deux problèmes majeurs:&lt;br /&gt;
&lt;br /&gt;
La chaine fonctionne sur le papier, mais lors de sa mise en pratique, il faut penser à mettre une tension d'offset et aussi réaliser une amplification de l'erreur pour avoir des grandeurs de commande adaptée au Vtune du V.C.O..&lt;br /&gt;
&lt;br /&gt;
On propose l'amélioration suivante (qui sera réalisé à la prochaine séance):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Proposition de voie d'amélioration.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que les valeurs des résistances et des capacités on était choisi pour permettre un fonctionnement correct des A.O. (Amplificateur Opérationnel), mais pas pour ce qui de l'asservissement de la boucle par manque de temps. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette, on a eu à démonter le montage à cause de contraintes concernant les Mini-circuits (car utilisé en travaux pratiques).&lt;br /&gt;
&lt;br /&gt;
=== 10éme semaine: (du 07/04/2014 au 10/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
Spectres des signaux de la chaine de transmission:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0001_allure_spectre_reception_semaine_10.jpg|center|thumb|300px|Spectre en réception.]]&lt;br /&gt;
&lt;br /&gt;
Porteuse utilisée pour la modulation I/Q à environ 60MHz.&lt;br /&gt;
&lt;br /&gt;
Porteuse utilisée pour le transport en fréquence à environ 810MHz:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0035_constellation_recupere_PLL_NV_semaine_10.jpg|center|thumb|300px|&amp;quot;Constellation&amp;quot; récupérée avec la PLL défectueuse (on souhaite se verrouiller sur la raie à 868MHz).]]&lt;br /&gt;
&lt;br /&gt;
Question en suspens: faudrait-il utiliser un filtre passe-bande incluant 868Mhz pour pouvoir se verrouiller sur cette fréquence ?&lt;br /&gt;
&lt;br /&gt;
On remarquera le fait que l'oscillateur du côté de la chaine d'émission a d'importantes non-linéarités (on peut observer à l'analyseur de spectre 3 à 4 raies aux fréquences multiples).&lt;br /&gt;
&lt;br /&gt;
Ce qui donne un diagramme de constellation plutôt mauvais si l'on fait le montage suivant:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_montage_non_linearite_vco_constellation_semaine_10.PNG|center|thumb|300px|Montage réalisée.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_sortie_montage_non_linearite_semaine_10.PNG|center|thumb|300px|La constellation 4QAM est attendue, on est loin du résultat attendu (aucune photo n'a était réalisé d'ou le dessin).]]&lt;br /&gt;
&lt;br /&gt;
== Annexe B: Digilent Spartan 3 ==&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire fonctionner la carte Digilent Spartan 3: ===&lt;br /&gt;
&lt;br /&gt;
Ne connectez pas de connecteur JTAG pendant les installations. Redémarrez après chaque installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut savoir que le l'ISE Webpack 14.6 fonctionne avec la carte (n'utilisez pas la 14.7, elle ne supporte pas la génération spartan 3 !):&lt;br /&gt;
&lt;br /&gt;
Installez donc l'ISE WebPack 14.6 (ou antérieur à condition que celle-ci soit supérieur à la 7.1i (d'après leur documentation))&lt;br /&gt;
&lt;br /&gt;
(voir lien utile sur Xilinx)&lt;br /&gt;
&lt;br /&gt;
Une fois l'installation de l'ISE terminé, faites en sorte d'avoir celui que soit opérationnel (la licence est gratuite !).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installez la &amp;quot;library&amp;quot; ADEPT 2.3 voir le lien utile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après vous n'avez plus qu'a utilisez ISE Xilinx normalement et vous serez capable de reconnaitre la carte via la liaison JTAG, et de le programmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Liens utiles: ===&lt;br /&gt;
&lt;br /&gt;
Lien constructeur/vendeur (avec ressources utiles en bas de la page):&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?Prod=S3BOARD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien &amp;quot;Library&amp;quot; pour le câble USB digilent:&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,69&amp;amp;Prod=ADEPT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour l'ISE 14.6):&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/products/design-tools/ise-design-suite/index.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour les versions antérieures veuillez faire attention au système d'exploitation, votre architecture matérielle et le FPGA cible):&lt;br /&gt;
&lt;br /&gt;
(Les informations de compatibilité son sur la page suivante:) (mots clés: xilinx classic(s))&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/tools/classics.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream, et le charger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en &amp;quot;non&amp;quot;-volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream et l'utiliser pour générer un .mcs qui vous permettra d'inscrire le programme dans la mémoire (E?)PROM.&lt;br /&gt;
&lt;br /&gt;
On remarquera que la programmation en non volatile est utile pour faire un remise à zéro et recharger le contenu de l'(E?)PROM, mais semble être sensible au débranchement de l'adaptateur d'alimentation de la carte.&lt;br /&gt;
&lt;br /&gt;
=== Exemple de programmation: ===&lt;br /&gt;
&lt;br /&gt;
Voir le lien digilent pour ceci dans cette annexe.&lt;br /&gt;
&lt;br /&gt;
= Fichiers Rendus =&lt;br /&gt;
&lt;br /&gt;
Rapport projet numéro 34 VAESSEN :[[Fichier:Rapport_projet_p34_s8_6.pdf]]&lt;br /&gt;
&lt;br /&gt;
Source VHDL Final :[[Fichier:P34_2013_2014_gene_pseudo_31_03_2014_1_semaine_9.zip]]&lt;br /&gt;
&lt;br /&gt;
Code Arduino :[[Fichier:P34_2013_204_Generateur_pseudo.zip]]&lt;br /&gt;
&lt;br /&gt;
Design sous Altium :[[Fichier:P34_2013_2014_Design_pcb_plus_librairies_semaine_5_6.zip]]&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11800</id>
		<title>Modem pour le numérique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11800"/>
				<updated>2014-04-15T08:23:26Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* 10éme semaine: (du 07/04/2014 au 10/04/2014) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Modulateur et démodulateur pour communications numériques =&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
=== Présentation générale du projet ===&lt;br /&gt;
&lt;br /&gt;
Dans le cadre des TPs d'électronique et de transmission RF, nous avons découvert qu'il existe plusieurs modes de modulation, pour transmettre un signal modulant.&lt;br /&gt;
&lt;br /&gt;
Celles vues en TP au S7 sont la modulation en amplitude, en fréquence, en phase, en BPSK et en QPSK.&lt;br /&gt;
&lt;br /&gt;
Or les modulations en phase, en fréquence et en amplitude étant celles les plus connues, la modulation en QAM (Modulation d'Amplitude en Quadrature) est quant à elle moins connue, mais tout aussi utilisées:&lt;br /&gt;
&lt;br /&gt;
-pour la TNT en 64 QAM (en France).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_64qam.jpg|300px|thumb|center|Exemple de constellation 64QAM.]]&lt;br /&gt;
&lt;br /&gt;
-pour le WiFi en 64-QAM ou 256-QAM (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Or ces deux dernières étant peu représentées au niveau des travaux pratiques, ce projet permettra de fournir un peu plus de pratique sur les modulations de type QAM (en diagramme I/Q) dans le domaine des radiofréquences (~800MHz).&lt;br /&gt;
&lt;br /&gt;
(Le nombre devant le QAM indique le nombre de points dans le diagramme I/Q qu'on appelle aussi constellation)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se réserve le droit de faire '''évoluer''' le cahier des charges a posteriori, si certaines contraintes étaient amenées à évoluer ou se préciser.&lt;br /&gt;
&lt;br /&gt;
=== Objectif et intérêt du projet ===&lt;br /&gt;
&lt;br /&gt;
Pour cela, on nous a fourni des modules commerciaux Mini-circuit pouvant travailler dans les radios-fréquences.&lt;br /&gt;
&lt;br /&gt;
Ceux-ci permettront de mettre en place une grande partie de la chaine de transmission (voir schéma de la chaine de transmission).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_modulation.PNG|300px|thumb|center|Modulation.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_demodulation.PNG|300px|thumb|center|Démodulation.]]&lt;br /&gt;
&lt;br /&gt;
On a tout d'abord à mettre en place une carte FPGA et/ou un dispositif permettant d'envoyer un flux de données numériques continuellement pour pouvoir visualiser le diagramme I/Q (mise en valeur du diagramme I/Q et voir même un diagramme un peu plus complexe que le BPSK ou le QPSK).&lt;br /&gt;
&lt;br /&gt;
Le canal de transmission qui sera un simple fil électrique, mais pourra devenir une antenne réceptrice et émettrice si le temps imparti le permet (mise en valeur du et mesure du Bit Error Rate qui sera bien sûr différent suivant le canal de transmission).&lt;br /&gt;
&lt;br /&gt;
Du côté réception ,après démodulation du signal, une remise en forme et une interprétation des données seront réalisées, celle-ci dépendra bien entendu de la provenance du flux de données (constater le succès ou l'échec d'un envoi de données).&lt;br /&gt;
&lt;br /&gt;
Enfin si le temps le permets on pourra mettre en une place un système de codage de l'information avec par exemple un codage redondant permettant de corrigé l'erreur (À définir, on pourra faire constater l'efficacité d'une méthode de codage au choix).&lt;br /&gt;
&lt;br /&gt;
=== Étapes/Déroulement du projet ===&lt;br /&gt;
&lt;br /&gt;
De même que pour le cahier des charges, il se peut que les étapes diffèrent plus ou moins, en fonction des disponibilités, matérielles et contraintes.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Caractérisation des blocs Mini-circuits et épluchage des documentations techniques====&lt;br /&gt;
Avant de les utiliser dans la chaine de transmission, nous avons à faire une caractérisation des blocs fournis:&lt;br /&gt;
&lt;br /&gt;
-la caractérisation du VCO.&lt;br /&gt;
&lt;br /&gt;
-l'étude des possibilités offerte par le modulateur (cela déterminera le nombre de points possible dans la constellation, ie savoir si l'on peut aller au-delà de la QPSK).&lt;br /&gt;
&lt;br /&gt;
-la caractérisation des mélangeurs (Mixer), leurs facteurs réels de multiplication.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Utilisation et exploitation des caractérisations ====&lt;br /&gt;
On pourra ensuite trouver les paramètres pour régler correctement dans notre chaine de transmission certains de nos sous-systèmes comme la boucle à verrouillage de phase.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Génération d'un flux des données numériques ====&lt;br /&gt;
Comme dit précédemment, l'idéal et d'avoir un flux de données numériques transmis en permanence.&lt;br /&gt;
Pour cela plusieurs solutions s'offre à nous, on pourra utiliser un montage générateur pseudo aléatoire (un circuit que l'on a fait l'année dernière en Conception de Circuit Électronique).&lt;br /&gt;
On pourra &amp;quot;émuler&amp;quot; ce montage avec un Arduino, ou bien même le faire au moyen de la Nanoboard.&lt;br /&gt;
On pourra aussi transmettre des chaines de caractère en continu.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Test de la chaine ====&lt;br /&gt;
Une fois les étapes précédentes réalisées, on pourra passer au test de la chaine de transmission. Il faudra vérifier le bon fonctionnement en aval, dedans (boucle à verrouillage de phase), et en amont de la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Première mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
Il est possible que la conception d'un dispositif soit nécessaire que ce soit pour les deux mesures du B.E.R..&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Antennes ====&lt;br /&gt;
Si toutes les étapes précédentes sont satisfaites, on pourra alors faire un canal de transmission plus intéressant, à savoir l'air.&lt;br /&gt;
Nous passerons alors à la conception des antennes, émettrice et réceptrice.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Deuxième mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Codage de l'information et correction d'erreur ====&lt;br /&gt;
En toute fin de ce projet, on pourra même mettre deux dispositifs en aval et en amont de la chaine de transmission.&lt;br /&gt;
On réalisera alors un codeur et un décodeur permettant de faire de la détection/correction d'erreur.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Mise en place d'outil de débogage (tout au long)====&lt;br /&gt;
La mise en place de simples outils de débogage et primordiale, ceux-ci permettront de vérifier le bon fonctionnement de la chaine.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Proposition d'un sujet de TP (tout au long) ====&lt;br /&gt;
Il se trouve que lors du déroulement du projet, on pourra être amené à se poser des questions au niveau des réglages de la chaine de transmission.&lt;br /&gt;
Or il est fort probable que les élèves qui travailleront sur ce TP pourront alors se poser les mêmes questions.&lt;br /&gt;
C'est pour cela qui sera judicieux de prendre soin de noter les problématiques rencontrées et de donner un certain fil de développement pour venir à bout de la problématique posée.&lt;br /&gt;
Ce qui reviendra à proposer des axes/questions sur les manipulations de cette maquette de TP.&lt;br /&gt;
&lt;br /&gt;
== Note valable pour toutes les semaines ==&lt;br /&gt;
&lt;br /&gt;
'''[[Si un point vous semble imprécis, veuillez vous reporter aux détails fournis en annexe.]]'''&lt;br /&gt;
&lt;br /&gt;
== 1éme semaine: (du 27/01/2014 au 01/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Séance du 05/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Pour bien comprendre les différentes choses à réaliser, on a refait les manipulations vues en TP. On a, pour cela utiliser la maquette didactique TIMS pour générer différent type de modulation:&lt;br /&gt;
&lt;br /&gt;
-la modulation en 4,8,16PSK (on obtient une constellation en forme de cercle).&lt;br /&gt;
&lt;br /&gt;
-La modulation en 4,8,16QAM (on obtient une constellation avec un carré, ou deux: de différentes tailles).&lt;br /&gt;
&lt;br /&gt;
On a très vite dégagé la nécessité de réaliser un montage générateur de tous les mots numériques possibles.&lt;br /&gt;
On a donc fait un programme sur arduino qui équivaut au générateur pseudo aléatoire.&lt;br /&gt;
Celui-ci est directement inspiré du montage que l'on a réalisé l'année dernière en conception de circuit électronique.&lt;br /&gt;
&lt;br /&gt;
Séance du 06/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Lors de cette séance on a exploré toutes les possibilités concernant la communication entre la maquette/carte, car cela pour avoir une influence non négligeable sur le choix de la carte F.P.G.A. et du design de la maquette.&lt;br /&gt;
&lt;br /&gt;
On a donc aussi fait des recherches concernant les possibilités de communications et les blocs I.P. (Intellectual Properties) permettant de programmer un F.P.G.A.&lt;br /&gt;
&lt;br /&gt;
Et enfin, on a eu une discussion avec un responsable technique pour ce qui de la C.E.M. (Compatibilité Electro-Magnétique)&lt;br /&gt;
&lt;br /&gt;
== 2éme semaine: (du 03/02/2014 au 08/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Réflexion sur les possibilités possibles et offertes par le sujet pour ce qui est des parties de communications entre la maquette en interne et de son environnement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_principe_carte_semaine_2.PNG|300px|thumb|center|Maquette en interne/externe.]]&lt;br /&gt;
&lt;br /&gt;
N'ayant jamais utilisé d'autre carte que la Nanoboard, on s'est attelé à faire des recherches sur la manière de procéder pour programmer une carte F.P.G.A., il se trouve que chaque carte de développement à ses propres manières pour être programmé.&lt;br /&gt;
&lt;br /&gt;
On a pris le soin de noter toutes les questions concernant le F.P.G.A. pour un intervenant industriel qui assura un cours la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
== 3éme semaine: (du 10/02/2014 au 15/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Ayant les oscillateurs commandables en tension, on a pu commencer à faire une manipulation avec les composants Mini-Circuit.&lt;br /&gt;
&lt;br /&gt;
Mais après un problème suite à une manipulation l'un des VCOs ne fonctionne plus.&lt;br /&gt;
&lt;br /&gt;
Ce qui nous amène à penser qu'il sera judicieux de prévoir une alimentation au niveau de la carte.&lt;br /&gt;
&lt;br /&gt;
Celle-ci devra être inférieure ou égale à la tension maximale d'alimentation du composant (ceux-ci étant très sensible).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Questions/Réponses:&lt;br /&gt;
&lt;br /&gt;
Comment fait-on pour programmer une carte F.P.G.A. est-ce que la programmation se fait &amp;quot;in situe&amp;quot; ? (in situe : c'est à dire sur la carte elle-même) &lt;br /&gt;
Oui, c'est ce qui est utilisé, via un câble JTAG.&lt;br /&gt;
&lt;br /&gt;
Est-ce possible faire une interface USB pour permettre à un ordinateur de communiquer avec la maquette/carte via un F.P.G.A. ? Oui.&lt;br /&gt;
&lt;br /&gt;
Est-ce que la gestion de l'interface Ethernet est envisageable ? Oui.&lt;br /&gt;
&lt;br /&gt;
Pour une communication en protocole UDP avec un ordinateur via une liaison Ethernet, est-ce qu'il y a d'autres façons que d'utiliser un &amp;quot;SoftCore&amp;quot; ?&lt;br /&gt;
&lt;br /&gt;
Oui, il existe aussi bien en Software, qu'en Hardware.&lt;br /&gt;
&lt;br /&gt;
== 4éme semaine: (du 17/02/2014 au 22/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a donc repris l'idée de la 2éme semaine.&lt;br /&gt;
&lt;br /&gt;
Après avoir mis en place un cahier des charges au niveau des qualités, bande passante minimale.&lt;br /&gt;
&lt;br /&gt;
Nous avons fait des recherches sur les composants à utiliser (i.e. CAN, CAN, ...)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous a permis après une édition rapide de schéma électrique (schematic) d'avoir une idée du nombre de pins dont nous aurons besoin sur une carte FPGA afin de réaliser le projet.&lt;br /&gt;
&lt;br /&gt;
Après prospection, il se trouve que nous nous dirigerions vers la carte Digilent Spartan 3, dont l'école était déjà en possession.&lt;br /&gt;
&lt;br /&gt;
Donc nous nous sommes attelés à faire des recherches et des essais sur cette carte et pour notamment trouver un moyen de la faire fonctionner.&lt;br /&gt;
&lt;br /&gt;
== 5éme semaine: (du 03/03/2014 au 08/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, après plusieurs heures de recherches et d'essai infructueux, on a fini par trouver les drivers pour le câble USB diligent.&lt;br /&gt;
&lt;br /&gt;
Et donc ainsi avoir un fonctionnement de la communication via le câble JTAG plus propice au fonctionnement de la carte.&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur une partie des composants et des dimensionnements pour certains d'entre eux (valeur de résistance,capacité...)&lt;br /&gt;
&lt;br /&gt;
Schématics: Édition de multiple bibliothèque pour Altium, intégrant à la fois schématics et leur empreinte PCB associée.&lt;br /&gt;
&lt;br /&gt;
(On a pu constater qu'une interface 3v3 5v n'est pas forcement nécessaire pour assurer le bon fonctionnement entre deux cartes avec des tensions d'alimentation différentes.)&lt;br /&gt;
&lt;br /&gt;
== 6éme semaine: (du 10/03/2014 au 15/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur l'ensemble des composants et des choix de régulateur et utilisation d'autre diode Zener.&lt;br /&gt;
&lt;br /&gt;
On trouvera le schéma intégral avec les bibliothèques nécessaires dans la semaine 5.&lt;br /&gt;
&lt;br /&gt;
Cette semaine a été dédiée à l'envoi de la commande des composants au sein du magasin de l'école et du fournisseur.&lt;br /&gt;
&lt;br /&gt;
Après envoi de la commande, il se trouve que le projet a changé d'objectif principal.&lt;br /&gt;
&lt;br /&gt;
Il est maintenant prioritaire de réaliser un code VHDL capable d'évaluer la vitesse de transmission numérique du côté récepteur.&lt;br /&gt;
&lt;br /&gt;
== 7éme semaine: (du 17/03/2014 au 22/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Pour cette semaine, on s'est concentré sur la réalisation d'un générateur pseudo aléatoire en interne au FPGA.&lt;br /&gt;
&lt;br /&gt;
On réalisera une échelle de résistance afin de réaliser une conversion numérique analogique afin de l'envoyer sur la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
Ce code de &amp;quot;base&amp;quot; nous permettra de réaliser un flux de données fictif pour obtenir toutes les combinaisons récupérant le résultat du bus.&lt;br /&gt;
&lt;br /&gt;
[[MédiaP34_2013_2014_gene_pseudo_19_03_2014_6_semaine_7.zip|Archive contenant le projet ISE Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_rtl_semaine_7.PNG|300px|thumb|center|extrait du schéma RTL, on peut y voir clairement les inférences de Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
Ce schéma a deux entrées et une sortie, une entrée d'initialisation, une horloge et une sortie pour la trame en pseudo aléatoire.&lt;br /&gt;
&lt;br /&gt;
On fera l'essai sur la carte lors de la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
== 8éme semaine: (du 24/03/2014 au 26/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Après le premier test, on pourrait penser que l'on récupère du bruit en sortie de la carte:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0024_1_probleme_d_overshoot_semaine_8.jpg|300px|thumb|center|Overshoot.]]&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir remédier à ce problème, on a fait une prédivision de l'horloge&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0037_1_div_freq_semaine_8.jpg|300px|thumb|center|Overshoot après division.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0039_1_div_freq_zoom_semaine_8.jpg|300px|thumb|center|Overshoot après division (Zoom).]]&lt;br /&gt;
&lt;br /&gt;
Archive contenant toutes les modifications:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_26_03_2014_2_semaine_8.zip|VHDL Semaine 8.]]&lt;br /&gt;
&lt;br /&gt;
On a trouvé un moyen de faire un CNA facilement, via une &amp;quot;échelle dite R-2R&amp;quot;. [[http://www.uchobby.com/index.php/2008/01/08/arduino-audio-dac-options/|Pour le réseau R 2R.]]&lt;br /&gt;
&lt;br /&gt;
Il faut encore modifier le VHDL pour pouvoir l'exploiter et ainsi générer une constellation.&lt;br /&gt;
&lt;br /&gt;
== 9éme semaine: (du 28/03/2014 au 03/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pris donc le soin de modifier le VHDL:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_31_03_2014_1_semaine_9.zip|VHDL semaine 9]]&lt;br /&gt;
&lt;br /&gt;
Ce VHDL à été mis à jour, avec deux entrées (initialisation et une horloge) et un bus de sortie (8 bits), avec les trames pseudoaléatoires.&lt;br /&gt;
&lt;br /&gt;
On envoie ces signaux sur deux C.N.A.s (4 bits chacun) pour générer deux signaux I et Q, on peut voir une constellation se dessiner en mode X-Y.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0072_1_Montage_entier_4qam_semaine_9.jpg|300px|thumb|center|Montage avec constellations 4QAM.]]&lt;br /&gt;
&lt;br /&gt;
D'autres constellations réalisées sont disponibles en annexe. On peut monter jusqu'à une constellation de 256 points (2^4*2^4).&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage complet de toute la chaine de transmission. Il se trouve que la Boucle à Verrouillage de Phase (ou appellée PLL, Phase Loop Locker) ne se verrouille pas sur la porteuse du signal que l'on souhaite récupéré, de ce fait on ne peut pas récupérer les signaux I et Q.&lt;br /&gt;
&lt;br /&gt;
== 10éme semaine: (du 07/04/2014 au 10/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage que l'on évoquait en semaine 9:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0027_montage_realisee_semaine_10.jpg|center|thumb|300px|Montage pour améliorer la PLL.]]&lt;br /&gt;
&lt;br /&gt;
Il se trouve qu’après un réglage précis de la tension d'offset permettant d'être un proche de la fréquence à capturer on obtient:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0025_PLL_non_verrouillage_semaine_10.jpg|center|thumb|300px|Signaux I/Q après ajout du montage.]]&lt;br /&gt;
&lt;br /&gt;
== Conclusion: ==&lt;br /&gt;
&lt;br /&gt;
Ce projet intéressant m'a permis de prendre conscience les différences fondamentales entre la théorie et la pratique. Cela m'a permis de prendre conscience que faut toujours avoir un esprit critique envers la théorie, car il faut savoir découvrir l'origine du problème en cas de dysfonctionnement, car le travail d'un ingénieur ne se limite pas à fournir des solutions.&lt;br /&gt;
&lt;br /&gt;
Mon projet scolaire s'est donc achevé à ce point, cependant d'autres élèves pourront prendre le relais en réalisant la carte correspondant au schéma et ainsi réaliser rapidement l'interface entre la carte FPGA et la maquette. Et pourront se concentrer sur la mise en route intégrale de la chaine.&lt;br /&gt;
&lt;br /&gt;
= Annexes =&lt;br /&gt;
&lt;br /&gt;
== Annexe A: Détails techniques des semaines ==&lt;br /&gt;
&lt;br /&gt;
=== 1éme semaine: (du 27/01/2014 au 01/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Après on a réfléchi sur la potentielle conception/utilisation d'une carte FPGA.&lt;br /&gt;
Il sera judicieux de ne pas se précipiter sur le schéma et la conception/utilisation d'une carte FPGA, sans avoir, au préalable fait le VHDL et le testez avec un banc de test virtuel.&lt;br /&gt;
L'intérêt et de mettre en valeur la nécessité ou non de certains signaux pour le schéma de la carte.&lt;br /&gt;
On va mettre en oeuvre les connaissances acquises au S7 en VHDL (en TP de Circuit Numérique Programmble).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est de l'Arduino, on a répondu aux interrogations suivantes (certaines de ces questions paraissent triviales, mais on préfère éviter les surprises):&lt;br /&gt;
&lt;br /&gt;
Quelle est la vitesse maximale de la communication série de l'Arduino ?&lt;br /&gt;
-115200bauds&lt;br /&gt;
&lt;br /&gt;
Est-ce que, un programme de type &amp;quot;Analog Write&amp;quot; est-il une vraie sortie analogique ?&lt;br /&gt;
&lt;br /&gt;
-Non, c'est juste une PWM. Elle sera exploitable pour faire les signales I/Q mais très contraignantes, car il faudra filtré le signal, et ce sera beaucoup trop lent (du au fait que la modulation est faite au alentour de 850Mhz), le FPGA sera un passage obligé cela ouvrira les portes d'un plus grand débit.&lt;br /&gt;
&lt;br /&gt;
==== Manipulation réalisée sur la maquette TIMS : ====&lt;br /&gt;
&lt;br /&gt;
On a fait un des montages présentés dans l'ouvrage &amp;quot;Volume D1 Fundamental Digital Experiments&amp;quot; dans le but de visualiser l’objectif à atteindre.&lt;br /&gt;
&lt;br /&gt;
On obtient la constellation suivante (16QAM):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_tims_semaine_1.PNG|300px|thumb|center|Constellation visualisée en mode X-Y.]]&lt;br /&gt;
&lt;br /&gt;
Ce qui correspond à deux signaux en visualisation temporelle de cette forme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_temporelle_tims_semaine_1.PNG|300px|thumb|center|Signaux I et Q. (Image très floutée, à remplacer)]]&lt;br /&gt;
&lt;br /&gt;
On pourra facilement obtenir le même résultat en générant un bus de trame pseudo aléatoire et en l'injectant dans un C.N.A. (Conversion Numérique Analogique)&lt;br /&gt;
&lt;br /&gt;
==== Code Arduino réalisé: ====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schema_electronique_generateur_pseudo_aleatoire.png|300px|thumb|center|Schéma électronique du générateur pseudo aléatoire.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_chrono_simule.PNG|300px|thumb|center|Résultat de la simulation du générateur pseudo aléatoire (on a eu la même chose en pratique).]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_arduino.jpg|300px|thumb|center|Resultat avec le générateur pseudo aléatoire &amp;quot;émuler&amp;quot; avec l'Arduino.]]&lt;br /&gt;
&lt;br /&gt;
Comparaison carte réelle/résultat Arduino:&lt;br /&gt;
&lt;br /&gt;
C'était exactement les signaux attendus (même s'il y un décalage a par rapport à l'original).&lt;br /&gt;
&lt;br /&gt;
On aura bien pour une QPSK (4PSK) tous les couples (ie 00,01,11 et 10).&lt;br /&gt;
&lt;br /&gt;
À propos de l'arduino, on pourra envisager une amélioration pour générer une séquence plus longue:&lt;br /&gt;
&lt;br /&gt;
-il faudra simplement utiliser un tableau d'entier.&lt;br /&gt;
&lt;br /&gt;
-paramétrer sa taille avec un N par exemple.&lt;br /&gt;
&lt;br /&gt;
-N correspondra à la taille de séquence de longueur 2^N.&lt;br /&gt;
&lt;br /&gt;
Voir la section &amp;quot;Code Arduino réalisé&amp;quot; en annexe B dans la semaine correspondante.&lt;br /&gt;
&lt;br /&gt;
==== Possibilités de communications: ====&lt;br /&gt;
&lt;br /&gt;
Exploration des possibilités de communication entre le PC et la carte en amont:&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; Ethernet: =====&lt;br /&gt;
&lt;br /&gt;
*+ Vitesse de transmission (~10M-100M-G)bauds&lt;br /&gt;
&lt;br /&gt;
*- La gestion du flux de données doit être faite par un microcontrôleur (celui-ci pourra être implémenté un bloc I.P. à l'intérieur du FPGA)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; - Haute consommation de CLB du FPGA.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; SPI (communication série): =====&lt;br /&gt;
&lt;br /&gt;
*- Vitesse de transmission&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Arduino capable de communiquer jusqu'a 115200 bauds&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; D'après certaines discussions sur des forums, on pourrait « pousser » au-delà.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; I2C : =====&lt;br /&gt;
&lt;br /&gt;
Communication abandonnée, ce n'est pas une priorité.&lt;br /&gt;
&lt;br /&gt;
==== À propos des blocs I.P.: ====&lt;br /&gt;
&lt;br /&gt;
En consultant les ordinateurs et en s'appuyant des T.P.s de CNP, on constate que les blocs suivants existent:&lt;br /&gt;
&lt;br /&gt;
- Xilinx Microblaze/Xilinx Power PC (&amp;quot;µP FPGA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Est-ce possible d'utiliser ces blocs I.P. pour programmer un FPGA sur une carte autre que la Nanoboard ? Comment ?&lt;br /&gt;
&lt;br /&gt;
- EMACx (Ethernet Media Acess Control)(:lien physique entre processeurs et &amp;quot;standart Physical Layer device IEEE802.3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===== Conception de la carte: =====&lt;br /&gt;
&lt;br /&gt;
L'idéal est de se documenter sur la Compatibilité électromagnétique.&lt;br /&gt;
&lt;br /&gt;
=== 2éme semaine: (du 03/02/2014 au 08/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 3éme semaine: (du 10/02/2014 au 15/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, après avoir eu le problème de manipulation, nous avons pu prendre connaissance d'un certain montage qui s’avéra utile pour la conception de la carte/maquette.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_limiteur_de_courant_semaine_3.PNG|300px|thumb|center|Schéma limiteur de courant.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que ce montage se retrouve dans la partie &amp;quot;typical application&amp;quot; de la documentation technique du 7805.&lt;br /&gt;
&lt;br /&gt;
=== 4éme semaine: (du 17/02/2014 au 22/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
On souhaite pouvoir réaliser une communication unidirectionnelle ou même transmettre un signal audio ce qui nous contraint à une bande passante minimale de 48kHz, on prendra 200kHz (pour être bien au-delà de la condition du théorème de Shannon): le but serait donc de brancher par exemple une source audio quelconque puis de la transmettre à travers la maquette et de la recomposer en fin de chaine.&lt;br /&gt;
&lt;br /&gt;
Après édition rapide du schéma, on en dégage qu'il nous faudra un minimum d'environ 50 entrées/sorties. Mais ceci ce nombre sera très probablement revu à la hausse lors de prochaine séance.&lt;br /&gt;
&lt;br /&gt;
Voici la carte que l'on utilisera dans la suite du projet:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_S3BOARD-top-400_semaine_4.gif|300px|thumb|center|Digilent Spartan 3.]]&lt;br /&gt;
&lt;br /&gt;
=== 5éme semaine: (du 03/03/2014 au 08/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lien vers le Design complet avec les librairies incluses (on remarquera qu'il serait judicieux d’installer toutes les librairies avant d’essayer d'ouvrir le schéma)&lt;br /&gt;
&lt;br /&gt;
A notez aussi que l'on trouvera des reliques de feuilles Excel permettant de trouver rapidement des ratios dans la série E12.&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_Design_pcb_plus_librairies_semaine_5_6.zip|Schéma + Bibliothèques.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.pdf|Schéma en PDF.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.png|Schéma au format A2.]]&lt;br /&gt;
&lt;br /&gt;
=== 6éme semaine: (du 10/03/2014 au 15/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 7éme semaine: (du 17/03/2014 au 22/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 8éme semaine: (du 24/03/2014 au 26/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 9éme semaine: (du 28/03/2014 au 03/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0061_1_r_2r_semaine_9.jpg|center|thumb|300px|Le réseau R-2R.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0062_1_4QAM_semaine_9.jpg|center|thumb|300px|4QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0066_1_16QAM_semaine_9.jpg|center|thumb|300px|16QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0069_1_64QAM_semaine_9.jpg|center|thumb|300px|64QAM.]]&lt;br /&gt;
&lt;br /&gt;
Pas de photos pour la constellation à 256 points, mais elle a été réalisée.&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du montage, malgré que la P.L.L., on a un signal d'erreur après filtrage :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Chaine 1: Vtune (commande du V.C.O.)/Chaine 2: &amp;quot;erreur&amp;quot; de commande]]&lt;br /&gt;
&lt;br /&gt;
Ce qui met en valeur immédiatement deux problèmes majeurs:&lt;br /&gt;
&lt;br /&gt;
La chaine fonctionne sur le papier, mais lors de sa mise en pratique, il faut penser à mettre une tension d'offset et aussi réaliser une amplification de l'erreur pour avoir des grandeurs de commande adaptée au Vtune du V.C.O..&lt;br /&gt;
&lt;br /&gt;
On propose l'amélioration suivante (qui sera réalisé à la prochaine séance):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Proposition de voie d'amélioration.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que les valeurs des résistances et des capacités on était choisi pour permettre un fonctionnement correct des A.O. (Amplificateur Opérationnel), mais pas pour ce qui de l'asservissement de la boucle par manque de temps. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette, on a eu à démonter le montage à cause de contraintes concernant les Mini-circuits (car utilisé en travaux pratiques).&lt;br /&gt;
&lt;br /&gt;
=== 10éme semaine: (du 07/04/2014 au 10/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
Spectres des signaux de la chaine de transmission:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0001_allure_spectre_reception_semaine_10.jpg|center|thumb|300px|Spectre en réception.]]&lt;br /&gt;
&lt;br /&gt;
Porteuse utilisée pour la modulation I/Q à environ 60MHz.&lt;br /&gt;
&lt;br /&gt;
Porteuse utilisée pour le transport en fréquence à environ 810MHz:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0035_constellation_recupere_PLL_NV_semaine_10.jpg|center|thumb|300px|&amp;quot;Constellation&amp;quot; récupérée avec la PLL défectueuse (on souhaite se verrouiller sur la raie à 868MHz).]]&lt;br /&gt;
&lt;br /&gt;
Question en suspens: faudrait-il utiliser un filtre passe-bande incluant 868Mhz pour pouvoir se verrouiller sur cette fréquence ?&lt;br /&gt;
&lt;br /&gt;
On remarquera le fait que l'oscillateur du côté de la chaine d'émission a d'importantes non-linéarités (on peut observer à l'analyseur de spectre 3 à 4 raies aux fréquences multiples).&lt;br /&gt;
&lt;br /&gt;
Ce qui donne un diagramme de constellation plutôt mauvais si l'on fait le montage suivant:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_montage_non_linearite_vco_constellation_semaine_10.PNG|center|thumb|300px|Montage réalisée.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_sortie_montage_non_linearite_semaine_10.PNG|center|thumb|300px|La constellation 4QAM est attendue, on est loin du résultat attendu (aucune photo n'a était réalisé d'ou le dessin).]]&lt;br /&gt;
&lt;br /&gt;
== Annexe B: Digilent Spartan 3 ==&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire fonctionner la carte Digilent Spartan 3: ===&lt;br /&gt;
&lt;br /&gt;
Ne connectez pas de connecteur JTAG pendant les installations. Redémarrez après chaque installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut savoir que le l'ISE Webpack 14.6 fonctionne avec la carte (n'utilisez pas la 14.7, elle ne supporte pas la génération spartan 3 !):&lt;br /&gt;
&lt;br /&gt;
Installez donc l'ISE WebPack 14.6 (ou antérieur à condition que celle-ci soit supérieur à la 7.1i (d'après leur documentation))&lt;br /&gt;
&lt;br /&gt;
(voir lien utile sur Xilinx)&lt;br /&gt;
&lt;br /&gt;
Une fois l'installation de l'ISE terminé, faites en sorte d'avoir celui que soit opérationnel (la licence est gratuite !).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installez la &amp;quot;library&amp;quot; ADEPT 2.3 voir le lien utile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après vous n'avez plus qu'a utilisez ISE Xilinx normalement et vous serez capable de reconnaitre la carte via la liaison JTAG, et de le programmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Liens utiles: ===&lt;br /&gt;
&lt;br /&gt;
Lien constructeur/vendeur (avec ressources utiles en bas de la page):&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?Prod=S3BOARD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien &amp;quot;Library&amp;quot; pour le câble USB digilent:&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,69&amp;amp;Prod=ADEPT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour l'ISE 14.6):&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/products/design-tools/ise-design-suite/index.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour les versions antérieures veuillez faire attention au système d'exploitation, votre architecture matérielle et le FPGA cible):&lt;br /&gt;
&lt;br /&gt;
(Les informations de compatibilité son sur la page suivante:) (mots clés: xilinx classic(s))&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/tools/classics.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream, et le charger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en &amp;quot;non&amp;quot;-volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream et l'utiliser pour générer un .mcs qui vous permettra d'inscrire le programme dans la mémoire (E?)PROM.&lt;br /&gt;
&lt;br /&gt;
On remarquera que la programmation en non volatile est utile pour faire un remise à zéro et recharger le contenu de l'(E?)PROM, mais semble être sensible au débranchement de l'adaptateur d'alimentation de la carte.&lt;br /&gt;
&lt;br /&gt;
=== Exemple de programmation: ===&lt;br /&gt;
&lt;br /&gt;
Voir le lien digilent pour ceci dans cette annexe.&lt;br /&gt;
&lt;br /&gt;
= Fichiers Rendus =&lt;br /&gt;
&lt;br /&gt;
Rapport projet numéro 34 VAESSEN :[[Fichier:Rapport_projet_p34_s8_6.pdf]]&lt;br /&gt;
&lt;br /&gt;
Source VHDL Final :[[Fichier:P34_2013_2014_gene_pseudo_31_03_2014_1_semaine_9.zip]]&lt;br /&gt;
&lt;br /&gt;
Code Arduino :[[Fichier:P34_2013_204_Generateur_pseudo.zip]]&lt;br /&gt;
&lt;br /&gt;
Design sous Altium :[[Fichier:P34_2013_2014_Design_pcb_plus_librairies_semaine_5_6.zip]]&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Rapport_projet_p34_s8_6.pdf&amp;diff=11799</id>
		<title>Fichier:Rapport projet p34 s8 6.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Rapport_projet_p34_s8_6.pdf&amp;diff=11799"/>
				<updated>2014-04-15T08:17:54Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : a téléversé une nouvelle version de « Fichier:Rapport projet p34 s8 6.pdf »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11704</id>
		<title>Modem pour le numérique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11704"/>
				<updated>2014-04-14T21:32:06Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* Exemple de programmation: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Modulateur et démodulateur pour communications numériques =&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
=== Présentation générale du projet ===&lt;br /&gt;
&lt;br /&gt;
Dans le cadre des TPs d'électronique et de transmission RF, nous avons découvert qu'il existe plusieurs modes de modulation, pour transmettre un signal modulant.&lt;br /&gt;
&lt;br /&gt;
Celles vues en TP au S7 sont la modulation en amplitude, en fréquence, en phase, en BPSK et en QPSK.&lt;br /&gt;
&lt;br /&gt;
Or les modulations en phase, en fréquence et en amplitude étant celles les plus connues, la modulation en QAM (Modulation d'Amplitude en Quadrature) est quant à elle moins connue, mais tout aussi utilisées:&lt;br /&gt;
&lt;br /&gt;
-pour la TNT en 64 QAM (en France).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_64qam.jpg|300px|thumb|center|Exemple de constellation 64QAM.]]&lt;br /&gt;
&lt;br /&gt;
-pour le WiFi en 64-QAM ou 256-QAM (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Or ces deux dernières étant peu représentées au niveau des travaux pratiques, ce projet permettra de fournir un peu plus de pratique sur les modulations de type QAM (en diagramme I/Q) dans le domaine des radiofréquences (~800MHz).&lt;br /&gt;
&lt;br /&gt;
(Le nombre devant le QAM indique le nombre de points dans le diagramme I/Q qu'on appelle aussi constellation)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se réserve le droit de faire '''évoluer''' le cahier des charges a posteriori, si certaines contraintes étaient amenées à évoluer ou se préciser.&lt;br /&gt;
&lt;br /&gt;
=== Objectif et intérêt du projet ===&lt;br /&gt;
&lt;br /&gt;
Pour cela, on nous a fourni des modules commerciaux Mini-circuit pouvant travailler dans les radios-fréquences.&lt;br /&gt;
&lt;br /&gt;
Ceux-ci permettront de mettre en place une grande partie de la chaine de transmission (voir schéma de la chaine de transmission).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_modulation.PNG|300px|thumb|center|Modulation.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_demodulation.PNG|300px|thumb|center|Démodulation.]]&lt;br /&gt;
&lt;br /&gt;
On a tout d'abord à mettre en place une carte FPGA et/ou un dispositif permettant d'envoyer un flux de données numériques continuellement pour pouvoir visualiser le diagramme I/Q (mise en valeur du diagramme I/Q et voir même un diagramme un peu plus complexe que le BPSK ou le QPSK).&lt;br /&gt;
&lt;br /&gt;
Le canal de transmission qui sera un simple fil électrique, mais pourra devenir une antenne réceptrice et émettrice si le temps imparti le permet (mise en valeur du et mesure du Bit Error Rate qui sera bien sûr différent suivant le canal de transmission).&lt;br /&gt;
&lt;br /&gt;
Du côté réception ,après démodulation du signal, une remise en forme et une interprétation des données seront réalisées, celle-ci dépendra bien entendu de la provenance du flux de données (constater le succès ou l'échec d'un envoi de données).&lt;br /&gt;
&lt;br /&gt;
Enfin si le temps le permets on pourra mettre en une place un système de codage de l'information avec par exemple un codage redondant permettant de corrigé l'erreur (À définir, on pourra faire constater l'efficacité d'une méthode de codage au choix).&lt;br /&gt;
&lt;br /&gt;
=== Étapes/Déroulement du projet ===&lt;br /&gt;
&lt;br /&gt;
De même que pour le cahier des charges, il se peut que les étapes diffèrent plus ou moins, en fonction des disponibilités, matérielles et contraintes.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Caractérisation des blocs Mini-circuits et épluchage des documentations techniques====&lt;br /&gt;
Avant de les utiliser dans la chaine de transmission, nous avons à faire une caractérisation des blocs fournis:&lt;br /&gt;
&lt;br /&gt;
-la caractérisation du VCO.&lt;br /&gt;
&lt;br /&gt;
-l'étude des possibilités offerte par le modulateur (cela déterminera le nombre de points possible dans la constellation, ie savoir si l'on peut aller au-delà de la QPSK).&lt;br /&gt;
&lt;br /&gt;
-la caractérisation des mélangeurs (Mixer), leurs facteurs réels de multiplication.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Utilisation et exploitation des caractérisations ====&lt;br /&gt;
On pourra ensuite trouver les paramètres pour régler correctement dans notre chaine de transmission certains de nos sous-systèmes comme la boucle à verrouillage de phase.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Génération d'un flux des données numériques ====&lt;br /&gt;
Comme dit précédemment, l'idéal et d'avoir un flux de données numériques transmis en permanence.&lt;br /&gt;
Pour cela plusieurs solutions s'offre à nous, on pourra utiliser un montage générateur pseudo aléatoire (un circuit que l'on a fait l'année dernière en Conception de Circuit Électronique).&lt;br /&gt;
On pourra &amp;quot;émuler&amp;quot; ce montage avec un Arduino, ou bien même le faire au moyen de la Nanoboard.&lt;br /&gt;
On pourra aussi transmettre des chaines de caractère en continu.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Test de la chaine ====&lt;br /&gt;
Une fois les étapes précédentes réalisées, on pourra passer au test de la chaine de transmission. Il faudra vérifier le bon fonctionnement en aval, dedans (boucle à verrouillage de phase), et en amont de la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Première mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
Il est possible que la conception d'un dispositif soit nécessaire que ce soit pour les deux mesures du B.E.R..&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Antennes ====&lt;br /&gt;
Si toutes les étapes précédentes sont satisfaites, on pourra alors faire un canal de transmission plus intéressant, à savoir l'air.&lt;br /&gt;
Nous passerons alors à la conception des antennes, émettrice et réceptrice.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Deuxième mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Codage de l'information et correction d'erreur ====&lt;br /&gt;
En toute fin de ce projet, on pourra même mettre deux dispositifs en aval et en amont de la chaine de transmission.&lt;br /&gt;
On réalisera alors un codeur et un décodeur permettant de faire de la détection/correction d'erreur.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Mise en place d'outil de débogage (tout au long)====&lt;br /&gt;
La mise en place de simples outils de débogage et primordiale, ceux-ci permettront de vérifier le bon fonctionnement de la chaine.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Proposition d'un sujet de TP (tout au long) ====&lt;br /&gt;
Il se trouve que lors du déroulement du projet, on pourra être amené à se poser des questions au niveau des réglages de la chaine de transmission.&lt;br /&gt;
Or il est fort probable que les élèves qui travailleront sur ce TP pourront alors se poser les mêmes questions.&lt;br /&gt;
C'est pour cela qui sera judicieux de prendre soin de noter les problématiques rencontrées et de donner un certain fil de développement pour venir à bout de la problématique posée.&lt;br /&gt;
Ce qui reviendra à proposer des axes/questions sur les manipulations de cette maquette de TP.&lt;br /&gt;
&lt;br /&gt;
== Note valable pour toutes les semaines ==&lt;br /&gt;
&lt;br /&gt;
'''[[Si un point vous semble imprécis, veuillez vous reporter aux détails fournis en annexe.]]'''&lt;br /&gt;
&lt;br /&gt;
== 1éme semaine: (du 27/01/2014 au 01/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Séance du 05/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Pour bien comprendre les différentes choses à réaliser, on a refait les manipulations vues en TP. On a, pour cela utiliser la maquette didactique TIMS pour générer différent type de modulation:&lt;br /&gt;
&lt;br /&gt;
-la modulation en 4,8,16PSK (on obtient une constellation en forme de cercle).&lt;br /&gt;
&lt;br /&gt;
-La modulation en 4,8,16QAM (on obtient une constellation avec un carré, ou deux: de différentes tailles).&lt;br /&gt;
&lt;br /&gt;
On a très vite dégagé la nécessité de réaliser un montage générateur de tous les mots numériques possibles.&lt;br /&gt;
On a donc fait un programme sur arduino qui équivaut au générateur pseudo aléatoire.&lt;br /&gt;
Celui-ci est directement inspiré du montage que l'on a réalisé l'année dernière en conception de circuit électronique.&lt;br /&gt;
&lt;br /&gt;
Séance du 06/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Lors de cette séance on a exploré toutes les possibilités concernant la communication entre la maquette/carte, car cela pour avoir une influence non négligeable sur le choix de la carte F.P.G.A. et du design de la maquette.&lt;br /&gt;
&lt;br /&gt;
On a donc aussi fait des recherches concernant les possibilités de communications et les blocs I.P. (Intellectual Properties) permettant de programmer un F.P.G.A.&lt;br /&gt;
&lt;br /&gt;
Et enfin, on a eu une discussion avec un responsable technique pour ce qui de la C.E.M. (Compatibilité Electro-Magnétique)&lt;br /&gt;
&lt;br /&gt;
== 2éme semaine: (du 03/02/2014 au 08/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Réflexion sur les possibilités possibles et offertes par le sujet pour ce qui est des parties de communications entre la maquette en interne et de son environnement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_principe_carte_semaine_2.PNG|300px|thumb|center|Maquette en interne/externe.]]&lt;br /&gt;
&lt;br /&gt;
N'ayant jamais utilisé d'autre carte que la Nanoboard, on s'est attelé à faire des recherches sur la manière de procéder pour programmer une carte F.P.G.A., il se trouve que chaque carte de développement à ses propres manières pour être programmé.&lt;br /&gt;
&lt;br /&gt;
On a pris le soin de noter toutes les questions concernant le F.P.G.A. pour un intervenant industriel qui assura un cours la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
== 3éme semaine: (du 10/02/2014 au 15/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Ayant les oscillateurs commandables en tension, on a pu commencer à faire une manipulation avec les composants Mini-Circuit.&lt;br /&gt;
&lt;br /&gt;
Mais après un problème suite à une manipulation l'un des VCOs ne fonctionne plus.&lt;br /&gt;
&lt;br /&gt;
Ce qui nous amène à penser qu'il sera judicieux de prévoir une alimentation au niveau de la carte.&lt;br /&gt;
&lt;br /&gt;
Celle-ci devra être inférieure ou égale à la tension maximale d'alimentation du composant (ceux-ci étant très sensible).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Questions/Réponses:&lt;br /&gt;
&lt;br /&gt;
Comment fait-on pour programmer une carte F.P.G.A. est-ce que la programmation se fait &amp;quot;in situe&amp;quot; ? (in situe : c'est à dire sur la carte elle-même) &lt;br /&gt;
Oui, c'est ce qui est utilisé, via un câble JTAG.&lt;br /&gt;
&lt;br /&gt;
Est-ce possible faire une interface USB pour permettre à un ordinateur de communiquer avec la maquette/carte via un F.P.G.A. ? Oui.&lt;br /&gt;
&lt;br /&gt;
Est-ce que la gestion de l'interface Ethernet est envisageable ? Oui.&lt;br /&gt;
&lt;br /&gt;
Pour une communication en protocole UDP avec un ordinateur via une liaison Ethernet, est-ce qu'il y a d'autres façons que d'utiliser un &amp;quot;SoftCore&amp;quot; ?&lt;br /&gt;
&lt;br /&gt;
Oui, il existe aussi bien en Software, qu'en Hardware.&lt;br /&gt;
&lt;br /&gt;
== 4éme semaine: (du 17/02/2014 au 22/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a donc repris l'idée de la 2éme semaine.&lt;br /&gt;
&lt;br /&gt;
Après avoir mis en place un cahier des charges au niveau des qualités, bande passante minimale.&lt;br /&gt;
&lt;br /&gt;
Nous avons fait des recherches sur les composants à utiliser (i.e. CAN, CAN, ...)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous a permis après une édition rapide de schéma électrique (schematic) d'avoir une idée du nombre de pins dont nous aurons besoin sur une carte FPGA afin de réaliser le projet.&lt;br /&gt;
&lt;br /&gt;
Après prospection, il se trouve que nous nous dirigerions vers la carte Digilent Spartan 3, dont l'école était déjà en possession.&lt;br /&gt;
&lt;br /&gt;
Donc nous nous sommes attelés à faire des recherches et des essais sur cette carte et pour notamment trouver un moyen de la faire fonctionner.&lt;br /&gt;
&lt;br /&gt;
== 5éme semaine: (du 03/03/2014 au 08/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, après plusieurs heures de recherches et d'essai infructueux, on a fini par trouver les drivers pour le câble USB diligent.&lt;br /&gt;
&lt;br /&gt;
Et donc ainsi avoir un fonctionnement de la communication via le câble JTAG plus propice au fonctionnement de la carte.&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur une partie des composants et des dimensionnements pour certains d'entre eux (valeur de résistance,capacité...)&lt;br /&gt;
&lt;br /&gt;
Schématics: Édition de multiple bibliothèque pour Altium, intégrant à la fois schématics et leur empreinte PCB associée.&lt;br /&gt;
&lt;br /&gt;
(On a pu constater qu'une interface 3v3 5v n'est pas forcement nécessaire pour assurer le bon fonctionnement entre deux cartes avec des tensions d'alimentation différentes.)&lt;br /&gt;
&lt;br /&gt;
== 6éme semaine: (du 10/03/2014 au 15/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur l'ensemble des composants et des choix de régulateur et utilisation d'autre diode Zener.&lt;br /&gt;
&lt;br /&gt;
On trouvera le schéma intégral avec les bibliothèques nécessaires dans la semaine 5.&lt;br /&gt;
&lt;br /&gt;
Cette semaine a été dédiée à l'envoi de la commande des composants au sein du magasin de l'école et du fournisseur.&lt;br /&gt;
&lt;br /&gt;
Après envoi de la commande, il se trouve que le projet a changé d'objectif principal.&lt;br /&gt;
&lt;br /&gt;
Il est maintenant prioritaire de réaliser un code VHDL capable d'évaluer la vitesse de transmission numérique du côté récepteur.&lt;br /&gt;
&lt;br /&gt;
== 7éme semaine: (du 17/03/2014 au 22/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Pour cette semaine, on s'est concentré sur la réalisation d'un générateur pseudo aléatoire en interne au FPGA.&lt;br /&gt;
&lt;br /&gt;
On réalisera une échelle de résistance afin de réaliser une conversion numérique analogique afin de l'envoyer sur la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
Ce code de &amp;quot;base&amp;quot; nous permettra de réaliser un flux de données fictif pour obtenir toutes les combinaisons récupérant le résultat du bus.&lt;br /&gt;
&lt;br /&gt;
[[MédiaP34_2013_2014_gene_pseudo_19_03_2014_6_semaine_7.zip|Archive contenant le projet ISE Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_rtl_semaine_7.PNG|300px|thumb|center|extrait du schéma RTL, on peut y voir clairement les inférences de Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
Ce schéma a deux entrées et une sortie, une entrée d'initialisation, une horloge et une sortie pour la trame en pseudo aléatoire.&lt;br /&gt;
&lt;br /&gt;
On fera l'essai sur la carte lors de la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
== 8éme semaine: (du 24/03/2014 au 26/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Après le premier test, on pourrait penser que l'on récupère du bruit en sortie de la carte:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0024_1_probleme_d_overshoot_semaine_8.jpg|300px|thumb|center|Overshoot.]]&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir remédier à ce problème, on a fait une prédivision de l'horloge&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0037_1_div_freq_semaine_8.jpg|300px|thumb|center|Overshoot après division.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0039_1_div_freq_zoom_semaine_8.jpg|300px|thumb|center|Overshoot après division (Zoom).]]&lt;br /&gt;
&lt;br /&gt;
Archive contenant toutes les modifications:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_26_03_2014_2_semaine_8.zip|VHDL Semaine 8.]]&lt;br /&gt;
&lt;br /&gt;
On a trouvé un moyen de faire un CNA facilement, via une &amp;quot;échelle dite R-2R&amp;quot;. [[http://www.uchobby.com/index.php/2008/01/08/arduino-audio-dac-options/|Pour le réseau R 2R.]]&lt;br /&gt;
&lt;br /&gt;
Il faut encore modifier le VHDL pour pouvoir l'exploiter et ainsi générer une constellation.&lt;br /&gt;
&lt;br /&gt;
== 9éme semaine: (du 28/03/2014 au 03/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pris donc le soin de modifier le VHDL:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_31_03_2014_1_semaine_9.zip|VHDL semaine 9]]&lt;br /&gt;
&lt;br /&gt;
Ce VHDL à été mis à jour, avec deux entrées (initialisation et une horloge) et un bus de sortie (8 bits), avec les trames pseudoaléatoires.&lt;br /&gt;
&lt;br /&gt;
On envoie ces signaux sur deux C.N.A.s (4 bits chacun) pour générer deux signaux I et Q, on peut voir une constellation se dessiner en mode X-Y.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0072_1_Montage_entier_4qam_semaine_9.jpg|300px|thumb|center|Montage avec constellations 4QAM.]]&lt;br /&gt;
&lt;br /&gt;
D'autres constellations réalisées sont disponibles en annexe. On peut monter jusqu'à une constellation de 256 points (2^4*2^4).&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage complet de toute la chaine de transmission. Il se trouve que la Boucle à Verrouillage de Phase (ou appellée PLL, Phase Loop Locker) ne se verrouille pas sur la porteuse du signal que l'on souhaite récupéré, de ce fait on ne peut pas récupérer les signaux I et Q.&lt;br /&gt;
&lt;br /&gt;
== 10éme semaine: (du 07/04/2014 au 10/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage que l'on évoquait en semaine 9:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0027_montage_realisee_semaine_10.jpg|center|thumb|300px|Montage pour améliorer la PLL.]]&lt;br /&gt;
&lt;br /&gt;
Il se trouve qu’après un réglage précis de la tension d'offset permettant d'être un proche de la fréquence à capturer on obtient:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0025_PLL_non_verrouillage_semaine_10.jpg|center|thumb|300px|Signaux I/Q après ajout du montage.]]&lt;br /&gt;
&lt;br /&gt;
= Annexes =&lt;br /&gt;
&lt;br /&gt;
== Annexe A: Détails techniques des semaines ==&lt;br /&gt;
&lt;br /&gt;
=== 1éme semaine: (du 27/01/2014 au 01/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Après on a réfléchi sur la potentielle conception/utilisation d'une carte FPGA.&lt;br /&gt;
Il sera judicieux de ne pas se précipiter sur le schéma et la conception/utilisation d'une carte FPGA, sans avoir, au préalable fait le VHDL et le testez avec un banc de test virtuel.&lt;br /&gt;
L'intérêt et de mettre en valeur la nécessité ou non de certains signaux pour le schéma de la carte.&lt;br /&gt;
On va mettre en oeuvre les connaissances acquises au S7 en VHDL (en TP de Circuit Numérique Programmble).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est de l'Arduino, on a répondu aux interrogations suivantes (certaines de ces questions paraissent triviales, mais on préfère éviter les surprises):&lt;br /&gt;
&lt;br /&gt;
Quelle est la vitesse maximale de la communication série de l'Arduino ?&lt;br /&gt;
-115200bauds&lt;br /&gt;
&lt;br /&gt;
Est-ce que, un programme de type &amp;quot;Analog Write&amp;quot; est-il une vraie sortie analogique ?&lt;br /&gt;
&lt;br /&gt;
-Non, c'est juste une PWM. Elle sera exploitable pour faire les signales I/Q mais très contraignantes, car il faudra filtré le signal, et ce sera beaucoup trop lent (du au fait que la modulation est faite au alentour de 850Mhz), le FPGA sera un passage obligé cela ouvrira les portes d'un plus grand débit.&lt;br /&gt;
&lt;br /&gt;
==== Manipulation réalisée sur la maquette TIMS : ====&lt;br /&gt;
&lt;br /&gt;
On a fait un des montages présentés dans l'ouvrage &amp;quot;Volume D1 Fundamental Digital Experiments&amp;quot; dans le but de visualiser l’objectif à atteindre.&lt;br /&gt;
&lt;br /&gt;
On obtient la constellation suivante (16QAM):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_tims_semaine_1.PNG|300px|thumb|center|Constellation visualisée en mode X-Y.]]&lt;br /&gt;
&lt;br /&gt;
Ce qui correspond à deux signaux en visualisation temporelle de cette forme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_temporelle_tims_semaine_1.PNG|300px|thumb|center|Signaux I et Q. (Image très floutée, à remplacer)]]&lt;br /&gt;
&lt;br /&gt;
On pourra facilement obtenir le même résultat en générant un bus de trame pseudo aléatoire et en l'injectant dans un C.N.A. (Conversion Numérique Analogique)&lt;br /&gt;
&lt;br /&gt;
==== Code Arduino réalisé: ====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schema_electronique_generateur_pseudo_aleatoire.png|300px|thumb|center|Schéma électronique du générateur pseudo aléatoire.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_chrono_simule.PNG|300px|thumb|center|Résultat de la simulation du générateur pseudo aléatoire (on a eu la même chose en pratique).]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_arduino.jpg|300px|thumb|center|Resultat avec le générateur pseudo aléatoire &amp;quot;émuler&amp;quot; avec l'Arduino.]]&lt;br /&gt;
&lt;br /&gt;
Comparaison carte réelle/résultat Arduino:&lt;br /&gt;
&lt;br /&gt;
C'était exactement les signaux attendus (même s'il y un décalage a par rapport à l'original).&lt;br /&gt;
&lt;br /&gt;
On aura bien pour une QPSK (4PSK) tous les couples (ie 00,01,11 et 10).&lt;br /&gt;
&lt;br /&gt;
À propos de l'arduino, on pourra envisager une amélioration pour générer une séquence plus longue:&lt;br /&gt;
&lt;br /&gt;
-il faudra simplement utiliser un tableau d'entier.&lt;br /&gt;
&lt;br /&gt;
-paramétrer sa taille avec un N par exemple.&lt;br /&gt;
&lt;br /&gt;
-N correspondra à la taille de séquence de longueur 2^N.&lt;br /&gt;
&lt;br /&gt;
Voir la section &amp;quot;Code Arduino réalisé&amp;quot; en annexe B dans la semaine correspondante.&lt;br /&gt;
&lt;br /&gt;
==== Possibilités de communications: ====&lt;br /&gt;
&lt;br /&gt;
Exploration des possibilités de communication entre le PC et la carte en amont:&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; Ethernet: =====&lt;br /&gt;
&lt;br /&gt;
*+ Vitesse de transmission (~10M-100M-G)bauds&lt;br /&gt;
&lt;br /&gt;
*- La gestion du flux de données doit être faite par un microcontrôleur (celui-ci pourra être implémenté un bloc I.P. à l'intérieur du FPGA)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; - Haute consommation de CLB du FPGA.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; SPI (communication série): =====&lt;br /&gt;
&lt;br /&gt;
*- Vitesse de transmission&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Arduino capable de communiquer jusqu'a 115200 bauds&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; D'après certaines discussions sur des forums, on pourrait « pousser » au-delà.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; I2C : =====&lt;br /&gt;
&lt;br /&gt;
Communication abandonnée, ce n'est pas une priorité.&lt;br /&gt;
&lt;br /&gt;
==== À propos des blocs I.P.: ====&lt;br /&gt;
&lt;br /&gt;
En consultant les ordinateurs et en s'appuyant des T.P.s de CNP, on constate que les blocs suivants existent:&lt;br /&gt;
&lt;br /&gt;
- Xilinx Microblaze/Xilinx Power PC (&amp;quot;µP FPGA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Est-ce possible d'utiliser ces blocs I.P. pour programmer un FPGA sur une carte autre que la Nanoboard ? Comment ?&lt;br /&gt;
&lt;br /&gt;
- EMACx (Ethernet Media Acess Control)(:lien physique entre processeurs et &amp;quot;standart Physical Layer device IEEE802.3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===== Conception de la carte: =====&lt;br /&gt;
&lt;br /&gt;
L'idéal est de se documenter sur la Compatibilité électromagnétique.&lt;br /&gt;
&lt;br /&gt;
=== 2éme semaine: (du 03/02/2014 au 08/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 3éme semaine: (du 10/02/2014 au 15/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, après avoir eu le problème de manipulation, nous avons pu prendre connaissance d'un certain montage qui s’avéra utile pour la conception de la carte/maquette.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_limiteur_de_courant_semaine_3.PNG|300px|thumb|center|Schéma limiteur de courant.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que ce montage se retrouve dans la partie &amp;quot;typical application&amp;quot; de la documentation technique du 7805.&lt;br /&gt;
&lt;br /&gt;
=== 4éme semaine: (du 17/02/2014 au 22/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
On souhaite pouvoir réaliser une communication unidirectionnelle ou même transmettre un signal audio ce qui nous contraint à une bande passante minimale de 48kHz, on prendra 200kHz (pour être bien au-delà de la condition du théorème de Shannon): le but serait donc de brancher par exemple une source audio quelconque puis de la transmettre à travers la maquette et de la recomposer en fin de chaine.&lt;br /&gt;
&lt;br /&gt;
Après édition rapide du schéma, on en dégage qu'il nous faudra un minimum d'environ 50 entrées/sorties. Mais ceci ce nombre sera très probablement revu à la hausse lors de prochaine séance.&lt;br /&gt;
&lt;br /&gt;
Voici la carte que l'on utilisera dans la suite du projet:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_S3BOARD-top-400_semaine_4.gif|300px|thumb|center|Digilent Spartan 3.]]&lt;br /&gt;
&lt;br /&gt;
=== 5éme semaine: (du 03/03/2014 au 08/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lien vers le Design complet avec les librairies incluses (on remarquera qu'il serait judicieux d’installer toutes les librairies avant d’essayer d'ouvrir le schéma)&lt;br /&gt;
&lt;br /&gt;
A notez aussi que l'on trouvera des reliques de feuilles Excel permettant de trouver rapidement des ratios dans la série E12.&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_Design_pcb_plus_librairies_semaine_5_6.zip|Schéma + Bibliothèques.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.pdf|Schéma en PDF.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.png|Schéma au format A2.]]&lt;br /&gt;
&lt;br /&gt;
=== 6éme semaine: (du 10/03/2014 au 15/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 7éme semaine: (du 17/03/2014 au 22/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 8éme semaine: (du 24/03/2014 au 26/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 9éme semaine: (du 28/03/2014 au 03/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0061_1_r_2r_semaine_9.jpg|center|thumb|300px|Le réseau R-2R.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0062_1_4QAM_semaine_9.jpg|center|thumb|300px|4QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0066_1_16QAM_semaine_9.jpg|center|thumb|300px|16QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0069_1_64QAM_semaine_9.jpg|center|thumb|300px|64QAM.]]&lt;br /&gt;
&lt;br /&gt;
Pas de photos pour la constellation à 256 points, mais elle a été réalisée.&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du montage, malgré que la P.L.L., on a un signal d'erreur après filtrage :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Chaine 1: Vtune (commande du V.C.O.)/Chaine 2: &amp;quot;erreur&amp;quot; de commande]]&lt;br /&gt;
&lt;br /&gt;
Ce qui met en valeur immédiatement deux problèmes majeurs:&lt;br /&gt;
&lt;br /&gt;
La chaine fonctionne sur le papier, mais lors de sa mise en pratique, il faut penser à mettre une tension d'offset et aussi réaliser une amplification de l'erreur pour avoir des grandeurs de commande adaptée au Vtune du V.C.O..&lt;br /&gt;
&lt;br /&gt;
On propose l'amélioration suivante (qui sera réalisé à la prochaine séance):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Proposition de voie d'amélioration.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que les valeurs des résistances et des capacités on était choisi pour permettre un fonctionnement correct des A.O. (Amplificateur Opérationnel), mais pas pour ce qui de l'asservissement de la boucle par manque de temps. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette, on a eu à démonter le montage à cause de contraintes concernant les Mini-circuits (car utilisé en travaux pratiques).&lt;br /&gt;
&lt;br /&gt;
=== 10éme semaine: (du 07/04/2014 au 10/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
Spectres des signaux de la chaine de transmission:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0001_allure_spectre_reception_semaine_10.jpg|center|thumb|300px|Spectre en réception.]]&lt;br /&gt;
&lt;br /&gt;
Porteuse utilisée pour la modulation I/Q à environ 60MHz.&lt;br /&gt;
&lt;br /&gt;
Porteuse utilisée pour le transport en fréquence à environ 810MHz:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0035_constellation_recupere_PLL_NV_semaine_10.jpg|center|thumb|300px|&amp;quot;Constellation&amp;quot; récupérée avec la PLL défectueuse (on souhaite se verrouiller sur la raie à 868MHz).]]&lt;br /&gt;
&lt;br /&gt;
Question en suspens: faudrait-il utiliser un filtre passe-bande incluant 868Mhz pour pouvoir se verrouiller sur cette fréquence ?&lt;br /&gt;
&lt;br /&gt;
On remarquera le fait que l'oscillateur du côté de la chaine d'émission a d'importantes non-linéarités (on peut observer à l'analyseur de spectre 3 à 4 raies aux fréquences multiples).&lt;br /&gt;
&lt;br /&gt;
Ce qui donne un diagramme de constellation plutôt mauvais si l'on fait le montage suivant:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_montage_non_linearite_vco_constellation_semaine_10.PNG|center|thumb|300px|Montage réalisée.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_sortie_montage_non_linearite_semaine_10.PNG|center|thumb|300px|La constellation 4QAM est attendue, on est loin du résultat attendu (aucune photo n'a était réalisé d'ou le dessin).]]&lt;br /&gt;
&lt;br /&gt;
== Annexe B: Digilent Spartan 3 ==&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire fonctionner la carte Digilent Spartan 3: ===&lt;br /&gt;
&lt;br /&gt;
Ne connectez pas de connecteur JTAG pendant les installations. Redémarrez après chaque installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut savoir que le l'ISE Webpack 14.6 fonctionne avec la carte (n'utilisez pas la 14.7, elle ne supporte pas la génération spartan 3 !):&lt;br /&gt;
&lt;br /&gt;
Installez donc l'ISE WebPack 14.6 (ou antérieur à condition que celle-ci soit supérieur à la 7.1i (d'après leur documentation))&lt;br /&gt;
&lt;br /&gt;
(voir lien utile sur Xilinx)&lt;br /&gt;
&lt;br /&gt;
Une fois l'installation de l'ISE terminé, faites en sorte d'avoir celui que soit opérationnel (la licence est gratuite !).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installez la &amp;quot;library&amp;quot; ADEPT 2.3 voir le lien utile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après vous n'avez plus qu'a utilisez ISE Xilinx normalement et vous serez capable de reconnaitre la carte via la liaison JTAG, et de le programmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Liens utiles: ===&lt;br /&gt;
&lt;br /&gt;
Lien constructeur/vendeur (avec ressources utiles en bas de la page):&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?Prod=S3BOARD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien &amp;quot;Library&amp;quot; pour le câble USB digilent:&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,69&amp;amp;Prod=ADEPT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour l'ISE 14.6):&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/products/design-tools/ise-design-suite/index.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour les versions antérieures veuillez faire attention au système d'exploitation, votre architecture matérielle et le FPGA cible):&lt;br /&gt;
&lt;br /&gt;
(Les informations de compatibilité son sur la page suivante:) (mots clés: xilinx classic(s))&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/tools/classics.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream, et le charger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en &amp;quot;non&amp;quot;-volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream et l'utiliser pour générer un .mcs qui vous permettra d'inscrire le programme dans la mémoire (E?)PROM.&lt;br /&gt;
&lt;br /&gt;
On remarquera que la programmation en non volatile est utile pour faire un remise à zéro et recharger le contenu de l'(E?)PROM, mais semble être sensible au débranchement de l'adaptateur d'alimentation de la carte.&lt;br /&gt;
&lt;br /&gt;
=== Exemple de programmation: ===&lt;br /&gt;
&lt;br /&gt;
Voir le lien digilent pour ceci dans cette annexe.&lt;br /&gt;
&lt;br /&gt;
= Fichiers Rendus =&lt;br /&gt;
&lt;br /&gt;
Rapport projet numéro 34 VAESSEN :[[Fichier:Rapport_projet_p34_s8_6.pdf]]&lt;br /&gt;
&lt;br /&gt;
Source VHDL Final :[[Fichier:P34_2013_2014_gene_pseudo_31_03_2014_1_semaine_9.zip]]&lt;br /&gt;
&lt;br /&gt;
Code Arduino :[[Fichier:P34_2013_204_Generateur_pseudo.zip]]&lt;br /&gt;
&lt;br /&gt;
Design sous Altium :[[Fichier:P34_2013_2014_Design_pcb_plus_librairies_semaine_5_6.zip]]&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:P34_2013_204_Generateur_pseudo.zip&amp;diff=11702</id>
		<title>Fichier:P34 2013 204 Generateur pseudo.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:P34_2013_204_Generateur_pseudo.zip&amp;diff=11702"/>
				<updated>2014-04-14T21:28:40Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : a téléversé une nouvelle version de « Fichier:P34 2013 204 Generateur pseudo.zip »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:P34_2013_204_Generateur_pseudo.zip&amp;diff=11701</id>
		<title>Fichier:P34 2013 204 Generateur pseudo.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:P34_2013_204_Generateur_pseudo.zip&amp;diff=11701"/>
				<updated>2014-04-14T21:28:17Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11700</id>
		<title>Modem pour le numérique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11700"/>
				<updated>2014-04-14T21:27:01Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* Code Arduino réalisé: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Modulateur et démodulateur pour communications numériques =&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
=== Présentation générale du projet ===&lt;br /&gt;
&lt;br /&gt;
Dans le cadre des TPs d'électronique et de transmission RF, nous avons découvert qu'il existe plusieurs modes de modulation, pour transmettre un signal modulant.&lt;br /&gt;
&lt;br /&gt;
Celles vues en TP au S7 sont la modulation en amplitude, en fréquence, en phase, en BPSK et en QPSK.&lt;br /&gt;
&lt;br /&gt;
Or les modulations en phase, en fréquence et en amplitude étant celles les plus connues, la modulation en QAM (Modulation d'Amplitude en Quadrature) est quant à elle moins connue, mais tout aussi utilisées:&lt;br /&gt;
&lt;br /&gt;
-pour la TNT en 64 QAM (en France).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_64qam.jpg|300px|thumb|center|Exemple de constellation 64QAM.]]&lt;br /&gt;
&lt;br /&gt;
-pour le WiFi en 64-QAM ou 256-QAM (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Or ces deux dernières étant peu représentées au niveau des travaux pratiques, ce projet permettra de fournir un peu plus de pratique sur les modulations de type QAM (en diagramme I/Q) dans le domaine des radiofréquences (~800MHz).&lt;br /&gt;
&lt;br /&gt;
(Le nombre devant le QAM indique le nombre de points dans le diagramme I/Q qu'on appelle aussi constellation)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se réserve le droit de faire '''évoluer''' le cahier des charges a posteriori, si certaines contraintes étaient amenées à évoluer ou se préciser.&lt;br /&gt;
&lt;br /&gt;
=== Objectif et intérêt du projet ===&lt;br /&gt;
&lt;br /&gt;
Pour cela, on nous a fourni des modules commerciaux Mini-circuit pouvant travailler dans les radios-fréquences.&lt;br /&gt;
&lt;br /&gt;
Ceux-ci permettront de mettre en place une grande partie de la chaine de transmission (voir schéma de la chaine de transmission).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_modulation.PNG|300px|thumb|center|Modulation.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_demodulation.PNG|300px|thumb|center|Démodulation.]]&lt;br /&gt;
&lt;br /&gt;
On a tout d'abord à mettre en place une carte FPGA et/ou un dispositif permettant d'envoyer un flux de données numériques continuellement pour pouvoir visualiser le diagramme I/Q (mise en valeur du diagramme I/Q et voir même un diagramme un peu plus complexe que le BPSK ou le QPSK).&lt;br /&gt;
&lt;br /&gt;
Le canal de transmission qui sera un simple fil électrique, mais pourra devenir une antenne réceptrice et émettrice si le temps imparti le permet (mise en valeur du et mesure du Bit Error Rate qui sera bien sûr différent suivant le canal de transmission).&lt;br /&gt;
&lt;br /&gt;
Du côté réception ,après démodulation du signal, une remise en forme et une interprétation des données seront réalisées, celle-ci dépendra bien entendu de la provenance du flux de données (constater le succès ou l'échec d'un envoi de données).&lt;br /&gt;
&lt;br /&gt;
Enfin si le temps le permets on pourra mettre en une place un système de codage de l'information avec par exemple un codage redondant permettant de corrigé l'erreur (À définir, on pourra faire constater l'efficacité d'une méthode de codage au choix).&lt;br /&gt;
&lt;br /&gt;
=== Étapes/Déroulement du projet ===&lt;br /&gt;
&lt;br /&gt;
De même que pour le cahier des charges, il se peut que les étapes diffèrent plus ou moins, en fonction des disponibilités, matérielles et contraintes.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Caractérisation des blocs Mini-circuits et épluchage des documentations techniques====&lt;br /&gt;
Avant de les utiliser dans la chaine de transmission, nous avons à faire une caractérisation des blocs fournis:&lt;br /&gt;
&lt;br /&gt;
-la caractérisation du VCO.&lt;br /&gt;
&lt;br /&gt;
-l'étude des possibilités offerte par le modulateur (cela déterminera le nombre de points possible dans la constellation, ie savoir si l'on peut aller au-delà de la QPSK).&lt;br /&gt;
&lt;br /&gt;
-la caractérisation des mélangeurs (Mixer), leurs facteurs réels de multiplication.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Utilisation et exploitation des caractérisations ====&lt;br /&gt;
On pourra ensuite trouver les paramètres pour régler correctement dans notre chaine de transmission certains de nos sous-systèmes comme la boucle à verrouillage de phase.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Génération d'un flux des données numériques ====&lt;br /&gt;
Comme dit précédemment, l'idéal et d'avoir un flux de données numériques transmis en permanence.&lt;br /&gt;
Pour cela plusieurs solutions s'offre à nous, on pourra utiliser un montage générateur pseudo aléatoire (un circuit que l'on a fait l'année dernière en Conception de Circuit Électronique).&lt;br /&gt;
On pourra &amp;quot;émuler&amp;quot; ce montage avec un Arduino, ou bien même le faire au moyen de la Nanoboard.&lt;br /&gt;
On pourra aussi transmettre des chaines de caractère en continu.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Test de la chaine ====&lt;br /&gt;
Une fois les étapes précédentes réalisées, on pourra passer au test de la chaine de transmission. Il faudra vérifier le bon fonctionnement en aval, dedans (boucle à verrouillage de phase), et en amont de la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Première mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
Il est possible que la conception d'un dispositif soit nécessaire que ce soit pour les deux mesures du B.E.R..&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Antennes ====&lt;br /&gt;
Si toutes les étapes précédentes sont satisfaites, on pourra alors faire un canal de transmission plus intéressant, à savoir l'air.&lt;br /&gt;
Nous passerons alors à la conception des antennes, émettrice et réceptrice.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Deuxième mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Codage de l'information et correction d'erreur ====&lt;br /&gt;
En toute fin de ce projet, on pourra même mettre deux dispositifs en aval et en amont de la chaine de transmission.&lt;br /&gt;
On réalisera alors un codeur et un décodeur permettant de faire de la détection/correction d'erreur.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Mise en place d'outil de débogage (tout au long)====&lt;br /&gt;
La mise en place de simples outils de débogage et primordiale, ceux-ci permettront de vérifier le bon fonctionnement de la chaine.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Proposition d'un sujet de TP (tout au long) ====&lt;br /&gt;
Il se trouve que lors du déroulement du projet, on pourra être amené à se poser des questions au niveau des réglages de la chaine de transmission.&lt;br /&gt;
Or il est fort probable que les élèves qui travailleront sur ce TP pourront alors se poser les mêmes questions.&lt;br /&gt;
C'est pour cela qui sera judicieux de prendre soin de noter les problématiques rencontrées et de donner un certain fil de développement pour venir à bout de la problématique posée.&lt;br /&gt;
Ce qui reviendra à proposer des axes/questions sur les manipulations de cette maquette de TP.&lt;br /&gt;
&lt;br /&gt;
== Note valable pour toutes les semaines ==&lt;br /&gt;
&lt;br /&gt;
'''[[Si un point vous semble imprécis, veuillez vous reporter aux détails fournis en annexe.]]'''&lt;br /&gt;
&lt;br /&gt;
== 1éme semaine: (du 27/01/2014 au 01/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Séance du 05/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Pour bien comprendre les différentes choses à réaliser, on a refait les manipulations vues en TP. On a, pour cela utiliser la maquette didactique TIMS pour générer différent type de modulation:&lt;br /&gt;
&lt;br /&gt;
-la modulation en 4,8,16PSK (on obtient une constellation en forme de cercle).&lt;br /&gt;
&lt;br /&gt;
-La modulation en 4,8,16QAM (on obtient une constellation avec un carré, ou deux: de différentes tailles).&lt;br /&gt;
&lt;br /&gt;
On a très vite dégagé la nécessité de réaliser un montage générateur de tous les mots numériques possibles.&lt;br /&gt;
On a donc fait un programme sur arduino qui équivaut au générateur pseudo aléatoire.&lt;br /&gt;
Celui-ci est directement inspiré du montage que l'on a réalisé l'année dernière en conception de circuit électronique.&lt;br /&gt;
&lt;br /&gt;
Séance du 06/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Lors de cette séance on a exploré toutes les possibilités concernant la communication entre la maquette/carte, car cela pour avoir une influence non négligeable sur le choix de la carte F.P.G.A. et du design de la maquette.&lt;br /&gt;
&lt;br /&gt;
On a donc aussi fait des recherches concernant les possibilités de communications et les blocs I.P. (Intellectual Properties) permettant de programmer un F.P.G.A.&lt;br /&gt;
&lt;br /&gt;
Et enfin, on a eu une discussion avec un responsable technique pour ce qui de la C.E.M. (Compatibilité Electro-Magnétique)&lt;br /&gt;
&lt;br /&gt;
== 2éme semaine: (du 03/02/2014 au 08/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Réflexion sur les possibilités possibles et offertes par le sujet pour ce qui est des parties de communications entre la maquette en interne et de son environnement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_principe_carte_semaine_2.PNG|300px|thumb|center|Maquette en interne/externe.]]&lt;br /&gt;
&lt;br /&gt;
N'ayant jamais utilisé d'autre carte que la Nanoboard, on s'est attelé à faire des recherches sur la manière de procéder pour programmer une carte F.P.G.A., il se trouve que chaque carte de développement à ses propres manières pour être programmé.&lt;br /&gt;
&lt;br /&gt;
On a pris le soin de noter toutes les questions concernant le F.P.G.A. pour un intervenant industriel qui assura un cours la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
== 3éme semaine: (du 10/02/2014 au 15/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Ayant les oscillateurs commandables en tension, on a pu commencer à faire une manipulation avec les composants Mini-Circuit.&lt;br /&gt;
&lt;br /&gt;
Mais après un problème suite à une manipulation l'un des VCOs ne fonctionne plus.&lt;br /&gt;
&lt;br /&gt;
Ce qui nous amène à penser qu'il sera judicieux de prévoir une alimentation au niveau de la carte.&lt;br /&gt;
&lt;br /&gt;
Celle-ci devra être inférieure ou égale à la tension maximale d'alimentation du composant (ceux-ci étant très sensible).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Questions/Réponses:&lt;br /&gt;
&lt;br /&gt;
Comment fait-on pour programmer une carte F.P.G.A. est-ce que la programmation se fait &amp;quot;in situe&amp;quot; ? (in situe : c'est à dire sur la carte elle-même) &lt;br /&gt;
Oui, c'est ce qui est utilisé, via un câble JTAG.&lt;br /&gt;
&lt;br /&gt;
Est-ce possible faire une interface USB pour permettre à un ordinateur de communiquer avec la maquette/carte via un F.P.G.A. ? Oui.&lt;br /&gt;
&lt;br /&gt;
Est-ce que la gestion de l'interface Ethernet est envisageable ? Oui.&lt;br /&gt;
&lt;br /&gt;
Pour une communication en protocole UDP avec un ordinateur via une liaison Ethernet, est-ce qu'il y a d'autres façons que d'utiliser un &amp;quot;SoftCore&amp;quot; ?&lt;br /&gt;
&lt;br /&gt;
Oui, il existe aussi bien en Software, qu'en Hardware.&lt;br /&gt;
&lt;br /&gt;
== 4éme semaine: (du 17/02/2014 au 22/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a donc repris l'idée de la 2éme semaine.&lt;br /&gt;
&lt;br /&gt;
Après avoir mis en place un cahier des charges au niveau des qualités, bande passante minimale.&lt;br /&gt;
&lt;br /&gt;
Nous avons fait des recherches sur les composants à utiliser (i.e. CAN, CAN, ...)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous a permis après une édition rapide de schéma électrique (schematic) d'avoir une idée du nombre de pins dont nous aurons besoin sur une carte FPGA afin de réaliser le projet.&lt;br /&gt;
&lt;br /&gt;
Après prospection, il se trouve que nous nous dirigerions vers la carte Digilent Spartan 3, dont l'école était déjà en possession.&lt;br /&gt;
&lt;br /&gt;
Donc nous nous sommes attelés à faire des recherches et des essais sur cette carte et pour notamment trouver un moyen de la faire fonctionner.&lt;br /&gt;
&lt;br /&gt;
== 5éme semaine: (du 03/03/2014 au 08/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, après plusieurs heures de recherches et d'essai infructueux, on a fini par trouver les drivers pour le câble USB diligent.&lt;br /&gt;
&lt;br /&gt;
Et donc ainsi avoir un fonctionnement de la communication via le câble JTAG plus propice au fonctionnement de la carte.&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur une partie des composants et des dimensionnements pour certains d'entre eux (valeur de résistance,capacité...)&lt;br /&gt;
&lt;br /&gt;
Schématics: Édition de multiple bibliothèque pour Altium, intégrant à la fois schématics et leur empreinte PCB associée.&lt;br /&gt;
&lt;br /&gt;
(On a pu constater qu'une interface 3v3 5v n'est pas forcement nécessaire pour assurer le bon fonctionnement entre deux cartes avec des tensions d'alimentation différentes.)&lt;br /&gt;
&lt;br /&gt;
== 6éme semaine: (du 10/03/2014 au 15/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur l'ensemble des composants et des choix de régulateur et utilisation d'autre diode Zener.&lt;br /&gt;
&lt;br /&gt;
On trouvera le schéma intégral avec les bibliothèques nécessaires dans la semaine 5.&lt;br /&gt;
&lt;br /&gt;
Cette semaine a été dédiée à l'envoi de la commande des composants au sein du magasin de l'école et du fournisseur.&lt;br /&gt;
&lt;br /&gt;
Après envoi de la commande, il se trouve que le projet a changé d'objectif principal.&lt;br /&gt;
&lt;br /&gt;
Il est maintenant prioritaire de réaliser un code VHDL capable d'évaluer la vitesse de transmission numérique du côté récepteur.&lt;br /&gt;
&lt;br /&gt;
== 7éme semaine: (du 17/03/2014 au 22/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Pour cette semaine, on s'est concentré sur la réalisation d'un générateur pseudo aléatoire en interne au FPGA.&lt;br /&gt;
&lt;br /&gt;
On réalisera une échelle de résistance afin de réaliser une conversion numérique analogique afin de l'envoyer sur la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
Ce code de &amp;quot;base&amp;quot; nous permettra de réaliser un flux de données fictif pour obtenir toutes les combinaisons récupérant le résultat du bus.&lt;br /&gt;
&lt;br /&gt;
[[MédiaP34_2013_2014_gene_pseudo_19_03_2014_6_semaine_7.zip|Archive contenant le projet ISE Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_rtl_semaine_7.PNG|300px|thumb|center|extrait du schéma RTL, on peut y voir clairement les inférences de Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
Ce schéma a deux entrées et une sortie, une entrée d'initialisation, une horloge et une sortie pour la trame en pseudo aléatoire.&lt;br /&gt;
&lt;br /&gt;
On fera l'essai sur la carte lors de la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
== 8éme semaine: (du 24/03/2014 au 26/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Après le premier test, on pourrait penser que l'on récupère du bruit en sortie de la carte:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0024_1_probleme_d_overshoot_semaine_8.jpg|300px|thumb|center|Overshoot.]]&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir remédier à ce problème, on a fait une prédivision de l'horloge&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0037_1_div_freq_semaine_8.jpg|300px|thumb|center|Overshoot après division.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0039_1_div_freq_zoom_semaine_8.jpg|300px|thumb|center|Overshoot après division (Zoom).]]&lt;br /&gt;
&lt;br /&gt;
Archive contenant toutes les modifications:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_26_03_2014_2_semaine_8.zip|VHDL Semaine 8.]]&lt;br /&gt;
&lt;br /&gt;
On a trouvé un moyen de faire un CNA facilement, via une &amp;quot;échelle dite R-2R&amp;quot;. [[http://www.uchobby.com/index.php/2008/01/08/arduino-audio-dac-options/|Pour le réseau R 2R.]]&lt;br /&gt;
&lt;br /&gt;
Il faut encore modifier le VHDL pour pouvoir l'exploiter et ainsi générer une constellation.&lt;br /&gt;
&lt;br /&gt;
== 9éme semaine: (du 28/03/2014 au 03/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pris donc le soin de modifier le VHDL:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_31_03_2014_1_semaine_9.zip|VHDL semaine 9]]&lt;br /&gt;
&lt;br /&gt;
Ce VHDL à été mis à jour, avec deux entrées (initialisation et une horloge) et un bus de sortie (8 bits), avec les trames pseudoaléatoires.&lt;br /&gt;
&lt;br /&gt;
On envoie ces signaux sur deux C.N.A.s (4 bits chacun) pour générer deux signaux I et Q, on peut voir une constellation se dessiner en mode X-Y.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0072_1_Montage_entier_4qam_semaine_9.jpg|300px|thumb|center|Montage avec constellations 4QAM.]]&lt;br /&gt;
&lt;br /&gt;
D'autres constellations réalisées sont disponibles en annexe. On peut monter jusqu'à une constellation de 256 points (2^4*2^4).&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage complet de toute la chaine de transmission. Il se trouve que la Boucle à Verrouillage de Phase (ou appellée PLL, Phase Loop Locker) ne se verrouille pas sur la porteuse du signal que l'on souhaite récupéré, de ce fait on ne peut pas récupérer les signaux I et Q.&lt;br /&gt;
&lt;br /&gt;
== 10éme semaine: (du 07/04/2014 au 10/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage que l'on évoquait en semaine 9:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0027_montage_realisee_semaine_10.jpg|center|thumb|300px|Montage pour améliorer la PLL.]]&lt;br /&gt;
&lt;br /&gt;
Il se trouve qu’après un réglage précis de la tension d'offset permettant d'être un proche de la fréquence à capturer on obtient:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0025_PLL_non_verrouillage_semaine_10.jpg|center|thumb|300px|Signaux I/Q après ajout du montage.]]&lt;br /&gt;
&lt;br /&gt;
= Annexes =&lt;br /&gt;
&lt;br /&gt;
== Annexe A: Détails techniques des semaines ==&lt;br /&gt;
&lt;br /&gt;
=== 1éme semaine: (du 27/01/2014 au 01/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Après on a réfléchi sur la potentielle conception/utilisation d'une carte FPGA.&lt;br /&gt;
Il sera judicieux de ne pas se précipiter sur le schéma et la conception/utilisation d'une carte FPGA, sans avoir, au préalable fait le VHDL et le testez avec un banc de test virtuel.&lt;br /&gt;
L'intérêt et de mettre en valeur la nécessité ou non de certains signaux pour le schéma de la carte.&lt;br /&gt;
On va mettre en oeuvre les connaissances acquises au S7 en VHDL (en TP de Circuit Numérique Programmble).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est de l'Arduino, on a répondu aux interrogations suivantes (certaines de ces questions paraissent triviales, mais on préfère éviter les surprises):&lt;br /&gt;
&lt;br /&gt;
Quelle est la vitesse maximale de la communication série de l'Arduino ?&lt;br /&gt;
-115200bauds&lt;br /&gt;
&lt;br /&gt;
Est-ce que, un programme de type &amp;quot;Analog Write&amp;quot; est-il une vraie sortie analogique ?&lt;br /&gt;
&lt;br /&gt;
-Non, c'est juste une PWM. Elle sera exploitable pour faire les signales I/Q mais très contraignantes, car il faudra filtré le signal, et ce sera beaucoup trop lent (du au fait que la modulation est faite au alentour de 850Mhz), le FPGA sera un passage obligé cela ouvrira les portes d'un plus grand débit.&lt;br /&gt;
&lt;br /&gt;
==== Manipulation réalisée sur la maquette TIMS : ====&lt;br /&gt;
&lt;br /&gt;
On a fait un des montages présentés dans l'ouvrage &amp;quot;Volume D1 Fundamental Digital Experiments&amp;quot; dans le but de visualiser l’objectif à atteindre.&lt;br /&gt;
&lt;br /&gt;
On obtient la constellation suivante (16QAM):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_tims_semaine_1.PNG|300px|thumb|center|Constellation visualisée en mode X-Y.]]&lt;br /&gt;
&lt;br /&gt;
Ce qui correspond à deux signaux en visualisation temporelle de cette forme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_temporelle_tims_semaine_1.PNG|300px|thumb|center|Signaux I et Q. (Image très floutée, à remplacer)]]&lt;br /&gt;
&lt;br /&gt;
On pourra facilement obtenir le même résultat en générant un bus de trame pseudo aléatoire et en l'injectant dans un C.N.A. (Conversion Numérique Analogique)&lt;br /&gt;
&lt;br /&gt;
==== Code Arduino réalisé: ====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schema_electronique_generateur_pseudo_aleatoire.png|300px|thumb|center|Schéma électronique du générateur pseudo aléatoire.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_chrono_simule.PNG|300px|thumb|center|Résultat de la simulation du générateur pseudo aléatoire (on a eu la même chose en pratique).]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_arduino.jpg|300px|thumb|center|Resultat avec le générateur pseudo aléatoire &amp;quot;émuler&amp;quot; avec l'Arduino.]]&lt;br /&gt;
&lt;br /&gt;
Comparaison carte réelle/résultat Arduino:&lt;br /&gt;
&lt;br /&gt;
C'était exactement les signaux attendus (même s'il y un décalage a par rapport à l'original).&lt;br /&gt;
&lt;br /&gt;
On aura bien pour une QPSK (4PSK) tous les couples (ie 00,01,11 et 10).&lt;br /&gt;
&lt;br /&gt;
À propos de l'arduino, on pourra envisager une amélioration pour générer une séquence plus longue:&lt;br /&gt;
&lt;br /&gt;
-il faudra simplement utiliser un tableau d'entier.&lt;br /&gt;
&lt;br /&gt;
-paramétrer sa taille avec un N par exemple.&lt;br /&gt;
&lt;br /&gt;
-N correspondra à la taille de séquence de longueur 2^N.&lt;br /&gt;
&lt;br /&gt;
Voir la section &amp;quot;Code Arduino réalisé&amp;quot; en annexe B dans la semaine correspondante.&lt;br /&gt;
&lt;br /&gt;
==== Possibilités de communications: ====&lt;br /&gt;
&lt;br /&gt;
Exploration des possibilités de communication entre le PC et la carte en amont:&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; Ethernet: =====&lt;br /&gt;
&lt;br /&gt;
*+ Vitesse de transmission (~10M-100M-G)bauds&lt;br /&gt;
&lt;br /&gt;
*- La gestion du flux de données doit être faite par un microcontrôleur (celui-ci pourra être implémenté un bloc I.P. à l'intérieur du FPGA)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; - Haute consommation de CLB du FPGA.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; SPI (communication série): =====&lt;br /&gt;
&lt;br /&gt;
*- Vitesse de transmission&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Arduino capable de communiquer jusqu'a 115200 bauds&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; D'après certaines discussions sur des forums, on pourrait « pousser » au-delà.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; I2C : =====&lt;br /&gt;
&lt;br /&gt;
Communication abandonnée, ce n'est pas une priorité.&lt;br /&gt;
&lt;br /&gt;
==== À propos des blocs I.P.: ====&lt;br /&gt;
&lt;br /&gt;
En consultant les ordinateurs et en s'appuyant des T.P.s de CNP, on constate que les blocs suivants existent:&lt;br /&gt;
&lt;br /&gt;
- Xilinx Microblaze/Xilinx Power PC (&amp;quot;µP FPGA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Est-ce possible d'utiliser ces blocs I.P. pour programmer un FPGA sur une carte autre que la Nanoboard ? Comment ?&lt;br /&gt;
&lt;br /&gt;
- EMACx (Ethernet Media Acess Control)(:lien physique entre processeurs et &amp;quot;standart Physical Layer device IEEE802.3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===== Conception de la carte: =====&lt;br /&gt;
&lt;br /&gt;
L'idéal est de se documenter sur la Compatibilité électromagnétique.&lt;br /&gt;
&lt;br /&gt;
=== 2éme semaine: (du 03/02/2014 au 08/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 3éme semaine: (du 10/02/2014 au 15/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, après avoir eu le problème de manipulation, nous avons pu prendre connaissance d'un certain montage qui s’avéra utile pour la conception de la carte/maquette.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_limiteur_de_courant_semaine_3.PNG|300px|thumb|center|Schéma limiteur de courant.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que ce montage se retrouve dans la partie &amp;quot;typical application&amp;quot; de la documentation technique du 7805.&lt;br /&gt;
&lt;br /&gt;
=== 4éme semaine: (du 17/02/2014 au 22/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
On souhaite pouvoir réaliser une communication unidirectionnelle ou même transmettre un signal audio ce qui nous contraint à une bande passante minimale de 48kHz, on prendra 200kHz (pour être bien au-delà de la condition du théorème de Shannon): le but serait donc de brancher par exemple une source audio quelconque puis de la transmettre à travers la maquette et de la recomposer en fin de chaine.&lt;br /&gt;
&lt;br /&gt;
Après édition rapide du schéma, on en dégage qu'il nous faudra un minimum d'environ 50 entrées/sorties. Mais ceci ce nombre sera très probablement revu à la hausse lors de prochaine séance.&lt;br /&gt;
&lt;br /&gt;
Voici la carte que l'on utilisera dans la suite du projet:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_S3BOARD-top-400_semaine_4.gif|300px|thumb|center|Digilent Spartan 3.]]&lt;br /&gt;
&lt;br /&gt;
=== 5éme semaine: (du 03/03/2014 au 08/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lien vers le Design complet avec les librairies incluses (on remarquera qu'il serait judicieux d’installer toutes les librairies avant d’essayer d'ouvrir le schéma)&lt;br /&gt;
&lt;br /&gt;
A notez aussi que l'on trouvera des reliques de feuilles Excel permettant de trouver rapidement des ratios dans la série E12.&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_Design_pcb_plus_librairies_semaine_5_6.zip|Schéma + Bibliothèques.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.pdf|Schéma en PDF.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.png|Schéma au format A2.]]&lt;br /&gt;
&lt;br /&gt;
=== 6éme semaine: (du 10/03/2014 au 15/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 7éme semaine: (du 17/03/2014 au 22/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 8éme semaine: (du 24/03/2014 au 26/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 9éme semaine: (du 28/03/2014 au 03/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0061_1_r_2r_semaine_9.jpg|center|thumb|300px|Le réseau R-2R.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0062_1_4QAM_semaine_9.jpg|center|thumb|300px|4QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0066_1_16QAM_semaine_9.jpg|center|thumb|300px|16QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0069_1_64QAM_semaine_9.jpg|center|thumb|300px|64QAM.]]&lt;br /&gt;
&lt;br /&gt;
Pas de photos pour la constellation à 256 points, mais elle a été réalisée.&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du montage, malgré que la P.L.L., on a un signal d'erreur après filtrage :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Chaine 1: Vtune (commande du V.C.O.)/Chaine 2: &amp;quot;erreur&amp;quot; de commande]]&lt;br /&gt;
&lt;br /&gt;
Ce qui met en valeur immédiatement deux problèmes majeurs:&lt;br /&gt;
&lt;br /&gt;
La chaine fonctionne sur le papier, mais lors de sa mise en pratique, il faut penser à mettre une tension d'offset et aussi réaliser une amplification de l'erreur pour avoir des grandeurs de commande adaptée au Vtune du V.C.O..&lt;br /&gt;
&lt;br /&gt;
On propose l'amélioration suivante (qui sera réalisé à la prochaine séance):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Proposition de voie d'amélioration.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que les valeurs des résistances et des capacités on était choisi pour permettre un fonctionnement correct des A.O. (Amplificateur Opérationnel), mais pas pour ce qui de l'asservissement de la boucle par manque de temps. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette, on a eu à démonter le montage à cause de contraintes concernant les Mini-circuits (car utilisé en travaux pratiques).&lt;br /&gt;
&lt;br /&gt;
=== 10éme semaine: (du 07/04/2014 au 10/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
Spectres des signaux de la chaine de transmission:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0001_allure_spectre_reception_semaine_10.jpg|center|thumb|300px|Spectre en réception.]]&lt;br /&gt;
&lt;br /&gt;
Porteuse utilisée pour la modulation I/Q à environ 60MHz.&lt;br /&gt;
&lt;br /&gt;
Porteuse utilisée pour le transport en fréquence à environ 810MHz:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0035_constellation_recupere_PLL_NV_semaine_10.jpg|center|thumb|300px|&amp;quot;Constellation&amp;quot; récupérée avec la PLL défectueuse (on souhaite se verrouiller sur la raie à 868MHz).]]&lt;br /&gt;
&lt;br /&gt;
Question en suspens: faudrait-il utiliser un filtre passe-bande incluant 868Mhz pour pouvoir se verrouiller sur cette fréquence ?&lt;br /&gt;
&lt;br /&gt;
On remarquera le fait que l'oscillateur du côté de la chaine d'émission a d'importantes non-linéarités (on peut observer à l'analyseur de spectre 3 à 4 raies aux fréquences multiples).&lt;br /&gt;
&lt;br /&gt;
Ce qui donne un diagramme de constellation plutôt mauvais si l'on fait le montage suivant:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_montage_non_linearite_vco_constellation_semaine_10.PNG|center|thumb|300px|Montage réalisée.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_sortie_montage_non_linearite_semaine_10.PNG|center|thumb|300px|La constellation 4QAM est attendue, on est loin du résultat attendu (aucune photo n'a était réalisé d'ou le dessin).]]&lt;br /&gt;
&lt;br /&gt;
== Annexe B: Digilent Spartan 3 ==&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire fonctionner la carte Digilent Spartan 3: ===&lt;br /&gt;
&lt;br /&gt;
Ne connectez pas de connecteur JTAG pendant les installations. Redémarrez après chaque installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut savoir que le l'ISE Webpack 14.6 fonctionne avec la carte (n'utilisez pas la 14.7, elle ne supporte pas la génération spartan 3 !):&lt;br /&gt;
&lt;br /&gt;
Installez donc l'ISE WebPack 14.6 (ou antérieur à condition que celle-ci soit supérieur à la 7.1i (d'après leur documentation))&lt;br /&gt;
&lt;br /&gt;
(voir lien utile sur Xilinx)&lt;br /&gt;
&lt;br /&gt;
Une fois l'installation de l'ISE terminé, faites en sorte d'avoir celui que soit opérationnel (la licence est gratuite !).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installez la &amp;quot;library&amp;quot; ADEPT 2.3 voir le lien utile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après vous n'avez plus qu'a utilisez ISE Xilinx normalement et vous serez capable de reconnaitre la carte via la liaison JTAG, et de le programmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Liens utiles: ===&lt;br /&gt;
&lt;br /&gt;
Lien constructeur/vendeur (avec ressources utiles en bas de la page):&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?Prod=S3BOARD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien &amp;quot;Library&amp;quot; pour le câble USB digilent:&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,69&amp;amp;Prod=ADEPT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour l'ISE 14.6):&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/products/design-tools/ise-design-suite/index.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour les versions antérieures veuillez faire attention au système d'exploitation, votre architecture matérielle et le FPGA cible):&lt;br /&gt;
&lt;br /&gt;
(Les informations de compatibilité son sur la page suivante:) (mots clés: xilinx classic(s))&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/tools/classics.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream, et le charger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en &amp;quot;non&amp;quot;-volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream et l'utiliser pour générer un .mcs qui vous permettra d'inscrire le programme dans la mémoire (E?)PROM.&lt;br /&gt;
&lt;br /&gt;
On remarquera que la programmation en non volatile est utile pour faire un remise à zéro et recharger le contenu de l'(E?)PROM, mais semble être sensible au débranchement de l'adaptateur d'alimentation de la carte.&lt;br /&gt;
&lt;br /&gt;
=== Exemple de programmation: ===&lt;br /&gt;
&lt;br /&gt;
Voir le lien digilent pour ceci dans cette annexe.&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Rapport_projet_p34_s8_6.pdf&amp;diff=11698</id>
		<title>Fichier:Rapport projet p34 s8 6.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Rapport_projet_p34_s8_6.pdf&amp;diff=11698"/>
				<updated>2014-04-14T21:19:14Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11695</id>
		<title>Modem pour le numérique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11695"/>
				<updated>2014-04-14T21:11:53Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* 10éme semaine: (du 07/04/2014 au 10/04/2014) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Modulateur et démodulateur pour communications numériques =&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
=== Présentation générale du projet ===&lt;br /&gt;
&lt;br /&gt;
Dans le cadre des TPs d'électronique et de transmission RF, nous avons découvert qu'il existe plusieurs modes de modulation, pour transmettre un signal modulant.&lt;br /&gt;
&lt;br /&gt;
Celles vues en TP au S7 sont la modulation en amplitude, en fréquence, en phase, en BPSK et en QPSK.&lt;br /&gt;
&lt;br /&gt;
Or les modulations en phase, en fréquence et en amplitude étant celles les plus connues, la modulation en QAM (Modulation d'Amplitude en Quadrature) est quant à elle moins connue, mais tout aussi utilisées:&lt;br /&gt;
&lt;br /&gt;
-pour la TNT en 64 QAM (en France).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_64qam.jpg|300px|thumb|center|Exemple de constellation 64QAM.]]&lt;br /&gt;
&lt;br /&gt;
-pour le WiFi en 64-QAM ou 256-QAM (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Or ces deux dernières étant peu représentées au niveau des travaux pratiques, ce projet permettra de fournir un peu plus de pratique sur les modulations de type QAM (en diagramme I/Q) dans le domaine des radiofréquences (~800MHz).&lt;br /&gt;
&lt;br /&gt;
(Le nombre devant le QAM indique le nombre de points dans le diagramme I/Q qu'on appelle aussi constellation)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se réserve le droit de faire '''évoluer''' le cahier des charges a posteriori, si certaines contraintes étaient amenées à évoluer ou se préciser.&lt;br /&gt;
&lt;br /&gt;
=== Objectif et intérêt du projet ===&lt;br /&gt;
&lt;br /&gt;
Pour cela, on nous a fourni des modules commerciaux Mini-circuit pouvant travailler dans les radios-fréquences.&lt;br /&gt;
&lt;br /&gt;
Ceux-ci permettront de mettre en place une grande partie de la chaine de transmission (voir schéma de la chaine de transmission).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_modulation.PNG|300px|thumb|center|Modulation.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_demodulation.PNG|300px|thumb|center|Démodulation.]]&lt;br /&gt;
&lt;br /&gt;
On a tout d'abord à mettre en place une carte FPGA et/ou un dispositif permettant d'envoyer un flux de données numériques continuellement pour pouvoir visualiser le diagramme I/Q (mise en valeur du diagramme I/Q et voir même un diagramme un peu plus complexe que le BPSK ou le QPSK).&lt;br /&gt;
&lt;br /&gt;
Le canal de transmission qui sera un simple fil électrique, mais pourra devenir une antenne réceptrice et émettrice si le temps imparti le permet (mise en valeur du et mesure du Bit Error Rate qui sera bien sûr différent suivant le canal de transmission).&lt;br /&gt;
&lt;br /&gt;
Du côté réception ,après démodulation du signal, une remise en forme et une interprétation des données seront réalisées, celle-ci dépendra bien entendu de la provenance du flux de données (constater le succès ou l'échec d'un envoi de données).&lt;br /&gt;
&lt;br /&gt;
Enfin si le temps le permets on pourra mettre en une place un système de codage de l'information avec par exemple un codage redondant permettant de corrigé l'erreur (À définir, on pourra faire constater l'efficacité d'une méthode de codage au choix).&lt;br /&gt;
&lt;br /&gt;
=== Étapes/Déroulement du projet ===&lt;br /&gt;
&lt;br /&gt;
De même que pour le cahier des charges, il se peut que les étapes diffèrent plus ou moins, en fonction des disponibilités, matérielles et contraintes.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Caractérisation des blocs Mini-circuits et épluchage des documentations techniques====&lt;br /&gt;
Avant de les utiliser dans la chaine de transmission, nous avons à faire une caractérisation des blocs fournis:&lt;br /&gt;
&lt;br /&gt;
-la caractérisation du VCO.&lt;br /&gt;
&lt;br /&gt;
-l'étude des possibilités offerte par le modulateur (cela déterminera le nombre de points possible dans la constellation, ie savoir si l'on peut aller au-delà de la QPSK).&lt;br /&gt;
&lt;br /&gt;
-la caractérisation des mélangeurs (Mixer), leurs facteurs réels de multiplication.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Utilisation et exploitation des caractérisations ====&lt;br /&gt;
On pourra ensuite trouver les paramètres pour régler correctement dans notre chaine de transmission certains de nos sous-systèmes comme la boucle à verrouillage de phase.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Génération d'un flux des données numériques ====&lt;br /&gt;
Comme dit précédemment, l'idéal et d'avoir un flux de données numériques transmis en permanence.&lt;br /&gt;
Pour cela plusieurs solutions s'offre à nous, on pourra utiliser un montage générateur pseudo aléatoire (un circuit que l'on a fait l'année dernière en Conception de Circuit Électronique).&lt;br /&gt;
On pourra &amp;quot;émuler&amp;quot; ce montage avec un Arduino, ou bien même le faire au moyen de la Nanoboard.&lt;br /&gt;
On pourra aussi transmettre des chaines de caractère en continu.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Test de la chaine ====&lt;br /&gt;
Une fois les étapes précédentes réalisées, on pourra passer au test de la chaine de transmission. Il faudra vérifier le bon fonctionnement en aval, dedans (boucle à verrouillage de phase), et en amont de la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Première mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
Il est possible que la conception d'un dispositif soit nécessaire que ce soit pour les deux mesures du B.E.R..&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Antennes ====&lt;br /&gt;
Si toutes les étapes précédentes sont satisfaites, on pourra alors faire un canal de transmission plus intéressant, à savoir l'air.&lt;br /&gt;
Nous passerons alors à la conception des antennes, émettrice et réceptrice.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Deuxième mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Codage de l'information et correction d'erreur ====&lt;br /&gt;
En toute fin de ce projet, on pourra même mettre deux dispositifs en aval et en amont de la chaine de transmission.&lt;br /&gt;
On réalisera alors un codeur et un décodeur permettant de faire de la détection/correction d'erreur.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Mise en place d'outil de débogage (tout au long)====&lt;br /&gt;
La mise en place de simples outils de débogage et primordiale, ceux-ci permettront de vérifier le bon fonctionnement de la chaine.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Proposition d'un sujet de TP (tout au long) ====&lt;br /&gt;
Il se trouve que lors du déroulement du projet, on pourra être amené à se poser des questions au niveau des réglages de la chaine de transmission.&lt;br /&gt;
Or il est fort probable que les élèves qui travailleront sur ce TP pourront alors se poser les mêmes questions.&lt;br /&gt;
C'est pour cela qui sera judicieux de prendre soin de noter les problématiques rencontrées et de donner un certain fil de développement pour venir à bout de la problématique posée.&lt;br /&gt;
Ce qui reviendra à proposer des axes/questions sur les manipulations de cette maquette de TP.&lt;br /&gt;
&lt;br /&gt;
== Note valable pour toutes les semaines ==&lt;br /&gt;
&lt;br /&gt;
'''[[Si un point vous semble imprécis, veuillez vous reporter aux détails fournis en annexe.]]'''&lt;br /&gt;
&lt;br /&gt;
== 1éme semaine: (du 27/01/2014 au 01/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Séance du 05/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Pour bien comprendre les différentes choses à réaliser, on a refait les manipulations vues en TP. On a, pour cela utiliser la maquette didactique TIMS pour générer différent type de modulation:&lt;br /&gt;
&lt;br /&gt;
-la modulation en 4,8,16PSK (on obtient une constellation en forme de cercle).&lt;br /&gt;
&lt;br /&gt;
-La modulation en 4,8,16QAM (on obtient une constellation avec un carré, ou deux: de différentes tailles).&lt;br /&gt;
&lt;br /&gt;
On a très vite dégagé la nécessité de réaliser un montage générateur de tous les mots numériques possibles.&lt;br /&gt;
On a donc fait un programme sur arduino qui équivaut au générateur pseudo aléatoire.&lt;br /&gt;
Celui-ci est directement inspiré du montage que l'on a réalisé l'année dernière en conception de circuit électronique.&lt;br /&gt;
&lt;br /&gt;
Séance du 06/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Lors de cette séance on a exploré toutes les possibilités concernant la communication entre la maquette/carte, car cela pour avoir une influence non négligeable sur le choix de la carte F.P.G.A. et du design de la maquette.&lt;br /&gt;
&lt;br /&gt;
On a donc aussi fait des recherches concernant les possibilités de communications et les blocs I.P. (Intellectual Properties) permettant de programmer un F.P.G.A.&lt;br /&gt;
&lt;br /&gt;
Et enfin, on a eu une discussion avec un responsable technique pour ce qui de la C.E.M. (Compatibilité Electro-Magnétique)&lt;br /&gt;
&lt;br /&gt;
== 2éme semaine: (du 03/02/2014 au 08/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Réflexion sur les possibilités possibles et offertes par le sujet pour ce qui est des parties de communications entre la maquette en interne et de son environnement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_principe_carte_semaine_2.PNG|300px|thumb|center|Maquette en interne/externe.]]&lt;br /&gt;
&lt;br /&gt;
N'ayant jamais utilisé d'autre carte que la Nanoboard, on s'est attelé à faire des recherches sur la manière de procéder pour programmer une carte F.P.G.A., il se trouve que chaque carte de développement à ses propres manières pour être programmé.&lt;br /&gt;
&lt;br /&gt;
On a pris le soin de noter toutes les questions concernant le F.P.G.A. pour un intervenant industriel qui assura un cours la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
== 3éme semaine: (du 10/02/2014 au 15/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Ayant les oscillateurs commandables en tension, on a pu commencer à faire une manipulation avec les composants Mini-Circuit.&lt;br /&gt;
&lt;br /&gt;
Mais après un problème suite à une manipulation l'un des VCOs ne fonctionne plus.&lt;br /&gt;
&lt;br /&gt;
Ce qui nous amène à penser qu'il sera judicieux de prévoir une alimentation au niveau de la carte.&lt;br /&gt;
&lt;br /&gt;
Celle-ci devra être inférieure ou égale à la tension maximale d'alimentation du composant (ceux-ci étant très sensible).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Questions/Réponses:&lt;br /&gt;
&lt;br /&gt;
Comment fait-on pour programmer une carte F.P.G.A. est-ce que la programmation se fait &amp;quot;in situe&amp;quot; ? (in situe : c'est à dire sur la carte elle-même) &lt;br /&gt;
Oui, c'est ce qui est utilisé, via un câble JTAG.&lt;br /&gt;
&lt;br /&gt;
Est-ce possible faire une interface USB pour permettre à un ordinateur de communiquer avec la maquette/carte via un F.P.G.A. ? Oui.&lt;br /&gt;
&lt;br /&gt;
Est-ce que la gestion de l'interface Ethernet est envisageable ? Oui.&lt;br /&gt;
&lt;br /&gt;
Pour une communication en protocole UDP avec un ordinateur via une liaison Ethernet, est-ce qu'il y a d'autres façons que d'utiliser un &amp;quot;SoftCore&amp;quot; ?&lt;br /&gt;
&lt;br /&gt;
Oui, il existe aussi bien en Software, qu'en Hardware.&lt;br /&gt;
&lt;br /&gt;
== 4éme semaine: (du 17/02/2014 au 22/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a donc repris l'idée de la 2éme semaine.&lt;br /&gt;
&lt;br /&gt;
Après avoir mis en place un cahier des charges au niveau des qualités, bande passante minimale.&lt;br /&gt;
&lt;br /&gt;
Nous avons fait des recherches sur les composants à utiliser (i.e. CAN, CAN, ...)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous a permis après une édition rapide de schéma électrique (schematic) d'avoir une idée du nombre de pins dont nous aurons besoin sur une carte FPGA afin de réaliser le projet.&lt;br /&gt;
&lt;br /&gt;
Après prospection, il se trouve que nous nous dirigerions vers la carte Digilent Spartan 3, dont l'école était déjà en possession.&lt;br /&gt;
&lt;br /&gt;
Donc nous nous sommes attelés à faire des recherches et des essais sur cette carte et pour notamment trouver un moyen de la faire fonctionner.&lt;br /&gt;
&lt;br /&gt;
== 5éme semaine: (du 03/03/2014 au 08/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, après plusieurs heures de recherches et d'essai infructueux, on a fini par trouver les drivers pour le câble USB diligent.&lt;br /&gt;
&lt;br /&gt;
Et donc ainsi avoir un fonctionnement de la communication via le câble JTAG plus propice au fonctionnement de la carte.&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur une partie des composants et des dimensionnements pour certains d'entre eux (valeur de résistance,capacité...)&lt;br /&gt;
&lt;br /&gt;
Schématics: Édition de multiple bibliothèque pour Altium, intégrant à la fois schématics et leur empreinte PCB associée.&lt;br /&gt;
&lt;br /&gt;
(On a pu constater qu'une interface 3v3 5v n'est pas forcement nécessaire pour assurer le bon fonctionnement entre deux cartes avec des tensions d'alimentation différentes.)&lt;br /&gt;
&lt;br /&gt;
== 6éme semaine: (du 10/03/2014 au 15/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur l'ensemble des composants et des choix de régulateur et utilisation d'autre diode Zener.&lt;br /&gt;
&lt;br /&gt;
On trouvera le schéma intégral avec les bibliothèques nécessaires dans la semaine 5.&lt;br /&gt;
&lt;br /&gt;
Cette semaine a été dédiée à l'envoi de la commande des composants au sein du magasin de l'école et du fournisseur.&lt;br /&gt;
&lt;br /&gt;
Après envoi de la commande, il se trouve que le projet a changé d'objectif principal.&lt;br /&gt;
&lt;br /&gt;
Il est maintenant prioritaire de réaliser un code VHDL capable d'évaluer la vitesse de transmission numérique du côté récepteur.&lt;br /&gt;
&lt;br /&gt;
== 7éme semaine: (du 17/03/2014 au 22/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Pour cette semaine, on s'est concentré sur la réalisation d'un générateur pseudo aléatoire en interne au FPGA.&lt;br /&gt;
&lt;br /&gt;
On réalisera une échelle de résistance afin de réaliser une conversion numérique analogique afin de l'envoyer sur la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
Ce code de &amp;quot;base&amp;quot; nous permettra de réaliser un flux de données fictif pour obtenir toutes les combinaisons récupérant le résultat du bus.&lt;br /&gt;
&lt;br /&gt;
[[MédiaP34_2013_2014_gene_pseudo_19_03_2014_6_semaine_7.zip|Archive contenant le projet ISE Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_rtl_semaine_7.PNG|300px|thumb|center|extrait du schéma RTL, on peut y voir clairement les inférences de Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
Ce schéma a deux entrées et une sortie, une entrée d'initialisation, une horloge et une sortie pour la trame en pseudo aléatoire.&lt;br /&gt;
&lt;br /&gt;
On fera l'essai sur la carte lors de la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
== 8éme semaine: (du 24/03/2014 au 26/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Après le premier test, on pourrait penser que l'on récupère du bruit en sortie de la carte:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0024_1_probleme_d_overshoot_semaine_8.jpg|300px|thumb|center|Overshoot.]]&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir remédier à ce problème, on a fait une prédivision de l'horloge&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0037_1_div_freq_semaine_8.jpg|300px|thumb|center|Overshoot après division.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0039_1_div_freq_zoom_semaine_8.jpg|300px|thumb|center|Overshoot après division (Zoom).]]&lt;br /&gt;
&lt;br /&gt;
Archive contenant toutes les modifications:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_26_03_2014_2_semaine_8.zip|VHDL Semaine 8.]]&lt;br /&gt;
&lt;br /&gt;
On a trouvé un moyen de faire un CNA facilement, via une &amp;quot;échelle dite R-2R&amp;quot;. [[http://www.uchobby.com/index.php/2008/01/08/arduino-audio-dac-options/|Pour le réseau R 2R.]]&lt;br /&gt;
&lt;br /&gt;
Il faut encore modifier le VHDL pour pouvoir l'exploiter et ainsi générer une constellation.&lt;br /&gt;
&lt;br /&gt;
== 9éme semaine: (du 28/03/2014 au 03/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pris donc le soin de modifier le VHDL:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_31_03_2014_1_semaine_9.zip|VHDL semaine 9]]&lt;br /&gt;
&lt;br /&gt;
Ce VHDL à été mis à jour, avec deux entrées (initialisation et une horloge) et un bus de sortie (8 bits), avec les trames pseudoaléatoires.&lt;br /&gt;
&lt;br /&gt;
On envoie ces signaux sur deux C.N.A.s (4 bits chacun) pour générer deux signaux I et Q, on peut voir une constellation se dessiner en mode X-Y.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0072_1_Montage_entier_4qam_semaine_9.jpg|300px|thumb|center|Montage avec constellations 4QAM.]]&lt;br /&gt;
&lt;br /&gt;
D'autres constellations réalisées sont disponibles en annexe. On peut monter jusqu'à une constellation de 256 points (2^4*2^4).&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage complet de toute la chaine de transmission. Il se trouve que la Boucle à Verrouillage de Phase (ou appellée PLL, Phase Loop Locker) ne se verrouille pas sur la porteuse du signal que l'on souhaite récupéré, de ce fait on ne peut pas récupérer les signaux I et Q.&lt;br /&gt;
&lt;br /&gt;
== 10éme semaine: (du 07/04/2014 au 10/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage que l'on évoquait en semaine 9:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0027_montage_realisee_semaine_10.jpg|center|thumb|300px|Montage pour améliorer la PLL.]]&lt;br /&gt;
&lt;br /&gt;
Il se trouve qu’après un réglage précis de la tension d'offset permettant d'être un proche de la fréquence à capturer on obtient:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0025_PLL_non_verrouillage_semaine_10.jpg|center|thumb|300px|Signaux I/Q après ajout du montage.]]&lt;br /&gt;
&lt;br /&gt;
= Annexes =&lt;br /&gt;
&lt;br /&gt;
== Annexe A: Détails techniques des semaines ==&lt;br /&gt;
&lt;br /&gt;
=== 1éme semaine: (du 27/01/2014 au 01/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Après on a réfléchi sur la potentielle conception/utilisation d'une carte FPGA.&lt;br /&gt;
Il sera judicieux de ne pas se précipiter sur le schéma et la conception/utilisation d'une carte FPGA, sans avoir, au préalable fait le VHDL et le testez avec un banc de test virtuel.&lt;br /&gt;
L'intérêt et de mettre en valeur la nécessité ou non de certains signaux pour le schéma de la carte.&lt;br /&gt;
On va mettre en oeuvre les connaissances acquises au S7 en VHDL (en TP de Circuit Numérique Programmble).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est de l'Arduino, on a répondu aux interrogations suivantes (certaines de ces questions paraissent triviales, mais on préfère éviter les surprises):&lt;br /&gt;
&lt;br /&gt;
Quelle est la vitesse maximale de la communication série de l'Arduino ?&lt;br /&gt;
-115200bauds&lt;br /&gt;
&lt;br /&gt;
Est-ce que, un programme de type &amp;quot;Analog Write&amp;quot; est-il une vraie sortie analogique ?&lt;br /&gt;
&lt;br /&gt;
-Non, c'est juste une PWM. Elle sera exploitable pour faire les signales I/Q mais très contraignantes, car il faudra filtré le signal, et ce sera beaucoup trop lent (du au fait que la modulation est faite au alentour de 850Mhz), le FPGA sera un passage obligé cela ouvrira les portes d'un plus grand débit.&lt;br /&gt;
&lt;br /&gt;
==== Manipulation réalisée sur la maquette TIMS : ====&lt;br /&gt;
&lt;br /&gt;
On a fait un des montages présentés dans l'ouvrage &amp;quot;Volume D1 Fundamental Digital Experiments&amp;quot; dans le but de visualiser l’objectif à atteindre.&lt;br /&gt;
&lt;br /&gt;
On obtient la constellation suivante (16QAM):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_tims_semaine_1.PNG|300px|thumb|center|Constellation visualisée en mode X-Y.]]&lt;br /&gt;
&lt;br /&gt;
Ce qui correspond à deux signaux en visualisation temporelle de cette forme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_temporelle_tims_semaine_1.PNG|300px|thumb|center|Signaux I et Q. (Image très floutée, à remplacer)]]&lt;br /&gt;
&lt;br /&gt;
On pourra facilement obtenir le même résultat en générant un bus de trame pseudo aléatoire et en l'injectant dans un C.N.A. (Conversion Numérique Analogique)&lt;br /&gt;
&lt;br /&gt;
==== Code Arduino réalisé: ====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schema_electronique_generateur_pseudo_aleatoire.png|300px|thumb|center|Schéma électronique du générateur pseudo aléatoire.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_chrono_simule.PNG|300px|thumb|center|Résultat de la simulation du générateur pseudo aléatoire (on a eu la même chose en pratique).]]&lt;br /&gt;
&lt;br /&gt;
[code]&lt;br /&gt;
/*A peut-être supprimer*/&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;		&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void output_init(void){&lt;br /&gt;
  DDRB |= 0x02; // PIN 8,9 sont les deux sorties.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(void){&lt;br /&gt;
  int r1=1,r2=0,r3=0,r4=0,r5=0,retard=0;&lt;br /&gt;
  PORTB=0x00;&lt;br /&gt;
  while(1)&lt;br /&gt;
    {&lt;br /&gt;
      r5=r4;//chaque affectation représente une recopie de la bascule sur le &amp;quot;front montant&amp;quot;, ici c'est simplement l’exécution du code.&lt;br /&gt;
      r4=r3;&lt;br /&gt;
      r3=r2;&lt;br /&gt;
      r2=r1;&lt;br /&gt;
      r1=r4^r5;&lt;br /&gt;
      PORTB=0x01*r1+0x02*retard;//écriture des signaux&lt;br /&gt;
      _delay_ms(10);//le &amp;quot;front montant&amp;quot;, ce qui permet de faire un genre d'horloge.&lt;br /&gt;
      retard=r5;//déphasage du signal&lt;br /&gt;
    }&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
[/code]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_arduino.jpg|300px|thumb|center|Resultat avec le générateur pseudo aléatoire &amp;quot;émuler&amp;quot; avec l'Arduino.]]&lt;br /&gt;
&lt;br /&gt;
Comparaison carte réelle/résultat Arduino:&lt;br /&gt;
&lt;br /&gt;
C'était exactement les signaux attendus (même s'il y un décalage a par rapport à l'original).&lt;br /&gt;
&lt;br /&gt;
On aura bien pour une QPSK (4PSK) tous les couples (ie 00,01,11 et 10).&lt;br /&gt;
&lt;br /&gt;
À propos de l'arduino, on pourra envisager une amélioration pour générer une séquence plus longue:&lt;br /&gt;
&lt;br /&gt;
-il faudra simplement utiliser un tableau d'entier.&lt;br /&gt;
&lt;br /&gt;
-paramétrer sa taille avec un N par exemple.&lt;br /&gt;
&lt;br /&gt;
-N correspondra à la taille de séquence de longueur 2^N.&lt;br /&gt;
&lt;br /&gt;
Voir la section &amp;quot;Code Arduino réalisé&amp;quot; en annexe B dans la semaine correspondante.&lt;br /&gt;
&lt;br /&gt;
==== Possibilités de communications: ====&lt;br /&gt;
&lt;br /&gt;
Exploration des possibilités de communication entre le PC et la carte en amont:&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; Ethernet: =====&lt;br /&gt;
&lt;br /&gt;
*+ Vitesse de transmission (~10M-100M-G)bauds&lt;br /&gt;
&lt;br /&gt;
*- La gestion du flux de données doit être faite par un microcontrôleur (celui-ci pourra être implémenté un bloc I.P. à l'intérieur du FPGA)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; - Haute consommation de CLB du FPGA.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; SPI (communication série): =====&lt;br /&gt;
&lt;br /&gt;
*- Vitesse de transmission&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Arduino capable de communiquer jusqu'a 115200 bauds&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; D'après certaines discussions sur des forums, on pourrait « pousser » au-delà.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; I2C : =====&lt;br /&gt;
&lt;br /&gt;
Communication abandonnée, ce n'est pas une priorité.&lt;br /&gt;
&lt;br /&gt;
==== À propos des blocs I.P.: ====&lt;br /&gt;
&lt;br /&gt;
En consultant les ordinateurs et en s'appuyant des T.P.s de CNP, on constate que les blocs suivants existent:&lt;br /&gt;
&lt;br /&gt;
- Xilinx Microblaze/Xilinx Power PC (&amp;quot;µP FPGA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Est-ce possible d'utiliser ces blocs I.P. pour programmer un FPGA sur une carte autre que la Nanoboard ? Comment ?&lt;br /&gt;
&lt;br /&gt;
- EMACx (Ethernet Media Acess Control)(:lien physique entre processeurs et &amp;quot;standart Physical Layer device IEEE802.3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===== Conception de la carte: =====&lt;br /&gt;
&lt;br /&gt;
L'idéal est de se documenter sur la Compatibilité électromagnétique.&lt;br /&gt;
&lt;br /&gt;
=== 2éme semaine: (du 03/02/2014 au 08/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 3éme semaine: (du 10/02/2014 au 15/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, après avoir eu le problème de manipulation, nous avons pu prendre connaissance d'un certain montage qui s’avéra utile pour la conception de la carte/maquette.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_limiteur_de_courant_semaine_3.PNG|300px|thumb|center|Schéma limiteur de courant.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que ce montage se retrouve dans la partie &amp;quot;typical application&amp;quot; de la documentation technique du 7805.&lt;br /&gt;
&lt;br /&gt;
=== 4éme semaine: (du 17/02/2014 au 22/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
On souhaite pouvoir réaliser une communication unidirectionnelle ou même transmettre un signal audio ce qui nous contraint à une bande passante minimale de 48kHz, on prendra 200kHz (pour être bien au-delà de la condition du théorème de Shannon): le but serait donc de brancher par exemple une source audio quelconque puis de la transmettre à travers la maquette et de la recomposer en fin de chaine.&lt;br /&gt;
&lt;br /&gt;
Après édition rapide du schéma, on en dégage qu'il nous faudra un minimum d'environ 50 entrées/sorties. Mais ceci ce nombre sera très probablement revu à la hausse lors de prochaine séance.&lt;br /&gt;
&lt;br /&gt;
Voici la carte que l'on utilisera dans la suite du projet:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_S3BOARD-top-400_semaine_4.gif|300px|thumb|center|Digilent Spartan 3.]]&lt;br /&gt;
&lt;br /&gt;
=== 5éme semaine: (du 03/03/2014 au 08/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lien vers le Design complet avec les librairies incluses (on remarquera qu'il serait judicieux d’installer toutes les librairies avant d’essayer d'ouvrir le schéma)&lt;br /&gt;
&lt;br /&gt;
A notez aussi que l'on trouvera des reliques de feuilles Excel permettant de trouver rapidement des ratios dans la série E12.&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_Design_pcb_plus_librairies_semaine_5_6.zip|Schéma + Bibliothèques.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.pdf|Schéma en PDF.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.png|Schéma au format A2.]]&lt;br /&gt;
&lt;br /&gt;
=== 6éme semaine: (du 10/03/2014 au 15/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 7éme semaine: (du 17/03/2014 au 22/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 8éme semaine: (du 24/03/2014 au 26/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 9éme semaine: (du 28/03/2014 au 03/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0061_1_r_2r_semaine_9.jpg|center|thumb|300px|Le réseau R-2R.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0062_1_4QAM_semaine_9.jpg|center|thumb|300px|4QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0066_1_16QAM_semaine_9.jpg|center|thumb|300px|16QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0069_1_64QAM_semaine_9.jpg|center|thumb|300px|64QAM.]]&lt;br /&gt;
&lt;br /&gt;
Pas de photos pour la constellation à 256 points, mais elle a été réalisée.&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du montage, malgré que la P.L.L., on a un signal d'erreur après filtrage :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Chaine 1: Vtune (commande du V.C.O.)/Chaine 2: &amp;quot;erreur&amp;quot; de commande]]&lt;br /&gt;
&lt;br /&gt;
Ce qui met en valeur immédiatement deux problèmes majeurs:&lt;br /&gt;
&lt;br /&gt;
La chaine fonctionne sur le papier, mais lors de sa mise en pratique, il faut penser à mettre une tension d'offset et aussi réaliser une amplification de l'erreur pour avoir des grandeurs de commande adaptée au Vtune du V.C.O..&lt;br /&gt;
&lt;br /&gt;
On propose l'amélioration suivante (qui sera réalisé à la prochaine séance):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Proposition de voie d'amélioration.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que les valeurs des résistances et des capacités on était choisi pour permettre un fonctionnement correct des A.O. (Amplificateur Opérationnel), mais pas pour ce qui de l'asservissement de la boucle par manque de temps. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette, on a eu à démonter le montage à cause de contraintes concernant les Mini-circuits (car utilisé en travaux pratiques).&lt;br /&gt;
&lt;br /&gt;
=== 10éme semaine: (du 07/04/2014 au 10/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
Spectres des signaux de la chaine de transmission:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0001_allure_spectre_reception_semaine_10.jpg|center|thumb|300px|Spectre en réception.]]&lt;br /&gt;
&lt;br /&gt;
Porteuse utilisée pour la modulation I/Q à environ 60MHz.&lt;br /&gt;
&lt;br /&gt;
Porteuse utilisée pour le transport en fréquence à environ 810MHz:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0035_constellation_recupere_PLL_NV_semaine_10.jpg|center|thumb|300px|&amp;quot;Constellation&amp;quot; récupérée avec la PLL défectueuse (on souhaite se verrouiller sur la raie à 868MHz).]]&lt;br /&gt;
&lt;br /&gt;
Question en suspens: faudrait-il utiliser un filtre passe-bande incluant 868Mhz pour pouvoir se verrouiller sur cette fréquence ?&lt;br /&gt;
&lt;br /&gt;
On remarquera le fait que l'oscillateur du côté de la chaine d'émission a d'importantes non-linéarités (on peut observer à l'analyseur de spectre 3 à 4 raies aux fréquences multiples).&lt;br /&gt;
&lt;br /&gt;
Ce qui donne un diagramme de constellation plutôt mauvais si l'on fait le montage suivant:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_montage_non_linearite_vco_constellation_semaine_10.PNG|center|thumb|300px|Montage réalisée.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_sortie_montage_non_linearite_semaine_10.PNG|center|thumb|300px|La constellation 4QAM est attendue, on est loin du résultat attendu (aucune photo n'a était réalisé d'ou le dessin).]]&lt;br /&gt;
&lt;br /&gt;
== Annexe B: Digilent Spartan 3 ==&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire fonctionner la carte Digilent Spartan 3: ===&lt;br /&gt;
&lt;br /&gt;
Ne connectez pas de connecteur JTAG pendant les installations. Redémarrez après chaque installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut savoir que le l'ISE Webpack 14.6 fonctionne avec la carte (n'utilisez pas la 14.7, elle ne supporte pas la génération spartan 3 !):&lt;br /&gt;
&lt;br /&gt;
Installez donc l'ISE WebPack 14.6 (ou antérieur à condition que celle-ci soit supérieur à la 7.1i (d'après leur documentation))&lt;br /&gt;
&lt;br /&gt;
(voir lien utile sur Xilinx)&lt;br /&gt;
&lt;br /&gt;
Une fois l'installation de l'ISE terminé, faites en sorte d'avoir celui que soit opérationnel (la licence est gratuite !).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installez la &amp;quot;library&amp;quot; ADEPT 2.3 voir le lien utile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après vous n'avez plus qu'a utilisez ISE Xilinx normalement et vous serez capable de reconnaitre la carte via la liaison JTAG, et de le programmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Liens utiles: ===&lt;br /&gt;
&lt;br /&gt;
Lien constructeur/vendeur (avec ressources utiles en bas de la page):&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?Prod=S3BOARD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien &amp;quot;Library&amp;quot; pour le câble USB digilent:&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,69&amp;amp;Prod=ADEPT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour l'ISE 14.6):&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/products/design-tools/ise-design-suite/index.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour les versions antérieures veuillez faire attention au système d'exploitation, votre architecture matérielle et le FPGA cible):&lt;br /&gt;
&lt;br /&gt;
(Les informations de compatibilité son sur la page suivante:) (mots clés: xilinx classic(s))&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/tools/classics.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream, et le charger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en &amp;quot;non&amp;quot;-volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream et l'utiliser pour générer un .mcs qui vous permettra d'inscrire le programme dans la mémoire (E?)PROM.&lt;br /&gt;
&lt;br /&gt;
On remarquera que la programmation en non volatile est utile pour faire un remise à zéro et recharger le contenu de l'(E?)PROM, mais semble être sensible au débranchement de l'adaptateur d'alimentation de la carte.&lt;br /&gt;
&lt;br /&gt;
=== Exemple de programmation: ===&lt;br /&gt;
&lt;br /&gt;
Voir le lien digilent pour ceci dans cette annexe.&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11690</id>
		<title>Modem pour le numérique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11690"/>
				<updated>2014-04-14T21:08:05Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* 10éme semaine: (du 07/04/2014 au 10/04/2014) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Modulateur et démodulateur pour communications numériques =&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
=== Présentation générale du projet ===&lt;br /&gt;
&lt;br /&gt;
Dans le cadre des TPs d'électronique et de transmission RF, nous avons découvert qu'il existe plusieurs modes de modulation, pour transmettre un signal modulant.&lt;br /&gt;
&lt;br /&gt;
Celles vues en TP au S7 sont la modulation en amplitude, en fréquence, en phase, en BPSK et en QPSK.&lt;br /&gt;
&lt;br /&gt;
Or les modulations en phase, en fréquence et en amplitude étant celles les plus connues, la modulation en QAM (Modulation d'Amplitude en Quadrature) est quant à elle moins connue, mais tout aussi utilisées:&lt;br /&gt;
&lt;br /&gt;
-pour la TNT en 64 QAM (en France).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_64qam.jpg|300px|thumb|center|Exemple de constellation 64QAM.]]&lt;br /&gt;
&lt;br /&gt;
-pour le WiFi en 64-QAM ou 256-QAM (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Or ces deux dernières étant peu représentées au niveau des travaux pratiques, ce projet permettra de fournir un peu plus de pratique sur les modulations de type QAM (en diagramme I/Q) dans le domaine des radiofréquences (~800MHz).&lt;br /&gt;
&lt;br /&gt;
(Le nombre devant le QAM indique le nombre de points dans le diagramme I/Q qu'on appelle aussi constellation)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se réserve le droit de faire '''évoluer''' le cahier des charges a posteriori, si certaines contraintes étaient amenées à évoluer ou se préciser.&lt;br /&gt;
&lt;br /&gt;
=== Objectif et intérêt du projet ===&lt;br /&gt;
&lt;br /&gt;
Pour cela, on nous a fourni des modules commerciaux Mini-circuit pouvant travailler dans les radios-fréquences.&lt;br /&gt;
&lt;br /&gt;
Ceux-ci permettront de mettre en place une grande partie de la chaine de transmission (voir schéma de la chaine de transmission).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_modulation.PNG|300px|thumb|center|Modulation.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_demodulation.PNG|300px|thumb|center|Démodulation.]]&lt;br /&gt;
&lt;br /&gt;
On a tout d'abord à mettre en place une carte FPGA et/ou un dispositif permettant d'envoyer un flux de données numériques continuellement pour pouvoir visualiser le diagramme I/Q (mise en valeur du diagramme I/Q et voir même un diagramme un peu plus complexe que le BPSK ou le QPSK).&lt;br /&gt;
&lt;br /&gt;
Le canal de transmission qui sera un simple fil électrique, mais pourra devenir une antenne réceptrice et émettrice si le temps imparti le permet (mise en valeur du et mesure du Bit Error Rate qui sera bien sûr différent suivant le canal de transmission).&lt;br /&gt;
&lt;br /&gt;
Du côté réception ,après démodulation du signal, une remise en forme et une interprétation des données seront réalisées, celle-ci dépendra bien entendu de la provenance du flux de données (constater le succès ou l'échec d'un envoi de données).&lt;br /&gt;
&lt;br /&gt;
Enfin si le temps le permets on pourra mettre en une place un système de codage de l'information avec par exemple un codage redondant permettant de corrigé l'erreur (À définir, on pourra faire constater l'efficacité d'une méthode de codage au choix).&lt;br /&gt;
&lt;br /&gt;
=== Étapes/Déroulement du projet ===&lt;br /&gt;
&lt;br /&gt;
De même que pour le cahier des charges, il se peut que les étapes diffèrent plus ou moins, en fonction des disponibilités, matérielles et contraintes.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Caractérisation des blocs Mini-circuits et épluchage des documentations techniques====&lt;br /&gt;
Avant de les utiliser dans la chaine de transmission, nous avons à faire une caractérisation des blocs fournis:&lt;br /&gt;
&lt;br /&gt;
-la caractérisation du VCO.&lt;br /&gt;
&lt;br /&gt;
-l'étude des possibilités offerte par le modulateur (cela déterminera le nombre de points possible dans la constellation, ie savoir si l'on peut aller au-delà de la QPSK).&lt;br /&gt;
&lt;br /&gt;
-la caractérisation des mélangeurs (Mixer), leurs facteurs réels de multiplication.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Utilisation et exploitation des caractérisations ====&lt;br /&gt;
On pourra ensuite trouver les paramètres pour régler correctement dans notre chaine de transmission certains de nos sous-systèmes comme la boucle à verrouillage de phase.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Génération d'un flux des données numériques ====&lt;br /&gt;
Comme dit précédemment, l'idéal et d'avoir un flux de données numériques transmis en permanence.&lt;br /&gt;
Pour cela plusieurs solutions s'offre à nous, on pourra utiliser un montage générateur pseudo aléatoire (un circuit que l'on a fait l'année dernière en Conception de Circuit Électronique).&lt;br /&gt;
On pourra &amp;quot;émuler&amp;quot; ce montage avec un Arduino, ou bien même le faire au moyen de la Nanoboard.&lt;br /&gt;
On pourra aussi transmettre des chaines de caractère en continu.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Test de la chaine ====&lt;br /&gt;
Une fois les étapes précédentes réalisées, on pourra passer au test de la chaine de transmission. Il faudra vérifier le bon fonctionnement en aval, dedans (boucle à verrouillage de phase), et en amont de la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Première mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
Il est possible que la conception d'un dispositif soit nécessaire que ce soit pour les deux mesures du B.E.R..&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Antennes ====&lt;br /&gt;
Si toutes les étapes précédentes sont satisfaites, on pourra alors faire un canal de transmission plus intéressant, à savoir l'air.&lt;br /&gt;
Nous passerons alors à la conception des antennes, émettrice et réceptrice.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Deuxième mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Codage de l'information et correction d'erreur ====&lt;br /&gt;
En toute fin de ce projet, on pourra même mettre deux dispositifs en aval et en amont de la chaine de transmission.&lt;br /&gt;
On réalisera alors un codeur et un décodeur permettant de faire de la détection/correction d'erreur.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Mise en place d'outil de débogage (tout au long)====&lt;br /&gt;
La mise en place de simples outils de débogage et primordiale, ceux-ci permettront de vérifier le bon fonctionnement de la chaine.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Proposition d'un sujet de TP (tout au long) ====&lt;br /&gt;
Il se trouve que lors du déroulement du projet, on pourra être amené à se poser des questions au niveau des réglages de la chaine de transmission.&lt;br /&gt;
Or il est fort probable que les élèves qui travailleront sur ce TP pourront alors se poser les mêmes questions.&lt;br /&gt;
C'est pour cela qui sera judicieux de prendre soin de noter les problématiques rencontrées et de donner un certain fil de développement pour venir à bout de la problématique posée.&lt;br /&gt;
Ce qui reviendra à proposer des axes/questions sur les manipulations de cette maquette de TP.&lt;br /&gt;
&lt;br /&gt;
== Note valable pour toutes les semaines ==&lt;br /&gt;
&lt;br /&gt;
'''[[Si un point vous semble imprécis, veuillez vous reporter aux détails fournis en annexe.]]'''&lt;br /&gt;
&lt;br /&gt;
== 1éme semaine: (du 27/01/2014 au 01/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Séance du 05/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Pour bien comprendre les différentes choses à réaliser, on a refait les manipulations vues en TP. On a, pour cela utiliser la maquette didactique TIMS pour générer différent type de modulation:&lt;br /&gt;
&lt;br /&gt;
-la modulation en 4,8,16PSK (on obtient une constellation en forme de cercle).&lt;br /&gt;
&lt;br /&gt;
-La modulation en 4,8,16QAM (on obtient une constellation avec un carré, ou deux: de différentes tailles).&lt;br /&gt;
&lt;br /&gt;
On a très vite dégagé la nécessité de réaliser un montage générateur de tous les mots numériques possibles.&lt;br /&gt;
On a donc fait un programme sur arduino qui équivaut au générateur pseudo aléatoire.&lt;br /&gt;
Celui-ci est directement inspiré du montage que l'on a réalisé l'année dernière en conception de circuit électronique.&lt;br /&gt;
&lt;br /&gt;
Séance du 06/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Lors de cette séance on a exploré toutes les possibilités concernant la communication entre la maquette/carte, car cela pour avoir une influence non négligeable sur le choix de la carte F.P.G.A. et du design de la maquette.&lt;br /&gt;
&lt;br /&gt;
On a donc aussi fait des recherches concernant les possibilités de communications et les blocs I.P. (Intellectual Properties) permettant de programmer un F.P.G.A.&lt;br /&gt;
&lt;br /&gt;
Et enfin, on a eu une discussion avec un responsable technique pour ce qui de la C.E.M. (Compatibilité Electro-Magnétique)&lt;br /&gt;
&lt;br /&gt;
== 2éme semaine: (du 03/02/2014 au 08/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Réflexion sur les possibilités possibles et offertes par le sujet pour ce qui est des parties de communications entre la maquette en interne et de son environnement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_principe_carte_semaine_2.PNG|300px|thumb|center|Maquette en interne/externe.]]&lt;br /&gt;
&lt;br /&gt;
N'ayant jamais utilisé d'autre carte que la Nanoboard, on s'est attelé à faire des recherches sur la manière de procéder pour programmer une carte F.P.G.A., il se trouve que chaque carte de développement à ses propres manières pour être programmé.&lt;br /&gt;
&lt;br /&gt;
On a pris le soin de noter toutes les questions concernant le F.P.G.A. pour un intervenant industriel qui assura un cours la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
== 3éme semaine: (du 10/02/2014 au 15/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Ayant les oscillateurs commandables en tension, on a pu commencer à faire une manipulation avec les composants Mini-Circuit.&lt;br /&gt;
&lt;br /&gt;
Mais après un problème suite à une manipulation l'un des VCOs ne fonctionne plus.&lt;br /&gt;
&lt;br /&gt;
Ce qui nous amène à penser qu'il sera judicieux de prévoir une alimentation au niveau de la carte.&lt;br /&gt;
&lt;br /&gt;
Celle-ci devra être inférieure ou égale à la tension maximale d'alimentation du composant (ceux-ci étant très sensible).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Questions/Réponses:&lt;br /&gt;
&lt;br /&gt;
Comment fait-on pour programmer une carte F.P.G.A. est-ce que la programmation se fait &amp;quot;in situe&amp;quot; ? (in situe : c'est à dire sur la carte elle-même) &lt;br /&gt;
Oui, c'est ce qui est utilisé, via un câble JTAG.&lt;br /&gt;
&lt;br /&gt;
Est-ce possible faire une interface USB pour permettre à un ordinateur de communiquer avec la maquette/carte via un F.P.G.A. ? Oui.&lt;br /&gt;
&lt;br /&gt;
Est-ce que la gestion de l'interface Ethernet est envisageable ? Oui.&lt;br /&gt;
&lt;br /&gt;
Pour une communication en protocole UDP avec un ordinateur via une liaison Ethernet, est-ce qu'il y a d'autres façons que d'utiliser un &amp;quot;SoftCore&amp;quot; ?&lt;br /&gt;
&lt;br /&gt;
Oui, il existe aussi bien en Software, qu'en Hardware.&lt;br /&gt;
&lt;br /&gt;
== 4éme semaine: (du 17/02/2014 au 22/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a donc repris l'idée de la 2éme semaine.&lt;br /&gt;
&lt;br /&gt;
Après avoir mis en place un cahier des charges au niveau des qualités, bande passante minimale.&lt;br /&gt;
&lt;br /&gt;
Nous avons fait des recherches sur les composants à utiliser (i.e. CAN, CAN, ...)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous a permis après une édition rapide de schéma électrique (schematic) d'avoir une idée du nombre de pins dont nous aurons besoin sur une carte FPGA afin de réaliser le projet.&lt;br /&gt;
&lt;br /&gt;
Après prospection, il se trouve que nous nous dirigerions vers la carte Digilent Spartan 3, dont l'école était déjà en possession.&lt;br /&gt;
&lt;br /&gt;
Donc nous nous sommes attelés à faire des recherches et des essais sur cette carte et pour notamment trouver un moyen de la faire fonctionner.&lt;br /&gt;
&lt;br /&gt;
== 5éme semaine: (du 03/03/2014 au 08/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, après plusieurs heures de recherches et d'essai infructueux, on a fini par trouver les drivers pour le câble USB diligent.&lt;br /&gt;
&lt;br /&gt;
Et donc ainsi avoir un fonctionnement de la communication via le câble JTAG plus propice au fonctionnement de la carte.&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur une partie des composants et des dimensionnements pour certains d'entre eux (valeur de résistance,capacité...)&lt;br /&gt;
&lt;br /&gt;
Schématics: Édition de multiple bibliothèque pour Altium, intégrant à la fois schématics et leur empreinte PCB associée.&lt;br /&gt;
&lt;br /&gt;
(On a pu constater qu'une interface 3v3 5v n'est pas forcement nécessaire pour assurer le bon fonctionnement entre deux cartes avec des tensions d'alimentation différentes.)&lt;br /&gt;
&lt;br /&gt;
== 6éme semaine: (du 10/03/2014 au 15/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur l'ensemble des composants et des choix de régulateur et utilisation d'autre diode Zener.&lt;br /&gt;
&lt;br /&gt;
On trouvera le schéma intégral avec les bibliothèques nécessaires dans la semaine 5.&lt;br /&gt;
&lt;br /&gt;
Cette semaine a été dédiée à l'envoi de la commande des composants au sein du magasin de l'école et du fournisseur.&lt;br /&gt;
&lt;br /&gt;
Après envoi de la commande, il se trouve que le projet a changé d'objectif principal.&lt;br /&gt;
&lt;br /&gt;
Il est maintenant prioritaire de réaliser un code VHDL capable d'évaluer la vitesse de transmission numérique du côté récepteur.&lt;br /&gt;
&lt;br /&gt;
== 7éme semaine: (du 17/03/2014 au 22/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Pour cette semaine, on s'est concentré sur la réalisation d'un générateur pseudo aléatoire en interne au FPGA.&lt;br /&gt;
&lt;br /&gt;
On réalisera une échelle de résistance afin de réaliser une conversion numérique analogique afin de l'envoyer sur la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
Ce code de &amp;quot;base&amp;quot; nous permettra de réaliser un flux de données fictif pour obtenir toutes les combinaisons récupérant le résultat du bus.&lt;br /&gt;
&lt;br /&gt;
[[MédiaP34_2013_2014_gene_pseudo_19_03_2014_6_semaine_7.zip|Archive contenant le projet ISE Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_rtl_semaine_7.PNG|300px|thumb|center|extrait du schéma RTL, on peut y voir clairement les inférences de Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
Ce schéma a deux entrées et une sortie, une entrée d'initialisation, une horloge et une sortie pour la trame en pseudo aléatoire.&lt;br /&gt;
&lt;br /&gt;
On fera l'essai sur la carte lors de la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
== 8éme semaine: (du 24/03/2014 au 26/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Après le premier test, on pourrait penser que l'on récupère du bruit en sortie de la carte:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0024_1_probleme_d_overshoot_semaine_8.jpg|300px|thumb|center|Overshoot.]]&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir remédier à ce problème, on a fait une prédivision de l'horloge&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0037_1_div_freq_semaine_8.jpg|300px|thumb|center|Overshoot après division.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0039_1_div_freq_zoom_semaine_8.jpg|300px|thumb|center|Overshoot après division (Zoom).]]&lt;br /&gt;
&lt;br /&gt;
Archive contenant toutes les modifications:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_26_03_2014_2_semaine_8.zip|VHDL Semaine 8.]]&lt;br /&gt;
&lt;br /&gt;
On a trouvé un moyen de faire un CNA facilement, via une &amp;quot;échelle dite R-2R&amp;quot;. [[http://www.uchobby.com/index.php/2008/01/08/arduino-audio-dac-options/|Pour le réseau R 2R.]]&lt;br /&gt;
&lt;br /&gt;
Il faut encore modifier le VHDL pour pouvoir l'exploiter et ainsi générer une constellation.&lt;br /&gt;
&lt;br /&gt;
== 9éme semaine: (du 28/03/2014 au 03/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pris donc le soin de modifier le VHDL:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_31_03_2014_1_semaine_9.zip|VHDL semaine 9]]&lt;br /&gt;
&lt;br /&gt;
Ce VHDL à été mis à jour, avec deux entrées (initialisation et une horloge) et un bus de sortie (8 bits), avec les trames pseudoaléatoires.&lt;br /&gt;
&lt;br /&gt;
On envoie ces signaux sur deux C.N.A.s (4 bits chacun) pour générer deux signaux I et Q, on peut voir une constellation se dessiner en mode X-Y.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0072_1_Montage_entier_4qam_semaine_9.jpg|300px|thumb|center|Montage avec constellations 4QAM.]]&lt;br /&gt;
&lt;br /&gt;
D'autres constellations réalisées sont disponibles en annexe. On peut monter jusqu'à une constellation de 256 points (2^4*2^4).&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage complet de toute la chaine de transmission. Il se trouve que la Boucle à Verrouillage de Phase (ou appellée PLL, Phase Loop Locker) ne se verrouille pas sur la porteuse du signal que l'on souhaite récupéré, de ce fait on ne peut pas récupérer les signaux I et Q.&lt;br /&gt;
&lt;br /&gt;
== 10éme semaine: (du 07/04/2014 au 10/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage que l'on évoquait en semaine 9:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0027_montage_realisee_semaine_10.jpg|center|thumb|300px|Montage pour améliorer la PLL.]]&lt;br /&gt;
&lt;br /&gt;
Il se trouve qu’après un réglage précis de la tension d'offset permettant d'être un proche de la fréquence à capturer on obtient:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0025_PLL_non_verrouillage_semaine_10.jpg|center|thumb|300px|Signaux I/Q après ajout du montage.]]&lt;br /&gt;
&lt;br /&gt;
= Annexes =&lt;br /&gt;
&lt;br /&gt;
== Annexe A: Détails techniques des semaines ==&lt;br /&gt;
&lt;br /&gt;
=== 1éme semaine: (du 27/01/2014 au 01/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Après on a réfléchi sur la potentielle conception/utilisation d'une carte FPGA.&lt;br /&gt;
Il sera judicieux de ne pas se précipiter sur le schéma et la conception/utilisation d'une carte FPGA, sans avoir, au préalable fait le VHDL et le testez avec un banc de test virtuel.&lt;br /&gt;
L'intérêt et de mettre en valeur la nécessité ou non de certains signaux pour le schéma de la carte.&lt;br /&gt;
On va mettre en oeuvre les connaissances acquises au S7 en VHDL (en TP de Circuit Numérique Programmble).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est de l'Arduino, on a répondu aux interrogations suivantes (certaines de ces questions paraissent triviales, mais on préfère éviter les surprises):&lt;br /&gt;
&lt;br /&gt;
Quelle est la vitesse maximale de la communication série de l'Arduino ?&lt;br /&gt;
-115200bauds&lt;br /&gt;
&lt;br /&gt;
Est-ce que, un programme de type &amp;quot;Analog Write&amp;quot; est-il une vraie sortie analogique ?&lt;br /&gt;
&lt;br /&gt;
-Non, c'est juste une PWM. Elle sera exploitable pour faire les signales I/Q mais très contraignantes, car il faudra filtré le signal, et ce sera beaucoup trop lent (du au fait que la modulation est faite au alentour de 850Mhz), le FPGA sera un passage obligé cela ouvrira les portes d'un plus grand débit.&lt;br /&gt;
&lt;br /&gt;
==== Manipulation réalisée sur la maquette TIMS : ====&lt;br /&gt;
&lt;br /&gt;
On a fait un des montages présentés dans l'ouvrage &amp;quot;Volume D1 Fundamental Digital Experiments&amp;quot; dans le but de visualiser l’objectif à atteindre.&lt;br /&gt;
&lt;br /&gt;
On obtient la constellation suivante (16QAM):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_tims_semaine_1.PNG|300px|thumb|center|Constellation visualisée en mode X-Y.]]&lt;br /&gt;
&lt;br /&gt;
Ce qui correspond à deux signaux en visualisation temporelle de cette forme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_temporelle_tims_semaine_1.PNG|300px|thumb|center|Signaux I et Q. (Image très floutée, à remplacer)]]&lt;br /&gt;
&lt;br /&gt;
On pourra facilement obtenir le même résultat en générant un bus de trame pseudo aléatoire et en l'injectant dans un C.N.A. (Conversion Numérique Analogique)&lt;br /&gt;
&lt;br /&gt;
==== Code Arduino réalisé: ====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schema_electronique_generateur_pseudo_aleatoire.png|300px|thumb|center|Schéma électronique du générateur pseudo aléatoire.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_chrono_simule.PNG|300px|thumb|center|Résultat de la simulation du générateur pseudo aléatoire (on a eu la même chose en pratique).]]&lt;br /&gt;
&lt;br /&gt;
[code]&lt;br /&gt;
/*A peut-être supprimer*/&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;		&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void output_init(void){&lt;br /&gt;
  DDRB |= 0x02; // PIN 8,9 sont les deux sorties.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(void){&lt;br /&gt;
  int r1=1,r2=0,r3=0,r4=0,r5=0,retard=0;&lt;br /&gt;
  PORTB=0x00;&lt;br /&gt;
  while(1)&lt;br /&gt;
    {&lt;br /&gt;
      r5=r4;//chaque affectation représente une recopie de la bascule sur le &amp;quot;front montant&amp;quot;, ici c'est simplement l’exécution du code.&lt;br /&gt;
      r4=r3;&lt;br /&gt;
      r3=r2;&lt;br /&gt;
      r2=r1;&lt;br /&gt;
      r1=r4^r5;&lt;br /&gt;
      PORTB=0x01*r1+0x02*retard;//écriture des signaux&lt;br /&gt;
      _delay_ms(10);//le &amp;quot;front montant&amp;quot;, ce qui permet de faire un genre d'horloge.&lt;br /&gt;
      retard=r5;//déphasage du signal&lt;br /&gt;
    }&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
[/code]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_arduino.jpg|300px|thumb|center|Resultat avec le générateur pseudo aléatoire &amp;quot;émuler&amp;quot; avec l'Arduino.]]&lt;br /&gt;
&lt;br /&gt;
Comparaison carte réelle/résultat Arduino:&lt;br /&gt;
&lt;br /&gt;
C'était exactement les signaux attendus (même s'il y un décalage a par rapport à l'original).&lt;br /&gt;
&lt;br /&gt;
On aura bien pour une QPSK (4PSK) tous les couples (ie 00,01,11 et 10).&lt;br /&gt;
&lt;br /&gt;
À propos de l'arduino, on pourra envisager une amélioration pour générer une séquence plus longue:&lt;br /&gt;
&lt;br /&gt;
-il faudra simplement utiliser un tableau d'entier.&lt;br /&gt;
&lt;br /&gt;
-paramétrer sa taille avec un N par exemple.&lt;br /&gt;
&lt;br /&gt;
-N correspondra à la taille de séquence de longueur 2^N.&lt;br /&gt;
&lt;br /&gt;
Voir la section &amp;quot;Code Arduino réalisé&amp;quot; en annexe B dans la semaine correspondante.&lt;br /&gt;
&lt;br /&gt;
==== Possibilités de communications: ====&lt;br /&gt;
&lt;br /&gt;
Exploration des possibilités de communication entre le PC et la carte en amont:&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; Ethernet: =====&lt;br /&gt;
&lt;br /&gt;
*+ Vitesse de transmission (~10M-100M-G)bauds&lt;br /&gt;
&lt;br /&gt;
*- La gestion du flux de données doit être faite par un microcontrôleur (celui-ci pourra être implémenté un bloc I.P. à l'intérieur du FPGA)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; - Haute consommation de CLB du FPGA.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; SPI (communication série): =====&lt;br /&gt;
&lt;br /&gt;
*- Vitesse de transmission&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Arduino capable de communiquer jusqu'a 115200 bauds&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; D'après certaines discussions sur des forums, on pourrait « pousser » au-delà.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; I2C : =====&lt;br /&gt;
&lt;br /&gt;
Communication abandonnée, ce n'est pas une priorité.&lt;br /&gt;
&lt;br /&gt;
==== À propos des blocs I.P.: ====&lt;br /&gt;
&lt;br /&gt;
En consultant les ordinateurs et en s'appuyant des T.P.s de CNP, on constate que les blocs suivants existent:&lt;br /&gt;
&lt;br /&gt;
- Xilinx Microblaze/Xilinx Power PC (&amp;quot;µP FPGA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Est-ce possible d'utiliser ces blocs I.P. pour programmer un FPGA sur une carte autre que la Nanoboard ? Comment ?&lt;br /&gt;
&lt;br /&gt;
- EMACx (Ethernet Media Acess Control)(:lien physique entre processeurs et &amp;quot;standart Physical Layer device IEEE802.3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===== Conception de la carte: =====&lt;br /&gt;
&lt;br /&gt;
L'idéal est de se documenter sur la Compatibilité électromagnétique.&lt;br /&gt;
&lt;br /&gt;
=== 2éme semaine: (du 03/02/2014 au 08/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 3éme semaine: (du 10/02/2014 au 15/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, après avoir eu le problème de manipulation, nous avons pu prendre connaissance d'un certain montage qui s’avéra utile pour la conception de la carte/maquette.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_limiteur_de_courant_semaine_3.PNG|300px|thumb|center|Schéma limiteur de courant.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que ce montage se retrouve dans la partie &amp;quot;typical application&amp;quot; de la documentation technique du 7805.&lt;br /&gt;
&lt;br /&gt;
=== 4éme semaine: (du 17/02/2014 au 22/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
On souhaite pouvoir réaliser une communication unidirectionnelle ou même transmettre un signal audio ce qui nous contraint à une bande passante minimale de 48kHz, on prendra 200kHz (pour être bien au-delà de la condition du théorème de Shannon): le but serait donc de brancher par exemple une source audio quelconque puis de la transmettre à travers la maquette et de la recomposer en fin de chaine.&lt;br /&gt;
&lt;br /&gt;
Après édition rapide du schéma, on en dégage qu'il nous faudra un minimum d'environ 50 entrées/sorties. Mais ceci ce nombre sera très probablement revu à la hausse lors de prochaine séance.&lt;br /&gt;
&lt;br /&gt;
Voici la carte que l'on utilisera dans la suite du projet:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_S3BOARD-top-400_semaine_4.gif|300px|thumb|center|Digilent Spartan 3.]]&lt;br /&gt;
&lt;br /&gt;
=== 5éme semaine: (du 03/03/2014 au 08/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lien vers le Design complet avec les librairies incluses (on remarquera qu'il serait judicieux d’installer toutes les librairies avant d’essayer d'ouvrir le schéma)&lt;br /&gt;
&lt;br /&gt;
A notez aussi que l'on trouvera des reliques de feuilles Excel permettant de trouver rapidement des ratios dans la série E12.&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_Design_pcb_plus_librairies_semaine_5_6.zip|Schéma + Bibliothèques.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.pdf|Schéma en PDF.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.png|Schéma au format A2.]]&lt;br /&gt;
&lt;br /&gt;
=== 6éme semaine: (du 10/03/2014 au 15/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 7éme semaine: (du 17/03/2014 au 22/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 8éme semaine: (du 24/03/2014 au 26/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 9éme semaine: (du 28/03/2014 au 03/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0061_1_r_2r_semaine_9.jpg|center|thumb|300px|Le réseau R-2R.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0062_1_4QAM_semaine_9.jpg|center|thumb|300px|4QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0066_1_16QAM_semaine_9.jpg|center|thumb|300px|16QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0069_1_64QAM_semaine_9.jpg|center|thumb|300px|64QAM.]]&lt;br /&gt;
&lt;br /&gt;
Pas de photos pour la constellation à 256 points, mais elle a été réalisée.&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du montage, malgré que la P.L.L., on a un signal d'erreur après filtrage :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Chaine 1: Vtune (commande du V.C.O.)/Chaine 2: &amp;quot;erreur&amp;quot; de commande]]&lt;br /&gt;
&lt;br /&gt;
Ce qui met en valeur immédiatement deux problèmes majeurs:&lt;br /&gt;
&lt;br /&gt;
La chaine fonctionne sur le papier, mais lors de sa mise en pratique, il faut penser à mettre une tension d'offset et aussi réaliser une amplification de l'erreur pour avoir des grandeurs de commande adaptée au Vtune du V.C.O..&lt;br /&gt;
&lt;br /&gt;
On propose l'amélioration suivante (qui sera réalisé à la prochaine séance):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Proposition de voie d'amélioration.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que les valeurs des résistances et des capacités on était choisi pour permettre un fonctionnement correct des A.O. (Amplificateur Opérationnel), mais pas pour ce qui de l'asservissement de la boucle par manque de temps. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette, on a eu à démonter le montage à cause de contraintes concernant les Mini-circuits (car utilisé en travaux pratiques).&lt;br /&gt;
&lt;br /&gt;
=== 10éme semaine: (du 07/04/2014 au 10/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
Spectres des signaux de la chaine de transmission:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0001_allure_spectre_reception_semaine_10.jpg|center|thumb|300px|Spectre en réception.]]&lt;br /&gt;
&lt;br /&gt;
Porteuse utilisée pour la modulation I/Q à environ 60MHz.&lt;br /&gt;
&lt;br /&gt;
Porteuse utilisée pour le transport en fréquence à environ 810MHz:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0035_constellation_recupere_PLL_NV_semaine_10.jpg|center|thumb|300px|&amp;quot;Constellation&amp;quot; récupérée avec la PLL défectueuse (on souhaite se verrouiller sur la raie à 868MHz).]]&lt;br /&gt;
&lt;br /&gt;
Question en suspens: faudrait'il utiliser un filtre passe-bande incluant 868Mhz pour pouvoir se verrouiller sur cette fréquence ?&lt;br /&gt;
&lt;br /&gt;
On remarquera le fait que l'oscillateur du côté de la chaine d'émission a d'importantes non-linéarités (on peut observer à l'analyseur de spectre 3 à 4 raies aux fréquences multiples).&lt;br /&gt;
&lt;br /&gt;
Ce qui donne un diagramme de constellation plutôt mauvais si l'on fait le montage suivant:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_montage_non_linearite_vco_constellation_semaine_10.PNG|center|thumb|300px|Montage réalisée.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_sortie_montage_non_linearite_semaine_10.PNG|center|thumb|300px|La constellation 4QAM est attendue, on est loin du résultat attendu (aucune photo n'a était réalisé d'ou le dessin).]]&lt;br /&gt;
&lt;br /&gt;
== Annexe B: Digilent Spartan 3 ==&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire fonctionner la carte Digilent Spartan 3: ===&lt;br /&gt;
&lt;br /&gt;
Ne connectez pas de connecteur JTAG pendant les installations. Redémarrez après chaque installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut savoir que le l'ISE Webpack 14.6 fonctionne avec la carte (n'utilisez pas la 14.7, elle ne supporte pas la génération spartan 3 !):&lt;br /&gt;
&lt;br /&gt;
Installez donc l'ISE WebPack 14.6 (ou antérieur à condition que celle-ci soit supérieur à la 7.1i (d'après leur documentation))&lt;br /&gt;
&lt;br /&gt;
(voir lien utile sur Xilinx)&lt;br /&gt;
&lt;br /&gt;
Une fois l'installation de l'ISE terminé, faites en sorte d'avoir celui que soit opérationnel (la licence est gratuite !).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installez la &amp;quot;library&amp;quot; ADEPT 2.3 voir le lien utile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après vous n'avez plus qu'a utilisez ISE Xilinx normalement et vous serez capable de reconnaitre la carte via la liaison JTAG, et de le programmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Liens utiles: ===&lt;br /&gt;
&lt;br /&gt;
Lien constructeur/vendeur (avec ressources utiles en bas de la page):&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?Prod=S3BOARD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien &amp;quot;Library&amp;quot; pour le câble USB digilent:&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,69&amp;amp;Prod=ADEPT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour l'ISE 14.6):&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/products/design-tools/ise-design-suite/index.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour les versions antérieures veuillez faire attention au système d'exploitation, votre architecture matérielle et le FPGA cible):&lt;br /&gt;
&lt;br /&gt;
(Les informations de compatibilité son sur la page suivante:) (mots clés: xilinx classic(s))&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/tools/classics.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream, et le charger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en &amp;quot;non&amp;quot;-volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream et l'utiliser pour générer un .mcs qui vous permettra d'inscrire le programme dans la mémoire (E?)PROM.&lt;br /&gt;
&lt;br /&gt;
On remarquera que la programmation en non volatile est utile pour faire un remise à zéro et recharger le contenu de l'(E?)PROM, mais semble être sensible au débranchement de l'adaptateur d'alimentation de la carte.&lt;br /&gt;
&lt;br /&gt;
=== Exemple de programmation: ===&lt;br /&gt;
&lt;br /&gt;
Voir le lien digilent pour ceci dans cette annexe.&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11597</id>
		<title>Modem pour le numérique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11597"/>
				<updated>2014-04-13T20:58:45Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* Annexes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Modulateur et démodulateur pour communications numériques =&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
=== Présentation générale du projet ===&lt;br /&gt;
&lt;br /&gt;
Dans le cadre des TPs d'électronique et de transmission RF, nous avons découvert qu'il existe plusieurs modes de modulation, pour transmettre un signal modulant.&lt;br /&gt;
&lt;br /&gt;
Celles vues en TP au S7 sont la modulation en amplitude, en fréquence, en phase, en BPSK et en QPSK.&lt;br /&gt;
&lt;br /&gt;
Or les modulations en phase, en fréquence et en amplitude étant celles les plus connues, la modulation en QAM (Modulation d'Amplitude en Quadrature) est quant à elle moins connue, mais tout aussi utilisées:&lt;br /&gt;
&lt;br /&gt;
-pour la TNT en 64 QAM (en France).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_64qam.jpg|300px|thumb|center|Exemple de constellation 64QAM.]]&lt;br /&gt;
&lt;br /&gt;
-pour le WiFi en 64-QAM ou 256-QAM (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Or ces deux dernières étant peu représentées au niveau des travaux pratiques, ce projet permettra de fournir un peu plus de pratique sur les modulations de type QAM (en diagramme I/Q) dans le domaine des radiofréquences (~800MHz).&lt;br /&gt;
&lt;br /&gt;
(Le nombre devant le QAM indique le nombre de points dans le diagramme I/Q qu'on appelle aussi constellation)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se réserve le droit de faire '''évoluer''' le cahier des charges a posteriori, si certaines contraintes étaient amenées à évoluer ou se préciser.&lt;br /&gt;
&lt;br /&gt;
=== Objectif et intérêt du projet ===&lt;br /&gt;
&lt;br /&gt;
Pour cela, on nous a fourni des modules commerciaux Mini-circuit pouvant travailler dans les radios-fréquences.&lt;br /&gt;
&lt;br /&gt;
Ceux-ci permettront de mettre en place une grande partie de la chaine de transmission (voir schéma de la chaine de transmission).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_modulation.PNG|300px|thumb|center|Modulation.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_demodulation.PNG|300px|thumb|center|Démodulation.]]&lt;br /&gt;
&lt;br /&gt;
On a tout d'abord à mettre en place une carte FPGA et/ou un dispositif permettant d'envoyer un flux de données numériques continuellement pour pouvoir visualiser le diagramme I/Q (mise en valeur du diagramme I/Q et voir même un diagramme un peu plus complexe que le BPSK ou le QPSK).&lt;br /&gt;
&lt;br /&gt;
Le canal de transmission qui sera un simple fil électrique, mais pourra devenir une antenne réceptrice et émettrice si le temps imparti le permet (mise en valeur du et mesure du Bit Error Rate qui sera bien sûr différent suivant le canal de transmission).&lt;br /&gt;
&lt;br /&gt;
Du côté réception ,après démodulation du signal, une remise en forme et une interprétation des données seront réalisées, celle-ci dépendra bien entendu de la provenance du flux de données (constater le succès ou l'échec d'un envoi de données).&lt;br /&gt;
&lt;br /&gt;
Enfin si le temps le permets on pourra mettre en une place un système de codage de l'information avec par exemple un codage redondant permettant de corrigé l'erreur (À définir, on pourra faire constater l'efficacité d'une méthode de codage au choix).&lt;br /&gt;
&lt;br /&gt;
=== Étapes/Déroulement du projet ===&lt;br /&gt;
&lt;br /&gt;
De même que pour le cahier des charges, il se peut que les étapes diffèrent plus ou moins, en fonction des disponibilités, matérielles et contraintes.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Caractérisation des blocs Mini-circuits et épluchage des documentations techniques====&lt;br /&gt;
Avant de les utiliser dans la chaine de transmission, nous avons à faire une caractérisation des blocs fournis:&lt;br /&gt;
&lt;br /&gt;
-la caractérisation du VCO.&lt;br /&gt;
&lt;br /&gt;
-l'étude des possibilités offerte par le modulateur (cela déterminera le nombre de points possible dans la constellation, ie savoir si l'on peut aller au-delà de la QPSK).&lt;br /&gt;
&lt;br /&gt;
-la caractérisation des mélangeurs (Mixer), leurs facteurs réels de multiplication.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Utilisation et exploitation des caractérisations ====&lt;br /&gt;
On pourra ensuite trouver les paramètres pour régler correctement dans notre chaine de transmission certains de nos sous-systèmes comme la boucle à verrouillage de phase.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Génération d'un flux des données numériques ====&lt;br /&gt;
Comme dit précédemment, l'idéal et d'avoir un flux de données numériques transmis en permanence.&lt;br /&gt;
Pour cela plusieurs solutions s'offre à nous, on pourra utiliser un montage générateur pseudo aléatoire (un circuit que l'on a fait l'année dernière en Conception de Circuit Électronique).&lt;br /&gt;
On pourra &amp;quot;émuler&amp;quot; ce montage avec un Arduino, ou bien même le faire au moyen de la Nanoboard.&lt;br /&gt;
On pourra aussi transmettre des chaines de caractère en continu.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Test de la chaine ====&lt;br /&gt;
Une fois les étapes précédentes réalisées, on pourra passer au test de la chaine de transmission. Il faudra vérifier le bon fonctionnement en aval, dedans (boucle à verrouillage de phase), et en amont de la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Première mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
Il est possible que la conception d'un dispositif soit nécessaire que ce soit pour les deux mesures du B.E.R..&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Antennes ====&lt;br /&gt;
Si toutes les étapes précédentes sont satisfaites, on pourra alors faire un canal de transmission plus intéressant, à savoir l'air.&lt;br /&gt;
Nous passerons alors à la conception des antennes, émettrice et réceptrice.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Deuxième mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Codage de l'information et correction d'erreur ====&lt;br /&gt;
En toute fin de ce projet, on pourra même mettre deux dispositifs en aval et en amont de la chaine de transmission.&lt;br /&gt;
On réalisera alors un codeur et un décodeur permettant de faire de la détection/correction d'erreur.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Mise en place d'outil de débogage (tout au long)====&lt;br /&gt;
La mise en place de simples outils de débogage et primordiale, ceux-ci permettront de vérifier le bon fonctionnement de la chaine.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Proposition d'un sujet de TP (tout au long) ====&lt;br /&gt;
Il se trouve que lors du déroulement du projet, on pourra être amené à se poser des questions au niveau des réglages de la chaine de transmission.&lt;br /&gt;
Or il est fort probable que les élèves qui travailleront sur ce TP pourront alors se poser les mêmes questions.&lt;br /&gt;
C'est pour cela qui sera judicieux de prendre soin de noter les problématiques rencontrées et de donner un certain fil de développement pour venir à bout de la problématique posée.&lt;br /&gt;
Ce qui reviendra à proposer des axes/questions sur les manipulations de cette maquette de TP.&lt;br /&gt;
&lt;br /&gt;
== Note valable pour toutes les semaines ==&lt;br /&gt;
&lt;br /&gt;
'''[[Si un point vous semble imprécis, veuillez vous reporter aux détails fournis en annexe.]]'''&lt;br /&gt;
&lt;br /&gt;
== 1éme semaine: (du 27/01/2014 au 01/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Séance du 05/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Pour bien comprendre les différentes choses à réaliser, on a refait les manipulations vues en TP. On a, pour cela utiliser la maquette didactique TIMS pour générer différent type de modulation:&lt;br /&gt;
&lt;br /&gt;
-la modulation en 4,8,16PSK (on obtient une constellation en forme de cercle).&lt;br /&gt;
&lt;br /&gt;
-La modulation en 4,8,16QAM (on obtient une constellation avec un carré, ou deux: de différentes tailles).&lt;br /&gt;
&lt;br /&gt;
On a très vite dégagé la nécessité de réaliser un montage générateur de tous les mots numériques possibles.&lt;br /&gt;
On a donc fait un programme sur arduino qui équivaut au générateur pseudo aléatoire.&lt;br /&gt;
Celui-ci est directement inspiré du montage que l'on a réalisé l'année dernière en conception de circuit électronique.&lt;br /&gt;
&lt;br /&gt;
Séance du 06/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Lors de cette séance on a exploré toutes les possibilités concernant la communication entre la maquette/carte, car cela pour avoir une influence non négligeable sur le choix de la carte F.P.G.A. et du design de la maquette.&lt;br /&gt;
&lt;br /&gt;
On a donc aussi fait des recherches concernant les possibilités de communications et les blocs I.P. (Intellectual Properties) permettant de programmer un F.P.G.A.&lt;br /&gt;
&lt;br /&gt;
Et enfin, on a eu une discussion avec un responsable technique pour ce qui de la C.E.M. (Compatibilité Electro-Magnétique)&lt;br /&gt;
&lt;br /&gt;
== 2éme semaine: (du 03/02/2014 au 08/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Réflexion sur les possibilités possibles et offertes par le sujet pour ce qui est des parties de communications entre la maquette en interne et de son environnement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_principe_carte_semaine_2.PNG|300px|thumb|center|Maquette en interne/externe.]]&lt;br /&gt;
&lt;br /&gt;
N'ayant jamais utilisé d'autre carte que la Nanoboard, on s'est attelé à faire des recherches sur la manière de procéder pour programmer une carte F.P.G.A., il se trouve que chaque carte de développement à ses propres manières pour être programmé.&lt;br /&gt;
&lt;br /&gt;
On a pris le soin de noter toutes les questions concernant le F.P.G.A. pour un intervenant industriel qui assura un cours la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
== 3éme semaine: (du 10/02/2014 au 15/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Ayant les oscillateurs commandables en tension, on a pu commencer à faire une manipulation avec les composants Mini-Circuit.&lt;br /&gt;
&lt;br /&gt;
Mais après un problème suite à une manipulation l'un des VCOs ne fonctionne plus.&lt;br /&gt;
&lt;br /&gt;
Ce qui nous amène à penser qu'il sera judicieux de prévoir une alimentation au niveau de la carte.&lt;br /&gt;
&lt;br /&gt;
Celle-ci devra être inférieure ou égale à la tension maximale d'alimentation du composant (ceux-ci étant très sensible).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Questions/Réponses:&lt;br /&gt;
&lt;br /&gt;
Comment fait-on pour programmer une carte F.P.G.A. est-ce que la programmation se fait &amp;quot;in situe&amp;quot; ? (in situe : c'est à dire sur la carte elle-même) &lt;br /&gt;
Oui, c'est ce qui est utilisé, via un câble JTAG.&lt;br /&gt;
&lt;br /&gt;
Est-ce possible faire une interface USB pour permettre à un ordinateur de communiquer avec la maquette/carte via un F.P.G.A. ? Oui.&lt;br /&gt;
&lt;br /&gt;
Est-ce que la gestion de l'interface Ethernet est envisageable ? Oui.&lt;br /&gt;
&lt;br /&gt;
Pour une communication en protocole UDP avec un ordinateur via une liaison Ethernet, est-ce qu'il y a d'autres façons que d'utiliser un &amp;quot;SoftCore&amp;quot; ?&lt;br /&gt;
&lt;br /&gt;
Oui, il existe aussi bien en Software, qu'en Hardware.&lt;br /&gt;
&lt;br /&gt;
== 4éme semaine: (du 17/02/2014 au 22/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a donc repris l'idée de la 2éme semaine.&lt;br /&gt;
&lt;br /&gt;
Après avoir mis en place un cahier des charges au niveau des qualités, bande passante minimale.&lt;br /&gt;
&lt;br /&gt;
Nous avons fait des recherches sur les composants à utiliser (i.e. CAN, CAN, ...)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous a permis après une édition rapide de schéma électrique (schematic) d'avoir une idée du nombre de pins dont nous aurons besoin sur une carte FPGA afin de réaliser le projet.&lt;br /&gt;
&lt;br /&gt;
Après prospection, il se trouve que nous nous dirigerions vers la carte Digilent Spartan 3, dont l'école était déjà en possession.&lt;br /&gt;
&lt;br /&gt;
Donc nous nous sommes attelés à faire des recherches et des essais sur cette carte et pour notamment trouver un moyen de la faire fonctionner.&lt;br /&gt;
&lt;br /&gt;
== 5éme semaine: (du 03/03/2014 au 08/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, après plusieurs heures de recherches et d'essai infructueux, on a fini par trouver les drivers pour le câble USB diligent.&lt;br /&gt;
&lt;br /&gt;
Et donc ainsi avoir un fonctionnement de la communication via le câble JTAG plus propice au fonctionnement de la carte.&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur une partie des composants et des dimensionnements pour certains d'entre eux (valeur de résistance,capacité...)&lt;br /&gt;
&lt;br /&gt;
Schématics: Édition de multiple bibliothèque pour Altium, intégrant à la fois schématics et leur empreinte PCB associée.&lt;br /&gt;
&lt;br /&gt;
(On a pu constater qu'une interface 3v3 5v n'est pas forcement nécessaire pour assurer le bon fonctionnement entre deux cartes avec des tensions d'alimentation différentes.)&lt;br /&gt;
&lt;br /&gt;
== 6éme semaine: (du 10/03/2014 au 15/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur l'ensemble des composants et des choix de régulateur et utilisation d'autre diode Zener.&lt;br /&gt;
&lt;br /&gt;
On trouvera le schéma intégral avec les bibliothèques nécessaires dans la semaine 5.&lt;br /&gt;
&lt;br /&gt;
Cette semaine a été dédiée à l'envoi de la commande des composants au sein du magasin de l'école et du fournisseur.&lt;br /&gt;
&lt;br /&gt;
Après envoi de la commande, il se trouve que le projet a changé d'objectif principal.&lt;br /&gt;
&lt;br /&gt;
Il est maintenant prioritaire de réaliser un code VHDL capable d'évaluer la vitesse de transmission numérique du côté récepteur.&lt;br /&gt;
&lt;br /&gt;
== 7éme semaine: (du 17/03/2014 au 22/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Pour cette semaine, on s'est concentré sur la réalisation d'un générateur pseudo aléatoire en interne au FPGA.&lt;br /&gt;
&lt;br /&gt;
On réalisera une échelle de résistance afin de réaliser une conversion numérique analogique afin de l'envoyer sur la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
Ce code de &amp;quot;base&amp;quot; nous permettra de réaliser un flux de données fictif pour obtenir toutes les combinaisons récupérant le résultat du bus.&lt;br /&gt;
&lt;br /&gt;
[[MédiaP34_2013_2014_gene_pseudo_19_03_2014_6_semaine_7.zip|Archive contenant le projet ISE Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_rtl_semaine_7.PNG|300px|thumb|center|extrait du schéma RTL, on peut y voir clairement les inférences de Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
Ce schéma a deux entrées et une sortie, une entrée d'initialisation, une horloge et une sortie pour la trame en pseudo aléatoire.&lt;br /&gt;
&lt;br /&gt;
On fera l'essai sur la carte lors de la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
== 8éme semaine: (du 24/03/2014 au 26/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Après le premier test, on pourrait penser que l'on récupère du bruit en sortie de la carte:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0024_1_probleme_d_overshoot_semaine_8.jpg|300px|thumb|center|Overshoot.]]&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir remédier à ce problème, on a fait une prédivision de l'horloge&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0037_1_div_freq_semaine_8.jpg|300px|thumb|center|Overshoot après division.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0039_1_div_freq_zoom_semaine_8.jpg|300px|thumb|center|Overshoot après division (Zoom).]]&lt;br /&gt;
&lt;br /&gt;
Archive contenant toutes les modifications:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_26_03_2014_2_semaine_8.zip|VHDL Semaine 8.]]&lt;br /&gt;
&lt;br /&gt;
On a trouvé un moyen de faire un CNA facilement, via une &amp;quot;échelle dite R-2R&amp;quot;. [[http://www.uchobby.com/index.php/2008/01/08/arduino-audio-dac-options/|Pour le réseau R 2R.]]&lt;br /&gt;
&lt;br /&gt;
Il faut encore modifier le VHDL pour pouvoir l'exploiter et ainsi générer une constellation.&lt;br /&gt;
&lt;br /&gt;
== 9éme semaine: (du 28/03/2014 au 03/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pris donc le soin de modifier le VHDL:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_31_03_2014_1_semaine_9.zip|VHDL semaine 9]]&lt;br /&gt;
&lt;br /&gt;
Ce VHDL à été mis à jour, avec deux entrées (initialisation et une horloge) et un bus de sortie (8 bits), avec les trames pseudoaléatoires.&lt;br /&gt;
&lt;br /&gt;
On envoie ces signaux sur deux C.N.A.s (4 bits chacun) pour générer deux signaux I et Q, on peut voir une constellation se dessiner en mode X-Y.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0072_1_Montage_entier_4qam_semaine_9.jpg|300px|thumb|center|Montage avec constellations 4QAM.]]&lt;br /&gt;
&lt;br /&gt;
D'autres constellations réalisées sont disponibles en annexe. On peut monter jusqu'à une constellation de 256 points (2^4*2^4).&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage complet de toute la chaine de transmission. Il se trouve que la Boucle à Verrouillage de Phase (ou appellée PLL, Phase Loop Locker) ne se verrouille pas sur la porteuse du signal que l'on souhaite récupéré, de ce fait on ne peut pas récupérer les signaux I et Q.&lt;br /&gt;
&lt;br /&gt;
== 10éme semaine: (du 07/04/2014 au 10/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage que l'on évoquait en semaine 9:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0027_montage_realisee_semaine_10.jpg|center|thumb|300px|Montage pour améliorer la PLL.]]&lt;br /&gt;
&lt;br /&gt;
Il se trouve qu’après un réglage précis de la tension d'offset permettant d'être un proche de la fréquence à capturer on obtient:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0025_PLL_non_verrouillage_semaine_10.jpg|center|thumb|300px|Signaux I/Q après ajout du montage.]]&lt;br /&gt;
&lt;br /&gt;
= Annexes =&lt;br /&gt;
&lt;br /&gt;
== Annexe A: Détails techniques des semaines ==&lt;br /&gt;
&lt;br /&gt;
=== 1éme semaine: (du 27/01/2014 au 01/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Après on a réfléchi sur la potentielle conception/utilisation d'une carte FPGA.&lt;br /&gt;
Il sera judicieux de ne pas se précipiter sur le schéma et la conception/utilisation d'une carte FPGA, sans avoir, au préalable fait le VHDL et le testez avec un banc de test virtuel.&lt;br /&gt;
L'intérêt et de mettre en valeur la nécessité ou non de certains signaux pour le schéma de la carte.&lt;br /&gt;
On va mettre en oeuvre les connaissances acquises au S7 en VHDL (en TP de Circuit Numérique Programmble).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est de l'Arduino, on a répondu aux interrogations suivantes (certaines de ces questions paraissent triviales, mais on préfère éviter les surprises):&lt;br /&gt;
&lt;br /&gt;
Quelle est la vitesse maximale de la communication série de l'Arduino ?&lt;br /&gt;
-115200bauds&lt;br /&gt;
&lt;br /&gt;
Est-ce que, un programme de type &amp;quot;Analog Write&amp;quot; est-il une vraie sortie analogique ?&lt;br /&gt;
&lt;br /&gt;
-Non, c'est juste une PWM. Elle sera exploitable pour faire les signales I/Q mais très contraignantes, car il faudra filtré le signal, et ce sera beaucoup trop lent (du au fait que la modulation est faite au alentour de 850Mhz), le FPGA sera un passage obligé cela ouvrira les portes d'un plus grand débit.&lt;br /&gt;
&lt;br /&gt;
==== Manipulation réalisée sur la maquette TIMS : ====&lt;br /&gt;
&lt;br /&gt;
On a fait un des montages présentés dans l'ouvrage &amp;quot;Volume D1 Fundamental Digital Experiments&amp;quot; dans le but de visualiser l’objectif à atteindre.&lt;br /&gt;
&lt;br /&gt;
On obtient la constellation suivante (16QAM):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_tims_semaine_1.PNG|300px|thumb|center|Constellation visualisée en mode X-Y.]]&lt;br /&gt;
&lt;br /&gt;
Ce qui correspond à deux signaux en visualisation temporelle de cette forme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_temporelle_tims_semaine_1.PNG|300px|thumb|center|Signaux I et Q. (Image très floutée, à remplacer)]]&lt;br /&gt;
&lt;br /&gt;
On pourra facilement obtenir le même résultat en générant un bus de trame pseudo aléatoire et en l'injectant dans un C.N.A. (Conversion Numérique Analogique)&lt;br /&gt;
&lt;br /&gt;
==== Code Arduino réalisé: ====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schema_electronique_generateur_pseudo_aleatoire.png|300px|thumb|center|Schéma électronique du générateur pseudo aléatoire.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_chrono_simule.PNG|300px|thumb|center|Résultat de la simulation du générateur pseudo aléatoire (on a eu la même chose en pratique).]]&lt;br /&gt;
&lt;br /&gt;
[code]&lt;br /&gt;
/*A peut-être supprimer*/&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;		&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void output_init(void){&lt;br /&gt;
  DDRB |= 0x02; // PIN 8,9 sont les deux sorties.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(void){&lt;br /&gt;
  int r1=1,r2=0,r3=0,r4=0,r5=0,retard=0;&lt;br /&gt;
  PORTB=0x00;&lt;br /&gt;
  while(1)&lt;br /&gt;
    {&lt;br /&gt;
      r5=r4;//chaque affectation représente une recopie de la bascule sur le &amp;quot;front montant&amp;quot;, ici c'est simplement l’exécution du code.&lt;br /&gt;
      r4=r3;&lt;br /&gt;
      r3=r2;&lt;br /&gt;
      r2=r1;&lt;br /&gt;
      r1=r4^r5;&lt;br /&gt;
      PORTB=0x01*r1+0x02*retard;//écriture des signaux&lt;br /&gt;
      _delay_ms(10);//le &amp;quot;front montant&amp;quot;, ce qui permet de faire un genre d'horloge.&lt;br /&gt;
      retard=r5;//déphasage du signal&lt;br /&gt;
    }&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
[/code]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_arduino.jpg|300px|thumb|center|Resultat avec le générateur pseudo aléatoire &amp;quot;émuler&amp;quot; avec l'Arduino.]]&lt;br /&gt;
&lt;br /&gt;
Comparaison carte réelle/résultat Arduino:&lt;br /&gt;
&lt;br /&gt;
C'était exactement les signaux attendus (même s'il y un décalage a par rapport à l'original).&lt;br /&gt;
&lt;br /&gt;
On aura bien pour une QPSK (4PSK) tous les couples (ie 00,01,11 et 10).&lt;br /&gt;
&lt;br /&gt;
À propos de l'arduino, on pourra envisager une amélioration pour générer une séquence plus longue:&lt;br /&gt;
&lt;br /&gt;
-il faudra simplement utiliser un tableau d'entier.&lt;br /&gt;
&lt;br /&gt;
-paramétrer sa taille avec un N par exemple.&lt;br /&gt;
&lt;br /&gt;
-N correspondra à la taille de séquence de longueur 2^N.&lt;br /&gt;
&lt;br /&gt;
Voir la section &amp;quot;Code Arduino réalisé&amp;quot; en annexe B dans la semaine correspondante.&lt;br /&gt;
&lt;br /&gt;
==== Possibilités de communications: ====&lt;br /&gt;
&lt;br /&gt;
Exploration des possibilités de communication entre le PC et la carte en amont:&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; Ethernet: =====&lt;br /&gt;
&lt;br /&gt;
*+ Vitesse de transmission (~10M-100M-G)bauds&lt;br /&gt;
&lt;br /&gt;
*- La gestion du flux de données doit être faite par un microcontrôleur (celui-ci pourra être implémenté un bloc I.P. à l'intérieur du FPGA)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; - Haute consommation de CLB du FPGA.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; SPI (communication série): =====&lt;br /&gt;
&lt;br /&gt;
*- Vitesse de transmission&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Arduino capable de communiquer jusqu'a 115200 bauds&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; D'après certaines discussions sur des forums, on pourrait « pousser » au-delà.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; I2C : =====&lt;br /&gt;
&lt;br /&gt;
Communication abandonnée, ce n'est pas une priorité.&lt;br /&gt;
&lt;br /&gt;
==== À propos des blocs I.P.: ====&lt;br /&gt;
&lt;br /&gt;
En consultant les ordinateurs et en s'appuyant des T.P.s de CNP, on constate que les blocs suivants existent:&lt;br /&gt;
&lt;br /&gt;
- Xilinx Microblaze/Xilinx Power PC (&amp;quot;µP FPGA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Est-ce possible d'utiliser ces blocs I.P. pour programmer un FPGA sur une carte autre que la Nanoboard ? Comment ?&lt;br /&gt;
&lt;br /&gt;
- EMACx (Ethernet Media Acess Control)(:lien physique entre processeurs et &amp;quot;standart Physical Layer device IEEE802.3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===== Conception de la carte: =====&lt;br /&gt;
&lt;br /&gt;
L'idéal est de se documenter sur la Compatibilité électromagnétique.&lt;br /&gt;
&lt;br /&gt;
=== 2éme semaine: (du 03/02/2014 au 08/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 3éme semaine: (du 10/02/2014 au 15/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, après avoir eu le problème de manipulation, nous avons pu prendre connaissance d'un certain montage qui s’avéra utile pour la conception de la carte/maquette.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_limiteur_de_courant_semaine_3.PNG|300px|thumb|center|Schéma limiteur de courant.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que ce montage se retrouve dans la partie &amp;quot;typical application&amp;quot; de la documentation technique du 7805.&lt;br /&gt;
&lt;br /&gt;
=== 4éme semaine: (du 17/02/2014 au 22/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
On souhaite pouvoir réaliser une communication unidirectionnelle ou même transmettre un signal audio ce qui nous contraint à une bande passante minimale de 48kHz, on prendra 200kHz (pour être bien au-delà de la condition du théorème de Shannon): le but serait donc de brancher par exemple une source audio quelconque puis de la transmettre à travers la maquette et de la recomposer en fin de chaine.&lt;br /&gt;
&lt;br /&gt;
Après édition rapide du schéma, on en dégage qu'il nous faudra un minimum d'environ 50 entrées/sorties. Mais ceci ce nombre sera très probablement revu à la hausse lors de prochaine séance.&lt;br /&gt;
&lt;br /&gt;
Voici la carte que l'on utilisera dans la suite du projet:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_S3BOARD-top-400_semaine_4.gif|300px|thumb|center|Digilent Spartan 3.]]&lt;br /&gt;
&lt;br /&gt;
=== 5éme semaine: (du 03/03/2014 au 08/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lien vers le Design complet avec les librairies incluses (on remarquera qu'il serait judicieux d’installer toutes les librairies avant d’essayer d'ouvrir le schéma)&lt;br /&gt;
&lt;br /&gt;
A notez aussi que l'on trouvera des reliques de feuilles Excel permettant de trouver rapidement des ratios dans la série E12.&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_Design_pcb_plus_librairies_semaine_5_6.zip|Schéma + Bibliothèques.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.pdf|Schéma en PDF.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.png|Schéma au format A2.]]&lt;br /&gt;
&lt;br /&gt;
=== 6éme semaine: (du 10/03/2014 au 15/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 7éme semaine: (du 17/03/2014 au 22/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 8éme semaine: (du 24/03/2014 au 26/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien pour l'annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 9éme semaine: (du 28/03/2014 au 03/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0061_1_r_2r_semaine_9.jpg|center|thumb|300px|Le réseau R-2R.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0062_1_4QAM_semaine_9.jpg|center|thumb|300px|4QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0066_1_16QAM_semaine_9.jpg|center|thumb|300px|16QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0069_1_64QAM_semaine_9.jpg|center|thumb|300px|64QAM.]]&lt;br /&gt;
&lt;br /&gt;
Pas de photos pour la constellation à 256 points, mais elle a été réalisée.&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du montage, malgré que la P.L.L., on a un signal d'erreur après filtrage :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Chaine 1: Vtune (commande du V.C.O.)/Chaine 2: &amp;quot;erreur&amp;quot; de commande]]&lt;br /&gt;
&lt;br /&gt;
Ce qui met en valeur immédiatement deux problèmes majeurs:&lt;br /&gt;
&lt;br /&gt;
La chaine fonctionne sur le papier, mais lors de sa mise en pratique, il faut penser à mettre une tension d'offset et aussi réaliser une amplification de l'erreur pour avoir des grandeurs de commande adaptée au Vtune du V.C.O..&lt;br /&gt;
&lt;br /&gt;
On propose l'amélioration suivante (qui sera réalisé à la prochaine séance):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Proposition de voie d'amélioration.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que les valeurs des résistances et des capacités on était choisi pour permettre un fonctionnement correct des A.O. (Amplificateur Opérationnel), mais pas pour ce qui de l'asservissement de la boucle par manque de temps. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette, on a eu à démonter le montage à cause de contraintes concernant les Mini-circuits (car utilisé en travaux pratiques).&lt;br /&gt;
&lt;br /&gt;
=== 10éme semaine: (du 07/04/2014 au 10/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
Spectres des signaux de la chaine de transmission:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0001_allure_spectre_reception_semaine_10.jpg|center|thumb|300px|Spectre en réception.]]&lt;br /&gt;
&lt;br /&gt;
Porteuse utilisée pour la modulation I/Q à environ 60MHz.&lt;br /&gt;
&lt;br /&gt;
P34_2013_2014_DSC_0001_allure_spectre_reception_semaine_10.jpg&lt;br /&gt;
&lt;br /&gt;
Porteuse utilisée pour le transport en fréquence à environ 810MHz:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0035_constellation_recupere_PLL_NV_semaine_10.jpg|center|thumb|300px|&amp;quot;Constellation&amp;quot; récupérée avec la PLL défectueuse (on souhaite se verrouiller sur la raie à 868MHz).]]&lt;br /&gt;
&lt;br /&gt;
Question en suspens: faudrait'il utiliser un filtre passe-bande incluant 868Mhz pour pouvoir se verrouiller sur cette fréquence ?&lt;br /&gt;
&lt;br /&gt;
On remarquera sur le fait que l'oscillateur du côté de la chaine d'émission à d'importantes non-linéarités (on peut observer à l'analyseur de spectre 3 à 4 raies aux fréquences multiples).&lt;br /&gt;
&lt;br /&gt;
Ce qui donne un diagramme de constellation plutôt mauvais si l'on fait le montage suivant:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_montage_non_linearite_vco_constellation_semaine_10.PNG|center|thumb|300px|Montage réalisée.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_sortie_montage_non_linearite_semaine_10.PNG|center|thumb|300px|La constellation 4QAM est attendue, on est loin du résultat attendu (aucune photo n'a était réalisé d'ou le dessin).]]&lt;br /&gt;
&lt;br /&gt;
== Annexe B: Digilent Spartan 3 ==&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire fonctionner la carte Digilent Spartan 3: ===&lt;br /&gt;
&lt;br /&gt;
Ne connectez pas de connecteur JTAG pendant les installations. Redémarrez après chaque installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut savoir que le l'ISE Webpack 14.6 fonctionne avec la carte (n'utilisez pas la 14.7, elle ne supporte pas la génération spartan 3 !):&lt;br /&gt;
&lt;br /&gt;
Installez donc l'ISE WebPack 14.6 (ou antérieur à condition que celle-ci soit supérieur à la 7.1i (d'après leur documentation))&lt;br /&gt;
&lt;br /&gt;
(voir lien utile sur Xilinx)&lt;br /&gt;
&lt;br /&gt;
Une fois l'installation de l'ISE terminé, faites en sorte d'avoir celui que soit opérationnel (la licence est gratuite !).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installez la &amp;quot;library&amp;quot; ADEPT 2.3 voir le lien utile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après vous n'avez plus qu'a utilisez ISE Xilinx normalement et vous serez capable de reconnaitre la carte via la liaison JTAG, et de le programmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Liens utiles: ===&lt;br /&gt;
&lt;br /&gt;
Lien constructeur/vendeur (avec ressources utiles en bas de la page):&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?Prod=S3BOARD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien &amp;quot;Library&amp;quot; pour le câble USB digilent:&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,69&amp;amp;Prod=ADEPT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour l'ISE 14.6):&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/products/design-tools/ise-design-suite/index.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour les versions antérieures veuillez faire attention au système d'exploitation, votre architecture matérielle et le FPGA cible):&lt;br /&gt;
&lt;br /&gt;
(Les informations de compatibilité son sur la page suivante:) (mots clés: xilinx classic(s))&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/tools/classics.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream, et le charger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en &amp;quot;non&amp;quot;-volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream et l'utiliser pour générer un .mcs qui vous permettra d'inscrire le programme dans la mémoire (E?)PROM.&lt;br /&gt;
&lt;br /&gt;
On remarquera que la programmation en non volatile est utile pour faire un remise à zéro et recharger le contenu de l'(E?)PROM, mais semble être sensible au débranchement de l'adaptateur d'alimentation de la carte.&lt;br /&gt;
&lt;br /&gt;
=== Exemple de programmation: ===&lt;br /&gt;
&lt;br /&gt;
Voir le lien digilent pour ceci dans cette annexe.&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11596</id>
		<title>Modem pour le numérique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11596"/>
				<updated>2014-04-13T20:54:41Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* 10éme semaine: (du 07/04/2014 au 10/04/2014) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Modulateur et démodulateur pour communications numériques =&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
=== Présentation générale du projet ===&lt;br /&gt;
&lt;br /&gt;
Dans le cadre des TPs d'électronique et de transmission RF, nous avons découvert qu'il existe plusieurs modes de modulation, pour transmettre un signal modulant.&lt;br /&gt;
&lt;br /&gt;
Celles vues en TP au S7 sont la modulation en amplitude, en fréquence, en phase, en BPSK et en QPSK.&lt;br /&gt;
&lt;br /&gt;
Or les modulations en phase, en fréquence et en amplitude étant celles les plus connues, la modulation en QAM (Modulation d'Amplitude en Quadrature) est quant à elle moins connue, mais tout aussi utilisées:&lt;br /&gt;
&lt;br /&gt;
-pour la TNT en 64 QAM (en France).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_64qam.jpg|300px|thumb|center|Exemple de constellation 64QAM.]]&lt;br /&gt;
&lt;br /&gt;
-pour le WiFi en 64-QAM ou 256-QAM (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Or ces deux dernières étant peu représentées au niveau des travaux pratiques, ce projet permettra de fournir un peu plus de pratique sur les modulations de type QAM (en diagramme I/Q) dans le domaine des radiofréquences (~800MHz).&lt;br /&gt;
&lt;br /&gt;
(Le nombre devant le QAM indique le nombre de points dans le diagramme I/Q qu'on appelle aussi constellation)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se réserve le droit de faire '''évoluer''' le cahier des charges a posteriori, si certaines contraintes étaient amenées à évoluer ou se préciser.&lt;br /&gt;
&lt;br /&gt;
=== Objectif et intérêt du projet ===&lt;br /&gt;
&lt;br /&gt;
Pour cela, on nous a fourni des modules commerciaux Mini-circuit pouvant travailler dans les radios-fréquences.&lt;br /&gt;
&lt;br /&gt;
Ceux-ci permettront de mettre en place une grande partie de la chaine de transmission (voir schéma de la chaine de transmission).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_modulation.PNG|300px|thumb|center|Modulation.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_demodulation.PNG|300px|thumb|center|Démodulation.]]&lt;br /&gt;
&lt;br /&gt;
On a tout d'abord à mettre en place une carte FPGA et/ou un dispositif permettant d'envoyer un flux de données numériques continuellement pour pouvoir visualiser le diagramme I/Q (mise en valeur du diagramme I/Q et voir même un diagramme un peu plus complexe que le BPSK ou le QPSK).&lt;br /&gt;
&lt;br /&gt;
Le canal de transmission qui sera un simple fil électrique, mais pourra devenir une antenne réceptrice et émettrice si le temps imparti le permet (mise en valeur du et mesure du Bit Error Rate qui sera bien sûr différent suivant le canal de transmission).&lt;br /&gt;
&lt;br /&gt;
Du côté réception ,après démodulation du signal, une remise en forme et une interprétation des données seront réalisées, celle-ci dépendra bien entendu de la provenance du flux de données (constater le succès ou l'échec d'un envoi de données).&lt;br /&gt;
&lt;br /&gt;
Enfin si le temps le permets on pourra mettre en une place un système de codage de l'information avec par exemple un codage redondant permettant de corrigé l'erreur (À définir, on pourra faire constater l'efficacité d'une méthode de codage au choix).&lt;br /&gt;
&lt;br /&gt;
=== Étapes/Déroulement du projet ===&lt;br /&gt;
&lt;br /&gt;
De même que pour le cahier des charges, il se peut que les étapes diffèrent plus ou moins, en fonction des disponibilités, matérielles et contraintes.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Caractérisation des blocs Mini-circuits et épluchage des documentations techniques====&lt;br /&gt;
Avant de les utiliser dans la chaine de transmission, nous avons à faire une caractérisation des blocs fournis:&lt;br /&gt;
&lt;br /&gt;
-la caractérisation du VCO.&lt;br /&gt;
&lt;br /&gt;
-l'étude des possibilités offerte par le modulateur (cela déterminera le nombre de points possible dans la constellation, ie savoir si l'on peut aller au-delà de la QPSK).&lt;br /&gt;
&lt;br /&gt;
-la caractérisation des mélangeurs (Mixer), leurs facteurs réels de multiplication.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Utilisation et exploitation des caractérisations ====&lt;br /&gt;
On pourra ensuite trouver les paramètres pour régler correctement dans notre chaine de transmission certains de nos sous-systèmes comme la boucle à verrouillage de phase.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Génération d'un flux des données numériques ====&lt;br /&gt;
Comme dit précédemment, l'idéal et d'avoir un flux de données numériques transmis en permanence.&lt;br /&gt;
Pour cela plusieurs solutions s'offre à nous, on pourra utiliser un montage générateur pseudo aléatoire (un circuit que l'on a fait l'année dernière en Conception de Circuit Électronique).&lt;br /&gt;
On pourra &amp;quot;émuler&amp;quot; ce montage avec un Arduino, ou bien même le faire au moyen de la Nanoboard.&lt;br /&gt;
On pourra aussi transmettre des chaines de caractère en continu.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Test de la chaine ====&lt;br /&gt;
Une fois les étapes précédentes réalisées, on pourra passer au test de la chaine de transmission. Il faudra vérifier le bon fonctionnement en aval, dedans (boucle à verrouillage de phase), et en amont de la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Première mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
Il est possible que la conception d'un dispositif soit nécessaire que ce soit pour les deux mesures du B.E.R..&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Antennes ====&lt;br /&gt;
Si toutes les étapes précédentes sont satisfaites, on pourra alors faire un canal de transmission plus intéressant, à savoir l'air.&lt;br /&gt;
Nous passerons alors à la conception des antennes, émettrice et réceptrice.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Deuxième mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Codage de l'information et correction d'erreur ====&lt;br /&gt;
En toute fin de ce projet, on pourra même mettre deux dispositifs en aval et en amont de la chaine de transmission.&lt;br /&gt;
On réalisera alors un codeur et un décodeur permettant de faire de la détection/correction d'erreur.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Mise en place d'outil de débogage (tout au long)====&lt;br /&gt;
La mise en place de simples outils de débogage et primordiale, ceux-ci permettront de vérifier le bon fonctionnement de la chaine.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Proposition d'un sujet de TP (tout au long) ====&lt;br /&gt;
Il se trouve que lors du déroulement du projet, on pourra être amené à se poser des questions au niveau des réglages de la chaine de transmission.&lt;br /&gt;
Or il est fort probable que les élèves qui travailleront sur ce TP pourront alors se poser les mêmes questions.&lt;br /&gt;
C'est pour cela qui sera judicieux de prendre soin de noter les problématiques rencontrées et de donner un certain fil de développement pour venir à bout de la problématique posée.&lt;br /&gt;
Ce qui reviendra à proposer des axes/questions sur les manipulations de cette maquette de TP.&lt;br /&gt;
&lt;br /&gt;
== Note valable pour toutes les semaines ==&lt;br /&gt;
&lt;br /&gt;
'''[[Si un point vous semble imprécis, veuillez vous reporter aux détails fournis en annexe.]]'''&lt;br /&gt;
&lt;br /&gt;
== 1éme semaine: (du 27/01/2014 au 01/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Séance du 05/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Pour bien comprendre les différentes choses à réaliser, on a refait les manipulations vues en TP. On a, pour cela utiliser la maquette didactique TIMS pour générer différent type de modulation:&lt;br /&gt;
&lt;br /&gt;
-la modulation en 4,8,16PSK (on obtient une constellation en forme de cercle).&lt;br /&gt;
&lt;br /&gt;
-La modulation en 4,8,16QAM (on obtient une constellation avec un carré, ou deux: de différentes tailles).&lt;br /&gt;
&lt;br /&gt;
On a très vite dégagé la nécessité de réaliser un montage générateur de tous les mots numériques possibles.&lt;br /&gt;
On a donc fait un programme sur arduino qui équivaut au générateur pseudo aléatoire.&lt;br /&gt;
Celui-ci est directement inspiré du montage que l'on a réalisé l'année dernière en conception de circuit électronique.&lt;br /&gt;
&lt;br /&gt;
Séance du 06/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Lors de cette séance on a exploré toutes les possibilités concernant la communication entre la maquette/carte, car cela pour avoir une influence non négligeable sur le choix de la carte F.P.G.A. et du design de la maquette.&lt;br /&gt;
&lt;br /&gt;
On a donc aussi fait des recherches concernant les possibilités de communications et les blocs I.P. (Intellectual Properties) permettant de programmer un F.P.G.A.&lt;br /&gt;
&lt;br /&gt;
Et enfin, on a eu une discussion avec un responsable technique pour ce qui de la C.E.M. (Compatibilité Electro-Magnétique)&lt;br /&gt;
&lt;br /&gt;
== 2éme semaine: (du 03/02/2014 au 08/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Réflexion sur les possibilités possibles et offertes par le sujet pour ce qui est des parties de communications entre la maquette en interne et de son environnement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_principe_carte_semaine_2.PNG|300px|thumb|center|Maquette en interne/externe.]]&lt;br /&gt;
&lt;br /&gt;
N'ayant jamais utilisé d'autre carte que la Nanoboard, on s'est attelé à faire des recherches sur la manière de procéder pour programmer une carte F.P.G.A., il se trouve que chaque carte de développement à ses propres manières pour être programmé.&lt;br /&gt;
&lt;br /&gt;
On a pris le soin de noter toutes les questions concernant le F.P.G.A. pour un intervenant industriel qui assura un cours la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
== 3éme semaine: (du 10/02/2014 au 15/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Ayant les oscillateurs commandables en tension, on a pu commencer à faire une manipulation avec les composants Mini-Circuit.&lt;br /&gt;
&lt;br /&gt;
Mais après un problème suite à une manipulation l'un des VCOs ne fonctionne plus.&lt;br /&gt;
&lt;br /&gt;
Ce qui nous amène à penser qu'il sera judicieux de prévoir une alimentation au niveau de la carte.&lt;br /&gt;
&lt;br /&gt;
Celle-ci devra être inférieure ou égale à la tension maximale d'alimentation du composant (ceux-ci étant très sensible).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Questions/Réponses:&lt;br /&gt;
&lt;br /&gt;
Comment fait-on pour programmer une carte F.P.G.A. est-ce que la programmation se fait &amp;quot;in situe&amp;quot; ? (in situe : c'est à dire sur la carte elle-même) &lt;br /&gt;
Oui, c'est ce qui est utilisé, via un câble JTAG.&lt;br /&gt;
&lt;br /&gt;
Est-ce possible faire une interface USB pour permettre à un ordinateur de communiquer avec la maquette/carte via un F.P.G.A. ? Oui.&lt;br /&gt;
&lt;br /&gt;
Est-ce que la gestion de l'interface Ethernet est envisageable ? Oui.&lt;br /&gt;
&lt;br /&gt;
Pour une communication en protocole UDP avec un ordinateur via une liaison Ethernet, est-ce qu'il y a d'autres façons que d'utiliser un &amp;quot;SoftCore&amp;quot; ?&lt;br /&gt;
&lt;br /&gt;
Oui, il existe aussi bien en Software, qu'en Hardware.&lt;br /&gt;
&lt;br /&gt;
== 4éme semaine: (du 17/02/2014 au 22/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a donc repris l'idée de la 2éme semaine.&lt;br /&gt;
&lt;br /&gt;
Après avoir mis en place un cahier des charges au niveau des qualités, bande passante minimale.&lt;br /&gt;
&lt;br /&gt;
Nous avons fait des recherches sur les composants à utiliser (i.e. CAN, CAN, ...)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous a permis après une édition rapide de schéma électrique (schematic) d'avoir une idée du nombre de pins dont nous aurons besoin sur une carte FPGA afin de réaliser le projet.&lt;br /&gt;
&lt;br /&gt;
Après prospection, il se trouve que nous nous dirigerions vers la carte Digilent Spartan 3, dont l'école était déjà en possession.&lt;br /&gt;
&lt;br /&gt;
Donc nous nous sommes attelés à faire des recherches et des essais sur cette carte et pour notamment trouver un moyen de la faire fonctionner.&lt;br /&gt;
&lt;br /&gt;
== 5éme semaine: (du 03/03/2014 au 08/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, après plusieurs heures de recherches et d'essai infructueux, on a fini par trouver les drivers pour le câble USB diligent.&lt;br /&gt;
&lt;br /&gt;
Et donc ainsi avoir un fonctionnement de la communication via le câble JTAG plus propice au fonctionnement de la carte.&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur une partie des composants et des dimensionnements pour certains d'entre eux (valeur de résistance,capacité...)&lt;br /&gt;
&lt;br /&gt;
Schématics: Édition de multiple bibliothèque pour Altium, intégrant à la fois schématics et leur empreinte PCB associée.&lt;br /&gt;
&lt;br /&gt;
(On a pu constater qu'une interface 3v3 5v n'est pas forcement nécessaire pour assurer le bon fonctionnement entre deux cartes avec des tensions d'alimentation différentes.)&lt;br /&gt;
&lt;br /&gt;
== 6éme semaine: (du 10/03/2014 au 15/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur l'ensemble des composants et des choix de régulateur et utilisation d'autre diode Zener.&lt;br /&gt;
&lt;br /&gt;
On trouvera le schéma intégral avec les bibliothèques nécessaires dans la semaine 5.&lt;br /&gt;
&lt;br /&gt;
Cette semaine a été dédiée à l'envoi de la commande des composants au sein du magasin de l'école et du fournisseur.&lt;br /&gt;
&lt;br /&gt;
Après envoi de la commande, il se trouve que le projet a changé d'objectif principal.&lt;br /&gt;
&lt;br /&gt;
Il est maintenant prioritaire de réaliser un code VHDL capable d'évaluer la vitesse de transmission numérique du côté récepteur.&lt;br /&gt;
&lt;br /&gt;
== 7éme semaine: (du 17/03/2014 au 22/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Pour cette semaine, on s'est concentré sur la réalisation d'un générateur pseudo aléatoire en interne au FPGA.&lt;br /&gt;
&lt;br /&gt;
On réalisera une échelle de résistance afin de réaliser une conversion numérique analogique afin de l'envoyer sur la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
Ce code de &amp;quot;base&amp;quot; nous permettra de réaliser un flux de données fictif pour obtenir toutes les combinaisons récupérant le résultat du bus.&lt;br /&gt;
&lt;br /&gt;
[[MédiaP34_2013_2014_gene_pseudo_19_03_2014_6_semaine_7.zip|Archive contenant le projet ISE Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_rtl_semaine_7.PNG|300px|thumb|center|extrait du schéma RTL, on peut y voir clairement les inférences de Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
Ce schéma a deux entrées et une sortie, une entrée d'initialisation, une horloge et une sortie pour la trame en pseudo aléatoire.&lt;br /&gt;
&lt;br /&gt;
On fera l'essai sur la carte lors de la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
== 8éme semaine: (du 24/03/2014 au 26/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Après le premier test, on pourrait penser que l'on récupère du bruit en sortie de la carte:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0024_1_probleme_d_overshoot_semaine_8.jpg|300px|thumb|center|Overshoot.]]&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir remédier à ce problème, on a fait une prédivision de l'horloge&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0037_1_div_freq_semaine_8.jpg|300px|thumb|center|Overshoot après division.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0039_1_div_freq_zoom_semaine_8.jpg|300px|thumb|center|Overshoot après division (Zoom).]]&lt;br /&gt;
&lt;br /&gt;
Archive contenant toutes les modifications:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_26_03_2014_2_semaine_8.zip|VHDL Semaine 8.]]&lt;br /&gt;
&lt;br /&gt;
On a trouvé un moyen de faire un CNA facilement, via une &amp;quot;échelle dite R-2R&amp;quot;. [[http://www.uchobby.com/index.php/2008/01/08/arduino-audio-dac-options/|Pour le réseau R 2R.]]&lt;br /&gt;
&lt;br /&gt;
Il faut encore modifier le VHDL pour pouvoir l'exploiter et ainsi générer une constellation.&lt;br /&gt;
&lt;br /&gt;
== 9éme semaine: (du 28/03/2014 au 03/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pris donc le soin de modifier le VHDL:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_31_03_2014_1_semaine_9.zip|VHDL semaine 9]]&lt;br /&gt;
&lt;br /&gt;
Ce VHDL à été mis à jour, avec deux entrées (initialisation et une horloge) et un bus de sortie (8 bits), avec les trames pseudoaléatoires.&lt;br /&gt;
&lt;br /&gt;
On envoie ces signaux sur deux C.N.A.s (4 bits chacun) pour générer deux signaux I et Q, on peut voir une constellation se dessiner en mode X-Y.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0072_1_Montage_entier_4qam_semaine_9.jpg|300px|thumb|center|Montage avec constellations 4QAM.]]&lt;br /&gt;
&lt;br /&gt;
D'autres constellations réalisées sont disponibles en annexe. On peut monter jusqu'à une constellation de 256 points (2^4*2^4).&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage complet de toute la chaine de transmission. Il se trouve que la Boucle à Verrouillage de Phase (ou appellée PLL, Phase Loop Locker) ne se verrouille pas sur la porteuse du signal que l'on souhaite récupéré, de ce fait on ne peut pas récupérer les signaux I et Q.&lt;br /&gt;
&lt;br /&gt;
== 10éme semaine: (du 07/04/2014 au 10/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage que l'on évoquait en semaine 9:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0027_montage_realisee_semaine_10.jpg|center|thumb|300px|Montage pour améliorer la PLL.]]&lt;br /&gt;
&lt;br /&gt;
Il se trouve qu’après un réglage précis de la tension d'offset permettant d'être un proche de la fréquence à capturer on obtient:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0025_PLL_non_verrouillage_semaine_10.jpg|center|thumb|300px|Signaux I/Q après ajout du montage.]]&lt;br /&gt;
&lt;br /&gt;
= Annexes =&lt;br /&gt;
&lt;br /&gt;
== Annexe A: Détails techniques des semaines ==&lt;br /&gt;
&lt;br /&gt;
=== 1éme semaine: (du 27/01/2014 au 01/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Après on a réfléchi sur la potentielle conception/utilisation d'une carte FPGA.&lt;br /&gt;
Il sera judicieux de ne pas se précipiter sur le schéma et la conception/utilisation d'une carte FPGA, sans avoir, au préalable fait le VHDL et le testez avec un banc de test virtuel.&lt;br /&gt;
L'intérêt et de mettre en valeur la nécessité ou non de certains signaux pour le schéma de la carte.&lt;br /&gt;
On va mettre en oeuvre les connaissances acquises au S7 en VHDL (en TP de Circuit Numérique Programmble).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est de l'Arduino, on a répondu aux interrogations suivantes (certaines de ces questions paraissent triviales, mais on préfère éviter les surprises):&lt;br /&gt;
&lt;br /&gt;
Quelle est la vitesse maximale de la communication série de l'Arduino ?&lt;br /&gt;
-115200bauds&lt;br /&gt;
&lt;br /&gt;
Est-ce que, un programme de type &amp;quot;Analog Write&amp;quot; est-il une vraie sortie analogique ?&lt;br /&gt;
&lt;br /&gt;
-Non, c'est juste une PWM. Elle sera exploitable pour faire les signales I/Q mais très contraignantes, car il faudra filtré le signal, et ce sera beaucoup trop lent (du au fait que la modulation est faite au alentour de 850Mhz), le FPGA sera un passage obligé cela ouvrira les portes d'un plus grand débit.&lt;br /&gt;
&lt;br /&gt;
==== Manipulation réalisée sur la maquette TIMS : ====&lt;br /&gt;
&lt;br /&gt;
On a fait un des montages présenté dans l'ouvrage &amp;quot;Volume D1 Fundamental Digital Experiments&amp;quot; dans le but de visualiser l’objectif à atteindre.&lt;br /&gt;
&lt;br /&gt;
On obtient la constellation suivante (16QAM):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_tims_semaine_1.PNG|300px|thumb|center|Constellation visualisé en mode X-Y.]]&lt;br /&gt;
&lt;br /&gt;
Ce qui correspond à deux signaux en visualisation temporelle de cette forme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_temporelle_tims_semaine_1.PNG|300px|thumb|center|Signaux I et Q. (Image très flouté, à remplacer)]]&lt;br /&gt;
&lt;br /&gt;
On pourra facilement obtenir le même résultat en générant un bus de trame pseudo aléatoire et en l'injectant dans un C.N.A. (Conversion Numérique Analogique)&lt;br /&gt;
&lt;br /&gt;
==== Code Arduino réalisé: ====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schema_electronique_generateur_pseudo_aleatoire.png|300px|thumb|center|Schéma électronique du générateur pseudo aléatoire.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_chrono_simule.PNG|300px|thumb|center|Résultat de la simulation du générateur pseudo aléatoire (on a eu la même chose en pratique).]]&lt;br /&gt;
&lt;br /&gt;
[code]&lt;br /&gt;
/*A peut être supprimer*/&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;		&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void output_init(void){&lt;br /&gt;
  DDRB |= 0x02; // PIN 8,9 sont les deux sorties.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(void){&lt;br /&gt;
  int r1=1,r2=0,r3=0,r4=0,r5=0,retard=0;&lt;br /&gt;
  PORTB=0x00;&lt;br /&gt;
  while(1)&lt;br /&gt;
    {&lt;br /&gt;
      r5=r4;//chaque affectation représente une recopie de la bascule sur le &amp;quot;front montant&amp;quot;, ici c'est simplement l’exécution du code.&lt;br /&gt;
      r4=r3;&lt;br /&gt;
      r3=r2;&lt;br /&gt;
      r2=r1;&lt;br /&gt;
      r1=r4^r5;&lt;br /&gt;
      PORTB=0x01*r1+0x02*retard;//écriture des signaux&lt;br /&gt;
      _delay_ms(10);//le &amp;quot;front montant&amp;quot;, ce qui permet de faire un genre d'horloge.&lt;br /&gt;
      retard=r5;//déphasage du signal&lt;br /&gt;
    }&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
[/code]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_arduino.jpg|300px|thumb|center|Resultat avec le generateur pseudo aléatoire &amp;quot;émuler&amp;quot; avec l'Arduino.]]&lt;br /&gt;
&lt;br /&gt;
Comparaison carte réelle/résultat Arduino:&lt;br /&gt;
&lt;br /&gt;
C'était exactement les signaux attendus (même s'il y un décalage a par rapport à l'original).&lt;br /&gt;
&lt;br /&gt;
On aura bien pour une QPSK (4PSK) tous les couples (ie 00,01,11 et 10).&lt;br /&gt;
&lt;br /&gt;
À propos de l'arduino, on pourra envisager une amélioration pour générer une séquence plus longue:&lt;br /&gt;
&lt;br /&gt;
-il faudra simplement utiliser un tableau d'entier.&lt;br /&gt;
&lt;br /&gt;
-paramétrer sa taille avec un N par exemple.&lt;br /&gt;
&lt;br /&gt;
-N correspondra à la taille de séquence de longueur 2^N.&lt;br /&gt;
&lt;br /&gt;
Voir la section &amp;quot;Code Arduino réalisé&amp;quot; en annexe B dans la semaine correspondante.&lt;br /&gt;
&lt;br /&gt;
==== Possibilités de communications: ====&lt;br /&gt;
&lt;br /&gt;
Exploration des possibilités de communication entre le PC et la carte en amont:&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; Ethernet: =====&lt;br /&gt;
&lt;br /&gt;
*+ Vitesse de transmission (~10M-100M-G)bauds&lt;br /&gt;
&lt;br /&gt;
*- La gestion du flux de données doit être faite par un microcontrôleur (celui-ci pourra être implémenté un bloc I.P. à l'intérieur du FPGA)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; - Haute consommation de CLB du FPGA.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; SPI (communication série): =====&lt;br /&gt;
&lt;br /&gt;
*- Vitesse de transmission&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Arduino capable de communiquer jusqu'a 115200 bauds&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; D'après certaines discussions on pourrait « pousser » au-delà : voir le lien des sujets Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; I2C : =====&lt;br /&gt;
&lt;br /&gt;
Communication abandonné, ce n'est pas une priorité.&lt;br /&gt;
&lt;br /&gt;
==== À propos des blocs I.P.: ====&lt;br /&gt;
&lt;br /&gt;
En consultant les ordinateurs et en s'appuyant des TPs de CNP, on constate que les blocs suivants existent:&lt;br /&gt;
&lt;br /&gt;
- Xilinx Microblaze/Xilinx Power PC (&amp;quot;µP FPGA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Est-ce possible d'utiliser ces blocs I.P. pour programmer un FPGA sur une carte autre que la Nanoboard ? Comment ?&lt;br /&gt;
&lt;br /&gt;
- EMACx (Ethernet Media Acess Control)(:lien physique entre processeurs et &amp;quot;standart Physical Layer device IEEE802.3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===== Conception de la carte: =====&lt;br /&gt;
&lt;br /&gt;
L'idéal est de se documenter sur la Compatibilité électromagnétique.&lt;br /&gt;
&lt;br /&gt;
=== 2éme semaine: (du 03/02/2014 au 08/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 3éme semaine: (du 10/02/2014 au 15/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, après avoir eu le problème de manipulation, nous avons pus prendre connaissance d'un certain montage qui s’avéra utile pour la conception de la carte/maquette.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_limiteur_de_courant_semaine_3.PNG|300px|thumb|center|Schéma limiteur de courant.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que ce montage se retrouve dans la partie &amp;quot;typical application&amp;quot; de la documentation technique du 7805.&lt;br /&gt;
&lt;br /&gt;
=== 4éme semaine: (du 17/02/2014 au 22/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
On souhaite pouvoir réaliser une communication unidirectionnel ou même transmettre un signal audio ce qui nous contraint à une bande passante minimal de 48kHz, on prendra 200kHz (Pour être bien au delà de la conditions du théorème de Shannon): le but serait donc de branchez par exemple une source audio quelconque puis de la transmettre à travers la maquette et de la recomposer en fin de chaine.&lt;br /&gt;
&lt;br /&gt;
Après édition rapide du schématique on en dégage qu'il nous faudra un minimum d'environ 50 entrées/sorties. Mais ceci ce nombre sera très probablement revue à la hausse lors de prochaine séance.&lt;br /&gt;
&lt;br /&gt;
Voici la carte que l'on utilisera dans la suite du projet:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_S3BOARD-top-400_semaine_4.gif|300px|thumb|center|Digilent Spartan 3.]]&lt;br /&gt;
&lt;br /&gt;
=== 5éme semaine: (du 03/03/2014 au 08/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lien vers le Design complet avec les librairies incluses (on remarquera qu'il serait judicieux d’installer toutes les librairies avant d’essayer d'ouvrir le schéma)&lt;br /&gt;
&lt;br /&gt;
A notez aussi que l'on trouvera des reliques de feuilles Excel permettant de trouver rapidement des ratios dans la série E12.&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_Design_pcb_plus_librairies_semaine_5_6.zip|Schéma + Bibliothèques.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.pdf|Schéma en PDF.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.png|Schéma au format A2.]]&lt;br /&gt;
&lt;br /&gt;
=== 6éme semaine: (du 10/03/2014 au 15/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 7éme semaine: (du 17/03/2014 au 22/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 8éme semaine: (du 24/03/2014 au 26/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 9éme semaine: (du 28/03/2014 au 03/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0061_1_r_2r_semaine_9.jpg|center|thumb|300px|Le réseau R-2R.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0062_1_4QAM_semaine_9.jpg|center|thumb|300px|4QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0066_1_16QAM_semaine_9.jpg|center|thumb|300px|16QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0069_1_64QAM_semaine_9.jpg|center|thumb|300px|64QAM.]]&lt;br /&gt;
&lt;br /&gt;
Pas de photos pour la constellation à 256 points, mais elle a été réalisée.&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du montage, malgré que la P.L.L., on a un signal d'erreur après filtrage :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Chaine 1: Vtune (commande du V.C.O.)/Chaine 2: &amp;quot;erreur&amp;quot; de commande]]&lt;br /&gt;
&lt;br /&gt;
Ce qui mets en valeur immédiatement deux problèmes majeurs:&lt;br /&gt;
&lt;br /&gt;
La chaine fonctionne sur le papier, mais lors de sa mise en pratique, il faut penser à mettre une tension d'offset et aussi réaliser une amplification de l'erreur pour avoir des grandeur de commande adapté au Vtune du V.C.O..&lt;br /&gt;
&lt;br /&gt;
On propose l'amélioration suivante (qui sera réalisé à la prochaine séance):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Proposition de voie d'amélioration.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que les valeurs des résistances et des capacité on était choisit pour permettre un fonctionnement correct des A.O. (Amplificateur Opérationnel), mais pas pour ce qui de l'asservissement de la boucle par manque de temps. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette, on a eu à démonter le montage à cause de contraintes concernant les mini-circuits (car utilisé en travaux pratiques).&lt;br /&gt;
&lt;br /&gt;
=== 10éme semaine: (du 07/04/2014 au 10/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
Spectres des signaux de la chaine de transmission:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0001_allure_spectre_reception_semaine_10.jpg|center|thumb|300px|Spectre en réception.]]&lt;br /&gt;
&lt;br /&gt;
Porteuse utilisé pour la modulation I/Q à environ 60MHz.&lt;br /&gt;
&lt;br /&gt;
P34_2013_2014_DSC_0001_allure_spectre_reception_semaine_10.jpg&lt;br /&gt;
&lt;br /&gt;
Porteuse utilisé pour le transport en fréquence à environ 810MHz:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0035_constellation_recupere_PLL_NV_semaine_10.jpg|center|thumb|300px|&amp;quot;Constellation&amp;quot; récupéré avec la PLL défectueuse (on souhaite se verrouillé sur la raie à 868MHz).]]&lt;br /&gt;
&lt;br /&gt;
Question en suspend: faudrai t'il utiliser un filtre passe bande incluant 868Mhz pour pouvoir se verrouillé sur cette fréquence ?&lt;br /&gt;
&lt;br /&gt;
On remarquera sur le fait que l'oscillateur du côté de la chaine d'émission à d'importante non linéarité (on peut observer à l'analyseur de spectre 3 à 4 raies aux fréquences multiples).&lt;br /&gt;
&lt;br /&gt;
Ce qui donne un diagramme de constellation plutôt mauvais si l'on fait le montage suivant:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_montage_non_linearite_vco_constellation_semaine_10.PNG|center|thumb|300px|Montage réalisée.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_sortie_montage_non_linearite_semaine_10.PNG|center|thumb|300px|La constellation 4QAM est attendu, on est loin du résultat attendu (Aucune photo n'a était réalisé d'ou le dessin).]]&lt;br /&gt;
&lt;br /&gt;
== Annexe B: Digilent Spartan 3 ==&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire fonctionner la carte Digilent Spartan 3: ===&lt;br /&gt;
&lt;br /&gt;
Ne connectez pas de connecteur JTAG pendant les installations. Redémarrez après chaque installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut savoir que le l'ISE Webpack 14.6 fonctionne avec la carte (n'utilisez pas la 14.7, elle ne supporte pas la génération spartan 3 !):&lt;br /&gt;
&lt;br /&gt;
Installez donc l'ISE WebPack 14.6 (ou antérieur à condition que celle-ci soit supérieur à la 7.1i (d'aprés leur documentation))&lt;br /&gt;
&lt;br /&gt;
(voir lien utile sur Xilinx)&lt;br /&gt;
&lt;br /&gt;
Une fois l'installation de l'ISE terminé, faites en sorte d'avoir celui que soit opérationnel (la licence est gratuite !).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installez la &amp;quot;library&amp;quot; ADEPT 2.3 voir le lien utile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après vous n'avez plus qu'a utilisez ISE Xilinx normalement et vous serez capable de reconnaitre la carte via la liaison JTAG, et de le programmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Liens utiles: ===&lt;br /&gt;
&lt;br /&gt;
Lien constructeur/vendeur (avec ressources utiles en bas de la page):&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?Prod=S3BOARD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien &amp;quot;Library&amp;quot; pour le câble USB digilent:&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,69&amp;amp;Prod=ADEPT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour l'ISE 14.6):&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/products/design-tools/ise-design-suite/index.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour les versions antérieures veuillez faire attention au système d'exploitation, votre architecture matérielle et le FPGA cible):&lt;br /&gt;
&lt;br /&gt;
(Les informations de compatibilité son sur la page suivante:) (mots clés: xilinx classic(s))&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/tools/classics.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream, et le charger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en &amp;quot;non&amp;quot;-volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream et l'utiliser pour générer un .mcs qui vous permettra d'inscrire le programme dans la mémoire (E?)PROM.&lt;br /&gt;
&lt;br /&gt;
On remarquera que la programmation en non-volatile est utile pour faire un remise à zéro et recharger le contenu de l'(E?)PROM, mais semble être sensible au débranchement de l'adaptateur d'alimentation de la carte.&lt;br /&gt;
&lt;br /&gt;
=== Exemple de programmation: ===&lt;br /&gt;
&lt;br /&gt;
Voir le lien digilent pour ceci dans cette annexe.&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11595</id>
		<title>Modem pour le numérique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11595"/>
				<updated>2014-04-13T20:54:10Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* Modulateur et démodulateur pour communications numériques */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Modulateur et démodulateur pour communications numériques =&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
=== Présentation générale du projet ===&lt;br /&gt;
&lt;br /&gt;
Dans le cadre des TPs d'électronique et de transmission RF, nous avons découvert qu'il existe plusieurs modes de modulation, pour transmettre un signal modulant.&lt;br /&gt;
&lt;br /&gt;
Celles vues en TP au S7 sont la modulation en amplitude, en fréquence, en phase, en BPSK et en QPSK.&lt;br /&gt;
&lt;br /&gt;
Or les modulations en phase, en fréquence et en amplitude étant celles les plus connues, la modulation en QAM (Modulation d'Amplitude en Quadrature) est quant à elle moins connue, mais tout aussi utilisées:&lt;br /&gt;
&lt;br /&gt;
-pour la TNT en 64 QAM (en France).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_64qam.jpg|300px|thumb|center|Exemple de constellation 64QAM.]]&lt;br /&gt;
&lt;br /&gt;
-pour le WiFi en 64-QAM ou 256-QAM (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Or ces deux dernières étant peu représentées au niveau des travaux pratiques, ce projet permettra de fournir un peu plus de pratique sur les modulations de type QAM (en diagramme I/Q) dans le domaine des radiofréquences (~800MHz).&lt;br /&gt;
&lt;br /&gt;
(Le nombre devant le QAM indique le nombre de points dans le diagramme I/Q qu'on appelle aussi constellation)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se réserve le droit de faire '''évoluer''' le cahier des charges a posteriori, si certaines contraintes étaient amenées à évoluer ou se préciser.&lt;br /&gt;
&lt;br /&gt;
=== Objectif et intérêt du projet ===&lt;br /&gt;
&lt;br /&gt;
Pour cela, on nous a fourni des modules commerciaux Mini-circuit pouvant travailler dans les radios-fréquences.&lt;br /&gt;
&lt;br /&gt;
Ceux-ci permettront de mettre en place une grande partie de la chaine de transmission (voir schéma de la chaine de transmission).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_modulation.PNG|300px|thumb|center|Modulation.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_demodulation.PNG|300px|thumb|center|Démodulation.]]&lt;br /&gt;
&lt;br /&gt;
On a tout d'abord à mettre en place une carte FPGA et/ou un dispositif permettant d'envoyer un flux de données numériques continuellement pour pouvoir visualiser le diagramme I/Q (mise en valeur du diagramme I/Q et voir même un diagramme un peu plus complexe que le BPSK ou le QPSK).&lt;br /&gt;
&lt;br /&gt;
Le canal de transmission qui sera un simple fil électrique, mais pourra devenir une antenne réceptrice et émettrice si le temps imparti le permet (mise en valeur du et mesure du Bit Error Rate qui sera bien sûr différent suivant le canal de transmission).&lt;br /&gt;
&lt;br /&gt;
Du côté réception ,après démodulation du signal, une remise en forme et une interprétation des données seront réalisées, celle-ci dépendra bien entendu de la provenance du flux de données (constater le succès ou l'échec d'un envoi de données).&lt;br /&gt;
&lt;br /&gt;
Enfin si le temps le permets on pourra mettre en une place un système de codage de l'information avec par exemple un codage redondant permettant de corrigé l'erreur (À définir, on pourra faire constater l'efficacité d'une méthode de codage au choix).&lt;br /&gt;
&lt;br /&gt;
=== Étapes/Déroulement du projet ===&lt;br /&gt;
&lt;br /&gt;
De même que pour le cahier des charges, il se peut que les étapes diffèrent plus ou moins, en fonction des disponibilités, matérielles et contraintes.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Caractérisation des blocs Mini-circuits et épluchage des documentations techniques====&lt;br /&gt;
Avant de les utiliser dans la chaine de transmission, nous avons à faire une caractérisation des blocs fournis:&lt;br /&gt;
&lt;br /&gt;
-la caractérisation du VCO.&lt;br /&gt;
&lt;br /&gt;
-l'étude des possibilités offerte par le modulateur (cela déterminera le nombre de points possible dans la constellation, ie savoir si l'on peut aller au-delà de la QPSK).&lt;br /&gt;
&lt;br /&gt;
-la caractérisation des mélangeurs (Mixer), leurs facteurs réels de multiplication.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Utilisation et exploitation des caractérisations ====&lt;br /&gt;
On pourra ensuite trouver les paramètres pour régler correctement dans notre chaine de transmission certains de nos sous-systèmes comme la boucle à verrouillage de phase.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Génération d'un flux des données numériques ====&lt;br /&gt;
Comme dit précédemment, l'idéal et d'avoir un flux de données numériques transmis en permanence.&lt;br /&gt;
Pour cela plusieurs solutions s'offre à nous, on pourra utiliser un montage générateur pseudo aléatoire (un circuit que l'on a fait l'année dernière en Conception de Circuit Électronique).&lt;br /&gt;
On pourra &amp;quot;émuler&amp;quot; ce montage avec un Arduino, ou bien même le faire au moyen de la Nanoboard.&lt;br /&gt;
On pourra aussi transmettre des chaines de caractère en continu.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Test de la chaine ====&lt;br /&gt;
Une fois les étapes précédentes réalisées, on pourra passer au test de la chaine de transmission. Il faudra vérifier le bon fonctionnement en aval, dedans (boucle à verrouillage de phase), et en amont de la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Première mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
Il est possible que la conception d'un dispositif soit nécessaire que ce soit pour les deux mesures du B.E.R..&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Antennes ====&lt;br /&gt;
Si toutes les étapes précédentes sont satisfaites, on pourra alors faire un canal de transmission plus intéressant, à savoir l'air.&lt;br /&gt;
Nous passerons alors à la conception des antennes, émettrice et réceptrice.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Deuxième mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Codage de l'information et correction d'erreur ====&lt;br /&gt;
En toute fin de ce projet, on pourra même mettre deux dispositifs en aval et en amont de la chaine de transmission.&lt;br /&gt;
On réalisera alors un codeur et un décodeur permettant de faire de la détection/correction d'erreur.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Mise en place d'outil de débogage (tout au long)====&lt;br /&gt;
La mise en place de simples outils de débogage et primordiale, ceux-ci permettront de vérifier le bon fonctionnement de la chaine.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Proposition d'un sujet de TP (tout au long) ====&lt;br /&gt;
Il se trouve que lors du déroulement du projet, on pourra être amené à se poser des questions au niveau des réglages de la chaine de transmission.&lt;br /&gt;
Or il est fort probable que les élèves qui travailleront sur ce TP pourront alors se poser les mêmes questions.&lt;br /&gt;
C'est pour cela qui sera judicieux de prendre soin de noter les problématiques rencontrées et de donner un certain fil de développement pour venir à bout de la problématique posée.&lt;br /&gt;
Ce qui reviendra à proposer des axes/questions sur les manipulations de cette maquette de TP.&lt;br /&gt;
&lt;br /&gt;
== Note valable pour toutes les semaines ==&lt;br /&gt;
&lt;br /&gt;
'''[[Si un point vous semble imprécis, veuillez vous reporter aux détails fournis en annexe.]]'''&lt;br /&gt;
&lt;br /&gt;
== 1éme semaine: (du 27/01/2014 au 01/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Séance du 05/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Pour bien comprendre les différentes choses à réaliser, on a refait les manipulations vues en TP. On a, pour cela utiliser la maquette didactique TIMS pour générer différent type de modulation:&lt;br /&gt;
&lt;br /&gt;
-la modulation en 4,8,16PSK (on obtient une constellation en forme de cercle).&lt;br /&gt;
&lt;br /&gt;
-La modulation en 4,8,16QAM (on obtient une constellation avec un carré, ou deux: de différentes tailles).&lt;br /&gt;
&lt;br /&gt;
On a très vite dégagé la nécessité de réaliser un montage générateur de tous les mots numériques possibles.&lt;br /&gt;
On a donc fait un programme sur arduino qui équivaut au générateur pseudo aléatoire.&lt;br /&gt;
Celui-ci est directement inspiré du montage que l'on a réalisé l'année dernière en conception de circuit électronique.&lt;br /&gt;
&lt;br /&gt;
Séance du 06/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Lors de cette séance on a exploré toutes les possibilités concernant la communication entre la maquette/carte, car cela pour avoir une influence non négligeable sur le choix de la carte F.P.G.A. et du design de la maquette.&lt;br /&gt;
&lt;br /&gt;
On a donc aussi fait des recherches concernant les possibilités de communications et les blocs I.P. (Intellectual Properties) permettant de programmer un F.P.G.A.&lt;br /&gt;
&lt;br /&gt;
Et enfin, on a eu une discussion avec un responsable technique pour ce qui de la C.E.M. (Compatibilité Electro-Magnétique)&lt;br /&gt;
&lt;br /&gt;
== 2éme semaine: (du 03/02/2014 au 08/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Réflexion sur les possibilités possibles et offertes par le sujet pour ce qui est des parties de communications entre la maquette en interne et de son environnement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_principe_carte_semaine_2.PNG|300px|thumb|center|Maquette en interne/externe.]]&lt;br /&gt;
&lt;br /&gt;
N'ayant jamais utilisé d'autre carte que la Nanoboard, on s'est attelé à faire des recherches sur la manière de procéder pour programmer une carte F.P.G.A., il se trouve que chaque carte de développement à ses propres manières pour être programmé.&lt;br /&gt;
&lt;br /&gt;
On a pris le soin de noter toutes les questions concernant le F.P.G.A. pour un intervenant industriel qui assura un cours la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
== 3éme semaine: (du 10/02/2014 au 15/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Ayant les oscillateurs commandables en tension, on a pu commencer à faire une manipulation avec les composants Mini-Circuit.&lt;br /&gt;
&lt;br /&gt;
Mais après un problème suite à une manipulation l'un des VCOs ne fonctionne plus.&lt;br /&gt;
&lt;br /&gt;
Ce qui nous amène à penser qu'il sera judicieux de prévoir une alimentation au niveau de la carte.&lt;br /&gt;
&lt;br /&gt;
Celle-ci devra être inférieure ou égale à la tension maximale d'alimentation du composant (ceux-ci étant très sensible).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Questions/Réponses:&lt;br /&gt;
&lt;br /&gt;
Comment fait-on pour programmer une carte F.P.G.A. est-ce que la programmation se fait &amp;quot;in situe&amp;quot; ? (in situe : c'est à dire sur la carte elle-même) &lt;br /&gt;
Oui, c'est ce qui est utilisé, via un câble JTAG.&lt;br /&gt;
&lt;br /&gt;
Est-ce possible faire une interface USB pour permettre à un ordinateur de communiquer avec la maquette/carte via un F.P.G.A. ? Oui.&lt;br /&gt;
&lt;br /&gt;
Est-ce que la gestion de l'interface Ethernet est envisageable ? Oui.&lt;br /&gt;
&lt;br /&gt;
Pour une communication en protocole UDP avec un ordinateur via une liaison Ethernet, est-ce qu'il y a d'autres façons que d'utiliser un &amp;quot;SoftCore&amp;quot; ?&lt;br /&gt;
&lt;br /&gt;
Oui, il existe aussi bien en Software, qu'en Hardware.&lt;br /&gt;
&lt;br /&gt;
== 4éme semaine: (du 17/02/2014 au 22/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a donc repris l'idée de la 2éme semaine.&lt;br /&gt;
&lt;br /&gt;
Après avoir mis en place un cahier des charges au niveau des qualités, bande passante minimale.&lt;br /&gt;
&lt;br /&gt;
Nous avons fait des recherches sur les composants à utiliser (i.e. CAN, CAN, ...)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous a permis après une édition rapide de schéma électrique (schematic) d'avoir une idée du nombre de pins dont nous aurons besoin sur une carte FPGA afin de réaliser le projet.&lt;br /&gt;
&lt;br /&gt;
Après prospection, il se trouve que nous nous dirigerions vers la carte Digilent Spartan 3, dont l'école était déjà en possession.&lt;br /&gt;
&lt;br /&gt;
Donc nous nous sommes attelés à faire des recherches et des essais sur cette carte et pour notamment trouver un moyen de la faire fonctionner.&lt;br /&gt;
&lt;br /&gt;
== 5éme semaine: (du 03/03/2014 au 08/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, après plusieurs heures de recherches et d'essai infructueux, on a fini par trouver les drivers pour le câble USB diligent.&lt;br /&gt;
&lt;br /&gt;
Et donc ainsi avoir un fonctionnement de la communication via le câble JTAG plus propice au fonctionnement de la carte.&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur une partie des composants et des dimensionnements pour certains d'entre eux (valeur de résistance,capacité...)&lt;br /&gt;
&lt;br /&gt;
Schématics: Édition de multiple bibliothèque pour Altium, intégrant à la fois schématics et leur empreinte PCB associée.&lt;br /&gt;
&lt;br /&gt;
(On a pu constater qu'une interface 3v3 5v n'est pas forcement nécessaire pour assurer le bon fonctionnement entre deux cartes avec des tensions d'alimentation différentes.)&lt;br /&gt;
&lt;br /&gt;
== 6éme semaine: (du 10/03/2014 au 15/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur l'ensemble des composants et des choix de régulateur et utilisation d'autre diode Zener.&lt;br /&gt;
&lt;br /&gt;
On trouvera le schéma intégral avec les bibliothèques nécessaires dans la semaine 5.&lt;br /&gt;
&lt;br /&gt;
Cette semaine a été dédiée à l'envoi de la commande des composants au sein du magasin de l'école et du fournisseur.&lt;br /&gt;
&lt;br /&gt;
Après envoi de la commande, il se trouve que le projet a changé d'objectif principal.&lt;br /&gt;
&lt;br /&gt;
Il est maintenant prioritaire de réaliser un code VHDL capable d'évaluer la vitesse de transmission numérique du côté récepteur.&lt;br /&gt;
&lt;br /&gt;
== 7éme semaine: (du 17/03/2014 au 22/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Pour cette semaine, on s'est concentré sur la réalisation d'un générateur pseudo aléatoire en interne au FPGA.&lt;br /&gt;
&lt;br /&gt;
On réalisera une échelle de résistance afin de réaliser une conversion numérique analogique afin de l'envoyer sur la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
Ce code de &amp;quot;base&amp;quot; nous permettra de réaliser un flux de données fictif pour obtenir toutes les combinaisons récupérant le résultat du bus.&lt;br /&gt;
&lt;br /&gt;
[[MédiaP34_2013_2014_gene_pseudo_19_03_2014_6_semaine_7.zip|Archive contenant le projet ISE Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_rtl_semaine_7.PNG|300px|thumb|center|extrait du schéma RTL, on peut y voir clairement les inférences de Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
Ce schéma a deux entrées et une sortie, une entrée d'initialisation, une horloge et une sortie pour la trame en pseudo aléatoire.&lt;br /&gt;
&lt;br /&gt;
On fera l'essai sur la carte lors de la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
== 8éme semaine: (du 24/03/2014 au 26/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Après le premier test, on pourrait penser que l'on récupère du bruit en sortie de la carte:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0024_1_probleme_d_overshoot_semaine_8.jpg|300px|thumb|center|Overshoot.]]&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir remédier à ce problème, on a fait une prédivision de l'horloge&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0037_1_div_freq_semaine_8.jpg|300px|thumb|center|Overshoot après division.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0039_1_div_freq_zoom_semaine_8.jpg|300px|thumb|center|Overshoot après division (Zoom).]]&lt;br /&gt;
&lt;br /&gt;
Archive contenant toutes les modifications:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_26_03_2014_2_semaine_8.zip|VHDL Semaine 8.]]&lt;br /&gt;
&lt;br /&gt;
On a trouvé un moyen de faire un CNA facilement, via une &amp;quot;échelle dite R-2R&amp;quot;. [[http://www.uchobby.com/index.php/2008/01/08/arduino-audio-dac-options/|Pour le réseau R 2R.]]&lt;br /&gt;
&lt;br /&gt;
Il faut encore modifier le VHDL pour pouvoir l'exploiter et ainsi générer une constellation.&lt;br /&gt;
&lt;br /&gt;
== 9éme semaine: (du 28/03/2014 au 03/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pris donc le soin de modifier le VHDL:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_31_03_2014_1_semaine_9.zip|VHDL semaine 9]]&lt;br /&gt;
&lt;br /&gt;
Ce VHDL à été mis à jour, avec deux entrées (initialisation et une horloge) et un bus de sortie (8 bits), avec les trames pseudoaléatoires.&lt;br /&gt;
&lt;br /&gt;
On envoie ces signaux sur deux C.N.A.s (4 bits chacun) pour générer deux signaux I et Q, on peut voir une constellation se dessiner en mode X-Y.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0072_1_Montage_entier_4qam_semaine_9.jpg|300px|thumb|center|Montage avec constellations 4QAM.]]&lt;br /&gt;
&lt;br /&gt;
D'autres constellations réalisées sont disponibles en annexe. On peut monter jusqu'à une constellation de 256 points (2^4*2^4).&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage complet de toute la chaine de transmission. Il se trouve que la Boucle à Verrouillage de Phase (ou appellée PLL, Phase Loop Locker) ne se verrouille pas sur la porteuse du signal que l'on souhaite récupéré, de ce fait on ne peut pas récupérer les signaux I et Q.&lt;br /&gt;
&lt;br /&gt;
== 10éme semaine: (du 07/04/2014 au 10/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage que l'on évoquait en semaine 9:&lt;br /&gt;
&lt;br /&gt;
P34_2013_2014_DSC_0027_montage_realisee_semaine_10.jpg&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0027_montage_realisee_semaine_10.jpg|center|thumb|300px|Montage pour améliorer la PLL.]]&lt;br /&gt;
&lt;br /&gt;
Il se trouve qu’après un réglage précis de la tension d'offset permettant d'être un proche de la fréquence à capturer on obtient:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0025_PLL_non_verrouillage_semaine_10.jpg|center|thumb|300px|Signaux I/Q après ajout du montage.]]&lt;br /&gt;
&lt;br /&gt;
= Annexes =&lt;br /&gt;
&lt;br /&gt;
== Annexe A: Détails techniques des semaines ==&lt;br /&gt;
&lt;br /&gt;
=== 1éme semaine: (du 27/01/2014 au 01/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Après on a réfléchi sur la potentielle conception/utilisation d'une carte FPGA.&lt;br /&gt;
Il sera judicieux de ne pas se précipiter sur le schéma et la conception/utilisation d'une carte FPGA, sans avoir, au préalable fait le VHDL et le testez avec un banc de test virtuel.&lt;br /&gt;
L'intérêt et de mettre en valeur la nécessité ou non de certains signaux pour le schéma de la carte.&lt;br /&gt;
On va mettre en oeuvre les connaissances acquises au S7 en VHDL (en TP de Circuit Numérique Programmble).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est de l'Arduino, on a répondu aux interrogations suivantes (certaines de ces questions paraissent triviales, mais on préfère éviter les surprises):&lt;br /&gt;
&lt;br /&gt;
Quelle est la vitesse maximale de la communication série de l'Arduino ?&lt;br /&gt;
-115200bauds&lt;br /&gt;
&lt;br /&gt;
Est-ce que, un programme de type &amp;quot;Analog Write&amp;quot; est-il une vraie sortie analogique ?&lt;br /&gt;
&lt;br /&gt;
-Non, c'est juste une PWM. Elle sera exploitable pour faire les signales I/Q mais très contraignantes, car il faudra filtré le signal, et ce sera beaucoup trop lent (du au fait que la modulation est faite au alentour de 850Mhz), le FPGA sera un passage obligé cela ouvrira les portes d'un plus grand débit.&lt;br /&gt;
&lt;br /&gt;
==== Manipulation réalisée sur la maquette TIMS : ====&lt;br /&gt;
&lt;br /&gt;
On a fait un des montages présenté dans l'ouvrage &amp;quot;Volume D1 Fundamental Digital Experiments&amp;quot; dans le but de visualiser l’objectif à atteindre.&lt;br /&gt;
&lt;br /&gt;
On obtient la constellation suivante (16QAM):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_tims_semaine_1.PNG|300px|thumb|center|Constellation visualisé en mode X-Y.]]&lt;br /&gt;
&lt;br /&gt;
Ce qui correspond à deux signaux en visualisation temporelle de cette forme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_temporelle_tims_semaine_1.PNG|300px|thumb|center|Signaux I et Q. (Image très flouté, à remplacer)]]&lt;br /&gt;
&lt;br /&gt;
On pourra facilement obtenir le même résultat en générant un bus de trame pseudo aléatoire et en l'injectant dans un C.N.A. (Conversion Numérique Analogique)&lt;br /&gt;
&lt;br /&gt;
==== Code Arduino réalisé: ====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schema_electronique_generateur_pseudo_aleatoire.png|300px|thumb|center|Schéma électronique du générateur pseudo aléatoire.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_chrono_simule.PNG|300px|thumb|center|Résultat de la simulation du générateur pseudo aléatoire (on a eu la même chose en pratique).]]&lt;br /&gt;
&lt;br /&gt;
[code]&lt;br /&gt;
/*A peut être supprimer*/&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;		&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void output_init(void){&lt;br /&gt;
  DDRB |= 0x02; // PIN 8,9 sont les deux sorties.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(void){&lt;br /&gt;
  int r1=1,r2=0,r3=0,r4=0,r5=0,retard=0;&lt;br /&gt;
  PORTB=0x00;&lt;br /&gt;
  while(1)&lt;br /&gt;
    {&lt;br /&gt;
      r5=r4;//chaque affectation représente une recopie de la bascule sur le &amp;quot;front montant&amp;quot;, ici c'est simplement l’exécution du code.&lt;br /&gt;
      r4=r3;&lt;br /&gt;
      r3=r2;&lt;br /&gt;
      r2=r1;&lt;br /&gt;
      r1=r4^r5;&lt;br /&gt;
      PORTB=0x01*r1+0x02*retard;//écriture des signaux&lt;br /&gt;
      _delay_ms(10);//le &amp;quot;front montant&amp;quot;, ce qui permet de faire un genre d'horloge.&lt;br /&gt;
      retard=r5;//déphasage du signal&lt;br /&gt;
    }&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
[/code]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_arduino.jpg|300px|thumb|center|Resultat avec le generateur pseudo aléatoire &amp;quot;émuler&amp;quot; avec l'Arduino.]]&lt;br /&gt;
&lt;br /&gt;
Comparaison carte réelle/résultat Arduino:&lt;br /&gt;
&lt;br /&gt;
C'était exactement les signaux attendus (même s'il y un décalage a par rapport à l'original).&lt;br /&gt;
&lt;br /&gt;
On aura bien pour une QPSK (4PSK) tous les couples (ie 00,01,11 et 10).&lt;br /&gt;
&lt;br /&gt;
À propos de l'arduino, on pourra envisager une amélioration pour générer une séquence plus longue:&lt;br /&gt;
&lt;br /&gt;
-il faudra simplement utiliser un tableau d'entier.&lt;br /&gt;
&lt;br /&gt;
-paramétrer sa taille avec un N par exemple.&lt;br /&gt;
&lt;br /&gt;
-N correspondra à la taille de séquence de longueur 2^N.&lt;br /&gt;
&lt;br /&gt;
Voir la section &amp;quot;Code Arduino réalisé&amp;quot; en annexe B dans la semaine correspondante.&lt;br /&gt;
&lt;br /&gt;
==== Possibilités de communications: ====&lt;br /&gt;
&lt;br /&gt;
Exploration des possibilités de communication entre le PC et la carte en amont:&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; Ethernet: =====&lt;br /&gt;
&lt;br /&gt;
*+ Vitesse de transmission (~10M-100M-G)bauds&lt;br /&gt;
&lt;br /&gt;
*- La gestion du flux de données doit être faite par un microcontrôleur (celui-ci pourra être implémenté un bloc I.P. à l'intérieur du FPGA)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; - Haute consommation de CLB du FPGA.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; SPI (communication série): =====&lt;br /&gt;
&lt;br /&gt;
*- Vitesse de transmission&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Arduino capable de communiquer jusqu'a 115200 bauds&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; D'après certaines discussions on pourrait « pousser » au-delà : voir le lien des sujets Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; I2C : =====&lt;br /&gt;
&lt;br /&gt;
Communication abandonné, ce n'est pas une priorité.&lt;br /&gt;
&lt;br /&gt;
==== À propos des blocs I.P.: ====&lt;br /&gt;
&lt;br /&gt;
En consultant les ordinateurs et en s'appuyant des TPs de CNP, on constate que les blocs suivants existent:&lt;br /&gt;
&lt;br /&gt;
- Xilinx Microblaze/Xilinx Power PC (&amp;quot;µP FPGA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Est-ce possible d'utiliser ces blocs I.P. pour programmer un FPGA sur une carte autre que la Nanoboard ? Comment ?&lt;br /&gt;
&lt;br /&gt;
- EMACx (Ethernet Media Acess Control)(:lien physique entre processeurs et &amp;quot;standart Physical Layer device IEEE802.3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===== Conception de la carte: =====&lt;br /&gt;
&lt;br /&gt;
L'idéal est de se documenter sur la Compatibilité électromagnétique.&lt;br /&gt;
&lt;br /&gt;
=== 2éme semaine: (du 03/02/2014 au 08/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 3éme semaine: (du 10/02/2014 au 15/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, après avoir eu le problème de manipulation, nous avons pus prendre connaissance d'un certain montage qui s’avéra utile pour la conception de la carte/maquette.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_limiteur_de_courant_semaine_3.PNG|300px|thumb|center|Schéma limiteur de courant.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que ce montage se retrouve dans la partie &amp;quot;typical application&amp;quot; de la documentation technique du 7805.&lt;br /&gt;
&lt;br /&gt;
=== 4éme semaine: (du 17/02/2014 au 22/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
On souhaite pouvoir réaliser une communication unidirectionnel ou même transmettre un signal audio ce qui nous contraint à une bande passante minimal de 48kHz, on prendra 200kHz (Pour être bien au delà de la conditions du théorème de Shannon): le but serait donc de branchez par exemple une source audio quelconque puis de la transmettre à travers la maquette et de la recomposer en fin de chaine.&lt;br /&gt;
&lt;br /&gt;
Après édition rapide du schématique on en dégage qu'il nous faudra un minimum d'environ 50 entrées/sorties. Mais ceci ce nombre sera très probablement revue à la hausse lors de prochaine séance.&lt;br /&gt;
&lt;br /&gt;
Voici la carte que l'on utilisera dans la suite du projet:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_S3BOARD-top-400_semaine_4.gif|300px|thumb|center|Digilent Spartan 3.]]&lt;br /&gt;
&lt;br /&gt;
=== 5éme semaine: (du 03/03/2014 au 08/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lien vers le Design complet avec les librairies incluses (on remarquera qu'il serait judicieux d’installer toutes les librairies avant d’essayer d'ouvrir le schéma)&lt;br /&gt;
&lt;br /&gt;
A notez aussi que l'on trouvera des reliques de feuilles Excel permettant de trouver rapidement des ratios dans la série E12.&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_Design_pcb_plus_librairies_semaine_5_6.zip|Schéma + Bibliothèques.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.pdf|Schéma en PDF.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.png|Schéma au format A2.]]&lt;br /&gt;
&lt;br /&gt;
=== 6éme semaine: (du 10/03/2014 au 15/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 7éme semaine: (du 17/03/2014 au 22/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 8éme semaine: (du 24/03/2014 au 26/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 9éme semaine: (du 28/03/2014 au 03/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0061_1_r_2r_semaine_9.jpg|center|thumb|300px|Le réseau R-2R.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0062_1_4QAM_semaine_9.jpg|center|thumb|300px|4QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0066_1_16QAM_semaine_9.jpg|center|thumb|300px|16QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0069_1_64QAM_semaine_9.jpg|center|thumb|300px|64QAM.]]&lt;br /&gt;
&lt;br /&gt;
Pas de photos pour la constellation à 256 points, mais elle a été réalisée.&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du montage, malgré que la P.L.L., on a un signal d'erreur après filtrage :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Chaine 1: Vtune (commande du V.C.O.)/Chaine 2: &amp;quot;erreur&amp;quot; de commande]]&lt;br /&gt;
&lt;br /&gt;
Ce qui mets en valeur immédiatement deux problèmes majeurs:&lt;br /&gt;
&lt;br /&gt;
La chaine fonctionne sur le papier, mais lors de sa mise en pratique, il faut penser à mettre une tension d'offset et aussi réaliser une amplification de l'erreur pour avoir des grandeur de commande adapté au Vtune du V.C.O..&lt;br /&gt;
&lt;br /&gt;
On propose l'amélioration suivante (qui sera réalisé à la prochaine séance):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Proposition de voie d'amélioration.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que les valeurs des résistances et des capacité on était choisit pour permettre un fonctionnement correct des A.O. (Amplificateur Opérationnel), mais pas pour ce qui de l'asservissement de la boucle par manque de temps. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette, on a eu à démonter le montage à cause de contraintes concernant les mini-circuits (car utilisé en travaux pratiques).&lt;br /&gt;
&lt;br /&gt;
=== 10éme semaine: (du 07/04/2014 au 10/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
Spectres des signaux de la chaine de transmission:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0001_allure_spectre_reception_semaine_10.jpg|center|thumb|300px|Spectre en réception.]]&lt;br /&gt;
&lt;br /&gt;
Porteuse utilisé pour la modulation I/Q à environ 60MHz.&lt;br /&gt;
&lt;br /&gt;
P34_2013_2014_DSC_0001_allure_spectre_reception_semaine_10.jpg&lt;br /&gt;
&lt;br /&gt;
Porteuse utilisé pour le transport en fréquence à environ 810MHz:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0035_constellation_recupere_PLL_NV_semaine_10.jpg|center|thumb|300px|&amp;quot;Constellation&amp;quot; récupéré avec la PLL défectueuse (on souhaite se verrouillé sur la raie à 868MHz).]]&lt;br /&gt;
&lt;br /&gt;
Question en suspend: faudrai t'il utiliser un filtre passe bande incluant 868Mhz pour pouvoir se verrouillé sur cette fréquence ?&lt;br /&gt;
&lt;br /&gt;
On remarquera sur le fait que l'oscillateur du côté de la chaine d'émission à d'importante non linéarité (on peut observer à l'analyseur de spectre 3 à 4 raies aux fréquences multiples).&lt;br /&gt;
&lt;br /&gt;
Ce qui donne un diagramme de constellation plutôt mauvais si l'on fait le montage suivant:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_montage_non_linearite_vco_constellation_semaine_10.PNG|center|thumb|300px|Montage réalisée.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_sortie_montage_non_linearite_semaine_10.PNG|center|thumb|300px|La constellation 4QAM est attendu, on est loin du résultat attendu (Aucune photo n'a était réalisé d'ou le dessin).]]&lt;br /&gt;
&lt;br /&gt;
== Annexe B: Digilent Spartan 3 ==&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire fonctionner la carte Digilent Spartan 3: ===&lt;br /&gt;
&lt;br /&gt;
Ne connectez pas de connecteur JTAG pendant les installations. Redémarrez après chaque installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut savoir que le l'ISE Webpack 14.6 fonctionne avec la carte (n'utilisez pas la 14.7, elle ne supporte pas la génération spartan 3 !):&lt;br /&gt;
&lt;br /&gt;
Installez donc l'ISE WebPack 14.6 (ou antérieur à condition que celle-ci soit supérieur à la 7.1i (d'aprés leur documentation))&lt;br /&gt;
&lt;br /&gt;
(voir lien utile sur Xilinx)&lt;br /&gt;
&lt;br /&gt;
Une fois l'installation de l'ISE terminé, faites en sorte d'avoir celui que soit opérationnel (la licence est gratuite !).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installez la &amp;quot;library&amp;quot; ADEPT 2.3 voir le lien utile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après vous n'avez plus qu'a utilisez ISE Xilinx normalement et vous serez capable de reconnaitre la carte via la liaison JTAG, et de le programmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Liens utiles: ===&lt;br /&gt;
&lt;br /&gt;
Lien constructeur/vendeur (avec ressources utiles en bas de la page):&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?Prod=S3BOARD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien &amp;quot;Library&amp;quot; pour le câble USB digilent:&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,69&amp;amp;Prod=ADEPT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour l'ISE 14.6):&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/products/design-tools/ise-design-suite/index.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour les versions antérieures veuillez faire attention au système d'exploitation, votre architecture matérielle et le FPGA cible):&lt;br /&gt;
&lt;br /&gt;
(Les informations de compatibilité son sur la page suivante:) (mots clés: xilinx classic(s))&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/tools/classics.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream, et le charger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en &amp;quot;non&amp;quot;-volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream et l'utiliser pour générer un .mcs qui vous permettra d'inscrire le programme dans la mémoire (E?)PROM.&lt;br /&gt;
&lt;br /&gt;
On remarquera que la programmation en non-volatile est utile pour faire un remise à zéro et recharger le contenu de l'(E?)PROM, mais semble être sensible au débranchement de l'adaptateur d'alimentation de la carte.&lt;br /&gt;
&lt;br /&gt;
=== Exemple de programmation: ===&lt;br /&gt;
&lt;br /&gt;
Voir le lien digilent pour ceci dans cette annexe.&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11594</id>
		<title>Modem pour le numérique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11594"/>
				<updated>2014-04-13T20:44:47Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* 10éme semaine: (rédaction en cours) (du 07/04/2014 au 10/04/2014) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Modulateur et démodulateur pour communications numériques =&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
=== Présentation générale du projet ===&lt;br /&gt;
&lt;br /&gt;
Dans le cadre des TPs d'électronique et de transmission RF, nous avons découvert qu'il existe plusieurs modes de modulation, pour transmettre un signal modulant.&lt;br /&gt;
&lt;br /&gt;
Celles vues en TP au S7 sont la modulation en amplitude, en fréquence, en phase, en BPSK et en QPSK.&lt;br /&gt;
&lt;br /&gt;
Or les modulations en phase, en fréquence et en amplitude étant celles les plus connues, la modulation en QAM (Modulation d'Amplitude en Quadrature) est quant à elle moins connue, mais tout aussi utilisées:&lt;br /&gt;
&lt;br /&gt;
-pour la TNT en 64 QAM (en France).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_64qam.jpg|300px|thumb|center|Exemple de constellation 64QAM.]]&lt;br /&gt;
&lt;br /&gt;
-pour le WiFi en 64-QAM ou 256-QAM (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Or ces deux dernières étant peu représentées au niveau des travaux pratiques, ce projet permettra de fournir un peu plus de pratique sur les modulations de type QAM (en diagramme I/Q) dans le domaine des radiofréquences (~800MHz).&lt;br /&gt;
&lt;br /&gt;
(Le nombre devant le QAM indique le nombre de points dans le diagramme I/Q qu'on appelle aussi constellation)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se réserve le droit de faire '''évoluer''' le cahier des charges a posteriori, si certaines contraintes étaient amenées à évoluer ou se préciser.&lt;br /&gt;
&lt;br /&gt;
=== Objectif et intérêt du projet ===&lt;br /&gt;
&lt;br /&gt;
Pour cela, on nous a fourni des modules commerciaux Mini-circuit pouvant travailler dans les radios-fréquences.&lt;br /&gt;
&lt;br /&gt;
Ceux-ci permettront de mettre en place une grande partie de la chaine de transmission (voir schéma de la chaine de transmission).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_modulation.PNG|300px|thumb|center|Modulation.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_demodulation.PNG|300px|thumb|center|Demodulation.]]&lt;br /&gt;
&lt;br /&gt;
On a tout d'abord à mettre en place une carte FPGA et/ou un dispositif permettant d'envoyer un flux de données numériques continuellement pour pouvoir visualiser le diagramme I/Q (mise en valeur du diagramme I/Q et voir même un diagramme un peu plus complexe que le BPSK ou le QPSK).&lt;br /&gt;
&lt;br /&gt;
Le canal de transmission qui sera un simple fil électrique, mais pourra devenir une antenne réceptrice et émettrice si le temps imparti le permet (mise en valeur du et mesure du Bit Error Rate qui sera bien sûr différent suivant le canal de transmission).&lt;br /&gt;
&lt;br /&gt;
Du côté réception ,après démodulation du signal, une remise en forme et une interprétation des données seront réalisées, celle-ci dépendra bien entendu de la provenance du flux de données (constater le succès ou l'échec d'un envoi de données).&lt;br /&gt;
&lt;br /&gt;
Enfin si le temps le permets on pourra mettre en une place un système de codage de l'information avec par exemple un codage redondant permettant de corrigé l'erreur (À définir, on pourra faire constater l'efficacité d'une méthode de codage au choix).&lt;br /&gt;
&lt;br /&gt;
=== Étapes/Déroulement du projet ===&lt;br /&gt;
&lt;br /&gt;
De même que pour le cahier des charges, il se peut que les étapes diffèrent plus ou moins, en fonction des disponibilités, matérielles et contraintes.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Caractérisation des blocs Mini-circuits et épluchage des documentations techniques====&lt;br /&gt;
Avant de les utiliser dans la chaine de transmission, nous avons à faire une caractérisation des blocs fournis:&lt;br /&gt;
&lt;br /&gt;
-la caractérisation du VCO.&lt;br /&gt;
&lt;br /&gt;
-l'étude des possibilités offerte par le modulateur (cela déterminera le nombre de points possible dans la constellation, ie savoir si l'on peut aller au-delà de la QPSK).&lt;br /&gt;
&lt;br /&gt;
-la caractérisation des mélangeurs (Mixer), leurs facteurs réels de multiplication.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Utilisation et exploitation des caractérisations ====&lt;br /&gt;
On pourra ensuite trouver les paramètres pour régler correctement dans notre chaine de transmission certains de nos sous-systèmes comme la boucle à verrouillage de phase.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Génération d'un flux des données numériques ====&lt;br /&gt;
Comme dit précédemment, l'idéal et d'avoir un flux de données numériques transmis en permanence.&lt;br /&gt;
Pour cela plusieurs solutions s'offre à nous, on pourra utiliser un montage générateur pseudo aléatoire (un circuit que l'on a fait l'année dernière en Conception de Circuit Électronique).&lt;br /&gt;
On pourra &amp;quot;émuler&amp;quot; ce montage avec un Arduino, ou bien même le faire au moyen de la Nanoboard.&lt;br /&gt;
On pourra aussi transmettre des chaines de caractère en continu.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Test de la chaine ====&lt;br /&gt;
Une fois les étapes précédentes réalisées, on pourra passer au test de la chaine de transmission. Il faudra vérifier le bon fonctionnement en aval, dedans (boucle a verrouillage de phase), et en amont de la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Première mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
Il est possible que la conception d'un dispositif soit nécessaire que ce soit pour les deux mesures du B.E.R..&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Antennes ====&lt;br /&gt;
Si toutes les étapes précédentes sont satisfaites, on pourra alors faire un canal de transmission plus intéressant, à savoir l'air.&lt;br /&gt;
Nous passerons alors à la conception des antennes, émettrice et réceptrice.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Deuxième mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Codage de l'information et correction d'erreur ====&lt;br /&gt;
En toute fin de ce projet, on pourra même mettre deux dispositifs en aval et en amont de la chaine de transmission.&lt;br /&gt;
On réalisera alors un codeur et un décodeur permettant de faire de la détection/correction d'erreur.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Mise en place d'outil de débogage (tout au long)====&lt;br /&gt;
La mise en place de simples outils de débogage et primordiale, ceux-ci permettront de vérifier le bon fonctionnement de la chaine.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Proposition d'un sujet de TP (tout au long) ====&lt;br /&gt;
Il se trouve que lors du déroulement du projet, on pourra être amené à se poser des questions au niveau des réglages de la chaine de transmission.&lt;br /&gt;
Or il est fort probable que les élèves qui travailleront sur ce TP pourront alors se poser les mêmes questions.&lt;br /&gt;
C'est pour cela qui sera judicieux de prendre soin de noter les problématiques rencontrées et de donner un certain fil de développement pour venir à bout de la problématique posée.&lt;br /&gt;
Ce qui reviendra à proposer des axes/questions sur les manipulations de cette maquette de TP.&lt;br /&gt;
&lt;br /&gt;
== Note valable pour toutes les semaines ==&lt;br /&gt;
&lt;br /&gt;
'''[[Si un point vous semble imprécis, veuillez vous reportez aux détails fournit en annexe.]]'''&lt;br /&gt;
&lt;br /&gt;
== 1éme semaine: (du 27/01/2014 au 01/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Séance du 05/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Pour bien comprendre les différentes choses à réaliser, on a refait les manipulations vues en TP. On a, pour cela utiliser la maquette didactique TIMS pour générer différent type de modulation:&lt;br /&gt;
&lt;br /&gt;
-la modulation en 4,8,16PSK (on obtient une constellation en forme de cercle).&lt;br /&gt;
&lt;br /&gt;
-La modulation en 4,8,16QAM (on obtient une constellation avec un carré, ou deux: de différentes tailles).&lt;br /&gt;
&lt;br /&gt;
On a très vite dégagé la nécessité de réaliser un montage générateur de tous les mots numériques possibles.&lt;br /&gt;
On a donc fait un programme sur arduino qui équivaut au générateur pseudo aléatoire.&lt;br /&gt;
Celui-ci est directement inspiré du montage que l'on a réalisé l'année dernière en conception de circuit électronique.&lt;br /&gt;
&lt;br /&gt;
Séance du 06/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Lors de cette séance on a exploré toute les possibilités concernant la communication entre la maquette/carte car cela pour avoir une influecnce non négligeable sur le choix de la carte F.P.G.A. et du design de la maquette.&lt;br /&gt;
&lt;br /&gt;
On a donc aussi fait des recherches concernant les possibilités de communications et les bloc I.P. (Intellectual Properties) permettant de programmer un F.P.G.A.&lt;br /&gt;
&lt;br /&gt;
Et enfin, on a eu une discussion avec un responsable technique pour ce qui de la C.E.M. (Compatibilité Electro-Magnétique)&lt;br /&gt;
&lt;br /&gt;
== 2éme semaine: (du 03/02/2014 au 08/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Réflexion sur les possibilités possibles et offertes par le sujet pour ce qui est des parties de communications entre la maquette en interne et de son environnement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_principe_carte_semaine_2.PNG|300px|thumb|center|Maquette en interne/externe.]]&lt;br /&gt;
&lt;br /&gt;
N'ayant jamais utilisé d'autre carte que la Nanoboard, on s'est attelé à faire des recherches sur la manière de procéder pour programmer une carte F.P.G.A., il se trouve que chaque carte de développement à ses propes manières pour être programmé.&lt;br /&gt;
&lt;br /&gt;
On a pris le soin de notez toutes les questions concernant le F.P.G.A. pour un intervenant industrielle qui assura un cours la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
== 3éme semaine: (du 10/02/2014 au 15/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Ayant les oscillateurs commandables en tension, on a pu commencer à faire une manipulation avec les composants Mini Circuit.&lt;br /&gt;
&lt;br /&gt;
Mais après un problème suite à une manipulation l'un des VCOs ne fonctionne plus.&lt;br /&gt;
&lt;br /&gt;
Ce qui nous amène à penser qu'il sera judicieux de prévoir une alimentation au niveau de la carte.&lt;br /&gt;
&lt;br /&gt;
Celle-ci devra être inférieure ou égale à la tension maximale d'alimentation du composant (ceux-ci étant très sensible).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Questions/Réponses:&lt;br /&gt;
&lt;br /&gt;
Comment fait-on pour programmer une carte F.P.G.A. est-ce que la programmation se fait &amp;quot;in situe&amp;quot; ? (in situe : c'est à dire sur la carte elle même) &lt;br /&gt;
Oui, c'est ce qui est utilisé, via une câble JTAG.&lt;br /&gt;
&lt;br /&gt;
Est-ce possible faire une interface USB pour permettre à un ordinateur de communiquer avec la maquette/carte via un F.P.G.A. ? Oui.&lt;br /&gt;
&lt;br /&gt;
Est-ce que la gestion de l'interface Ethernet est envisageable ? Oui.&lt;br /&gt;
&lt;br /&gt;
Pour une communication en protocole UDP avec un ordinateur via une liaison Ethernet, est-ce qu'il y a d'autre façon que d'utiliser un Soft Core ?&lt;br /&gt;
&lt;br /&gt;
Oui, il existe aussi bien en Software, qu'en Hardware.&lt;br /&gt;
&lt;br /&gt;
== 4éme semaine: (du 17/02/2014 au 22/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a donc repris l'idée de la 2éme semaine.&lt;br /&gt;
&lt;br /&gt;
Après avoir mis en place un cahier des charges au niveau des qualités, bande passante minimale.&lt;br /&gt;
&lt;br /&gt;
Nous avons fait des recherches sur les composants à utiliser (ie CAN, CAN, ...)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous a permis après une édition rapide de schéma électrique (schematic) d'avoir une idée du nombre de pins dont nous aurons besoin sur une carte FPGA afin de réaliser le projet.&lt;br /&gt;
&lt;br /&gt;
Après prospection, il se trouve que nous nous dirigerions vers la carte Digilent Spartan 3, dont l'école était déjà en possession.&lt;br /&gt;
&lt;br /&gt;
Donc nous nous sommes attelés à faire des recherches et des essais sur cette carte et pour notamment trouver un moyen de la faire fonctionner.&lt;br /&gt;
&lt;br /&gt;
== 5éme semaine: (du 03/03/2014 au 08/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, après plusieurs heures de recherches et d'essai infructueux, on a fini par trouver les drivers pour le câble USB diligent.&lt;br /&gt;
&lt;br /&gt;
Et donc ainsi avoir un fonctionnement de la communication via le câble JTAG plus propice au fonctionnement de la carte.&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur une partie des composants et des dimensionnements pour certains d'entre eux (valeur de résistance,capacité...)&lt;br /&gt;
&lt;br /&gt;
Schématics: Édition de multiple bibliothèque pour Altium, intégrant à la fois schématics et leur empreinte PCB associés.&lt;br /&gt;
&lt;br /&gt;
(On a pu constater qu'un interface 3v3 5v n'est pas forcement nécessaire pour assurer le bon fonctionnement entre deux cartes avec des tensions d'alimentation différentes.)&lt;br /&gt;
&lt;br /&gt;
== 6éme semaine: (du 10/03/2014 au 15/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur l'ensemble des composants et des choix de régulateur et utilisation d'autre diode Zener.&lt;br /&gt;
&lt;br /&gt;
On trouvera le schéma intégrale avec les bibliothèques nécessaires dans la semaine 5.&lt;br /&gt;
&lt;br /&gt;
Cette semaine à été dédié à l'envoie de la commande des composants au sein du magasin de l'école et du fournisseur.&lt;br /&gt;
&lt;br /&gt;
Après envoi de la commande, il se trouve que le projet a changé d'objectif principal.&lt;br /&gt;
&lt;br /&gt;
Il est maintenant prioritaire de réaliser un code VHDL capable d'évaluer la vitesse de transmission numérique du côté récepteur.&lt;br /&gt;
&lt;br /&gt;
== 7éme semaine: (du 17/03/2014 au 22/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Pour cette semaine, on s'est concentré sur la réalisation d'un générateur pseudo aléatoire en interne au FPGA.&lt;br /&gt;
&lt;br /&gt;
On réalisera une échelle de résistance afin de réaliser une conversion numérique analogique afin de l'envoyer sur la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
Ce code de &amp;quot;base&amp;quot; nous permettra de réaliser un flux de données fictif pour obtenir toutes les combinaisons récupérant le résultat du bus.&lt;br /&gt;
&lt;br /&gt;
[[MédiaP34_2013_2014_gene_pseudo_19_03_2014_6_semaine_7.zip|Archive contenant le projet ISE Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_rtl_semaine_7.PNG|300px|thumb|center|extrait du schéma RTL, on peut y voir clairement les inférences de Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
Ce schéma a deux entrées et une sortie, une entrée d'initialisation, une horloge et une sortie pour la trame en pseudo aléatoire.&lt;br /&gt;
&lt;br /&gt;
On fera l'essaie sur la carte lors de la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
== 8éme semaine: (du 24/03/2014 au 26/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Aprés le premier test, on pourrait penser que l'on récupère du bruit en sortie de la carte:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0024_1_probleme_d_overshoot_semaine_8.jpg|300px|thumb|center|Overshoot.]]&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir remédier à ce problème on a fait une pré-division de l'horloge&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0037_1_div_freq_semaine_8.jpg|300px|thumb|center|Overshoot après division.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0039_1_div_freq_zoom_semaine_8.jpg|300px|thumb|center|Overshoot après division (Zoom).]]&lt;br /&gt;
&lt;br /&gt;
Archive contenant toutes les modifications:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_26_03_2014_2_semaine_8.zip|VHDL Semaine 8.]]&lt;br /&gt;
&lt;br /&gt;
On a trouvé un moyen de faire un CNA facilement, via une &amp;quot;échelle dit R-2R&amp;quot;. [[http://www.uchobby.com/index.php/2008/01/08/arduino-audio-dac-options/|Pour le réseau R 2R.]]&lt;br /&gt;
&lt;br /&gt;
Il faut encore modifier le VHDL pour pouvoir l'exploiter et ainsi générer une constellation.&lt;br /&gt;
&lt;br /&gt;
== 9éme semaine: (du 28/03/2014 au 03/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pris donc le soin de modifier le VHDL:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_31_03_2014_1_semaine_9.zip|VHDL semaine 9]]&lt;br /&gt;
&lt;br /&gt;
Ce VHDL à été mis à jour, avec deux entrées (initialisation et une horloge) et un bus de sortie (8 bits), avec les trames pseudo-aléatoire.&lt;br /&gt;
&lt;br /&gt;
On envoie ces signaux sur deux C.N.A.s (4 bits chacun) pour générer deux signaux I et Q, on peut voir une constellation se dessiner en mode X-Y.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0072_1_Montage_entier_4qam_semaine_9.jpg|300px|thumb|center|Montage avec constellations 4QAM.]]&lt;br /&gt;
&lt;br /&gt;
D'autre constellations réalisées sont disponibles en annexe. On peut monter jusqu'à une constellation de 256 points (2^4*2^4).&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage complet de toute la chaine de transmission. Il se trouve que la Boucle à Verrouillage de Phase (ou appellée PLL, Phase Loop Locker) ne se verrouille pas sur la porteuse du signal que l'on souhaite récupéré, de ce fait on ne peut pas récupérer les signaux I et Q.&lt;br /&gt;
&lt;br /&gt;
== 10éme semaine: (du 07/04/2014 au 10/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage que l'on évoqué en semaine 9:&lt;br /&gt;
&lt;br /&gt;
P34_2013_2014_DSC_0027_montage_realisee_semaine_10.jpg&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0027_montage_realisee_semaine_10.jpg|center|thumb|300px|Montage pour amélioré la PLL.]]&lt;br /&gt;
&lt;br /&gt;
Il se trouve qu’après un réglage précis de la tension d'offset permettant d'être un proche de la fréquence à capturé on obtient:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0025_PLL_non_verrouillage_semaine_10.jpg|center|thumb|300px|Signaux I/Q après ajout du montage.]]&lt;br /&gt;
&lt;br /&gt;
= Annexes =&lt;br /&gt;
&lt;br /&gt;
== Annexe A: Détails techniques des semaines ==&lt;br /&gt;
&lt;br /&gt;
=== 1éme semaine: (du 27/01/2014 au 01/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Après on a réfléchi sur la potentielle conception/utilisation d'une carte FPGA.&lt;br /&gt;
Il sera judicieux de ne pas se précipiter sur le schéma et la conception/utilisation d'une carte FPGA, sans avoir, au préalable fait le VHDL et le testez avec un banc de test virtuel.&lt;br /&gt;
L'intérêt et de mettre en valeur la nécessité ou non de certains signaux pour le schéma de la carte.&lt;br /&gt;
On va mettre en oeuvre les connaissances acquises au S7 en VHDL (en TP de Circuit Numérique Programmble).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est de l'Arduino, on a répondu aux interrogations suivantes (certaines de ces questions paraissent triviales, mais on préfère éviter les surprises):&lt;br /&gt;
&lt;br /&gt;
Quelle est la vitesse maximale de la communication série de l'Arduino ?&lt;br /&gt;
-115200bauds&lt;br /&gt;
&lt;br /&gt;
Est-ce que, un programme de type &amp;quot;Analog Write&amp;quot; est-il une vraie sortie analogique ?&lt;br /&gt;
&lt;br /&gt;
-Non, c'est juste une PWM. Elle sera exploitable pour faire les signales I/Q mais très contraignantes, car il faudra filtré le signal, et ce sera beaucoup trop lent (du au fait que la modulation est faite au alentour de 850Mhz), le FPGA sera un passage obligé cela ouvrira les portes d'un plus grand débit.&lt;br /&gt;
&lt;br /&gt;
==== Manipulation réalisée sur la maquette TIMS : ====&lt;br /&gt;
&lt;br /&gt;
On a fait un des montages présenté dans l'ouvrage &amp;quot;Volume D1 Fundamental Digital Experiments&amp;quot; dans le but de visualiser l’objectif à atteindre.&lt;br /&gt;
&lt;br /&gt;
On obtient la constellation suivante (16QAM):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_tims_semaine_1.PNG|300px|thumb|center|Constellation visualisé en mode X-Y.]]&lt;br /&gt;
&lt;br /&gt;
Ce qui correspond à deux signaux en visualisation temporelle de cette forme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_temporelle_tims_semaine_1.PNG|300px|thumb|center|Signaux I et Q. (Image très flouté, à remplacer)]]&lt;br /&gt;
&lt;br /&gt;
On pourra facilement obtenir le même résultat en générant un bus de trame pseudo aléatoire et en l'injectant dans un C.N.A. (Conversion Numérique Analogique)&lt;br /&gt;
&lt;br /&gt;
==== Code Arduino réalisé: ====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schema_electronique_generateur_pseudo_aleatoire.png|300px|thumb|center|Schéma électronique du générateur pseudo aléatoire.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_chrono_simule.PNG|300px|thumb|center|Résultat de la simulation du générateur pseudo aléatoire (on a eu la même chose en pratique).]]&lt;br /&gt;
&lt;br /&gt;
[code]&lt;br /&gt;
/*A peut être supprimer*/&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;		&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void output_init(void){&lt;br /&gt;
  DDRB |= 0x02; // PIN 8,9 sont les deux sorties.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(void){&lt;br /&gt;
  int r1=1,r2=0,r3=0,r4=0,r5=0,retard=0;&lt;br /&gt;
  PORTB=0x00;&lt;br /&gt;
  while(1)&lt;br /&gt;
    {&lt;br /&gt;
      r5=r4;//chaque affectation représente une recopie de la bascule sur le &amp;quot;front montant&amp;quot;, ici c'est simplement l’exécution du code.&lt;br /&gt;
      r4=r3;&lt;br /&gt;
      r3=r2;&lt;br /&gt;
      r2=r1;&lt;br /&gt;
      r1=r4^r5;&lt;br /&gt;
      PORTB=0x01*r1+0x02*retard;//écriture des signaux&lt;br /&gt;
      _delay_ms(10);//le &amp;quot;front montant&amp;quot;, ce qui permet de faire un genre d'horloge.&lt;br /&gt;
      retard=r5;//déphasage du signal&lt;br /&gt;
    }&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
[/code]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_arduino.jpg|300px|thumb|center|Resultat avec le generateur pseudo aléatoire &amp;quot;émuler&amp;quot; avec l'Arduino.]]&lt;br /&gt;
&lt;br /&gt;
Comparaison carte réelle/résultat Arduino:&lt;br /&gt;
&lt;br /&gt;
C'était exactement les signaux attendus (même s'il y un décalage a par rapport à l'original).&lt;br /&gt;
&lt;br /&gt;
On aura bien pour une QPSK (4PSK) tous les couples (ie 00,01,11 et 10).&lt;br /&gt;
&lt;br /&gt;
À propos de l'arduino, on pourra envisager une amélioration pour générer une séquence plus longue:&lt;br /&gt;
&lt;br /&gt;
-il faudra simplement utiliser un tableau d'entier.&lt;br /&gt;
&lt;br /&gt;
-paramétrer sa taille avec un N par exemple.&lt;br /&gt;
&lt;br /&gt;
-N correspondra à la taille de séquence de longueur 2^N.&lt;br /&gt;
&lt;br /&gt;
Voir la section &amp;quot;Code Arduino réalisé&amp;quot; en annexe B dans la semaine correspondante.&lt;br /&gt;
&lt;br /&gt;
==== Possibilités de communications: ====&lt;br /&gt;
&lt;br /&gt;
Exploration des possibilités de communication entre le PC et la carte en amont:&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; Ethernet: =====&lt;br /&gt;
&lt;br /&gt;
*+ Vitesse de transmission (~10M-100M-G)bauds&lt;br /&gt;
&lt;br /&gt;
*- La gestion du flux de données doit être faite par un microcontrôleur (celui-ci pourra être implémenté un bloc I.P. à l'intérieur du FPGA)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; - Haute consommation de CLB du FPGA.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; SPI (communication série): =====&lt;br /&gt;
&lt;br /&gt;
*- Vitesse de transmission&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Arduino capable de communiquer jusqu'a 115200 bauds&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; D'après certaines discussions on pourrait « pousser » au-delà : voir le lien des sujets Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; I2C : =====&lt;br /&gt;
&lt;br /&gt;
Communication abandonné, ce n'est pas une priorité.&lt;br /&gt;
&lt;br /&gt;
==== À propos des blocs I.P.: ====&lt;br /&gt;
&lt;br /&gt;
En consultant les ordinateurs et en s'appuyant des TPs de CNP, on constate que les blocs suivants existent:&lt;br /&gt;
&lt;br /&gt;
- Xilinx Microblaze/Xilinx Power PC (&amp;quot;µP FPGA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Est-ce possible d'utiliser ces blocs I.P. pour programmer un FPGA sur une carte autre que la Nanoboard ? Comment ?&lt;br /&gt;
&lt;br /&gt;
- EMACx (Ethernet Media Acess Control)(:lien physique entre processeurs et &amp;quot;standart Physical Layer device IEEE802.3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===== Conception de la carte: =====&lt;br /&gt;
&lt;br /&gt;
L'idéal est de se documenter sur la Compatibilité électromagnétique.&lt;br /&gt;
&lt;br /&gt;
=== 2éme semaine: (du 03/02/2014 au 08/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 3éme semaine: (du 10/02/2014 au 15/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, après avoir eu le problème de manipulation, nous avons pus prendre connaissance d'un certain montage qui s’avéra utile pour la conception de la carte/maquette.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_limiteur_de_courant_semaine_3.PNG|300px|thumb|center|Schéma limiteur de courant.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que ce montage se retrouve dans la partie &amp;quot;typical application&amp;quot; de la documentation technique du 7805.&lt;br /&gt;
&lt;br /&gt;
=== 4éme semaine: (du 17/02/2014 au 22/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
On souhaite pouvoir réaliser une communication unidirectionnel ou même transmettre un signal audio ce qui nous contraint à une bande passante minimal de 48kHz, on prendra 200kHz (Pour être bien au delà de la conditions du théorème de Shannon): le but serait donc de branchez par exemple une source audio quelconque puis de la transmettre à travers la maquette et de la recomposer en fin de chaine.&lt;br /&gt;
&lt;br /&gt;
Après édition rapide du schématique on en dégage qu'il nous faudra un minimum d'environ 50 entrées/sorties. Mais ceci ce nombre sera très probablement revue à la hausse lors de prochaine séance.&lt;br /&gt;
&lt;br /&gt;
Voici la carte que l'on utilisera dans la suite du projet:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_S3BOARD-top-400_semaine_4.gif|300px|thumb|center|Digilent Spartan 3.]]&lt;br /&gt;
&lt;br /&gt;
=== 5éme semaine: (du 03/03/2014 au 08/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lien vers le Design complet avec les librairies incluses (on remarquera qu'il serait judicieux d’installer toutes les librairies avant d’essayer d'ouvrir le schéma)&lt;br /&gt;
&lt;br /&gt;
A notez aussi que l'on trouvera des reliques de feuilles Excel permettant de trouver rapidement des ratios dans la série E12.&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_Design_pcb_plus_librairies_semaine_5_6.zip|Schéma + Bibliothèques.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.pdf|Schéma en PDF.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.png|Schéma au format A2.]]&lt;br /&gt;
&lt;br /&gt;
=== 6éme semaine: (du 10/03/2014 au 15/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 7éme semaine: (du 17/03/2014 au 22/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 8éme semaine: (du 24/03/2014 au 26/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 9éme semaine: (du 28/03/2014 au 03/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0061_1_r_2r_semaine_9.jpg|center|thumb|300px|Le réseau R-2R.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0062_1_4QAM_semaine_9.jpg|center|thumb|300px|4QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0066_1_16QAM_semaine_9.jpg|center|thumb|300px|16QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0069_1_64QAM_semaine_9.jpg|center|thumb|300px|64QAM.]]&lt;br /&gt;
&lt;br /&gt;
Pas de photos pour la constellation à 256 points, mais elle a été réalisée.&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du montage, malgré que la P.L.L., on a un signal d'erreur après filtrage :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Chaine 1: Vtune (commande du V.C.O.)/Chaine 2: &amp;quot;erreur&amp;quot; de commande]]&lt;br /&gt;
&lt;br /&gt;
Ce qui mets en valeur immédiatement deux problèmes majeurs:&lt;br /&gt;
&lt;br /&gt;
La chaine fonctionne sur le papier, mais lors de sa mise en pratique, il faut penser à mettre une tension d'offset et aussi réaliser une amplification de l'erreur pour avoir des grandeur de commande adapté au Vtune du V.C.O..&lt;br /&gt;
&lt;br /&gt;
On propose l'amélioration suivante (qui sera réalisé à la prochaine séance):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Proposition de voie d'amélioration.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que les valeurs des résistances et des capacité on était choisit pour permettre un fonctionnement correct des A.O. (Amplificateur Opérationnel), mais pas pour ce qui de l'asservissement de la boucle par manque de temps. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette, on a eu à démonter le montage à cause de contraintes concernant les mini-circuits (car utilisé en travaux pratiques).&lt;br /&gt;
&lt;br /&gt;
=== 10éme semaine: (du 07/04/2014 au 10/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
Spectres des signaux de la chaine de transmission:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0001_allure_spectre_reception_semaine_10.jpg|center|thumb|300px|Spectre en réception.]]&lt;br /&gt;
&lt;br /&gt;
Porteuse utilisé pour la modulation I/Q à environ 60MHz.&lt;br /&gt;
&lt;br /&gt;
P34_2013_2014_DSC_0001_allure_spectre_reception_semaine_10.jpg&lt;br /&gt;
&lt;br /&gt;
Porteuse utilisé pour le transport en fréquence à environ 810MHz:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0035_constellation_recupere_PLL_NV_semaine_10.jpg|center|thumb|300px|&amp;quot;Constellation&amp;quot; récupéré avec la PLL défectueuse (on souhaite se verrouillé sur la raie à 868MHz).]]&lt;br /&gt;
&lt;br /&gt;
Question en suspend: faudrai t'il utiliser un filtre passe bande incluant 868Mhz pour pouvoir se verrouillé sur cette fréquence ?&lt;br /&gt;
&lt;br /&gt;
On remarquera sur le fait que l'oscillateur du côté de la chaine d'émission à d'importante non linéarité (on peut observer à l'analyseur de spectre 3 à 4 raies aux fréquences multiples).&lt;br /&gt;
&lt;br /&gt;
Ce qui donne un diagramme de constellation plutôt mauvais si l'on fait le montage suivant:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_montage_non_linearite_vco_constellation_semaine_10.PNG|center|thumb|300px|Montage réalisée.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_sortie_montage_non_linearite_semaine_10.PNG|center|thumb|300px|La constellation 4QAM est attendu, on est loin du résultat attendu (Aucune photo n'a était réalisé d'ou le dessin).]]&lt;br /&gt;
&lt;br /&gt;
== Annexe B: Digilent Spartan 3 ==&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire fonctionner la carte Digilent Spartan 3: ===&lt;br /&gt;
&lt;br /&gt;
Ne connectez pas de connecteur JTAG pendant les installations. Redémarrez après chaque installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut savoir que le l'ISE Webpack 14.6 fonctionne avec la carte (n'utilisez pas la 14.7, elle ne supporte pas la génération spartan 3 !):&lt;br /&gt;
&lt;br /&gt;
Installez donc l'ISE WebPack 14.6 (ou antérieur à condition que celle-ci soit supérieur à la 7.1i (d'aprés leur documentation))&lt;br /&gt;
&lt;br /&gt;
(voir lien utile sur Xilinx)&lt;br /&gt;
&lt;br /&gt;
Une fois l'installation de l'ISE terminé, faites en sorte d'avoir celui que soit opérationnel (la licence est gratuite !).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installez la &amp;quot;library&amp;quot; ADEPT 2.3 voir le lien utile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après vous n'avez plus qu'a utilisez ISE Xilinx normalement et vous serez capable de reconnaitre la carte via la liaison JTAG, et de le programmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Liens utiles: ===&lt;br /&gt;
&lt;br /&gt;
Lien constructeur/vendeur (avec ressources utiles en bas de la page):&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?Prod=S3BOARD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien &amp;quot;Library&amp;quot; pour le câble USB digilent:&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,69&amp;amp;Prod=ADEPT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour l'ISE 14.6):&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/products/design-tools/ise-design-suite/index.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour les versions antérieures veuillez faire attention au système d'exploitation, votre architecture matérielle et le FPGA cible):&lt;br /&gt;
&lt;br /&gt;
(Les informations de compatibilité son sur la page suivante:) (mots clés: xilinx classic(s))&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/tools/classics.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream, et le charger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en &amp;quot;non&amp;quot;-volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream et l'utiliser pour générer un .mcs qui vous permettra d'inscrire le programme dans la mémoire (E?)PROM.&lt;br /&gt;
&lt;br /&gt;
On remarquera que la programmation en non-volatile est utile pour faire un remise à zéro et recharger le contenu de l'(E?)PROM, mais semble être sensible au débranchement de l'adaptateur d'alimentation de la carte.&lt;br /&gt;
&lt;br /&gt;
=== Exemple de programmation: ===&lt;br /&gt;
&lt;br /&gt;
Voir le lien digilent pour ceci dans cette annexe.&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11593</id>
		<title>Modem pour le numérique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11593"/>
				<updated>2014-04-13T20:43:44Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* 10éme semaine: (rédaction en cours) (du 07/04/2014 au 10/04/2014) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Modulateur et démodulateur pour communications numériques =&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
=== Présentation générale du projet ===&lt;br /&gt;
&lt;br /&gt;
Dans le cadre des TPs d'électronique et de transmission RF, nous avons découvert qu'il existe plusieurs modes de modulation, pour transmettre un signal modulant.&lt;br /&gt;
&lt;br /&gt;
Celles vues en TP au S7 sont la modulation en amplitude, en fréquence, en phase, en BPSK et en QPSK.&lt;br /&gt;
&lt;br /&gt;
Or les modulations en phase, en fréquence et en amplitude étant celles les plus connues, la modulation en QAM (Modulation d'Amplitude en Quadrature) est quant à elle moins connue, mais tout aussi utilisées:&lt;br /&gt;
&lt;br /&gt;
-pour la TNT en 64 QAM (en France).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_64qam.jpg|300px|thumb|center|Exemple de constellation 64QAM.]]&lt;br /&gt;
&lt;br /&gt;
-pour le WiFi en 64-QAM ou 256-QAM (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Or ces deux dernières étant peu représentées au niveau des travaux pratiques, ce projet permettra de fournir un peu plus de pratique sur les modulations de type QAM (en diagramme I/Q) dans le domaine des radiofréquences (~800MHz).&lt;br /&gt;
&lt;br /&gt;
(Le nombre devant le QAM indique le nombre de points dans le diagramme I/Q qu'on appelle aussi constellation)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se réserve le droit de faire '''évoluer''' le cahier des charges a posteriori, si certaines contraintes étaient amenées à évoluer ou se préciser.&lt;br /&gt;
&lt;br /&gt;
=== Objectif et intérêt du projet ===&lt;br /&gt;
&lt;br /&gt;
Pour cela, on nous a fourni des modules commerciaux Mini-circuit pouvant travailler dans les radios-fréquences.&lt;br /&gt;
&lt;br /&gt;
Ceux-ci permettront de mettre en place une grande partie de la chaine de transmission (voir schéma de la chaine de transmission).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_modulation.PNG|300px|thumb|center|Modulation.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_demodulation.PNG|300px|thumb|center|Demodulation.]]&lt;br /&gt;
&lt;br /&gt;
On a tout d'abord à mettre en place une carte FPGA et/ou un dispositif permettant d'envoyer un flux de données numériques continuellement pour pouvoir visualiser le diagramme I/Q (mise en valeur du diagramme I/Q et voir même un diagramme un peu plus complexe que le BPSK ou le QPSK).&lt;br /&gt;
&lt;br /&gt;
Le canal de transmission qui sera un simple fil électrique, mais pourra devenir une antenne réceptrice et émettrice si le temps imparti le permet (mise en valeur du et mesure du Bit Error Rate qui sera bien sûr différent suivant le canal de transmission).&lt;br /&gt;
&lt;br /&gt;
Du côté réception ,après démodulation du signal, une remise en forme et une interprétation des données seront réalisées, celle-ci dépendra bien entendu de la provenance du flux de données (constater le succès ou l'échec d'un envoi de données).&lt;br /&gt;
&lt;br /&gt;
Enfin si le temps le permets on pourra mettre en une place un système de codage de l'information avec par exemple un codage redondant permettant de corrigé l'erreur (À définir, on pourra faire constater l'efficacité d'une méthode de codage au choix).&lt;br /&gt;
&lt;br /&gt;
=== Étapes/Déroulement du projet ===&lt;br /&gt;
&lt;br /&gt;
De même que pour le cahier des charges, il se peut que les étapes diffèrent plus ou moins, en fonction des disponibilités, matérielles et contraintes.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Caractérisation des blocs Mini-circuits et épluchage des documentations techniques====&lt;br /&gt;
Avant de les utiliser dans la chaine de transmission, nous avons à faire une caractérisation des blocs fournis:&lt;br /&gt;
&lt;br /&gt;
-la caractérisation du VCO.&lt;br /&gt;
&lt;br /&gt;
-l'étude des possibilités offerte par le modulateur (cela déterminera le nombre de points possible dans la constellation, ie savoir si l'on peut aller au-delà de la QPSK).&lt;br /&gt;
&lt;br /&gt;
-la caractérisation des mélangeurs (Mixer), leurs facteurs réels de multiplication.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Utilisation et exploitation des caractérisations ====&lt;br /&gt;
On pourra ensuite trouver les paramètres pour régler correctement dans notre chaine de transmission certains de nos sous-systèmes comme la boucle à verrouillage de phase.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Génération d'un flux des données numériques ====&lt;br /&gt;
Comme dit précédemment, l'idéal et d'avoir un flux de données numériques transmis en permanence.&lt;br /&gt;
Pour cela plusieurs solutions s'offre à nous, on pourra utiliser un montage générateur pseudo aléatoire (un circuit que l'on a fait l'année dernière en Conception de Circuit Électronique).&lt;br /&gt;
On pourra &amp;quot;émuler&amp;quot; ce montage avec un Arduino, ou bien même le faire au moyen de la Nanoboard.&lt;br /&gt;
On pourra aussi transmettre des chaines de caractère en continu.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Test de la chaine ====&lt;br /&gt;
Une fois les étapes précédentes réalisées, on pourra passer au test de la chaine de transmission. Il faudra vérifier le bon fonctionnement en aval, dedans (boucle a verrouillage de phase), et en amont de la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Première mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
Il est possible que la conception d'un dispositif soit nécessaire que ce soit pour les deux mesures du B.E.R..&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Antennes ====&lt;br /&gt;
Si toutes les étapes précédentes sont satisfaites, on pourra alors faire un canal de transmission plus intéressant, à savoir l'air.&lt;br /&gt;
Nous passerons alors à la conception des antennes, émettrice et réceptrice.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Deuxième mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Codage de l'information et correction d'erreur ====&lt;br /&gt;
En toute fin de ce projet, on pourra même mettre deux dispositifs en aval et en amont de la chaine de transmission.&lt;br /&gt;
On réalisera alors un codeur et un décodeur permettant de faire de la détection/correction d'erreur.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Mise en place d'outil de débogage (tout au long)====&lt;br /&gt;
La mise en place de simples outils de débogage et primordiale, ceux-ci permettront de vérifier le bon fonctionnement de la chaine.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Proposition d'un sujet de TP (tout au long) ====&lt;br /&gt;
Il se trouve que lors du déroulement du projet, on pourra être amené à se poser des questions au niveau des réglages de la chaine de transmission.&lt;br /&gt;
Or il est fort probable que les élèves qui travailleront sur ce TP pourront alors se poser les mêmes questions.&lt;br /&gt;
C'est pour cela qui sera judicieux de prendre soin de noter les problématiques rencontrées et de donner un certain fil de développement pour venir à bout de la problématique posée.&lt;br /&gt;
Ce qui reviendra à proposer des axes/questions sur les manipulations de cette maquette de TP.&lt;br /&gt;
&lt;br /&gt;
== Note valable pour toutes les semaines ==&lt;br /&gt;
&lt;br /&gt;
'''[[Si un point vous semble imprécis, veuillez vous reportez aux détails fournit en annexe.]]'''&lt;br /&gt;
&lt;br /&gt;
== 1éme semaine: (du 27/01/2014 au 01/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Séance du 05/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Pour bien comprendre les différentes choses à réaliser, on a refait les manipulations vues en TP. On a, pour cela utiliser la maquette didactique TIMS pour générer différent type de modulation:&lt;br /&gt;
&lt;br /&gt;
-la modulation en 4,8,16PSK (on obtient une constellation en forme de cercle).&lt;br /&gt;
&lt;br /&gt;
-La modulation en 4,8,16QAM (on obtient une constellation avec un carré, ou deux: de différentes tailles).&lt;br /&gt;
&lt;br /&gt;
On a très vite dégagé la nécessité de réaliser un montage générateur de tous les mots numériques possibles.&lt;br /&gt;
On a donc fait un programme sur arduino qui équivaut au générateur pseudo aléatoire.&lt;br /&gt;
Celui-ci est directement inspiré du montage que l'on a réalisé l'année dernière en conception de circuit électronique.&lt;br /&gt;
&lt;br /&gt;
Séance du 06/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Lors de cette séance on a exploré toute les possibilités concernant la communication entre la maquette/carte car cela pour avoir une influecnce non négligeable sur le choix de la carte F.P.G.A. et du design de la maquette.&lt;br /&gt;
&lt;br /&gt;
On a donc aussi fait des recherches concernant les possibilités de communications et les bloc I.P. (Intellectual Properties) permettant de programmer un F.P.G.A.&lt;br /&gt;
&lt;br /&gt;
Et enfin, on a eu une discussion avec un responsable technique pour ce qui de la C.E.M. (Compatibilité Electro-Magnétique)&lt;br /&gt;
&lt;br /&gt;
== 2éme semaine: (du 03/02/2014 au 08/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Réflexion sur les possibilités possibles et offertes par le sujet pour ce qui est des parties de communications entre la maquette en interne et de son environnement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_principe_carte_semaine_2.PNG|300px|thumb|center|Maquette en interne/externe.]]&lt;br /&gt;
&lt;br /&gt;
N'ayant jamais utilisé d'autre carte que la Nanoboard, on s'est attelé à faire des recherches sur la manière de procéder pour programmer une carte F.P.G.A., il se trouve que chaque carte de développement à ses propes manières pour être programmé.&lt;br /&gt;
&lt;br /&gt;
On a pris le soin de notez toutes les questions concernant le F.P.G.A. pour un intervenant industrielle qui assura un cours la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
== 3éme semaine: (du 10/02/2014 au 15/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Ayant les oscillateurs commandables en tension, on a pu commencer à faire une manipulation avec les composants Mini Circuit.&lt;br /&gt;
&lt;br /&gt;
Mais après un problème suite à une manipulation l'un des VCOs ne fonctionne plus.&lt;br /&gt;
&lt;br /&gt;
Ce qui nous amène à penser qu'il sera judicieux de prévoir une alimentation au niveau de la carte.&lt;br /&gt;
&lt;br /&gt;
Celle-ci devra être inférieure ou égale à la tension maximale d'alimentation du composant (ceux-ci étant très sensible).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Questions/Réponses:&lt;br /&gt;
&lt;br /&gt;
Comment fait-on pour programmer une carte F.P.G.A. est-ce que la programmation se fait &amp;quot;in situe&amp;quot; ? (in situe : c'est à dire sur la carte elle même) &lt;br /&gt;
Oui, c'est ce qui est utilisé, via une câble JTAG.&lt;br /&gt;
&lt;br /&gt;
Est-ce possible faire une interface USB pour permettre à un ordinateur de communiquer avec la maquette/carte via un F.P.G.A. ? Oui.&lt;br /&gt;
&lt;br /&gt;
Est-ce que la gestion de l'interface Ethernet est envisageable ? Oui.&lt;br /&gt;
&lt;br /&gt;
Pour une communication en protocole UDP avec un ordinateur via une liaison Ethernet, est-ce qu'il y a d'autre façon que d'utiliser un Soft Core ?&lt;br /&gt;
&lt;br /&gt;
Oui, il existe aussi bien en Software, qu'en Hardware.&lt;br /&gt;
&lt;br /&gt;
== 4éme semaine: (du 17/02/2014 au 22/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a donc repris l'idée de la 2éme semaine.&lt;br /&gt;
&lt;br /&gt;
Après avoir mis en place un cahier des charges au niveau des qualités, bande passante minimale.&lt;br /&gt;
&lt;br /&gt;
Nous avons fait des recherches sur les composants à utiliser (ie CAN, CAN, ...)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous a permis après une édition rapide de schéma électrique (schematic) d'avoir une idée du nombre de pins dont nous aurons besoin sur une carte FPGA afin de réaliser le projet.&lt;br /&gt;
&lt;br /&gt;
Après prospection, il se trouve que nous nous dirigerions vers la carte Digilent Spartan 3, dont l'école était déjà en possession.&lt;br /&gt;
&lt;br /&gt;
Donc nous nous sommes attelés à faire des recherches et des essais sur cette carte et pour notamment trouver un moyen de la faire fonctionner.&lt;br /&gt;
&lt;br /&gt;
== 5éme semaine: (du 03/03/2014 au 08/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, après plusieurs heures de recherches et d'essai infructueux, on a fini par trouver les drivers pour le câble USB diligent.&lt;br /&gt;
&lt;br /&gt;
Et donc ainsi avoir un fonctionnement de la communication via le câble JTAG plus propice au fonctionnement de la carte.&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur une partie des composants et des dimensionnements pour certains d'entre eux (valeur de résistance,capacité...)&lt;br /&gt;
&lt;br /&gt;
Schématics: Édition de multiple bibliothèque pour Altium, intégrant à la fois schématics et leur empreinte PCB associés.&lt;br /&gt;
&lt;br /&gt;
(On a pu constater qu'un interface 3v3 5v n'est pas forcement nécessaire pour assurer le bon fonctionnement entre deux cartes avec des tensions d'alimentation différentes.)&lt;br /&gt;
&lt;br /&gt;
== 6éme semaine: (du 10/03/2014 au 15/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur l'ensemble des composants et des choix de régulateur et utilisation d'autre diode Zener.&lt;br /&gt;
&lt;br /&gt;
On trouvera le schéma intégrale avec les bibliothèques nécessaires dans la semaine 5.&lt;br /&gt;
&lt;br /&gt;
Cette semaine à été dédié à l'envoie de la commande des composants au sein du magasin de l'école et du fournisseur.&lt;br /&gt;
&lt;br /&gt;
Après envoi de la commande, il se trouve que le projet a changé d'objectif principal.&lt;br /&gt;
&lt;br /&gt;
Il est maintenant prioritaire de réaliser un code VHDL capable d'évaluer la vitesse de transmission numérique du côté récepteur.&lt;br /&gt;
&lt;br /&gt;
== 7éme semaine: (du 17/03/2014 au 22/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Pour cette semaine, on s'est concentré sur la réalisation d'un générateur pseudo aléatoire en interne au FPGA.&lt;br /&gt;
&lt;br /&gt;
On réalisera une échelle de résistance afin de réaliser une conversion numérique analogique afin de l'envoyer sur la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
Ce code de &amp;quot;base&amp;quot; nous permettra de réaliser un flux de données fictif pour obtenir toutes les combinaisons récupérant le résultat du bus.&lt;br /&gt;
&lt;br /&gt;
[[MédiaP34_2013_2014_gene_pseudo_19_03_2014_6_semaine_7.zip|Archive contenant le projet ISE Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_rtl_semaine_7.PNG|300px|thumb|center|extrait du schéma RTL, on peut y voir clairement les inférences de Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
Ce schéma a deux entrées et une sortie, une entrée d'initialisation, une horloge et une sortie pour la trame en pseudo aléatoire.&lt;br /&gt;
&lt;br /&gt;
On fera l'essaie sur la carte lors de la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
== 8éme semaine: (du 24/03/2014 au 26/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Aprés le premier test, on pourrait penser que l'on récupère du bruit en sortie de la carte:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0024_1_probleme_d_overshoot_semaine_8.jpg|300px|thumb|center|Overshoot.]]&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir remédier à ce problème on a fait une pré-division de l'horloge&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0037_1_div_freq_semaine_8.jpg|300px|thumb|center|Overshoot après division.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0039_1_div_freq_zoom_semaine_8.jpg|300px|thumb|center|Overshoot après division (Zoom).]]&lt;br /&gt;
&lt;br /&gt;
Archive contenant toutes les modifications:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_26_03_2014_2_semaine_8.zip|VHDL Semaine 8.]]&lt;br /&gt;
&lt;br /&gt;
On a trouvé un moyen de faire un CNA facilement, via une &amp;quot;échelle dit R-2R&amp;quot;. [[http://www.uchobby.com/index.php/2008/01/08/arduino-audio-dac-options/|Pour le réseau R 2R.]]&lt;br /&gt;
&lt;br /&gt;
Il faut encore modifier le VHDL pour pouvoir l'exploiter et ainsi générer une constellation.&lt;br /&gt;
&lt;br /&gt;
== 9éme semaine: (du 28/03/2014 au 03/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pris donc le soin de modifier le VHDL:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_31_03_2014_1_semaine_9.zip|VHDL semaine 9]]&lt;br /&gt;
&lt;br /&gt;
Ce VHDL à été mis à jour, avec deux entrées (initialisation et une horloge) et un bus de sortie (8 bits), avec les trames pseudo-aléatoire.&lt;br /&gt;
&lt;br /&gt;
On envoie ces signaux sur deux C.N.A.s (4 bits chacun) pour générer deux signaux I et Q, on peut voir une constellation se dessiner en mode X-Y.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0072_1_Montage_entier_4qam_semaine_9.jpg|300px|thumb|center|Montage avec constellations 4QAM.]]&lt;br /&gt;
&lt;br /&gt;
D'autre constellations réalisées sont disponibles en annexe. On peut monter jusqu'à une constellation de 256 points (2^4*2^4).&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage complet de toute la chaine de transmission. Il se trouve que la Boucle à Verrouillage de Phase (ou appellée PLL, Phase Loop Locker) ne se verrouille pas sur la porteuse du signal que l'on souhaite récupéré, de ce fait on ne peut pas récupérer les signaux I et Q.&lt;br /&gt;
&lt;br /&gt;
== 10éme semaine: (du 07/04/2014 au 10/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage que l'on évoqué en semaine 9:&lt;br /&gt;
&lt;br /&gt;
P34_2013_2014_DSC_0027_montage_realisee_semaine_10.jpg&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0027_montage_realisee_semaine_10.jpg|center|thumb|300px|Montage pour amélioré la PLL.]]&lt;br /&gt;
&lt;br /&gt;
Il se trouve qu’après un réglage précis de la tension d'offset permettant d'être un proche de la fréquence à capturé on obtient:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0025_PLL_non_verrouillage_semaine_10.jpg|center|thumb|300px|Signaux I/Q après ajout du montage.]]&lt;br /&gt;
&lt;br /&gt;
= Annexes =&lt;br /&gt;
&lt;br /&gt;
== Annexe A: Détails techniques des semaines ==&lt;br /&gt;
&lt;br /&gt;
=== 1éme semaine: (du 27/01/2014 au 01/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Après on a réfléchi sur la potentielle conception/utilisation d'une carte FPGA.&lt;br /&gt;
Il sera judicieux de ne pas se précipiter sur le schéma et la conception/utilisation d'une carte FPGA, sans avoir, au préalable fait le VHDL et le testez avec un banc de test virtuel.&lt;br /&gt;
L'intérêt et de mettre en valeur la nécessité ou non de certains signaux pour le schéma de la carte.&lt;br /&gt;
On va mettre en oeuvre les connaissances acquises au S7 en VHDL (en TP de Circuit Numérique Programmble).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est de l'Arduino, on a répondu aux interrogations suivantes (certaines de ces questions paraissent triviales, mais on préfère éviter les surprises):&lt;br /&gt;
&lt;br /&gt;
Quelle est la vitesse maximale de la communication série de l'Arduino ?&lt;br /&gt;
-115200bauds&lt;br /&gt;
&lt;br /&gt;
Est-ce que, un programme de type &amp;quot;Analog Write&amp;quot; est-il une vraie sortie analogique ?&lt;br /&gt;
&lt;br /&gt;
-Non, c'est juste une PWM. Elle sera exploitable pour faire les signales I/Q mais très contraignantes, car il faudra filtré le signal, et ce sera beaucoup trop lent (du au fait que la modulation est faite au alentour de 850Mhz), le FPGA sera un passage obligé cela ouvrira les portes d'un plus grand débit.&lt;br /&gt;
&lt;br /&gt;
==== Manipulation réalisée sur la maquette TIMS : ====&lt;br /&gt;
&lt;br /&gt;
On a fait un des montages présenté dans l'ouvrage &amp;quot;Volume D1 Fundamental Digital Experiments&amp;quot; dans le but de visualiser l’objectif à atteindre.&lt;br /&gt;
&lt;br /&gt;
On obtient la constellation suivante (16QAM):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_tims_semaine_1.PNG|300px|thumb|center|Constellation visualisé en mode X-Y.]]&lt;br /&gt;
&lt;br /&gt;
Ce qui correspond à deux signaux en visualisation temporelle de cette forme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_temporelle_tims_semaine_1.PNG|300px|thumb|center|Signaux I et Q. (Image très flouté, à remplacer)]]&lt;br /&gt;
&lt;br /&gt;
On pourra facilement obtenir le même résultat en générant un bus de trame pseudo aléatoire et en l'injectant dans un C.N.A. (Conversion Numérique Analogique)&lt;br /&gt;
&lt;br /&gt;
==== Code Arduino réalisé: ====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schema_electronique_generateur_pseudo_aleatoire.png|300px|thumb|center|Schéma électronique du générateur pseudo aléatoire.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_chrono_simule.PNG|300px|thumb|center|Résultat de la simulation du générateur pseudo aléatoire (on a eu la même chose en pratique).]]&lt;br /&gt;
&lt;br /&gt;
[code]&lt;br /&gt;
/*A peut être supprimer*/&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;		&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void output_init(void){&lt;br /&gt;
  DDRB |= 0x02; // PIN 8,9 sont les deux sorties.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(void){&lt;br /&gt;
  int r1=1,r2=0,r3=0,r4=0,r5=0,retard=0;&lt;br /&gt;
  PORTB=0x00;&lt;br /&gt;
  while(1)&lt;br /&gt;
    {&lt;br /&gt;
      r5=r4;//chaque affectation représente une recopie de la bascule sur le &amp;quot;front montant&amp;quot;, ici c'est simplement l’exécution du code.&lt;br /&gt;
      r4=r3;&lt;br /&gt;
      r3=r2;&lt;br /&gt;
      r2=r1;&lt;br /&gt;
      r1=r4^r5;&lt;br /&gt;
      PORTB=0x01*r1+0x02*retard;//écriture des signaux&lt;br /&gt;
      _delay_ms(10);//le &amp;quot;front montant&amp;quot;, ce qui permet de faire un genre d'horloge.&lt;br /&gt;
      retard=r5;//déphasage du signal&lt;br /&gt;
    }&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
[/code]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_arduino.jpg|300px|thumb|center|Resultat avec le generateur pseudo aléatoire &amp;quot;émuler&amp;quot; avec l'Arduino.]]&lt;br /&gt;
&lt;br /&gt;
Comparaison carte réelle/résultat Arduino:&lt;br /&gt;
&lt;br /&gt;
C'était exactement les signaux attendus (même s'il y un décalage a par rapport à l'original).&lt;br /&gt;
&lt;br /&gt;
On aura bien pour une QPSK (4PSK) tous les couples (ie 00,01,11 et 10).&lt;br /&gt;
&lt;br /&gt;
À propos de l'arduino, on pourra envisager une amélioration pour générer une séquence plus longue:&lt;br /&gt;
&lt;br /&gt;
-il faudra simplement utiliser un tableau d'entier.&lt;br /&gt;
&lt;br /&gt;
-paramétrer sa taille avec un N par exemple.&lt;br /&gt;
&lt;br /&gt;
-N correspondra à la taille de séquence de longueur 2^N.&lt;br /&gt;
&lt;br /&gt;
Voir la section &amp;quot;Code Arduino réalisé&amp;quot; en annexe B dans la semaine correspondante.&lt;br /&gt;
&lt;br /&gt;
==== Possibilités de communications: ====&lt;br /&gt;
&lt;br /&gt;
Exploration des possibilités de communication entre le PC et la carte en amont:&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; Ethernet: =====&lt;br /&gt;
&lt;br /&gt;
*+ Vitesse de transmission (~10M-100M-G)bauds&lt;br /&gt;
&lt;br /&gt;
*- La gestion du flux de données doit être faite par un microcontrôleur (celui-ci pourra être implémenté un bloc I.P. à l'intérieur du FPGA)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; - Haute consommation de CLB du FPGA.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; SPI (communication série): =====&lt;br /&gt;
&lt;br /&gt;
*- Vitesse de transmission&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Arduino capable de communiquer jusqu'a 115200 bauds&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; D'après certaines discussions on pourrait « pousser » au-delà : voir le lien des sujets Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; I2C : =====&lt;br /&gt;
&lt;br /&gt;
Communication abandonné, ce n'est pas une priorité.&lt;br /&gt;
&lt;br /&gt;
==== À propos des blocs I.P.: ====&lt;br /&gt;
&lt;br /&gt;
En consultant les ordinateurs et en s'appuyant des TPs de CNP, on constate que les blocs suivants existent:&lt;br /&gt;
&lt;br /&gt;
- Xilinx Microblaze/Xilinx Power PC (&amp;quot;µP FPGA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Est-ce possible d'utiliser ces blocs I.P. pour programmer un FPGA sur une carte autre que la Nanoboard ? Comment ?&lt;br /&gt;
&lt;br /&gt;
- EMACx (Ethernet Media Acess Control)(:lien physique entre processeurs et &amp;quot;standart Physical Layer device IEEE802.3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===== Conception de la carte: =====&lt;br /&gt;
&lt;br /&gt;
L'idéal est de se documenter sur la Compatibilité électromagnétique.&lt;br /&gt;
&lt;br /&gt;
=== 2éme semaine: (du 03/02/2014 au 08/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 3éme semaine: (du 10/02/2014 au 15/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, après avoir eu le problème de manipulation, nous avons pus prendre connaissance d'un certain montage qui s’avéra utile pour la conception de la carte/maquette.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_limiteur_de_courant_semaine_3.PNG|300px|thumb|center|Schéma limiteur de courant.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que ce montage se retrouve dans la partie &amp;quot;typical application&amp;quot; de la documentation technique du 7805.&lt;br /&gt;
&lt;br /&gt;
=== 4éme semaine: (du 17/02/2014 au 22/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
On souhaite pouvoir réaliser une communication unidirectionnel ou même transmettre un signal audio ce qui nous contraint à une bande passante minimal de 48kHz, on prendra 200kHz (Pour être bien au delà de la conditions du théorème de Shannon): le but serait donc de branchez par exemple une source audio quelconque puis de la transmettre à travers la maquette et de la recomposer en fin de chaine.&lt;br /&gt;
&lt;br /&gt;
Après édition rapide du schématique on en dégage qu'il nous faudra un minimum d'environ 50 entrées/sorties. Mais ceci ce nombre sera très probablement revue à la hausse lors de prochaine séance.&lt;br /&gt;
&lt;br /&gt;
Voici la carte que l'on utilisera dans la suite du projet:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_S3BOARD-top-400_semaine_4.gif|300px|thumb|center|Digilent Spartan 3.]]&lt;br /&gt;
&lt;br /&gt;
=== 5éme semaine: (du 03/03/2014 au 08/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lien vers le Design complet avec les librairies incluses (on remarquera qu'il serait judicieux d’installer toutes les librairies avant d’essayer d'ouvrir le schéma)&lt;br /&gt;
&lt;br /&gt;
A notez aussi que l'on trouvera des reliques de feuilles Excel permettant de trouver rapidement des ratios dans la série E12.&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_Design_pcb_plus_librairies_semaine_5_6.zip|Schéma + Bibliothèques.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.pdf|Schéma en PDF.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.png|Schéma au format A2.]]&lt;br /&gt;
&lt;br /&gt;
=== 6éme semaine: (du 10/03/2014 au 15/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 7éme semaine: (du 17/03/2014 au 22/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 8éme semaine: (du 24/03/2014 au 26/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 9éme semaine: (du 28/03/2014 au 03/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0061_1_r_2r_semaine_9.jpg|center|thumb|300px|Le réseau R-2R.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0062_1_4QAM_semaine_9.jpg|center|thumb|300px|4QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0066_1_16QAM_semaine_9.jpg|center|thumb|300px|16QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0069_1_64QAM_semaine_9.jpg|center|thumb|300px|64QAM.]]&lt;br /&gt;
&lt;br /&gt;
Pas de photos pour la constellation à 256 points, mais elle a été réalisée.&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du montage, malgré que la P.L.L., on a un signal d'erreur après filtrage :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Chaine 1: Vtune (commande du V.C.O.)/Chaine 2: &amp;quot;erreur&amp;quot; de commande]]&lt;br /&gt;
&lt;br /&gt;
Ce qui mets en valeur immédiatement deux problèmes majeurs:&lt;br /&gt;
&lt;br /&gt;
La chaine fonctionne sur le papier, mais lors de sa mise en pratique, il faut penser à mettre une tension d'offset et aussi réaliser une amplification de l'erreur pour avoir des grandeur de commande adapté au Vtune du V.C.O..&lt;br /&gt;
&lt;br /&gt;
On propose l'amélioration suivante (qui sera réalisé à la prochaine séance):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Proposition de voie d'amélioration.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que les valeurs des résistances et des capacité on était choisit pour permettre un fonctionnement correct des A.O. (Amplificateur Opérationnel), mais pas pour ce qui de l'asservissement de la boucle par manque de temps. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette, on a eu à démonter le montage à cause de contraintes concernant les mini-circuits (car utilisé en travaux pratiques).&lt;br /&gt;
&lt;br /&gt;
=== 10éme semaine: (rédaction en cours) (du 07/04/2014 au 10/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
Spectres des signaux de la chaine de transmission:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0001_allure_spectre_reception_semaine_10.jpg|center|thumb|300px|Spectre en réception.]]&lt;br /&gt;
&lt;br /&gt;
Porteuse utilisé pour la modulation I/Q à environ 60MHz.&lt;br /&gt;
&lt;br /&gt;
P34_2013_2014_DSC_0001_allure_spectre_reception_semaine_10.jpg&lt;br /&gt;
&lt;br /&gt;
Porteuse utilisé pour le transport en fréquence à environ 810MHz:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0035_constellation_recupere_PLL_NV_semaine_10.jpg|center|thumb|300px|&amp;quot;Constellation&amp;quot; récupéré avec la PLL défectueuse (on souhaite se verrouillé sur la raie à 868MHz).]]&lt;br /&gt;
&lt;br /&gt;
Question en suspend: faudrai t'il utiliser un filtre passe bande incluant 868Mhz pour pouvoir se verrouillé sur cette fréquence ?&lt;br /&gt;
&lt;br /&gt;
On remarquera sur le fait que l'oscillateur du côté de la chaine d'émission à d'importante non linéarité (on peut observer à l'analyseur de spectre 3 à 4 raies aux fréquences multiples).&lt;br /&gt;
&lt;br /&gt;
Ce qui donne un diagramme de constellation plutôt mauvais si l'on fait le montage suivant:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_montage_non_linearite_vco_constellation_semaine_10.PNG|center|thumb|300px|Montage réalisée.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_sortie_montage_non_linearite_semaine_10.PNG|center|thumb|300px|La constellation 4QAM est attendu, on est loin du résultat attendu (Aucune photo n'a était réalisé d'ou le dessin).]]&lt;br /&gt;
&lt;br /&gt;
== Annexe B: Digilent Spartan 3 ==&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire fonctionner la carte Digilent Spartan 3: ===&lt;br /&gt;
&lt;br /&gt;
Ne connectez pas de connecteur JTAG pendant les installations. Redémarrez après chaque installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut savoir que le l'ISE Webpack 14.6 fonctionne avec la carte (n'utilisez pas la 14.7, elle ne supporte pas la génération spartan 3 !):&lt;br /&gt;
&lt;br /&gt;
Installez donc l'ISE WebPack 14.6 (ou antérieur à condition que celle-ci soit supérieur à la 7.1i (d'aprés leur documentation))&lt;br /&gt;
&lt;br /&gt;
(voir lien utile sur Xilinx)&lt;br /&gt;
&lt;br /&gt;
Une fois l'installation de l'ISE terminé, faites en sorte d'avoir celui que soit opérationnel (la licence est gratuite !).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installez la &amp;quot;library&amp;quot; ADEPT 2.3 voir le lien utile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après vous n'avez plus qu'a utilisez ISE Xilinx normalement et vous serez capable de reconnaitre la carte via la liaison JTAG, et de le programmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Liens utiles: ===&lt;br /&gt;
&lt;br /&gt;
Lien constructeur/vendeur (avec ressources utiles en bas de la page):&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?Prod=S3BOARD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien &amp;quot;Library&amp;quot; pour le câble USB digilent:&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,69&amp;amp;Prod=ADEPT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour l'ISE 14.6):&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/products/design-tools/ise-design-suite/index.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour les versions antérieures veuillez faire attention au système d'exploitation, votre architecture matérielle et le FPGA cible):&lt;br /&gt;
&lt;br /&gt;
(Les informations de compatibilité son sur la page suivante:) (mots clés: xilinx classic(s))&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/tools/classics.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream, et le charger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en &amp;quot;non&amp;quot;-volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream et l'utiliser pour générer un .mcs qui vous permettra d'inscrire le programme dans la mémoire (E?)PROM.&lt;br /&gt;
&lt;br /&gt;
On remarquera que la programmation en non-volatile est utile pour faire un remise à zéro et recharger le contenu de l'(E?)PROM, mais semble être sensible au débranchement de l'adaptateur d'alimentation de la carte.&lt;br /&gt;
&lt;br /&gt;
=== Exemple de programmation: ===&lt;br /&gt;
&lt;br /&gt;
Voir le lien digilent pour ceci dans cette annexe.&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:P34_2013_2014_sortie_montage_non_linearite_semaine_10.PNG&amp;diff=11590</id>
		<title>Fichier:P34 2013 2014 sortie montage non linearite semaine 10.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:P34_2013_2014_sortie_montage_non_linearite_semaine_10.PNG&amp;diff=11590"/>
				<updated>2014-04-13T20:40:52Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:P34_2013_2014_montage_non_linearite_vco_constellation_semaine_10.PNG&amp;diff=11589</id>
		<title>Fichier:P34 2013 2014 montage non linearite vco constellation semaine 10.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:P34_2013_2014_montage_non_linearite_vco_constellation_semaine_10.PNG&amp;diff=11589"/>
				<updated>2014-04-13T20:28:25Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:P34_2013_2014_Chaine_modulation.PNG&amp;diff=11588</id>
		<title>Fichier:P34 2013 2014 Chaine modulation.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:P34_2013_2014_Chaine_modulation.PNG&amp;diff=11588"/>
				<updated>2014-04-13T20:25:07Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : a téléversé une nouvelle version de « Fichier:P34 2013 2014 Chaine modulation.PNG »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Partie modulation.&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11587</id>
		<title>Modem pour le numérique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11587"/>
				<updated>2014-04-13T20:19:28Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* 10éme semaine: (rédaction en cours) (du 07/04/2014 au 10/04/2014) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Modulateur et démodulateur pour communications numériques =&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
=== Présentation générale du projet ===&lt;br /&gt;
&lt;br /&gt;
Dans le cadre des TPs d'électronique et de transmission RF, nous avons découvert qu'il existe plusieurs modes de modulation, pour transmettre un signal modulant.&lt;br /&gt;
&lt;br /&gt;
Celles vues en TP au S7 sont la modulation en amplitude, en fréquence, en phase, en BPSK et en QPSK.&lt;br /&gt;
&lt;br /&gt;
Or les modulations en phase, en fréquence et en amplitude étant celles les plus connues, la modulation en QAM (Modulation d'Amplitude en Quadrature) est quant à elle moins connue, mais tout aussi utilisées:&lt;br /&gt;
&lt;br /&gt;
-pour la TNT en 64 QAM (en France).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_64qam.jpg|300px|thumb|center|Exemple de constellation 64QAM.]]&lt;br /&gt;
&lt;br /&gt;
-pour le WiFi en 64-QAM ou 256-QAM (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Or ces deux dernières étant peu représentées au niveau des travaux pratiques, ce projet permettra de fournir un peu plus de pratique sur les modulations de type QAM (en diagramme I/Q) dans le domaine des radiofréquences (~800MHz).&lt;br /&gt;
&lt;br /&gt;
(Le nombre devant le QAM indique le nombre de points dans le diagramme I/Q qu'on appelle aussi constellation)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se réserve le droit de faire '''évoluer''' le cahier des charges a posteriori, si certaines contraintes étaient amenées à évoluer ou se préciser.&lt;br /&gt;
&lt;br /&gt;
=== Objectif et intérêt du projet ===&lt;br /&gt;
&lt;br /&gt;
Pour cela, on nous a fourni des modules commerciaux Mini-circuit pouvant travailler dans les radios-fréquences.&lt;br /&gt;
&lt;br /&gt;
Ceux-ci permettront de mettre en place une grande partie de la chaine de transmission (voir schéma de la chaine de transmission).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_modulation.PNG|300px|thumb|center|Modulation.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_demodulation.PNG|300px|thumb|center|Demodulation.]]&lt;br /&gt;
&lt;br /&gt;
On a tout d'abord à mettre en place une carte FPGA et/ou un dispositif permettant d'envoyer un flux de données numériques continuellement pour pouvoir visualiser le diagramme I/Q (mise en valeur du diagramme I/Q et voir même un diagramme un peu plus complexe que le BPSK ou le QPSK).&lt;br /&gt;
&lt;br /&gt;
Le canal de transmission qui sera un simple fil électrique, mais pourra devenir une antenne réceptrice et émettrice si le temps imparti le permet (mise en valeur du et mesure du Bit Error Rate qui sera bien sûr différent suivant le canal de transmission).&lt;br /&gt;
&lt;br /&gt;
Du côté réception ,après démodulation du signal, une remise en forme et une interprétation des données seront réalisées, celle-ci dépendra bien entendu de la provenance du flux de données (constater le succès ou l'échec d'un envoi de données).&lt;br /&gt;
&lt;br /&gt;
Enfin si le temps le permets on pourra mettre en une place un système de codage de l'information avec par exemple un codage redondant permettant de corrigé l'erreur (À définir, on pourra faire constater l'efficacité d'une méthode de codage au choix).&lt;br /&gt;
&lt;br /&gt;
=== Étapes/Déroulement du projet ===&lt;br /&gt;
&lt;br /&gt;
De même que pour le cahier des charges, il se peut que les étapes diffèrent plus ou moins, en fonction des disponibilités, matérielles et contraintes.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Caractérisation des blocs Mini-circuits et épluchage des documentations techniques====&lt;br /&gt;
Avant de les utiliser dans la chaine de transmission, nous avons à faire une caractérisation des blocs fournis:&lt;br /&gt;
&lt;br /&gt;
-la caractérisation du VCO.&lt;br /&gt;
&lt;br /&gt;
-l'étude des possibilités offerte par le modulateur (cela déterminera le nombre de points possible dans la constellation, ie savoir si l'on peut aller au-delà de la QPSK).&lt;br /&gt;
&lt;br /&gt;
-la caractérisation des mélangeurs (Mixer), leurs facteurs réels de multiplication.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Utilisation et exploitation des caractérisations ====&lt;br /&gt;
On pourra ensuite trouver les paramètres pour régler correctement dans notre chaine de transmission certains de nos sous-systèmes comme la boucle à verrouillage de phase.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Génération d'un flux des données numériques ====&lt;br /&gt;
Comme dit précédemment, l'idéal et d'avoir un flux de données numériques transmis en permanence.&lt;br /&gt;
Pour cela plusieurs solutions s'offre à nous, on pourra utiliser un montage générateur pseudo aléatoire (un circuit que l'on a fait l'année dernière en Conception de Circuit Électronique).&lt;br /&gt;
On pourra &amp;quot;émuler&amp;quot; ce montage avec un Arduino, ou bien même le faire au moyen de la Nanoboard.&lt;br /&gt;
On pourra aussi transmettre des chaines de caractère en continu.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Test de la chaine ====&lt;br /&gt;
Une fois les étapes précédentes réalisées, on pourra passer au test de la chaine de transmission. Il faudra vérifier le bon fonctionnement en aval, dedans (boucle a verrouillage de phase), et en amont de la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Première mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
Il est possible que la conception d'un dispositif soit nécessaire que ce soit pour les deux mesures du B.E.R..&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Antennes ====&lt;br /&gt;
Si toutes les étapes précédentes sont satisfaites, on pourra alors faire un canal de transmission plus intéressant, à savoir l'air.&lt;br /&gt;
Nous passerons alors à la conception des antennes, émettrice et réceptrice.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Deuxième mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Codage de l'information et correction d'erreur ====&lt;br /&gt;
En toute fin de ce projet, on pourra même mettre deux dispositifs en aval et en amont de la chaine de transmission.&lt;br /&gt;
On réalisera alors un codeur et un décodeur permettant de faire de la détection/correction d'erreur.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Mise en place d'outil de débogage (tout au long)====&lt;br /&gt;
La mise en place de simples outils de débogage et primordiale, ceux-ci permettront de vérifier le bon fonctionnement de la chaine.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Proposition d'un sujet de TP (tout au long) ====&lt;br /&gt;
Il se trouve que lors du déroulement du projet, on pourra être amené à se poser des questions au niveau des réglages de la chaine de transmission.&lt;br /&gt;
Or il est fort probable que les élèves qui travailleront sur ce TP pourront alors se poser les mêmes questions.&lt;br /&gt;
C'est pour cela qui sera judicieux de prendre soin de noter les problématiques rencontrées et de donner un certain fil de développement pour venir à bout de la problématique posée.&lt;br /&gt;
Ce qui reviendra à proposer des axes/questions sur les manipulations de cette maquette de TP.&lt;br /&gt;
&lt;br /&gt;
== Note valable pour toutes les semaines ==&lt;br /&gt;
&lt;br /&gt;
'''[[Si un point vous semble imprécis, veuillez vous reportez aux détails fournit en annexe.]]'''&lt;br /&gt;
&lt;br /&gt;
== 1éme semaine: (du 27/01/2014 au 01/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Séance du 05/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Pour bien comprendre les différentes choses à réaliser, on a refait les manipulations vues en TP. On a, pour cela utiliser la maquette didactique TIMS pour générer différent type de modulation:&lt;br /&gt;
&lt;br /&gt;
-la modulation en 4,8,16PSK (on obtient une constellation en forme de cercle).&lt;br /&gt;
&lt;br /&gt;
-La modulation en 4,8,16QAM (on obtient une constellation avec un carré, ou deux: de différentes tailles).&lt;br /&gt;
&lt;br /&gt;
On a très vite dégagé la nécessité de réaliser un montage générateur de tous les mots numériques possibles.&lt;br /&gt;
On a donc fait un programme sur arduino qui équivaut au générateur pseudo aléatoire.&lt;br /&gt;
Celui-ci est directement inspiré du montage que l'on a réalisé l'année dernière en conception de circuit électronique.&lt;br /&gt;
&lt;br /&gt;
Séance du 06/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Lors de cette séance on a exploré toute les possibilités concernant la communication entre la maquette/carte car cela pour avoir une influecnce non négligeable sur le choix de la carte F.P.G.A. et du design de la maquette.&lt;br /&gt;
&lt;br /&gt;
On a donc aussi fait des recherches concernant les possibilités de communications et les bloc I.P. (Intellectual Properties) permettant de programmer un F.P.G.A.&lt;br /&gt;
&lt;br /&gt;
Et enfin, on a eu une discussion avec un responsable technique pour ce qui de la C.E.M. (Compatibilité Electro-Magnétique)&lt;br /&gt;
&lt;br /&gt;
== 2éme semaine: (du 03/02/2014 au 08/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Réflexion sur les possibilités possibles et offertes par le sujet pour ce qui est des parties de communications entre la maquette en interne et de son environnement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_principe_carte_semaine_2.PNG|300px|thumb|center|Maquette en interne/externe.]]&lt;br /&gt;
&lt;br /&gt;
N'ayant jamais utilisé d'autre carte que la Nanoboard, on s'est attelé à faire des recherches sur la manière de procéder pour programmer une carte F.P.G.A., il se trouve que chaque carte de développement à ses propes manières pour être programmé.&lt;br /&gt;
&lt;br /&gt;
On a pris le soin de notez toutes les questions concernant le F.P.G.A. pour un intervenant industrielle qui assura un cours la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
== 3éme semaine: (du 10/02/2014 au 15/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Ayant les oscillateurs commandables en tension, on a pu commencer à faire une manipulation avec les composants Mini Circuit.&lt;br /&gt;
&lt;br /&gt;
Mais après un problème suite à une manipulation l'un des VCOs ne fonctionne plus.&lt;br /&gt;
&lt;br /&gt;
Ce qui nous amène à penser qu'il sera judicieux de prévoir une alimentation au niveau de la carte.&lt;br /&gt;
&lt;br /&gt;
Celle-ci devra être inférieure ou égale à la tension maximale d'alimentation du composant (ceux-ci étant très sensible).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Questions/Réponses:&lt;br /&gt;
&lt;br /&gt;
Comment fait-on pour programmer une carte F.P.G.A. est-ce que la programmation se fait &amp;quot;in situe&amp;quot; ? (in situe : c'est à dire sur la carte elle même) &lt;br /&gt;
Oui, c'est ce qui est utilisé, via une câble JTAG.&lt;br /&gt;
&lt;br /&gt;
Est-ce possible faire une interface USB pour permettre à un ordinateur de communiquer avec la maquette/carte via un F.P.G.A. ? Oui.&lt;br /&gt;
&lt;br /&gt;
Est-ce que la gestion de l'interface Ethernet est envisageable ? Oui.&lt;br /&gt;
&lt;br /&gt;
Pour une communication en protocole UDP avec un ordinateur via une liaison Ethernet, est-ce qu'il y a d'autre façon que d'utiliser un Soft Core ?&lt;br /&gt;
&lt;br /&gt;
Oui, il existe aussi bien en Software, qu'en Hardware.&lt;br /&gt;
&lt;br /&gt;
== 4éme semaine: (du 17/02/2014 au 22/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a donc repris l'idée de la 2éme semaine.&lt;br /&gt;
&lt;br /&gt;
Après avoir mis en place un cahier des charges au niveau des qualités, bande passante minimale.&lt;br /&gt;
&lt;br /&gt;
Nous avons fait des recherches sur les composants à utiliser (ie CAN, CAN, ...)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous a permis après une édition rapide de schéma électrique (schematic) d'avoir une idée du nombre de pins dont nous aurons besoin sur une carte FPGA afin de réaliser le projet.&lt;br /&gt;
&lt;br /&gt;
Après prospection, il se trouve que nous nous dirigerions vers la carte Digilent Spartan 3, dont l'école était déjà en possession.&lt;br /&gt;
&lt;br /&gt;
Donc nous nous sommes attelés à faire des recherches et des essais sur cette carte et pour notamment trouver un moyen de la faire fonctionner.&lt;br /&gt;
&lt;br /&gt;
== 5éme semaine: (du 03/03/2014 au 08/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, après plusieurs heures de recherches et d'essai infructueux, on a fini par trouver les drivers pour le câble USB diligent.&lt;br /&gt;
&lt;br /&gt;
Et donc ainsi avoir un fonctionnement de la communication via le câble JTAG plus propice au fonctionnement de la carte.&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur une partie des composants et des dimensionnements pour certains d'entre eux (valeur de résistance,capacité...)&lt;br /&gt;
&lt;br /&gt;
Schématics: Édition de multiple bibliothèque pour Altium, intégrant à la fois schématics et leur empreinte PCB associés.&lt;br /&gt;
&lt;br /&gt;
(On a pu constater qu'un interface 3v3 5v n'est pas forcement nécessaire pour assurer le bon fonctionnement entre deux cartes avec des tensions d'alimentation différentes.)&lt;br /&gt;
&lt;br /&gt;
== 6éme semaine: (du 10/03/2014 au 15/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur l'ensemble des composants et des choix de régulateur et utilisation d'autre diode Zener.&lt;br /&gt;
&lt;br /&gt;
On trouvera le schéma intégrale avec les bibliothèques nécessaires dans la semaine 5.&lt;br /&gt;
&lt;br /&gt;
Cette semaine à été dédié à l'envoie de la commande des composants au sein du magasin de l'école et du fournisseur.&lt;br /&gt;
&lt;br /&gt;
Après envoi de la commande, il se trouve que le projet a changé d'objectif principal.&lt;br /&gt;
&lt;br /&gt;
Il est maintenant prioritaire de réaliser un code VHDL capable d'évaluer la vitesse de transmission numérique du côté récepteur.&lt;br /&gt;
&lt;br /&gt;
== 7éme semaine: (du 17/03/2014 au 22/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Pour cette semaine, on s'est concentré sur la réalisation d'un générateur pseudo aléatoire en interne au FPGA.&lt;br /&gt;
&lt;br /&gt;
On réalisera une échelle de résistance afin de réaliser une conversion numérique analogique afin de l'envoyer sur la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
Ce code de &amp;quot;base&amp;quot; nous permettra de réaliser un flux de données fictif pour obtenir toutes les combinaisons récupérant le résultat du bus.&lt;br /&gt;
&lt;br /&gt;
[[MédiaP34_2013_2014_gene_pseudo_19_03_2014_6_semaine_7.zip|Archive contenant le projet ISE Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_rtl_semaine_7.PNG|300px|thumb|center|extrait du schéma RTL, on peut y voir clairement les inférences de Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
Ce schéma a deux entrées et une sortie, une entrée d'initialisation, une horloge et une sortie pour la trame en pseudo aléatoire.&lt;br /&gt;
&lt;br /&gt;
On fera l'essaie sur la carte lors de la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
== 8éme semaine: (du 24/03/2014 au 26/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Aprés le premier test, on pourrait penser que l'on récupère du bruit en sortie de la carte:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0024_1_probleme_d_overshoot_semaine_8.jpg|300px|thumb|center|Overshoot.]]&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir remédier à ce problème on a fait une pré-division de l'horloge&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0037_1_div_freq_semaine_8.jpg|300px|thumb|center|Overshoot après division.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0039_1_div_freq_zoom_semaine_8.jpg|300px|thumb|center|Overshoot après division (Zoom).]]&lt;br /&gt;
&lt;br /&gt;
Archive contenant toutes les modifications:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_26_03_2014_2_semaine_8.zip|VHDL Semaine 8.]]&lt;br /&gt;
&lt;br /&gt;
On a trouvé un moyen de faire un CNA facilement, via une &amp;quot;échelle dit R-2R&amp;quot;. [[http://www.uchobby.com/index.php/2008/01/08/arduino-audio-dac-options/|Pour le réseau R 2R.]]&lt;br /&gt;
&lt;br /&gt;
Il faut encore modifier le VHDL pour pouvoir l'exploiter et ainsi générer une constellation.&lt;br /&gt;
&lt;br /&gt;
== 9éme semaine: (du 28/03/2014 au 03/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pris donc le soin de modifier le VHDL:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_31_03_2014_1_semaine_9.zip|VHDL semaine 9]]&lt;br /&gt;
&lt;br /&gt;
Ce VHDL à été mis à jour, avec deux entrées (initialisation et une horloge) et un bus de sortie (8 bits), avec les trames pseudo-aléatoire.&lt;br /&gt;
&lt;br /&gt;
On envoie ces signaux sur deux C.N.A.s (4 bits chacun) pour générer deux signaux I et Q, on peut voir une constellation se dessiner en mode X-Y.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0072_1_Montage_entier_4qam_semaine_9.jpg|300px|thumb|center|Montage avec constellations 4QAM.]]&lt;br /&gt;
&lt;br /&gt;
D'autre constellations réalisées sont disponibles en annexe. On peut monter jusqu'à une constellation de 256 points (2^4*2^4).&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage complet de toute la chaine de transmission. Il se trouve que la Boucle à Verrouillage de Phase (ou appellée PLL, Phase Loop Locker) ne se verrouille pas sur la porteuse du signal que l'on souhaite récupéré, de ce fait on ne peut pas récupérer les signaux I et Q.&lt;br /&gt;
&lt;br /&gt;
== 10éme semaine: (du 07/04/2014 au 10/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage que l'on évoqué en semaine 9:&lt;br /&gt;
&lt;br /&gt;
P34_2013_2014_DSC_0027_montage_realisee_semaine_10.jpg&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0027_montage_realisee_semaine_10.jpg|center|thumb|300px|Montage pour amélioré la PLL.]]&lt;br /&gt;
&lt;br /&gt;
Il se trouve qu’après un réglage précis de la tension d'offset permettant d'être un proche de la fréquence à capturé on obtient:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0025_PLL_non_verrouillage_semaine_10.jpg|center|thumb|300px|Signaux I/Q après ajout du montage.]]&lt;br /&gt;
&lt;br /&gt;
= Annexes =&lt;br /&gt;
&lt;br /&gt;
== Annexe A: Détails techniques des semaines ==&lt;br /&gt;
&lt;br /&gt;
=== 1éme semaine: (du 27/01/2014 au 01/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Après on a réfléchi sur la potentielle conception/utilisation d'une carte FPGA.&lt;br /&gt;
Il sera judicieux de ne pas se précipiter sur le schéma et la conception/utilisation d'une carte FPGA, sans avoir, au préalable fait le VHDL et le testez avec un banc de test virtuel.&lt;br /&gt;
L'intérêt et de mettre en valeur la nécessité ou non de certains signaux pour le schéma de la carte.&lt;br /&gt;
On va mettre en oeuvre les connaissances acquises au S7 en VHDL (en TP de Circuit Numérique Programmble).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est de l'Arduino, on a répondu aux interrogations suivantes (certaines de ces questions paraissent triviales, mais on préfère éviter les surprises):&lt;br /&gt;
&lt;br /&gt;
Quelle est la vitesse maximale de la communication série de l'Arduino ?&lt;br /&gt;
-115200bauds&lt;br /&gt;
&lt;br /&gt;
Est-ce que, un programme de type &amp;quot;Analog Write&amp;quot; est-il une vraie sortie analogique ?&lt;br /&gt;
&lt;br /&gt;
-Non, c'est juste une PWM. Elle sera exploitable pour faire les signales I/Q mais très contraignantes, car il faudra filtré le signal, et ce sera beaucoup trop lent (du au fait que la modulation est faite au alentour de 850Mhz), le FPGA sera un passage obligé cela ouvrira les portes d'un plus grand débit.&lt;br /&gt;
&lt;br /&gt;
==== Manipulation réalisée sur la maquette TIMS : ====&lt;br /&gt;
&lt;br /&gt;
On a fait un des montages présenté dans l'ouvrage &amp;quot;Volume D1 Fundamental Digital Experiments&amp;quot; dans le but de visualiser l’objectif à atteindre.&lt;br /&gt;
&lt;br /&gt;
On obtient la constellation suivante (16QAM):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_tims_semaine_1.PNG|300px|thumb|center|Constellation visualisé en mode X-Y.]]&lt;br /&gt;
&lt;br /&gt;
Ce qui correspond à deux signaux en visualisation temporelle de cette forme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_temporelle_tims_semaine_1.PNG|300px|thumb|center|Signaux I et Q. (Image très flouté, à remplacer)]]&lt;br /&gt;
&lt;br /&gt;
On pourra facilement obtenir le même résultat en générant un bus de trame pseudo aléatoire et en l'injectant dans un C.N.A. (Conversion Numérique Analogique)&lt;br /&gt;
&lt;br /&gt;
==== Code Arduino réalisé: ====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schema_electronique_generateur_pseudo_aleatoire.png|300px|thumb|center|Schéma électronique du générateur pseudo aléatoire.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_chrono_simule.PNG|300px|thumb|center|Résultat de la simulation du générateur pseudo aléatoire (on a eu la même chose en pratique).]]&lt;br /&gt;
&lt;br /&gt;
[code]&lt;br /&gt;
/*A peut être supprimer*/&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;		&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void output_init(void){&lt;br /&gt;
  DDRB |= 0x02; // PIN 8,9 sont les deux sorties.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(void){&lt;br /&gt;
  int r1=1,r2=0,r3=0,r4=0,r5=0,retard=0;&lt;br /&gt;
  PORTB=0x00;&lt;br /&gt;
  while(1)&lt;br /&gt;
    {&lt;br /&gt;
      r5=r4;//chaque affectation représente une recopie de la bascule sur le &amp;quot;front montant&amp;quot;, ici c'est simplement l’exécution du code.&lt;br /&gt;
      r4=r3;&lt;br /&gt;
      r3=r2;&lt;br /&gt;
      r2=r1;&lt;br /&gt;
      r1=r4^r5;&lt;br /&gt;
      PORTB=0x01*r1+0x02*retard;//écriture des signaux&lt;br /&gt;
      _delay_ms(10);//le &amp;quot;front montant&amp;quot;, ce qui permet de faire un genre d'horloge.&lt;br /&gt;
      retard=r5;//déphasage du signal&lt;br /&gt;
    }&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
[/code]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_arduino.jpg|300px|thumb|center|Resultat avec le generateur pseudo aléatoire &amp;quot;émuler&amp;quot; avec l'Arduino.]]&lt;br /&gt;
&lt;br /&gt;
Comparaison carte réelle/résultat Arduino:&lt;br /&gt;
&lt;br /&gt;
C'était exactement les signaux attendus (même s'il y un décalage a par rapport à l'original).&lt;br /&gt;
&lt;br /&gt;
On aura bien pour une QPSK (4PSK) tous les couples (ie 00,01,11 et 10).&lt;br /&gt;
&lt;br /&gt;
À propos de l'arduino, on pourra envisager une amélioration pour générer une séquence plus longue:&lt;br /&gt;
&lt;br /&gt;
-il faudra simplement utiliser un tableau d'entier.&lt;br /&gt;
&lt;br /&gt;
-paramétrer sa taille avec un N par exemple.&lt;br /&gt;
&lt;br /&gt;
-N correspondra à la taille de séquence de longueur 2^N.&lt;br /&gt;
&lt;br /&gt;
Voir la section &amp;quot;Code Arduino réalisé&amp;quot; en annexe B dans la semaine correspondante.&lt;br /&gt;
&lt;br /&gt;
==== Possibilités de communications: ====&lt;br /&gt;
&lt;br /&gt;
Exploration des possibilités de communication entre le PC et la carte en amont:&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; Ethernet: =====&lt;br /&gt;
&lt;br /&gt;
*+ Vitesse de transmission (~10M-100M-G)bauds&lt;br /&gt;
&lt;br /&gt;
*- La gestion du flux de données doit être faite par un microcontrôleur (celui-ci pourra être implémenté un bloc I.P. à l'intérieur du FPGA)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; - Haute consommation de CLB du FPGA.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; SPI (communication série): =====&lt;br /&gt;
&lt;br /&gt;
*- Vitesse de transmission&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Arduino capable de communiquer jusqu'a 115200 bauds&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; D'après certaines discussions on pourrait « pousser » au-delà : voir le lien des sujets Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; I2C : =====&lt;br /&gt;
&lt;br /&gt;
Communication abandonné, ce n'est pas une priorité.&lt;br /&gt;
&lt;br /&gt;
==== À propos des blocs I.P.: ====&lt;br /&gt;
&lt;br /&gt;
En consultant les ordinateurs et en s'appuyant des TPs de CNP, on constate que les blocs suivants existent:&lt;br /&gt;
&lt;br /&gt;
- Xilinx Microblaze/Xilinx Power PC (&amp;quot;µP FPGA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Est-ce possible d'utiliser ces blocs I.P. pour programmer un FPGA sur une carte autre que la Nanoboard ? Comment ?&lt;br /&gt;
&lt;br /&gt;
- EMACx (Ethernet Media Acess Control)(:lien physique entre processeurs et &amp;quot;standart Physical Layer device IEEE802.3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===== Conception de la carte: =====&lt;br /&gt;
&lt;br /&gt;
L'idéal est de se documenter sur la Compatibilité électromagnétique.&lt;br /&gt;
&lt;br /&gt;
=== 2éme semaine: (du 03/02/2014 au 08/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 3éme semaine: (du 10/02/2014 au 15/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, après avoir eu le problème de manipulation, nous avons pus prendre connaissance d'un certain montage qui s’avéra utile pour la conception de la carte/maquette.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_limiteur_de_courant_semaine_3.PNG|300px|thumb|center|Schéma limiteur de courant.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que ce montage se retrouve dans la partie &amp;quot;typical application&amp;quot; de la documentation technique du 7805.&lt;br /&gt;
&lt;br /&gt;
=== 4éme semaine: (du 17/02/2014 au 22/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
On souhaite pouvoir réaliser une communication unidirectionnel ou même transmettre un signal audio ce qui nous contraint à une bande passante minimal de 48kHz, on prendra 200kHz (Pour être bien au delà de la conditions du théorème de Shannon): le but serait donc de branchez par exemple une source audio quelconque puis de la transmettre à travers la maquette et de la recomposer en fin de chaine.&lt;br /&gt;
&lt;br /&gt;
Après édition rapide du schématique on en dégage qu'il nous faudra un minimum d'environ 50 entrées/sorties. Mais ceci ce nombre sera très probablement revue à la hausse lors de prochaine séance.&lt;br /&gt;
&lt;br /&gt;
Voici la carte que l'on utilisera dans la suite du projet:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_S3BOARD-top-400_semaine_4.gif|300px|thumb|center|Digilent Spartan 3.]]&lt;br /&gt;
&lt;br /&gt;
=== 5éme semaine: (du 03/03/2014 au 08/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lien vers le Design complet avec les librairies incluses (on remarquera qu'il serait judicieux d’installer toutes les librairies avant d’essayer d'ouvrir le schéma)&lt;br /&gt;
&lt;br /&gt;
A notez aussi que l'on trouvera des reliques de feuilles Excel permettant de trouver rapidement des ratios dans la série E12.&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_Design_pcb_plus_librairies_semaine_5_6.zip|Schéma + Bibliothèques.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.pdf|Schéma en PDF.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.png|Schéma au format A2.]]&lt;br /&gt;
&lt;br /&gt;
=== 6éme semaine: (du 10/03/2014 au 15/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 7éme semaine: (du 17/03/2014 au 22/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 8éme semaine: (du 24/03/2014 au 26/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 9éme semaine: (du 28/03/2014 au 03/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0061_1_r_2r_semaine_9.jpg|center|thumb|300px|Le réseau R-2R.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0062_1_4QAM_semaine_9.jpg|center|thumb|300px|4QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0066_1_16QAM_semaine_9.jpg|center|thumb|300px|16QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0069_1_64QAM_semaine_9.jpg|center|thumb|300px|64QAM.]]&lt;br /&gt;
&lt;br /&gt;
Pas de photos pour la constellation à 256 points, mais elle a été réalisée.&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du montage, malgré que la P.L.L., on a un signal d'erreur après filtrage :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Chaine 1: Vtune (commande du V.C.O.)/Chaine 2: &amp;quot;erreur&amp;quot; de commande]]&lt;br /&gt;
&lt;br /&gt;
Ce qui mets en valeur immédiatement deux problèmes majeurs:&lt;br /&gt;
&lt;br /&gt;
La chaine fonctionne sur le papier, mais lors de sa mise en pratique, il faut penser à mettre une tension d'offset et aussi réaliser une amplification de l'erreur pour avoir des grandeur de commande adapté au Vtune du V.C.O..&lt;br /&gt;
&lt;br /&gt;
On propose l'amélioration suivante (qui sera réalisé à la prochaine séance):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Proposition de voie d'amélioration.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que les valeurs des résistances et des capacité on était choisit pour permettre un fonctionnement correct des A.O. (Amplificateur Opérationnel), mais pas pour ce qui de l'asservissement de la boucle par manque de temps. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette, on a eu à démonter le montage à cause de contraintes concernant les mini-circuits (car utilisé en travaux pratiques).&lt;br /&gt;
&lt;br /&gt;
=== 10éme semaine: (rédaction en cours) (du 07/04/2014 au 10/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
Spectres des signaux de la chaine de transmission:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0001_allure_spectre_reception_semaine_10.jpg|center|thumb|300px|Spectre en réception.]]&lt;br /&gt;
&lt;br /&gt;
Porteuse utilisé pour la modulation I/Q à environ 60MHz.&lt;br /&gt;
&lt;br /&gt;
P34_2013_2014_DSC_0001_allure_spectre_reception_semaine_10.jpg&lt;br /&gt;
&lt;br /&gt;
Porteuse utilisé pour le transport en fréquence à environ 810MHz:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0035_constellation_recupere_PLL_NV_semaine_10.jpg|center|thumb|300px|&amp;quot;Constellation&amp;quot; récupéré avec la PLL défectueuse (on souhaite se verrouillé sur la raie à 868MHz).]]&lt;br /&gt;
&lt;br /&gt;
Question en suspend: faudrai t'il utiliser un filtre passe bande incluant 868Mhz pour pouvoir se verrouillé sur cette fréquence ?&lt;br /&gt;
&lt;br /&gt;
On remarquera sur le fait que l'oscillateur du côté de la chaine d'émission à d'importante non linéarité (on peut observer à l'analyseur de spectre 3 à 4 raies aux fréquences multiples).&lt;br /&gt;
&lt;br /&gt;
Ce qui donne un diagramme de constellation plutot mauvais si l'on fait le montage suivant:&lt;br /&gt;
&lt;br /&gt;
== Annexe B: Digilent Spartan 3 ==&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire fonctionner la carte Digilent Spartan 3: ===&lt;br /&gt;
&lt;br /&gt;
Ne connectez pas de connecteur JTAG pendant les installations. Redémarrez après chaque installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut savoir que le l'ISE Webpack 14.6 fonctionne avec la carte (n'utilisez pas la 14.7, elle ne supporte pas la génération spartan 3 !):&lt;br /&gt;
&lt;br /&gt;
Installez donc l'ISE WebPack 14.6 (ou antérieur à condition que celle-ci soit supérieur à la 7.1i (d'aprés leur documentation))&lt;br /&gt;
&lt;br /&gt;
(voir lien utile sur Xilinx)&lt;br /&gt;
&lt;br /&gt;
Une fois l'installation de l'ISE terminé, faites en sorte d'avoir celui que soit opérationnel (la licence est gratuite !).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installez la &amp;quot;library&amp;quot; ADEPT 2.3 voir le lien utile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après vous n'avez plus qu'a utilisez ISE Xilinx normalement et vous serez capable de reconnaitre la carte via la liaison JTAG, et de le programmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Liens utiles: ===&lt;br /&gt;
&lt;br /&gt;
Lien constructeur/vendeur (avec ressources utiles en bas de la page):&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?Prod=S3BOARD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien &amp;quot;Library&amp;quot; pour le câble USB digilent:&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,69&amp;amp;Prod=ADEPT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour l'ISE 14.6):&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/products/design-tools/ise-design-suite/index.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour les versions antérieures veuillez faire attention au système d'exploitation, votre architecture matérielle et le FPGA cible):&lt;br /&gt;
&lt;br /&gt;
(Les informations de compatibilité son sur la page suivante:) (mots clés: xilinx classic(s))&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/tools/classics.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream, et le charger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en &amp;quot;non&amp;quot;-volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream et l'utiliser pour générer un .mcs qui vous permettra d'inscrire le programme dans la mémoire (E?)PROM.&lt;br /&gt;
&lt;br /&gt;
On remarquera que la programmation en non-volatile est utile pour faire un remise à zéro et recharger le contenu de l'(E?)PROM, mais semble être sensible au débranchement de l'adaptateur d'alimentation de la carte.&lt;br /&gt;
&lt;br /&gt;
=== Exemple de programmation: ===&lt;br /&gt;
&lt;br /&gt;
Voir le lien digilent pour ceci dans cette annexe.&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:P34_2013_2014_DSC_0001_allure_spectre_reception_semaine_10.jpg&amp;diff=11586</id>
		<title>Fichier:P34 2013 2014 DSC 0001 allure spectre reception semaine 10.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:P34_2013_2014_DSC_0001_allure_spectre_reception_semaine_10.jpg&amp;diff=11586"/>
				<updated>2014-04-13T20:09:50Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:P34_2013_2014_DSC_0035_constellation_recupere_PLL_NV_semaine_10.jpg&amp;diff=11585</id>
		<title>Fichier:P34 2013 2014 DSC 0035 constellation recupere PLL NV semaine 10.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:P34_2013_2014_DSC_0035_constellation_recupere_PLL_NV_semaine_10.jpg&amp;diff=11585"/>
				<updated>2014-04-13T20:03:32Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11584</id>
		<title>Modem pour le numérique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11584"/>
				<updated>2014-04-13T19:54:19Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* 9éme semaine: (du 28/03/2014 au 03/04/2014) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Modulateur et démodulateur pour communications numériques =&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
=== Présentation générale du projet ===&lt;br /&gt;
&lt;br /&gt;
Dans le cadre des TPs d'électronique et de transmission RF, nous avons découvert qu'il existe plusieurs modes de modulation, pour transmettre un signal modulant.&lt;br /&gt;
&lt;br /&gt;
Celles vues en TP au S7 sont la modulation en amplitude, en fréquence, en phase, en BPSK et en QPSK.&lt;br /&gt;
&lt;br /&gt;
Or les modulations en phase, en fréquence et en amplitude étant celles les plus connues, la modulation en QAM (Modulation d'Amplitude en Quadrature) est quant à elle moins connue, mais tout aussi utilisées:&lt;br /&gt;
&lt;br /&gt;
-pour la TNT en 64 QAM (en France).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_64qam.jpg|300px|thumb|center|Exemple de constellation 64QAM.]]&lt;br /&gt;
&lt;br /&gt;
-pour le WiFi en 64-QAM ou 256-QAM (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Or ces deux dernières étant peu représentées au niveau des travaux pratiques, ce projet permettra de fournir un peu plus de pratique sur les modulations de type QAM (en diagramme I/Q) dans le domaine des radiofréquences (~800MHz).&lt;br /&gt;
&lt;br /&gt;
(Le nombre devant le QAM indique le nombre de points dans le diagramme I/Q qu'on appelle aussi constellation)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se réserve le droit de faire '''évoluer''' le cahier des charges a posteriori, si certaines contraintes étaient amenées à évoluer ou se préciser.&lt;br /&gt;
&lt;br /&gt;
=== Objectif et intérêt du projet ===&lt;br /&gt;
&lt;br /&gt;
Pour cela, on nous a fourni des modules commerciaux Mini-circuit pouvant travailler dans les radios-fréquences.&lt;br /&gt;
&lt;br /&gt;
Ceux-ci permettront de mettre en place une grande partie de la chaine de transmission (voir schéma de la chaine de transmission).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_modulation.PNG|300px|thumb|center|Modulation.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_demodulation.PNG|300px|thumb|center|Demodulation.]]&lt;br /&gt;
&lt;br /&gt;
On a tout d'abord à mettre en place une carte FPGA et/ou un dispositif permettant d'envoyer un flux de données numériques continuellement pour pouvoir visualiser le diagramme I/Q (mise en valeur du diagramme I/Q et voir même un diagramme un peu plus complexe que le BPSK ou le QPSK).&lt;br /&gt;
&lt;br /&gt;
Le canal de transmission qui sera un simple fil électrique, mais pourra devenir une antenne réceptrice et émettrice si le temps imparti le permet (mise en valeur du et mesure du Bit Error Rate qui sera bien sûr différent suivant le canal de transmission).&lt;br /&gt;
&lt;br /&gt;
Du côté réception ,après démodulation du signal, une remise en forme et une interprétation des données seront réalisées, celle-ci dépendra bien entendu de la provenance du flux de données (constater le succès ou l'échec d'un envoi de données).&lt;br /&gt;
&lt;br /&gt;
Enfin si le temps le permets on pourra mettre en une place un système de codage de l'information avec par exemple un codage redondant permettant de corrigé l'erreur (À définir, on pourra faire constater l'efficacité d'une méthode de codage au choix).&lt;br /&gt;
&lt;br /&gt;
=== Étapes/Déroulement du projet ===&lt;br /&gt;
&lt;br /&gt;
De même que pour le cahier des charges, il se peut que les étapes diffèrent plus ou moins, en fonction des disponibilités, matérielles et contraintes.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Caractérisation des blocs Mini-circuits et épluchage des documentations techniques====&lt;br /&gt;
Avant de les utiliser dans la chaine de transmission, nous avons à faire une caractérisation des blocs fournis:&lt;br /&gt;
&lt;br /&gt;
-la caractérisation du VCO.&lt;br /&gt;
&lt;br /&gt;
-l'étude des possibilités offerte par le modulateur (cela déterminera le nombre de points possible dans la constellation, ie savoir si l'on peut aller au-delà de la QPSK).&lt;br /&gt;
&lt;br /&gt;
-la caractérisation des mélangeurs (Mixer), leurs facteurs réels de multiplication.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Utilisation et exploitation des caractérisations ====&lt;br /&gt;
On pourra ensuite trouver les paramètres pour régler correctement dans notre chaine de transmission certains de nos sous-systèmes comme la boucle à verrouillage de phase.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Génération d'un flux des données numériques ====&lt;br /&gt;
Comme dit précédemment, l'idéal et d'avoir un flux de données numériques transmis en permanence.&lt;br /&gt;
Pour cela plusieurs solutions s'offre à nous, on pourra utiliser un montage générateur pseudo aléatoire (un circuit que l'on a fait l'année dernière en Conception de Circuit Électronique).&lt;br /&gt;
On pourra &amp;quot;émuler&amp;quot; ce montage avec un Arduino, ou bien même le faire au moyen de la Nanoboard.&lt;br /&gt;
On pourra aussi transmettre des chaines de caractère en continu.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Test de la chaine ====&lt;br /&gt;
Une fois les étapes précédentes réalisées, on pourra passer au test de la chaine de transmission. Il faudra vérifier le bon fonctionnement en aval, dedans (boucle a verrouillage de phase), et en amont de la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Première mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
Il est possible que la conception d'un dispositif soit nécessaire que ce soit pour les deux mesures du B.E.R..&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Antennes ====&lt;br /&gt;
Si toutes les étapes précédentes sont satisfaites, on pourra alors faire un canal de transmission plus intéressant, à savoir l'air.&lt;br /&gt;
Nous passerons alors à la conception des antennes, émettrice et réceptrice.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Deuxième mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Codage de l'information et correction d'erreur ====&lt;br /&gt;
En toute fin de ce projet, on pourra même mettre deux dispositifs en aval et en amont de la chaine de transmission.&lt;br /&gt;
On réalisera alors un codeur et un décodeur permettant de faire de la détection/correction d'erreur.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Mise en place d'outil de débogage (tout au long)====&lt;br /&gt;
La mise en place de simples outils de débogage et primordiale, ceux-ci permettront de vérifier le bon fonctionnement de la chaine.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Proposition d'un sujet de TP (tout au long) ====&lt;br /&gt;
Il se trouve que lors du déroulement du projet, on pourra être amené à se poser des questions au niveau des réglages de la chaine de transmission.&lt;br /&gt;
Or il est fort probable que les élèves qui travailleront sur ce TP pourront alors se poser les mêmes questions.&lt;br /&gt;
C'est pour cela qui sera judicieux de prendre soin de noter les problématiques rencontrées et de donner un certain fil de développement pour venir à bout de la problématique posée.&lt;br /&gt;
Ce qui reviendra à proposer des axes/questions sur les manipulations de cette maquette de TP.&lt;br /&gt;
&lt;br /&gt;
== Note valable pour toutes les semaines ==&lt;br /&gt;
&lt;br /&gt;
'''[[Si un point vous semble imprécis, veuillez vous reportez aux détails fournit en annexe.]]'''&lt;br /&gt;
&lt;br /&gt;
== 1éme semaine: (du 27/01/2014 au 01/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Séance du 05/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Pour bien comprendre les différentes choses à réaliser, on a refait les manipulations vues en TP. On a, pour cela utiliser la maquette didactique TIMS pour générer différent type de modulation:&lt;br /&gt;
&lt;br /&gt;
-la modulation en 4,8,16PSK (on obtient une constellation en forme de cercle).&lt;br /&gt;
&lt;br /&gt;
-La modulation en 4,8,16QAM (on obtient une constellation avec un carré, ou deux: de différentes tailles).&lt;br /&gt;
&lt;br /&gt;
On a très vite dégagé la nécessité de réaliser un montage générateur de tous les mots numériques possibles.&lt;br /&gt;
On a donc fait un programme sur arduino qui équivaut au générateur pseudo aléatoire.&lt;br /&gt;
Celui-ci est directement inspiré du montage que l'on a réalisé l'année dernière en conception de circuit électronique.&lt;br /&gt;
&lt;br /&gt;
Séance du 06/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Lors de cette séance on a exploré toute les possibilités concernant la communication entre la maquette/carte car cela pour avoir une influecnce non négligeable sur le choix de la carte F.P.G.A. et du design de la maquette.&lt;br /&gt;
&lt;br /&gt;
On a donc aussi fait des recherches concernant les possibilités de communications et les bloc I.P. (Intellectual Properties) permettant de programmer un F.P.G.A.&lt;br /&gt;
&lt;br /&gt;
Et enfin, on a eu une discussion avec un responsable technique pour ce qui de la C.E.M. (Compatibilité Electro-Magnétique)&lt;br /&gt;
&lt;br /&gt;
== 2éme semaine: (du 03/02/2014 au 08/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Réflexion sur les possibilités possibles et offertes par le sujet pour ce qui est des parties de communications entre la maquette en interne et de son environnement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_principe_carte_semaine_2.PNG|300px|thumb|center|Maquette en interne/externe.]]&lt;br /&gt;
&lt;br /&gt;
N'ayant jamais utilisé d'autre carte que la Nanoboard, on s'est attelé à faire des recherches sur la manière de procéder pour programmer une carte F.P.G.A., il se trouve que chaque carte de développement à ses propes manières pour être programmé.&lt;br /&gt;
&lt;br /&gt;
On a pris le soin de notez toutes les questions concernant le F.P.G.A. pour un intervenant industrielle qui assura un cours la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
== 3éme semaine: (du 10/02/2014 au 15/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Ayant les oscillateurs commandables en tension, on a pu commencer à faire une manipulation avec les composants Mini Circuit.&lt;br /&gt;
&lt;br /&gt;
Mais après un problème suite à une manipulation l'un des VCOs ne fonctionne plus.&lt;br /&gt;
&lt;br /&gt;
Ce qui nous amène à penser qu'il sera judicieux de prévoir une alimentation au niveau de la carte.&lt;br /&gt;
&lt;br /&gt;
Celle-ci devra être inférieure ou égale à la tension maximale d'alimentation du composant (ceux-ci étant très sensible).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Questions/Réponses:&lt;br /&gt;
&lt;br /&gt;
Comment fait-on pour programmer une carte F.P.G.A. est-ce que la programmation se fait &amp;quot;in situe&amp;quot; ? (in situe : c'est à dire sur la carte elle même) &lt;br /&gt;
Oui, c'est ce qui est utilisé, via une câble JTAG.&lt;br /&gt;
&lt;br /&gt;
Est-ce possible faire une interface USB pour permettre à un ordinateur de communiquer avec la maquette/carte via un F.P.G.A. ? Oui.&lt;br /&gt;
&lt;br /&gt;
Est-ce que la gestion de l'interface Ethernet est envisageable ? Oui.&lt;br /&gt;
&lt;br /&gt;
Pour une communication en protocole UDP avec un ordinateur via une liaison Ethernet, est-ce qu'il y a d'autre façon que d'utiliser un Soft Core ?&lt;br /&gt;
&lt;br /&gt;
Oui, il existe aussi bien en Software, qu'en Hardware.&lt;br /&gt;
&lt;br /&gt;
== 4éme semaine: (du 17/02/2014 au 22/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a donc repris l'idée de la 2éme semaine.&lt;br /&gt;
&lt;br /&gt;
Après avoir mis en place un cahier des charges au niveau des qualités, bande passante minimale.&lt;br /&gt;
&lt;br /&gt;
Nous avons fait des recherches sur les composants à utiliser (ie CAN, CAN, ...)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous a permis après une édition rapide de schéma électrique (schematic) d'avoir une idée du nombre de pins dont nous aurons besoin sur une carte FPGA afin de réaliser le projet.&lt;br /&gt;
&lt;br /&gt;
Après prospection, il se trouve que nous nous dirigerions vers la carte Digilent Spartan 3, dont l'école était déjà en possession.&lt;br /&gt;
&lt;br /&gt;
Donc nous nous sommes attelés à faire des recherches et des essais sur cette carte et pour notamment trouver un moyen de la faire fonctionner.&lt;br /&gt;
&lt;br /&gt;
== 5éme semaine: (du 03/03/2014 au 08/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, après plusieurs heures de recherches et d'essai infructueux, on a fini par trouver les drivers pour le câble USB diligent.&lt;br /&gt;
&lt;br /&gt;
Et donc ainsi avoir un fonctionnement de la communication via le câble JTAG plus propice au fonctionnement de la carte.&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur une partie des composants et des dimensionnements pour certains d'entre eux (valeur de résistance,capacité...)&lt;br /&gt;
&lt;br /&gt;
Schématics: Édition de multiple bibliothèque pour Altium, intégrant à la fois schématics et leur empreinte PCB associés.&lt;br /&gt;
&lt;br /&gt;
(On a pu constater qu'un interface 3v3 5v n'est pas forcement nécessaire pour assurer le bon fonctionnement entre deux cartes avec des tensions d'alimentation différentes.)&lt;br /&gt;
&lt;br /&gt;
== 6éme semaine: (du 10/03/2014 au 15/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur l'ensemble des composants et des choix de régulateur et utilisation d'autre diode Zener.&lt;br /&gt;
&lt;br /&gt;
On trouvera le schéma intégrale avec les bibliothèques nécessaires dans la semaine 5.&lt;br /&gt;
&lt;br /&gt;
Cette semaine à été dédié à l'envoie de la commande des composants au sein du magasin de l'école et du fournisseur.&lt;br /&gt;
&lt;br /&gt;
Après envoi de la commande, il se trouve que le projet a changé d'objectif principal.&lt;br /&gt;
&lt;br /&gt;
Il est maintenant prioritaire de réaliser un code VHDL capable d'évaluer la vitesse de transmission numérique du côté récepteur.&lt;br /&gt;
&lt;br /&gt;
== 7éme semaine: (du 17/03/2014 au 22/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Pour cette semaine, on s'est concentré sur la réalisation d'un générateur pseudo aléatoire en interne au FPGA.&lt;br /&gt;
&lt;br /&gt;
On réalisera une échelle de résistance afin de réaliser une conversion numérique analogique afin de l'envoyer sur la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
Ce code de &amp;quot;base&amp;quot; nous permettra de réaliser un flux de données fictif pour obtenir toutes les combinaisons récupérant le résultat du bus.&lt;br /&gt;
&lt;br /&gt;
[[MédiaP34_2013_2014_gene_pseudo_19_03_2014_6_semaine_7.zip|Archive contenant le projet ISE Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_rtl_semaine_7.PNG|300px|thumb|center|extrait du schéma RTL, on peut y voir clairement les inférences de Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
Ce schéma a deux entrées et une sortie, une entrée d'initialisation, une horloge et une sortie pour la trame en pseudo aléatoire.&lt;br /&gt;
&lt;br /&gt;
On fera l'essaie sur la carte lors de la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
== 8éme semaine: (du 24/03/2014 au 26/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Aprés le premier test, on pourrait penser que l'on récupère du bruit en sortie de la carte:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0024_1_probleme_d_overshoot_semaine_8.jpg|300px|thumb|center|Overshoot.]]&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir remédier à ce problème on a fait une pré-division de l'horloge&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0037_1_div_freq_semaine_8.jpg|300px|thumb|center|Overshoot après division.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0039_1_div_freq_zoom_semaine_8.jpg|300px|thumb|center|Overshoot après division (Zoom).]]&lt;br /&gt;
&lt;br /&gt;
Archive contenant toutes les modifications:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_26_03_2014_2_semaine_8.zip|VHDL Semaine 8.]]&lt;br /&gt;
&lt;br /&gt;
On a trouvé un moyen de faire un CNA facilement, via une &amp;quot;échelle dit R-2R&amp;quot;. [[http://www.uchobby.com/index.php/2008/01/08/arduino-audio-dac-options/|Pour le réseau R 2R.]]&lt;br /&gt;
&lt;br /&gt;
Il faut encore modifier le VHDL pour pouvoir l'exploiter et ainsi générer une constellation.&lt;br /&gt;
&lt;br /&gt;
== 9éme semaine: (du 28/03/2014 au 03/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pris donc le soin de modifier le VHDL:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_31_03_2014_1_semaine_9.zip|VHDL semaine 9]]&lt;br /&gt;
&lt;br /&gt;
Ce VHDL à été mis à jour, avec deux entrées (initialisation et une horloge) et un bus de sortie (8 bits), avec les trames pseudo-aléatoire.&lt;br /&gt;
&lt;br /&gt;
On envoie ces signaux sur deux C.N.A.s (4 bits chacun) pour générer deux signaux I et Q, on peut voir une constellation se dessiner en mode X-Y.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0072_1_Montage_entier_4qam_semaine_9.jpg|300px|thumb|center|Montage avec constellations 4QAM.]]&lt;br /&gt;
&lt;br /&gt;
D'autre constellations réalisées sont disponibles en annexe. On peut monter jusqu'à une constellation de 256 points (2^4*2^4).&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage complet de toute la chaine de transmission. Il se trouve que la Boucle à Verrouillage de Phase (ou appellée PLL, Phase Loop Locker) ne se verrouille pas sur la porteuse du signal que l'on souhaite récupéré, de ce fait on ne peut pas récupérer les signaux I et Q.&lt;br /&gt;
&lt;br /&gt;
== 10éme semaine: (du 07/04/2014 au 10/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage que l'on évoqué en semaine 9:&lt;br /&gt;
&lt;br /&gt;
P34_2013_2014_DSC_0027_montage_realisee_semaine_10.jpg&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0027_montage_realisee_semaine_10.jpg|center|thumb|300px|Montage pour amélioré la PLL.]]&lt;br /&gt;
&lt;br /&gt;
Il se trouve qu’après un réglage précis de la tension d'offset permettant d'être un proche de la fréquence à capturé on obtient:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0025_PLL_non_verrouillage_semaine_10.jpg|center|thumb|300px|Signaux I/Q après ajout du montage.]]&lt;br /&gt;
&lt;br /&gt;
= Annexes =&lt;br /&gt;
&lt;br /&gt;
== Annexe A: Détails techniques des semaines ==&lt;br /&gt;
&lt;br /&gt;
=== 1éme semaine: (du 27/01/2014 au 01/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Après on a réfléchi sur la potentielle conception/utilisation d'une carte FPGA.&lt;br /&gt;
Il sera judicieux de ne pas se précipiter sur le schéma et la conception/utilisation d'une carte FPGA, sans avoir, au préalable fait le VHDL et le testez avec un banc de test virtuel.&lt;br /&gt;
L'intérêt et de mettre en valeur la nécessité ou non de certains signaux pour le schéma de la carte.&lt;br /&gt;
On va mettre en oeuvre les connaissances acquises au S7 en VHDL (en TP de Circuit Numérique Programmble).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est de l'Arduino, on a répondu aux interrogations suivantes (certaines de ces questions paraissent triviales, mais on préfère éviter les surprises):&lt;br /&gt;
&lt;br /&gt;
Quelle est la vitesse maximale de la communication série de l'Arduino ?&lt;br /&gt;
-115200bauds&lt;br /&gt;
&lt;br /&gt;
Est-ce que, un programme de type &amp;quot;Analog Write&amp;quot; est-il une vraie sortie analogique ?&lt;br /&gt;
&lt;br /&gt;
-Non, c'est juste une PWM. Elle sera exploitable pour faire les signales I/Q mais très contraignantes, car il faudra filtré le signal, et ce sera beaucoup trop lent (du au fait que la modulation est faite au alentour de 850Mhz), le FPGA sera un passage obligé cela ouvrira les portes d'un plus grand débit.&lt;br /&gt;
&lt;br /&gt;
==== Manipulation réalisée sur la maquette TIMS : ====&lt;br /&gt;
&lt;br /&gt;
On a fait un des montages présenté dans l'ouvrage &amp;quot;Volume D1 Fundamental Digital Experiments&amp;quot; dans le but de visualiser l’objectif à atteindre.&lt;br /&gt;
&lt;br /&gt;
On obtient la constellation suivante (16QAM):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_tims_semaine_1.PNG|300px|thumb|center|Constellation visualisé en mode X-Y.]]&lt;br /&gt;
&lt;br /&gt;
Ce qui correspond à deux signaux en visualisation temporelle de cette forme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_temporelle_tims_semaine_1.PNG|300px|thumb|center|Signaux I et Q. (Image très flouté, à remplacer)]]&lt;br /&gt;
&lt;br /&gt;
On pourra facilement obtenir le même résultat en générant un bus de trame pseudo aléatoire et en l'injectant dans un C.N.A. (Conversion Numérique Analogique)&lt;br /&gt;
&lt;br /&gt;
==== Code Arduino réalisé: ====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schema_electronique_generateur_pseudo_aleatoire.png|300px|thumb|center|Schéma électronique du générateur pseudo aléatoire.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_chrono_simule.PNG|300px|thumb|center|Résultat de la simulation du générateur pseudo aléatoire (on a eu la même chose en pratique).]]&lt;br /&gt;
&lt;br /&gt;
[code]&lt;br /&gt;
/*A peut être supprimer*/&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;		&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void output_init(void){&lt;br /&gt;
  DDRB |= 0x02; // PIN 8,9 sont les deux sorties.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(void){&lt;br /&gt;
  int r1=1,r2=0,r3=0,r4=0,r5=0,retard=0;&lt;br /&gt;
  PORTB=0x00;&lt;br /&gt;
  while(1)&lt;br /&gt;
    {&lt;br /&gt;
      r5=r4;//chaque affectation représente une recopie de la bascule sur le &amp;quot;front montant&amp;quot;, ici c'est simplement l’exécution du code.&lt;br /&gt;
      r4=r3;&lt;br /&gt;
      r3=r2;&lt;br /&gt;
      r2=r1;&lt;br /&gt;
      r1=r4^r5;&lt;br /&gt;
      PORTB=0x01*r1+0x02*retard;//écriture des signaux&lt;br /&gt;
      _delay_ms(10);//le &amp;quot;front montant&amp;quot;, ce qui permet de faire un genre d'horloge.&lt;br /&gt;
      retard=r5;//déphasage du signal&lt;br /&gt;
    }&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
[/code]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_arduino.jpg|300px|thumb|center|Resultat avec le generateur pseudo aléatoire &amp;quot;émuler&amp;quot; avec l'Arduino.]]&lt;br /&gt;
&lt;br /&gt;
Comparaison carte réelle/résultat Arduino:&lt;br /&gt;
&lt;br /&gt;
C'était exactement les signaux attendus (même s'il y un décalage a par rapport à l'original).&lt;br /&gt;
&lt;br /&gt;
On aura bien pour une QPSK (4PSK) tous les couples (ie 00,01,11 et 10).&lt;br /&gt;
&lt;br /&gt;
À propos de l'arduino, on pourra envisager une amélioration pour générer une séquence plus longue:&lt;br /&gt;
&lt;br /&gt;
-il faudra simplement utiliser un tableau d'entier.&lt;br /&gt;
&lt;br /&gt;
-paramétrer sa taille avec un N par exemple.&lt;br /&gt;
&lt;br /&gt;
-N correspondra à la taille de séquence de longueur 2^N.&lt;br /&gt;
&lt;br /&gt;
Voir la section &amp;quot;Code Arduino réalisé&amp;quot; en annexe B dans la semaine correspondante.&lt;br /&gt;
&lt;br /&gt;
==== Possibilités de communications: ====&lt;br /&gt;
&lt;br /&gt;
Exploration des possibilités de communication entre le PC et la carte en amont:&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; Ethernet: =====&lt;br /&gt;
&lt;br /&gt;
*+ Vitesse de transmission (~10M-100M-G)bauds&lt;br /&gt;
&lt;br /&gt;
*- La gestion du flux de données doit être faite par un microcontrôleur (celui-ci pourra être implémenté un bloc I.P. à l'intérieur du FPGA)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; - Haute consommation de CLB du FPGA.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; SPI (communication série): =====&lt;br /&gt;
&lt;br /&gt;
*- Vitesse de transmission&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Arduino capable de communiquer jusqu'a 115200 bauds&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; D'après certaines discussions on pourrait « pousser » au-delà : voir le lien des sujets Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; I2C : =====&lt;br /&gt;
&lt;br /&gt;
Communication abandonné, ce n'est pas une priorité.&lt;br /&gt;
&lt;br /&gt;
==== À propos des blocs I.P.: ====&lt;br /&gt;
&lt;br /&gt;
En consultant les ordinateurs et en s'appuyant des TPs de CNP, on constate que les blocs suivants existent:&lt;br /&gt;
&lt;br /&gt;
- Xilinx Microblaze/Xilinx Power PC (&amp;quot;µP FPGA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Est-ce possible d'utiliser ces blocs I.P. pour programmer un FPGA sur une carte autre que la Nanoboard ? Comment ?&lt;br /&gt;
&lt;br /&gt;
- EMACx (Ethernet Media Acess Control)(:lien physique entre processeurs et &amp;quot;standart Physical Layer device IEEE802.3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===== Conception de la carte: =====&lt;br /&gt;
&lt;br /&gt;
L'idéal est de se documenter sur la Compatibilité électromagnétique.&lt;br /&gt;
&lt;br /&gt;
=== 2éme semaine: (du 03/02/2014 au 08/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 3éme semaine: (du 10/02/2014 au 15/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, après avoir eu le problème de manipulation, nous avons pus prendre connaissance d'un certain montage qui s’avéra utile pour la conception de la carte/maquette.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_limiteur_de_courant_semaine_3.PNG|300px|thumb|center|Schéma limiteur de courant.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que ce montage se retrouve dans la partie &amp;quot;typical application&amp;quot; de la documentation technique du 7805.&lt;br /&gt;
&lt;br /&gt;
=== 4éme semaine: (du 17/02/2014 au 22/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
On souhaite pouvoir réaliser une communication unidirectionnel ou même transmettre un signal audio ce qui nous contraint à une bande passante minimal de 48kHz, on prendra 200kHz (Pour être bien au delà de la conditions du théorème de Shannon): le but serait donc de branchez par exemple une source audio quelconque puis de la transmettre à travers la maquette et de la recomposer en fin de chaine.&lt;br /&gt;
&lt;br /&gt;
Après édition rapide du schématique on en dégage qu'il nous faudra un minimum d'environ 50 entrées/sorties. Mais ceci ce nombre sera très probablement revue à la hausse lors de prochaine séance.&lt;br /&gt;
&lt;br /&gt;
Voici la carte que l'on utilisera dans la suite du projet:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_S3BOARD-top-400_semaine_4.gif|300px|thumb|center|Digilent Spartan 3.]]&lt;br /&gt;
&lt;br /&gt;
=== 5éme semaine: (du 03/03/2014 au 08/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lien vers le Design complet avec les librairies incluses (on remarquera qu'il serait judicieux d’installer toutes les librairies avant d’essayer d'ouvrir le schéma)&lt;br /&gt;
&lt;br /&gt;
A notez aussi que l'on trouvera des reliques de feuilles Excel permettant de trouver rapidement des ratios dans la série E12.&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_Design_pcb_plus_librairies_semaine_5_6.zip|Schéma + Bibliothèques.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.pdf|Schéma en PDF.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.png|Schéma au format A2.]]&lt;br /&gt;
&lt;br /&gt;
=== 6éme semaine: (du 10/03/2014 au 15/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 7éme semaine: (du 17/03/2014 au 22/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 8éme semaine: (du 24/03/2014 au 26/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 9éme semaine: (du 28/03/2014 au 03/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0061_1_r_2r_semaine_9.jpg|center|thumb|300px|Le réseau R-2R.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0062_1_4QAM_semaine_9.jpg|center|thumb|300px|4QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0066_1_16QAM_semaine_9.jpg|center|thumb|300px|16QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0069_1_64QAM_semaine_9.jpg|center|thumb|300px|64QAM.]]&lt;br /&gt;
&lt;br /&gt;
Pas de photos pour la constellation à 256 points, mais elle a été réalisée.&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du montage, malgré que la P.L.L., on a un signal d'erreur après filtrage :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Chaine 1: Vtune (commande du V.C.O.)/Chaine 2: &amp;quot;erreur&amp;quot; de commande]]&lt;br /&gt;
&lt;br /&gt;
Ce qui mets en valeur immédiatement deux problèmes majeurs:&lt;br /&gt;
&lt;br /&gt;
La chaine fonctionne sur le papier, mais lors de sa mise en pratique, il faut penser à mettre une tension d'offset et aussi réaliser une amplification de l'erreur pour avoir des grandeur de commande adapté au Vtune du V.C.O..&lt;br /&gt;
&lt;br /&gt;
On propose l'amélioration suivante (qui sera réalisé à la prochaine séance):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Proposition de voie d'amélioration.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que les valeurs des résistances et des capacité on était choisit pour permettre un fonctionnement correct des A.O. (Amplificateur Opérationnel), mais pas pour ce qui de l'asservissement de la boucle par manque de temps. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette, on a eu à démonter le montage à cause de contraintes concernant les mini-circuits (car utilisé en travaux pratiques).&lt;br /&gt;
&lt;br /&gt;
=== 10éme semaine: (rédaction en cours) (du 07/04/2014 au 10/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
== Annexe B: Digilent Spartan 3 ==&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire fonctionner la carte Digilent Spartan 3: ===&lt;br /&gt;
&lt;br /&gt;
Ne connectez pas de connecteur JTAG pendant les installations. Redémarrez après chaque installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut savoir que le l'ISE Webpack 14.6 fonctionne avec la carte (n'utilisez pas la 14.7, elle ne supporte pas la génération spartan 3 !):&lt;br /&gt;
&lt;br /&gt;
Installez donc l'ISE WebPack 14.6 (ou antérieur à condition que celle-ci soit supérieur à la 7.1i (d'aprés leur documentation))&lt;br /&gt;
&lt;br /&gt;
(voir lien utile sur Xilinx)&lt;br /&gt;
&lt;br /&gt;
Une fois l'installation de l'ISE terminé, faites en sorte d'avoir celui que soit opérationnel (la licence est gratuite !).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installez la &amp;quot;library&amp;quot; ADEPT 2.3 voir le lien utile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après vous n'avez plus qu'a utilisez ISE Xilinx normalement et vous serez capable de reconnaitre la carte via la liaison JTAG, et de le programmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Liens utiles: ===&lt;br /&gt;
&lt;br /&gt;
Lien constructeur/vendeur (avec ressources utiles en bas de la page):&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?Prod=S3BOARD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien &amp;quot;Library&amp;quot; pour le câble USB digilent:&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,69&amp;amp;Prod=ADEPT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour l'ISE 14.6):&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/products/design-tools/ise-design-suite/index.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour les versions antérieures veuillez faire attention au système d'exploitation, votre architecture matérielle et le FPGA cible):&lt;br /&gt;
&lt;br /&gt;
(Les informations de compatibilité son sur la page suivante:) (mots clés: xilinx classic(s))&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/tools/classics.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream, et le charger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en &amp;quot;non&amp;quot;-volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream et l'utiliser pour générer un .mcs qui vous permettra d'inscrire le programme dans la mémoire (E?)PROM.&lt;br /&gt;
&lt;br /&gt;
On remarquera que la programmation en non-volatile est utile pour faire un remise à zéro et recharger le contenu de l'(E?)PROM, mais semble être sensible au débranchement de l'adaptateur d'alimentation de la carte.&lt;br /&gt;
&lt;br /&gt;
=== Exemple de programmation: ===&lt;br /&gt;
&lt;br /&gt;
Voir le lien digilent pour ceci dans cette annexe.&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11583</id>
		<title>Modem pour le numérique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11583"/>
				<updated>2014-04-13T19:53:41Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* 10éme semaine: (rédaction en cours) (du 07/04/2014 au 10/04/2014) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Modulateur et démodulateur pour communications numériques =&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
=== Présentation générale du projet ===&lt;br /&gt;
&lt;br /&gt;
Dans le cadre des TPs d'électronique et de transmission RF, nous avons découvert qu'il existe plusieurs modes de modulation, pour transmettre un signal modulant.&lt;br /&gt;
&lt;br /&gt;
Celles vues en TP au S7 sont la modulation en amplitude, en fréquence, en phase, en BPSK et en QPSK.&lt;br /&gt;
&lt;br /&gt;
Or les modulations en phase, en fréquence et en amplitude étant celles les plus connues, la modulation en QAM (Modulation d'Amplitude en Quadrature) est quant à elle moins connue, mais tout aussi utilisées:&lt;br /&gt;
&lt;br /&gt;
-pour la TNT en 64 QAM (en France).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_64qam.jpg|300px|thumb|center|Exemple de constellation 64QAM.]]&lt;br /&gt;
&lt;br /&gt;
-pour le WiFi en 64-QAM ou 256-QAM (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Or ces deux dernières étant peu représentées au niveau des travaux pratiques, ce projet permettra de fournir un peu plus de pratique sur les modulations de type QAM (en diagramme I/Q) dans le domaine des radiofréquences (~800MHz).&lt;br /&gt;
&lt;br /&gt;
(Le nombre devant le QAM indique le nombre de points dans le diagramme I/Q qu'on appelle aussi constellation)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se réserve le droit de faire '''évoluer''' le cahier des charges a posteriori, si certaines contraintes étaient amenées à évoluer ou se préciser.&lt;br /&gt;
&lt;br /&gt;
=== Objectif et intérêt du projet ===&lt;br /&gt;
&lt;br /&gt;
Pour cela, on nous a fourni des modules commerciaux Mini-circuit pouvant travailler dans les radios-fréquences.&lt;br /&gt;
&lt;br /&gt;
Ceux-ci permettront de mettre en place une grande partie de la chaine de transmission (voir schéma de la chaine de transmission).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_modulation.PNG|300px|thumb|center|Modulation.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_demodulation.PNG|300px|thumb|center|Demodulation.]]&lt;br /&gt;
&lt;br /&gt;
On a tout d'abord à mettre en place une carte FPGA et/ou un dispositif permettant d'envoyer un flux de données numériques continuellement pour pouvoir visualiser le diagramme I/Q (mise en valeur du diagramme I/Q et voir même un diagramme un peu plus complexe que le BPSK ou le QPSK).&lt;br /&gt;
&lt;br /&gt;
Le canal de transmission qui sera un simple fil électrique, mais pourra devenir une antenne réceptrice et émettrice si le temps imparti le permet (mise en valeur du et mesure du Bit Error Rate qui sera bien sûr différent suivant le canal de transmission).&lt;br /&gt;
&lt;br /&gt;
Du côté réception ,après démodulation du signal, une remise en forme et une interprétation des données seront réalisées, celle-ci dépendra bien entendu de la provenance du flux de données (constater le succès ou l'échec d'un envoi de données).&lt;br /&gt;
&lt;br /&gt;
Enfin si le temps le permets on pourra mettre en une place un système de codage de l'information avec par exemple un codage redondant permettant de corrigé l'erreur (À définir, on pourra faire constater l'efficacité d'une méthode de codage au choix).&lt;br /&gt;
&lt;br /&gt;
=== Étapes/Déroulement du projet ===&lt;br /&gt;
&lt;br /&gt;
De même que pour le cahier des charges, il se peut que les étapes diffèrent plus ou moins, en fonction des disponibilités, matérielles et contraintes.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Caractérisation des blocs Mini-circuits et épluchage des documentations techniques====&lt;br /&gt;
Avant de les utiliser dans la chaine de transmission, nous avons à faire une caractérisation des blocs fournis:&lt;br /&gt;
&lt;br /&gt;
-la caractérisation du VCO.&lt;br /&gt;
&lt;br /&gt;
-l'étude des possibilités offerte par le modulateur (cela déterminera le nombre de points possible dans la constellation, ie savoir si l'on peut aller au-delà de la QPSK).&lt;br /&gt;
&lt;br /&gt;
-la caractérisation des mélangeurs (Mixer), leurs facteurs réels de multiplication.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Utilisation et exploitation des caractérisations ====&lt;br /&gt;
On pourra ensuite trouver les paramètres pour régler correctement dans notre chaine de transmission certains de nos sous-systèmes comme la boucle à verrouillage de phase.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Génération d'un flux des données numériques ====&lt;br /&gt;
Comme dit précédemment, l'idéal et d'avoir un flux de données numériques transmis en permanence.&lt;br /&gt;
Pour cela plusieurs solutions s'offre à nous, on pourra utiliser un montage générateur pseudo aléatoire (un circuit que l'on a fait l'année dernière en Conception de Circuit Électronique).&lt;br /&gt;
On pourra &amp;quot;émuler&amp;quot; ce montage avec un Arduino, ou bien même le faire au moyen de la Nanoboard.&lt;br /&gt;
On pourra aussi transmettre des chaines de caractère en continu.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Test de la chaine ====&lt;br /&gt;
Une fois les étapes précédentes réalisées, on pourra passer au test de la chaine de transmission. Il faudra vérifier le bon fonctionnement en aval, dedans (boucle a verrouillage de phase), et en amont de la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Première mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
Il est possible que la conception d'un dispositif soit nécessaire que ce soit pour les deux mesures du B.E.R..&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Antennes ====&lt;br /&gt;
Si toutes les étapes précédentes sont satisfaites, on pourra alors faire un canal de transmission plus intéressant, à savoir l'air.&lt;br /&gt;
Nous passerons alors à la conception des antennes, émettrice et réceptrice.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Deuxième mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Codage de l'information et correction d'erreur ====&lt;br /&gt;
En toute fin de ce projet, on pourra même mettre deux dispositifs en aval et en amont de la chaine de transmission.&lt;br /&gt;
On réalisera alors un codeur et un décodeur permettant de faire de la détection/correction d'erreur.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Mise en place d'outil de débogage (tout au long)====&lt;br /&gt;
La mise en place de simples outils de débogage et primordiale, ceux-ci permettront de vérifier le bon fonctionnement de la chaine.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Proposition d'un sujet de TP (tout au long) ====&lt;br /&gt;
Il se trouve que lors du déroulement du projet, on pourra être amené à se poser des questions au niveau des réglages de la chaine de transmission.&lt;br /&gt;
Or il est fort probable que les élèves qui travailleront sur ce TP pourront alors se poser les mêmes questions.&lt;br /&gt;
C'est pour cela qui sera judicieux de prendre soin de noter les problématiques rencontrées et de donner un certain fil de développement pour venir à bout de la problématique posée.&lt;br /&gt;
Ce qui reviendra à proposer des axes/questions sur les manipulations de cette maquette de TP.&lt;br /&gt;
&lt;br /&gt;
== Note valable pour toutes les semaines ==&lt;br /&gt;
&lt;br /&gt;
'''[[Si un point vous semble imprécis, veuillez vous reportez aux détails fournit en annexe.]]'''&lt;br /&gt;
&lt;br /&gt;
== 1éme semaine: (du 27/01/2014 au 01/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Séance du 05/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Pour bien comprendre les différentes choses à réaliser, on a refait les manipulations vues en TP. On a, pour cela utiliser la maquette didactique TIMS pour générer différent type de modulation:&lt;br /&gt;
&lt;br /&gt;
-la modulation en 4,8,16PSK (on obtient une constellation en forme de cercle).&lt;br /&gt;
&lt;br /&gt;
-La modulation en 4,8,16QAM (on obtient une constellation avec un carré, ou deux: de différentes tailles).&lt;br /&gt;
&lt;br /&gt;
On a très vite dégagé la nécessité de réaliser un montage générateur de tous les mots numériques possibles.&lt;br /&gt;
On a donc fait un programme sur arduino qui équivaut au générateur pseudo aléatoire.&lt;br /&gt;
Celui-ci est directement inspiré du montage que l'on a réalisé l'année dernière en conception de circuit électronique.&lt;br /&gt;
&lt;br /&gt;
Séance du 06/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Lors de cette séance on a exploré toute les possibilités concernant la communication entre la maquette/carte car cela pour avoir une influecnce non négligeable sur le choix de la carte F.P.G.A. et du design de la maquette.&lt;br /&gt;
&lt;br /&gt;
On a donc aussi fait des recherches concernant les possibilités de communications et les bloc I.P. (Intellectual Properties) permettant de programmer un F.P.G.A.&lt;br /&gt;
&lt;br /&gt;
Et enfin, on a eu une discussion avec un responsable technique pour ce qui de la C.E.M. (Compatibilité Electro-Magnétique)&lt;br /&gt;
&lt;br /&gt;
== 2éme semaine: (du 03/02/2014 au 08/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Réflexion sur les possibilités possibles et offertes par le sujet pour ce qui est des parties de communications entre la maquette en interne et de son environnement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_principe_carte_semaine_2.PNG|300px|thumb|center|Maquette en interne/externe.]]&lt;br /&gt;
&lt;br /&gt;
N'ayant jamais utilisé d'autre carte que la Nanoboard, on s'est attelé à faire des recherches sur la manière de procéder pour programmer une carte F.P.G.A., il se trouve que chaque carte de développement à ses propes manières pour être programmé.&lt;br /&gt;
&lt;br /&gt;
On a pris le soin de notez toutes les questions concernant le F.P.G.A. pour un intervenant industrielle qui assura un cours la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
== 3éme semaine: (du 10/02/2014 au 15/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Ayant les oscillateurs commandables en tension, on a pu commencer à faire une manipulation avec les composants Mini Circuit.&lt;br /&gt;
&lt;br /&gt;
Mais après un problème suite à une manipulation l'un des VCOs ne fonctionne plus.&lt;br /&gt;
&lt;br /&gt;
Ce qui nous amène à penser qu'il sera judicieux de prévoir une alimentation au niveau de la carte.&lt;br /&gt;
&lt;br /&gt;
Celle-ci devra être inférieure ou égale à la tension maximale d'alimentation du composant (ceux-ci étant très sensible).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Questions/Réponses:&lt;br /&gt;
&lt;br /&gt;
Comment fait-on pour programmer une carte F.P.G.A. est-ce que la programmation se fait &amp;quot;in situe&amp;quot; ? (in situe : c'est à dire sur la carte elle même) &lt;br /&gt;
Oui, c'est ce qui est utilisé, via une câble JTAG.&lt;br /&gt;
&lt;br /&gt;
Est-ce possible faire une interface USB pour permettre à un ordinateur de communiquer avec la maquette/carte via un F.P.G.A. ? Oui.&lt;br /&gt;
&lt;br /&gt;
Est-ce que la gestion de l'interface Ethernet est envisageable ? Oui.&lt;br /&gt;
&lt;br /&gt;
Pour une communication en protocole UDP avec un ordinateur via une liaison Ethernet, est-ce qu'il y a d'autre façon que d'utiliser un Soft Core ?&lt;br /&gt;
&lt;br /&gt;
Oui, il existe aussi bien en Software, qu'en Hardware.&lt;br /&gt;
&lt;br /&gt;
== 4éme semaine: (du 17/02/2014 au 22/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a donc repris l'idée de la 2éme semaine.&lt;br /&gt;
&lt;br /&gt;
Après avoir mis en place un cahier des charges au niveau des qualités, bande passante minimale.&lt;br /&gt;
&lt;br /&gt;
Nous avons fait des recherches sur les composants à utiliser (ie CAN, CAN, ...)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous a permis après une édition rapide de schéma électrique (schematic) d'avoir une idée du nombre de pins dont nous aurons besoin sur une carte FPGA afin de réaliser le projet.&lt;br /&gt;
&lt;br /&gt;
Après prospection, il se trouve que nous nous dirigerions vers la carte Digilent Spartan 3, dont l'école était déjà en possession.&lt;br /&gt;
&lt;br /&gt;
Donc nous nous sommes attelés à faire des recherches et des essais sur cette carte et pour notamment trouver un moyen de la faire fonctionner.&lt;br /&gt;
&lt;br /&gt;
== 5éme semaine: (du 03/03/2014 au 08/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, après plusieurs heures de recherches et d'essai infructueux, on a fini par trouver les drivers pour le câble USB diligent.&lt;br /&gt;
&lt;br /&gt;
Et donc ainsi avoir un fonctionnement de la communication via le câble JTAG plus propice au fonctionnement de la carte.&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur une partie des composants et des dimensionnements pour certains d'entre eux (valeur de résistance,capacité...)&lt;br /&gt;
&lt;br /&gt;
Schématics: Édition de multiple bibliothèque pour Altium, intégrant à la fois schématics et leur empreinte PCB associés.&lt;br /&gt;
&lt;br /&gt;
(On a pu constater qu'un interface 3v3 5v n'est pas forcement nécessaire pour assurer le bon fonctionnement entre deux cartes avec des tensions d'alimentation différentes.)&lt;br /&gt;
&lt;br /&gt;
== 6éme semaine: (du 10/03/2014 au 15/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur l'ensemble des composants et des choix de régulateur et utilisation d'autre diode Zener.&lt;br /&gt;
&lt;br /&gt;
On trouvera le schéma intégrale avec les bibliothèques nécessaires dans la semaine 5.&lt;br /&gt;
&lt;br /&gt;
Cette semaine à été dédié à l'envoie de la commande des composants au sein du magasin de l'école et du fournisseur.&lt;br /&gt;
&lt;br /&gt;
Après envoi de la commande, il se trouve que le projet a changé d'objectif principal.&lt;br /&gt;
&lt;br /&gt;
Il est maintenant prioritaire de réaliser un code VHDL capable d'évaluer la vitesse de transmission numérique du côté récepteur.&lt;br /&gt;
&lt;br /&gt;
== 7éme semaine: (du 17/03/2014 au 22/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Pour cette semaine, on s'est concentré sur la réalisation d'un générateur pseudo aléatoire en interne au FPGA.&lt;br /&gt;
&lt;br /&gt;
On réalisera une échelle de résistance afin de réaliser une conversion numérique analogique afin de l'envoyer sur la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
Ce code de &amp;quot;base&amp;quot; nous permettra de réaliser un flux de données fictif pour obtenir toutes les combinaisons récupérant le résultat du bus.&lt;br /&gt;
&lt;br /&gt;
[[MédiaP34_2013_2014_gene_pseudo_19_03_2014_6_semaine_7.zip|Archive contenant le projet ISE Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_rtl_semaine_7.PNG|300px|thumb|center|extrait du schéma RTL, on peut y voir clairement les inférences de Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
Ce schéma a deux entrées et une sortie, une entrée d'initialisation, une horloge et une sortie pour la trame en pseudo aléatoire.&lt;br /&gt;
&lt;br /&gt;
On fera l'essaie sur la carte lors de la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
== 8éme semaine: (du 24/03/2014 au 26/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Aprés le premier test, on pourrait penser que l'on récupère du bruit en sortie de la carte:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0024_1_probleme_d_overshoot_semaine_8.jpg|300px|thumb|center|Overshoot.]]&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir remédier à ce problème on a fait une pré-division de l'horloge&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0037_1_div_freq_semaine_8.jpg|300px|thumb|center|Overshoot après division.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0039_1_div_freq_zoom_semaine_8.jpg|300px|thumb|center|Overshoot après division (Zoom).]]&lt;br /&gt;
&lt;br /&gt;
Archive contenant toutes les modifications:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_26_03_2014_2_semaine_8.zip|VHDL Semaine 8.]]&lt;br /&gt;
&lt;br /&gt;
On a trouvé un moyen de faire un CNA facilement, via une &amp;quot;échelle dit R-2R&amp;quot;. [[http://www.uchobby.com/index.php/2008/01/08/arduino-audio-dac-options/|Pour le réseau R 2R.]]&lt;br /&gt;
&lt;br /&gt;
Il faut encore modifier le VHDL pour pouvoir l'exploiter et ainsi générer une constellation.&lt;br /&gt;
&lt;br /&gt;
== 9éme semaine: (du 28/03/2014 au 03/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pris donc le soin de modifier le VHDL:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_31_03_2014_1_semaine_9.zip|VHDL semaine 9]]&lt;br /&gt;
&lt;br /&gt;
Ce VHDL à été mis à jour, avec deux entrées (initialisation et une horloge) et un bus de sortie, avec les trames pseudo-aléatoire.&lt;br /&gt;
&lt;br /&gt;
On envoie ces signaux sur deux C.N.A.s (4 bits chacun) pour générer deux signaux I et Q, on peut voir une constellation se dessiner en mode X-Y.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0072_1_Montage_entier_4qam_semaine_9.jpg|300px|thumb|center|Montage avec constellations 4QAM.]]&lt;br /&gt;
&lt;br /&gt;
D'autre constellations réalisées sont disponibles en annexe. On peut monter jusqu'à une constellation de 256 points (2^4*2^4).&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage complet de toute la chaine de transmission. Il se trouve que la Boucle à Verrouillage de Phase (ou appellée PLL, Phase Loop Locker) ne se verrouille pas sur la porteuse du signal que l'on souhaite récupéré, de ce fait on ne peut pas récupérer les signaux I et Q.&lt;br /&gt;
&lt;br /&gt;
== 10éme semaine: (du 07/04/2014 au 10/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage que l'on évoqué en semaine 9:&lt;br /&gt;
&lt;br /&gt;
P34_2013_2014_DSC_0027_montage_realisee_semaine_10.jpg&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0027_montage_realisee_semaine_10.jpg|center|thumb|300px|Montage pour amélioré la PLL.]]&lt;br /&gt;
&lt;br /&gt;
Il se trouve qu’après un réglage précis de la tension d'offset permettant d'être un proche de la fréquence à capturé on obtient:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0025_PLL_non_verrouillage_semaine_10.jpg|center|thumb|300px|Signaux I/Q après ajout du montage.]]&lt;br /&gt;
&lt;br /&gt;
= Annexes =&lt;br /&gt;
&lt;br /&gt;
== Annexe A: Détails techniques des semaines ==&lt;br /&gt;
&lt;br /&gt;
=== 1éme semaine: (du 27/01/2014 au 01/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Après on a réfléchi sur la potentielle conception/utilisation d'une carte FPGA.&lt;br /&gt;
Il sera judicieux de ne pas se précipiter sur le schéma et la conception/utilisation d'une carte FPGA, sans avoir, au préalable fait le VHDL et le testez avec un banc de test virtuel.&lt;br /&gt;
L'intérêt et de mettre en valeur la nécessité ou non de certains signaux pour le schéma de la carte.&lt;br /&gt;
On va mettre en oeuvre les connaissances acquises au S7 en VHDL (en TP de Circuit Numérique Programmble).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est de l'Arduino, on a répondu aux interrogations suivantes (certaines de ces questions paraissent triviales, mais on préfère éviter les surprises):&lt;br /&gt;
&lt;br /&gt;
Quelle est la vitesse maximale de la communication série de l'Arduino ?&lt;br /&gt;
-115200bauds&lt;br /&gt;
&lt;br /&gt;
Est-ce que, un programme de type &amp;quot;Analog Write&amp;quot; est-il une vraie sortie analogique ?&lt;br /&gt;
&lt;br /&gt;
-Non, c'est juste une PWM. Elle sera exploitable pour faire les signales I/Q mais très contraignantes, car il faudra filtré le signal, et ce sera beaucoup trop lent (du au fait que la modulation est faite au alentour de 850Mhz), le FPGA sera un passage obligé cela ouvrira les portes d'un plus grand débit.&lt;br /&gt;
&lt;br /&gt;
==== Manipulation réalisée sur la maquette TIMS : ====&lt;br /&gt;
&lt;br /&gt;
On a fait un des montages présenté dans l'ouvrage &amp;quot;Volume D1 Fundamental Digital Experiments&amp;quot; dans le but de visualiser l’objectif à atteindre.&lt;br /&gt;
&lt;br /&gt;
On obtient la constellation suivante (16QAM):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_tims_semaine_1.PNG|300px|thumb|center|Constellation visualisé en mode X-Y.]]&lt;br /&gt;
&lt;br /&gt;
Ce qui correspond à deux signaux en visualisation temporelle de cette forme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_temporelle_tims_semaine_1.PNG|300px|thumb|center|Signaux I et Q. (Image très flouté, à remplacer)]]&lt;br /&gt;
&lt;br /&gt;
On pourra facilement obtenir le même résultat en générant un bus de trame pseudo aléatoire et en l'injectant dans un C.N.A. (Conversion Numérique Analogique)&lt;br /&gt;
&lt;br /&gt;
==== Code Arduino réalisé: ====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schema_electronique_generateur_pseudo_aleatoire.png|300px|thumb|center|Schéma électronique du générateur pseudo aléatoire.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_chrono_simule.PNG|300px|thumb|center|Résultat de la simulation du générateur pseudo aléatoire (on a eu la même chose en pratique).]]&lt;br /&gt;
&lt;br /&gt;
[code]&lt;br /&gt;
/*A peut être supprimer*/&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;		&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void output_init(void){&lt;br /&gt;
  DDRB |= 0x02; // PIN 8,9 sont les deux sorties.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(void){&lt;br /&gt;
  int r1=1,r2=0,r3=0,r4=0,r5=0,retard=0;&lt;br /&gt;
  PORTB=0x00;&lt;br /&gt;
  while(1)&lt;br /&gt;
    {&lt;br /&gt;
      r5=r4;//chaque affectation représente une recopie de la bascule sur le &amp;quot;front montant&amp;quot;, ici c'est simplement l’exécution du code.&lt;br /&gt;
      r4=r3;&lt;br /&gt;
      r3=r2;&lt;br /&gt;
      r2=r1;&lt;br /&gt;
      r1=r4^r5;&lt;br /&gt;
      PORTB=0x01*r1+0x02*retard;//écriture des signaux&lt;br /&gt;
      _delay_ms(10);//le &amp;quot;front montant&amp;quot;, ce qui permet de faire un genre d'horloge.&lt;br /&gt;
      retard=r5;//déphasage du signal&lt;br /&gt;
    }&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
[/code]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_arduino.jpg|300px|thumb|center|Resultat avec le generateur pseudo aléatoire &amp;quot;émuler&amp;quot; avec l'Arduino.]]&lt;br /&gt;
&lt;br /&gt;
Comparaison carte réelle/résultat Arduino:&lt;br /&gt;
&lt;br /&gt;
C'était exactement les signaux attendus (même s'il y un décalage a par rapport à l'original).&lt;br /&gt;
&lt;br /&gt;
On aura bien pour une QPSK (4PSK) tous les couples (ie 00,01,11 et 10).&lt;br /&gt;
&lt;br /&gt;
À propos de l'arduino, on pourra envisager une amélioration pour générer une séquence plus longue:&lt;br /&gt;
&lt;br /&gt;
-il faudra simplement utiliser un tableau d'entier.&lt;br /&gt;
&lt;br /&gt;
-paramétrer sa taille avec un N par exemple.&lt;br /&gt;
&lt;br /&gt;
-N correspondra à la taille de séquence de longueur 2^N.&lt;br /&gt;
&lt;br /&gt;
Voir la section &amp;quot;Code Arduino réalisé&amp;quot; en annexe B dans la semaine correspondante.&lt;br /&gt;
&lt;br /&gt;
==== Possibilités de communications: ====&lt;br /&gt;
&lt;br /&gt;
Exploration des possibilités de communication entre le PC et la carte en amont:&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; Ethernet: =====&lt;br /&gt;
&lt;br /&gt;
*+ Vitesse de transmission (~10M-100M-G)bauds&lt;br /&gt;
&lt;br /&gt;
*- La gestion du flux de données doit être faite par un microcontrôleur (celui-ci pourra être implémenté un bloc I.P. à l'intérieur du FPGA)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; - Haute consommation de CLB du FPGA.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; SPI (communication série): =====&lt;br /&gt;
&lt;br /&gt;
*- Vitesse de transmission&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Arduino capable de communiquer jusqu'a 115200 bauds&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; D'après certaines discussions on pourrait « pousser » au-delà : voir le lien des sujets Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; I2C : =====&lt;br /&gt;
&lt;br /&gt;
Communication abandonné, ce n'est pas une priorité.&lt;br /&gt;
&lt;br /&gt;
==== À propos des blocs I.P.: ====&lt;br /&gt;
&lt;br /&gt;
En consultant les ordinateurs et en s'appuyant des TPs de CNP, on constate que les blocs suivants existent:&lt;br /&gt;
&lt;br /&gt;
- Xilinx Microblaze/Xilinx Power PC (&amp;quot;µP FPGA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Est-ce possible d'utiliser ces blocs I.P. pour programmer un FPGA sur une carte autre que la Nanoboard ? Comment ?&lt;br /&gt;
&lt;br /&gt;
- EMACx (Ethernet Media Acess Control)(:lien physique entre processeurs et &amp;quot;standart Physical Layer device IEEE802.3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===== Conception de la carte: =====&lt;br /&gt;
&lt;br /&gt;
L'idéal est de se documenter sur la Compatibilité électromagnétique.&lt;br /&gt;
&lt;br /&gt;
=== 2éme semaine: (du 03/02/2014 au 08/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 3éme semaine: (du 10/02/2014 au 15/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, après avoir eu le problème de manipulation, nous avons pus prendre connaissance d'un certain montage qui s’avéra utile pour la conception de la carte/maquette.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_limiteur_de_courant_semaine_3.PNG|300px|thumb|center|Schéma limiteur de courant.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que ce montage se retrouve dans la partie &amp;quot;typical application&amp;quot; de la documentation technique du 7805.&lt;br /&gt;
&lt;br /&gt;
=== 4éme semaine: (du 17/02/2014 au 22/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
On souhaite pouvoir réaliser une communication unidirectionnel ou même transmettre un signal audio ce qui nous contraint à une bande passante minimal de 48kHz, on prendra 200kHz (Pour être bien au delà de la conditions du théorème de Shannon): le but serait donc de branchez par exemple une source audio quelconque puis de la transmettre à travers la maquette et de la recomposer en fin de chaine.&lt;br /&gt;
&lt;br /&gt;
Après édition rapide du schématique on en dégage qu'il nous faudra un minimum d'environ 50 entrées/sorties. Mais ceci ce nombre sera très probablement revue à la hausse lors de prochaine séance.&lt;br /&gt;
&lt;br /&gt;
Voici la carte que l'on utilisera dans la suite du projet:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_S3BOARD-top-400_semaine_4.gif|300px|thumb|center|Digilent Spartan 3.]]&lt;br /&gt;
&lt;br /&gt;
=== 5éme semaine: (du 03/03/2014 au 08/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lien vers le Design complet avec les librairies incluses (on remarquera qu'il serait judicieux d’installer toutes les librairies avant d’essayer d'ouvrir le schéma)&lt;br /&gt;
&lt;br /&gt;
A notez aussi que l'on trouvera des reliques de feuilles Excel permettant de trouver rapidement des ratios dans la série E12.&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_Design_pcb_plus_librairies_semaine_5_6.zip|Schéma + Bibliothèques.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.pdf|Schéma en PDF.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.png|Schéma au format A2.]]&lt;br /&gt;
&lt;br /&gt;
=== 6éme semaine: (du 10/03/2014 au 15/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 7éme semaine: (du 17/03/2014 au 22/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 8éme semaine: (du 24/03/2014 au 26/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 9éme semaine: (du 28/03/2014 au 03/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0061_1_r_2r_semaine_9.jpg|center|thumb|300px|Le réseau R-2R.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0062_1_4QAM_semaine_9.jpg|center|thumb|300px|4QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0066_1_16QAM_semaine_9.jpg|center|thumb|300px|16QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0069_1_64QAM_semaine_9.jpg|center|thumb|300px|64QAM.]]&lt;br /&gt;
&lt;br /&gt;
Pas de photos pour la constellation à 256 points, mais elle a été réalisée.&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du montage, malgré que la P.L.L., on a un signal d'erreur après filtrage :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Chaine 1: Vtune (commande du V.C.O.)/Chaine 2: &amp;quot;erreur&amp;quot; de commande]]&lt;br /&gt;
&lt;br /&gt;
Ce qui mets en valeur immédiatement deux problèmes majeurs:&lt;br /&gt;
&lt;br /&gt;
La chaine fonctionne sur le papier, mais lors de sa mise en pratique, il faut penser à mettre une tension d'offset et aussi réaliser une amplification de l'erreur pour avoir des grandeur de commande adapté au Vtune du V.C.O..&lt;br /&gt;
&lt;br /&gt;
On propose l'amélioration suivante (qui sera réalisé à la prochaine séance):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Proposition de voie d'amélioration.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que les valeurs des résistances et des capacité on était choisit pour permettre un fonctionnement correct des A.O. (Amplificateur Opérationnel), mais pas pour ce qui de l'asservissement de la boucle par manque de temps. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette, on a eu à démonter le montage à cause de contraintes concernant les mini-circuits (car utilisé en travaux pratiques).&lt;br /&gt;
&lt;br /&gt;
=== 10éme semaine: (rédaction en cours) (du 07/04/2014 au 10/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
== Annexe B: Digilent Spartan 3 ==&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire fonctionner la carte Digilent Spartan 3: ===&lt;br /&gt;
&lt;br /&gt;
Ne connectez pas de connecteur JTAG pendant les installations. Redémarrez après chaque installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut savoir que le l'ISE Webpack 14.6 fonctionne avec la carte (n'utilisez pas la 14.7, elle ne supporte pas la génération spartan 3 !):&lt;br /&gt;
&lt;br /&gt;
Installez donc l'ISE WebPack 14.6 (ou antérieur à condition que celle-ci soit supérieur à la 7.1i (d'aprés leur documentation))&lt;br /&gt;
&lt;br /&gt;
(voir lien utile sur Xilinx)&lt;br /&gt;
&lt;br /&gt;
Une fois l'installation de l'ISE terminé, faites en sorte d'avoir celui que soit opérationnel (la licence est gratuite !).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installez la &amp;quot;library&amp;quot; ADEPT 2.3 voir le lien utile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après vous n'avez plus qu'a utilisez ISE Xilinx normalement et vous serez capable de reconnaitre la carte via la liaison JTAG, et de le programmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Liens utiles: ===&lt;br /&gt;
&lt;br /&gt;
Lien constructeur/vendeur (avec ressources utiles en bas de la page):&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?Prod=S3BOARD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien &amp;quot;Library&amp;quot; pour le câble USB digilent:&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,69&amp;amp;Prod=ADEPT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour l'ISE 14.6):&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/products/design-tools/ise-design-suite/index.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour les versions antérieures veuillez faire attention au système d'exploitation, votre architecture matérielle et le FPGA cible):&lt;br /&gt;
&lt;br /&gt;
(Les informations de compatibilité son sur la page suivante:) (mots clés: xilinx classic(s))&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/tools/classics.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream, et le charger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en &amp;quot;non&amp;quot;-volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream et l'utiliser pour générer un .mcs qui vous permettra d'inscrire le programme dans la mémoire (E?)PROM.&lt;br /&gt;
&lt;br /&gt;
On remarquera que la programmation en non-volatile est utile pour faire un remise à zéro et recharger le contenu de l'(E?)PROM, mais semble être sensible au débranchement de l'adaptateur d'alimentation de la carte.&lt;br /&gt;
&lt;br /&gt;
=== Exemple de programmation: ===&lt;br /&gt;
&lt;br /&gt;
Voir le lien digilent pour ceci dans cette annexe.&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:P34_2013_2014_DSC_0025_PLL_non_verrouillage_semaine_10.jpg&amp;diff=11582</id>
		<title>Fichier:P34 2013 2014 DSC 0025 PLL non verrouillage semaine 10.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:P34_2013_2014_DSC_0025_PLL_non_verrouillage_semaine_10.jpg&amp;diff=11582"/>
				<updated>2014-04-13T19:51:42Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:P34_2013_2014_DSC_0027_montage_realisee_semaine_10.jpg&amp;diff=11581</id>
		<title>Fichier:P34 2013 2014 DSC 0027 montage realisee semaine 10.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:P34_2013_2014_DSC_0027_montage_realisee_semaine_10.jpg&amp;diff=11581"/>
				<updated>2014-04-13T19:43:35Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11580</id>
		<title>Modem pour le numérique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11580"/>
				<updated>2014-04-13T19:36:51Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* 9éme semaine: (du 28/03/2014 au 03/04/2014) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Modulateur et démodulateur pour communications numériques =&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
=== Présentation générale du projet ===&lt;br /&gt;
&lt;br /&gt;
Dans le cadre des TPs d'électronique et de transmission RF, nous avons découvert qu'il existe plusieurs modes de modulation, pour transmettre un signal modulant.&lt;br /&gt;
&lt;br /&gt;
Celles vues en TP au S7 sont la modulation en amplitude, en fréquence, en phase, en BPSK et en QPSK.&lt;br /&gt;
&lt;br /&gt;
Or les modulations en phase, en fréquence et en amplitude étant celles les plus connues, la modulation en QAM (Modulation d'Amplitude en Quadrature) est quant à elle moins connue, mais tout aussi utilisées:&lt;br /&gt;
&lt;br /&gt;
-pour la TNT en 64 QAM (en France).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_64qam.jpg|300px|thumb|center|Exemple de constellation 64QAM.]]&lt;br /&gt;
&lt;br /&gt;
-pour le WiFi en 64-QAM ou 256-QAM (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Or ces deux dernières étant peu représentées au niveau des travaux pratiques, ce projet permettra de fournir un peu plus de pratique sur les modulations de type QAM (en diagramme I/Q) dans le domaine des radiofréquences (~800MHz).&lt;br /&gt;
&lt;br /&gt;
(Le nombre devant le QAM indique le nombre de points dans le diagramme I/Q qu'on appelle aussi constellation)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se réserve le droit de faire '''évoluer''' le cahier des charges a posteriori, si certaines contraintes étaient amenées à évoluer ou se préciser.&lt;br /&gt;
&lt;br /&gt;
=== Objectif et intérêt du projet ===&lt;br /&gt;
&lt;br /&gt;
Pour cela, on nous a fourni des modules commerciaux Mini-circuit pouvant travailler dans les radios-fréquences.&lt;br /&gt;
&lt;br /&gt;
Ceux-ci permettront de mettre en place une grande partie de la chaine de transmission (voir schéma de la chaine de transmission).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_modulation.PNG|300px|thumb|center|Modulation.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_demodulation.PNG|300px|thumb|center|Demodulation.]]&lt;br /&gt;
&lt;br /&gt;
On a tout d'abord à mettre en place une carte FPGA et/ou un dispositif permettant d'envoyer un flux de données numériques continuellement pour pouvoir visualiser le diagramme I/Q (mise en valeur du diagramme I/Q et voir même un diagramme un peu plus complexe que le BPSK ou le QPSK).&lt;br /&gt;
&lt;br /&gt;
Le canal de transmission qui sera un simple fil électrique, mais pourra devenir une antenne réceptrice et émettrice si le temps imparti le permet (mise en valeur du et mesure du Bit Error Rate qui sera bien sûr différent suivant le canal de transmission).&lt;br /&gt;
&lt;br /&gt;
Du côté réception ,après démodulation du signal, une remise en forme et une interprétation des données seront réalisées, celle-ci dépendra bien entendu de la provenance du flux de données (constater le succès ou l'échec d'un envoi de données).&lt;br /&gt;
&lt;br /&gt;
Enfin si le temps le permets on pourra mettre en une place un système de codage de l'information avec par exemple un codage redondant permettant de corrigé l'erreur (À définir, on pourra faire constater l'efficacité d'une méthode de codage au choix).&lt;br /&gt;
&lt;br /&gt;
=== Étapes/Déroulement du projet ===&lt;br /&gt;
&lt;br /&gt;
De même que pour le cahier des charges, il se peut que les étapes diffèrent plus ou moins, en fonction des disponibilités, matérielles et contraintes.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Caractérisation des blocs Mini-circuits et épluchage des documentations techniques====&lt;br /&gt;
Avant de les utiliser dans la chaine de transmission, nous avons à faire une caractérisation des blocs fournis:&lt;br /&gt;
&lt;br /&gt;
-la caractérisation du VCO.&lt;br /&gt;
&lt;br /&gt;
-l'étude des possibilités offerte par le modulateur (cela déterminera le nombre de points possible dans la constellation, ie savoir si l'on peut aller au-delà de la QPSK).&lt;br /&gt;
&lt;br /&gt;
-la caractérisation des mélangeurs (Mixer), leurs facteurs réels de multiplication.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Utilisation et exploitation des caractérisations ====&lt;br /&gt;
On pourra ensuite trouver les paramètres pour régler correctement dans notre chaine de transmission certains de nos sous-systèmes comme la boucle à verrouillage de phase.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Génération d'un flux des données numériques ====&lt;br /&gt;
Comme dit précédemment, l'idéal et d'avoir un flux de données numériques transmis en permanence.&lt;br /&gt;
Pour cela plusieurs solutions s'offre à nous, on pourra utiliser un montage générateur pseudo aléatoire (un circuit que l'on a fait l'année dernière en Conception de Circuit Électronique).&lt;br /&gt;
On pourra &amp;quot;émuler&amp;quot; ce montage avec un Arduino, ou bien même le faire au moyen de la Nanoboard.&lt;br /&gt;
On pourra aussi transmettre des chaines de caractère en continu.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Test de la chaine ====&lt;br /&gt;
Une fois les étapes précédentes réalisées, on pourra passer au test de la chaine de transmission. Il faudra vérifier le bon fonctionnement en aval, dedans (boucle a verrouillage de phase), et en amont de la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Première mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
Il est possible que la conception d'un dispositif soit nécessaire que ce soit pour les deux mesures du B.E.R..&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Antennes ====&lt;br /&gt;
Si toutes les étapes précédentes sont satisfaites, on pourra alors faire un canal de transmission plus intéressant, à savoir l'air.&lt;br /&gt;
Nous passerons alors à la conception des antennes, émettrice et réceptrice.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Deuxième mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Codage de l'information et correction d'erreur ====&lt;br /&gt;
En toute fin de ce projet, on pourra même mettre deux dispositifs en aval et en amont de la chaine de transmission.&lt;br /&gt;
On réalisera alors un codeur et un décodeur permettant de faire de la détection/correction d'erreur.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Mise en place d'outil de débogage (tout au long)====&lt;br /&gt;
La mise en place de simples outils de débogage et primordiale, ceux-ci permettront de vérifier le bon fonctionnement de la chaine.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Proposition d'un sujet de TP (tout au long) ====&lt;br /&gt;
Il se trouve que lors du déroulement du projet, on pourra être amené à se poser des questions au niveau des réglages de la chaine de transmission.&lt;br /&gt;
Or il est fort probable que les élèves qui travailleront sur ce TP pourront alors se poser les mêmes questions.&lt;br /&gt;
C'est pour cela qui sera judicieux de prendre soin de noter les problématiques rencontrées et de donner un certain fil de développement pour venir à bout de la problématique posée.&lt;br /&gt;
Ce qui reviendra à proposer des axes/questions sur les manipulations de cette maquette de TP.&lt;br /&gt;
&lt;br /&gt;
== Note valable pour toutes les semaines ==&lt;br /&gt;
&lt;br /&gt;
'''[[Si un point vous semble imprécis, veuillez vous reportez aux détails fournit en annexe.]]'''&lt;br /&gt;
&lt;br /&gt;
== 1éme semaine: (du 27/01/2014 au 01/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Séance du 05/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Pour bien comprendre les différentes choses à réaliser, on a refait les manipulations vues en TP. On a, pour cela utiliser la maquette didactique TIMS pour générer différent type de modulation:&lt;br /&gt;
&lt;br /&gt;
-la modulation en 4,8,16PSK (on obtient une constellation en forme de cercle).&lt;br /&gt;
&lt;br /&gt;
-La modulation en 4,8,16QAM (on obtient une constellation avec un carré, ou deux: de différentes tailles).&lt;br /&gt;
&lt;br /&gt;
On a très vite dégagé la nécessité de réaliser un montage générateur de tous les mots numériques possibles.&lt;br /&gt;
On a donc fait un programme sur arduino qui équivaut au générateur pseudo aléatoire.&lt;br /&gt;
Celui-ci est directement inspiré du montage que l'on a réalisé l'année dernière en conception de circuit électronique.&lt;br /&gt;
&lt;br /&gt;
Séance du 06/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Lors de cette séance on a exploré toute les possibilités concernant la communication entre la maquette/carte car cela pour avoir une influecnce non négligeable sur le choix de la carte F.P.G.A. et du design de la maquette.&lt;br /&gt;
&lt;br /&gt;
On a donc aussi fait des recherches concernant les possibilités de communications et les bloc I.P. (Intellectual Properties) permettant de programmer un F.P.G.A.&lt;br /&gt;
&lt;br /&gt;
Et enfin, on a eu une discussion avec un responsable technique pour ce qui de la C.E.M. (Compatibilité Electro-Magnétique)&lt;br /&gt;
&lt;br /&gt;
== 2éme semaine: (du 03/02/2014 au 08/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Réflexion sur les possibilités possibles et offertes par le sujet pour ce qui est des parties de communications entre la maquette en interne et de son environnement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_principe_carte_semaine_2.PNG|300px|thumb|center|Maquette en interne/externe.]]&lt;br /&gt;
&lt;br /&gt;
N'ayant jamais utilisé d'autre carte que la Nanoboard, on s'est attelé à faire des recherches sur la manière de procéder pour programmer une carte F.P.G.A., il se trouve que chaque carte de développement à ses propes manières pour être programmé.&lt;br /&gt;
&lt;br /&gt;
On a pris le soin de notez toutes les questions concernant le F.P.G.A. pour un intervenant industrielle qui assura un cours la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
== 3éme semaine: (du 10/02/2014 au 15/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Ayant les oscillateurs commandables en tension, on a pu commencer à faire une manipulation avec les composants Mini Circuit.&lt;br /&gt;
&lt;br /&gt;
Mais après un problème suite à une manipulation l'un des VCOs ne fonctionne plus.&lt;br /&gt;
&lt;br /&gt;
Ce qui nous amène à penser qu'il sera judicieux de prévoir une alimentation au niveau de la carte.&lt;br /&gt;
&lt;br /&gt;
Celle-ci devra être inférieure ou égale à la tension maximale d'alimentation du composant (ceux-ci étant très sensible).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Questions/Réponses:&lt;br /&gt;
&lt;br /&gt;
Comment fait-on pour programmer une carte F.P.G.A. est-ce que la programmation se fait &amp;quot;in situe&amp;quot; ? (in situe : c'est à dire sur la carte elle même) &lt;br /&gt;
Oui, c'est ce qui est utilisé, via une câble JTAG.&lt;br /&gt;
&lt;br /&gt;
Est-ce possible faire une interface USB pour permettre à un ordinateur de communiquer avec la maquette/carte via un F.P.G.A. ? Oui.&lt;br /&gt;
&lt;br /&gt;
Est-ce que la gestion de l'interface Ethernet est envisageable ? Oui.&lt;br /&gt;
&lt;br /&gt;
Pour une communication en protocole UDP avec un ordinateur via une liaison Ethernet, est-ce qu'il y a d'autre façon que d'utiliser un Soft Core ?&lt;br /&gt;
&lt;br /&gt;
Oui, il existe aussi bien en Software, qu'en Hardware.&lt;br /&gt;
&lt;br /&gt;
== 4éme semaine: (du 17/02/2014 au 22/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a donc repris l'idée de la 2éme semaine.&lt;br /&gt;
&lt;br /&gt;
Après avoir mis en place un cahier des charges au niveau des qualités, bande passante minimale.&lt;br /&gt;
&lt;br /&gt;
Nous avons fait des recherches sur les composants à utiliser (ie CAN, CAN, ...)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous a permis après une édition rapide de schéma électrique (schematic) d'avoir une idée du nombre de pins dont nous aurons besoin sur une carte FPGA afin de réaliser le projet.&lt;br /&gt;
&lt;br /&gt;
Après prospection, il se trouve que nous nous dirigerions vers la carte Digilent Spartan 3, dont l'école était déjà en possession.&lt;br /&gt;
&lt;br /&gt;
Donc nous nous sommes attelés à faire des recherches et des essais sur cette carte et pour notamment trouver un moyen de la faire fonctionner.&lt;br /&gt;
&lt;br /&gt;
== 5éme semaine: (du 03/03/2014 au 08/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, après plusieurs heures de recherches et d'essai infructueux, on a fini par trouver les drivers pour le câble USB diligent.&lt;br /&gt;
&lt;br /&gt;
Et donc ainsi avoir un fonctionnement de la communication via le câble JTAG plus propice au fonctionnement de la carte.&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur une partie des composants et des dimensionnements pour certains d'entre eux (valeur de résistance,capacité...)&lt;br /&gt;
&lt;br /&gt;
Schématics: Édition de multiple bibliothèque pour Altium, intégrant à la fois schématics et leur empreinte PCB associés.&lt;br /&gt;
&lt;br /&gt;
(On a pu constater qu'un interface 3v3 5v n'est pas forcement nécessaire pour assurer le bon fonctionnement entre deux cartes avec des tensions d'alimentation différentes.)&lt;br /&gt;
&lt;br /&gt;
== 6éme semaine: (du 10/03/2014 au 15/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur l'ensemble des composants et des choix de régulateur et utilisation d'autre diode Zener.&lt;br /&gt;
&lt;br /&gt;
On trouvera le schéma intégrale avec les bibliothèques nécessaires dans la semaine 5.&lt;br /&gt;
&lt;br /&gt;
Cette semaine à été dédié à l'envoie de la commande des composants au sein du magasin de l'école et du fournisseur.&lt;br /&gt;
&lt;br /&gt;
Après envoi de la commande, il se trouve que le projet a changé d'objectif principal.&lt;br /&gt;
&lt;br /&gt;
Il est maintenant prioritaire de réaliser un code VHDL capable d'évaluer la vitesse de transmission numérique du côté récepteur.&lt;br /&gt;
&lt;br /&gt;
== 7éme semaine: (du 17/03/2014 au 22/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Pour cette semaine, on s'est concentré sur la réalisation d'un générateur pseudo aléatoire en interne au FPGA.&lt;br /&gt;
&lt;br /&gt;
On réalisera une échelle de résistance afin de réaliser une conversion numérique analogique afin de l'envoyer sur la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
Ce code de &amp;quot;base&amp;quot; nous permettra de réaliser un flux de données fictif pour obtenir toutes les combinaisons récupérant le résultat du bus.&lt;br /&gt;
&lt;br /&gt;
[[MédiaP34_2013_2014_gene_pseudo_19_03_2014_6_semaine_7.zip|Archive contenant le projet ISE Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_rtl_semaine_7.PNG|300px|thumb|center|extrait du schéma RTL, on peut y voir clairement les inférences de Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
Ce schéma a deux entrées et une sortie, une entrée d'initialisation, une horloge et une sortie pour la trame en pseudo aléatoire.&lt;br /&gt;
&lt;br /&gt;
On fera l'essaie sur la carte lors de la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
== 8éme semaine: (du 24/03/2014 au 26/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Aprés le premier test, on pourrait penser que l'on récupère du bruit en sortie de la carte:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0024_1_probleme_d_overshoot_semaine_8.jpg|300px|thumb|center|Overshoot.]]&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir remédier à ce problème on a fait une pré-division de l'horloge&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0037_1_div_freq_semaine_8.jpg|300px|thumb|center|Overshoot après division.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0039_1_div_freq_zoom_semaine_8.jpg|300px|thumb|center|Overshoot après division (Zoom).]]&lt;br /&gt;
&lt;br /&gt;
Archive contenant toutes les modifications:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_26_03_2014_2_semaine_8.zip|VHDL Semaine 8.]]&lt;br /&gt;
&lt;br /&gt;
On a trouvé un moyen de faire un CNA facilement, via une &amp;quot;échelle dit R-2R&amp;quot;. [[http://www.uchobby.com/index.php/2008/01/08/arduino-audio-dac-options/|Pour le réseau R 2R.]]&lt;br /&gt;
&lt;br /&gt;
Il faut encore modifier le VHDL pour pouvoir l'exploiter et ainsi générer une constellation.&lt;br /&gt;
&lt;br /&gt;
== 9éme semaine: (du 28/03/2014 au 03/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pris donc le soin de modifier le VHDL:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_31_03_2014_1_semaine_9.zip|VHDL semaine 9]]&lt;br /&gt;
&lt;br /&gt;
Ce VHDL à été mis à jour, avec deux entrées (initialisation et une horloge) et un bus de sortie, avec les trames pseudo-aléatoire.&lt;br /&gt;
&lt;br /&gt;
On envoie ces signaux sur deux C.N.A.s (4 bits chacun) pour générer deux signaux I et Q, on peut voir une constellation se dessiner en mode X-Y.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0072_1_Montage_entier_4qam_semaine_9.jpg|300px|thumb|center|Montage avec constellations 4QAM.]]&lt;br /&gt;
&lt;br /&gt;
D'autre constellations réalisées sont disponibles en annexe. On peut monter jusqu'à une constellation de 256 points (2^4*2^4).&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage complet de toute la chaine de transmission. Il se trouve que la Boucle à Verrouillage de Phase (ou appellée PLL, Phase Loop Locker) ne se verrouille pas sur la porteuse du signal que l'on souhaite récupéré, de ce fait on ne peut pas récupérer les signaux I et Q.&lt;br /&gt;
&lt;br /&gt;
== 10éme semaine: (rédaction en cours) (du 07/04/2014 au 10/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
= Annexes =&lt;br /&gt;
&lt;br /&gt;
== Annexe A: Détails techniques des semaines ==&lt;br /&gt;
&lt;br /&gt;
=== 1éme semaine: (du 27/01/2014 au 01/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Après on a réfléchi sur la potentielle conception/utilisation d'une carte FPGA.&lt;br /&gt;
Il sera judicieux de ne pas se précipiter sur le schéma et la conception/utilisation d'une carte FPGA, sans avoir, au préalable fait le VHDL et le testez avec un banc de test virtuel.&lt;br /&gt;
L'intérêt et de mettre en valeur la nécessité ou non de certains signaux pour le schéma de la carte.&lt;br /&gt;
On va mettre en oeuvre les connaissances acquises au S7 en VHDL (en TP de Circuit Numérique Programmble).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est de l'Arduino, on a répondu aux interrogations suivantes (certaines de ces questions paraissent triviales, mais on préfère éviter les surprises):&lt;br /&gt;
&lt;br /&gt;
Quelle est la vitesse maximale de la communication série de l'Arduino ?&lt;br /&gt;
-115200bauds&lt;br /&gt;
&lt;br /&gt;
Est-ce que, un programme de type &amp;quot;Analog Write&amp;quot; est-il une vraie sortie analogique ?&lt;br /&gt;
&lt;br /&gt;
-Non, c'est juste une PWM. Elle sera exploitable pour faire les signales I/Q mais très contraignantes, car il faudra filtré le signal, et ce sera beaucoup trop lent (du au fait que la modulation est faite au alentour de 850Mhz), le FPGA sera un passage obligé cela ouvrira les portes d'un plus grand débit.&lt;br /&gt;
&lt;br /&gt;
==== Manipulation réalisée sur la maquette TIMS : ====&lt;br /&gt;
&lt;br /&gt;
On a fait un des montages présenté dans l'ouvrage &amp;quot;Volume D1 Fundamental Digital Experiments&amp;quot; dans le but de visualiser l’objectif à atteindre.&lt;br /&gt;
&lt;br /&gt;
On obtient la constellation suivante (16QAM):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_tims_semaine_1.PNG|300px|thumb|center|Constellation visualisé en mode X-Y.]]&lt;br /&gt;
&lt;br /&gt;
Ce qui correspond à deux signaux en visualisation temporelle de cette forme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_temporelle_tims_semaine_1.PNG|300px|thumb|center|Signaux I et Q. (Image très flouté, à remplacer)]]&lt;br /&gt;
&lt;br /&gt;
On pourra facilement obtenir le même résultat en générant un bus de trame pseudo aléatoire et en l'injectant dans un C.N.A. (Conversion Numérique Analogique)&lt;br /&gt;
&lt;br /&gt;
==== Code Arduino réalisé: ====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schema_electronique_generateur_pseudo_aleatoire.png|300px|thumb|center|Schéma électronique du générateur pseudo aléatoire.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_chrono_simule.PNG|300px|thumb|center|Résultat de la simulation du générateur pseudo aléatoire (on a eu la même chose en pratique).]]&lt;br /&gt;
&lt;br /&gt;
[code]&lt;br /&gt;
/*A peut être supprimer*/&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;		&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void output_init(void){&lt;br /&gt;
  DDRB |= 0x02; // PIN 8,9 sont les deux sorties.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(void){&lt;br /&gt;
  int r1=1,r2=0,r3=0,r4=0,r5=0,retard=0;&lt;br /&gt;
  PORTB=0x00;&lt;br /&gt;
  while(1)&lt;br /&gt;
    {&lt;br /&gt;
      r5=r4;//chaque affectation représente une recopie de la bascule sur le &amp;quot;front montant&amp;quot;, ici c'est simplement l’exécution du code.&lt;br /&gt;
      r4=r3;&lt;br /&gt;
      r3=r2;&lt;br /&gt;
      r2=r1;&lt;br /&gt;
      r1=r4^r5;&lt;br /&gt;
      PORTB=0x01*r1+0x02*retard;//écriture des signaux&lt;br /&gt;
      _delay_ms(10);//le &amp;quot;front montant&amp;quot;, ce qui permet de faire un genre d'horloge.&lt;br /&gt;
      retard=r5;//déphasage du signal&lt;br /&gt;
    }&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
[/code]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_arduino.jpg|300px|thumb|center|Resultat avec le generateur pseudo aléatoire &amp;quot;émuler&amp;quot; avec l'Arduino.]]&lt;br /&gt;
&lt;br /&gt;
Comparaison carte réelle/résultat Arduino:&lt;br /&gt;
&lt;br /&gt;
C'était exactement les signaux attendus (même s'il y un décalage a par rapport à l'original).&lt;br /&gt;
&lt;br /&gt;
On aura bien pour une QPSK (4PSK) tous les couples (ie 00,01,11 et 10).&lt;br /&gt;
&lt;br /&gt;
À propos de l'arduino, on pourra envisager une amélioration pour générer une séquence plus longue:&lt;br /&gt;
&lt;br /&gt;
-il faudra simplement utiliser un tableau d'entier.&lt;br /&gt;
&lt;br /&gt;
-paramétrer sa taille avec un N par exemple.&lt;br /&gt;
&lt;br /&gt;
-N correspondra à la taille de séquence de longueur 2^N.&lt;br /&gt;
&lt;br /&gt;
Voir la section &amp;quot;Code Arduino réalisé&amp;quot; en annexe B dans la semaine correspondante.&lt;br /&gt;
&lt;br /&gt;
==== Possibilités de communications: ====&lt;br /&gt;
&lt;br /&gt;
Exploration des possibilités de communication entre le PC et la carte en amont:&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; Ethernet: =====&lt;br /&gt;
&lt;br /&gt;
*+ Vitesse de transmission (~10M-100M-G)bauds&lt;br /&gt;
&lt;br /&gt;
*- La gestion du flux de données doit être faite par un microcontrôleur (celui-ci pourra être implémenté un bloc I.P. à l'intérieur du FPGA)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; - Haute consommation de CLB du FPGA.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; SPI (communication série): =====&lt;br /&gt;
&lt;br /&gt;
*- Vitesse de transmission&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Arduino capable de communiquer jusqu'a 115200 bauds&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; D'après certaines discussions on pourrait « pousser » au-delà : voir le lien des sujets Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; I2C : =====&lt;br /&gt;
&lt;br /&gt;
Communication abandonné, ce n'est pas une priorité.&lt;br /&gt;
&lt;br /&gt;
==== À propos des blocs I.P.: ====&lt;br /&gt;
&lt;br /&gt;
En consultant les ordinateurs et en s'appuyant des TPs de CNP, on constate que les blocs suivants existent:&lt;br /&gt;
&lt;br /&gt;
- Xilinx Microblaze/Xilinx Power PC (&amp;quot;µP FPGA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Est-ce possible d'utiliser ces blocs I.P. pour programmer un FPGA sur une carte autre que la Nanoboard ? Comment ?&lt;br /&gt;
&lt;br /&gt;
- EMACx (Ethernet Media Acess Control)(:lien physique entre processeurs et &amp;quot;standart Physical Layer device IEEE802.3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===== Conception de la carte: =====&lt;br /&gt;
&lt;br /&gt;
L'idéal est de se documenter sur la Compatibilité électromagnétique.&lt;br /&gt;
&lt;br /&gt;
=== 2éme semaine: (du 03/02/2014 au 08/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 3éme semaine: (du 10/02/2014 au 15/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, après avoir eu le problème de manipulation, nous avons pus prendre connaissance d'un certain montage qui s’avéra utile pour la conception de la carte/maquette.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_limiteur_de_courant_semaine_3.PNG|300px|thumb|center|Schéma limiteur de courant.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que ce montage se retrouve dans la partie &amp;quot;typical application&amp;quot; de la documentation technique du 7805.&lt;br /&gt;
&lt;br /&gt;
=== 4éme semaine: (du 17/02/2014 au 22/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
On souhaite pouvoir réaliser une communication unidirectionnel ou même transmettre un signal audio ce qui nous contraint à une bande passante minimal de 48kHz, on prendra 200kHz (Pour être bien au delà de la conditions du théorème de Shannon): le but serait donc de branchez par exemple une source audio quelconque puis de la transmettre à travers la maquette et de la recomposer en fin de chaine.&lt;br /&gt;
&lt;br /&gt;
Après édition rapide du schématique on en dégage qu'il nous faudra un minimum d'environ 50 entrées/sorties. Mais ceci ce nombre sera très probablement revue à la hausse lors de prochaine séance.&lt;br /&gt;
&lt;br /&gt;
Voici la carte que l'on utilisera dans la suite du projet:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_S3BOARD-top-400_semaine_4.gif|300px|thumb|center|Digilent Spartan 3.]]&lt;br /&gt;
&lt;br /&gt;
=== 5éme semaine: (du 03/03/2014 au 08/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lien vers le Design complet avec les librairies incluses (on remarquera qu'il serait judicieux d’installer toutes les librairies avant d’essayer d'ouvrir le schéma)&lt;br /&gt;
&lt;br /&gt;
A notez aussi que l'on trouvera des reliques de feuilles Excel permettant de trouver rapidement des ratios dans la série E12.&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_Design_pcb_plus_librairies_semaine_5_6.zip|Schéma + Bibliothèques.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.pdf|Schéma en PDF.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.png|Schéma au format A2.]]&lt;br /&gt;
&lt;br /&gt;
=== 6éme semaine: (du 10/03/2014 au 15/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 7éme semaine: (du 17/03/2014 au 22/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 8éme semaine: (du 24/03/2014 au 26/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 9éme semaine: (du 28/03/2014 au 03/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0061_1_r_2r_semaine_9.jpg|center|thumb|300px|Le réseau R-2R.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0062_1_4QAM_semaine_9.jpg|center|thumb|300px|4QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0066_1_16QAM_semaine_9.jpg|center|thumb|300px|16QAM.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0069_1_64QAM_semaine_9.jpg|center|thumb|300px|64QAM.]]&lt;br /&gt;
&lt;br /&gt;
Pas de photos pour la constellation à 256 points, mais elle a été réalisée.&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du montage, malgré que la P.L.L., on a un signal d'erreur après filtrage :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Chaine 1: Vtune (commande du V.C.O.)/Chaine 2: &amp;quot;erreur&amp;quot; de commande]]&lt;br /&gt;
&lt;br /&gt;
Ce qui mets en valeur immédiatement deux problèmes majeurs:&lt;br /&gt;
&lt;br /&gt;
La chaine fonctionne sur le papier, mais lors de sa mise en pratique, il faut penser à mettre une tension d'offset et aussi réaliser une amplification de l'erreur pour avoir des grandeur de commande adapté au Vtune du V.C.O..&lt;br /&gt;
&lt;br /&gt;
On propose l'amélioration suivante (qui sera réalisé à la prochaine séance):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Proposition de voie d'amélioration.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que les valeurs des résistances et des capacité on était choisit pour permettre un fonctionnement correct des A.O. (Amplificateur Opérationnel), mais pas pour ce qui de l'asservissement de la boucle par manque de temps. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette, on a eu à démonter le montage à cause de contraintes concernant les mini-circuits (car utilisé en travaux pratiques).&lt;br /&gt;
&lt;br /&gt;
=== 10éme semaine: (rédaction en cours) (du 07/04/2014 au 10/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
== Annexe B: Digilent Spartan 3 ==&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire fonctionner la carte Digilent Spartan 3: ===&lt;br /&gt;
&lt;br /&gt;
Ne connectez pas de connecteur JTAG pendant les installations. Redémarrez après chaque installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut savoir que le l'ISE Webpack 14.6 fonctionne avec la carte (n'utilisez pas la 14.7, elle ne supporte pas la génération spartan 3 !):&lt;br /&gt;
&lt;br /&gt;
Installez donc l'ISE WebPack 14.6 (ou antérieur à condition que celle-ci soit supérieur à la 7.1i (d'aprés leur documentation))&lt;br /&gt;
&lt;br /&gt;
(voir lien utile sur Xilinx)&lt;br /&gt;
&lt;br /&gt;
Une fois l'installation de l'ISE terminé, faites en sorte d'avoir celui que soit opérationnel (la licence est gratuite !).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installez la &amp;quot;library&amp;quot; ADEPT 2.3 voir le lien utile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après vous n'avez plus qu'a utilisez ISE Xilinx normalement et vous serez capable de reconnaitre la carte via la liaison JTAG, et de le programmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Liens utiles: ===&lt;br /&gt;
&lt;br /&gt;
Lien constructeur/vendeur (avec ressources utiles en bas de la page):&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?Prod=S3BOARD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien &amp;quot;Library&amp;quot; pour le câble USB digilent:&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,69&amp;amp;Prod=ADEPT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour l'ISE 14.6):&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/products/design-tools/ise-design-suite/index.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour les versions antérieures veuillez faire attention au système d'exploitation, votre architecture matérielle et le FPGA cible):&lt;br /&gt;
&lt;br /&gt;
(Les informations de compatibilité son sur la page suivante:) (mots clés: xilinx classic(s))&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/tools/classics.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream, et le charger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en &amp;quot;non&amp;quot;-volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream et l'utiliser pour générer un .mcs qui vous permettra d'inscrire le programme dans la mémoire (E?)PROM.&lt;br /&gt;
&lt;br /&gt;
On remarquera que la programmation en non-volatile est utile pour faire un remise à zéro et recharger le contenu de l'(E?)PROM, mais semble être sensible au débranchement de l'adaptateur d'alimentation de la carte.&lt;br /&gt;
&lt;br /&gt;
=== Exemple de programmation: ===&lt;br /&gt;
&lt;br /&gt;
Voir le lien digilent pour ceci dans cette annexe.&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11579</id>
		<title>Modem pour le numérique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Modem_pour_le_num%C3%A9rique&amp;diff=11579"/>
				<updated>2014-04-13T19:34:58Z</updated>
		
		<summary type="html">&lt;p&gt;Jvaessen : /* 9éme semaine: (rédaction en cours) (du 28/03/2014 au 03/04/2014) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Modulateur et démodulateur pour communications numériques =&lt;br /&gt;
&lt;br /&gt;
== Cahier des charges ==&lt;br /&gt;
&lt;br /&gt;
=== Présentation générale du projet ===&lt;br /&gt;
&lt;br /&gt;
Dans le cadre des TPs d'électronique et de transmission RF, nous avons découvert qu'il existe plusieurs modes de modulation, pour transmettre un signal modulant.&lt;br /&gt;
&lt;br /&gt;
Celles vues en TP au S7 sont la modulation en amplitude, en fréquence, en phase, en BPSK et en QPSK.&lt;br /&gt;
&lt;br /&gt;
Or les modulations en phase, en fréquence et en amplitude étant celles les plus connues, la modulation en QAM (Modulation d'Amplitude en Quadrature) est quant à elle moins connue, mais tout aussi utilisées:&lt;br /&gt;
&lt;br /&gt;
-pour la TNT en 64 QAM (en France).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_64qam.jpg|300px|thumb|center|Exemple de constellation 64QAM.]]&lt;br /&gt;
&lt;br /&gt;
-pour le WiFi en 64-QAM ou 256-QAM (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Or ces deux dernières étant peu représentées au niveau des travaux pratiques, ce projet permettra de fournir un peu plus de pratique sur les modulations de type QAM (en diagramme I/Q) dans le domaine des radiofréquences (~800MHz).&lt;br /&gt;
&lt;br /&gt;
(Le nombre devant le QAM indique le nombre de points dans le diagramme I/Q qu'on appelle aussi constellation)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On se réserve le droit de faire '''évoluer''' le cahier des charges a posteriori, si certaines contraintes étaient amenées à évoluer ou se préciser.&lt;br /&gt;
&lt;br /&gt;
=== Objectif et intérêt du projet ===&lt;br /&gt;
&lt;br /&gt;
Pour cela, on nous a fourni des modules commerciaux Mini-circuit pouvant travailler dans les radios-fréquences.&lt;br /&gt;
&lt;br /&gt;
Ceux-ci permettront de mettre en place une grande partie de la chaine de transmission (voir schéma de la chaine de transmission).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_modulation.PNG|300px|thumb|center|Modulation.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_Chaine_demodulation.PNG|300px|thumb|center|Demodulation.]]&lt;br /&gt;
&lt;br /&gt;
On a tout d'abord à mettre en place une carte FPGA et/ou un dispositif permettant d'envoyer un flux de données numériques continuellement pour pouvoir visualiser le diagramme I/Q (mise en valeur du diagramme I/Q et voir même un diagramme un peu plus complexe que le BPSK ou le QPSK).&lt;br /&gt;
&lt;br /&gt;
Le canal de transmission qui sera un simple fil électrique, mais pourra devenir une antenne réceptrice et émettrice si le temps imparti le permet (mise en valeur du et mesure du Bit Error Rate qui sera bien sûr différent suivant le canal de transmission).&lt;br /&gt;
&lt;br /&gt;
Du côté réception ,après démodulation du signal, une remise en forme et une interprétation des données seront réalisées, celle-ci dépendra bien entendu de la provenance du flux de données (constater le succès ou l'échec d'un envoi de données).&lt;br /&gt;
&lt;br /&gt;
Enfin si le temps le permets on pourra mettre en une place un système de codage de l'information avec par exemple un codage redondant permettant de corrigé l'erreur (À définir, on pourra faire constater l'efficacité d'une méthode de codage au choix).&lt;br /&gt;
&lt;br /&gt;
=== Étapes/Déroulement du projet ===&lt;br /&gt;
&lt;br /&gt;
De même que pour le cahier des charges, il se peut que les étapes diffèrent plus ou moins, en fonction des disponibilités, matérielles et contraintes.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Caractérisation des blocs Mini-circuits et épluchage des documentations techniques====&lt;br /&gt;
Avant de les utiliser dans la chaine de transmission, nous avons à faire une caractérisation des blocs fournis:&lt;br /&gt;
&lt;br /&gt;
-la caractérisation du VCO.&lt;br /&gt;
&lt;br /&gt;
-l'étude des possibilités offerte par le modulateur (cela déterminera le nombre de points possible dans la constellation, ie savoir si l'on peut aller au-delà de la QPSK).&lt;br /&gt;
&lt;br /&gt;
-la caractérisation des mélangeurs (Mixer), leurs facteurs réels de multiplication.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Utilisation et exploitation des caractérisations ====&lt;br /&gt;
On pourra ensuite trouver les paramètres pour régler correctement dans notre chaine de transmission certains de nos sous-systèmes comme la boucle à verrouillage de phase.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Génération d'un flux des données numériques ====&lt;br /&gt;
Comme dit précédemment, l'idéal et d'avoir un flux de données numériques transmis en permanence.&lt;br /&gt;
Pour cela plusieurs solutions s'offre à nous, on pourra utiliser un montage générateur pseudo aléatoire (un circuit que l'on a fait l'année dernière en Conception de Circuit Électronique).&lt;br /&gt;
On pourra &amp;quot;émuler&amp;quot; ce montage avec un Arduino, ou bien même le faire au moyen de la Nanoboard.&lt;br /&gt;
On pourra aussi transmettre des chaines de caractère en continu.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Test de la chaine ====&lt;br /&gt;
Une fois les étapes précédentes réalisées, on pourra passer au test de la chaine de transmission. Il faudra vérifier le bon fonctionnement en aval, dedans (boucle a verrouillage de phase), et en amont de la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Première mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
Il est possible que la conception d'un dispositif soit nécessaire que ce soit pour les deux mesures du B.E.R..&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Antennes ====&lt;br /&gt;
Si toutes les étapes précédentes sont satisfaites, on pourra alors faire un canal de transmission plus intéressant, à savoir l'air.&lt;br /&gt;
Nous passerons alors à la conception des antennes, émettrice et réceptrice.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Deuxième mesure du Bit Error Rate ====&lt;br /&gt;
Il sera temps de mesurer/déterminer le B.E.R. de la chaine de transmission avec un fil électrique en tant que canal de transmission.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Codage de l'information et correction d'erreur ====&lt;br /&gt;
En toute fin de ce projet, on pourra même mettre deux dispositifs en aval et en amont de la chaine de transmission.&lt;br /&gt;
On réalisera alors un codeur et un décodeur permettant de faire de la détection/correction d'erreur.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Mise en place d'outil de débogage (tout au long)====&lt;br /&gt;
La mise en place de simples outils de débogage et primordiale, ceux-ci permettront de vérifier le bon fonctionnement de la chaine.&lt;br /&gt;
&lt;br /&gt;
==== =&amp;gt; Proposition d'un sujet de TP (tout au long) ====&lt;br /&gt;
Il se trouve que lors du déroulement du projet, on pourra être amené à se poser des questions au niveau des réglages de la chaine de transmission.&lt;br /&gt;
Or il est fort probable que les élèves qui travailleront sur ce TP pourront alors se poser les mêmes questions.&lt;br /&gt;
C'est pour cela qui sera judicieux de prendre soin de noter les problématiques rencontrées et de donner un certain fil de développement pour venir à bout de la problématique posée.&lt;br /&gt;
Ce qui reviendra à proposer des axes/questions sur les manipulations de cette maquette de TP.&lt;br /&gt;
&lt;br /&gt;
== Note valable pour toutes les semaines ==&lt;br /&gt;
&lt;br /&gt;
'''[[Si un point vous semble imprécis, veuillez vous reportez aux détails fournit en annexe.]]'''&lt;br /&gt;
&lt;br /&gt;
== 1éme semaine: (du 27/01/2014 au 01/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Séance du 05/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Pour bien comprendre les différentes choses à réaliser, on a refait les manipulations vues en TP. On a, pour cela utiliser la maquette didactique TIMS pour générer différent type de modulation:&lt;br /&gt;
&lt;br /&gt;
-la modulation en 4,8,16PSK (on obtient une constellation en forme de cercle).&lt;br /&gt;
&lt;br /&gt;
-La modulation en 4,8,16QAM (on obtient une constellation avec un carré, ou deux: de différentes tailles).&lt;br /&gt;
&lt;br /&gt;
On a très vite dégagé la nécessité de réaliser un montage générateur de tous les mots numériques possibles.&lt;br /&gt;
On a donc fait un programme sur arduino qui équivaut au générateur pseudo aléatoire.&lt;br /&gt;
Celui-ci est directement inspiré du montage que l'on a réalisé l'année dernière en conception de circuit électronique.&lt;br /&gt;
&lt;br /&gt;
Séance du 06/02/2014 :&lt;br /&gt;
&lt;br /&gt;
Lors de cette séance on a exploré toute les possibilités concernant la communication entre la maquette/carte car cela pour avoir une influecnce non négligeable sur le choix de la carte F.P.G.A. et du design de la maquette.&lt;br /&gt;
&lt;br /&gt;
On a donc aussi fait des recherches concernant les possibilités de communications et les bloc I.P. (Intellectual Properties) permettant de programmer un F.P.G.A.&lt;br /&gt;
&lt;br /&gt;
Et enfin, on a eu une discussion avec un responsable technique pour ce qui de la C.E.M. (Compatibilité Electro-Magnétique)&lt;br /&gt;
&lt;br /&gt;
== 2éme semaine: (du 03/02/2014 au 08/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Réflexion sur les possibilités possibles et offertes par le sujet pour ce qui est des parties de communications entre la maquette en interne et de son environnement.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_principe_carte_semaine_2.PNG|300px|thumb|center|Maquette en interne/externe.]]&lt;br /&gt;
&lt;br /&gt;
N'ayant jamais utilisé d'autre carte que la Nanoboard, on s'est attelé à faire des recherches sur la manière de procéder pour programmer une carte F.P.G.A., il se trouve que chaque carte de développement à ses propes manières pour être programmé.&lt;br /&gt;
&lt;br /&gt;
On a pris le soin de notez toutes les questions concernant le F.P.G.A. pour un intervenant industrielle qui assura un cours la semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
== 3éme semaine: (du 10/02/2014 au 15/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
Ayant les oscillateurs commandables en tension, on a pu commencer à faire une manipulation avec les composants Mini Circuit.&lt;br /&gt;
&lt;br /&gt;
Mais après un problème suite à une manipulation l'un des VCOs ne fonctionne plus.&lt;br /&gt;
&lt;br /&gt;
Ce qui nous amène à penser qu'il sera judicieux de prévoir une alimentation au niveau de la carte.&lt;br /&gt;
&lt;br /&gt;
Celle-ci devra être inférieure ou égale à la tension maximale d'alimentation du composant (ceux-ci étant très sensible).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Questions/Réponses:&lt;br /&gt;
&lt;br /&gt;
Comment fait-on pour programmer une carte F.P.G.A. est-ce que la programmation se fait &amp;quot;in situe&amp;quot; ? (in situe : c'est à dire sur la carte elle même) &lt;br /&gt;
Oui, c'est ce qui est utilisé, via une câble JTAG.&lt;br /&gt;
&lt;br /&gt;
Est-ce possible faire une interface USB pour permettre à un ordinateur de communiquer avec la maquette/carte via un F.P.G.A. ? Oui.&lt;br /&gt;
&lt;br /&gt;
Est-ce que la gestion de l'interface Ethernet est envisageable ? Oui.&lt;br /&gt;
&lt;br /&gt;
Pour une communication en protocole UDP avec un ordinateur via une liaison Ethernet, est-ce qu'il y a d'autre façon que d'utiliser un Soft Core ?&lt;br /&gt;
&lt;br /&gt;
Oui, il existe aussi bien en Software, qu'en Hardware.&lt;br /&gt;
&lt;br /&gt;
== 4éme semaine: (du 17/02/2014 au 22/02/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a donc repris l'idée de la 2éme semaine.&lt;br /&gt;
&lt;br /&gt;
Après avoir mis en place un cahier des charges au niveau des qualités, bande passante minimale.&lt;br /&gt;
&lt;br /&gt;
Nous avons fait des recherches sur les composants à utiliser (ie CAN, CAN, ...)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous a permis après une édition rapide de schéma électrique (schematic) d'avoir une idée du nombre de pins dont nous aurons besoin sur une carte FPGA afin de réaliser le projet.&lt;br /&gt;
&lt;br /&gt;
Après prospection, il se trouve que nous nous dirigerions vers la carte Digilent Spartan 3, dont l'école était déjà en possession.&lt;br /&gt;
&lt;br /&gt;
Donc nous nous sommes attelés à faire des recherches et des essais sur cette carte et pour notamment trouver un moyen de la faire fonctionner.&lt;br /&gt;
&lt;br /&gt;
== 5éme semaine: (du 03/03/2014 au 08/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, après plusieurs heures de recherches et d'essai infructueux, on a fini par trouver les drivers pour le câble USB diligent.&lt;br /&gt;
&lt;br /&gt;
Et donc ainsi avoir un fonctionnement de la communication via le câble JTAG plus propice au fonctionnement de la carte.&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur une partie des composants et des dimensionnements pour certains d'entre eux (valeur de résistance,capacité...)&lt;br /&gt;
&lt;br /&gt;
Schématics: Édition de multiple bibliothèque pour Altium, intégrant à la fois schématics et leur empreinte PCB associés.&lt;br /&gt;
&lt;br /&gt;
(On a pu constater qu'un interface 3v3 5v n'est pas forcement nécessaire pour assurer le bon fonctionnement entre deux cartes avec des tensions d'alimentation différentes.)&lt;br /&gt;
&lt;br /&gt;
== 6éme semaine: (du 10/03/2014 au 15/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pu enfin se conforter sur l'ensemble des composants et des choix de régulateur et utilisation d'autre diode Zener.&lt;br /&gt;
&lt;br /&gt;
On trouvera le schéma intégrale avec les bibliothèques nécessaires dans la semaine 5.&lt;br /&gt;
&lt;br /&gt;
Cette semaine à été dédié à l'envoie de la commande des composants au sein du magasin de l'école et du fournisseur.&lt;br /&gt;
&lt;br /&gt;
Après envoi de la commande, il se trouve que le projet a changé d'objectif principal.&lt;br /&gt;
&lt;br /&gt;
Il est maintenant prioritaire de réaliser un code VHDL capable d'évaluer la vitesse de transmission numérique du côté récepteur.&lt;br /&gt;
&lt;br /&gt;
== 7éme semaine: (du 17/03/2014 au 22/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Pour cette semaine, on s'est concentré sur la réalisation d'un générateur pseudo aléatoire en interne au FPGA.&lt;br /&gt;
&lt;br /&gt;
On réalisera une échelle de résistance afin de réaliser une conversion numérique analogique afin de l'envoyer sur la chaine de transmission.&lt;br /&gt;
&lt;br /&gt;
Ce code de &amp;quot;base&amp;quot; nous permettra de réaliser un flux de données fictif pour obtenir toutes les combinaisons récupérant le résultat du bus.&lt;br /&gt;
&lt;br /&gt;
[[MédiaP34_2013_2014_gene_pseudo_19_03_2014_6_semaine_7.zip|Archive contenant le projet ISE Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_rtl_semaine_7.PNG|300px|thumb|center|extrait du schéma RTL, on peut y voir clairement les inférences de Xilinx.]]&lt;br /&gt;
&lt;br /&gt;
Ce schéma a deux entrées et une sortie, une entrée d'initialisation, une horloge et une sortie pour la trame en pseudo aléatoire.&lt;br /&gt;
&lt;br /&gt;
On fera l'essaie sur la carte lors de la semaine suivante.&lt;br /&gt;
&lt;br /&gt;
== 8éme semaine: (du 24/03/2014 au 26/03/2014) ==&lt;br /&gt;
&lt;br /&gt;
Aprés le premier test, on pourrait penser que l'on récupère du bruit en sortie de la carte:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0024_1_probleme_d_overshoot_semaine_8.jpg|300px|thumb|center|Overshoot.]]&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir remédier à ce problème on a fait une pré-division de l'horloge&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0037_1_div_freq_semaine_8.jpg|300px|thumb|center|Overshoot après division.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0039_1_div_freq_zoom_semaine_8.jpg|300px|thumb|center|Overshoot après division (Zoom).]]&lt;br /&gt;
&lt;br /&gt;
Archive contenant toutes les modifications:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_26_03_2014_2_semaine_8.zip|VHDL Semaine 8.]]&lt;br /&gt;
&lt;br /&gt;
On a trouvé un moyen de faire un CNA facilement, via une &amp;quot;échelle dit R-2R&amp;quot;. [[http://www.uchobby.com/index.php/2008/01/08/arduino-audio-dac-options/|Pour le réseau R 2R.]]&lt;br /&gt;
&lt;br /&gt;
Il faut encore modifier le VHDL pour pouvoir l'exploiter et ainsi générer une constellation.&lt;br /&gt;
&lt;br /&gt;
== 9éme semaine: (du 28/03/2014 au 03/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
On a pris donc le soin de modifier le VHDL:&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_gene_pseudo_31_03_2014_1_semaine_9.zip|VHDL semaine 9]]&lt;br /&gt;
&lt;br /&gt;
Ce VHDL à été mis à jour, avec deux entrées (initialisation et une horloge) et un bus de sortie, avec les trames pseudo-aléatoire.&lt;br /&gt;
&lt;br /&gt;
On envoie ces signaux sur deux C.N.A.s (4 bits chacun) pour générer deux signaux I et Q, on peut voir une constellation se dessiner en mode X-Y.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0072_1_Montage_entier_4qam_semaine_9.jpg|300px|thumb|center|Montage avec constellations 4QAM.]]&lt;br /&gt;
&lt;br /&gt;
D'autre constellations réalisées sont disponibles en annexe. On peut monter jusqu'à une constellation de 256 points (2^4*2^4).&lt;br /&gt;
&lt;br /&gt;
On a réalisé le montage complet de toute la chaine de transmission. Il se trouve que la Boucle à Verrouillage de Phase (ou appellée PLL, Phase Loop Locker) ne se verrouille pas sur la porteuse du signal que l'on souhaite récupéré, de ce fait on ne peut pas récupérer les signaux I et Q.&lt;br /&gt;
&lt;br /&gt;
== 10éme semaine: (rédaction en cours) (du 07/04/2014 au 10/04/2014) ==&lt;br /&gt;
&lt;br /&gt;
= Annexes =&lt;br /&gt;
&lt;br /&gt;
== Annexe A: Détails techniques des semaines ==&lt;br /&gt;
&lt;br /&gt;
=== 1éme semaine: (du 27/01/2014 au 01/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Après on a réfléchi sur la potentielle conception/utilisation d'une carte FPGA.&lt;br /&gt;
Il sera judicieux de ne pas se précipiter sur le schéma et la conception/utilisation d'une carte FPGA, sans avoir, au préalable fait le VHDL et le testez avec un banc de test virtuel.&lt;br /&gt;
L'intérêt et de mettre en valeur la nécessité ou non de certains signaux pour le schéma de la carte.&lt;br /&gt;
On va mettre en oeuvre les connaissances acquises au S7 en VHDL (en TP de Circuit Numérique Programmble).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est de l'Arduino, on a répondu aux interrogations suivantes (certaines de ces questions paraissent triviales, mais on préfère éviter les surprises):&lt;br /&gt;
&lt;br /&gt;
Quelle est la vitesse maximale de la communication série de l'Arduino ?&lt;br /&gt;
-115200bauds&lt;br /&gt;
&lt;br /&gt;
Est-ce que, un programme de type &amp;quot;Analog Write&amp;quot; est-il une vraie sortie analogique ?&lt;br /&gt;
&lt;br /&gt;
-Non, c'est juste une PWM. Elle sera exploitable pour faire les signales I/Q mais très contraignantes, car il faudra filtré le signal, et ce sera beaucoup trop lent (du au fait que la modulation est faite au alentour de 850Mhz), le FPGA sera un passage obligé cela ouvrira les portes d'un plus grand débit.&lt;br /&gt;
&lt;br /&gt;
==== Manipulation réalisée sur la maquette TIMS : ====&lt;br /&gt;
&lt;br /&gt;
On a fait un des montages présenté dans l'ouvrage &amp;quot;Volume D1 Fundamental Digital Experiments&amp;quot; dans le but de visualiser l’objectif à atteindre.&lt;br /&gt;
&lt;br /&gt;
On obtient la constellation suivante (16QAM):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_tims_semaine_1.PNG|300px|thumb|center|Constellation visualisé en mode X-Y.]]&lt;br /&gt;
&lt;br /&gt;
Ce qui correspond à deux signaux en visualisation temporelle de cette forme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_constelation_temporelle_tims_semaine_1.PNG|300px|thumb|center|Signaux I et Q. (Image très flouté, à remplacer)]]&lt;br /&gt;
&lt;br /&gt;
On pourra facilement obtenir le même résultat en générant un bus de trame pseudo aléatoire et en l'injectant dans un C.N.A. (Conversion Numérique Analogique)&lt;br /&gt;
&lt;br /&gt;
==== Code Arduino réalisé: ====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schema_electronique_generateur_pseudo_aleatoire.png|300px|thumb|center|Schéma électronique du générateur pseudo aléatoire.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_chrono_simule.PNG|300px|thumb|center|Résultat de la simulation du générateur pseudo aléatoire (on a eu la même chose en pratique).]]&lt;br /&gt;
&lt;br /&gt;
[code]&lt;br /&gt;
/*A peut être supprimer*/&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;		&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void output_init(void){&lt;br /&gt;
  DDRB |= 0x02; // PIN 8,9 sont les deux sorties.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(void){&lt;br /&gt;
  int r1=1,r2=0,r3=0,r4=0,r5=0,retard=0;&lt;br /&gt;
  PORTB=0x00;&lt;br /&gt;
  while(1)&lt;br /&gt;
    {&lt;br /&gt;
      r5=r4;//chaque affectation représente une recopie de la bascule sur le &amp;quot;front montant&amp;quot;, ici c'est simplement l’exécution du code.&lt;br /&gt;
      r4=r3;&lt;br /&gt;
      r3=r2;&lt;br /&gt;
      r2=r1;&lt;br /&gt;
      r1=r4^r5;&lt;br /&gt;
      PORTB=0x01*r1+0x02*retard;//écriture des signaux&lt;br /&gt;
      _delay_ms(10);//le &amp;quot;front montant&amp;quot;, ce qui permet de faire un genre d'horloge.&lt;br /&gt;
      retard=r5;//déphasage du signal&lt;br /&gt;
    }&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
[/code]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_generateur_pseudo_aleatoire_arduino.jpg|300px|thumb|center|Resultat avec le generateur pseudo aléatoire &amp;quot;émuler&amp;quot; avec l'Arduino.]]&lt;br /&gt;
&lt;br /&gt;
Comparaison carte réelle/résultat Arduino:&lt;br /&gt;
&lt;br /&gt;
C'était exactement les signaux attendus (même s'il y un décalage a par rapport à l'original).&lt;br /&gt;
&lt;br /&gt;
On aura bien pour une QPSK (4PSK) tous les couples (ie 00,01,11 et 10).&lt;br /&gt;
&lt;br /&gt;
À propos de l'arduino, on pourra envisager une amélioration pour générer une séquence plus longue:&lt;br /&gt;
&lt;br /&gt;
-il faudra simplement utiliser un tableau d'entier.&lt;br /&gt;
&lt;br /&gt;
-paramétrer sa taille avec un N par exemple.&lt;br /&gt;
&lt;br /&gt;
-N correspondra à la taille de séquence de longueur 2^N.&lt;br /&gt;
&lt;br /&gt;
Voir la section &amp;quot;Code Arduino réalisé&amp;quot; en annexe B dans la semaine correspondante.&lt;br /&gt;
&lt;br /&gt;
==== Possibilités de communications: ====&lt;br /&gt;
&lt;br /&gt;
Exploration des possibilités de communication entre le PC et la carte en amont:&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; Ethernet: =====&lt;br /&gt;
&lt;br /&gt;
*+ Vitesse de transmission (~10M-100M-G)bauds&lt;br /&gt;
&lt;br /&gt;
*- La gestion du flux de données doit être faite par un microcontrôleur (celui-ci pourra être implémenté un bloc I.P. à l'intérieur du FPGA)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; - Haute consommation de CLB du FPGA.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; SPI (communication série): =====&lt;br /&gt;
&lt;br /&gt;
*- Vitesse de transmission&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Arduino capable de communiquer jusqu'a 115200 bauds&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; D'après certaines discussions on pourrait « pousser » au-delà : voir le lien des sujets Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
=====-&amp;gt; I2C : =====&lt;br /&gt;
&lt;br /&gt;
Communication abandonné, ce n'est pas une priorité.&lt;br /&gt;
&lt;br /&gt;
==== À propos des blocs I.P.: ====&lt;br /&gt;
&lt;br /&gt;
En consultant les ordinateurs et en s'appuyant des TPs de CNP, on constate que les blocs suivants existent:&lt;br /&gt;
&lt;br /&gt;
- Xilinx Microblaze/Xilinx Power PC (&amp;quot;µP FPGA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Est-ce possible d'utiliser ces blocs I.P. pour programmer un FPGA sur une carte autre que la Nanoboard ? Comment ?&lt;br /&gt;
&lt;br /&gt;
- EMACx (Ethernet Media Acess Control)(:lien physique entre processeurs et &amp;quot;standart Physical Layer device IEEE802.3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===== Conception de la carte: =====&lt;br /&gt;
&lt;br /&gt;
L'idéal est de se documenter sur la Compatibilité électromagnétique.&lt;br /&gt;
&lt;br /&gt;
=== 2éme semaine: (du 03/02/2014 au 08/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 3éme semaine: (du 10/02/2014 au 15/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lors de cette semaine, après avoir eu le problème de manipulation, nous avons pus prendre connaissance d'un certain montage qui s’avéra utile pour la conception de la carte/maquette.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_schéma_limiteur_de_courant_semaine_3.PNG|300px|thumb|center|Schéma limiteur de courant.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que ce montage se retrouve dans la partie &amp;quot;typical application&amp;quot; de la documentation technique du 7805.&lt;br /&gt;
&lt;br /&gt;
=== 4éme semaine: (du 17/02/2014 au 22/02/2014) ===&lt;br /&gt;
&lt;br /&gt;
On souhaite pouvoir réaliser une communication unidirectionnel ou même transmettre un signal audio ce qui nous contraint à une bande passante minimal de 48kHz, on prendra 200kHz (Pour être bien au delà de la conditions du théorème de Shannon): le but serait donc de branchez par exemple une source audio quelconque puis de la transmettre à travers la maquette et de la recomposer en fin de chaine.&lt;br /&gt;
&lt;br /&gt;
Après édition rapide du schématique on en dégage qu'il nous faudra un minimum d'environ 50 entrées/sorties. Mais ceci ce nombre sera très probablement revue à la hausse lors de prochaine séance.&lt;br /&gt;
&lt;br /&gt;
Voici la carte que l'on utilisera dans la suite du projet:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_S3BOARD-top-400_semaine_4.gif|300px|thumb|center|Digilent Spartan 3.]]&lt;br /&gt;
&lt;br /&gt;
=== 5éme semaine: (du 03/03/2014 au 08/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
Lien vers le Design complet avec les librairies incluses (on remarquera qu'il serait judicieux d’installer toutes les librairies avant d’essayer d'ouvrir le schéma)&lt;br /&gt;
&lt;br /&gt;
A notez aussi que l'on trouvera des reliques de feuilles Excel permettant de trouver rapidement des ratios dans la série E12.&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_Design_pcb_plus_librairies_semaine_5_6.zip|Schéma + Bibliothèques.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.pdf|Schéma en PDF.]]&lt;br /&gt;
&lt;br /&gt;
[[Média:P34_2013_2014_sch_design_pcb_semaine_5_6.png|Schéma au format A2.]]&lt;br /&gt;
&lt;br /&gt;
=== 6éme semaine: (du 10/03/2014 au 15/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 7éme semaine: (du 17/03/2014 au 22/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 8éme semaine: (du 24/03/2014 au 26/03/2014) ===&lt;br /&gt;
&lt;br /&gt;
(Rien en annexe.)&lt;br /&gt;
&lt;br /&gt;
=== 9éme semaine: (du 28/03/2014 au 03/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0061_1_r_2r_semaine_9.jpg|center|thumb|300px|Le réseau R-2R.]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0062_1_4QAM_semaine_9.jpg|center|thumb|300px|4QAM]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0066_1_16QAM_semaine_9.jpg|center|thumb|300px|16QAM]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0069_1_64QAM_semaine_9.jpg|center|thumb|300px|64QAM]]&lt;br /&gt;
&lt;br /&gt;
Pas de photos pour la constellation à 256 points, mais elle a été réalisés.&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est du montage, malgré que la P.L.L., on a un signal d'erreur après filtrage :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Chaine 1: Vtune (commande du V.C.O.)/Chaine 2: &amp;quot;erreur&amp;quot; de commande]]&lt;br /&gt;
&lt;br /&gt;
Ce qui mets en valeur immédiatement deux problèmes majeur:&lt;br /&gt;
&lt;br /&gt;
La chaine fonctionne sur le papier, mais lors de sa mise en pratique, il faut penser à mettre une tension d'offset et aussi réaliser une amplification de l'erreur pour avoir des grandeur de commande adapté au Vtune du V.C.O..&lt;br /&gt;
&lt;br /&gt;
On propose l'amélioration suivante (qui sera réalisé à la prochaine séance):&lt;br /&gt;
&lt;br /&gt;
[[Fichier:P34_2013_2014_DSC_0015_ch1_vtune_ch2_e(t)_semaine_9.jpg|center|thumb|300px|Proposition de voie d'amélioration.]]&lt;br /&gt;
&lt;br /&gt;
On remarquera que les valeurs des résistances et des capacité on était choisit pour permettre un fonctionnement correct des A.O. (Amplificateur Opérationnel), mais pas pour ce qui de l'asservissement de la boucle par manque de temps. &lt;br /&gt;
&lt;br /&gt;
A la fin de cette, on a eu à démonter le montage à cause de contraintes concernant les mini-circuits (car utilisé en travaux pratiques).&lt;br /&gt;
&lt;br /&gt;
=== 10éme semaine: (rédaction en cours) (du 07/04/2014 au 10/04/2014) ===&lt;br /&gt;
&lt;br /&gt;
== Annexe B: Digilent Spartan 3 ==&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire fonctionner la carte Digilent Spartan 3: ===&lt;br /&gt;
&lt;br /&gt;
Ne connectez pas de connecteur JTAG pendant les installations. Redémarrez après chaque installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il faut savoir que le l'ISE Webpack 14.6 fonctionne avec la carte (n'utilisez pas la 14.7, elle ne supporte pas la génération spartan 3 !):&lt;br /&gt;
&lt;br /&gt;
Installez donc l'ISE WebPack 14.6 (ou antérieur à condition que celle-ci soit supérieur à la 7.1i (d'aprés leur documentation))&lt;br /&gt;
&lt;br /&gt;
(voir lien utile sur Xilinx)&lt;br /&gt;
&lt;br /&gt;
Une fois l'installation de l'ISE terminé, faites en sorte d'avoir celui que soit opérationnel (la licence est gratuite !).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installez la &amp;quot;library&amp;quot; ADEPT 2.3 voir le lien utile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après vous n'avez plus qu'a utilisez ISE Xilinx normalement et vous serez capable de reconnaitre la carte via la liaison JTAG, et de le programmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Liens utiles: ===&lt;br /&gt;
&lt;br /&gt;
Lien constructeur/vendeur (avec ressources utiles en bas de la page):&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?Prod=S3BOARD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien &amp;quot;Library&amp;quot; pour le câble USB digilent:&lt;br /&gt;
&lt;br /&gt;
http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,69&amp;amp;Prod=ADEPT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour l'ISE 14.6):&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/products/design-tools/ise-design-suite/index.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lien Xilinx (Pour les versions antérieures veuillez faire attention au système d'exploitation, votre architecture matérielle et le FPGA cible):&lt;br /&gt;
&lt;br /&gt;
(Les informations de compatibilité son sur la page suivante:) (mots clés: xilinx classic(s))&lt;br /&gt;
&lt;br /&gt;
http://www.xilinx.com/tools/classics.htm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream, et le charger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procédure pour faire une programmation en &amp;quot;non&amp;quot;-volatile: ===&lt;br /&gt;
&lt;br /&gt;
Générer le bitstream et l'utiliser pour générer un .mcs qui vous permettra d'inscrire le programme dans la mémoire (E?)PROM.&lt;br /&gt;
&lt;br /&gt;
On remarquera que la programmation en non-volatile est utile pour faire un remise à zéro et recharger le contenu de l'(E?)PROM, mais semble être sensible au débranchement de l'adaptateur d'alimentation de la carte.&lt;br /&gt;
&lt;br /&gt;
=== Exemple de programmation: ===&lt;br /&gt;
&lt;br /&gt;
Voir le lien digilent pour ceci dans cette annexe.&lt;/div&gt;</summary>
		<author><name>Jvaessen</name></author>	</entry>

	</feed>