SYSTÈME A BASE DES MICROCONTROLLEURS
CHAPITRE 5: BUS DE COMMUNICATION
MOHAMED MASMOUDIENSI-ECOLE NATINALE DES SCIENCES DE L’INFORMATIQUES
Mohamed MASMOUDI 2014-2015ENSI
1Mohamed MASMOUDI 2014-2015 3ème année INFO - SLE
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
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.
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).
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
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
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
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.
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.
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.
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
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
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
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
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
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.
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
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
Top Related