LA MINI PORTA DELL’AVAMBRACCIO
Come abbiamo detto, una delle due schede allegate a questo fascicolo
comprende una mini porta, di forma identica a quella dei connettori mini
USB, ma che non è compatibile con tale standard.
Tale mini porta presenta cinque socket, che consentono la trasmissione di
dati tra il tool eventualmente collegato e al
modulo Arms.
I cinque socket servono per l’alimentazione del tool e per lo scambio di
informazioni.
Ciascuno di essi ha una funzione precisa. Facendo sempre
riferimento all’immagine qui a destra, il socket 1
socket |
Funzione |
1 |
fornisce 6 V (in caso di batterie
ricaricabili) o 7,5 V (in caso di batterie usa e getta), pari al
voltaggio usato per l’alimentazione dei motori di I-D01 |
2 |
comunicazione di tipo I2C, SDA
trasmissione dati |
3 |
comunicazione di tipo I2C, SCL
sincronizzazione |
4 |
fornisce 3 V (alimentazione
dell’elettronica di I-D01) |
5 |
fornisce il riferimento di voltaggio
pari a 0 V |
|
Il
bus I2C
Il bus I2C è composto da 2 linee chiamate SDA (dati) e SCL (clock), entrambe del tipo a collettore aperto.
La linea SDA e' di tipo bidirezionale, e permette lo scambio dei dati tra i dispositivi I2C collegati, mentre la linea SCL e' unidirezionale e serve come clock per sincronizzare la comunicazione.
Questo bus è stato ideato dalla Philips ed è utilizzato da moltissimi dispositivi usati anche in apparecchi commerciali. Molto comuni sono ad esempio le EEPROM della famiglia 24Cxx.
La comunicazione con un dispositivo I2C è caratterizzata da alcune fasi che sono sempre uguali per qualsiasi dispositivo.
L'inizio e la fine della comunicazione I2C vengono determinati inviando nel bus gli impulsi di START e di STOP ottenuti mediante una particolare sequenza di stati logici nelle linee SDA e SCL.
Gli stati START e STOP
In condizioni di riposo le linee SDA e SCL sono mantenute a livello logico 1.
La condizione di START si ha quando la linea SDA passa da 1 a 0 mentre SCL si mantiene a livello 1. La condizione di STOP invece si ha quando la linea SDA passa da 0 a 1 mentre SCL si trova a livello 1.
Dopo aver inviato l'impulso di start, il livello logico della linea SDA viene ritenuto valido e viene letto dal dispositivo I2C quando SCL
è a livello 1, mentre quando SCL e' a livello 0 ogni cambiamento dello stato di SDA
è ininfluente.
Trasmissione dei dati nel bus
Dopo l'impulso di start, ogni dato da inviare o ricevere dal bus I2C è composto da 8 bit
(cioè un byte), più un nono bit di ACK utile per controllare che la
trasmissione ha avuto buon esito. Ecco un esempio di trasmissione di 2 bytes:
Come si può vedere, va inviato prima il bit
più significativo MSB.
In corrispondenza di ogni bit va inviato un impulso di clock sulla linea SCL.
Il bit ACK ha sempre un livello 0 e viene generato dal dispositivo che ha ricevuto il dato.
|