Outils pour utilisateurs

Outils du site


tptelecomnum

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tptelecomnum [2019/03/25 14:37]
bvandepo
tptelecomnum [2021/02/19 21:20] (Version actuelle)
Ligne 10: Ligne 10:
 -------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_pic/warning.jpeg}}+{{https://bvdp.inetdoc.net/files/iut/tp_pic/warning.jpeg}}
  
  
Ligne 33: Ligne 33:
 <ifauth @prof> <ifauth @prof>
 Projet pour programmer les maquettes utilisées dans la partie analogique: Projet pour programmer les maquettes utilisées dans la partie analogique:
-  wget http://homepages.laas.fr/bvandepo/files/iut/tp_telecomnum/telecom_num_valid_4.cpp.hex+  wget https://bvdp.inetdoc.net/files/iut/tp_telecomnum/telecom_num_valid_4.cpp.hex
   avrdude -p m328p -c arduino -b 115200 -P /dev/ttyACM0 -U flash:w:telecom_num_valid_4.cpp.hex   avrdude -p m328p -c arduino -b 115200 -P /dev/ttyACM0 -U flash:w:telecom_num_valid_4.cpp.hex
 (voir https://skyduino.wordpress.com/2011/12/02/tutoriel-avrdude-en-ligne-de-commande/ )   (voir https://skyduino.wordpress.com/2011/12/02/tutoriel-avrdude-en-ligne-de-commande/ )  
Ligne 39: Ligne 39:
      
 Pour les sources du projet Pour les sources du projet
-  http://homepages.laas.fr/bvandepo/files/iut/tp_telecomnum/telecom_num_valid_4.zip+  https://bvdp.inetdoc.net/files/iut/tp_telecomnum/telecom_num_valid_4.zip
 pour mettre à jour le binaire (après avoir compilé avec l'ide arduino): pour mettre à jour le binaire (après avoir compilé avec l'ide arduino):
   scp /tmp/build726420971845041541.tmp/telecom_num_valid_4.cpp.hex bvandepo@homepages.laas.fr:files/iut/tp_telecomnum/   scp /tmp/build726420971845041541.tmp/telecom_num_valid_4.cpp.hex bvandepo@homepages.laas.fr:files/iut/tp_telecomnum/
Ligne 71: Ligne 71:
  
  
-Afin de pouvoir utiliser le shield DAC (présenté sur: http://homepages.laas.fr/bvandepo/wiki/doku.php?id=tpdacspi ), vous devez installer une librairie. Pour cela, copiez-collez dans une console après l'avoir ouverte avec ALT+F2 lxterm :+Afin de pouvoir utiliser le shield DAC (présenté sur: https://bvdp.inetdoc.net/wiki/doku.php?id=tpdacspi ), vous devez installer une librairie. Pour cela, copiez-collez dans une console après l'avoir ouverte avec ALT+F2 lxterm :
  
   echo commence   echo commence
Ligne 78: Ligne 78:
   mkdir -p libraries   mkdir -p libraries
   cd libraries   cd libraries
-  wget http://homepages.laas.fr/bvandepo/files/iut/tp_dacspi/Tlv5637.zip+  wget https://bvdp.inetdoc.net/files/iut/tp_dacspi/Tlv5637.zip
   unzip -o Tlv5637.zip   unzip -o Tlv5637.zip
   rm Tlv5637.zip   rm Tlv5637.zip
Ligne 87: Ligne 87:
 <color #FF0000>**A faire uniquement à la première séance:**</color> <color #FF0000>**A faire uniquement à la première séance:**</color>
  
-Copier et executer les instructions suivantes dans une console lxterm+Copier et exécuter les instructions suivantes dans une console lxterm
  
   echo commence   echo commence
   cd ~/Arduino   cd ~/Arduino
-  wget http://homepages.laas.fr/bvandepo/files/iut/tp_telecomnum/telecom_num_a_trou_2.zip+  wget https://bvdp.inetdoc.net/files/iut/tp_telecomnum/telecom_num_a_trou_2.zip
   unzip telecom_num_a_trou_2.zip   unzip telecom_num_a_trou_2.zip
   rm telecom_num_a_trou_2.zip   rm telecom_num_a_trou_2.zip
Ligne 136: Ligne 136:
 Cette fonction communique avec votre programme à l'aide de deux FIFOs qui permettent de stocker les valeurs pour piloter les canaux I et Q. Cette fonction communique avec votre programme à l'aide de deux FIFOs qui permettent de stocker les valeurs pour piloter les canaux I et Q.
  
-{{ http://homepages.laas.fr/bvandepo/files/iut/tp_telecomnum/interrupt_routine.png?600 }}+{{ https://bvdp.inetdoc.net/files/iut/tp_telecomnum/interrupt_routine.png?600 }}
  
    
Ligne 186: Ligne 186:
 </ifauth> </ifauth>
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_gps/TODO.jpg}}  Après avoir écrit votre code, vérifiez à l'oscilloscope le signal généré en expliquant la fréquence du signal carré généré.+{{https://bvdp.inetdoc.net/files/iut/tp_gps/TODO.jpg}}  Après avoir écrit votre code, vérifiez à l'oscilloscope le signal généré en expliquant la fréquence du signal carré généré.
  
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_pic/validation.png}} Une fois les réponses validées, mettre à jour le suivi de version en saisissant dans une console:+{{https://bvdp.inetdoc.net/files/iut/tp_pic/validation.png}} Une fois les réponses validées, mettre à jour le suivi de version en saisissant dans une console:
   echo commence   echo commence
   cd ~/Arduino/telecom_num_a_trou_2   cd ~/Arduino/telecom_num_a_trou_2
Ligne 210: Ligne 210:
 Serial.print("Etat du buffer "); Serial.print("Etat du buffer ");
 Serial.print(name); Serial.print(name);
-Serial.println(": ");+Serial.print(" contenant "); 
 +Serial.print(tab_size,DEC); 
 +Serial.println(" case(s) : ");
 for (int i=0;i<tab_size ;i++) for (int i=0;i<tab_size ;i++)
 { {
Ligne 233: Ligne 235:
  
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_gps/TODO.jpg}}  Appeler la fonction d'affichage pour visualiser les données du tableau utilisé pour stocker les échantillons du signal carré généré à l'exercice 1. Dans les exercices suivants, vous pourrez utiliser cette fonction pour visualiser le contenu des tableaux remplis par les différentes fonctions que vous implémenterez.+{{https://bvdp.inetdoc.net/files/iut/tp_gps/TODO.jpg}}  Appeler la fonction d'affichage pour visualiser les données du tableau utilisé pour stocker les échantillons du signal carré généré à l'exercice 1. Dans les exercices suivants, vous pourrez utiliser cette fonction pour visualiser le contenu des tableaux remplis par les différentes fonctions que vous implémenterez.
  
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_pic/validation.png}} Une fois les réponses validées, mettre à jour le suivi de version en saisissant dans une console:+{{https://bvdp.inetdoc.net/files/iut/tp_pic/validation.png}} Une fois les réponses validées, mettre à jour le suivi de version en saisissant dans une console:
   echo commence   echo commence
   cd ~/Arduino/telecom_num_a_trou_2   cd ~/Arduino/telecom_num_a_trou_2
Ligne 252: Ligne 254:
  
  
-{{ http://homepages.laas.fr/bvandepo/files/iut/tp_telecomnum/encode_bpsk.png?400 }}+{{ https://bvdp.inetdoc.net/files/iut/tp_telecomnum/encode_bpsk.png?400 }}
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_gps/TODO.jpg}}  Implémentez la fonction encode_bpsk en vous aidant des commentaires de celle-ci. Dans un deuxième temps, vous compléterez la fonction loop (en vous aidant du code de l'exercice précédent) pour :+{{https://bvdp.inetdoc.net/files/iut/tp_gps/TODO.jpg}}  Implémentez la fonction encode_bpsk en vous aidant des commentaires de celle-ci. Dans un deuxième temps, vous compléterez la fonction loop (en vous aidant du code de l'exercice précédent) pour :
  
   - générer une donnée à transmettre sur 8-bits (0x5A)   - générer une donnée à transmettre sur 8-bits (0x5A)
Ligne 260: Ligne 262:
   - écrire le résultat du traitement (les **data_size** cases du tableaux **i_buffer**) dans la FIFO pour I uniquement (désactiver la fifo Q) en utilisant la fonction **write_fifo_I_Q**   - écrire le résultat du traitement (les **data_size** cases du tableaux **i_buffer**) dans la FIFO pour I uniquement (désactiver la fifo Q) en utilisant la fonction **write_fifo_I_Q**
  
-{{ http://homepages.laas.fr/bvandepo/files/iut/tp_telecomnum/bpsk_encoding_chain.png?600 }}+{{ https://bvdp.inetdoc.net/files/iut/tp_telecomnum/bpsk_encoding_chain.png?600 }}
  
  
-Executer le même programme mais pour une donnée valant 0xB5. Comparer les signaux observés à l'oscilloscope avec les signaux prévus et conclure.+Exécuter le même programme mais pour une donnée valant 0xB5. Comparer les signaux observés à l'oscilloscope avec les signaux prévus et conclure.
  
  
Ligne 302: Ligne 304:
  
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_pic/validation.png}} Une fois les réponses validées, mettre à jour le suivi de version en saisissant dans une console:+{{https://bvdp.inetdoc.net/files/iut/tp_pic/validation.png}} Une fois les réponses validées, mettre à jour le suivi de version en saisissant dans une console:
   echo commence   echo commence
   cd ~/Arduino/telecom_num_a_trou_2   cd ~/Arduino/telecom_num_a_trou_2
Ligne 323: Ligne 325:
 Dans cet exercice, nous allons ajouter une étape au codage NRZ afin de coder les bits de données au format Manchester. Dans cet exercice, nous allons ajouter une étape au codage NRZ afin de coder les bits de données au format Manchester.
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_gps/TODO.jpg}}  Complétez dans un premier temps la fonction **manchester_as_xor** (l'opérateur **XOR** est défini au début du fichier). **Attention, dans le tableau de symboles généré par encode_bpsk, les symboles sont stockés en partant du bit de poids faible.**+{{https://bvdp.inetdoc.net/files/iut/tp_gps/TODO.jpg}}  Complétez dans un premier temps la fonction **manchester_as_xor** (l'opérateur **XOR** est défini au début du fichier). **Attention, dans le tableau de symboles généré par encode_bpsk, les symboles sont stockés en partant du bit de poids faible.**
  
-{{ http://homepages.laas.fr/bvandepo/files/iut/tp_telecomnum/manchester.png?400 }}+{{ https://bvdp.inetdoc.net/files/iut/tp_telecomnum/manchester.png?400 }}
  
 Vous rajouterez ensuite l'appel de cette fonction dans la fonction loop à la suite de la fonction encode_bpsk pour traiter la valeur 0x5A (8-bits). La fonction **manchester_as_xor** devra encoder le tableau issu de **encode_bpsk** vers un nouveau tableau (**manchester_buffer**) dont le contenu sera écrit dans la FIFO I comme dans l'exercice précédent. Vous rajouterez ensuite l'appel de cette fonction dans la fonction loop à la suite de la fonction encode_bpsk pour traiter la valeur 0x5A (8-bits). La fonction **manchester_as_xor** devra encoder le tableau issu de **encode_bpsk** vers un nouveau tableau (**manchester_buffer**) dont le contenu sera écrit dans la FIFO I comme dans l'exercice précédent.
  
-{{ http://homepages.laas.fr/bvandepo/files/iut/tp_telecomnum/bpsk_encoding_chain_manchester.png }}+{{ https://bvdp.inetdoc.net/files/iut/tp_telecomnum/bpsk_encoding_chain_manchester.png }}
  
 Une fois le programme compilé et chargé, vérifiez à l'oscilloscope le signal généré. Une fois le programme compilé et chargé, vérifiez à l'oscilloscope le signal généré.
 +
 +
 +Exécuter le même programme mais pour une donnée valant 0xB5. Comparer les signaux observés à l'oscilloscope avec les signaux prévus et conclure.
 +
  
  
Ligne 368: Ligne 374:
  
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_pic/validation.png}} Une fois les réponses validées, mettre à jour le suivi de version en saisissant dans une console:+{{https://bvdp.inetdoc.net/files/iut/tp_pic/validation.png}} Une fois les réponses validées, mettre à jour le suivi de version en saisissant dans une console:
   echo commence   echo commence
   cd ~/Arduino/telecom_num_a_trou_2   cd ~/Arduino/telecom_num_a_trou_2
Ligne 386: Ligne 392:
  
    
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_gps/TODO.jpg}}  Complétez la fonction **dsss_as_table**  en utilisant une clé de codage sur 8 bits définie dans le tableau **const char dsss_key2[8] = {0,0,0,0,0,0,0,0};**. La fonction **dsss_as_table** devra, pour chacun des bits qu'elle doit traiter, générer la séquence correspondant à la clef si le bit est à 0 et la séquence complémentaire si le bit est à 1 (utilisation du XOR). +{{https://bvdp.inetdoc.net/files/iut/tp_gps/TODO.jpg}}  Complétez la fonction **dsss_as_table**  en utilisant une clé de codage sur 8 bits définie dans le tableau **const char dsss_key2[8] = {0,0,0,0,0,0,0,0};**. La fonction **dsss_as_table** devra, pour chacun des bits qu'elle doit traiter, générer la séquence correspondant à la clef si le bit est à 0 et la séquence complémentaire si le bit est à 1 (utilisation du XOR). 
  
 Testez votre programme de la même manière que pour les exercices précédents. Avec la clef fournie, vous devez obtenir le même signal que pour l'encodage BPSK mais avec une durée de bit huit fois plus longue. Testez votre programme de la même manière que pour les exercices précédents. Avec la clef fournie, vous devez obtenir le même signal que pour l'encodage BPSK mais avec une durée de bit huit fois plus longue.
Ligne 450: Ligne 456:
 </ifauth> </ifauth>
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_pic/validation.png}} Une fois les réponses validées, mettre à jour le suivi de version en saisissant dans une console:+{{https://bvdp.inetdoc.net/files/iut/tp_pic/validation.png}} Une fois les réponses validées, mettre à jour le suivi de version en saisissant dans une console:
   echo commence   echo commence
   cd ~/Arduino/telecom_num_a_trou_2   cd ~/Arduino/telecom_num_a_trou_2
Ligne 469: Ligne 475:
 Pour le codage sur deux voies I/Q de la donnée à envoyer, il est nécessaire de découper cette donnée en groupe disjoints de deux bits (duplet de bits). Pour cette fonction, il est conseillé de déclarer un tableau faisant l'association des duplets avec la valeur à envoyer sur les voies I et Q. Cette méthode permettra d'avancer plus rapidement dans les exercices suivants. Pour le codage sur deux voies I/Q de la donnée à envoyer, il est nécessaire de découper cette donnée en groupe disjoints de deux bits (duplet de bits). Pour cette fonction, il est conseillé de déclarer un tableau faisant l'association des duplets avec la valeur à envoyer sur les voies I et Q. Cette méthode permettra d'avancer plus rapidement dans les exercices suivants.
  
-{{ http://homepages.laas.fr/bvandepo/files/iut/tp_telecomnum/encode_qpsk.png?400 }}+{{ https://bvdp.inetdoc.net/files/iut/tp_telecomnum/encode_qpsk.png?400 }}
  
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_gps/TODO.jpg}}  Afin de construire ce tableau, complétez le diagramme de constellation fourni avec :+{{https://bvdp.inetdoc.net/files/iut/tp_gps/TODO.jpg}}  Afin de construire ce tableau, complétez le diagramme de constellation fourni avec :
   * les positions des combinaisons I/Q sur la constellation   * les positions des combinaisons I/Q sur la constellation
   * le tableau associant pour chaque position les tensions (+V/-V) à générer sur les voies I et Q   * le tableau associant pour chaque position les tensions (+V/-V) à générer sur les voies I et Q
Ligne 478: Ligne 484:
 A partir de ce tableau, construisez deux tableaux associatifs dans votre programme arduino (tableaux **qpsk_i_chan_binary** et **qpsk_q_chan_binary**. Chaque tableau (un pour la voie I et un pour la voie Q) encode la valeur 1 (+V) ou 0 (-V) pour une combinaison IQ. A partir de ce tableau, construisez deux tableaux associatifs dans votre programme arduino (tableaux **qpsk_i_chan_binary** et **qpsk_q_chan_binary**. Chaque tableau (un pour la voie I et un pour la voie Q) encode la valeur 1 (+V) ou 0 (-V) pour une combinaison IQ.
  
-{{ http://homepages.laas.fr/bvandepo/files/iut/tp_telecomnum/qpsk_encoding_chain.png?600 }}+{{ https://bvdp.inetdoc.net/files/iut/tp_telecomnum/qpsk_encoding_chain.png?600 }}
  
 Testez la fonction **encode_qpsk** comme dans les exercices précédents (attention pour cette exercice il faut penser à mettre le enable de la fifo Q à '1' lors de l'appel de la fonction **write_fifo_I_Q**). Testez la fonction **encode_qpsk** comme dans les exercices précédents (attention pour cette exercice il faut penser à mettre le enable de la fifo Q à '1' lors de l'appel de la fonction **write_fifo_I_Q**).
Ligne 484: Ligne 490:
  
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_pic/validation.png}} Une fois les réponses validées, mettre à jour le suivi de version en saisissant dans une console:+{{https://bvdp.inetdoc.net/files/iut/tp_pic/validation.png}} Une fois les réponses validées, mettre à jour le suivi de version en saisissant dans une console:
   echo commence   echo commence
   cd ~/Arduino/telecom_num_a_trou_2   cd ~/Arduino/telecom_num_a_trou_2
Ligne 540: Ligne 546:
    
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_gps/TODO.jpg}}  Complétez la fonction **encode_qpsk_gray**. Cette fonction est presque identique à la fonction **encode_qpsk** mais définit une association différente entre les duplets et les symboles I et Q. Complétez le diagramme de constellation fourni puis construisez la table associative. Enfing, codez vos tableaux associatifs dans les variables **qpsk_i_chan_gray** et **qpsk_q_chan_gray**.+{{https://bvdp.inetdoc.net/files/iut/tp_gps/TODO.jpg}}  Complétez la fonction **encode_qpsk_gray**. Cette fonction est presque identique à la fonction **encode_qpsk** mais définit une association différente entre les duplets et les symboles I et Q. Complétez le diagramme de constellation fourni puis construisez la table associative. Enfing, codez vos tableaux associatifs dans les variables **qpsk_i_chan_gray** et **qpsk_q_chan_gray**.
  
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_pic/validation.png}} Une fois les réponses validées, mettre à jour le suivi de version en saisissant dans une console:+{{https://bvdp.inetdoc.net/files/iut/tp_pic/validation.png}} Une fois les réponses validées, mettre à jour le suivi de version en saisissant dans une console:
   echo commence   echo commence
   cd ~/Arduino/telecom_num_a_trou_2   cd ~/Arduino/telecom_num_a_trou_2
Ligne 560: Ligne 566:
  
    
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_gps/TODO.jpg}}  Sauvez le sketch arduino sous un nouveau nom pour garder une version du code écrit précédemment dans un fichier.+{{https://bvdp.inetdoc.net/files/iut/tp_gps/TODO.jpg}}  Sauvez le sketch arduino sous un nouveau nom pour garder une version du code écrit précédemment dans un fichier.
  
 Il vous faut maintenant adapter le programme pour piloter le DAC avec des valeurs autres que 0x000 et 0x3FF. En 16 QAM, les données sont découpées en mots de 4 bits. 2 bits sont envoyés sur le canal I et 2 bits sont envoyés sur le canal Q simultanément. Les voies du DAC doivent donc être pilotées avec des valeurs permettant de représenter 4 niveaux distincts.  Il vous faut maintenant adapter le programme pour piloter le DAC avec des valeurs autres que 0x000 et 0x3FF. En 16 QAM, les données sont découpées en mots de 4 bits. 2 bits sont envoyés sur le canal I et 2 bits sont envoyés sur le canal Q simultanément. Les voies du DAC doivent donc être pilotées avec des valeurs permettant de représenter 4 niveaux distincts. 
Ligne 578: Ligne 584:
  
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_pic/validation.png}} Une fois les réponses validées, mettre à jour le suivi de version en saisissant dans une console:+{{https://bvdp.inetdoc.net/files/iut/tp_pic/validation.png}} Une fois les réponses validées, mettre à jour le suivi de version en saisissant dans une console:
   echo commence   echo commence
   cd ~/Arduino/telecom_num_a_trou_2   cd ~/Arduino/telecom_num_a_trou_2
Ligne 589: Ligne 595:
 =====Exercice 8:Envoi d'un message ===== =====Exercice 8:Envoi d'un message =====
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_gps/TODO.jpg}} +{{https://bvdp.inetdoc.net/files/iut/tp_gps/TODO.jpg}} 
  
 Ajoutez à votre code la déclaration du message suivant. Ajoutez à votre code la déclaration du message suivant.
Ligne 611: Ligne 617:
      
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_pic/validation.png}} Une fois les réponses validées, mettre à jour le suivi de version en saisissant dans une console:+{{https://bvdp.inetdoc.net/files/iut/tp_pic/validation.png}} Une fois les réponses validées, mettre à jour le suivi de version en saisissant dans une console:
   echo commence   echo commence
   cd ~/Arduino/telecom_num_a_trou_2   cd ~/Arduino/telecom_num_a_trou_2
Ligne 635: Ligne 641:
  
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_telecomnum/TPCOMAOP-3parties.png}}+{{https://bvdp.inetdoc.net/files/iut/tp_telecomnum/TPCOMAOP-3parties.png}}
  
  
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_telecomnum/TPCOMAOP-voieQ.png}}+{{https://bvdp.inetdoc.net/files/iut/tp_telecomnum/TPCOMAOP-voieQ.png}}
  
 Schéma simplifié: Schéma simplifié:
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_telecomnum/schemasimple.png}}+{{https://bvdp.inetdoc.net/files/iut/tp_telecomnum/schemasimple.png}}
  
  
 Schéma complet: Schéma complet:
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_telecomnum/schema.png}}+{{https://bvdp.inetdoc.net/files/iut/tp_telecomnum/schema.png}}
  
  
-fichiers eagle: http://homepages.laas.fr/bvandepo/files/iut/tp_telecomnum/aop-2-compact-V3-4bits2-7-serigraphie.sch  et  http://homepages.laas.fr/bvandepo/files/iut/tp_telecomnum/aop-2-compact-V3-4bits2-7-serigraphie.brd+fichiers eagle: https://bvdp.inetdoc.net/files/iut/tp_telecomnum/aop-2-compact-V3-4bits2-7-serigraphie.sch  et  https://bvdp.inetdoc.net/files/iut/tp_telecomnum/aop-2-compact-V3-4bits2-7-serigraphie.brd
  
  
tptelecomnum.1553521020.txt.gz · Dernière modification: 2019/03/25 14:37 de bvandepo