Vous êtes sur la page 1sur 34

Le protocole I²C

HAMDAD abderrahim
Definition

Le bus I2C (Inter-Integrated Circuit) est un


bus populaire développé par la société
Philips dans les années 1980, est un bus
série, synchrone, bidirectionnel, half-duplex
Definition
•.
Les niveaux de vitesse

standard mode: 100 kbit/s


full speed: 400 kbit/s
fast mode: 1 mbit/s
high speed: 3,2 Mbit/s
SCEMAS

SDA : bidirectionnelle SCL : unidirectionnelle


SCEMAS
•.

I2C VS TWI
FONCTIONNEMENT

1er CAS LE MAITRE VEUT EVOYER UNE DONNEE A L’ESCLAVE

2eme CAS LE MAITRE VEUT LIRE/RECEVOIR UNE DONNEE D’ARES L’ESCLAVE


LE 1 er CAS
LE MAITRE VEUT EVOYER UNE DONNEE A L’ESCLAVE

La trame NACK NACK NACK


0
ACK ACK ACK

start Adresse de l’esclave R/W ACK Adresse de registre ACK La donnée ACK Stop

Maitre envoie

L’esclave envoie
LE 2 eme CAS
LE MAITRE VEUT LIRE UNE DONNEE D’APRES L’ESCLAVE

La trame NACK NACK NACK


1
ACK ACK ACK

start Adresse de l’esclave R/W ACK Adresse de registre ACK La donnée ACK Stop

Maitre envoie

L’esclave envoie
LE 2 eme CAS
LE MAITRE VEUT LIRE UNE DONNEE D’APRES L’ESCLAVE le vrai cas

La trame
EXPLICATION

1 start

Cette partie
de trame
representée
un seul bit
EXPLICATION

2 Adresse de l’esclave

Cette partie de trame contient un 7 bits


pour l’adressage de l’esclave avec lequel le
maitre veut communiquer
EXPLICATION

3 R/W

Cette partie contient un seul bit pour


specifier {l'écriture=0 ou lecture=1}
EXPLICATION

4/6/8 ACK / NACK

ACK
C’est bit envoyé soit par le maitre soit par
l’esclave toujours = 1
EXPLICATION

4/6/8 ACK / NACK

Lorsque l’un des deux (maitre ou esclave)


envoie une (adresse / donnée) vers l’autre il
doit la suivre par ce bit (ACK) pour verifier la
bonne reception
EXPLICATION

4/6/8 ACK / NACK

Si l’un des deux (maitre ou esclave) reçois


correctement l’(adresse / donnée) tansferée
par l’autre il doit repondre en envoyant un
bit 0 à l’emetteur , Dans ce cas le bit de
réponce appelée aussi ACK
EXPLICATION

4/6/8 ACK / NACK

Si l’un des deux (maitre ou esclave) ne reçois


pas correctement L’(adresse / donnée)
tansferée par l’autre il doit repondre en
envoyant un bit 1 à l’emetteur , Dans ce cas
le bit de reponce appelée NACK
EXPLICATION

5 Adresse de registre

C’est un octet (8 bits) contient l’adresse du


registre que le maitre veut lire ou bien
dans lequel veut ecrère
EXPLICATION

7 La donnée

Si R/W =0
Alors la donnée c’est les 8 bits que le maitre
veut ecrère dans le registre selectionné
auparavant
EXPLICATION

7 La donnée

Si R/W =1
la donnée c’est la valeur (8 bits) que le maitre
veut lire, et qui existe dans le registre
selectionné auparavant
EXPLICATION

9 Stop

Cette partie
de trame
representée
un seul bit
EXPLICATION

Autre trame

Le maitre
doit refaire
start i.e
<< Restart >>
EXPLICATION

• NB

la modification de SDA par le contrôleur ou l’esclave n’est


possible que si SCL=0
EXPLICATION

si Le maitre veut recommuniquer avec le


REASTART meme esclave qui a communiqué avec lui
auparavant

C’est l’etat d #repos# du bus


IDLE SDA=HIGH
SCL=HIGH
EXPLICATION

$ RESUMEE
EXPLICATION

$ RESUMEE
ARBITRAGE

$ RESUMEE

Le bus I²C offre la capacité d'arbitrage et la


détection de collision des trames
ARBITRAGE

$ RESUMEE
ARBITRAGE

$ RESUMEE
ARBITRAGE

$ RESUMEE
ARBITRAGE

$ RESUMEE
ARBITRAGE

$ RESUMEE
ARBITRAGE

$ RESUMEE
ARBITRAGE

$ I2C pour le pic16Fxx >> les fonctions utilisées

Il émet un signal de démarrage en continu.

Il renvoie un si le bus est libre (free). Sinon, il renvoie zer0. Teste si le bus
I²C est libre.
Il est utilisé pour lire le signal acquitté ou non acquitté d'un appareil
esclave connecté au bus et lit aussi les données d'un octet de l'esclave.
Cette fonction écrit des données sur le bus I2C et le seul esclave adressé
qui va lire les données
cette fonction informe le récepteur que la transmission de données est
terminée.
ARBITRAGE
•.
$ I2C pour le pic16Fxx >> les registres utilisées

SSPCON1 MSSP Control Register 1

SSPCON2 MSSP Control Register 2

SSPSTAT MSSP Status Register

SSPBUF Receive/Transmit Buffer Register

SSPSR Shift Register not directly Not directly accessible

SSPADD Address Register

Vous aimerez peut-être aussi