xref: /linux/Documentation/translations/it_IT/i2c/summary.rst (revision 7f71507851fc7764b36a3221839607d3a45c2025)
1==========================
2Introduzione a I2C e SMBus
3==========================
4
5I²C (letteralmente "I al quadrato C" e scritto I2C nella documentazione del
6kernel) è un protocollo sviluppato da Philips. É un protocollo a 2 fili (a
7velocità variabile, solitamente fino a 400KHz, e in modalità alta velocità fino
8a 5 MHz). Questo protocollo offre un bus a basso costo per collegare dispositivi
9di vario genere a cui si accede sporadicamente e utilizzando poca banda. I2C è
10ampiamente usato nei sistemi integrati. Alcuni sistemi usano varianti che non
11rispettano i requisiti originali, per cui non sono indicati come I2C, ma hanno
12nomi diversi, per esempio TWI (Interfaccia a due fili), IIC.
13
14L'ultima specifica ufficiale I2C è la `"Specifica I2C-bus e manuale utente"
15(UM10204) <https://www.nxp.com/docs/en/user-guide/UM10204.pdf>`_ pubblicata da
16NXP Semiconductors, al momento della scrittura si tratta della versione 7
17
18SMBus (Bus per la gestione del sistema) si basa sul protocollo I2C ed è
19principalmente un sottoinsieme di protocolli e segnali I2C. Molti dispositivi
20I2C funzioneranno su SMBus, ma alcuni protocolli SMBus aggiungono semantica
21oltre quanto richiesto da I2C. Le moderne schede madri dei PC si affidano a
22SMBus. I più comuni dispositivi collegati tramite SMBus sono moduli RAM
23configurati utilizzando EEPROM I2C, e circuiti integrati di monitoraggio
24hardware.
25
26Poiché SMBus è principalmente un sottoinsieme del bus I2C, possiamo farne uso su
27molti sistemi I2C. Ci sono però sistemi che non soddisfano i vincoli elettrici
28sia di SMBus che di I2C; e altri che non possono implementare tutta la semantica
29o messaggi comuni del protocollo SMBus.
30
31
32Terminologia
33============
34
35Il bus I2C connette uno o più circuiti integrati controllori a dei dispositivi.
36
37.. kernel-figure::  ../../../i2c/i2c_bus.svg
38   :alt:    Un semplice bus I2C con un controllore e 3 dispositivi
39
40   Un semplice Bus I2C
41
42Un circuito integrato **controllore** (*controller*) è un nodo che inizia le
43comunicazioni con i dispositivi (*targets*). Nell'implementazione del kernel
44Linux è chiamato **adattatore** o bus. I driver degli adattatori si trovano
45nella sottocartella ``drivers/i2c/busses/``.
46
47Un **algoritmo** contiene codice generico che può essere utilizzato per
48implementare una intera classe di adattatori I2C. Ciascun driver dell'
49adattatore specifico dipende da un driver dell'algoritmo nella sottocartella
50``drivers/i2c/algos/`` o include la propria implementazione.
51
52Un circuito integrato **dispositivo** è un nodo che risponde alle comunicazioni
53quando indirizzato dal controllore. In Linux è chiamato **client**. Nonostante i
54dispositivi siano circuiti integrati esterni al sistema, Linux può agire come
55dispositivo (se l'hardware lo permette) e rispondere alla richieste di altri
56controllori sul bus. Questo verrà chiamato **dispositivo locale** (*local
57target*). Negli altri casi si parla di **dispositivo remoto** (*remote target*).
58
59I driver dei dispositivi sono contenuti in una cartella specifica per la
60funzionalità che forniscono, ad esempio ``drivers/media/gpio/`` per espansori
61GPIO e ``drivers/media/i2c/`` per circuiti integrati relativi ai video.
62
63Per la configurazione di esempio in figura, avrai bisogno di un driver per il
64tuo adattatore I2C e driver per i tuoi dispositivi I2C (solitamente un driver
65per ciascuno dispositivo).
66
67Sinonimi
68--------
69
70Come menzionato precedentemente, per ragioni storiche l'implementazione I2C del
71kernel Linux usa "adatattore" (*adapter*) per i controllori e "client" per i
72dispositivi. Un certo numero di strutture dati usano questi sinonimi nei loro
73nomi. Dunque, durante le discussioni riguardanti l'implementazione dovrete
74essere a coscienza anche di questi termini. Tuttavia si preferiscono i termini
75ufficiali.
76
77Terminologia obsoleta
78---------------------
79
80Nelle prime specifiche di I2C, il controllore veniva chiamato "master" ed i
81dispositivi "slave". Questi termini sono stati resi obsoleti con la versione 7
82della specifica. Inoltre, il loro uso viene scoraggiato dal codice di condotta
83del kernel Linux. Tuttavia, potreste ancora trovare questi termini in pagine non
84aggiornate. In generale si cerca di usare i termini controllore e dispositivo.
85