Pagina 1 di 2

RS485 - Discernere chi parla sul bus

MessaggioInviato: 16 gen 2019, 11:14
da aldofad
Ciao a tutti,
mi sto divertendo a loggare una linea RS485 con lo scopo di imparare ad adoperare un analizzatore di protocollo economico che ho appena comprato. Tutto funziona ma vorrei capire come fare a discernere la comunicazione in base ai devices connessi, in altre parole io collego l'analizzatore di protocollo direttamente al bus e visualizzo in modo continuo e monolitico l'intero flusso di dati senza capire di fatto chi sta parlando.
Sapreste gentilmente suggerirmi un accorgimento per carpire la comunicazione di un solo device connesso?
Ho sottomano sul tavolo i devices che fanno parte della comunicazione, posso saldare e effettuare ogni tipo (nelle mie capacità) di modifica hardware

Un saluto

Re: RS485 - Discernere chi parla sul bus

MessaggioInviato: 16 gen 2019, 12:24
da MarcoD
RS485 definisce solo il livello 1 fisico (elettrico) del 7 livelli iso-osi se ricordo bene.
Dovresti conoscere il protocollo e individuare l'indirizzo del mittente.
Attualmente visualizzi i dati in esadecimale ?
Il protocollo è asincrono ( bit starti, 8bitdato, bitstop)
oppure hdlc ?

Re: RS485 - Discernere chi parla sul bus

MessaggioInviato: 16 gen 2019, 13:46
da aldofad
MarcoD ha scritto:Dovresti conoscere il protocollo e individuare l'indirizzo del mittente.

Il mio obiettivo sarebbe ottenere proprio quello..

Re: RS485 - Discernere chi parla sul bus

MessaggioInviato: 16 gen 2019, 14:24
da MarcoD
Non hai risposto alle mie domande, forse non le hai capite. :roll: Andiamo male :(

Di solito, è più difficile decrittare un protocollo completamente ignoto, che progettarne uno nuovo.

Almeno si dovrebbe ipotizzare la struttura della rete: un master vari slave, o una rete di pari (peers).
Inizia a tenere acceso un solo nodo e decodificare cosa trasmette, poi accendine un altro per capire se risponde o cosa succede.
I messaggi sono a lunghezza fissa o variabile ?
Come si discrimina fra comandi e dati ?
Esiste un controllo degli errori ?
O_/

Re: RS485 - Discernere chi parla sul bus

MessaggioInviato: 16 gen 2019, 15:19
da aldofad
Prima di entrare nel merito della logica dati del bus, vorrei scindere la comunicazione sul piano hardware, in modo tale poter assegnare ogni device collegato al bus a distinti canali sul protocol analyzer

Re: RS485 - Discernere chi parla sul bus

MessaggioInviato: 16 gen 2019, 15:35
da MarcoD
Vuoi dire che vuoi rilevare il segnale logico, supponiamo TTL, che comanda l'integrato driver RS485 in trasmissione ?
Forse è disagevole, non utilissimo, ma forse possibile se il driver è un componente isolato.
Identifica sulla cartella ( dello slave?) la sigla del circuito integrato driver per identificare il piedino (salvo che non sia disponibile perché integrato in un chip di maggiore complessità).
Attento ai riferimenti di massa e a non fulminare l'integrato !!!
disegna uno schema della linea/bus/driver RE485 per facilitare la compressione

Re: RS485 - Discernere chi parla sul bus

MessaggioInviato: 16 gen 2019, 17:00
da WALTERmwp
Se ho compreso la tua esigenza e il termine "carpire"
aldofad ha scritto:(...)Sapreste gentilmente suggerirmi un accorgimento per carpire la comunicazione di un solo device connesso? (...)
l'analizzatore dovrebbe essere capace d'interpretare il protocollo, ma questo implicherebbe l'implementazione, nel suo software, di una porzione di codice in grado di farlo.
In difetto di ciò, a partire da alcuni parametri noti, come ad esempio la velocità di trasmissione adottata dai devices, a video(dispaly) ti potrebbe restituire il valore(esadecimale, ad esempio) di ogni singolo carattere che riesce a "tradurre", ovvero ad interpretare.
Altrimenti, ancora più a basso livello dovresti sapere qual è il driver interfacciato sulla rete che in quel momento viene pilotato, in ricezione o in trasmissione; ma a quel punto non sarebbe più solo un analizzatore.

Saluti

Re: RS485 - Discernere chi parla sul bus

MessaggioInviato: 16 gen 2019, 18:15
da aldofad
Vi ringrazio moltissimo per questi due ultimi post, hanno chiarito il mio quesito iniziale.
In realtà sto pensando di realizzare una sorta di proxy.
Un saluto e grazie davvero per i chiarimenti

Re: RS485 - Discernere chi parla sul bus

MessaggioInviato: 17 gen 2019, 12:18
da WALTERmwp
Prego, di nulla.
Se possibile, potresti indicare l'analizzatore che stai provando ?

Saluti

Re: RS485 - Discernere chi parla sul bus

MessaggioInviato: 18 gen 2019, 0:20
da MassimoB
In realtà da quello che ho capito credo si parli di reverse engineering dal livello fisico al protocollo, cosa fattibile con un minimo di conoscenza elettronica e di protocolli, sicuramente più semplice con un oscilloscopio con funzione di logic analizer.