L'interfacciamento, questo (non troppo) conosciuto

Da "Micro & Personal Computer" - Rubrica "PC & Radio"- Marzo 1994

L'interfacciamento, questo (non troppo) conosciuto

Cosa vuol dire questa parola, spesso usata ma non sempre pienamente compresa? Può voler dire tutto; ma nel caso del computer e la radio significa far parlare tra loro due mondi completamente diversi.

di Mario Chisari

Un paio di telefonate ricevute di lettori appassionati ma confusi mi hanno convinto ad affrontare in modo organico il problema dell'interfacciamento del computer alla radio. La cosa è particolarmente interessante nel momento in cui ci occupiamo della trasmissione delle immagini, perché in questa applicazione la qualità e le caratteristiche dell'interfaccia assumono un'importanza particolare.

DUE MONDI

Vediamo dunque cosa significa in pratica questa parola, interfacciamento, un po' misteriosa, ma che in realtà come vedremo non lo è poi tanto.

Essa trae vita dall'esistenza di due mondi diversi che, come ormai quasi tutti hanno almeno sentito dire, prendono il nome di digitale e di analogico.

Il mondo digitale è un mondo matematico, pulito, ideale, in cui esistono solo il bianco ed il nero; quello analogico è invece rumoroso ed aleatorio, sempre esposto ai disturbi ed a fenomeni termici, sempre diversi tra loro; praticamente il mondo reale. Inutile dire che il "vero" digitale non esiste; si tratta sempre di approssimazioni, perfino all'interno dei nostri circuiti "digitali", e ce ne accorgiamo drammaticamente quando un disturbo troppo forte manda in tilt il computer o quando un disco comincia a sfornare errori di lettura.

Quando parliamo di computer e radio quindi stiamo già sottointendendo una serie di problemi molto sentiti, che possono essere espressi in termini pratici dalle domande: come trasformare in modo ottimale un segnale digitale in uno analogico? Come trasportare dei valori digitali nel mondo analogico senza che vengano da questo sommersi e resi irriconoscibili? E come ricostruire l'informazione originale nel miglior modo possibile?

Sicuramente quesiti complessi ed affascinanti; ma per fortuna non dobbiamo preoccuparcene più di tanto: infatti per risolverli si è sviluppata una branca molto importante della disciplina che prende il nome di "teoria dei segnali".

Essa è assurta ad un ruolo primario in seguito allo sviluppo avuto dalla tecnologia digitale, che continua ad invadere settori finora regno dell'analogico: la telefonia, le trasmissioni radiofoniche, la fotografia, la televisione; tutto viene trasformato indistintamente in sequenze di bit che possono essere trasferite sugli stessi supporti fisici ed usando le stesse tecniche ottimizzate in modo indipendente dalla sorgente. Da qui lo sviluppo della tecnologia multimediale; CD-ROM che contengono immagini, suoni e dati, e la recente rete telefonica digitale ISDN che può anche trasportare canali video e dati.

VARI LIVELLI

Sebbene negli ultimi anni si abbia avuto un netto cambio di scala, i problemi di base della trasmissione di dati via radio sono rimasti sempre gli stessi, sia che si parli di una "lumaca" RTTY che di un satellite per telecomunicazioni a 2 megabit/secondo.

Quello che è notevolmente cambiata è la disponibilità di tecnologia; una volta occorrevano centinaia di singoli transistor da montare uno ad uno per realizzare un'apparecchiatura, ripartendo così il costo di progettazione su pochi pezzi. Oggi, grazie all'alto grado di integrazione raggiunto, i costi diventano molto più abbordabili; più applicazioni, più i prezzi calano e la qualità sale, in una spirale sempre più stretta. Bastano poche decine di circuiti integrati VLSI per fare con poca fatica ciò che prima era, in una parola, impossibile. Basta pensare che un "filtro di Kalman", ovvero un filtro ideale per l'eliminazione del rumore, una volta considerato una curiosità matematica, è adesso integrato insieme ad altre fuzioni in un unico chip montato in tutti i modem a 2400 baud.

Questa accresciuta complessità ha reso indispensabile una nuova ottica per affrontare problemi che altrimenti andrebbero al di là delle possibilità umane.

Vediamo di cosa si tratta: per noi la radio è un blocco, il modulatore/demodulatore è un altro ed il computer un altro ancora. Se scendiamo di un livello, quello che era un unico blocco diventa un circuito elettrico, dotato di transistor, resistenze e circuiti integrati. Ed in generale, noi comuni mortali ed hobbisti ci fermiamo qui. Ma se scendiamo ancora, nel circuito integrato troveremo un altro schema elettrico, nato per implementare una particolare modulazione definita tramite un modello matematico.

Se avevate l'impressione che, quando si parla di radiotelegrafia e packet siamo in realtà all'archeologia del digitale, in un certo senso è vero; tuttavia, che ci crediate o no, a meno che non diventiate progettisti di circuiti integrati, difficilmente vi accorgerete in pratica della differenza tra modulazione AFSK, QSK, PSK o GMSK (in ordine di complessità)... Quello che avrete infatti davanti sarà un circuito integrato (ovvero un modulo o blocco di comunicazione) di cui cambierà solo il nome e (neanche sempre) il costo. A parte la componentistica di contorno, l'ingresso di questo circuito integrato sarà sempre la radio, e l'uscità sempre un computer; solo le prestazioni saranno diverse.

La visione a blocchi permette di affrontare i problemi più complicati in modo più semplice; ad esempio si può migliorare le prestazioni di un blocco agendo solo su quest'ultimo e non su tutto il sistema che è molto più complesso; o addirittura si possono trasformare dei blocchi hardware in blocchi software e viceversa. Vedremo in particolare come sia possibile scegliere se mettere il demodulatore come software nel computer o come hardware al di fuori.

E ADESSO VEDIAMO IN PRATICA

Non pretendo che abbiate digerito al primo colpo questa dissertazione, ma forse se scendiamo nell'esperienza pratica potremo capire meglio questi concetti.

Ricapitolando abbiamo un segnale audio analogico, che rappresenta dei valori digitali, e lo vogliamo far interpretare al computer (fig.1a e 1b).

La prima soluzione e più immediata soluzione è quella di implementare un demodulatore analogico (filtri e miscelatori), dotato alla fine di un comparatore che decide il valore digitale; a parte questo, nè memorie nè processori. Il segnale in uscita segue fedelmente le temporizzazioni del segnale in ingresso.

Questa soluzione è mediamente complessa, dà ottimi risultati su un certo tipo di segnali ma non è molto flessibile. Ad esempio un filtro per la RTTY non va affatto bene per il packet nè per il CW, e può non andar bene neanche al variare della velocità di trasmissione.

Se vogliamo invece una maggiore flessibilità, possiamo passare al communicator intelligente. In questo caso, possiamo tramite certi comandi software dire al demodulatore "cosa" ascoltare, possiamo ottimizzare i relativi parametri e, solo quando gli diciamo "vai", lui comincerà a sfornare i dati così come lo abbiamo istruito. Addirittura potrà automaticamente, esaminando le caratteristiche del segnale in ingresso, configurarsi da solo, o potrà riconoscere gli errori nei dati ed effettuare la richiesta di ritrasmissione, e solo alla fine li invierà al computer in un formato a lui comprensibile, convertendoli da sincroni ad asincroni. Siamo così in realtà saliti di un livello: il livello dati è superato dall'esistenza di un set di comandi. È chiaro che un tale apparato, pur essendo il top delle prestazioni ha un costo non indifferente, in quanto il software e l'hardware che lo costituiscono sono paragonabili a quelli dello stesso PC...

La soluzione opposta, e molto più economica, è quella di spostare tutto il lavoro sul PC, trasformandolo in un demodulatore software; in questo caso il segnale viene digitalizzato in modo brutale, cercando di perdere il meno possibile delle sue caratteristiche analogiche (fig.1c e 1d); solo in un secondo tempo, con un opportuno algoritmo se ne estrarrà l'informazione digitale contenuta in esso. Più informazioni saranno ottenute con la digitalizzazione e più sarà precisa, ma complessa, la ricostruzione dei dati originali. Un caso semplice è quello che abbiamo visto nel numero di settembre; lì il digitalizzatore audio era a due soli valori, qualsiasi valore del segnale audio veniva trasformato in un uno o uno zero a seconda se positivo o negativo (fig.1c); si noti come questi "uni" e "zeri" in realtà non hanno nulla a che vedere con gli "uni" e gli "zeri" del codice baudot; durante uno di questi ultimi, che dura un cinquentesimo di secondo, si susseguono qualche decina di valori digitalizzati. Questo perché stavolta siamo scesi ad un livello sotto quello dei dati, e ci troviamo allo stesso livello del segnale analogico.

Se utilizziamo un digitalizzatore più raffinato, (ad esempio una scheda audio tipo Sound Blaster) potremo ottenere, ad ogni istante di campionamento, 8 o 16 bit di precisione anziché uno (fig.1d); la precisione aumenta notevolmente, la quantità di dati da esaminare anche, e globalmente la demodulazione migliorerà, a scapito della potenza di calcolo richiesta.

La scelta di uno di questi tre metodi presuppone anche lo smistare una quantità diversa di lavoro, e quindi di dati più o meno grezzi, verso il computer o verso il demodulatore; e di questo ce ne possiamo rendere conto facendo due calcoli.

Prendiamo ad esempio il Packet radio, alla velocità di 1200 baud; utilizzando un demodulatore "standard", si avranno 1200 richieste di cpu (in questo caso lanciate da interrupt) al secondo; se poi il computer è in grado di demodulare protocolli sincroni, tale valore si riduce di otto volte, cioé 150 al secondo. Quest'ultimo valore è anche quello che in teoria si avrebbe con un communicator intelligente; in quest'ultimo caso però il computer è anche liberato dal compito delle ritrasmissioni, della gestione del protocollo e così via, per cui in pratica è lecito aspettarsi almeno un 50% di riduzione. Se invece utilizziamo un digitalizzatore, considerando che la massima frequenza del segnale audio è di 2400 Hz, si avranno almeno 4800/5000 interrupt al secondo. È chiaro che in queste condizioni occorrerà avere una CPU veloce ed è proibito anche solo pensare al multitasking, dato che un programma che riceve dati al ritmo di uno ogni millisecondo non può tollerare interruzioni che possono durarne anche 50...

ATTENTI AL SOFTWARE

Abbiamo così visto, fatto che può trarre in inganno, che a seconda del software che utilizziamo la stessa porta di comunicazione può essere impiegata a tre livelli diversi; un livello "dati", quello per noi più immediato, un livello comandi ed un livello "analogico digitalizzato". Ovviamente, impiegando un demodulatore ed un programma che "lavorano" a livelli diversi (ad esempio un programma come l'Hamcomm con un communication controller intelligente), anche se sono dedicati allo stesso modo di comunicazione, non si potrà avere alcun risultato.

Superato con successo il caso in cui i valori di partenza erano digitali, passiamo ora ad un caso più difficile: quello in cui i valori sono analogici. Ma come, direte voi, ma non stavamo parlando di comunicazioni digitali?

Il fatto è che nel caso delle immagini la digitalizzazione non avviene alla fonte, ma solo alla ricezione; in questo modo la qualità delle immagini ricevute può essere migliorata agendo solo sulla stazione ricevente.

Come è possibile fare ciò? Cominciamo col dire che per trasmettere un'immagine occorre "scandirla" riga per riga dall'alto verso il basso; in tal modo la si trasforma in una sequenza di punti. Ogni punto è caratterizzato da una certa luminosità, a cui viene associata o una frequenza audio od una ampiezza, a seconda del tipo di trasmissione considerato.

Alla ricezione il valore di frequenza o ampiezza di ogni punto viene convertito in un valore numerico; nella precisione di questa conversione si può agire per i miglioramenti. Ora, fermo restando che il segnale ricevuto va per forza digitalizzato (la vostra scheda grafica non gradisce valori analogici...), a che livello fare questa operazione ? Di nuovo si può scegliere tra l'interno e l'esterno del computer. Se la digitalizzazione avviene tramite un convertitore esterno, la precisione dipenderà esclusivamente dall'hardware, che in genere include un convertitore analogico/digitale; in questo caso il numero di bit è determinato dall'hardware, e la connessione avverrà ad uno dei due livelli più alti che abbiamo descritto. Nel caso invece in cui la conversione avvenga nel computer, occorre comunque una prima digitalizzazione. Stavolta la cosa si complica, perché i segnali che abbiamo sono veramente analogici... Ma la soluzione è stata subito trovata: l'unico valore che può variare con continuità in un segnale digitale è la frequenza; e così un semplice convertitore per il meteofax trasforma i segnali audio in un treno di impulsi, la cui frequenza variabile può essere con facilità misurata dal computer per ottenere un valore analogico; ed il gioco è fatto.

Bene, per questa volta basta con la teoria; se vi siete annoiati, non preoccupatevi: dalla prossima volta vedremo in funzione programmi e demodulatori per la ricezione del Fax.


(Le immagini non sono più disponibili... mi dispiace!)

Fig. 1. (a) il segnale digitale originario

(b) il segnale analogico corrispondente, trasmesso via radio

(c) e (d) due possibili digitalizzazioni del segnale analogico, a due e sette livelli; pur corrispondendo al segnale analogico, a differenza di quest'ultimo essi sono comprensibili al computer.

Fig. 2. La porta di comunicazione del computer può essere collegata a tre diversi tipi di interfaccia, secondo la sua "intelligenza"; ciò corrisponde a tre diversi livelli del protocollo di comunicazione. Più alto è il livello, meno dati inutili occorre scambiare.