Vous êtes sur la page 1sur 28

Informatique industrielle

Bus I2C

Pr. Mohamed Hamlich


Sige.ensam@gmail.com

ENSAM- Casablanca

Pr. Mohamed Hamlich 1


Les BUS DE TERRAIN

Première partie :

• Généralités sur les bus

• Transmissions de données

• Le bus I2C

Prof : M.HAMLICH
Définitions

 Bus : au sens informatique industrielle, conducteur ou ensemble


de conducteurs communs à plusieurs circuits permettant l’échange
de données entre eux.

 Terrain : indique quelque chose de limité ou délimité


géographiquement (usine, atelier, voiture...).

Prof : M.HAMLICH-
Intérêts :

 REDUCTION DES COUTS INITIAUX


 Réduction massive du câblage : 1 seul câble en
général pour tous les équipements au lieu d’un par
équipement.
 Possibilité de réutiliser le câblage analogique
existant dans certains cas.
 Réduction du temps d’installation.
 Réduction du matériel nécessaire à l’installation.

Prof : M.HAMLICH-
Intérêts :

 REDUCTION DES COUTS DE MAINTENANCE


 Complexité moindre donc moins de maintenance
(fiabilité accrue)
 Maintenance plus aisée : temps de dépannage
réduit, localisation des pannes possibles grâce à des
diagnostics en ligne («on line») donc à distance.
 Outils de test dédiés (analyseur...)
 Flexibilité pour l’extension du bus de terrain et pour
les nouveaux raccordements.

Prof : M.HAMLICH-
Types de liaisons

Prof : M.HAMLICH-
Ports des ordinateurs

Sur les PC, la connectique


RS232 disponible et de
type Sub-D 9 points.
D’autres protocoles
séries peuvent être
trouvés avec des
connectiques PS/2
(clavier/sourie) ou Sub-D
15 points
(joystick ou instruments
de musique : protocole
MIDI).
Prof : M.HAMLICH-
Signaux des ports série

Notez que les sigles sont données interprétés du côté DTE : PC


 · GND : (Ground) la masse. Référence nécessaire à toute mesure de tension.
Lignes de données. Elles font passer les données numériques.
 · RD : (Received Data) Données reçues (par le PC).
 · TD : (Transmitted Data) Données émises (par le PC).
Lignes de contrôle de flux. le contrôle de flux reste toujours (surtout dans une
communication asynchrone) une logique de réception, c'est à dire que c'est la
faculté de réception du partenaire qui indique si oui ou non un équipement va
émettre.
 · RTS : (Request to Send) Indique que le DTE (PC) est prêt à émettre, même si la
traduction littérale est « demande d'émission ».
 · CTS : (Clear to Send) Indique que le DCE (modem) est prêt à recevoir

Prof : M.HAMLICH-
Transmission synchrone et
transmission asynchrone

Transmission asynchrone :

• les caractères sont émis de façon irrégulière, comme par exemple des
caractères tapés sur un clavier, l’intervalle de temps entre deux caractères
est aléatoire, le début d’un caractère peut survenir à n’importe quel moment.

• les bits de départ et d’arrêt souvent désignés par leur appellation anglo-
saxonne de START (élément de départ) et de STOP (élément d’arrêt). Ces
bits, sont en fait des signaux encadrent ceux qui constituent un caractère, le
bit de départ (START) indique le début d’un caractère et celui ou ceux
d’arrêt (STOP) – il peut y’en avoir ‘1’ ou ‘2’ – marquent la fin de caractère.

• Un octet transmet d’une façon asynchrone est illustré sur la page suivante :

Prof : M.HAMLICH-
Exemple de trame

Remarque : Un bit de parité peut être utilisé pour détecter les erreurs
susceptibles d’apparaître pendant la transmission.

Prof : M.HAMLICH-
Allure d’un caractère
transmis en RS232

Prof : M.HAMLICH-
Bit de parité

• Il existe deux types de contrôle de parité (pair et impair) et il est


indispensable que l’émetteur et le récepteur s’entendent sur le type à utiliser
pour l’ensemble de la transmission.
• Avec la parité paire, si le nombre de ‘ 1 ‘ dans les données envoyées est
impaire alors le bit de parité (bit de control) est égal à ‘ 1 ‘ de manière à ce
que le nombre total de ‘ 1 ‘ soit pair y compris le bit de parité, et si le nombre
de ‘ 1 ‘ est déjà pair alors le bit de parité vaudra ‘ 0 ‘.
• Une parité impaire correspond au système inverse.

Exemple :

Prof : M.HAMLICH-
Transmission synchrone

 Dans une transmission synchrone, les bits sont émis


d’une façon régulière, sans séparation entre les
caractères, pour cela un signal d’horloge périodique
de période T fonctionne pendant toute la durée de
l’émission.

Prof : M.HAMLICH-
Le support physique

Prof : M.HAMLICH-
Prof : M.HAMLICH-
I2C : Introduction

 I2C est le sigle d'Inter-Integrated Circuit. À la fin des années 1970, la division des
semi-conducteurs de chez Philips (maintenant devenue NXP) avait vu la nécessité de
simplifier et standardiser les échanges de données entre les différents circuits
intégrés dans leurs produits.

 Leur solution fut le bus I2C, elle réduisait le nombre de lignes nécessaires à
seulement deux lignes, SDA - Serial DAta, et SCL - Serial CLock.

 Dans ce cours, nous allons décrire l'architecture physique du bus I2C, le protocole de
communication série et comment communiquer en I2C

Pr. Mohamed Hamlich 16


I2C : Vitesse

 À l'origine, la communication était limitée à la vitesse de transfert de 100 kbit/s, et


cela suffisait dans la majorité des cas.

 Pour des débits plus rapides, de nouvelles spécifications sont nées. D'abord un Fast
Mode à 400 kbit/s, puis un Fast Mode plus (FM+) à 1 Mbit/s.

 Depuis 1998, il y a une version High Speed à 3,4 Mbit/s. Le débit maximal possible
via un bus I2C est spécifié dans l'Ultra Fast mode à 5 Mbit/s, mais avec un
fonctionnement un peu particulier.

Pr. Mohamed Hamlich 17


I2C : caractéristiques

•seulement deux lignes (bidirectionnelles) sont nécessaires, - SDA -, - SCK -;

•transmission synchrone. Contrairement à la liaison RS232. Ici, le périphérique


maître (master) génère le signal d'horloge qui synchronise et cadence les
échanges ;

•la relation entre les périphériques du bus est de type maître-esclave


(master/slave).

•chaque périphérique sur le bus I2C possède une adresse unique;


Pr. Mohamed Hamlich 18
•l'I2C gère le fonctionnement multimaître (multi-master),
I2C : bit dominant

Sur le bus I2C le niveau logique dominant est le 0, le niveau récessif est le 1.
En absence de commande le niveau logique (repos) est donc 1. Le bus doit
être équipé de deux résistances de pull-up (4K à 10K)

Pr. Mohamed Hamlich 19


I2C : Contrôle du bus

• Les échanges commencent toujours par une condition START sur SCL/SDA
et finissent par une condition STOP

• Les bits sont transférés sur le front descendant de SCL

• Le bus I2C pouvant accueillir plusieurs esclaves ceux-ci sont identifiés par
une adresse sur 7 bits, le 8 ième bits de l’octet indique s’il s’agit d’une
opération d’écriture dans l’esclave (0) ou de lecture (1).

Pr. Mohamed Hamlich 20


I2C : Transmission d’une adresse

• Le premier octet envoyé correspond à l’adresse de l’esclave choisi suivi d’un


bit de lecture ou écriture.

• Par exemple pour un circuit dont l’adresse est 0b1010000. L’adresse I2C en
écriture sera 0b10100000 (0xA0) et 0b10100001 (0xA1) en lecture.

Pr. Mohamed Hamlich 21


I2C : Transmission d’un octet

• Le bit de pois fort est transmis en premier

• A chaque période de SCL, un bit de SDA est transmis

Pr. Mohamed Hamlich 22


I2C : Ecriture d’une donnée

• Le bit de R/W = 0;

• Après chaque bit ACK valide, il peut y avoir deux cas :


• Le maitre continue d’envoyer des octets à l’esclave
• Le maitre décide de terminer le dialogue en envoyant une condition de
stop.

Pr. Mohamed Hamlich 23


I2C : Lecture d’une donnée

• Le bit de R/W = 1;

• C’est toujours le maitre qui génère SCL.


• L’esclave prend le contrôle de SDA.
• C’est le maitre qui génère ACK après chaque octet envoyé par l’esclave.

Pr. Mohamed Hamlich 24


I2C : Lecture et écriture
• Il est possible d’enchainer lecture et écriture sans passer par une condition
de stop ;Cela est possible grâce au bit « Repeat Start »
• Exemple d’application:

Pr. Mohamed Hamlich 25


I2C : Exemple d’application

Pr. Mohamed Hamlich 26


I2C : Exemple d’application

Prof : M.HAMLICH-
I2C : Exercice

 On veut lire la date et l’heure par le uc PIC à travers le port I2C à partir du circuit
DS1307 et l’afficher.
 La trame échangée à un moment dans le port I2C est la suivante :
 S11010000A00000000ASr11010001A00000110A01010110A00001001A00000100
A00000011A00000010A00010110ÃP

 Donner la date et l’heure lues par le PIC
 On rappelle que Le circuit Dallas DS1307 est une horloge temps réel (Real Time
Clock), qui fournit secondes, minutes, heures, jours, dates, mois et années. Les
années bissextiles sont prises en compte (jusqu'en 2100). Le DS1307 travaille
dans le mode standard (fréquence d'horloge de 100 kHz). L'adresse I2C (7 bits) du
DS1307 est : 1101000 (adresse fixée par le constructeur et non modifiable).
 Les registres d'adresses 00h à 06h du DS1307 contiennent respectivement les
secondes, minutes, heures, jours, dates, mois et années.

Prof : M.HAMLICH-