ÞÓã ÇáãíßÑæßäÊÑæáÑ æÇáÑæÈæÊ æÏæÇÆÑ ÇáÇÊÕÇá ÈÇáÍÇÓÈ ÇáÇáí ÞÓã ÇáãÊÍßãÇÊ ÇáÜ microcontroller æ ÇáãÚÇáÌÇÊ microprocessor æ ÇáÊÍßã ÇáÑÞãí ÈÇáßãÈíæÊÑ CNC æÇáÇäÙãÉ ÇáÂáíÉ æÇáÑæÈæÊ Robots

   

chaa300
:: ãåäÏÓ ::
ÊÇÑíÎ ÇáÊÓÌíá: Aug 2010
ÇáãÔÇÑßÇÊ: 36
äÔÇØ [ chaa300 ]
ÞæÉ ÇáÓãÚÉ:
ÞÏíã 10-08-2010, 09:50 AM ÇáãÔÇÑßÉ 25   
ÇÝÊÑÇÖí La liaison série de microcontrôleur avec le PC :



Les broches de DB9 :

- Broche N°1 : DCD (Data carrier detect), cette ligne est une entrée active haute. Elle signale à l’ordinateur qu’une liaison a été établie avec un correspondant.

- Broche N°2 : RX (receive Data), cette ligne est une entrée. C’est ici que transitent les informations du correspondant vers l’ordinateur.

- Broche N° 3 : TX (Transmit Data), cette ligne est une sortie. Les données de l’ordinateur vers le correspondant sont véhiculées par son intermédiaire.
- Broche N° 4 : TDR (Data Terminal Ready) : cette ligne est une sortie active haute. Elle permet à l’ordinateur de signaler au correspondant que le port série a été libéré et qu’il peut être utilisé s’il souhaite.

- Broche N° 5 : GND (GROUND), c’est la masse.

- Broche N° 6 : DSR (Data Set Ready), cette ligne est une entrée active haute. Elle permet au correspondant de signaler qu’une donnée est prête.

- Broche N° 7 : RTS (Request To Send) : cette ligne est une sortie active haute. Elle indique au correspondant que l’ordinateur veut lui transmettre des données.

- Broche N° 8 : CTS (Clear To Send), cette ligne est entrée active haute. Elle indique à l’ordinateur que le correspondant est prêt à recevoir des données.

- Broche N° 9 : RI (Ring Indicator) : cette ligne est une entrée active haute. Elle permet à l’ordinateur de savoir qu’un correspondant veut initier une communication avec lui.

b) Fonctionnement :
La liaison série est totalement asynchrone. Aucune horloge n’est transmise. Il faut donc que les deux systèmes (PC/PIC) soient d’accord sur la vitesse de transfert des bits préalablement à toute transmission.
Rajouter des bits de synchronisation encadrant chaque jeu de bits transmis : un bits de start et un bits de stop. La transmission s’effectue donc octet par octet sur un fil, et l’onde est de la forme :
En fait, le bronchement un peut compliqué : le microcontrôleur ne peut générer que des signaux [0v, 5v]. Un problème d’adaptation de tension se pose : on ne peut pas lui relier directement les fils série [-10v, +10v] provenant du PC.
On insère donc entre la prise série et le microcontrôleur un circuit c’est le MAX232

III-2- Les convertisseurs RS232 :MAX232 :

Ce convertisseur permet de convertir les signaux des communications séries bidirectionnelles, entre des entrées/sorties TTL (Transistor Transistor Level) et un port série COM RS232 d'un PC.
Ce convertisseur peut être utilise avec tous les microcontrôleurs PIC et Atmel, ou avec n'importe quel autre microcontrôleur disposant d'entrées/sorties séries TTL ayant besoin d'être converties vers un port RS232.
Un cavalier 3 broches permettent de choisir la source d'alimentation (port RS232 du PC ou une source externe).
Information sur le cavalier :
POSITION 2-3 : la carte utilisera l'alimentation du port série du PC (+5V)
POSITION 1-2 : la carte utilisera une alimentation externe +3.3V ou +5V

ÇÚáÇäÇÊ

chaa300
:: ãåäÏÓ ::
ÊÇÑíÎ ÇáÊÓÌíá: Aug 2010
ÇáãÔÇÑßÇÊ: 36
äÔÇØ [ chaa300 ]
ÞæÉ ÇáÓãÚÉ:
ÞÏíã 10-08-2010, 09:52 AM ÇáãÔÇÑßÉ 26   
ÇÝÊÑÇÖí - Typon de la carte d’affichage :



ÇÚáÇäÇÊ ÇÖÇÝíÉ ( Þã ÈÊÓÌíá ÇáÏÎæá áÇÎÝÇÆåÇ )

chaa300
:: ãåäÏÓ ::
ÊÇÑíÎ ÇáÊÓÌíá: Aug 2010
ÇáãÔÇÑßÇÊ: 36
äÔÇØ [ chaa300 ]
ÞæÉ ÇáÓãÚÉ:
ÞÏíã 10-08-2010, 09:55 AM ÇáãÔÇÑßÉ 27   
ÇÝÊÑÇÖí Implantation des composants :




chaa300
:: ãåäÏÓ ::
ÊÇÑíÎ ÇáÊÓÌíá: Aug 2010
ÇáãÔÇÑßÇÊ: 36
äÔÇØ [ chaa300 ]
ÞæÉ ÇáÓãÚÉ:
ÞÏíã 10-08-2010, 09:56 AM ÇáãÔÇÑßÉ 28   
ÇÝÊÑÇÖí alimentation


V- Alimentation :


Notre système sera alimenter par une boite d’alimentation d’un ordinateur qui nous à donner une basse tension continue bien redressée, filtrée et bien régulée.


chaa300
:: ãåäÏÓ ::
ÊÇÑíÎ ÇáÊÓÌíá: Aug 2010
ÇáãÔÇÑßÇÊ: 36
äÔÇØ [ chaa300 ]
ÞæÉ ÇáÓãÚÉ:
ÞÏíã 10-08-2010, 09:58 AM ÇáãÔÇÑßÉ 29   
ÇÝÊÑÇÖí




chaa300
:: ãåäÏÓ ::
ÊÇÑíÎ ÇáÊÓÌíá: Aug 2010
ÇáãÔÇÑßÇÊ: 36
äÔÇØ [ chaa300 ]
ÞæÉ ÇáÓãÚÉ:
ÞÏíã 10-08-2010, 10:03 AM ÇáãÔÇÑßÉ 30   
ÇÝÊÑÇÖí


I-2- Définition d’un PIC :

Un PIC n’est rien d’autre qu’un microcontrôleur, c’est à dire une unité de traitement de l’information De type microprocesseur à la quelle on a ajouté des périphériques internes permettant de réaliser des montages sans nécessiter l’ajout de composants externes.

Les Pics (Programmable Interface Contrôler) sont des composants dits RISC (Reduce Instructions Set Computer), ou encore composant à jeu d’instruction réduit, sachant que plus on réduit le nombre d’instruction plus facile et plus Rapide en est le décodage, et vite le composant fonctionne.

Dans le marché, il existe deux familles opposées, les RISC et les CISC (Complexe Instruction SET Computer) chez les CISC, on diminue la vitesse de traitement mais les instructions sont plus complexes, plus puissantes, et donc plus nombreuses. Il s’agit donc d’un choix de stratégie.

Tous les pics Mid–Range ont un jeu de 35 instructions, ils stockent chaque Instruction dans un seul mot de programme, et exécutent chaque instruction (Sauf les sauts) en un cycle. On atteint donc des très grandes Vitesses. L’exécution en un seul cycle est typique des composants RISC.

L’horloge fournie au pic est pré-divisée par quatre au niveau de celle-ci. C’est Cette base de temps qui donne le temps d’un cycle.
I-3- Les différentes familles des Pics :

La famille des pics est divisée à l’heure actuelle en trois grandes familles :

La famille Base - Line, qui utilise des mots d’instructions de 12 bits.

La famille Mide –Range, qui utilise des mots de 14 bits (et dont font partie Les 16F84 et 16F876).

La famille High – End, qui utilise des mots de 16 bits.

I-4- Identification d’un Pic :

Pour identifier un pic, on utilise simplement son numéro.

Les deux premiers chiffres indiquent la catégorie du pic, 16 indique un pic Mid – Range, vient ensuite une lettre L : celle – ci indique que le pic peut

Fonctionner avec une plage de tension beaucoup plus tolérante, ensuite on trouve.

Ø C indique que la mémoire programme est une EEPROM.

Ø CR pour indiquer une mémoire de type ROM.

Ø F pour indiquer une mémoire de type FLASH.
On remarque que seule ne mémoire FLASH ou EEPROM est susceptible d’être effacée, donc on ne peut pas programmer les PICs de type CR. Par exemple le 16C84peut être programmé, il s’agit d’une mémoire EEPROM. Le 12C508 possède une mémoire programme EPROM, donc effaçable uniquement par exposition aux ultraviolets. Donc, l’effacement nécessite une fenêtre transparente sur le chip, qui est une version spéciale, et non la version couramment rencontrée.

Un composant qu’on ne peut reprogrammer est appelé O. T. P (One Time Programming) : composant à programmation unique.
Puis viennent les derniers chiffres identifient précisément le pic.
Finalement on voit sur les boîtiers le suffixe « XX » dans lequel XX représente la fréquence d’horloge maximale que le pic peut recevoir. Par Exemple -20- pour un 20MHZ.

Un 16F877-20 est un PIC Mid-range (16) DONC la mémoire programme est de type FLACH (F) donc réinscriptible de type 877 et capable d’accepter une fréquence de 20 Mhz

Les PICs sont des composants STATIQUES, C'est-à-dire la fréquence d’horloge peut être abaissée jusqu’à l’arrêt complet Sans perte des données et sans dysfonctionnement, ceci par opposition aux Composants DYNAMIQUES (comme les microprocesseurs de l’ordinateur) Donc la fréquence d’horloge doit rester dans des limites précises.
I-5- Structure interne d’un PIC :
Les PICs font partie de la famille des microcontrôleurs. Selon le type de PIC utilisé, on trouvera en interne un certain nombre de périphériques avec des caractéristiques distinctes, ainsi que des capacités mémoire différentes (RAM, E2PROM, mémoire programme FLACH ou EPROM ou OTP).
Un PIC est généralement constitué : ¬ (figure 23)
 Une mémoire programme de type EEPROM flash dons laquelle on trouve le code binaire des instructions que doit réaliser le microcontrôleur.
 Une RAM donnée de 368 octets (random acces memory) pour sauvegarder temporairement des données.
 Cinq ports d’entrée sortie, A (6 bits), B (8 bits), C (8 bits), D (8 bits) et E(3bits) pour pouvoir dialoguer avec l’extérieur du microcontrôleur.
 Convertisseur analogique numérique
 USART, port série universel, mode asynchrone (RS 232) et mode asynchrone
 SSP, port série synchrone supportant I2C
 Trois TIMERS avec leurs prescalers, TMR0, TMR1, TMR2
 Deux modules de comparaison et capture CCP1 et CCP2
 Un chien de garde
 Une unité arithmétique et logique (ALU), chargée d’effectuer toutes les opérations arithmétiques de base (addition, soustraction etc.…) ainsi que les opérations logiques de base
 Des registres capteurs de programme (CCP) qui pointe l’adresse mémoire contenant l’instruction courante à réaliser par le microcontrôleur.
 Des registres système
 Des registres utilisateur
 D’une horloge système qui permettra de cadencer tous les échanges internes ou externes au microcontrôleur.
I-6- Caractéristiques des PIC16F87x :
a) Caractéristiques générales de la famille 16F87x :

Le 16F876 et le 16F877 font partie de la sous-famille des 16F87x. cette branche fait partie intégrante de la grande famille des PICs Mid-Range. On peut considérer que le 16F84 constitue le circuit d’entrée de gamme de cette famille, alors que le 16F877représante la couche supérieure.
Comme pour le 16F84, le numéro peut être suivi d’un « A », et d’un « -xx » qui donne la fréquence d’horloge maximum du composant. La version la plus courante est la version -. 20. donc, la fréquence que nous utiliserons en standard sera 20 MHz.

On va s’intéresser dans notre projet au PIC16F877, qui est le plus utiliser à l’heure actuelle.
b) Le choix du microcontrôleur 16F877 :
Le choix d’un microcontrôleur est primordial car c’est de que dépendent en grande partie des performances, la taille, la facilité d’utilisation et le prix du montage.

Le PIC 16F877 possède en plus des instructions très puissantes donc un programme à développer réduit, surtout lorsqu’on utilise le logiciel de programmation micro pascal qui possède un nombre important de procédures et fonctions prédéfinit et dédié au PIC 16F877. En fait la cause principale du choix de ce type de microcontrôleur est qu’il dispose de l’option du convertisseur A/D pour satisfaire coté acquisition, aussi la possibilité de l’adaptation au protocole I2C et la liaison RS232.

c) Organisation de la mémoire du 16F877 :

La mémoire du 16F877 est divisée en 3 parties :
• La mémoire programme :
La mémoire programme est constituée de 8k mots de 14 bits. C’est dans cette zone que nous allons écrire notre programme. Le PIC exécute une à une les instructions logées dans la mémoire de programme.

• La mémoire EEPROM :
La mémoire EEPROM (Electrical Ecrasable Programmable Read Onlay Memory), est constituée de 256 octets que nous pouvons lire et écrire depuis notre programme. Ces octets sont conservés après une coupure de courant et sont très utiles pour conserver des paramètres semi-permanents.
• La mémoire RAM et organisation :
La mémoire RAM est celle que nous allons sans cesse utiliser. Toutes les données qui y sont stockées sont perdues lors d’une coupure de courant.
La mémoire RAM disponible du 16F877 est de 368 octets. Elle est répartie de la manière suivante :
1) 80 octets en banque 0, adresses 0*20 à 0*6F
2) 80 octets en banque 1, adresses 0*A0 à 0*EF
3) 96 octets en banque 2, adresses 0*110 à 0*16F
4) 96 octets en banque 3, adresses 0*190 à 0*1EF
16 octets commun aux 4 banques, soit 0*70 à 0*7F = 0*F0 à 0*FF.
d) Les particularités de la programmation du 16F87x :

La directive « CONFIG » :

Cette directive détermine le fonctionnement du PIC. La valeur est inscrite au moment de la programmation dans un registre spécial, situé en mémoire programme à l’adresse 0x2007, et ne peut plus être modifié en cour d’exécution du programme.

Puisque la mémoire programme des PICs vierges contient des « 1 », les niveaux actifs de ces bits seront de niveau « 0 ».

Ce registre de 14 bits (puisqu’en mémoire programme) dispose d’une organisation différente par rapport à celui du 16F84. Voici donc ses fonctions :
CP1/CP0 : bits 13/12 et 5/4 : Détermine quelle zone du 16F877 sera protégée contre la lecture. Nous pouvons donc protéger la totalité du PIC, ou seulement une partie.


chaa300
:: ãåäÏÓ ::
ÊÇÑíÎ ÇáÊÓÌíá: Aug 2010
ÇáãÔÇÑßÇÊ: 36
äÔÇØ [ chaa300 ]
ÞæÉ ÇáÓãÚÉ:
ÞÏíã 10-08-2010, 10:04 AM ÇáãÔÇÑßÉ 31   
ÇÝÊÑÇÖí


• Le port A :
Le PORT A, dans sa partie PORT I/O est fort semblable à celui sur le 16F87.

Nous trouvons donc ici 6 pins I/O numérotées de RA0 à RA5. Nous avons donc 6 bits utiles dans le registre TRIS A. Les bits RA6 et RA7 de ces registres ne sont pas implantés. Ils seront lus comme des « 0 »
La principale différance avec le 16F84 provient de ce que le PORT A, au moment du reset, est configuré comme un ensemble d’entrées analogiques. Donc nous devrons forcer une valeur dans le registre ADCON1 dans notre routine d’initialisation pour pouvoir utiliser ce port comme port d’entrée/sortie de type général.

• Le PORT B:
Rien de particulier à dire sur ce PORT B, qui est identique à celui du 16F84, du moins pour la partie I/O classique.
Le pin RB0 qui, en configuration d’entrée, est de type « trigger de Schmitt » quand elle est utilisée en mode interruption « INT ». La lecture simple de RB0 se fait de façon tout à fait classique, en entrée de type TTL.

• Le PORT C :
C’est un PORT qui n’existe pas sur le 16F84.
C’est un port tout ce qu’il a de plus classique, or qu’il a deux pins qu’on utilisera plus tard dans la communication série avec le PC à travers (TX et RX) (pin25et pin 26).

• Le PORT D :
Ce port fonctionne de façon identique aux autres, dans son mode de fonctionnement général. Le registre TRISD comportera donc les 8bits de direction, pendant que le registre port D correspond aux pins I/O concernés. D’où les 8 pins I/O, en mode entrée, sont du type <trigger de Schmitt>.

• Le PORT E :
Ce port n’est présent que sur les PIC 16F877. Il ne comporte que 3 pins RE0à RE2, mais, contrairement aux ports, les bits non concernés de TRISE sont, cette fois, implantés pour d’autres fonctions. Les pins REX peuvent également être utilisés comme pins d’entrées analogiques. D’ou le registre ADCON1 qui détermine si ce port est utilises comme port I/O ou comme port analogique.


chaa300
:: ãåäÏÓ ::
ÊÇÑíÎ ÇáÊÓÌíá: Aug 2010
ÇáãÔÇÑßÇÊ: 36
äÔÇØ [ chaa300 ]
ÞæÉ ÇáÓãÚÉ:
ÞÏíã 10-08-2010, 10:06 AM ÇáãÔÇÑßÉ 32   
ÇÝÊÑÇÖí





ÇáÓÇÚÉ ãÚÊãÏÉ ÈÊæÞíÊ ÌÑíäÊÔ +3 ÇáÓÇÚÉ ÇáÂä: 07:31 AM
ãæÞÚ ÇáÞÑíÉ ÇáÇáßÊÑæäíÉ ÛíÑ ãÓÄæá Úä Ãí ÇÊÝÇÞ ÊÌÇÑí Ãæ ÊÚÇæäí Èíä ÇáÃÚÖÇÁ
ÝÚáì ßá ÔÎÕ ÊÍãá ãÓÆæáíÉ äÝÓå ÅÊÌÇå ãÇíÞæã Èå ãä ÈíÚ æÔÑÇÁ æÅÊÝÇÞ æÃÚØÇÁ ãÚáæãÇÊ ãæÞÚå
ÇáÊÚáíÞÇÊ ÇáãäÔæÑÉ áÇ ÊÚÈÑ Úä ÑÃí ãæÞÚ ÇáÞÑíÉ ÇáÇáßÊÑæäíÉ æáÇíÊÍãá ÇáãæÞÚ Ãí ãÓÄæáíÉ ÞÇäæäíÉ ÍíÇá Ðáß (æíÊÍãá ßÇÊÈåÇ ãÓÄæáíÉ ÇáäÔÑ)