stickyandlocked Perchè utilizzare un analizzatore di rete seriale RS232-RS485

  • marcom
  • Avatar di marcom Autore della discussione
  • Offline
Di più
13/03/2019 12:18 #1620 da marcom
Il presente articolo prova a spiegare perché è conveniente utilizzare una interfaccia di analisi seriale hardware quando sono disponibili svariati tool software di analisi gratuiti. In particolare l'articolo vuole porre in evidenza quali sono i vantaggi non immediatamente evidenti e quali caratteristiche non sono disponibili negli analizzatori software. L'analizzatore hardware è lo strumento ideale in diverse situazioni: retro engineering di un protocollo seriale, analisi di una rete MODBUS disturbata, certificazione di una corretta installazione di una rete seriale...

Confronti tra analizzatori software e analizzatori hardware

Analisi diverse modalità di connessione alla rete

I tool di analisi software e la loro modalità di connessione alle linee da esaminare possono essere suddivisi in due categorie. Se il PC è parte della connessione esaminata il software può funzionare direttamente come processo in background su quel PC di controllo con accesso ai buffer dati di ricezione ed invio.

Se il PC non è presente o se il programma non può essere eseguito su quel PC per ragioni di sicurezza, il software deve essere fatto funzionare su una macchina differente. In questo caso la linea seriale deve essere riportata in parallelo al secondo PC su cui sta andando l’analizzatore seriale software. La connessione è fatta attraverso il così detto ‘X-cable’ o ‘Y-cable’ o ‘Y-adaptor’. Tutte queste tipologie di cavo hanno in comune che forniscono due jack per la connessione diretta delle linee da esaminare.

Al contrario l’analizzatore seriale hardware riceve direttamente i segnali su un ingresso seriale, li convoglia all’interno della unità di analisi e li rimanda fuori su un altro connettore seriale. L’analizzatore è quindi inserito all’interno della linea e non lavora in parallelo con questa. Il tempo di ritardo introdotto è ampiamente al di sotto del “bit time” e quindi può essere trascurato. Inoltre tutte e otto le linee di dati e controllo sono catturate, incluso l’invalid state, e non solo alcune di loro.

I dati dalla unità di valutazione sono inviati attraverso una connessione USB al PC di registrazione, utilizzando un protocollo speciale che contiene delle informazioni aggiuntive. Per certo più analizzatori possono essere sincronizzati. Questa modalità di connessione consente nuove funzionalità quali switching, manipolazione, re indirizzamento dei segnali a scopo di test o investigazione.

Per particolari esigenze è disponibile uno speciale X-cable per connettere l’analizzatore in parallelo, perdendo l’opzione switching, ma mantenendo le enormi capacità di valutazione.

Creando un proprio sistema di valutazione e decodifica, si è totalmente indipendenti dalle limitate ed inaffidabili possibilità di analisi di un PC hardware. Usando l’avanzata tecnologia dei gate array riconfigurabili , tutti I circuiti necessari sono all’interno dell’analizzatore e non del PC. Il contenuto del gate array e con esso le funzione di elaborazione ed analisi dell’analizzatore seriale possono essere cambiate in qualsiasi momento e quindi adattate ed estese a seconda delle differenti applicazioni. Semplicemente usando l’ultima release del software disponibile.


Analisi della sequenza reale dei dati e la loro temporizzazione




IFTOOLS - MSB-RS232 - Analizzatore seriale RS232




IFTOOLS - MSB-RS485 - Analizzatore seriale RS422 RS485



Le soluzioni di analisi software dipendono dalla latenza nella gestione dell’interrupt da parte dello scheduler del sistema operativo. Usando un convertitore da RS232 a USB si aggiunge anche il ritardo di polling del sottosistema USB. Anche le code fifo dei PC sono limitate a 16 caratteri. Se il tempo di reazione dell'interrupt è troppo lento vengono persi dei caratteri a causa dell’overflow dei buffer di ricezione. Anche l'utilizzo dei convertitori da RS232 a USB non incrementano tale memoria dei buffer. Le etichette temporali rilevate sono quelle relative alle richieste di interrupt del sistema operative e non quelle degli eventi relative ai dati reali sulla linea. In special modo quando solo un ingresso è usato per esaminare i segnali RXD e TXD, non si può essere sicuri di vedere il corretto ordine dei dati trasmessi e ricevuti.

Nel caso peggiore la sequenza dei byte registrati è inversa! Non è un problema quando entrambi i dispositivi inviano i dati in alternanza con alcuni istanti tra ogni sequenza di dati. Ma se i dispositivi inviano nello stesso istante saranno visibili delle informazioni mischiate. Anche se si utilizzano due ingressi per registrare, non otterrete informazioni circa la corretta temporizzazione tra i canali e/o le linee di controllo. Il problema si pone ad esempio nell'ottenere informazioni precise circa i tempi di reazione relative al cambiamento delle linee di protocollo RTS/CTS.

Quanti caratteri sono ancora inviati dopo il settaggio della linea RTS a stop? Quanto velocemente un dispositivo esegue una richiesta di dati? I pacchetti di dati si sovrappongono in maniera errata per errate valutazioni o reazioni? E molte altre problematiche. Una risoluzione di 1 ms non è sufficiente. Con una velocità di connessione di 115200 Baud sono trasmessi 10 caratteri in un millisecondo!

Tutte queste informazioni non sono disponibili in una soluzione puramente software. E comunque non con una risoluzione temporale adeguata. In un analizzatore hardware ogni cambiamento del livello di segnale, incluso il livello tri state è marcato con una etichetta temporale con una risoluzione di un microsecondo. Inoltre i dati sulle linee Rxd e Txd sono decodificati e marcati. Tutti questi eventi sono inviati al programma dell’analizzatore dove sono mostrati e valutati in diversi formati. Siccome i dati sono marcati temporalmente prima di inviarli al PC tramite la porta USB, non vi è dipendenza dalla latenza dello scheduler del sistema operativo. Inoltre l’analizzatore ha un grande buffer di memoria di 512kB che tampona i tempi di risposta non costanti del PC.

Con un sistema di cattura dei segnali totalmente indipendente e una risoluzione temporale di un micro secondo, l’analizzatore hardware consente di risolvere le problematiche di comunicazione seriali con sicurezza e molto velocemente.


Segnali campionati e livelli logici

Avendo a disposizione i segnali campionati e i loro livelli logici in una griglia con risoluzione di 1 micro secondo è facile mostrarli in una modalità oscilloscopio. Anche i canali seriali Rxd e Txd e le loro sequenze di bit sono campionate e possono essere visualizzate in modalità oscilloscopio nel programma MSB. In questo modo l’analizzatore può essere utilizzato come un analizzatore logico con risoluzione di 1 MHz, mostrando tutti i possibili tre stati delle otto linee RS232.




Cerca per particolari sequenze di dati con espressioni regolari.




Definire e denominare alcune regioni di interesse per un facile accesso (regioni usate come segnalibri).




Registrazione di un segnale rettangolo 20kHz sulla linea RTS che mostra le capacità in tempo reale dell'analizzatore.


Possono avvenire principalmente tre errori di tipo temporale nella trasmissione. Il primo è un tempo di reazione errato od insufficiente di un dispositivo rispetto ai dati provenienti da un altro dispositivo. Se il tempo di reazione è troppo lento, potrebbe avvenire un overload nell'unità di elaborazione.

Questo può portare ad un data overflow che può concludersi con una perdita dei dati. Un problema simile può sorgere se la reazione ad un cambiamento in una linea del protocollo è troppo lento. Settare la linea RTS a stop deve portare velocemente al fermo nell’invio dei caratteri, idealmente dopo che il carattere corrente è stato inviato. Se chi trasmette invia alcuni caratteri in più o nel caso peggiore non stoppa l’invio dei dati, avverranno degli overflow e perdite dei dati in maniera intermittente, poiché la cache interna del ricevitore non può essere scaricata abbastanza velocemente. Il terzo errore è raro, ma possibile è può essere evidenziato solo con uno strumento adeguato. L’invio dei dati può essere non corretto. Il baudrate può avere dei jitter o cambiamenti. Anche chi invia i dati può essere guasto e produrre un time bit non corretto.

In questo caso l’analizzatore evidenzierà un evento di framing error. Sincronizzando l’analizzatore sulle linee Rxd e Txd su questo errore, si vedrà come l’invio dei dati si blocca nel momento in cui avviene l’errore.

Un altra caratteristica unica dell’analizzatore hardware è la capacità di settare il baudrate su qualsiasi velocità tra 1Baud e 1MBaud, con un’accuratezza migliore di 1/10 percentuale. Inoltre è possibile misurare il baudrate della connessione esaminata con la stessa accuratezza.

Poiché si tratta di trasmissione asincrona, il ricevitore sincronizza ed avvia l’acquisizione sul fronte negativo dello start bit. Con una velocità di sovra campionamento di 16 volte il baudrate, esso campiona il dato 16 volte, partendo dopo 8 campionamenti. In questo modo i bit sono catturati a metà, che si presume sia il punto più stabile, con in ogni caso 8 intervalli prima e dopo il campionamento.

Per gli 8 bit di dati più i bit di start e stop, l’ultimo bit, che il bit di stop, è campionato dopo 8+9*16=152 baud clocks. Se assumiamo, che il generatore del clock per il baud non sia esatto, ma abbia una deviazione del 4 percento. Oppure entrambe i generatori abbiano una deviazione di solo il 2 percento, ma in differenti direzioni. Questo porta ad una differenza di 152*0.04 = circa 6 clocks per il campionamento sopra l’intero data byte. Questo è molto vicino al bordo dello stop bit campionato. Può quindi avvenire una interpretazione errata. Ed avviene quando il livello fisico del bit non è perfetto, ciò è dovuto a ricevitori o trasmettitori lenti, cavi lunghi o alte capacità.

Con velocità elevate aumenta la probabilità di rilevare in maniera errata il valore del bit. E se la somma delle deviazioni è superiore al 4 percento, è quasi certo il malfunzionamento dei dispositivi. I baud rate non devono differire per più del 3 percento. Sfortunatamente, per ragioni di costo, i dispositivi seriali sul mercato non hanno un generatore di clock a loro dedicato. Il clock di trasmissione è derivato dal clock di sistema la cui frequenza può non essere molto adatta ad essere divisa secondo gli intervalli delle velocità comunemente usate sulle linee seriali. Si devono quindi accettare dei compromessi ed errori sporadici e irregolari sono accettati già in fase di progettazione dei dispositivi seriali. L’analizzatore MSB automaticamente misura la velocità dei dati su entrambe le linee seriali e da delle indicazioni sulle incongruenze di velocità tra I dispositive. Il display di stato da degli avvertimenti in maniera diretta se il baud rate misurato ha una deviazione maggiore del 3 percento rispetto al baud rate selezionato. Utilizzando l’opzione switch, siete anche in grado di inviare dati ai diversi baudrate ai dispositivi. Semplicemente per verificare la loro capacità di interpretare dei dati trasmessi non perfettamente.




IFTOOLS - MSB-RS232 - Opzione Switch


Attraverso la caratteristica di registrazione dei dati a qualsiasi velocità, è possibile verificare le connessioni a velocità di trasmissione inusuali, usate talvolta nei sistemi, dove il clock di sistema è direttamente diviso nel clock di trasmissione. La velocità risultante non è un multiplo di 9600, ma una divers anche non può essere correttamente decodificata dalla porta del PC.

L’analizzatore fornisce il suo hardware di decodifica per le trasmissioni seriali. E’ quindi facile estendere le sue caratteristiche per fare lo l’analisi del protocollo usato e trovare qual formato dati utilizza. La misura esatta del baudrate setta il baudrate del ricevitore per un campionamento esatto. Ulteriori livelli di analisi dei dati evidenziano quanti bit utente sono usati per carattere e se il bit più alto è usato per la parità. Talvolta il reale formato dei dati non è conosciuto, specialmente per dispositivi molto vecchi, o non si è sicuri che chi invia inserisca il bit di parità lo faccia in maniera corretta. In questi casi è necessaria una analisi della struttura dei dati. Inserendo l’analizzatore e premendo il tasto ‘scan’, dopo la decodifica di alcuni caratteri otterrete l’informazione sul formato dei dati.

Inserendo l’analizzatore nella linea, attraverso il gate array sono disponibili alcune caratteristiche aggiuntive. Il segnale non deve per forza essere connesso direttamente 1:1, ma può essere reindirizzato, cambiato e manipolato. Sono possibili funzionalità di loop back, switching, breaking e cambiamento delle linee di protocollo. Anche lo stato undriven è supportato per l’interruzione totale della linea. E’ supportato anche l’invio manuale dei dati con uno spazio settabile e ben definito tra i caratteri. L’indipendenza dalla latenza del PC consente di generare pacchetti di dati perfettamente omogenei.

Anche lo schema fisso di campionamento e ricezione dei dati può essere alterato. Tutte le linee possono essere usate per il trasporto dei dati. Un editor dello schema avanzato consente di disegnare tutti i tipi di circuiti che possono connettere le linee di ingresso e di uscita delle porte dell’analizzatore. L’unico limite è che i pin di input non possono essere modificati in pin di output e viceversa.


Differenze tra analizzatore di segnale ed oscilloscopio

L'analizzatore seriale analizza il flusso di dati: è un analizzatore logico. Mentre l'analizzatore nella finestra Signal Monitor mostra i segnali nella loro forma logica con due livelli di segnale, l'oscilloscopio è un dispositivo invece che mostra la condizione fisica del segnale. L'analizzatore è destinato a catturare e decodificare il flusso di dati, l'oscilloscopio è destinato ad analizzare il segnale stesso.

Queste sono le differenze:
L'analizzatore ha solo tre stati (0,1 e tri-state), l'oscilloscopio riesce a campionare l'intera gamma analogica.
La risoluzione di campionamento dell'analizzatore è di 1 usec mentre per l'oscilloscopio siamo nell'ordine dei 6.25MS/sec, ovvero 6 volte superiore.
Per aumentare la protezione contro i picchi di ingresso l'analizzatore è dotato di un filtro da sovratensioni. I picchi vengono quindi filtrati e non visualizzati. Quindi, tutto sommato l'analizzatore in grado di rilevare e mostrare il flusso di dati senza essere troppo disturbati da ambiente rumoroso.

Marcom S.r.l.
via Mezzacampagna, 52 int.29
37135 - Verona (VR)
L\'Argomento è stato bloccato.
Powered by Forum Kunena
Avviso
  • I prezzi sul sito sono IVA esclusa.