• Non ci sono risultati.

3.4 Componenti Software

3.4.4 Componenti SCA FM3TR (GPP)

Net Device (Data e Voice). Questo componente si occupa del trasporto dei pacchetti dati o voce tra la piattaforma SDR-4000 e le applicazioni (ITM e PTT) sul PC. Il componente Net Device setta la modalità di utilizzo, voce e dati. In altre parole il Net Deveice agisce come interfaccia tra i componenti SCA CORBA e lo stack TCP/IP.

40

Le interfacce del Net Device verso i componenti FM3TR rispettano le specifiche SCA. L’interfaccia verso il PC è di tipo TCP/IP/Ethernet, e contiene un buffer per gestire i temporanei cambiamenti di rate delle applicazioni. Il Net Device Voice trasferisce il traffico voce dal socket PTT al codec CVSD e viceversa. Il Net Device Data trasferisce il traffico dal socket ITM verso (e da) il DLC. L’utilizzo di due differenti socket, come l’utilizzo di due porte separate (una per ITM ed una per PTT) offre completa indipendenza fra le due applicazioni.

Come vedremo nel paragrafo 3.5.1 ai dati grezzi (raw data) l’applicazione aggiunge un header ad ogni pacchetto in modo da indicare l’informazione sulla lunghezza del pacchetto. Questo però ha solo significato locale, tra il PC e l’unità SDR-4000 dove risiede il componente Net Device.

DLC (Data Link Control). Segmento dati. Questo componente è una

risorsa SCA che esegue la frammentazione e il riassemblaggio dei messaggi dati, da e per l’applicazione ITM. In questo componente inoltre risiede la funzionalità ARQ per garantire la consegna dei messaggi.

In trasmissione, il componente DLC riceve messaggi dati dal Net Device (Data), divide il messaggio in più frammenti (se necessario), costruisce il DLC_frame per ogni messaggio/frammento e trasmette il DLC_frame verso il Data MAC per l’ulteriorie elaborazione prima della trasmissione in aria. Per garantire la corretta ricezione del messaggio il DLC implementa un semplice meccanismo ARQ mostrato in Fig. 3.10 e Fig. 3.11.

La struttura del frame generato dal DLC (DLC_frame) è mostrata in Fig. 3.9.

41

I campi src, dst, msg_len e Data segment sono quelli provenienti dall’applicazione. Il campo msg_id è aggiunto dal DLC. MAX_DATA_LENGTH indica la dimensione del DLC_frame calcolata in modo di avere la massima correzione d’errore, minime ritrasmissioni, etc.

In ricezione, il DLC riceve i frame di tipo dati dal componente MAC (decodificati R-S). Basandosi sull’informazione contenuta nell’header, il DLC continua a assemblare frammenti per tutta la lunghezza del messaggio. Successivamente il DLC inoltra il messaggio al Net Device. Ogni volta che il DLC riceve un frame del messaggio invia un ACK verso il Data-MAC (non c’è codifica R-S per i messaggi di ACK) per informare dell’avvenuta ricezione. Il Data MAC provvederà ad inviare l’ACK al trasmettitore.

Nelle figure seguenti è riassunto il comportamento del meccanismo ARQ del DLC. In rosso è marcato lo stato iniziale.

Fig. 3. 10 – Stato del processo ARQ di tramsmissione [16].

Fig. 3. 11 – Stato del processo ARQ di ricezione [16].

Codec Reed-Solomon (R-S). Il codec R-S è il componente della waveform

42

l’applicazione. Il sistema utilizza due codici, uno interno ed uno esterno. Il codice interno è l’RS(105,72,7) mentre il codice esterno è l’RS(16,14,5). Il secondo codice è previsto nel caso in cui si implementi sistema full-duplex e quindi l’ARQ opzionale, detto anche ARQ-per-hop. È dimostrato però che se il codice esterno è implementato nel sistema half duplex la probabilità d’errore è maggiore.

Durante il processo di decodifica, il decoder R-S può fallire a causa di troppi errori sui simboli.

I codici Reed-solomon sono codici sistematici. Il codice RS(n, k, m) trasforma una parola composta da k simboli in una da n simboli. I simboli di parità aggiunti sono 2t cioè n-k. Ogni simbolo è composto da m bit. Il potere rivelatore del codice è n mentre il potere correttore del codice è t.

Fig. 3. 12 – Codice R-S.

Per le proprietà della codifica Reed Solomon il decoder esterno può correggere un simbolo errato (potere correttore del codice) e rivelarne fino a 16 (potere rivelatore del codice). Quando questo decoder esterno fallisce, i simboli vengono passati così come sono al decoder interno. Quando il decoder interno fallisce il blocco viene semplicemente cancellato. I test dimostrano che il secondo codec, quello più esterno effettivamente introduce nuovi errori se questo è utilizzato nel sistema half-duplex.

Il codificatore R-S trasforma un blocco da 126 Byte in uno da 210 Byte. Nel caso in cui riceva un blocco corrispondente a un messaggio ACK, il codec, senza alcuna codifica/decodifica lo trasmette direttamente al Data MAC o al DLC.

Sul lato trasmissione il componente DLC passa il messaggio testo, cioè 126 Byte, proveniente dall’applicazione ITM all’R-S codec. I 126 Byte sono divisi in due blocchi da 63x8 bit. Entrambi i blocchi sono riarrangiati in 72

43

blocchetti da 7 bit. Il codificatore RS(105,72,7) è applicato ad ogni blocchetto. Viene così generato un flusso di 105x7x2 bit corrispondenti a 70x21 bit, 21 hop da 70 bit. Ogni hop è riarrangiato in 14 simboli da 5 bit, ed a questi è applicata la seconda codifica, denominata per-hop, RS(16,15,5). Risulta così un flusso 16x5x21 = 80x21 bit. Ogni hop del frame FM3TR contiene 80 data bit, così i due livelli di codifica R-S richiedono 21 hop.

La procedura inversa è applicata sul canale di ricezione.

Data MAC. Il Data MAC è il componente che converte trame R-S in trame

FM3TR, e viceversa. In trasmissione, il flusso di bit pacchettizzato in 21 hop (da 80 bit ciascuno) viene convertito dal componente Data MAC in sei frame FM3TR seguite da due EOM. È questo il componente che aggiunge agli 80 bit che compongono un hop i 20 bit nulli.

Ai sei frame il Data MAC aggiunge due frame di fine messaggio EOM che, a differenza del caso Voice MAC contengono bit informativi.

In trasmissione il buffer d’ingresso al Data MAC è riempito dal componente R-S. Se il buffer contiene un pacchetto ACK (che come già detto non ha subito la codifica R-S), esso viene inviato al MHAL modem Device.

Di seguito (Fig. 3.13) è mostrato come vengono riformattati i pacchetti da DLC a Data MAC, attraverso il codificatore R-S.

44

CVSD. Converte in trasmissione 16 bit a 16 KHz modulati PCM in un bit

voce codificato a 16 kbps.

Voice MAC. Questo componente appartiene al codice originale di

Raytheon. Il Voice MAC esegue la conversione da un blocco di bit codificati CVSD a un frame FM3TR. In trasmissione, riceve un flusso di bit pacchettizzato in 40 Bytes e da questi genera un frame FM3TR. Il quinto hop, può essere di sincronizzazione (SYNC) o di fine messaggio (EOM).

In trasmissione, la struttura dati in uscita è uguale a quella generata dal Data MAC, 6 frame FM3TR + due EOM a 16 Kbps. Le principali differenze con il Data MAC sono:

• il Data MAC impacchetta/spacchetta 6 frame per volta, mentre il Voice MAC ne impacchetta/spacchetta uno per volta;

• i due frame di EOM aggiunti, nel caso dati contengono simboli informativi, mentre per il Voice MAC i frame di EOM non contengono alcun simbolo informativo.

MHAL Modem Device. Il Modem MHAL è un componente SCA-

compliant e CORBA-connected. Questo componente trasferisce il payload dati e voce, utilizzando il protocollo MHAL, da e verso e il DSP.

Diversamente dalle altre risorse SCA, il MHAL Modem Device possiede 6 porte: 4 sul lato CORBA e 2 verso il DSP. Questo perché il MHAL Modem Device multiplexa il flusso dati e il flusso voce in un unico flusso di trasmissione verso il DSP. Dualmente demultiplexa il flusso proveniente dal DSP nel flusso dati o nel flusso voce. Il corretto multiplexing avviene grazie al campo TYPE nel pacchetto MHAL.

Il MHAL Modem Device incapsula le trame provenienti dai due rami (Voice MAC e Data MAC) in un frame MHAL che invia alla corrispondente funzionalità MHAL nel DSP.

Documenti correlati