Partiamo da alcune semplici considerazioni….
La radio per decenni è stata ed è tuttora uno dei principali metodi di interconnessione di dispositivi distribuiti (mobili) nello spazio.
La caratteristica essenziale del mezzo di comunicazione radio è che non ha bisogno di dispositivi fisici di interconnessione dei punti che devono comunicare ( gli “end points”), ma sfrutta le caratteristiche intrinseche dello spazio per garantire o cercare di garantire la comunicazione.
Come tale è un sistema molto affidabile e di basso costo di utilizzo, purchè se ne accettino le peculiarità: in primis il fatto che le caratteristiche del canale di comunicazione sono ampiamente variabili e abbastanza poco deterministiche ( da un certo punto di vista): tutti sappiamo che la propagazione delle onde radio dipende ampiamente da una serie di fattori che richiedono una oculata scelta dei parametri di comunicazione in funzione delle condizioni contingenti.
Uno dei temi da sempre molto sentiti nell’ambito del traffico aereo e marittimo è stato quello della sicurezza, inteso in varie sfumature e principalmente a causa del fatto che , diversamente dal traffico terrestre, non esistono “strade” pre-tracciate e ben delimitate, ma ci si deve affidare a metodi abbastanza poco “tangibili” per evitare di trovarsi fuori strada o addirittura in rotta di collisione con altri mezzi….
Il sistema AIS ( Automatic Identification System ) è un sistema che sfrutta la radio e che è stato inventato nel corso agli anni 90 del secolo scorso per venire incontro alle esigenze di sicurezza della navigazione marittima, sfruttando la disponibilità da un lato di nuovi ( per l’epoca) ed economici sistemi di determinazione della posizione ( quali il GPS ) e dall’altro di nuove tecniche di comunicazione digitale che consentivano di automatizzare e integrare una serie di informazioni senza intervento umano e in maniera molto economica e in modo da fornire un valido strumento multifunzionale da usare per varie esigenze in ambito controllo del traffico marittimo.
Il concetto di base del sistema è molto semplice: ormai a bordo di ogni natante sono disponibili tutta una serie di dati che forniscono una fotografia “automatica” e abbastanza completa dello “stato” del natante; ad esempio esistono:
- dati di posizionamento forniti dal ricevitore GPS
- dati di navigazione (direzione) forniti dalla girobussola
- dati dinamici forniti da vari sistemi di bordo (velocità, etc.)
- dato amministrativi ( es. nome e identificazione del natante, destinazione, etc.)
- etc. etc.
Tutti questi dati sono disponibili peraltro in maniera abbastanza standardizzata in quanto a formato fisico e metodi di interpretazione: la chiave è il sistema NMEA che specifica appunto che tutti i sistemi di bordo devono “esprimersi” con delle frasi (“sentenze”) di formato standard in modo da consentire agevolmente a tutti di decifrare in maniera precisa e non equivoca il contenuto informativo che la frase intende portare.
Da un punto di vista fisico il sistema NMEA specifica un modo di trasmissione delle “sentenze” di tipo seriale con una struttura a pacchetti: ovvero ogni “sentenza” possiede una testata che specifica il tipo di sentenza a cui fa seguito un corpo del messaggio che dipende dal tipo di messaggio e un codice di chiusura che rappresenta un codice di controllo per capire se la sentenza sia stata ricevuta correttamente.
La figura seguente rappresenta in maniera sintetica la struttura dei sistemi di bordo di un moderno natante (per approfondimenti)
La figura seguente rappresenta invece la struttura delle “sentenze NMEA” con cui i vari sistemi comunicano tra loro (per approfondimenti):
Grazie al fatto che a bordo di un natante sono disponibili tutti questi dati in maniera standardizzata, è stato abbastanza facile creare un sistema che consentisse di “condividere” questi dati o un sottinsieme degli stessi, con tutti coloro che potessero avere interesse ad usare questi dati, sfruttando il mezzo di comunicazione radio.
Il sistema AIS in effetti consente di “trasmettere” via radio un insieme di sentenze NMEA riguardanti un natante in modo che altri natanti o dispositivi quali ad es. stazioni di terra, possano ricevere questi dati utilizzandoli alla meglio: gli scopi principali a cui il sistema mirava erano principalmente la sicurezza della navigazione e il controllo del traffico marittimo; nel corso degli anni a questi utilizzi se ne sono aggiunti altri per cui il sistema AIS è oggi molto utilizzato ed è addirittura obbligatorio come dotazione di bordo per quasi tutti i natanti. Il link seguente riporta per gli eventuali interessati la specifica completa ITU-R del sistema.
Ovviamente il sistema doveva essere ampiamente automatico e non doveva richiedere alcun intervento umano per il suo funzionamento: il sistema di trasmissione per inviare via radio queste informazioni è stato scelto in modo che si adattasse al formato pacchettizzato dei dati disponibili a bordo.
Essendo il numero di dispositivi attivi in una certa area geografica estremamente variabile bisognava evitare quanto più possibile che si creassero situazioni di interferenza.
Il sistema scelto è stato quello di usare un solo canale radio ( in realtà duplicato) che venisse “impegnato” da ogni singolo natante per il tempo strettamente necessario a inviare i suoi dati: la modalità di utilizzo del canale è stata cioè del tipo TDMA ( Time Domain Multiple Access ) con delle specificità che evitassero al massimo la possibilità di “collisione” ovvero che ci possano essere più natanti che tentano di trasmettere simultaneamente. Gli accorgimenti usati per minimizzare la probabilità di trasmissione simultanea hanno portato a definire due modalità principali di accesso al canale radio (con una serie di sottocasi) i cui dettagli sono approfondibili al link seguente.
Concettualmente il sistema scelto per regolare l’accesso al canale di trasmissione è abbastanza semplice: esiste una base di riferimento temporale (sincronizzata con il GPS) che consente di individuare una “trama” di durata esattamente 60 secondi costituita da 2250 “time slots” ovvero intervalli di tempo ognuno dei quali disponibile ad un singolo natante alla volta per trasmettere una “sentenza NMEA”.
Ogni “time slot” dura esattamente 26,67 millisecondi e contiene la modulazione di una sequenza di esattamente 256 bits trasmessi come toni con un sistema a spostamento di frequenza senza discontinuità di fase che si chiama GMSK/FM (Gaussian Minimum Shift Keying ) : in questo sistema il flusso dei dati viene usato per creare un segnale modulato a spostamento di frequenza usando due toni di valore tale che la differenza di frequenza sia esattamente la metà del bit rate dei dati: facendo in questo modo si ottiene la massima probabilità di discriminare i due toni in presenza di rumore.
Successivamente il segnale risultante da questo processo di pre-modulazione viene usato per modulare in frequenza la portante radio con un indice di modulazione 0,5; per sagomare lo spettro radio e cercare di contenere al massimo l’energia del segnale modulato in una banda di 25 Khz prima della pre-modulazione a due toni il segnale dati viene fatto passare attraverso un filtro particolare ( filtro gaussiano) il cui effetto è appunto quello di rendere lo spettro risultante del segnale a livello radio ottimale in quanto a distribuzione dell’energia nella banda occupata dal segnale.
Volendo approfondire gli aspetti di questo tipo di modulazione molto interessante è possibile visitare il link seguente che tratta in maniera molto esaustiva il tema e fa capire come sia possibile realizzare il tipo di modulazione/demodulazione usando tecniche di tipo SDR (Software Defined Radio).
La scelta di questo sistema di modulazione abbastanza sofisticato è derivata dalla necessità di far sì che il ricevitore generico si possa agevolmente e rapidamente sincronizzare con il trasmettitore entro un intervallo di tempo di pochi millisecondi in modo da poter decodificare il messaggio e verificarne l’integrità; il sistema inoltre consente di generare un segnale radio che occupa un canale di larghezza massima 25Khz in modo da limitare le interferenze reciproche con altri tipi di traffici radio.
La figura seguente rappresenta quanto sopra descritto:
Come si può notare esistono due canali dedicati al servizio e ogni natante può scegliere di trasmettere su uno dei due canali inviando dei messaggi di lunghezza pari a 256 bits alla volta; ovviamente ogni natante può inviare successivamente tanti messaggi quanti ne necessita di inviare.
A livello radio le cose possono essere visualizzate come nella seguente figura
Come si nota esiste una fase iniziale (“training sequence”) nella quale il ricevitore si sincronizza con la sequenza dei dati; segue quindi un carattere di inizio dati (“Start data”) quindi seguono i dati; successivamente viene ricevuto un campo FCS (“Frame Check Sequence”) che rappresenta una carattere di controllo sulla sequenza ricevuta e permette di capire se la sequenza sia stata correttamente ricevuta; infine abbiamo un campo di fine messaggio (“End flag”) che chiude la trasmissione; le due code iniziale e finale di 1 millisec servono a garantire la partenza e lo stop della trasmissione da parte del trasmettitore.
La figura seguente fornisce i dettagli delle varie fasi di trasmissione:
Come si può notare il contenuto netto massimo in termini di bit trasmettibili per ogni messaggio sono 168 ovvero 21 bytes. Ne deriva che se il trasmettitore vuole inviare delle “sentenze” NMEA più lunghe dovrà spezzettare la trasmissione usando più slot successivi per trasmettere l’intera sentenza.
A livello radio si usano due canali simmetrici rispetto alla frequenza di 162,00 Mhz, con le seguenti caratteristiche di trasmissione:
- 161.975MHz, called Channel A, also AIS1 or Channel 87B
- 162.025MHz, called Channel B, also AIS2 or Channel 88B.
La potenza massima trasmessa è 12,5 W; il tipo di modulazione è GMSK/FM a 9,6Kbit/sec; la trama base consta di 2250 slots di 256 bit cadauno e dura esattamente 60 secondi.
Se si prova a sintonizzarsi sulla frequenza di 162 Mhz si notano due segnali alla destra e sinistra della frequenza centrale e distanziati di 25 Khz; sono i due canali AIS ognuno dei quali ha a sua volta una larghezza totale di 25 Khz rispetto alla sua frequenza nominale; i due canali si riconoscono facilmente in un diagramma di tipo “waterfall” in quanto si notano dei burst molto stretti che si susseguono casualmente.
Ogni burst rappresenta uno slot trasmesso da un natante; si può notare come ogni burst ha un livello di intensità del segnale diverso proprio perchè ogni slot trasmesso può arrivare da un natante più o meno distante.
Se si ingrandisse la scala dei tempi si potrebbe anche notare la struttura di un singolo “time slot”; la figura seguente è un esempio di time slot
Il segnale di ognuno dei due canali per essere demodulato richiede ovviamente un demodulatore in grado (per ognuno dei due canali) di:
- sincronizzarsi sulla trama AIS del canale
- delimitare ed estrarre i singoli time slots
- demodulare ogni time slot identificando le sue componenti e verificando che il FCS calcolato sui dati ricevuti sia identico a quello recuperato dal messaggio ricevuto
- ricomporre le sequenze NMEA trasmessa eventualmente riassemblando più time slots provenienti dalla stessa sorgente
- rendere disponibili le sequenze NMEA recuperate in formato standard, ovvero come sequenze di caratteri ASCII raggruppati in sequenze NMEA.
Una tipica sequenza prodotta dal demodulatore AIS apparirà simile alla figura seguente:
Come si può notare esiste un campo “raw data” che appare incomprensibile; esso è in realtà il contenuto informativo del messaggio…. per decifrare il contenuto di questo campo è necessario scoprire il “tipo” della “sentenza” e sulla base di tale parametro decodificare ulteriormente il campo “raw data”.
A valle della decodifica del contenuto informativo di ogni sequenza AIS si otterranno una serie di dati sullo stato del natante quali ad es. la posizione, la velocità, etc. etc.
Esistono 27 tipi diversi di “messaggi” AIS: il link seguente riporta la lista completa dei tipi di messaggi.
A seconda del tipo di messaggio, il messaggio conterrà, come detto sopra, una serie di informazioni relative al natante che invia i l messaggio: il seguente link riporta la lista completa delle possibili informazioni contenute nei messaggi AIS.
Ogni natante emetterà i suoi messaggi AIS con una frequenza temporale che dipende dal tipo di informazioni da distribuire, dallo stato del natante in termini di navigazione e dalla tipologia di natante; la figura seguente riporta i dati di dettaglio degli intervalli di tempo tra reports successivi.
Come si può notare esistono certe tipologie di messaggi che sono estremamente più frequenti di altre; la figura seguente riporta una classica distribuzione statistica dei tipi di messaggi più frequenti:
I messaggi di tipo 1,2,3 sono quelli che riportano la posizione del natante e come si vede sono in assoluto i messaggi più frequentemente trasmessi.
In genere per decodificare il contenuto delle sentenze NMEA emessa da un demodulatore AIS si usa un programma SW che, in base al tipo di sentenza, estrae e rende facilmente leggibili i dati contenuti in ogni sentenza.
L’uscita di un tale programma si presenta quindi molto “user friendly”; la figura seguente è un esempio di sentenze NMEA di uscita del decodificatore AIS e delle sequenze prodotte dal tool che decodifica del contenuto delle sentenze stesse sulla base del tipo di sentenza.
Come si può notare la funzione del decodificatore è quella di mettere in chiaro il traffico prodotto da ogni natante, eventualmente utilizzando più sentenze NMEA AIS per assemblare un insieme di informazioni facilmente leggibili; la figura seguente fornisce un esempio dell’insieme completo di informazioni che un decodificatore riesce a collezionare e tenere aggiornate relativamente ad un natante:
I dati resi disponibili dal demodulatore AIS ovviamente possono essere usati per vari scopi; nella seconda parte di questo articolo vedremo alcuni usi tipici di questi dati.
Riguardo al formato fisico dei dati che rappresentano i messaggi AIS esistono varie possibilità:
- interfaccia seriale RS232 che trasporta le sequenze AIS come dati di tipo seriale
- interfaccia di rete ethernet; in questo caso i due dispositivi che si interfacciano si scambiano le sequenze AIS sotto forma di pacchetti di dati trasportati secondo il protocollo IP sfruttando o la modalità UDP in modo punto-punto o la modalità TCP in modalità client-server
- interfaccia di tipo SW: è questo il caso di due “programmi SW ” che si scambiano i dati AIS sotto forma di pacchetti di dati sfruttando delle modalità di tipo API ( Application Programming Interface).
Un punto interessante riguarda la struttura di un trasmettitore e di un ricevitore AIS; in entrambi i casi si possono individuare due parti abbastanza separabili: la parte di preparazione dei dati da trasmettere/ricevere e la parte a radio-frequenza.
La figura seguente evidenzia un esempio di schema funzionale di un RTX AIS.
Si nota che esistono due ricevitori indipendenti per i due canali AIS e un unico trasmettitore che alterna la sua attività sui due canali del sistema; i vari strati orizzontali del diagramma rappresentano le varie fasi del processo di preparazione dei dati da trasmettere/ricevere secondo quanto precedentemente illustrato ( anche se solo in maniera concettuale e approssimata).
Nelle realizzazioni più tradizionali e in quelle destinate all’uso commerciale le due parti sia di RX che di TX sono in genere integrate in un unico dispositivo fisico che spesso si trova anche integrato con un display utilizzato per mostrare graficamente le posizioni dei natanti nell’area di interesse.
Nell’uso amatoriale ed in particolare per quanto può riguardare l’utilizzo da parte dei radioamatori esistono diverse opzioni percorribili; ovviamente in questo caso si parla unicamente di ricezione.
La soluzione più tradizionale consiste in un ricevitore ad hoc che implementa sia la parte di radiofrequenza, che la parte di demodulazione del segnale AIS: in questo caso il dispositivo si presenta con una uscita seriale sulla quale si hanno a disposizione le sequenze NMEA demodulate.
Volendo è anche possibile utilizzare un normale ricevitore per la banda marina in FM (NarrowBand) sintonizzato su uno dei due canali AIS; in questo caso bisogna demodulare l’uscita audio del RX con un opportuno demodulatore al quale viene inviato l’audio del RX; esistono dei programmi SW che girano su un PC e che sfruttano l’ingresso audio per collegarsi al RX per poi demodulare il segnale audio estraendo le sequenze AIS.
L’approccio più moderno alla ricezione dei segnali AIS è quello che utilizza le tecniche SDR (SW Defined Radio) per realizzare almeno tutta la parte di ricezione a radiofrequenza; in questo caso esistono dei SW che, girando su PC con sistema operativo Windows o Linux, permettono di effettuare la demodulazione dei segnali AIS anche simultaneamente su entrami i canali del sistema.
Nelle implementazioni SDR o che sfruttando l’ingresso audio di un PC, per rendere disponibili le sequenze AIS demodulate si utilizzano quasi sempre le modalità di interfacciamento tramite rete in modalità IP ( UDP o TCP).
Utilizzando l’approccio SDR è oggi possibile iniziare a sperimentare con l’AIS con una spesa di poche decine di €; con una spesa leggermente superiore è possibile realizzare dei sistemi di ricezione sostanzialmente equivalenti o addirittura più performanti dei tradizionali ricevitori dedicati dal costo significativamente maggiore.
Ovviamente come in tutti i sistemi radio l’antenna gioca un ruolo essenziale; se ci si limita a considerare l’uso come radioamatori ovviamente potranno esistere numerose soluzioni di antenna che a seconda dell’esposizione geografica del proprio sito di ricezione possono eventualmente contribuire a migliorare il range di ricezione.
Nella seconda parte di questo articolo tratteremo anche del range di ricezione e vedremo come l’AIS può rappresentare un interessante strumento per lo studio della propagazione alle frequenze VHF, facilmente traslabile alla nostra banda dei 144 Mhz.