Système à base des microcontrôleurs

Programming, Communication Protocols · course

Voir tous les documents en électronique et automatique

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

1

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

ENSI

2014-2015

Classification des bus de communication

2

 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.

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

Protocole UART

3

UART est un terme qui vient de l'anglais, ce sont les initiales de : Universal Asynchronous Receiver 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 port série. Il faut donc transformer ces données pour les faire passer à travers une liaison série qui 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.

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

UART

4

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

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

RS232

5

 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

RS-485

6

 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

I²C

Pull-up

Publicité

7

A l’intérieur du µC

Configuration du pin SCL en Input floating

Configuration du pin SCL en output open dran

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

I²C

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 ou les transistors associés vont conduire, ce qui entraîne un niveau bas sur la ligne correspondante (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 de la ligne.

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

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

I²C

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.

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

I²C

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.

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

I²C

11

La transmission d'une adresse Le 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.

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

Publicité

Données

SPI

12

 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

SPI

13

 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

SPI

14

 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

SPI

15

Avantages

Communication Full duplex

Débit assez important par rapport à I²C

Publicité

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

CAN

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.

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

Autres bus de communication

17

 Plusieurs bus de communication existent sur le

marché, on note:  USB  Ethernet  OneWire  Weigand  I2S  ….

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

Activité

18

 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.

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