• Non ci sono risultati.

6.2 Il sottosistema di wake-up a 2.45 GHz

6.2.2 Metodo di risveglio con pin di controllo dell’IMD

1. Attivazione Base Station: la base station viene alimentata; il MAC si attiva e rimane in attesa comandi. L’applicazione deve settare la modalità di monitoraggio di un canale.

2. Il processore IMD attiva il transceiver IMD: il processore che controlla il chip ZL70102 dell’IMD porta a livello alto il pin WU_EN per un periodo superiore agli 1.5ms; il transceiver si attiva e rimane in attesa comandi.

82 3. Invio della notifica a 400 MHz dall‟IMD: l’applicazione dell’IMD deve mettere a punto una serie di sets up del transceiver tra cui scelta del canale e modulazione. La variazione poi del livello di uno specifico flag permette, dopo i settaggi, di attivare il transceiver nell’invio di notifiche a 400 MHz verso la base. Quest’ultima può poi aprire una piena comunicazione.

Di seguito si fornisce un’immagine di tutti gli step (fig.6.6).

Figura 6.6: Rappresentazione schematica dei passi per wake up autonomo dell’IMD

Questa seconda modalità di risveglio può essere utilizzata per segnalare alla base esterna la presenza di emergenze.

6.3 Il MAC

La maggior parte delle funzioni digitali sono amministrate dal MAC (Media Access Controller). Tra queste le principali ad essere gestite sono:

 Frammentazione dei dati

 Correzione di errori e rinvio

83

 CRC (error checking)

 Funzioni connesse con la qualità del link

 Comunicazione seriale sincrona con hardware locale Il MAC si articola su quattro principali sottosistemi

1. Processing di trasmissione: coincide con il buffer di trasmissione che ha una capacità di 64x113bits. Il buffer di trasmissione è una memoria caratterizzata da uno specifico indirizzo cui si accede tramite il bus SPI

2. Processing di ricezione: coincide con il buffer di ricezione dei dati radio; ha la stessa

capienza del buffer di trasmissione. Anche il buffer Rx è una memoria mappata da un indirizzo cui si accede con lettura tramite il buffer SPI

3. Sequencer del controllo di comunicazione: implementa e controlla l’intero protocollo di

comunicazione dello ZL70102

4. Interfaccia di applicazione: il tranceiver ZL70102 si interfaccia all’applicazione hardware dell’utente per mezzo del bus SPI

Di seguito si fornisce uno schema rappresentativo dell’architettura del MAC (fig.6.7):

84

6.3.1 Il protocollo di comunicazione

Il link di comunicazione a 400 MHz usa un protocollo messo a punto dalla Zarlink e pensato per garantire alta efficienza di dialogo viste le applicazioni medicali cui questi chip sono destinati. Il protocollo abbraccia tutta una serie di schemi che, spaziando dal rilevamento di errori e ritrasmissione al controllo della qualità del link garantiscono affidabilità e, svincolano l’applicazione utente dal mantenimento di numerosi settaggi. Come meglio detto in seguito il link di comunicazione appare all’utente come una coppia di buffer (TX/RX) accessibili con semplici operazioni di lettura e scrittura dati tramite il bus SPI. Di seguito si riporta una lista di tutte le azioni attuate in modo automatico dal protocollo:

 Set up automatico di modulazione e risposte di wake-up

 Minimizzazione di collisione delle risposte da più IMD

 Rilevamento e correzione di errori

 Ritrasmissione automatica di blocchi dati in errore

 Controllo automatico del flusso per prevenzione di overflow del buffer

 Flush automatico di vecchi dati

 Facilità nell’invio di messaggi di alta priorità

 Supporto per comandi di emergenza

 Interruzione automatica della comunicazione dopo 5 sec di trasmissione inefficace

 Diagnostica della qualità del link

 Back up di importanti registri dal sottosistema di wake-up

 Calibrazioni

6.4 L‟interfaccia di applicazione

Il chip ZL70102 è stato pensato dal punto di vista hardware come una memory-mapped state machine; l’idea di un’architettura di macchina a stati implica rispetto ad un’architettura CPU/stored- program che le varie funzioni digitali sono costruite nell’hardware e non sono riconfigurabili via software. Quindi il chip ZL70102 può essere programmato da un’applicazione come una periferica a memoria mappata. La memoria in questione è nello specifico articolata in 128 registri di 8bits ciascuno e la maggior parte delle applicazioni prendono vita scrivendo o leggendo i medesimi registri. Anche se i 128 registri sono in termini hardware la stessa cosa hanno proprietà logiche differenti quindi impongono azioni diverse. La memoria nel suo complesso presenta tre tipologie di registri:

85

Bitwise register: contengono bits che hanno funzioni logicamente separate

Byte wide register: la funzione o il significato di questi registri risiede nell’intero byte

Buffer register: per il link a 400 MHz lo ZL70102 ha un byte wide register che si configura come un passaggio al buffer Tx/Rx

I buffer di trasmissione e ricezione del link MICS di comunicazione a 400 MHz sono amministrati internamente e presentati all’applicazione dell’utente come due buffer FIFO (First In First Out). È possibile comunicare con il chip ZL70102 per mezzo dell’interfaccia SPI. Nello specifico caso lo ZL70102 può sostenere soltanto la versione di slave ed un mode 0 (capitolo 3 come riferimento) (fig.6.8).

Figura 6.8: Rappresentazione schematica delle connessioni tra il chip MICS ed il bus SPI di un generico microprocessore

Come già specificato le diverse funzioni digitali supportate dal chip vengono messe in atto scrivendo o leggendo certi registri.

6.4.1 Scrittura di un byte

Per scrivere 8 bits di dati in un certo registro è necessario prima identificarlo. Per fare questo si devono inviare nella linea di MOSI i 7 bits che identificano il suo indirizzo [A6:A0] preceduti da uno zero (A7) (ad indicare la volontà di scrivere in quel registro). Il passo successivo consiste nell’inviare sempre nella linea di MOSI gli 8 bits che identificano il dato (D7:D0). Tutti i bits vengono inviati e campionati a partire dal più significativo. I bits inviati devono essere temporizzati

86 sul segnale di clock fornito dal master e campionati (è ammesso solo il mode 0) sul fronte positivo dello stesso (fig.6.9).

Figura 6.9: Rappresentazione schematica della procedura di scrittura di un byte

6.4.2 Lettura di un byte

Nel caso si vogliano leggere 8 bits di dati da un registro è necessario prima inviare sulla linea di mosi i sette bits identificativi dell’indirizzo preceduti da un bit a livello alto per segnalare la lettura; quindi si vanno a leggere sulla linea di miso gli 8 bits che rappresentano il dato (fig.6.10).

Figura 6.10: Rappresentazione schematica della procedura di lettura di un byte

6.4.3 Lettura e scrittura nel buffer Tx/Rx

I dati che vengono inviati o ricevuti sfruttando il link a 400 MHz sono articolati in pacchetti (fig.6.11). Ciascun pacchetto è organizzato da un numero di blocchi settabile dall’utente. In ciascun blocco è presente un numero di bytes anch’esso settabile. Un pacchetto può contenere al minimo un

87 blocco di dati (oltre ad un preambolo ed un header) ed un blocco al minimo deve essere composto da due bytes.

Figura 6.11: Rappresentazione schematica della composizione di un pacchetto

I dati quindi perché possano essere inviati con il link wireless devono essere scritti nel buffer di trasmissione in interi blocchi; la stessa cosa vale per l’operazione di lettura. In riferimento a quanto detto, se si vogliono scrivere dati nel buffer di trasmissione è necessario far seguire la scrittura dell’indirizzo del registro che fa da gateway al buffer stesso da un numero di scritture del byte che rappresenta il dato pari ad un multiplo intero della dimensione del blocco. Nel caso invece si vogliano leggere dati dal buffer di ricezione, la scrittura dell’indirizzo dello stesso deve essere seguita da un numero di manovre di lettura pari ad un multiplo intero della dimensione del blocco.

Documenti correlati