Introduzione
Nel passato, sul gruppo it.tlc.telefonia.isdn, molti hanno espresso la volonta' di costruirsi un TE o la NT.
La risposta tipica (mia e di chi lavora in questo campo) e' sempre stata di scoraggiare questi tentativi.
ISDN e' una tecnologia complessa che richiede strumenti complessi e costosi ... ma per motivi di spazio non si sono mai approfondite queste cose, liquidando sommariamente il tentativo di imparare qualcosa.
Ecco quindi il perche' di questa sezione.
Per provare ad illustrare cosa serve per progettare/costruire/modificare un TE o una NT.
ATTENZIONE !
L'argomento trattato e' estremamente tecnico e non ho nessuna pretesa di insegnare qualcosa.
E' giusto per illustrare cosa significa progettare un TE.
Ritorna al Menu' principale
Strumenti | Hardware | Software | Conoscenze | Stack ISDN | Sviluppo
| Modifiche
Ovviamente servono alcuni strumenti di base per lavorare su queste cose.
Ecco un elenco di strumenti hardware e software fondamentali quando si lavora su un TE o NT.
Non riporto ovviamente strumenti elementari come multimetri, cacciaviti, spelafili, saldatori e cose che ogni persona che opera nel settore elettronico DEVE avere e sapere usare.
- simulatore di linea ISDN
anche una vera linea ISDN viene comoda ma quando si tratta di fare prove o di provare situazioni anomale il simulatore di linea e' fondamentale.
I piu' economici hanno una o due porte BRI, quelli piu' sofisticati 16 o piu' porte e strumenti di analisi.
Come dice il nome un simulatore di linea ISDN permette di avere una o piu' linee ISDN a cui connettere apparati (TE), permettendo loro di fare e ricevere chiamate come su una vera linea ISDN.
In un certo senso lo si puo' equiparare ad un PABX (molti sviluppano usando un centralino ISDN per avere piu' linee di test) solo che a differenza di questo un simulatore di linea permette di variare le impostazioni di linea dei vari layer, di monitorare il traffico (funzione analizzatore di protocollo) e di creare situazioni anomale per stressare le apparecchiature sotto sviluppo/test.
Ad esempio un simulatore di linea di solito simula almeno due linee ISDN permettendo a TE connessi a tali linee di chiamarsi.
Come prezzi direi che si parte dai 3000$ in su.
- analizzatore di protocollo
L'analizzatore di protocollo e' uno strumento che connesso ad una linea ISDN permette di visualizzare i messaggi scambiati dal/dai TE sotto esame e la centrale (o simulatore di linea ISDN).
Di solito l'analizzatore e' parte integrante di un simulatore di linea ISDN ma ne esistono ovviamente di autonomi, per poter monitorare cosa accade su una linea reale.
Piu' che uno strumento di sviluppo l'analizzatore di protocollo e' uno strumento di diagnosi.
Apro una piccolissima parentesi sugli analizzatori di protocollo presenti ormai in molti TA.
Molti TA ormai hanno anche la funzione di analizzatore di protocollo e questo potrebbe far pensare a qualcuno che un analizzatore di protocollo, come strumento a se stante, sia inutile.
Purtroppo anche se gli analizzatori inseriti in molti TA sono validi, questi soffrono di alcune limitazioni gia' a livello di progettazione.
Infatti un analizzatore di protocollo, inteso come strumento, puo' essere connesso ad un Bus S, un Bus U, monitorare tutti gli eventi in dettaglio nei vari livelli, e' in grado di decodificare e verificare la correttezza dei vari messaggi e cosi' via.
Gli analizzatori di protocollo inseriti nei TA hanno invece i seguenti limiti concettuali :
- sono progettati per monitorare solo il traffico tra il TA con la funzione di analizzatore e la centrale.
Ovvero non faranno vedere tutto il traffico in ingresso ed uscita anche di altri apparati.
Il Bus S utilizza per la trasmissione e ricezione dei dati due coppie di fili e un TA e' in ascolto su una sola delle coppie.
Quello che transita sull'altra coppia, a meno che non sia il TA stesso a generarlo, rimane invisibile.
- sono progettati di solito come aiuto per il progettista in fase di messa a punto del firmware del TA.
Cio' significa che non seguono uno standard per la visualizzazione/presentazione dei risultati e che riportano spesso, mischiate alle informazioni vere e proprie del protocollo ISDN, anche informazioni inerenti lo stato del TA stesso, confondendo quindi chiunque non abbia progettato il TA.
- sono strumenti diagnostici in funzione dello specifico TA.
E' possibile a volte usarli per provare ad identificare anche problemi di linea ma non e' quello lo scopo per il quale sono nati.
(per ulteriori informazioni sui log di un TA fare riferimento alla sezione Domande e risposte di questa Faq)
I costi anche in questo caso sono molto elevati.
Si va da un minimo di 2000$ in su.
- oscilloscopio
un po' come il prezzemolo.
Un buon oscilloscopio digitale, almeno 100 Mhz, e' fondamentale quando si opera con circuiti digitali come un TE.
Se si vuole progettare un TE e' anche indispensabile un oscilloscopio piu' sofisticato per verificare le forme d'onda del circuito di linea.
L'uso di un oscilloscopio e' fondamentale non solo per la messa a punto dell'hardware ma anche del firmware.
Per misurare tempistiche o come strumento diagnostico l'oscilloscopio e' impagabile.
E deve essere digitale e abbastanza veloce per poter catturare anche piccoli impulsi molto veloci, parliamo di segnali che vanno da pochi microsecondi a qualche millisecondo.
Direi che si inizia a trovare qualcosa intorno ai 1700$.
- apparati di riferimento - prototipi
e' fondamentale avere dei prototipi o comunque hardware su cui poter caricare il codice sotto sviluppo o modifica ed e' anche importante avere degli apparati funzionanti con cui confrontare il comportamento.
Per i primi dipende da cosa si sta sviluppando, per i secondi di solito si utilizzano TE commerciali connessi al simulatore di linea.
TE o TA vanno bene, dipende cosa si vuole fare ovviamente.
- ICE (In-circuit emulator) - ROM emulator
cosa comune per chiunque lavori su sistemi embedded, anche chi progetta/lavora su TE deve utilizzare un ICE o un ROM emulator per verificare il firmware.
Impossibile stilare una lista di possibili ICE o ROM emulator ... dipende dal processore usato nel TE e dalla possibilita' di accesso alle Rom.
Tipicamente si predilige l'uso dei Rom emulator per il basso costo e la maggiore adattibilita' a processori e sistemi diversi.
Un Ice sicuramente da' maggiori funzioni e permette di effettuare debug piu' mirati in modo semplice e diretto ma costa molto di piu' di un Rom emulator e potra' funzionare con una famiglia ristretta di processori.
Rom emulator abbinabili (per ottenere bus con tagli da 8/16/32 bit wide) sono la scelta piu' comune.
Come prezzi siamo intorno ai 2000-4000$ per Rom emulator.
- analizzatore di stati logici
non indispensabile per fortuna ma in certi casi, specie se si sta progettando un TE, un analizzatore di stati logici e' importante averlo.
Lo si usa per due differenti scopi :
- mettere a punto la circuitistica digitale (bus microprocessore, periferiche, ecc.)
- mettere a punto protocolli seriali veloci interni (es. IOM2, GCI, ecc.)
Nel primo caso l'analizzatore permette di monitorare un intero bus dati o indirizzi di una scheda basata su un microprocessore/microcontrollore.
Questo avviene normalmente durante la fase di sviluppo dell'hardware, per assicurare un funzionamento corretto al microprocessore e periferiche (ROM, RAM, I/O, ecc.).
Nel secondo caso l'analizzatore e' usato per monitorare cosa avviene sui bus dati interni che sono tipicamente seriali ma che usano di solito tre o piu' segnali di sincronizzazione.
L'oscilloscopio permette al massimo di monitorare due segnali e con poca risoluzione.
Piu' che la forma d'onda e' importante catturare sequenze (trame) molto lunghe per poter verificare che non ci siano problemi di sincronismo.
Il costo base per un buon analizzatore si aggira intorno ai 10.000$.
- computer
direi ovvio.
Uno o piu' computer sono fondamentali.
Di solito si ha un Pc media-alta potenza (minimo classe Pentium 300 Mhz - 5 Gbyte Hd - 128 Mbyte Ram) per lo sviluppo e uno o piu' Pc per test.
Molto dipende dalla tipologia di TE che si vuole sviluppare e dai tipi di test che si vogliono effettuare.
Quasi d'obbligo per facilitare il lavoro avere tutte le macchine connesse in rete locale.
A titolo di esempio io utilizzo 4 computer di cui 2 dedicati per i test e due per lo sviluppo.
La foto di seguito ritrae alcuni strumenti descritti poco sopra.
Il prototipo nella foto (in centro) e' una scheda Motorola ADS 860 (PowerPc MPS 860) connessa ad una scheda di interfaccia S/T, U e PRI.
Si intravedono anche due TA, uno Zyxel e un prototipo di TA esterno (entrambi descritti nella sezione Apriamo un TE di questa FAQ).
Come curiosita' e' interessante sapere che serve anche molto spazio.
La foto ritrae una parte del mio laboratorio che e' notevolmente cambiato, ovvero apparati diversi richiedono configurazioni e strumentazione diversa e non sono visualizzati gli altri 3 Pc ed il resto della strumentazione.
Dai due simulatori di linea ISDN ritratti nella foto, ad esempio sono passato ai quattro attuali per il differente sviluppo in corso, piu' alcuni telefoni ISDN e TA.
Quindi serve molto spazio per sistemare i vari strumenti secondo le necessita' ed anche per immagazzinare gli strumenti non necessari.
Ritorna all'inizio
- suite compilatore/linker/debugger
a meno non si stia sviluppando un TA passivo, ogni TE utilizza un processore autonomo.
Tipico il Motorola 68302 ma se ne usano tanti altri tipi.
E' fondamentale disporre di un cross-compiler per il processore target che giri nel sistema operativo che si dispone nella macchina di sviluppo.
I prezzi ... sono terribili.
Si puo' arrivare tranquillamente intorno ai 4-5000$ per licenza fino a 20K$ per ambienti di sviluppo completi.
- editor
un buon editor e' fondamentale.
Il software di un TE e' molto corposo e suddiviso in piu' moduli a loro volta suddivisi in file.
Un editor con la possibilita' di maneggiare progetti e' ormai d'obbligo.
A meno che non si prenda un ambiente di sviluppo completo (che integra in un solo pacchetto compilatore/linker/debugger/editor/gestione progetti) la scelta di un editor e' fondamentale.
- word processor
documentare quello che si fa e' un aspetto sicuramente NON marginale.
Bisogna considerare di avere un buon Word processor.
Ritorna all'inizio
Un piccolo cenno alle conoscenze MINIME che si devono possedere per lavorare su un TE direi che e' necessario :
- conoscenze di elettronica
non certo solo distinguere una resistenza da una scatola di cartone.
Il grado di competenza nella materia dipendera' dal tipo di lavoro che si vuole fare.
Per progettare un TA da zero sara' necessario avere fortissime conoscenze in eletronica digitale e analogica, meglio una specializzazione in telecomunicazioni.
Per operare a livello firmware sara' sufficiente una buona conoscenza dell'elettronica digitale e analogica, anche se non a livelli approfonditi per quest'ultima.
- conoscenze software
qui e' piu' difficile indicare il tipo di conoscenze .. sicuramente saper programmare in un linguaggio come il C o il C++ e' quasi un must, cosi' come saper programmare in assembler e non farsi prendere dal panico studiando manuali di microprocessori e componenti programmabili.
Lavorare su TE richiede un'ottima esperienza in embedded development, capire come l'hardware e' strutturato e imparare a programmare ogni tipo di periferica.
Sicuramente le esperienze richieste sono molto distanti da ambienti Visual Basic o EDP.
Inoltre e' richiesta una forte esperienza di utilizzo di Rtos e ambienti di sviluppo su piattaforme hardware diverse.
Ritorna all'inizio
Avendo i necessari strumenti e conoscenze serve una cosa fondamentale per operare su TE (e TA).
Il software, comunemente chiamato Stack ISDN.
Il tipico software di un TE non e' qualcosa di piccolo ne' di semplice.
E' un insieme di vari protocolli a vari livelli ISO/OSI spesso insieme ad un proprio RTOS.
E' un codice decisamente complesso, sia come contenuto che come dimensioni.
Parliamo infatti di almeno 10 Mbyte di sorgenti in linguaggio C o C++, che coprono i livelli ISO/OSI da 1 a 3 o anche piu'.
Per quanto non sia impossibile partire da zero a scrivere il software per un TE, nessuno lo fa per il semplice motivo che richiede anni di lavoro per avere qualcosa di funzionante.
Un tipico stack ISDN richiede tempo per essere sviluppato e verificato, dato che deve superare quelle che vengono chiamate omologhe, ovvero test standard effettuati da laboratori certificati, a livello nazionale ed europeo.
Ecco che quindi tale software lo si acquista di solito gia' fatto, pronto per essere modificato e adattato alle locali esigenze.
Un software di questo tipo ha un costo che puo' variare da un minimo di 16k$ ad un massimo di 150k$.
E' interessante notare che pero' Linux ha al suo interno (cioe' fa parte del kernel) uno stack ISDN completo, che copre cioe' i layer da 1 a 7 ISO/OSI.
Chi fosse interessato a studiare un tale codice ha quindi la possibilita' di farlo con Linux senza spendere un'esagerazione.
Prevengo subito un'ovvia domanda : Ma se Linux ha uno stack ISDN perche' qualcuno dovrebbe spendere tutti quei soldi per averlo ?.
La risposta e' semplicissima.
Lo stack ISDN di Linux e' dedicato a Linux ed e' utilizzabile solo per TA passivi interni.
Uno stack ISDN professionale permette invece di progettare e costruire l'intera gamma di apparati ISDN (attivi) che vanno da TE, Fax gruppo 4, router, ecc. nonche' anche TA e TA passivi.
Ed altrettanto ovviamente quello che si compra non e' solo il codice sorgente ma anche e sopratutto assistenza ed esperienza di chi mantiene tale codice.
Ritorna all'inizio
Disponendo degli strumenti base, del software e avendo una o piu' persone con le necessarie conoscenze ecco piu' o meno le fasi di sviluppo di un TE.
Supponiamo di partire da zero.
- Decidere il prodotto
La fase sicuramente piu' delicata di tutto il progetto.
La prima cosa da fare e' decidere che tipo di TE si vuole fare, che caratteristiche deve avere e nel caso di sviluppi commerciali .. quanto dovra' costare.
Questa fase in una ditta coinvolge tantissimo il marketing e altre sezioni oltre a quella tecnica.
- Sviluppo hardware
Deciso il tipo di TE che si vuole si iniziera' a progettare l'hardware, il che puo' anche significare fare ricerche estensive su quali componenti utilizzare, su come il software dovra' interagire con loro e cosi' via.
Al termine di questa fase si avra' un prototipo su cui poter iniziare a fare prove e misure e mettere in grado chi sviluppa il software di lavorare.
- Sviluppo firmware
In realta' lo sviluppo del firmware inizia anche prima dello sviluppo hardware ed ovviamente concorre con esso in modo molto pesante.
Ma quando il primo prototipo hardware e' disponibile inizia la fase piu' pesante dello sviluppo di un TE.
- Verifiche
Al termine dello sviluppo del firmware inizia il periodo dei test.
Prima su strumentazione di laboratorio (simulatori di linea ISDN) e poi su linee reali.
Questa fase puo' essere molto pesante in termini di tempo .. tutto dipende dalla bonta' del codice utilizzato.
Ritorna all'inizio
Vedendo quanto scritto finora sembrerebbe che un normale utente non possa fare proprio nulla.
In realta' non e' cosi'.
Se e' vero che modificare un TA attivo non e' sicuramente alla portata di tutti e' sempre possibile, in determinate circostanze, provare a modificare in qualche modo un TA passivo.
Ovviamente mi riferisco a modifiche software e al limite a livissime modifiche hardware.
Un TA passivo altro non e' che una semplicissima interfaccia hardware che permette di connettere fisicamente una linea ISDN ad un PC.
Tutto il software e' presente sul PC.
Questo significa che chiunque (avendone pero' le capacita') puo' modificare o addirittura riscrivere i driver che gestiscono l'hardware ISDN.
Un esempio di questa possibilita' e' dato dal Progetto X, che tenta di modificare un TA per fargli simulare il lato centrale, in modo da poter connettere a tale TA un altro TA in modo diretto.
Non mi dilungo qui nei particolari esistendo il sito al Progetto X ma come esempio su cosa e' possibile fare direi che e' perfetto.
Gli unici strumenti necessari per tale modifica (oltre le conoscenze) sono tutti reperibili a costo zero o quasi, dato che si trovano gia' presenti in ogni ditribuzione di Linux.
Ritorna all'inizio