18
SYSTÈME A BASE DES MICROCONTROLLEURS CHAPITRE 5: BUS DE COMMUNICATION MOHAMED MASMOUDI ENSI-ECOLE NATINALE DES SCIENCES DE L’INFORMATIQUES [email protected] Mohamed MASMOUDI 2014-2015 ENSI 1 Mohamed MASMOUDI 2014-2015 3ème année INFO - SLE

Sbmc Chapitre 5 - Bus de Communication

Embed Size (px)

DESCRIPTION

Sbmc Chapitre 5 - Bus de Communication

Citation preview

Page 1: Sbmc Chapitre 5 - Bus de Communication

SYSTÈME A BASE DES MICROCONTROLLEURS

CHAPITRE 5: BUS DE COMMUNICATION

MOHAMED MASMOUDIENSI-ECOLE NATINALE DES SCIENCES DE L’INFORMATIQUES

[email protected]

Mohamed MASMOUDI 2014-2015ENSI

1Mohamed MASMOUDI 2014-2015 3ème année INFO - SLE

Page 2: Sbmc Chapitre 5 - Bus de Communication

Classification des bus de communication

Deux types de transmission

synchrone : l’émetteur et le récepteur sont cadencés à la même fréquence d’horloge (incorporé au bus ou bien aux données). L’horloge de réception et d’émission doivent émettre le même signal d’horloge (pour la synchronisation).

Asynchrone: le récepteur et l’émetteur ne partage pas un signal d’horloge.

2

Mohamed MASMOUDI 2014-2015 3ème année INFO - SLE

Page 3: Sbmc Chapitre 5 - Bus de Communication

Protocole UART

Mohamed MASMOUDI 2014-2015 3ème année INFO - SLE

3

UART est un terme qui vient de l'anglais, ce sont les initiales de : Universal AsynchronousReceiver Transmitter. L'UART est donc un émetteur-récepteur asynchrone universel.En langage courant, c'est le composant utilisé pour faire la liaison entre le µC et le portsérie. Il faut donc transformer ces données pour les faire passer à travers une liaison sériequi utilise un même fil pour faire passer tous les bits de données.

Constitution d'une trame UART Une trame UART est constituée des bits suivants :un bit de start toujours à 0 : servant à la synchronisation du récepteur les données : la taille peut varier (généralement entre 5 et 9 bits) éventuellement un bit de parité paire ou impaire un bit de stop toujours à 1 (la durée peut varier entre 1, 1,5 et 2 temps bit)Le niveau logique de repos est le 1.

Page 4: Sbmc Chapitre 5 - Bus de Communication

UART

Mohamed MASMOUDI 2014-2015 3ème année INFO - SLE

4

Pour les communication synchrone le protocole est nommé USART (Universal Synchronous & Asynchronous Receiver Transmitter).

Page 5: Sbmc Chapitre 5 - Bus de Communication

RS232

Un niveau logique "0" est représenté par une tension de +3V à +25V et un niveau logique "1" par une tension de -3V à -25V (codage NRZ). Ordinairement, des niveaux de +12V et -12V sont utilisés.

La norme V.28 indique qu'un 1 est reconnu si la tension est inférieure à -3 V, et un 0 est reconnu si la tension est supérieure à +3 V.

Mohamed MASMOUDI 2014-2015 3ème année INFO - SLE

5

Page 6: Sbmc Chapitre 5 - Bus de Communication

RS-485

EIA-485 (souvent appelée RS-485) est une norme qui définit les caractéristiques électriques de la couche physique d'une interface numérique sérielle. La transmission se fait sur une ligne électrique, pratiquement une paire torsadée, par des variations de tension en mode différentiel.

Mohamed MASMOUDI 2014-2015 3ème année INFO - SLE

6

Page 7: Sbmc Chapitre 5 - Bus de Communication

I²C

Mohamed MASMOUDI 2014-2015 3ème année INFO - SLE

7

A l’intérieur du µC

Pull-up

Configuration du pin SCL en output open dran

Configuration du pin SCL en Input floating

Page 8: Sbmc Chapitre 5 - Bus de Communication

I²C

Mohamed MASMOUDI 2014-2015 3ème année INFO - SLE

8

• Les résistances de rappel au potentiel VCC permettent aux signaux SDA et SCL d'êtreà 1

• si toutes les sorties à, collecteurs ouverts sont aussi au niveau 1 (résultat de la fonction« ET »). Si une ou plusieurs sorties tentent d'imposer un niveau bas sur une ligne, le oules transistors associés vont conduire, ce qui entraîne un niveau bas sur la lignecorrespondante (ce qui est conforme au résultat de la fonction « ET »).

• En ce qui concerne la lecture des signaux SDA et SCL, cela ne pose pas de problème.Les signaux peuvent être lus en permanence sans risque d'interférer sur le niveau dela ligne.

• Au repos, tous les circuits connectés doivent imposer un niveau haut sur leurs sortiesrespectives. Si les lignes SDA et SCL sont au niveau haut dans ces conditions, celasignifie qu'aucun circuit ne tente de prendre le contrôle du bus. Si une des lignes SDAou SCL passe à un niveau bas dans les mêmes conditions, c'est qu'un des circuits désire

prendre le contrôle du bus.

Page 9: Sbmc Chapitre 5 - Bus de Communication

I²C

Mohamed MASMOUDI 2014-2015 3ème année INFO - SLE

9

• Le protocole du bus I²C définit la succession des états possibles sur les lignes SDA et SCL, et comment doivent réagir les circuits en cas de conflit.

• La prise de contrôle du bus: Pour transmettre des données sur le bus I²C, il faut surveiller deux conditions particulières : la condition de départ et la condition d'arrêt.

• Avant de tenter de prendre le contrôle du bus, un circuit doit vérifier que les lignes SDA et SCL sont au repos, c'est-à-dire à l'état haut.

• Si c'est le cas, le circuit indique qu'il prend le contrôle du bus en mettant la ligne SDA à 0.• A partir de ce moment là, les autres circuits savent que le bus est occupé et ils ne

devraient pas tenter d'en prendre contrôle. • Le circuit qui vient de prendre le contrôle du bus en devient le maître (en anglais

« master »). C'est lui qui génère le signal d'horloge, quel que soit le sens du transfert.

Page 10: Sbmc Chapitre 5 - Bus de Communication

I²C

Mohamed MASMOUDI 2014-2015 3ème année INFO - SLE

10

La transmission d'un octet• Une fois les 8 bits transmis, le circuit qui vient de recevoir les données doit imposer

un bit d'acquittement ACK sur la ligne SDA. • Pour cela, pendant que la ligne SCL est au niveau bas, le maître place sa propre

sortie au niveau haut, tandis que le récepteur (aussi appelé l'esclave) place sa sortie au niveau bas.

• Puisque les sorties sont à collecteur ouvert, la ligne SDA restera au niveau bas à cause de l'esclave.

• Le maître relie ensuite la ligne SDA une fois qu'il a passé la ligne SCL au niveau haut.

• Si la valeur lue pour le bit ACK est 0, c'est que l'esclave s'est bien acquitté de l'octet reçu, sinon c'est qu'il y a une erreur et le maître doit générer la condition arrêt.

Page 11: Sbmc Chapitre 5 - Bus de Communication

I²C

Mohamed MASMOUDI 2014-2015 3ème année INFO - SLE

11

La transmission d'une adresseLe nombre de composants qu'il est possible de connecter sur un bus I²C étant largement supérieur à deux, le maître doit pouvoir choisir quel esclave est censé recevoir les données. Dans ce but, le premier octet transmis par le maître n'est pas une donnée mais une adresse. Le format de l'octet d'adresse est un peu particulier puisque le bit D0 est réservé pour indiquer si le maître demande une lecture â l'esclave ou bien au contraire si le maître impose une écriture à l'esclave.

Données

Page 12: Sbmc Chapitre 5 - Bus de Communication

SPI

Une liaison SPI (pour Serial Peripheral Interface) est un bus de données série synchrone baptisé ainsi par Motorola, et qui opère en Full-duplex.

Les circuits communiquent selon un schéma maître-esclaves, où le maître s'occupe totalement de la communication.

Plusieurs esclaves peuvent coexister sur un bus, la sélection du destinataire se fait par une ligne dédiée entre le maître et l'esclave appelée chip select.

Mohamed MASMOUDI 2014-2015 3ème année INFO - SLE

12

Page 13: Sbmc Chapitre 5 - Bus de Communication

SPI

Le bus SPI contient 4 signaux logiques SCLK — Horloge (généré par le maître)

MOSI — Master Output, Slave Input (généré par le maître)

MISO — Master Input, Slave Output (généré par l'esclave)

SS — Slave Select, Actif à l'état bas, (généré par le maître)

Il existe d'autres noms qui sont souvent utilisés. SCK — Horloge (généré par le maître)

SDI,DI,SI — Serial Data IN

SDO,DO,SO — Serial Data OUT

nCS, CS, nSS, STE — SS

Mohamed MASMOUDI 2014-2015 3ème année INFO - SLE

13

Page 14: Sbmc Chapitre 5 - Bus de Communication

SPI

Une transmission SPI typique est une communication simultanée entre un maître et un esclave.

Le maître génère l'horloge et sélectionne l'esclave avec qui il veut communiquer

L'esclave répond aux requêtes du maître

À chaque coup d'horloge le maître et l'esclave s'échangent un bit. Après huit coups d'horloges le maître a transmis un octet à l'esclave et vice-versa. La vitesse de l'horloge est réglée selon des caractéristiques propres aux périphériques.

Mohamed MASMOUDI 2014-2015 3ème année INFO - SLE

14

Page 15: Sbmc Chapitre 5 - Bus de Communication

SPI

Avantages

Communication Full duplex

Débit assez important par rapport à I²C

Flexibilité du nombre de bits à transmettre

Simplicité de l'interface matérielle

Aucun arbitre nécessaire car aucune collision possible

Les esclaves utilisent l'horloge du maître et n'ont donc pas besoin d'oscillateur de précision

Pas de phy nécessaire

Partage d'un bus commun pour l'horloge, MISO et MOSI entre les périphériques

Inconvénients

Monopolise plus de pattes d'un boîtier que l'I²C ou une UART qui en utilisent seulement deux.

Aucun adressage possible, il faut une ligne de sélection par esclave en mode non chaîné.

Le protocole n'a pas d'acquittement. Le maître peut parler dans le vide sans le savoir.

Il ne peut y avoir qu'un seul maître sur le bus.

Ne s'utilise que sur de courtes distances contrairement aux liaisons RS-232, RS-485 ou bus CAN

Mohamed MASMOUDI 2014-2015 3ème année INFO - SLE

15

Page 16: Sbmc Chapitre 5 - Bus de Communication

CAN

Mohamed MASMOUDI 2014-2015 3ème année INFO - SLE

16

Le bus CAN (Controller Area Network) est né du besoin de trouver une solution de communication série dans les véhicules automobiles.Il permet:

Hiérarchisation des messages. Réception de multiples sources avec synchronisation temporelle. Fonctionnement multimaître. Détections et signalisations d’erreurs. Retransmission automatique des messages altérés. Déconnexion automatique des nœuds défectueux.

Page 17: Sbmc Chapitre 5 - Bus de Communication

Autres bus de communication

Plusieurs bus de communication existent sur le marché, on note:

USB

Ethernet

OneWire

Weigand

I2S

….

17

Mohamed MASMOUDI 2014-2015 3ème année INFO - SLE

Page 18: Sbmc Chapitre 5 - Bus de Communication

Activité

Communication STM32 avec accéléromètre LIS302DL via SPI à bas de l’exemple MEMS fournis par ST.

Changer le code pour alléger le traitement dans l’interruption.

Ajouter une interruption pour la détection des accélération au de là d’un seuil.

18

Mohamed MASMOUDI 2014-2015 3ème année INFO - SLE