BE 2019-2020 : Différence entre versions

De Wiki de bureau d'études PeiP
(Réalisations des binômes)
(Réalisations des binômes)
Ligne 187 : Ligne 187 :
 
|  
 
|  
 
| [[Binome2019-11|Binôme 11 2019/2020]]
 
| [[Binome2019-11|Binôme 11 2019/2020]]
|-
 
| Binôme 12
 
| Prénom Nom & Prénom Nom
 
|
 
| [[Binome2019-12|Binôme 12 2019/2020]]
 
 
|-
 
|-
 
|}
 
|}

Version du 27 janvier 2020 à 10:14

Présentation du bureau d'étude

Nous vous proposons de découvrir ce qu'est réellement cet objet devenu banal appelé clé USB (Universal Serial Bus).

Firefly-serenity-usb-flash-drive.jpg

Le bureau d'étude consiste à construire de A à Z une clé USB :

  • en créant un circuit électronique ou PCB (Printed Circuit Board) à l’aide d’un logiciel ;
  • en soudant des composants électroniques (micro-contrôleur, mémoire FLASH, ...) ;
  • en programmant le micro-contrôleur pour gérer la communication USB en utilisant la bibliothèque LUFA (Lightweight USB Framework for AVRs) ;
  • en programmant le micro-contrôleur pour accéder à la mémoire ;
  • en fabriquant un beau boitier pour votre clef.

Pour personnaliser votre clé n'hésitez pas à ajouter des fonctionnalités :

  • LED qui clignotent lors des accès en lecture ou écriture ;
  • vumètre qui indique le remplissage de la clé ;
  • micro-interrupteurs pour verrouiller la clé ;
  • vibreur parce que c'est possible, vous trouverez bien une justification ;
  • microphone permettant d’espionner les conversations ;
  • toute autre fonction plus ou moins utile mais qui vous inspire ...

Les supports de la présentation de ce bureau d'études : Media:BE_clef_USB.pdf.

Survol d'USB

Evolution des connexions USB

L'acronyme USB signifie "Universal Serial Bus" et effectivement l'USB peut être défini comme un bus USB très verbeux. L'USB est géré par un consortium autonome "USB Implementers Forum".

USB-2.png
Jusqu'à la version 2, l'acronyme est fidèle à la réalité. Pour ces périphériques, 3 vitesses de transfert sont possibles sur la paire différentielle :
  • basse vitesse : 1,5 Mb/s ;
  • pleine vitesse : 12 Mb/s ;
  • haute vitesse : 480 Mb/s.


USB-3.jpg
A partir de l'USB 3.0, la notion de bus série est un peu oubliée. La vitesse augmente en utilisant les deux nouvelles paires blindées : 5Gb/s (super vitesse).


USB-4.png
Et maintenant USB (USB 3.1, USB 3.2, USB 4) se prend pour de l'Ethernet. En effet, le connecteur USB-C ajoute, à la paire historique, quatre paires blindées. USB 3.2 promet des vitesses jusqu'à 20G/s.


Un protocole verbeux

USB-communication.gif

L'initialisation d'un périphérique USB se fait comme suit :

  • détection électrique de la connexion du périphérique ;
  • alimentation électrique du périphérique ;
  • utilisation de l'adresse temporaire 0 sur le bus ;
  • récupération de la taille des messages pour le point d'accès 0 ;
  • envoi de l'adresse au périphérique sur le point d'accès 0 ;
  • envoi des descripteurs du périphérique au contrôleur USB via le point d'accès 0.

Pour un périphérique simple :

  • souris : environ 100 octets pour le descripteur de configuration ;
  • clavier : environ 150 octets pour le descripteur de configuration.


USB-descripteurs.gif

Les points d'accès (terminaison sur le schéma) :

  • des identifiants sur 8 bits (numéro sur 4 bits) ;
  • un point d'accès de contrôle de numéro 0 bidirectionnel ;
  • les communications se font de ou vers les points d'accès ;
  • un sens de communication (bit de poid fort) :
    • IN => du périphérique vers le contrôleur ;
    • OUT => du contrôleur vers le périphérique.
  • la direction est IN ou OUT vis à vis de l’hôte.

Plusieurs types de points d'accès :

  • isodromique (isochronous) : débit réservé (e.g. vidéo en temps réel) ;
  • par interruption (interrupt) : latence garantie (e.g. souris) ;
  • de volume (bulk) : débit maximal sans garantie (e.g. clef mémoire).


Les composants électroniques

ATMega16u2

Le coeur de votre clé va être un micro-contrôleur AVR plus exactement l'ATMega16u2. Ce micro-contrôleur possède l'électronique nécessaire pour la gestion d'un bus USB 2.0.

AT45DB641E-SHN2B-T
MT29F128G8

Sans mémoire une clé n'est pas une clé. Vous utiliserez des mémoires faciles à gérer avec un ATMega16u2. Ces mémoires sont accessibles par un bus série SPI et facile à souder. Par contre elles sont de faible capacité (64Mb). Si vous êtes téméraire, vous pouvez utiliser une mémoire accessible par un bus de 8 bits, plus difficile à souder, plus difficile à programmer mais d'une capacité intéressante (128Gb).

Il vous faudra aussi quelques autres composants comme un quartz, des résistances, des condensateurs, des diodes, des régulateurs de tension et bien sur des LED pour ajouter un peu de lumière. La carte de base peut être décrite comme suit.

  • Le micro-contrôleur peut être accompagné d'un quartz à 8Mhz et de ses condensateurs et résistance.
  • Le micro-contrôleur peut être alimenté par le connecteur USB en 5v (broche UVCC) mais avec ses lignes VCC et AVCC bouclées sur la sortie UCAP du régulateur 3.3v interne.
  • Un convertisseur 5v vers 3.3v est nécessaire pour l'alimentation des mémoires.
  • Le micro-contrôleur dialogue avec les mémoires par le bus SPI, une ligne de sélection est nécessaire par mémoire.

Pour la conception de votre clé vous pouvez vous appuyer sur un prototype de clef réalisé pour ce bureau d'études.

Schéma électronique
Carte électronique


Le schéma décrit le circuit électronique partie par partie. A partir du circuit, il faut créer une carte sans croisement de pistes pour éviter les court-circuits. Le fichier source Fritzing est disponible : Media:cle_usb.zip (renommer en .fzz).

Une autre carte est disponible pour une mémoire parallèle de plus grande capacité. Attention cette carte n'a pas été testée.

Schéma électronique
Carte électronique


Le fichier source Fritzing est disponible : Media:cle_usb_bis.zip (renommer en .fzz).

Logiciels

Pour la conception de circuits imprimés nous vous recommandons le logiciel fritzing.

Pour la découpe laser de nombreux utilisateurs utilisent inkscape.

Pour la conception 3D vous pouvez tenter freeCAD. Une solution en ligne existe : onshape.

Pour la programmation du micro-contrôleur vous utiliserez le compilateur C avr-gcc et le logiciel de téléversement dfu-programmer.

Bibliothèque LUFA

Pour la gestion du bus USB par le micro-contrôleur nous allons nous appuyer au maximum sur la bibliothèque USB LUFA. Cette bibliothèque permet d'exploiter plus facilement les aspects USB des micro-contrôleurs AVR comme l'ATMega16u2.

Vous pouvez télécharger la dernière version de la bibliothèque [1]. Il est ensuite conseillé d'effectuer quelques manipulations pour pouvoir développer dans de bonnes conditions.

  • Créez un répertoire PolytechLille au même niveau que les répertoires Demos et Projects.
  • Dans ce répertoire copiez la démonstration de périphérique USB bas niveau MassStorage. Au niveau du makefile indiquez atmega16u2 comme micro-contrôleur, UNO comme platine et restez à 8Mhz.
  • Il faut ensuite modifier la configuration de la mémoire et les fonctions d'accès à cette mémoire dans le sous-répertoire Lib du répertoire PolytechLille/MassStorage.

Pour téléverser votre programme sur l’ATMega16u2, le paquetage Debian dfu-programmer est nécessaire. Installez-le au besoin. La procédure à suivre pour charger votre programme sur l’ATMega16u2 est la suivante :

  • court-circuitez momentanément les lignes reset et masse de l’ATMega16u2, l'utilitaire lsusb doit lister la carte comme étant en mode DFU, vous pouvez alors exécuter les commandes suivantes :
    • dfu-programmer atmega16u2 erase
    • dfu-programmer atmega16u2 flash MassStorage.hex
    • dfu-programmer atmega16u2 reset
  • débranchez et rebranchez votre carte, votre programme doit être actif sur le micro-contrôleur.

Réalisations des binômes

Numéro Elèves Fonctionnalité supplémentaire Page
Binôme 1 Nicolas DEBAISIEUX & Maxence FLAMENT Signal sonore Perte Binôme 1 2019/2020
Binôme 2 Eve POITEVIN & Alix DUFOUR Synthèse vocale Binôme 2 2019/2020
Binôme 3 Corentin GIELIN & Julien DUMON Binôme 3 2019/2020
Binôme 4 Clément DELECOURT & Thomas MOSTOWFI Signal mauvaise orientation Binôme 4 2019/2020
Binôme 5 Gaëtan DELPLANQUE & Tristan PAYEN Verrouillage code Binôme 5 2019/2020
Binôme 6 Louise MAES & Léo POUMAER Prise téléphone & musique attente Binôme 6 2019/2020
Binôme 7 Martin SERGEANT & Quirin DECAUDIN Binôme 7 2019/2020
Binôme 8 Mateo POURRIER & Martin PLAUD Binôme 8 2019/2020
Binôme 9 Baptiste BLACK & Alexandre ROUSSEL Haut-parleur Binôme 9 2019/2020
Binôme 10 Theo DELAUNOIS & Antoine MALENGE Binôme 10 2019/2020
Binôme 11 Florian DERLIQUE & Ahimen BENDIF Binôme 11 2019/2020