Décodeur de réception France Inter

Documents pareils
Le langage VHDL. Eduardo Sanchez EPFL

Manipulations du laboratoire

SIN-FPGA DESCRIPTION PAR SCHEMA

T. BLOTIN Lycée Paul-Eluard SAINT-DENIS

Examen Médian - 1 heure 30

SYSTEME DE PALPAGE A TRANSMISSION RADIO ETUDE DU RECEPTEUR (MI16) DOSSIER DE PRESENTATION. Contenu du dossier :

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

Génie Logiciel avec Ada. 4 février 2013

Conception Systèmes numériques VHDL et synthèse automatique des circuits

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Organigramme / Algorigramme Dossier élève 1 SI

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Arbres binaires de recherche

PROGRAMMATION EVENEMENTIELLE sur EXCEL

RÉALISATION ET MISE AU POINT D UN SYSTÈME DE TÉLÉSURVEILLANCE VIDÉO

Conception Systèmes numériques VHDL et synthèse automatique des circuits

Algorithmique et programmation : les bases (VBA) Corrigé

Java Licence Professionnelle CISII,

GUIDE PRATIQUE déplacements professionnels temporaires en France et à l étranger

Cours d algorithmique pour la classe de 2nde

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Algorithmique & programmation

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Les techniques de multiplexage

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

SUR MODULE CAMÉRA C38A (OV7620)

Problèmes liés à la concurrence

Recherche dans un tableau

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

DM 1 : Montre Autoquartz ETA

Corrigé des TD 1 à 5

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Les réseaux cellulaires vers la 3G

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

Cours Informatique Master STEP

L identification par radio fréquence principe et applications

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Equipement. électronique

Bases de données avancées

Tests de performance du matériel

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

Compilation (INF 564)

Introduction à la Programmation Parallèle: MPI

SMARTair Présentation

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Chap17 - CORRECTİON DES EXERCİCES

1. Structure d'un programme FORTRAN 95

SYSTEME DE TELESURVEILLANCE VIDEO

Programmer en JAVA. par Tama

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996]

QUESTION 1 {2 points}

SoMachine. Solution logicielle pour votre architecture Machine Atelier de découverte. SoMachine

Projet Active Object

France SMS+ MT Premium Description

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig

IRL : Simulation distribuée pour les systèmes embarqués

AMENDMENT TO BILL 32 AMENDEMENT AU PROJET DE LOI 32

Durée estimée :1 journée Date de la réalisation : Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Présentation Windows Azure Hadoop Big Data - BI

Préparer un état de l art

Configurer la supervision pour une base MS SQL Server Viadéis Services

Algorithmique des Systèmes Répartis Protocoles de Communications

//////////////////////////////////////////////////////////////////// Administration bases de données

Conférence sur les microcontroleurs.

Introduction à la programmation concurrente

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL


Extrait des Exploitations Pédagogiques

MS SQL Express 2005 Sauvegarde des données

ACTIVITÉ DE PROGRAMMATION

1. PRESENTATION DU PROJET

Cours Bases de données 2ème année IUT

Paris Airports - Web API Airports Path finding

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

PL langage de programmation côté serveur. SQL à la base : types, expressions, requêtes

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server

Gestion de base de données

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

TRIGONOMETRIE Algorithme : mesure principale

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

Propagation sur réseau statique et dynamique

MAC-TC: programmation d un plate forme DSP-FPGA

EIP 2012 Projet Livepad. Documentation technique 1.5

Plan du cours Cours théoriques. 29 septembre 2014

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

La programmation des PIC en C. Les fonctions, les interruptions.

Gestion mémoire et Représentation intermédiaire

Mesures de temps de propagation de groupe sur convertisseurs de fréquence sans accès aux OL

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

Corrigés des premiers exercices sur les classes

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

JavaServer Pages (JSP)

Java 1.5 : principales nouveautés

Utilitaires méconnus de StrataFrame

Transcription:

Alice Rocquain Mercredi 8 novembre 2006 Pierre Hoffmann GEII1 groupe A Décodeur de réception France Inter Récupération de l horaire atomique Partie numérique : VHDL Rapport d étape

Présentation du projet France-Inter envoie continuellement sur sa porteuse à 162kHz des informations horaires. On pourra ainsi y retrouver l heure qu il est, mais aussi la date, le mois, le jour de la semaine etc. France-Inter s appuie sur une horloge atomique ce qui permet d avoir la plus grande précision possible. Nous allons donc réaliser le décodeur horaire. Le signal France Inter est capté par l antenne. Après un traitement du signal (partie analogique traitée prochainement), on récupère une trame facilement décryptable, et on en déduit l information horaire. Programmation du diviseur de fréquence Tout au cours du processus de traitement du signal analogique, plusieurs fréquences d horloges sont demandées. La partie analogique demande du 200kHz, 160kHz, 2kHz et du 200Hz. Le problème est que l on ne dispose pas de 4 quartz possédant chacun une fréquence particulière Nous ne disposons que d un VCXO à 20MHz. Nous allons donc synthétiser un programme en VHDL permettant de diviser successivement ce 20MHz en fréquences plus petites (celles qui nous intéressent). Deux solutions de programmation s ouvrent à nous : o La première facile à réaliser mais peu optimisée consiste à créer autant de «Entity» que de fréquences demandées (une pour le 200kHz, une pour le 160kHz et ainsi de suite). 2

o La seconde, et celle que nous retiendrons, consiste en la création d une seule et unique «Entity» possédant un paramètre en entrée (utilisation de la fonction «generic map ( )» ). Notre «Entity» doit donc posséder une structure la plus générale possible pour pouvoir s adapter à chaque situation différente. Que faire lorsque le paramètre passé en argument est pair, impair? Description de «Entity» et de son architecture a) Interconnexion des diviseurs de fréquences Afin de faciliter la programmation et d optimiser le programme, nous mettons nos diviseurs de fréquences de la manière qui suit : b) Schéma d instanciation de l entity Le compteur ne peut «tourné» que lorsque EN est actif. 3

A chaque fois que le compteur recommence un cycle, RCO passe à 1 durant un cycle d horloge c) Programme en VHDL commenté Diviseur de fréquence Ce programme a été compilé, simulé, synthétisé et testé avec succès. Il remplit le cahier des charges. Cependant une forme plus optimisée existe. Elle modifie la partie traitant de la mise en forme d un signal ayant un paramètre impair. Auteurs : Alice Rocquain et Pierre Hoffmann But : «Entity» permettant de diviser un signal en fonction d un paramètre d entrée entity comptebox is // entity nommée comptebox generic (argum : integer // argum : paramètre d entrée de type integer port( clk: in std_logic; en: in std_logic; rco: out std_logic; outclk : out std_logic // déclaration des entrées/sorties de l entity end entity comptebox; // fin entity architecture archibox of comptebox is signal compteur1 : integer range 0 to argum/2 ; signal paire : std_logic :='0'; signal outclock : std_logic :='0'; signal temp : std_logic := '0'; // création des signaux temporaires begin outclk <= outclock; process begin wait until rising_edge (clk if argum mod 2 = 0 then paire <='1'; else paire <='0'; //début de la partie séquentielle //horologe principale : clk = 20MHz // vérification de la parité du paramètre 4

if en ='1' then //si enable actif alors if paire = '1' then // si paramètre pair alors => if compteur1 < argum/2-1 then // test de la valeur du compteur temporaire compteur1<= compteur1+ 1; //si inférieur : incrémentation du compteur else else compteur1 <= 0; outclock <= not outclock; if compteur1 < argum/2-1 then compteur1<= compteur1+ 1; // si supérieur au demi du paramètre //RAZ du compteur //inversion de la sortie // si paramètre impair // même test que pour impair else if temp = '0' and compteur1 < argum/2 then compteur1<= compteur1+ 1; // améliore la précision //une fois sur deux : ajoute +1 else outclock <= not outclock; compteur1 <= 0; temp<= not temp; if outclock = '0' and compteur1 = 0 then rco<='1'; else rco<='0'; end process; end archibox; //gestion du RCO //fin process puis architecture Quelles valeurs envoyer en paramètre pour obtenir les fréquences désirées? Fréquences désirées Valeur du paramètre d entrée (division par ) 160 khz 125 200 khz 100 2kHz 100 200Hz 10 5

Le test-bensh permettant de tester les différentes fréquences a été créé, compilé et synthétisé avec succès. Cependant il ne présente maintenant plus aucun intérêt pour le projet France- Inter, c est pour cela qu il n est pas présent dans ce rapport. Programmation de l automate La partie analogique se chargeant de la réception et de la mise en forme du signal nous envoie à nous numériciens un signal de la forme : Pour pouvoir assurer le bon fonctionnement de la partie «Afficheur», il est impératif de décomposer le signal reçu sous la forme : Tout l enjeu du nouveau programme à réaliser était de réussir à se situer dans le temps afin de pouvoir sortir des signaux INIT, COM, SID et DAV cohérents par rapport au signal d entrée. Nous avons donc réalisé un automate en VHDL. a) Diagramme de transition La variable «count» est exprimée en ms afin de faciliter la compréhension du diagramme de transition. Bien évidemment lors de la programmation, nous remplacerons les valeurs en milli secondes par une valeur qu un compteur devra atteindre afin de réaliser la temporisation. 6

b) Programme en VHDL commenté Nous allons décomposer cet automate en deux programmes complémentaires. Un programme se chargera de réaliser un comptage en boucle. C est grâce à lui que l on pourra se repérer par rapport au temps. Notre second programme collectera cette information concernant le temps, et se chargera pour ainsi dire de réaliser l automate. 1) Programme «Compteur» «Création de la base TEMPS» Ce programme a été compilé et simulé avec succès. Il remplit le cahier des charges. Auteurs : Alice Rocquain et Pierre Hoffmann But : Compte indéfiniment Permet de se repérer dans l espace temps entity councoun is port( clk : in std_logic; //déclaration des entrées/sorties 7

country : out integer range 1 to 241; raz : in std_logic end entity councoun; architecture archimede of councoun is signal SYS_count : integer range 1 to 241; begin country<=sys_count; process begin wait until rising_edge (clk //fonctions de comptage en tenant compte de RAZ et des débordements if raz='0' then SYS_count<=SYS_count+1; if SYS_count=240 then SYS_count <= 1; end process; end archimede; //fin du process, architecture 2) Programme «Automate» Ce programme a été compilé et simulé avec succès. Il remplit le cahier des charges. Auteurs : Alice Rocquain et Pierre Hoffmann But : Décompose le signal d entrée en répondant au cahier des charges - Automate entity totomate is 8

port( clk : in std_logic; FI : in std_logic; count : in integer range 0 to 241; init : out std_logic; com : out std_logic; sid : out std_logic; dav : out std_logic; raz : out std_logic // déclaration des entrées sortie de totomate end entity totomate; architecture archibobox of totomate is // déclaration des signaux internes type etat_type is (E1, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11, E12 signal etat : etat_type; signal SYS_count : integer range 0 to 241; begin with etat select com <= '1' when E1, '0' when E2, '1' when E9, '0' when E10, '0' when others; //affectations des sorties with etat select init <= '0' when E9, '1' when E10, '1' when others; with etat select raz <= '1' when E9, '0' when E1, '0' when others; process begin wait until rising_edge (clk case etat is when E1 => etat<=e2; // conditions pour passer d un état à l autre when E2 => if SYS_count = 16 then etat<=e3; when E3 => if FI = '1' then etat<=e4; if SYS_count = 28 then etat<= E11; 9

when E4 => etat<= E5; when E5 => etat <= E6; when E6 => if SYS_count = 190 then etat <= E7; end if ; when E7 => if FI = '1'then etat <= E1; if SYS_count = 240 then etat <= E8; when E8 => if FI = '1' then etat <= E9; when E9 => etat <= E10; when E10 => if SYS_count = 16 then etat <= E3; when E11 => etat <= E12; when E12 => etat <= E6; end case; end process; end archibobox; //fin du process, architecture 10

3) Programme «Test-bensh» Nous avons deux programmes. Il est nécessaire de faire un test-bensh afin de les «rassembler» a) Schéma d instanciation b) Programme en VHDL commenté Ce programme a été compilé et simulé avec succès. Il remplit le cahier des charges. 11

Auteurs : Alice Rocquain et Pierre Hoffmann But : Rassemble les deux programmes précédents ENTITY benscha IS port( FI : in std_logic; clk: in std_logic; init: out std_logic; com : out std_logic; sid : out std_logic; dav : out std_logic END benscha; -------------------------------------------------- ARCHITECTURE archimoi OF benscha IS --------- DECLARATIONS --------- COMPONENT councoun //declarations des components //pour le compteur port( clk : in std_logic; country : out integer range 0 to 254; raz : in std_logic END COMPONENT; COMPONENT totomate //pour l automate port( clk : in std_logic; FI : in std_logic; count : in integer range 0 to 254; init : out std_logic; com : out std_logic; sid : out std_logic; dav : out std_logic; raz : out std_logic END COMPONENT; SIGNAL SYS_init : std_logic; SIGNAL SYS_com : std_logic; SIGNAL SYS_sid : std_logic; SIGNAL SYS_dav : std_logic; SIGNAL SYS_clk : std_logic; SIGNAL SYS_raz : std_logic; SIGNAL SYS_count : integer range 0 to 254; 12

SIGNAL SYS_FI : std_logic; BEGIN init<=sys_init; com <= SYS_com; sid <= SYS_sid; dav<= SYS_dav; SYS_FI <=FI ; SYS_clk <= clk; //Instanciation Instance1 : totomate PORT MAP ( // «On attache les fils» clk => SYS_clk, FI=> SYS_FI, count=> SYS_count, init => SYS_init, com => SYS_com, sid =>SYS_sid, dav =>SYS_dav, raz =>SYS_raz Instance2 : councoun PORT MAP ( clk =>SYS_clk, country=>sys_count, raz =>SYS_raz END archimoi ; //fin du process, architecture En guise de conclusion La partie numérique a donc permis de générer avec une redoutable précision différentes fréquences d horloges, permettant ainsi à la partie analogique de pouvoir travailler. Elle permet aussi de «décoder» la trame analogique qui nous est transmise et de «l encoder» pour que le module afficheur puisse faire son travail. 13