Vous êtes sur la page 1sur 61

cole Normale Suprieure de lEnseignement Technique (ENSET) Rabat

MMOIRE DE FIN DTUDES

Prsent par :

BOUCHBOURA Loubna DAHAN Fatima-Ezzahra


Encadr par :

Mr Elhachem ELYOUSSFI
5 7

Ddicace : A nos chres familles Avec toute tendresse, amour et Affectueuse reconnaissance. A tous ceux qui nous sont chers

5 7

Remerciement :
Au terme de ce travail, nous tenons tout dabord exprimer nos vifs remerciements Monsieur A.ELGHARAD, Directeur de lENSETRabat, notre coordinatrice Mme M.ZAZI et lensemble du corps professoral et administratif pour leurs efforts considrables et leur contribution la formation des techniciens spcialis. Nous exprimons notre gratitude notre encadrant Mr H.ELYOUSSFI Professeur lcole Normale Suprieure de lenseignement technique pour son suivi et son soutien tout au long de ce projet.

5 7

Nous tenons remercier galement les membres du jury davoir bien voulu juger notre travail.

Et enfin, nous exprimons notre profonde gratitude toutes les personnes qui nous ont aides surmonter toutes les difficults rencontres le long de ce projet.

Cahier de charge.5 Introduction gnral..6 Partie 1 : Objectif et contexte du projet I. Analyse fonctionnelle....7 1-Objectif...7 2-Identification du besoin...7 3-Les situations de vie et le milieu extrieurs.....8 4-Mthode FAST.9 Partie 2 : Le port srie USB I. Gnralit sur USB....12 1-Origine USB12 2-Avantage de lUSB.12 3-Vitesse de transfert...13 4-Le cable USB14 5-Bootloader16

5 7

II.

Bus USB..16 1- Dfinition..16 2- Topologie du Bus USB..17 3- Protocole de communication USB.....18 4- Type de paquet USB..19 5- Alimentation USB..24

III. IV.

Diffrents types de transfert25 Lnumration..26 1- Dfinition de lnumration....26 2- Principe de fonctionnement...26

V.

Les descripteurs..27 1-dfinition...27

VI. VII.

Canaux de communication (PIPES).27 Exemple de programme communication (PIC- USB).28

Partie3 : Etude du programmateur PIC 18F2550 I. Pic programmateur 18F2550 (microcontrleur USB)..31 1- Brochage du pic 18F2550....32 2- Schma de pic 18F2550 avec USB33 3- Architecture interne du pic 18F2550..34 II. Programmation des mmoires ..................................................35 1- EEPROM36 2- EPROM 38 III. Etude de schma du programmateur .47 1- Organigramme de fonctionnement47 2- Schma synoptique 49

5 7

3- Schma du programmateur sous ISIS50 4- Analyse de schma 52 Conclusion54 Webrgaghie...55

Cahier de charge
Titre du projet : Etude dun programmateur Pic USB Etapes :
Analyse fonctionnelle du systme Etude du port srie USB Etablir lorganigramme de notre objectif Etablir schma synoptique du fonctionnement 5 7

Etude du programmateur PIC 18F2550

Introduction Gnrale

Le dveloppement des applications base des microcontrleurs PIC est devenu de plus en plus courant, ceci est d plusieurs causes : beaucoup de ressources internes (priphriques intgrs), mmoires embarques de plus en plus grande, vitesse de calcul accrue En effet, un microcontrleur est un composant parfaitement adapt des applications embarques, il permet, en le programmant, deffectuer et de contrler une tche tout en comparant son tat des conditions prfixes par lutilisateur. Lutilisation des microcontrleurs fait appel tout dabord leur programmation. Il existe plusieurs mthodes de programmation selon le langage utilis, par exemple en assembleur on peut crire un programme o on va tirer le maximum des performances du

5 7

microcontrleur mais ce programme ncessite beaucoup de travail et surtout beaucoup de temps. Heureusement, avec la monte en puissance des microcontrleurs, on voit apparaitre des compilateurs en langage C qui permettent de gagner un temps considrable pour le dveloppement des programmes.

Partie 1 : Objectif et contexte du projet I-Analyse fonctionnelle du systme :


1)-Objectif :
Lanalyse fonctionnelle pour but dexprimer le besoin en termes de services attendus. Pour ce faire elle cherche sassurer du besoin et identifier les fonctions que doit remplir le produit pour le satisfaire.

2)-Identification du besoin :
Un besoin est un sentiment de manque et dinsatisfaction, pour mieux le cerner on utilise loutil de la bte corne. Cet outil permet de rpondre aux trois questions suivantes : A qui rend-il service ? Sur quoi agit-il ? Dans quel but ? 5 7

A qui rend-il service ? Utilisateur

Sur quoi agit-il ?

Les Pics

Programmat eur de pic USB


Dans quel But ?

Programmer les diffrentes familles de pic A travers lUSB

3)-Les situations de vie et le milieu extrieur :


Une fois le besoin est identifi, il ne sagit pas de chercher immdiatement des solutions, il sagit par contre de dfinir les fonctions que doit remplir le produit futur par la dtermination des services attendus de lui dans un environnement donn. Les composants de cet environnement sont appels les lments du milieu extrieur et linteraction entre les fonctions est illustre sur un schma appel La pieuvre.

Pics

Port USB

Scurit

Ordinateur

FP1

FC1 FC2

Alimentat ion

FP2 Utilisateur

Programma teur de pic USB


FC FP3 Programme FC5 Environnement

FC3

Esthtiqu e

5 7
Tmoins

FP : Fonction principale FC : Fonction contrainte FP1 : permet dacqurir le programme daprs lordinateur travers le port USB. FP2 : permet lutilisateur de choisir le support de pic utilis. FP3 : permet lutilisateur de slectionner le programme excuter. FC1 : Respecter la scurit de la carte de programmation. FC2 : assurer lalimentation lectrique de la carte. FC3 : Etre esthtique. FC4 : indiquer ltat de programmateur. FC5 : Respecter et se corrler avec laspect environnemental

4)-La mthode FAST :


Elle permet de dcomposer les fonctions de service en fonctions techniques. Ces fonctions techniques dbouchent sur des solutions constructives qui se basent sur la dmarche de questionnement Pourquoi et comment?

Tout dplacement vers la droite rpond la question : Comment raliser cette fonction ? Comment est ralise la fonction i ? Par la fonction k. Tout dplacement vers la gauche rpond la question : Pourquoi raliser cette fonction ? Pourquoi est ralise la fonction k ? Parce ce qu'il faut raliser la fonction i.

5 7

Programmer les diffrentes familles des Pics

Alimenter le systme

Externe

Port USB Port USB

Interne

Connecteurs Connecteur s

Tmoins Communiquer avec lutilisateur Tmoins Bip sonnerie

Bip sonnerie Afficheurs

Pics 5 7 Arm arduino Switch Programme

Afficheurs

Grer les informations

Arm arduino

Pics Slectionner le support utilis

Manuel

Switch

Automatique

Programme

II- Objectif
Notre objectif est de faire une tude dun programmateur PIC 18F2550 qui va programmer des autre pics auxiliaires prenant le programme de lordinateur travers un port srie USB selon le schma suivant :

5 7

Figure 1 : schma synoptique du programmateur

Partie 2 : Le Port srie USB


I-Gnralit sur lUSB
1. Origine de lUSB
Tout au dbut, avant la standardisation il y avait des problmes avec la compatibilit de lUSB, car chaque fabricant de carte mre inventait son propre protocole, il ny avait pas encore de norme. Cest pourquoi on tait trs septique sur ce nouveau protocole ses dbuts. La dnomination USB qui est Universal Serial Bus a drive vers le nom Useless Serial Bus. Le bus USB est donc rellement n de lalliance en 1994 de sept partenaires industriels (Compaq, DEC, IBM, Intel, Microsoft, NEC et Northern Telecom). Cest eux qui ont commenc crer la norme USB. Le bus USB a t conu lorigine pour faciliter les transferts de donnes en particulier dfinir une connectique universelle et Plug & Play , utilisable aussi bien pour une souris que pour un modem ou un moniteur. Conu galement pour rpondre au besoin dintgration entre le monde du PC et celui du tlphone et enfin pour rpondre au besoin dextensions multiples en dehors du PC, en effet on peut brancher jusqu' 127 priphriques en thorie, cela change de la liaison srie habituelle.

2. Avantages de lUSB
Les avantages de lUSB sont nombreux : faible cot de l'interface, alimentation possible des dispositifs via le cble, indpendance vis vis des machines htes, Hot Plug & Play (c'est dire branchement et dbranchement sans avoir besoin d'arrter le PC), jusqu' 127

5 7

priphriques possibles, fiabilit et scurit (dtection et correction d'erreurs), plusieurs vitesses possibles et 4 types de transferts.

3. Vitesse de transfert de lUSB


a. Dfinitions des diffrentes vitesses
LUSB supporte 3 vitesses : Low Speed 1.5Mbit/s (USB 1.1) Full Speed 12Mbit/ s (USB 1.1) High Speed 480Mbit/ s (USB 2.0) Tous les PC supportent actuellement deux vitesses de bus, le Full Speed et le Low Speed. La vitesse High Speed a t ajoute avec lapparition de la spcification USB 2.0. Cependant, pour pouvoir utiliser cette vitesse de transfert, il faut tre quip de cartes mres et de contrleurs USB supportant lUSB 2.0.

b. Raison des trois vitesses de lUSB


Le Low Speed t introduit pour deux raisons essentielles, la premire est que les priphriques USB ne sont pas cher, cest dire que tous le monde peut se le permettre. La deuxime raison est pour avoir des souris USB un peu plus pratiques. En effet les cbles USB pour le Low Speed nont pas besoin dtre blinds et, de ce fait, sont trs souples. Le Full Speed a t conu pour remplacer les liaisons sries et parallles. Le High Speed est une vitesse supplmentaire qui a t introduit lors de la mise jour de la norme USB 2.0. Elle permet de mettre en valeur la puissance du bus USB.

c. Domaine dutilisation des diffrentes vitesses


Les applications Low Speed concernent essentiellement des priphriques interactifs (claviers, souris, consoles), mais aussi des afficheurs, des lecteurs (de carte puce) et des applications en automatismes (mesure, capteurs) appeles se dvelopper. En mode Full Speed on va trouver la tlphonie, les modems, les disques, les imprimantes, les fax ainsi que les scanners, certains lecteurs de carte puce et le domaine multimdia (jeux, audio, vido limite).

5 7

d. Choix Low ou Full USB


Pour faire le choix entre la version USB Low Speed et Full Speed, il suffit de placer une rsistance de tirage sur linterface dentre (Fonction ou Hub). Cette rsistance de tirage (PullUp de 1.5Kohm) est place soit sur D- dans le cas du Low Speed ou sur D+ dans le cas du Full Speed.

Figure 2 : Choix Low ou Full USB Rsistance de Pull Up

4. Le cble USB
a. Dfinition du cble USB
Le cblage USB est relativement simple , il a la mme structure quelle que soit la vitesse de transmission. Le cble transporte deux paires de fils :

5 7

La paire de signal destine au transfert de donnes D+ et D- et une seconde paire qui peut tre utilis pour la tl alimentation GND et Vcc. La premire paire est non blinde pour les priphriques lents tels que les claviers, souris fonctionnant 1.5Mbits/s tandis que camras, micro et autres ont recours une paire de fils torsade blinde pour atteindre les 12Mbits/s

b. Composition du cble USB


Chaque connecteur dispose de deux fils dalimentation (5V et GND) et deux fils destins au transfert de donnes (D+ et D-). Une connexion entre deux PC est aussi possible par ladjonction dune interface spciale qui djoue la vigilance du PC matre et transforme le second PC en esclave. En version Low Speed le blindage n'est pas obligatoire (ce qui assure une plus grande souplesse de manipulation en particulier pour une liaison souris).

Figure 3 : Composition dun cble USB

La longueur maximale autorise par la norme est de 3m pour un cble non blind donc gnralement pour un priphrique Low USB ( 1.5Mb/s) et de 5m pour un cble blind dans le cas dun priphrique Full USB (12Mb/s). Le cble USB est compos de deux fiches bien diffrentes : En amont dune fiche appel connecteur USB de type A, branch au host (PC). Lextrmit aval par contre peut se retrouver en deux versions : Connecteur USB du type B et un mini connecteur type B (appel souvent optionnel). Ce dernier est rserv aux dispositifs de trs faible dimension (ou de grande intgration) tels les appareils photo numriques.

Figure 4 : Brochage des connecteurs USB de type A et B

5 7

Et voici laspect des connecteurs en trois dimensions :

Figure 5 : Aspect des connecteurs USB de type A et B

5.Bootloader
Le Bootloader est un programme rsidant dans le PIC en haut de la mmoire. Il permet de mettre jour le programme contenu dans le PIC en crivant directement dans la mmoire sans passer par un programmateur ddi. Le Bootloader est protg contre les critures dans la zone rserve son code. Nous lutiliserons ici avec la liaison USB. Au dmarrage du PIC, celui-ci scrute un bouton sil est enfonc, il passe en mode programmation, sinon il excute le programme. En mode programmation il dialogue avec un programme du PC et efface lancien programme pour mettre le nouveau.

II- Bus USB


1-Dfinition
L'USB (Universal Serial Bus) est comme son nom l'indique, un protocole de communication srie entre entits. Plusieurs versions sont actuellement disponibles. L'intrt principal de ce bus est le fait qu'un grand nombre de priphriques (jusqu' 127) peuvent tre connects simultanment au mme hte, et qu' tout moment, il est possible de les dbrancher et de les rebrancher sans redmarrer l'ordinateur(Host) a veut dire la configuration chaud. Le bus USB est un bus fonctionnant sur la hirarchie, command par un host unique. Le host utilise un protocole Matre/Esclave pour communiquer avec les priphriques USB. Cela signifie que cest le host qui dcide du transfert des donnes et que les diffrents priphriques ne peuvent pas tablir de connexion entre eux tant que le matre na pas donn 5 7

lautorisation. On peut dire que cela peut tre un inconvnient par rapport aux autres protocoles mais il ne faut pas oublier que lUSB a t conu avec des compromis de cot et de performance. Le fait que le bus USB fonctionne avec le protocole Matre/Esclave rsout implicitement ces problmes comme par exemples les problmes de collision ou darbitrage de priphriques.

2. Topologie du Bus USB


La topologie est une topologie toile srie ou encore tiered star qui tolre jusqu' 5 niveaux de concentrateurs. La spcification limite le nombre de priphrique 127. Un dispositif conforme la norme 2.0 peut tre reli un HUB 1.1 mais dans ce cas le trafic sera celui dfini par la norme 1.1. Les divers cas possibles sont prciss sur la figure cidessous. Notons qu' l'initialisation d'un "device" (ou d'une fonction selon la terminologie utilise par le groupement USB) celui-ci reoit une adresse. Les transferts Full Speed dclenchs par le "host" parcourent tous les tronons, mais seule la fonction adresse va videmment rpondre. Ainsi s'il s'agit d'un ordre d'impression il sera reu par tous les priphriques, mais seule l'imprimante le comprendra.

5 7

Figure 6 : Topologie du bus USB

Et voici en image un exemple de branchement avec le topologie toile de lUSB.

Figure 7 : Exemple de branchement respectant la topologie du Bus USB

3. Protocole USB
Le client driver communique les demandes de transfert des applications via des IRP (I/O Packet). Puis, lUSB driver traduit chaque transfert en une suite de transactions. Ensuite lUSB Host Controller driver regroupe les transactions en trames et finalement lUSB Host Controller traduit les transactions en paquets et enchane les trames. Le synoptique ci-dessous traduit de faon image les liens entre les diffrents lments.

5 7

HOST System

USB Device

Application USB Client Drivers Function

USB Driver USB Host Controller driver USB Logical Device

USB Host Controlleur

USB Bus Interface

Flux physique Flux logique

Figure 8 : Protocole USB

4. Type de paquet USB


Contrairement la liaison srie RS232 et des interfaces sries similaires o le format des donnes envoyes n'est pas dfini, lUSB lui est compos de plusieurs couches de protocoles bien dfinis. La plupart des circuits intgrs USB s'occuperont de la couche infrieure, la rendant ainsi presque invisible au regard du concepteur final. Mais il est tout de mme intressant den connatre les grandes lignes. 5 7

LUSB a quatre types diffrents de paquet : Token (En-tte) SOF (Start of frame) Data (Optionnel) Acknowledge (Handshake)

Les paquets jetons indiquent le type de la transaction qui va suivre et a pour but de transporter ladresse USB et le sens du transfert. Les paquets de donnes contiennent les donnes utiles. Les paquets "Handshake" sont utiliss pour valider les donnes ou rapporter les erreurs. Et les paquets dbut de trame (SOF) indiquent le commencement d'une nouvelle trame. Lentit de transfert USB est appele transaction, elle est gnralement constitue de paquets juxtaposs, la transition tant un paquet SOF qui indique le dbut dune autre transaction. On dit alors quun transfert est compose dune succession de transactions Voici ci-dessous le dtail dune transaction :
Transaction

Token Packet Fi

gure 7 :Data Packet Transactio

n USB Ack Packet

SOF

Figure 9 : Transaction USB

Le premier bit transmit est le bit LSB. Les diffrents paquets ont une structure bien dfinie que voici: Paquet

5 7

Synchronisati on

Packet ID

Packet Specific Information

CRC

EOP

8 bits
USB

Figure10 : Structure des paquets

La structure des paquets tant identique il faut prciser que le format est diffrent selon la nature du paquet. Voici ci-dessous les diffrents formats de paquet. Les trames ont une dure de 1ms, elles sont marqus par le Token SOF (Start of Frame). Avec le systme dencapsulation. L'USB a quatre types diffrents de paquet. Les paquets jetons indiquent le type de la transaction qui va suivre, les paquets de donnes contiennent la charge utile, les paquets poigne de main sont utiliss pour valider les donnes ou rapporter les erreurs et les paquets dbut de trame (SOF) indiquent le commencement d'une nouvelle trame.

a. Les paquets jetons :


Il y a trois sortes de paquets Jetons :

In -informe l'appareil USB que l'hte veut lire des informations ; Out - : informe l'appareil USB que l'hte veut envoyer des informations ; Setup - utilis pour commencer les transferts de commande.

Les paquets jetons doivent se conformer au format suivant :

b. Les paquets de donnes :


Il y a deux sortes de paquets de donnes, chacun tant capable de transmettre plus de 1024 octets de donnes.

Data0 ; Data1.

Le mode haute vitesse dfinit deux autres PID de donnes, DATA2 et MDATA. Les paquets de donnes ont le format suivant :

5 7

c. Les paquets dbut de trame (SOF) :


Le paquet SOF compos d'une trame de 11 bits est envoy par l'hte toutes les 1 ms sur un bus pleine vitesse ou bien toutes les 125 s sur un bus haute vitesse.

e. Explication des diffrents champs des paquets dune trame USB

Sync

Tous les paquets doivent commencer avec un champ Sync. Le champ Sync fait de 8 bits de long pour la basse et pleine vitesse ou 32 bits pour la haute vitesse est utilis pour synchroniser l'horloge du rcepteur avec celle de l'metteur / rcepteur. Les 2 derniers bits indiquent l'endroit ou le champ PID commence.

PID

PID signifie Paquet ID. Ce champ est utilis pour identifier le type de paquet qui est envoy. Le tableau suivant montre les valeurs possibles.

Groupe Token

Valeur PID 0001 1001 0101 1101

Identificateur Paquet OUT Token IN Token SOF Token SETUP Token DATA0 5 7

Data

0011

1011 0111 1111 Handshake 0010 1010 1110 0110


Tableau 11 : Dsignation des PIDs

DATA1 DATA2 MDATA ACK Handshake NAK Handshake STALL Handshake NYET (No response Yet)

Il y a 4 bits pour le PID, toutefois pour s'assurer qu'il a t reu correctement, les 4 bits sont complments et rpts faisant un PID de 8 bits au total. Le format rsultant figure Ci-dessous : PID0 PID1 PID2 PID3 nPid0 nPID1 nPID2 nPID3

Figure 12 : Format rel dun PID

Voici ci-dessous les explications des diffrentes abrviations utilises : SOF = Start Of Frame SETUP = Configuration ACK = ACKnowledge; Validation NAK = No AcKnowledge; Pas de validation STALL = Bloqu PREamble = Synchronisation initiale Split = Partager Ping = S'assure d'une bonne connexion

5 7

ADDR

Le champ adresse dtermine quel appareil le paquet est destin. Sa longueur de 7 bits, lui permet de supporter 127 appareils. L'adresse 0 n'est pas valide, tant qu'un appareil qui n'a pas encore d'adresse attribue, doit rpondre aux paquets envoys ladresse 0.

ENDP

Le champ de terminaison est compos de 4 bits, autorisant 16 terminaisons possibles. Les appareils Low Speed, toutefois peuvent seulement avoir 2 terminaisons additionnelles au dessus du canal de communication par dfaut ( 4 terminaisons maximales)

CRC

Les Contrles Redondance Cyclique sont excuts sur les donnes l'intrieur du paquet de charge utile. Tous les paquets jetons ont un CRC de 5 bits tandis que les paquets de donnes ont un CRC de 16 bits.

EOP

Fin de Paquet. Signal par une sortie unique zro (SE0) pendant une dure approximative de 2 bits suivie par un " J " d'une dure de 1 bit.

5-Alimentation USB
a. Alimentation de priphrique USB Pour simplifier lexplication de lalimentation des priphriques USB, la norme a prvu deux niveaux dalimentations, le premier niveau consomme une unit dnergie, lautre consomme cinq units. Une unit vaut 100mA. Cest dire quil existe des composants qui consomment 100mA et dautres 500mA. Gnralement les composants Low USB consomment une unit dnergie et les composants High USB consomment jusqu' cinq units.

5 7

Par dfaut tous les composants consomment une unit et cest par soft quon lui demande de consommer plus si lapplication le ncessite, dans le cas dun composant High USB bien sur. Toutes ces informations sont contenues dans les descripteurs, le composant ne pourra jamais consommer plus que ce qui est prescrit dans son descripteur.

On peut donc en dduire de cela quun priphrique High power doit possder un dispositif dalimentation squentiel (100mA, puis 500mA). Aucune fonction (Device ou hub) ne peut consommer plus de 100mA sur le bus avant dtre numre. Apres numration un Device peut consommer jusqua 500mA pour un device High power device ou rester 100mA pour un Low Power Device.. LUSB est donc assez flexible et peut supporter plusieurs types dalimentation. Certains composants peuvent tre entirement aliments par le bus USB. (Bus powered). b. Avantage de lalimentation USB Le fait de pouvoir alimenter un priphrique USB avec le mme cble qui transporte les donnes de multiples avantages. Dune part cela vite dj lutilisateur de brancher le priphrique sur une prise de courant extrieure, ceci rend dj le priphrique plus lger et moins encombrant. Dautre part dun point de vue du concepteur, cela rduit le prix de fabrication.

III-Diffrents types de transfert


a-Transfert en mode Contrle
Ce mode de transfert est compatible avec le Low et Full Speed USB. Il est utilis pour les oprations dinitialisations et de configurations. Il est ventuellement utilisable pour les transferts standards. Le mode contrle est aussi utilis pour tenter dobtenir un dbit Low Speed acceptable, ou pour utiliser le driver de classe HID standard.

b- Transfert en mode Interrupt


Ce mode de transfert est galement compatible avec le Low et Full Speed USB. Il est destin des changes limits et priodiques, il garantit la frquence de scrutation ainsi que la reprise sur les erreurs. Il est utilis pour des transferts linitiative du priphrique (asynchrones) et pour des transferts priodiques ou permanents comme les claviers.

5 7

c. Transfert en mode Isochrone


Ce mode de transfert est uniquement compatible avec le Full USB. La bande passante est garantie (dbut, latence), par contre dans ce mode il ny a pas de reprise sur erreur. Il est utilis pour des transferts ncessitant un flux rgulier de donnes comme par exemple les camras ou les tlphones La bande passante rclame et non utilise est perdue.

d. Transfert en mode Bulk


Ce mode de transfert est uniquement compatible avec le Full USB. Ce mode est rserv pour les gros transferts de donnes (ex : imprimantes) Le dbit est variable et dpend de la disponibilit. Ce mode assure la reprise sur les erreurs. Les changes isochrones sont les plus privilgis dans le sens ou le host leur rserve une bande passante garantie. Celui-ci peut refuser laccs au bus un priphrique sil juge que les ressources quil requiert ne sont pas disponibles.

IV- Lnumration
1- Dfinition de lnumration
Le terme numration dsigne un processus USB par lequel le systme identifie et configure le priphrique en lui donnant une adresse unique. Cest une gestion dynamique de la connexion et de la dconnexion des priphriques relis un bus USB.

2- Principe de fonctionnement de lnumration


En effet lors de la connexion (ou dconnexion) il y a une phase de dtection et une phase d'identification effectue par l'hte qu'on appelle numration. Lors de cette phase, le 5 7

priphrique fournit l'hte une suite de descripteurs qui permettent son identification complte. Lors de cette phase dnumration, on assigne une adresse unique (Unique ID) au priphrique, on charge le driver correspondant et on positionne le composant dans la configuration qui lui t donn par les descripteurs. Il nest pas indispensable de connatre parfaitement le processus dnumration et le systme de descripteurs pour pourvoir faire fonctionner un composant USB mais il est bon den connatre les grandes lignes pour pouvoir, au besoin. Lors de l'numration initiale ( la mise sous tension du PC) les HUBs et priphriques sont initialiss de proche en proche.

V- Les descripteurs
1-Dfinition dun descripteur
On peut dfinir les descripteurs comme tant des blocs dinformations pr formats. Tous composants USB doit obligatoirement possder les descripteurs standards. Tous les transferts dinformations durant cette phase dnumration se font suivant le type Control. Il va de soi que tout composant USB doit pouvoir tre capable de supporter ce type de transfert. Nous verrons par la suite que ce nest pas le cas pour tous les autres types de transfert que nous dfinirons.

VI-Canaux de communications (Pipes) :


Tandis que l'appareil envoie et reoit des donnes sur une succession de terminaisons, le logiciel client transfre des donnes travers des canaux de communications. Un canal de communication (Pipe) est une connexion logique entre l'hte et les terminaisons. Les canaux de communications auront aussi un ensemble de paramtres qui leur seront associs tels que : combien de bande passante leur est alloue, quel type de transfert (Commande, Bloc, Iso ou Interruption) ils utilisent, la direction du flux de donnes et les tailles maximales du paquet/tampons. Par exemple le canal de communication par dfaut est un canal bidirectionnel compos d'une terminaison zro IN et d'une terminaison zro OUT avec un type de transfert de commande.

5 7

VII-Exemple de programme de communication PIC-USB:


figure 13 : schma du programmateur sous isis

Le code :
#include <p18cxxx.h> #include <usart.h> #include "system\typedefs.h" #include "system\usb\usb.h" #include "user\user.h" /** V A R I A B L ES **/ #pragma udata char input_buffer[64]; char output_buffer[64]; /** P R I V A T E P R O T O T Y P E S **/ void InitializeUSART(void); /** D E C L A R A T I O N S **/ #pragma code void UserInit(void) { LATA = 0; // clear data latches TRISA = 0; // direction: output pins InitializeUSART(); 5 7

} void InitializeUSART(void) { TRISCbits.TRISC7=1; // TRISCbits.TRISC6=0; // SPBRG = 0x71; SPBRGH = 0x02; // TXSTA = 0x24; // RCSTA = 0x90; // BAUDCON = 0x08; // }

RX TX 0x0271 for 48MHz TX enable BRGH=1 continuous RX BRG16 = 1

void ProcessIO(void) { static unsigned int cnt = 0; char str[32]; char input_buffer[10]; static int blink = 1; if( (usb_device_state < CONFIGURED_STATE) || (UCONbits.SUSPND==1) ) return; // User Application USB tasks cnt++; if(blink) { // blink the LED if(cnt == 32768) PORTA = 1; if(cnt == 0) PORTA = 2; } if(getsUSBUSART(input_buffer,1)) // if a byte has beenreceived from the computer { if(input_buffer[0] == 'r') { // r (red) -> light the LED on RA0 blink = 0; PORTA = 1; if(mUSBUSARTIsTxTrfReady() putrsUSBUSART("\rRED.\r\n"); return; } if(input_buffer[0] == 'g') { // g (green) the LED on RA1 blink = 0; PORTA = 2; -> light

5 7

if(mUSBUSARTIsTxTrfReady()) putrsUSBUSART("\rGREEN.\r\n"); return; } if(input_buffer[0] == 'b') { // b (blink) -> blink the two LEDs alternatively blink = 1; if(mUSBUSARTIsTxTrfReady()) putrsUSBUSART("\rBLINKING.\r\n"); return; } if(mUSBUSARTIsTxTrfReady()) putrsUSBUSART("\rNot understood (b|g| r).\r\n"); } }

5 7

Partie 3 : Etude du programmateur pic 18F2550


I- Pic Programmateur 18F2550 (microcontroleur USB)
Le terme PIC18 dsigne une des familles de microcontrleurs 8 bits de Microchip. Cette famille est caractrise par un jeu d'instructions commun de 75 instructions Remarque propos de l'identification : 18 = famille PIC18 F = mmoire de programme de type Flash (et donc reprogrammable) Exemple : 18F2550 MICROCONTROLEUR 8 BITS FLASH CMS contrleur Famille / Srie: PIC18

Nombre de bits: 8bit Nombre d'E/S: 24 Tension, alimentation : 5V Nombre de broches: 28 Taille mmoire de programme: 16Kwords Taille EEPROM: 256Byte Taille mmoire, RAM: 2KB Temprature d'utilisation min: -40C Temprature de fonctionnement max..: 85C Frquence, horloge: 48MHz Interface: EAUSART, I2C, SPI, USB Interface Type: EUSART, I2C, SPI, USB Interruptions, nombre interne de: 19

5 7

1- Brochage du pic 18F2550


Le 18F2550 est un circuit intgr de 28 broches, que l'on peut trouver dans un botier PDIP.

Le 18F2550 possde jusqu' 24 entres/sorties :


7 dans le port A (RA0 RA6) 8 dans le port B (RB0 RB7) 7 dans le port C (RC0 RC2, RC4 RC7) 1 dans le port E (RE3) 2 broches de masse (broches 8 et 19).

5 7

2- Schma de pic 18F2550 avec USB

5 7

3- Architecture interne du Pic 18F2550

5 7

II- Programmation des mmoires


1-EEPROM( Electrically Erasable Programmable Read Only Memory)
L'EEPROM est une mmoire non volatile programmable que nous pouvons effacer par un signal lectrique. ROM L'avantage de l'EEPROM sur l'EPROM est que nous pouvons reprogrammer notre par un signal lectrique sans devoir l'enlever de son support.

L'effacement se fait adresse par adresse, mais trs lentement (quelques millisecondes par octet). Nous pouvons utiliser des EEPROM en tant que RAM non volatile si les changements ne sont pas trop frquents, mais la lenteur d'effacement et le cot lev de ce type de mmoire limitent leur usage des fonctions ROM reprogrammes si le besoin s'en ressent. Alors que nous utilisions des FAMOS pour les EPROMs, le type de transistor que nous utilisons dans les EEPROMs est le SAMOS (Staked gate avalanche injection MOS transistor).

Un champ lectrique issu d'une tension de plus de 24V durant 10mS applique entre le drain et la source cre un effet de tunnel (les lectrons peuvent alors voyager dans les deux sens). Comme la seconde grille (G2) et la source sont mises la masse, les lectrons traversent l'isolant (15 nm environ de dioxyde de silicium au niveau du drain) et la tension de seuil revient la normale. Le transistor est passant (non bloqu) et l'EEPROM est efface. Pour programmer notre EEPROM, nous devons bloquer certains transistors. La source et le drain sont mis la masse, et une tension positive est applique entre la seconde grille et la

5 7

masse. Des lectrons traversent la mince couche d'oxyde la sortie du drain et sont pigs dans la grille flottante. L'limination par voie lectrique des lectrons pigs dans la grille flottante (G1) est facilite par l'troitesse de la couche entre l'oxyde et la grille. Cette charge se maintient une dizaine d'annes en condition normale.

2-EPROM (Programmable Read Only Memory)


A la diffrence d'une mmoire PROM (Programmable Read Only Memory) qui ne peut tre programme qu'une seule fois (ou OTP : One Time Programming), une mmoire EPROM peut tre efface et reprogramme plusieurs fois et peut tre lue l'infini. Les EPROM possdent une fentre transparente permettant le passage d'ultraviolet ncessaires a l'effacement. Leffacement et la programmation ncessitent de retirer physiquement EPROM de son support.
2-1.

Programmeur d'EPROM :

La carte doit tre relie un ordinateur pour recevoir les donnes programmer dans la mmoire Pour effacer la mmoire EPROM, il faut la retirer du circuit et soumettre la puce lectronique qu'elle contient travers une fentre transparente en quartz un rayonnement ultra-violet. C'est un processus contraignant, (seule technologie d'effacement disponible l'poque), qui limite les possibilits d'utilisation de cette mmoire. Il est de cette faon impossible d'effacer slectivement certaines parties de la mmoire. Quand l'EPROM est expose la lumire ultra-violette (bande UV-C), c'est toujours la totalit de l'EPROM qui est rinitialise. Modifier une seule donne demande donc l'effacement et la reprogrammation de la totalit de la mmoire EPROM. Le principe de l'EPROM-UV est le suivant :

Une charge d'lectrons est stocke dans la grille d'un transistor MOS ; une tension d'environ 25 V (environ moiti moins pour les modles rcents) est requise pour ce stockage lors de la programmation du composant. Si l'on illumine la puce avec des UVC, l'on fournit assez d'nergie aux lectrons pigs pour quitter la grille. La dure requise pour l'effacement est de 10 20 minutes. Le transfert des donnes binaires vers un Programmeur d'EPROM (en) utilise gnralement un fichier texte (ASCII).

5 7

Exemple : ( Programmation par logiciel PICKIT)


Le programmateur PICKIT2 permet de programmer les PIC placs sur vos diffrentes cartes microcontrleur PIC. Pour cela la carte doit imprativement utiliser le connecteur prvu dont le schma est rappel ci-dessous :

-LANCEMENT DU LOGICIEL

Double cliquer sur :

5 7

Menu des command es

La fentre suivante apparat :

5 7

Zone dtat

Sour ce

Barre de progress ion

5 7

Si le programmateur est bien reconnu, le message PICKit 2 found and connected apparat.

Si la connexion n'est pas ralise ou que le programme a t lanc avant de brancher le programmateur le message PICKit 2 not found.Check USB connections and use Tools ->Check Communication to retry apparat.

A chaque reconnexion ou test de communication, lorsqu'il n'y a pas de cible connecte une fentre de mise en garde au sujet de la tension VDD apparat. Ne pas en tenir compte et cliquer sur OK

5 7

1- Description du menu des commandes :


Import File : Importation d'un fichier .HEX programmer Export File : Exportation d'un fichier .HEX lu dans un contrleur Exit : Sortie du programme (mme effet que le bouton quitter) DEVICE FAMILY Baseline : Concerne les contrleurs en architecture 12bits

Mid-range : Concerne les contrleurs en architecture 14bits. 12F6xx, 16F6xx, 7x, 7xx, 8x, 8xx PIC18F : Concerne les contrleurs de la famille 18F Une fois le circuit slectionn le logiciel teste la cible. Si celle-ci n'est pas prsente, la fentre Error supply voltage apparat. PIC24 : Concerne les contrleurs de la famille 24 Une fois le circuit slectionn le logiciel teste la cible. Si celle-ci n'est pas prsente, la fentre Error supply voltage apparat.

5 7

PROGRAMMER
Read device: Lecture des zones programmes, donnes, ID et bits de configuration. Write device: Ecriture des zones programmes, donnes, ID et bits de configuration. Verify: Vrification des zones programme, donnes, ID et bits de configuration par rapport aux valeurs stockes dans le buffer. Erase: Effacement de la cible. Blank Check: Vrifie la virginit de la cible. Verify on Write: Vrification mot mot lors de la programmation. Full Erase : Effacement total de la cible.

TOOLS
Enable cod protect: Validation du code de protection de la zone programme pour les PIC de type Flash. Enable Data protect:

5 7

Validation du code de protection de la zone de donnes pour les PIC de type Flash. Set OSCCAL: Positionnement des valeurs de OSCCAL pour calibrer l'oscillateur interne. Target VDD source: Type d'alimentation de la cible par le PX-200 Auto Detect: Laisse le choix au PX-200 d'alimenter ou non la cible. (Non recommand) Forced PICKit2 : Force le PX-200 fournir la tension correcte. Une fois la tension valide, la LED de la cible s'illumine et la boite de dialogue de l'alimentation du PIC est active. L'utilisateur peut alors slectionner la valeur correcte. (Non recommand) Forced Target : Ce choix permet de laisser au logiciel de choisir la tension en rapport avec la cible programmer slectionne. L'utilisateur peut donc appliquer la valeur automatiquement propose en toute scurit. (Configuration recommande) Fast Programming : Programmation rapide des cibles Flash. Check Communication : Vrification de la connection Du PC la Cible et tlchargement de l'ID du PIC. Download PICKit2 Firmware : Tlchargement du Firmware du PX-200. Appliquer rgulirement cette fonction afin d'avoir une version actuelle du logiciel embarqu dans le PX200. HELP: Affiche tous les manuels et documents techniques disponibles dans une bote de dialogue.

5 7

Points importants savoir : 1-Edition des donnes de la mmoire :


LE PICKit2 permet l'dition et la modification de chaque emplacement mmoire, aussi bien pour la zone programme que pour la zone donne. L'utilisateur peut cliquer sur n'importe quelle adresse pour changer la valeur actuelle. De plus, l'utilisateur peut accder son choix au deux zones mmoire ou une seule.

5 7

2-Accs la zone EEPROM seule :


Cliquer dans la case " Enabled " de la zone " Program Memory " pour la dcocher Puis dans la case " Enabled " de la zone " EEPROM " pour la cocher. Le message " Write and Read EEPROM data " doit tre affich en rouge.

5 7

Raccourcis :
Le logiciel PICKit2 comporte 7 touches de raccourcis : Read : charge la cible dans le tampon. Write : Ecrit le tampon dans la cible Verify : Vrifie la programmation. Erase : Efface la cible. Blak Check : Contrle la virginit. Import Hex File + Write Device : Ouvre un fichier .hex et programme la cible avec. Read Device + Export Hex File : sauvegarde la cible dans un fichier .hex.

5 7

3.Programmation l'aide du bouton " PROGRAM " :


Le PX-200 possde un bouton permettant de lancer la programmation directement par une pression sur celui-ci. Cette solution est particulirement utile lorsqu'il faut programmer plusieurs cibles aves le mme programme sans devoir cliquer les mmes squences de manire rptitives. Connecter le PX-200 la cible. Charger le ficher .hex dans le tampon. Dans le menu , slectionner " Programmer " puis " Write on PICKit button "

Une bote de dialogue s'ouvre avec le message "Waiting for PICKit2 button to be pressed" Une pression sur bouton du PX-200 lance la programmation. Si plusieurs cible PIC identiques sont ncessaires, retirer le PIC, mettre le nouveau et presser le bouton.

5 7

Remarque :
Il ne faut surtout pas avoir la fois une alimentation par PicKit et une alimentation externe : RISQUE DE COURT CIRCUIT Et DESTRUCTION de PICKIT

5 7

III-Etude du schma du programmateur de pic USB 1)- Organigramme du fonctionnement du programmateur :


Dtecter LUSB Non Tester [RAM] Ecraser [RAM] Oui

Envoyer le DATA

Non

Test de Transfe rt Oui

LED est teinte

Clignotement dune LED

5 7

Non

Tester le bouto n pouss oir Oui Activer les deux tensions (VPP, VDD)

Transfrer [RAM] [ROM]

Non
Fin de transf ert

Oui

Dsactiver les tensions VDD et VPP

Fin

2)- Schma synoptique (le pic maitre les Pics esclaves)

5 7

3)-Schma du programmateur sous isis :

5 7

5 7

La gestion du programmateur USB est confie un microcontrleur de dernire gnration PIC18F2550. Ce dernier sert d'interface entre notre PC et les diffrents microcontrleurs que nous souhaitons programmer.

4- analyse de schma
5 7

Bloc 1 : filtrage dalimentation

Les deux sorties D+ et D- sert envoyer linformation du USB vers le PIC 18F2550 (RC4 et RC5) et +5 et GND pour lalimentation. L1 est une bobine permet de lissage et de choc. J3 est un connecteur. D2 est une LED permet de tmoigner la prsence dalimentation lUSB. C5 : condensateur chimique permet de stabiliser la tension. C4 : condensateur antiparasite ( liminer les parasites)

Bloc 2 : Activation ou masquage de la tension dalimentation VDD


5 7

VDD

Q5 RB4= 1 RB3= 1 RB4= 0 RB3= 0

Q6

Tension dalimentation VDD 5V 0V

Satur Bloqu

Bloqu Satur

Bloc 3 : Activation et masquage de la tension de programmation VPP

5 7

VPP

Q3 ( NPN) RB2= 0 RA5= 1 RC1= 1 RB2= 1 RA5= 1 RC1= 0

Q2 (PNP)

Q1 (NPN)

Tension de programmation VPP VPP=0V VPP=5V

Bloqu satur

Bloqu satur

satur bloqu

5 7

Conclusion
Notre formation de deux annes en Gnie lectrique et informatique industrielle lENSET de Rabat, nous oblige raliser un projet de fin dtudes Etude dun programmateur de pic USB , afin de nous permettre de joindre entre toutes nos comptences acquises durant les deux annes de formation et la pratique sur le terrain. Ce projet nous a t bnfique dans la mesure o il nous a familiariss avec le bus USB et la manipulation des microcontrleurs et plus prcisment avec le PIC 18F2550. En outre, ce projet a normment contribu consolider nos connaissances dans la conception des projets et ltude des cartes lectroniques. A travers ce dernier on a su acqurir et lesprit du travail en groupe avec tout lchange dides qui vient avec, et la capacit de bien coordonner et rpartir les tche

5 7

Webographie :
www.oumnad.123.fr www.technologuepro.com
Wikipdia

5 7

5 7

5 7