Conception et élaboration de l’interface matérielle

Considérations générales autour des cartes SD et MMC 

Historique

Les SD sont des cartes mémoires amovibles de type FLASH NAND qui ont vu le jour durant l’année 2000, grâce à l’alliance entre San Disk, Matsushita Electronics (Panasonic) et Toshiba. Elle a hérité de beaucoup des caractéristiques des MMC qui, eux, furent inventées trois ans plus tôt par Siemens et San Disk. Elles étaient à priori destinées, tout comme les MMC, au stockage des fichiers dans les appareils photo numériques et aussi aux consoles de jeux de septième génération. Ces cartesconstituent des extensions de mémoire (on en voit sur les téléphones portables, lecteurs MP4,…). Car non seulement elles sont de petites tailles mais aussi économiques en énergie 2,7V3.6V et 100mA max. Elles ont été conçues pour être compatibles avec les cartes MMC et leurs dimensions sont les mêmes sauf en épaisseur : 32 x 24 x 2,1 mm 3 contre 32x24x1,4 mm 3 pour les MMC.

Structure générale et fonctionnement

Les PICs 16F87X sont des microcontrôleurs 8bit, c’est-à-dire qu’ils ne savent compter que jusqu’à  =25510 et que 250+8 = 2+ carry positionné à 1 (car 256=0, 257=1, etc.…). Ce nombre de « 8bit » qualifie leur UAL [unité arithmétique et logique]
Notre 16F877 possède 8192 emplacements pour les mots programmes ou 8 kilomots de mémoire programme. Ce mémoire programme est de typeFLASH c’est-à-dire qu’on peut la réécrire plusieurs fois.

Les PICs possèdent 

-un compteur programme ou PC, ici, de 13bit, qui n’est pas accessible directement par l’utilisateur, il contient l’instruction suivante à exécuter.
-un compteur de pile, on est limité à huit niveaux d’imbrication dans les appels de sous programme
-un seul accumulateurW,
-des registres
Les PICs ont une structure HARVARD ce qui veut direque le bus de données est séparé du bus de programme.

La programmation logicielle 

Les PICs du type 16F sont de type RISC ou Reduced Instruction Set Computer c’est-à-dire à jeu d’instructions réduit. Ces instructions sont détaillées en assembleur dans leurs datasheets.
Toute opération faisable par le PIC est par conséquent une composition de ces instructions simples.
La tâche du programmeur est de décomposer en tâches simples toutes les opérations qu’il veut effectuer. Pour pouvoir programmer efficacement un PIC il faut penser au fonctionnement du PIC ou l’emploi de ses registres,
Ces registres sont visibles en code assembleur et le programmeur habitué en assembleur peut interpréter le listing assembleur visible en mode débogage.
Les codes assembleurs sont optimisés car faits directement à partir des instructions élémentaires du processeur.Nous avons donc choisi l’assembleur pour langage de programmation. Dans la suite logicielleMPLAB, c’est MPASMWIN.EXE qui s’occupe de l’assemblage en question.

La programmation électronique 

Il s’agit d’utiliser un circuit qui permet d’écrire dans la zone mémoire du PIC, qui peut être de type FLASH, EPROM, UVPROM,… Ce circuit doit respecter les recommandations du constructeur concernant les tensions (niveaux) à appliquer sur les pins et la vitesse de transfert. On utilise les deux pins RB7 et RB6 (cf. brochage figure 11 en page18) qui pour cela : la RB7 pour les données et RB6 pour le signal d’horloge.
Un programmateur électronique (cf. Annexe 2) est connecté à un port du PC : parallèle, série,
USB, sur lequel se trouve le programme .HEX. Il estpiloté par un logiciel qui permet d’accéder au port matériel du PC. Les données sont cadencées parbattements d’horloge, donc une communication série. Durant ce mode de fonctionnement, le PIC n’utilise pas son oscillateur.
On peut écrire, lire, effacer la zone mémoire du PIC s’il est de type F ou plusieurs fois programmable. C’est grâce à cette propriété d’être reprogrammable que des essais matériels ontaboutis aux résultats voulus.

Le mode SPI pour les cartes SD/MMC

Les mode de pilotage d’une carte SD

Les cartes SD ont été fabriquées de façon à être compatibles aux cartes MMC. Les cartes SD possèdent donc deux modes de fonctionnement : leur mode natif et le mode SPI.
Le mode SPI est un mode secondaire utilisé par des microcontrôleurs dont l’UAL n’est pas aussi puissante pour calculer un CRC 16bit, entre autres. Car le CRC est par défaut ignoré dans ce mode [11]. Étant un mode secondaire, il faut une procédure particulière pour faire basculer la carte vers, la carte démarrant par défaut dans le mode SDnatif. Toutefois, que ce soit en mode SD ou en mode SPI, on procède toujours par commande/réponse.Les commandes sont les mêmes mais il y a des commandes non disponibles en mode SPI.
Les différences majeures entre les deux modes sont résumées dans la liste ci dessous. :
**En mode SD, une ligne spéciale est faite pour transmettre les commandes : CMD tandis qu’en SPI, les commandes sont envoyées via la même ligne que les données (cf. connectique figure5).
**Seules quelques commandes sont gérées en mode SPIet par défaut,
**Le CRC est ignoré.
**L’unité du transfert est le bit pour le mode SD tandis que c’est l’octet pour le SPI.

Initialisation de la carte dans le mode SPI

Comme indiquées par les datasheets des constructeurs [18], il faut réaliser les opérations suivantes pour basculer la carte vers le mode SPI :
Lancer 80 tops d’horloge en maintenant CS à l’état HAUT pour éliminer la synchronisation, ici, la fréquence d’horloge est limitée à 400kHz,
Envoyer CMD0 (GO_IDLE_STATE) tout en sélectionnant la carte : CS=0
Attente de la réponse jusqu’à obtenir une réponse égale à 0x01
Envoi successif de la commande CMD1 jusqu’à ce que la réponse soit 0x00
Seul un reset tension peut faire sortir une carte de ce mode secondaire, c’est-à-dire que si on veut basculer en mode SD natif, il faut redémarrer en coupant l’alimentation RESET TENSION.

Le mode SPI pour le PIC

Le module SPI est un mode de fonctionnement du Master Synchronous Serial Port ou MSSP des 16F87X [13]. Le MSSP peut fonctionner soit en mode SPI soit en mode I.
Dans les deux cas, les pins utilisées sont les mêmes RC3, RC4, RC5 et ainsi que registres de configuration [13], à savoir SSPSTAT, SSPCON, SSPBUF. Leurs valeurs vont paramétrer les périphériques du PIC. Le mode SPI utilise 4fils : la ligne d’horloge SCK,la ligne de donnée entrant SDI, de données sortant SDO et la ligne de sélection de l’esclave SS -slave select-, qui est actif à l’état bas. La masse (0V) étant commune pour les deux circuits en communication.

Les autres modules du PIC mis en jeu dans la carte d’acquisition 

Le convertisseur 

Le CAN joue un rôle primordial car il s’intercale entre le capteur qui délivre une tension analogique et notre périphérique de stockage. Il est donc très important de savoir l’exploiter. Il y a deux avantages à utiliser ce CAN intégré par rapport à un convertisseur externe. Un gain de temps et une réduction du coût [moins de circuits sur le montage donc simplification des tâches]. Mais l’inconvénient c’est que les contraintes augmententcar les CAN purs sont plus généralement souples.
A titre d’exemple, il faut respecter la plage de tension Vref+ et Vref– qui sont liées à la tension d’alimentation du PIC.
Il ne faut pas aussi oublier l’existence CAN purs très performants, à résolution aussi élevée que 24bits et à communication rapide en SPI ou I C voire parallèle.
Les paragraphes suivants montrent les conditions àrespecter pour bien utiliser du CAN intégré.

Fonctionnement du CAN du PIC 

C’est un CAN à approximations successivesde 10bits (1024 valeurs possibles). Huit pins du PIC (dénommées ANX cf. brochage en figure11) peuvent se comporter en tant qu’entrées analogiques mais le PIC ne possède qu’un seul convertisseur. Onparle de canaux analogiques.

L’USART ou Universal Synchronous/AsynchronousReceiver Transmitter

La communication asynchrone est utilisée pour deux raisons majeures :
>> Pour le débogage du programme : il est plus facile et c’était faisable lors des essais de renvoyer chaque octet R1 réponse de la carte vers l’ordinateur. Cela nous évite une centaine de lignes qui vont tester chaque bit positionné (chaque bit à 1 représente une erreur) >> Pour la lecture des données stockées dans la carte. Comme il n’y a pas de gestion de système de fichiers c’est-à-dire que les données stockées ne seront pas vues par l’explorateur WINDOWS en tant que fichier1, fichier2, (et date de modification, tailles,…) etc. une partie du programme dans le PIC vont permettre de lire le format brut dans la carte. On peut ainsi comparer les données lues par le PIC avec les données issues de la deuxième méthode de lecture (lecteur de carte cf. partie III).
L’USART est donc utilisé pour faire passer les données vers un ordinateur via le PORT SERIE.
La tâche du PIC résume ainsi par :
L’envoi la commande de lecture de secteur(s) CMD17 ou CMD18 suivi de l’adresse du secteur à lire, si la carte est prête, elle répond par l’octet B’00000000’
Le bouclage pour 512 octets
• Lire l’octet
• Envoyer immédiatement cet octet via le port série d’un ordinateur
Recommencer en incrémentant l’adresse du secteur
Expliquons ce mode de transfert et son manœuvre avec le 16F877.

Universal Asynchronous/Synchronous Receiver Transmitter

Comme indiqué dans le nom, ce protocole peut être synchrone ou asynchrone c’est-à-dire avec ou sans une ligne de synchronisation. Et notre PIC peut donc travailler [13]:
– en mode synchrone half duplex : une ligne bidirectionnelle véhiculant les données et une ligne d’horloge
– ou bien en mode asynchrone full duplex : deux lignes de données à sens unique (recevoir et émettre en même temps est possible)
C’est ce dernier mode qui nous intéresse car le port série des PC fonctionne de la même manière.
Des données d’une longueur de 7 ou 8bits sont acceptées et cette longueur est fixée d’avance. On n’utilise que deux lignes : l’un pour émettre RC6/TX, l’autre pour recevoir RC7/RX. Comme il s’agit d’une liaison série, les bits sont transmis les unsà la suite autres et ici, le LSB en premier.
Cela aussi implique un registre de sérialisation (on parle aussi de registre à décalage)/désserialisation qui nomme TSR pour l’émission, RSR pour la réception. Ces registres sont inaccessibles à la programmation et transparents pour le programmeur [11].
Pour que la transmission soit valable, il faut que la vitesse (taux de transfert) soit admise par les deux circuits et il faut également pour le récepteur un moyen de connaître où commencent les bits de données valides.
Ci contre, les chronogrammes des signaux.

Le programme dans le PIC

Ayant vu la mise en oeuvre de tous les périphériques nécessaires, nous donnons ici les organigrammes des tâches qu’effectuent le PIC.
Nous les avons divisés plusieurs pages pour plus de clarté. Le premier organigramme récapitule le programme général dans le PIC et dans les pages suivantes, nous verrons les divisions selon les tâches. Rappelons que comme tout processeur, le PIC ne peut exécuter qu’une instruction à la fois. Toutefois, il lui est possible de sortir du programme synchrone c’est-à-dire la succession lignepar ligne dans le fichier .ASM pour traiter un sous programme déclenché par un événement spontané (comme la fin d’un delai par timer, le changement d’un niveau nécessitant l’intervention extérieur sur un clavier,..). On parle de programme asynchrone. Dans ce cas, le PIC laisse le programme synchrone pour traiter l’interruption et y revenir juste au point où il l’a laissé.
On a alors choisi de lancer les acquisitions (numérisations) régulièrement de façon à garder une fréquence d’échantillonnage en utilisant le mécanisme d’interruption. Ainsi, on se sert de l’’interruption au débordement d’un TIMER, le TIMER1 qui travaille donc en arrière plan. On a choisi comme valeur maximale de cette fréquence 200Hz, ce qui nous permet d’exécuter plusieurs instructions simples entre deux prises et par conséquent, la carte aura largement le temps d’assimiler les données. Si la valeur précédente n’a pas été enregistrée ou erronée, il n’y a pas de moyen de la détecter ou de la remplacer. C’est en fin de trame,512 ème valeur, qu’il y a vérification par la carte.
Cette valeur est largement supérieure à la fréquence normale de travail des géophones (voisines de 10Hz).

APPLICATIONS de l’INTERFACE dans la LECTURE et ECRITURE de la CARTE. PERSPECTIVES d’AMELIORATION

Dans cette partie, nous détaillons la lecture des données de la carte vers le PC et les traitements à faire pour revenir à la forme initiale des données.

L’envoi des données vers le PC

Il y a deux méthodes toutes deux satisfaisantes pour lire les secteurs de la carte.
La première consiste à utiliser la connexion par le port série comme moyen matériel et un terminal comme logiciel, la deuxième, à utiliser un lecteur de carte comme matériel et un éditeur de disque comme logiciel.
C’est pourquoi le programme dans le PIC peut être divisé en deux tâches bien distinctes : la première servant bien sûr, au stockage et la seconde à l’extraction ou encore la lecture successive des secteurs écrits.

Lecture par le PIC

Le PIC peut lire les secteurs de la carte en utilisant le même adressage des secteurs que comme durant les écritures. Il suffit alors de renvoyer vers le PC les octets reçues en utilisant le port série et un logiciel type terminal. Pour notre cas, nous avons utilisé le logiciel MTTTY.EXE (MultiThread Terminal TY cf. figure 36) fourni avec les exemples du MSDN avec son code C. Non seulement, il est didactique muni de son code source et des explications mais en plus, il propose des fonctionnalités bien meilleures donc plus pratique, par rapport au logiciel par défaut de Windows (le HyperTerminal), comme par exemple le paramétrage très faciles de la connexion (vitesse, parité,…).
Les avantages de cette première méthode sont :
– L’adressage (le calcul d’adresse des secteurs) n’est plus à faire
– Le PIC peut lire dans n’importe quelle carte même si son secteur de boot (MBR) est détruit (pas de système de fichiers)
Avec le logiciel, il suffit alors de recevoir les données en lançant le menu RECEIVE FILE dans TRANSFERT avec le logiciel MTTTY.

Lecture via un lecteur de carte 

Il suffit d’insérer la carte dans le lecteur et de brancher le lecteur sur le port USB. Toutefois, il faut faire des calculs d’adresse. Et en plus, les éditeurs utilisent parfois les coordonnées cylindriquesCHS (cylindre – tête – secteur) pour les supports ce qui accroît les calculs. Il peut arriver des casoù ils faussent les calculs dans le cas où ils affectent des faux nombre de cylindres ou de têtes (ex :1023,255,63 quelle que soit la taille du disque). Exemplede calcul d’adresse : le secteur 64 aura pour adresse : 64 vaut 0x40 en hexa, 40*200= 8000 ce qui donne comme adresse : 0x00 0x00 0x80 0x00 en complétant à quatre octets. (32bits).
Le 0x200 représente 512 en décimale, taille d’un secteur.
Il faut noter aussi que Windows ne peut pas formater les cartes en FAT12 alors que ce formatage existe et est utilisé par les appareils photos pour communiquer avec les cartes 16MB ou 32MB.

Un lecteur de carte

Visualisation et extraction des données avec un éditeur de disque

Les éditeurs hexadécimaux sont des logiciels pour visualiser les données binaires comme le cas échéant. En effet, ils permettent de voir les octets d’un fichier ainsi que leurs adresses (Offset).
En période de tests et des essais en labo, on ne pouvait pas se passer des éditeurs de disque. Ce sont des éditeurs hexadécimaux excellents car ils peuvent ouvrir un disque dur entier octet par octet et ouvrir et traiter par exemple un fichier de 1giga octet sans la moindre peine.
Les plus puissants ne sont en marche que par l’intermédiaire d’un boot particulier (redémarrage en mode MSDOS sous WINDOWS 98 – boot MSDOS par disquette – boot spéciale par CD ou clé bootable) tout cela pour éviter l’empêchement par WINDOWS XP qui se manifeste par un message du genre.

Table des matières

REMERCIEMENTS
Liste des figures
Liste des tableaux
Liste des acronymes
INTRODUCTION
Partie I : LES ROLES DE L’INTERFACE D’ACQUISITION
1) Acquisition de données sismiques
2) Le cahier des charges
3) Les raisons du choix de la carte SD/MMC et du PIC de Microchip
4) Considérations générales autour des cartes SD etMMC
5) Le système existant : le DAQ LINK
6) Généralités sur l’interface SPI : Serial Peripheral Interface
Partie II : CONCEPTION ET ELABORATION DE L’INTERFACE MATERIELLE
1) Le schéma synoptique de l’interface
2) Adaptation du signal analogique
3) Considérations techniques autour des PICs 16F87X
4) Le mode SPI pour les cartes SD/MMC
5) Le mode SPI pour le PIC
6) Les autres modules du PIC mis en jeu dans la carte d’acquisition
7) Le programme dans le PIC
8) Schémas du circuit
9) Estimation du coût de la réalisation
Partie III : APPLICATIONS de l’INTERFACE dans la LECTURE et ECRITURE de la CARTE PERSPECTIVES d’AMELIORATION
1) L’envoi des données vers le PC
2) Visualisation et extraction des données avec un éditeur de disque
3) Remise en forme du signal et prise en compte du temps
CONCLUSION
ANNEXES
REFERENCES BIBLIOGRAPHIQUES ET PAGESWEB
RESUME

projet fin d'etude

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *