GNU/Linux >> Tutoriels Linux >  >> Linux

Qu'est-ce que I2C (Inter-Integrated-Circuit) ?

Audience cible

Cet article suppose que le lecteur est familiarisé avec les circuits électroniques de base et la terminologie.

Présentation

Le but de cet article est de familiariser le lecteur avec les bases du bus de communication I2C, y compris comment il est configuré, ses propriétés physiques, et où et pourquoi il est souvent utilisé.


.

I2C

I2C se prononce habituellement « I-two-C », bien qu'il soit aussi parfois écrit comme IIC (et prononcé « I-I-C ») ou IC (prononcé « I-squared-C »). L'acronyme signifie Inter-Integrated-Circuit. Il s'agit d'un type de bus informatique série et de protocole de communication qui a été introduit pour la première fois sur le marché par Philips Semiconductor en 1982.

I2C est un moyen de permettre à plusieurs appareils électroniques (le plus souvent des circuits intégrés périphériques à faible vitesse) de communiquer entre eux sur une seule paire de fils. Ces fils sont également appelés lignes de données ou bus. Le premier de ces bus est la ligne de données et s'appelle le SDA (S série DA ta) ligne, et l'autre bus est l'horloge, ou SCL (S série CL ock). Étant donné que tous les appareils de n'importe quel circuit I2C sont reliés à ces deux lignes pour communiquer, la plupart des appareils compatibles I2C ont des broches étiquetées SDA et SCL, ainsi que des broches VIN et GND pour les connexions positives et à la terre.
.

Schéma I2C typique / sous licence CC BY-SA 3.0

.
Les bus d'horloge et de données sont des lignes à drain ouvert. Une résistance doit être connectée entre chaque ligne et l'alimentation en tension positive du circuit (également appelée Vcc) pour que le bus fonctionne correctement. La taille de ces résistances peut varier, de 1 kΩ jusqu'à 47 kΩ, mais elles doivent être présentes entre le bus et la tension HAUTE du système. S'ils ne sont pas présents, toutes les lignes seront tirées vers le bas et le bus I2C ne fonctionnera pas. Heureusement, une seule paire de résistances (une pour chaque ligne) est nécessaire pour l'ensemble du système, et non une paire pour chaque appareil, ce qui pourrait rapidement devenir compliqué avec de nombreux appareils.

Un certain nombre de périphériques (également appelés nœuds) peuvent être connectés à ces bus. En fait, le nombre d'appareils qui peuvent pratiquement être connectés à n'importe quel circuit I2C n'est normalement limité que par l'espace, la capacité inhérente des lignes et les adresses des appareils connectés. La plupart des experts s'accordent à dire que cette limite se situe autour de 1 008 appareils.

Il existe deux types d'appareils dans les communications I2C :les maîtres et les esclaves. Dans la plupart des implémentations du protocole, un périphérique maître est connecté à de nombreux esclaves. Il est possible que plusieurs maîtres communiquent avec divers appareils esclaves ainsi qu'avec d'autres maîtres, mais cette forme est moins courante et sort un peu du cadre de cette introduction. De nombreux appareils I2C peuvent être configurés en tant que maître ou esclave, en fonction des résultats système souhaités. Le nœud maître est le seul appareil qui contrôle la ligne d'horloge (SCL) et est le seul appareil qui peut initier un transfert de données. Les nœuds esclaves sont limités à écouter et à répondre aux appels du nœud maître. Chaque nœud, y compris le maître, a une adresse unique (normalement 7 bits) qui l'identifie sur le réseau I2C. Dans certains cas, l'adresse peut avoir une longueur de 10 bits, permettant plus de 128 appareils différents, mais ce n'est pas une configuration normale.

Pendant le fonctionnement d'un système I2C, le nœud maître envoie des commandes et des requêtes sur la ligne de données. Ces signaux ont une longueur de 8 bits, ne commencent que lorsque la ligne d'horloge est HAUTE, et sont démarrés avec une séquence de « démarrage » particulière et se terminent avec une séquence « d'arrêt » particulière. La séquence de démarrage alerte tous les nœuds esclaves connectés qu'une demande de transfert de données est imminente. La prochaine séquence que le maître envoie est l'adresse de l'esclave avec lequel il veut communiquer. Le nœud esclave nommé répond alors au maître, en commençant par le signal d'horloge HIGH suivant, et les autres esclaves recommencent à écouter leur adresse à appeler.

Le huitième bit envoyé avec la commande, après l'adresse de périphérique 7 bits, est un simple bit de lecture/écriture. Il indique au périphérique adressé si le périphérique maître lira ou écrira sur celui-ci. Cela permet à l'appareil récepteur de préparer les données à envoyer ou de se préparer à recevoir des données le long de la ligne SDA au prochain signal d'horloge HIGH.

La vitesse d'horloge (et les transferts de signaux associés) sur la plupart des circuits I2C se situe normalement quelque part entre les communications série et les vitesses SPI, entre 100 kHz et 400 kHz. I2C est couramment utilisé dans les systèmes où la simplicité, le faible coût et la faible consommation d'énergie sont plus importants que la vitesse. Certaines de ces applications incluent des convertisseurs analogique-numérique, des écrans LCD, des horloges en temps réel et de nombreux capteurs différents tels que des baromètres, des boussoles et même des récepteurs GPS.

I2C est un protocole de communication très utile, bien qu'il ne soit applicable qu'à un petit nombre d'applications. Il est idéal pour les petits réglages à faible consommation d'énergie et, par conséquent, a trouvé un public parmi de nombreux amateurs, qui l'utilisent pour interfacer des capteurs et des commandes avec des appareils intégrés et des microcontrôleurs tels que l'Arduino et le Raspberry Pi. Deux des broches GPIO du Pi sont préréglées pour s'interfacer avec les appareils utilisant le protocole, et la bibliothèque de fils Arduino permet les communications avec les appareils I2C. Apprendre et utiliser I2C peut considérablement étendre la boîte à outils d'un amateur lorsqu'il s'agit de construire des projets.

Atlantique.Net

Atlantic.net propose un hébergement VPS ainsi que des services d'hébergement gérés qui incluent une couche de services gérés essentiels à vos forfaits d'hébergement. Contactez-nous dès aujourd'hui pour plus d'informations.


Linux
  1. Qu'est-ce qu'un utilisateur Linux ?

  2. Que fait "lc_all=c" ?

  3. Qu'est-ce que c'est ?

  4. Qu'est-ce que Echo $ ? Faire??

  5. Qu'est-ce qu'un certificat SSL ?

Qu'est-ce que SFTP ?

Comment trouver les périphériques connectés au réseau sous Linux

Qu'est-ce qui arrive dans GNOME 42 ?

Qu'est-ce que l'analphabétisme numérique ?

Qu'est-ce que Termux sur Android ?

Qu'est-ce qu'un fichier .sh ?