Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.arcetri.astro.it/science/irlab/doc/niosprotocol_old.pdf
Дата изменения: Thu Jul 28 18:22:38 2005
Дата индексирования: Sat Dec 22 08:13:54 2007
Кодировка:

Поисковые слова: http www.astronomy.ru forum index.php topic 4644.0.html
INAF-OAA Gruppo Strumentazione Infrarossa

Progetto Giano

Proto collo p er i comandi dell'elettronica di Giano
C.Baffa, E.Giani
Versione 1.03, Firenze 25 Gennaio 2005

Sommario
Nel presnte memo descriveremo il dettaglio del protocol lo che viene usato nel le comunicazioni tra i due software, niosserver e GianoTest, che control lano l'elettronica di acquisizione di Giano. Tale protocol lo utilizza un formato estendibile al le comunicazioni tra gli altri moduli del progetto.

1

Intro duzione

Il progetto della nuova elettronica di controllo per lo spettrometro Gianocomprende un controller intelligente della elettronica di acquisizione. Tale controller viene implementato tramite un chip programmabile (una FPGA Stratix) che simula un microprocessore RISC. Su tale processore gira un programma di controllo (niosserver) che si occupa della programmazione e della gestione del sistema di acquisizione e di interfaccia con il rivelatore. Tali compiti vengono eseguiti sotto il totale controllo del software di basso livello che gira sulla workstation di controllo di Giano, GianoTest. Nel seguito descriveremo il dettaglio del protocollo che viene usato nelle comunicazioni tra niosservere GianoTest, che utilizza un formato estendibile alle comunicazioni tra gli altri moduli del progetto.

2

Asp etti generali del proto collo di comunicazione

La comunicazione tra GianoTest e niosserver avviene tramite ethernet, con una socket unixlike, usando il protocollo descritto nel presente memo. Questo protocollo ` organizzato a e pacchetti, ispirandosi ai protocolli standard utilizzati in Internet[2]. I pacchetti di comunicazione hanno tutti un formato standard: sono composti di uno header di 8 parole di 16 bits e da un'eventuale area dati, a seguire. La struttura dello header ` la seguente: e


Word 1 2 3 4 5 6 7 8

Descrizione Magicnumber Destinazione Tipo Comando Lunghezzadati riservato Numeropacco Checksum

Esempi di valori 0xA50F gianotest, niosserver comando/dato/messaggio/ack ... DUMMYREAD, RUN ... da 0 a 1500 da 0 a 65535 da 0 a 65535

Diamo alcuni cenni di spiegazione sui campi: 1. Magicnumb er. Questa parola contiene una maschera che identifical'inizio del pacchet` to. E compasta da un pattern di bit caratteristico (10100101 00001111). Agevola la sincronizzazione del protocollo. 2. Destinazione. Indica il processo destinatario del pacchetto. Raccoandiamo che il byte alto indichi il processore, e quello basso il processo. 3. Tip o. Indica il tipo di pacchetto, se ` un comando, un conferma di ricezione (Ack), un e messaggio, una sgnalazione di errore, o altro. 4. Comando. Indica l'operazione realmente richiesta, ad esempio in caso di pacchetto con Tipo uguale a Comando, il comando effettivo, o se il pacchetto ` di tipo messaggio, la e priorit` (errore, avviso, ecc...). a 5. Lunghezzadati. Indica l'eventuale lunghezza dell'area dati che segue lo header. Per ragioni di efficienza di trasporto, non deve superare 1400. 6. riservato. Questa parola ` riservata per future espansioni. e 7. Numeropacco. Identifica, ai fini del processo di origine, il pacchetto. Viene utilizzato nel protocollo di conferma (Ack). ` 8. Checksum. Maschera di controllo per la verifica dell'integrit` del pacchetto. E la somma, a troncata ai 16 bit bassi, delle parole 1-7 dello header. Il protocollo comprende anche la possibili` di una conferma di ricezione (Ack). Questo a avviene, ad esempio, nel controllo del processore Nios (elettronica di piano focale). Infatti, non essendoci un sistema operativo reale sul processore Risc, occorre che la workstation di controllo attenda una risposta prima di inviare il comando successivo. Per inviare la conferma, il processo ricevente, invia indietro il solo header ricevuto, dopo aver sostituito al campo Tip o il valore di Ack (0x06, ricevuto, ` il valore ASCII per ACK). e


3

I valori dei campi p er GianoTest-niosserver
1. Magicnumb er. Il solo valore accettato ` 0xA50F. e 2. Destinazione. Indica il processo destinatario del pacchetto. Descrizione Valore GianoTest 0x3001 niosserver 0x1001 3. Tip o. Indica il tipo di pacchetto. Descrizione COMANDO MESSAGGIO ACK ERRORE Valore 0x0010 0x0020 0x0006 0xFF00

Diamo nelle seguenti tabelle i valori effettivamente usati per i vari campi dello header.

4. Comando. Indica l'operazione realmente richiesta. Se il pacchetto ` di tipo messaggio, e indica la severit` (0-3). Nel caso del protocollo GianoTest ­ niosserver alcuni dei valori a sono: Nome FILLMEM0 DUMPMEM LOADOBJ DIT GROUP RUN START STOP ABORT FLIPSVB STATUS DUMMYACQ Valore 0x0101 0x0102 0x0108 0x0200 0x0201 0x0300 0x0301 0x0302 0x0303 0x0308 0x0400 0x0444 Commento Azzera le memorie di sequenza Esegue un dump delle memorie di sequenza Carica un programma nelle memorie di sequenza Tempo di integrazione Numero di acquisizioni Fa partire il generatore di sequenze Run ma specificando DIT e GROUP Ferma il generatore di sequenze Arresta subito il generatore di sequenze Carica un programma che genera un'onda quadra Pubblica tutte le variabili di stato Restituisce un frame sintetico

5. Lunghezzadati. Indica l'eventuale lunghezza dell'area dati. Per ragioni di efficienza di trasporto, non deve superare 1400. 6. riservato. Questa parola ` riservata per future espansioni. e


7. Numeropacco. Identifica, ai fini del processo di origine, pu` assumere tutti i valori o ` un unsigned short. permessi ad un numero a 16 bit. E 8. Checksum. Maschera troncata ai 16 bit bassi, ad un numero a 16 bit. ` di controllo per la verifica dell'integrit` del pacchetto. E la somma, a delle parole 1-7 dello header. Pu` assumere tutti i valori permessi o ` un unsigned short. E

Riferimenti bibliografici
[1] "User Guide for the HAWAII-2 2048x2048 Pixel Focal Plane Array", A. Haas, Rockwell Scientific Company, LLC, 2002. [2] "Internet Core Protocols: The Definitive Guide" E. Hall, Sebastopol, CA (USA), 2000.