Le bus I²C. WASNER Jérémy 24/03/2014

Documents pareils
Les liaisons SPI et I2C

1) Où est le problème? Chère lectrice, cher lecteur, On est entre nous, alors on va se tutoyer.

Transmissions série et parallèle

Université de La Rochelle. Réseaux TD n 6

Le multiplexage. Sommaire

TD 1 - Transmission en bande de passe

Bus de communication

Projet M1 Année scolaire 2013/2014

VIII- Circuits séquentiels. Mémoires

1. PRESENTATION DU PROJET

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd

GPA770 Microélectronique appliquée Exercices série A

ENREGISTREMENT COMPTABLE DE LA TVA

Description d'une liaison

Les portes logiques. Voici les symboles des trois fonctions de base. Portes AND. Portes OR. Porte NOT

BM Le bus USB 09/05/2013. Le Port USB

module Introduction aux réseaux DHCP et codage Polytech / 5

ELP 304 : Électronique Numérique. Cours 1 Introduction

NanoSense. Protocole Modbus de la sonde Particules P4000. (Version 01F)

IV- Comment fonctionne un ordinateur?

avast! EP: Installer avast! Small Office Administration

Fiche technique CPU 315SN/PN (315-4PN33)

Groupe Eyrolles, 2006, ISBN :

Fiche technique CPU 314SC/DPM (314-6CG13)

I- Définitions des signaux.

Hubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02)

Réplication des données

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

et dépannage de PC Configuration Sophie Lange Guide de formation avec exercices pratiques Préparation à la certification A+

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

Ressource Site EURIDIS

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Documentation Technique du programme HYDRONDE_LN

NFC Near Field Communication

Proteus Design Suite V7 Instruments virtuels

Ordinateurs, Structure et Applications

BeSpoon et l homme Connecté

Les techniques de multiplexage

Chapitre 4 : Les mémoires

Acquisition et conditionnement de l information Les capteurs

Solution Haute Disponibilité pour Linux

TASCAM MX Utilisation du SCSI

Tout savoir sur le matériel informatique

Indicateur de position PI-D2100 Guide de l utilisateur

Master d'informatique 1ère année Réseaux et protocoles. Couche physique

PHP. Performances. Audit et optimisation LAMP. Julien Pauli. Cyril Pierre de Geyer. Guillaume Plessis. Préface d Armel Fauveau

L USB ET SA NORME. Ce document en est à sa première version au 21 septembre 2002

Télécommunications. Plan

SYSTEME DE PALPAGE A TRANSMISSION RADIO ETUDE DU RECEPTEUR (MI16) DOSSIER DE PRESENTATION. Contenu du dossier :

Dossier technique. Présentation du bus DMX et Utilisation des options EL13 / EL14 ERM AUTOMATISMES INDUSTRIELS 1 LE PROTOCOLE DMX 2

Séverine Marien Maxime Ringard. 2 ème année GEII. Régulateur de charge pour station de recharge photovoltaïque

Ordre du jour provisoire pour la COP12

COMMANDER la puissance par MODULATION COMMUNIQUER

La conversion de données : Convertisseur Analogique Numérique (CAN) Convertisseur Numérique Analogique (CNA)

Rapport de projet de fin d études

Machine virtuelle W4M- Galaxy : Guide d'installation

EP A1 (19) (11) EP A1 (12) DEMANDE DE BREVET EUROPEEN. (43) Date de publication: Bulletin 2011/26

Organisation des Ordinateurs

Cours 7 : Programmation d une chaîne d acquisition

TS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S

Groupe Eyrolles, 2004 ISBN :

2.1 Le point mémoire statique Le point mémoire statique est fondé sur le bistable, dessiné de manière différente en Figure 1.

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

B1-4 Administration de réseaux

Matériel & Logiciels (Hardware & Software)

On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)

Mise en service d un routeur cisco

TEPZZ A_T EP A1 (19) (11) EP A1 (12) DEMANDE DE BREVET EUROPEEN. (51) Int Cl.: G07F 7/08 ( ) G06K 19/077 (2006.

Tel : Fax :

Le bus USB. I) Introduction : II) Architecture du bus USB :

PROGRAMMATION D'UN MICROCONTRÔLEUR

NOTIONS DE RESEAUX INFORMATIQUES

IFT1215 Introduction aux systèmes informatiques

Éléments d'architecture des ordinateurs

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

J AUVRAY Systèmes Electroniques TRANSMISSION DES SIGNAUX NUMERIQUES : SIGNAUX EN BANDE DE BASE

Systèmes de transmission

Leçon 1 : Les principaux composants d un ordinateur

Instructions de mise à jour pour V

Conception et réalisation d'une pédale MIDI

LES REGLEMENTS AVEC SOCIEL.NET DERNIERE MISE A JOUR : le 14 juin 2010

Expérience 3 Formats de signalisation binaire

1 DHCP sur Windows 2008 Server Introduction Installation du composant DHCP Autorisation d'un serveur DHCP...

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Cours de Programmation en Langage Synchrone SIGNAL. Bernard HOUSSAIS IRISA. Équipe ESPRESSO

Ordinateurs, Structure et Applications

Informatique Générale

DM 1 : Montre Autoquartz ETA

Codage d information. Codage d information : -Définition-

QUESTION 1 {2 points}

Architectures haute disponibilité avec MySQL. Olivier Olivier DASINI DASINI - -

Manuel d intégration API SOAP SMS ALLMYSMS.COM

Concepts et systèmes de stockage

MACHINE A SOUDER MANUEL D UTILISATION

Parallélisme et Répartition

Conception de circuits numériques et architecture des ordinateurs

Manuel d'utilisation. OctoBUS 64

Transcription:

Le bus I²C WASNER Jérémy 24/03/2014

Table des matières I. Introduction :... 2 II. Spécificité :... 2 III. Codage de l information :... 2 IV. Protocole I2C :... 3 V. L échange entre le maitre et l esclave :... 3 VI. La condition «acquittement et non acquittement» :... 4 VII. La condition «Pause» :... 4 VIII. La condition «Stop» :... 4 IX. L écriture de données :... 4 X. La lecture de données :... 4 XI. La condition de «Restart» :... 5 XII. L adressage des esclaves :... 5 XIII. La notion de multi-maitres :... 5 XIV. Vitesse de transmission des données :... 6 I. Introduction : Dans les années 1982, une véritable «guerre des standards» éclate dans le monde de l électronique. Cette guerre touche tous les représentants du monde des composants, c est à cette occasion, que PHILIPS, un des leaders mondiaux de l électroménager et des composants électroniques, lance le bus I2C (Inter Integrated Circuit). Nota : On peut parfois trouver comme appellation pour ce bus, le bus TWI (Two Wire Interface) Ce bus est destiné, entre autre, à des applications dans le domaine de la domotique. Ce qui le différencie, par rapport à d autre bus comme le bus CAN par exemple, c est sa diversité aux niveaux de ses utilisations. En effet, il existe une multitude de périphériques utilisant ce bus, et même utilisable avec n importe qu elle microcontrôleur, de manière software (à travers de logiciels).

II. Spécificité : C est un bus de type série, synchrone et il fonctionne sur un système bidirectionnel half-duplex, c est à dire que ce bus a besoin de trois fils pour fonctionner, et les informations transitent dans les deux sens sur un même fil mais pas en même temps. Les trois fils sont : - Le SDA (Serial Data Line) : c est la ligne où passe les données dans les deux sens. - Le SCL (Serial Clock Line) : c est la ligne où passe le signal d horloge pour la synchronisation. - La masse : Qui doit être commune à tous les équipements. Ce Bus fonctionne sur une base de maitre/esclave, les données transitent exclusivement à la demande du maitre vers tous les esclaves. III. Codage de l information : L I2C est basé sur le code NRZ (Non Retour à Zéro), c est un codage de type binaire (0 ou 1), qui ne connait pas de valeur intermédiaire que ces deux états. Les valeurs de tensions qui correspondent à 0 ou à 1 sont symétriques par rapport à 0V. On en déduit donc que si on inverse le branchement des deux fils, le sens sera aussi inversé.

Sur le graphique ci-dessus, on voit qu il faut que le niveau High ou Low de la ligne des données(sda) soit à un niveau stable au moment du passage au niveau High sur la ligne d horloge(scl) pour que le bit soit lu. De plus, on peut aussi voir que l état logique 0, représenté par l état LOW sur le graphique correspond à l état dit «dominant» pour la ligne d horloge et que l état logique 1, représenté par l état HIGH correspond à l état dit «récessif». Ce bus utilise des résistances de type «pull up» qui sont des résistances de tirage vers le 5V, c est pourquoi, lorsque le bus n est pas utilisé, SDA et SCL sont aux niveaux hauts. IV. Protocole I2C : Il y a une condition appelée «Start» qui est toujours la condition du début des échanges de données, cela se traduit par le passage de l état logique 1(niveau haut) a l état 0(niveau bas) pour SDA avec le niveau haut pour SCL. La condition «Stop» détermine la fin des échanges avec le passage de SDA de l état 0(niveau bas) à l état logique 1(niveau haut) avec la ligne SCL à 1.

V. L échange entre le maitre et l esclave : Un exemple type d échange entre le maitre et l esclave : Cela commence, comme on l a vu précédemment par un bit de Start, puis l adresse du composant esclave, suivi du bit de lecture/écriture mis à zéro (R/W=0). L esclave répond au maitre par un bit d acquittement(ack) puis peut demander une pause. Une fois la pause terminée, le maitre envoie les données puis reçoit un bit d acquittement ou de non acquittement envoyé par l esclave, il peut demander alors une pause. Le maitre envoie un bit de restart, puis désigne le même esclave avec cette fois le bit d écriture/lecture à 1, le maitre devient alors récepteur et l esclave émetteur. L émetteur envoie alors une série de données, toujours suivi d un bit d acquittement envoyé par le maitre. Une fois le dialogue terminé, le maitre envoie un bit de non acquittement pour terminer l échange ainsi qu un bit de stop à tous les esclaves.

VI. La condition «acquittement et non acquittement» : Schématiquement, voici à quoi ressemble la condition d acquittement ou de non-acquittement : VII. La condition «Pause» : Schématiquement, voici à quoi ressemble la condition de Pause :

VIII. La condition «Stop» : Schématiquement, voici la condition Stop : IX. L écriture de données : Exemple d échange entre maitre et esclave dans le cas d une écriture de données :

Le bit d acquittement mis à 0 signifie que les données ont été correctement reçues, et que l adressage est bon. En cas de problème d adressage ou de problème quelconque, l esclave renvoie le bit d acquittement à 1, le maitre l interprète comme un problème et le plus souvent, met fin au dialogue en envoyant un bit de Stop. X. La lecture de données : Exemple d échange entre maitre et esclave dans le cas d une lecture de données : XI. La condition de «Restart» : Le bus I2C permet une alternance d échange d écriture et de lecture sans pour autant arrêter le dialogue à chaque changement d état. En effet, il existe une condition appelée «Restart». Le cas le plus propice à l utilisation de cette condition, est le cas du dialogue avec une RAM. Le maître commence par

envoyer l'adresse du composant avec le bit R/ W positionné sur écriture. La RAM adressée en esclave renvoie le bit d acquittement (ACK) à 0. Ensuite, le maître transmet l'adresse interne de la case mémoire demandée. Une fois encore, l'esclave répond par ACK = 0. Le maître envoie alors à nouveau une condition de départ (sans passer par une condition d'arrêt), puis de nouveau l'adresse du composant sélectionné, mais en plaçant le bit R/ W sur la position lecture, soit le bit de R/W à 1. L'esclave va répondre par un bit d acquittement (ACK) à 0 et enchaîner par la transmission du contenu de la case mémoire demandée. C'est toujours le maître qui impose l'horloge SCL mais c'est l'esclave, ici la RAM, qui contrôle la ligne SDA. Une fois les 8 bits de données transmis par la RAM, si le maître veut lire le contenu de la case mémoire suivante, il placera le bit ACK à 0. Dans ce cas, la RAM recommence la lecture avec la case mémoire suivante. En revanche, si le maître souhaite en terminer avec la lecture, il placera le bit ACK à 1 et il générera ensuite la condition arrêt. Schématiquement, voici la condition de Restart : XII. L adressage des esclaves : Le bus I2C peut mettre en relation un maitre à plusieurs esclaves. Il définit à qui il va envoyer telle ou telle information. Les esclaves possède tous un adressage différent, c est une adresse sur 8 bits : 7 bits destinés à l adresse et le 8ème est réservé au bit qui désigne l état de lecture ou d écriture(voir R/W schéma cidessus). Si le 8ème bit est à 0, cela veut dire que le maître va envoyer des données, l esclave va donc devoir lire ses données, à l inverse, si le bit est à 1,

cela veut dire que le maitre attend des données et donc que l esclave doit lui en envoyer. Cependant, les esclaves ne peuvent pas prendre toutes les adresses, en effet, il y a certaines adresses qui sont réservées, en voici la liste : -«00000000» : est une adresse utilisée pour s adresser à tous les esclaves. -«0000001X» : est une adresse utilisée pour accéder aux composants CBUS qui est l ancêtre de l I²C. -«0000010X» : réservée pour d autres systèmes de bus. -«0000011X» : réservée pour des utilisations spécifiques. -«00001XXX» : adresse utilisée pour les composants haute-vitesse. -«11111XXX» : réservée pour des utilisations spécifiques. -«11110yzX» : adresse permettant de préciser une adresse sur 10 bits. XIII. La notion de multi-maitres : On a vu précédemment qu il pouvait y avoir plusieurs esclaves, grâce au bus I2C, on peut aussi avoir la présence de plusieurs maitres. Cependant cette notion créée une problématique, pas tant au niveau électrique, car le bus utilise des collecteurs ouverts (résistances Pull-up), mais au niveau de l envoie de données. En effet, un maitre peut prendre la décision de commencer à dialoguer, quand les lignes SDA et SCL sont au niveau repos soit au niveau haut (état logique 1) pendant un temps d au minimum 4.7 µs pour une vitesse en mode standard (voir tableau ci-après). Il y a donc la possibilité que deux maitres prennent la décision au même moment d envoyer des données. C est pourquoi, il est impératif de pouvoir détecter si un maitre est en train d envoyer des données sur le bus pour préserver l intégrité des données qui transitent. Pour éviter ce problème, chaque maitre qui veut prendre le contrôle de la transmission, envoie le bit 0 sur la ligne SDA, puis relit, dans un temps très court après avoir envoyé ce bit, pour pouvoir le comparer avec l état qu il souhaite envoyer.

Si un autre maitre prend la décision de passer aussi la ligne SDA à 0, le résultat sera 0. Il n y a donc pour le moment pas de problème apparent car les deux maitres envoient les mêmes bits sur la même ligne, ils demandent tous les deux la même chose. Chacun des maitres va commencer à envoyer son signal d horloge, sur la ligne SCL, se sera le résultat des deux signaux provenant de chaque maitre par la porte logique «ET», il n y encore pas à ce moment-là de problème. Si les bits envoyer sur la ligne SDA sont les mêmes pour les deux maitres, la transmission se passe normalement, comme s ils étaient seuls à envoyer, mais si les deux maitres envoient des bits différents, alors il y a conflit car la ligne SDA ne peut avoir au même instant «t» la valeur 0 et la valeur 1. Dès lors, les deux maitres perdent le contrôle du bus et passe de l état d émetteur à l état de recepteur. Voici la représentation schématique de plusieurs maitres envoyant des bits sur les deux lignes SDA et SCL : XIV. Vitesse de transmission des données : Ce bus est un bus de type série. Son débit de transfert est donc moins important qu un bus de type parallèle. Ce bus étant synchrone, Il existe

plusieurs vitesses de transfert possibles dont voici un tableau récapitulatif des différentes vitesses : Mode de transfert Mode standard Mode rapide (Fast mode) Mode rapide + Mode Haute-vitesse Mode ultra rapide Vitesse correspondante Inférieur à 100 kbits/s Inférieur à 400 kbits/s Inférieur à 1 Mbits/s Inférieur à 3.4Mbits/s Inférieur à 5 Mbit/s