Newsgroup: it.hobby.elettronica.digitale
Titolo: sniffing porta seriale

Salve,
sto facendo delle indagini su una macchina solo che il problema che mi 
trovo davanti mi lascia perplesso, mi spiego:
c'è una macchina che comunica con un pc attraverso una porta seriale 
RS232, io per vedere cosa passa sulla linea ho usato un cavetto del tipo 
indicato a questo indirizzo
http://www.lammertbies.nl/comm/cable/RS-232-spy-monitor.html#full
Tutto funziona perfettamente ma c'è una cosa che francamente non 
capisco: quando invio dei comandi dal pc (alla macchina) tramite cavetto 
per sniffing leggo sul terminale apposito che passa un segnale, però il 
segnale che passa è sempre lo stesso indipendentemente dal comando che 
invoco.
Secondo me sbaglio qualcosa nella configurazione della porta, quindi mi 
chiedevo se ci fosse modo di "leggere" dalla porta seriale in modalità 
RAW, quindi esattamente quel che passa, o comunque c'è qualche altro 
modo per "vedere" qual che passa?
Spero di essere stato chiaro.
Grazie

 modo per "vedere" qual che passa?
Fatti gli opportuni aggiustamenti di livello potresti usare una parallela 
e monitorare 5 segnali della seriale, con due parallele li leggi tutti.
..

 modo per "vedere" qual che passa?
Per vedere gli stati che passano :oscilloscopio od analizzatore di
stati logici.
ciao
S

 perche' se cerchi di vedere un byte a 38400 con una seriale a 9600...
Questa è un'altra parte del problema, io ho configurato tutte le porte 
in modo uguale facendo riferimento alle configurazioni del sistema 
operativo, però non so se il programma di controllo della macchina va a 
cambiare queste impostazioni.

 cambiare queste impostazioni.
Hai cioè impostato secondo quanto letto dalla gestione periferiche alla 
voce COM? Anche qui con alta probabilità quelle impostazioni saranno 
diverse da quelle realmente usate dall'applicazione.
Non si tratta solo della velocità ma anche del numero di bit di stop e 
della presenza del bit di parità. Se non hai le specifiche sicure 
potresti ricavarle con un oscilloscopio: la velocità la stimi dalla 
durata del singolo bit. E con un po' di occhio dovresti ricavarti anche 
le altre impostazioni.
Inoltre, e questo lo vedi facilmente, verificherai che la comunicazione 
non sarà composta di soli 0x00.
Ciao!
Marco / iw2nzm

 le altre impostazioni.
La velocità di un bit è 26 us quindi la trasmissione dovrebbe avvenire a 
34800 buad/s. Per le altre impostazioni guarderò.

 34800 buad/s. Per le altre impostazioni guarderò.
Immagino che sia un refuso: 38400 bps credo sia più plausibile :)
Ciao!
Marco / iw2nzm

 indicato a questo indirizzo
Va bene che siamo elettronici, ma a volte si può fare prima e meglio 
usando solo del software :-)
Eccone uno che ho usato spesso:
http://technet.microsoft.com/en-us/sysinternals/bb896644.aspx
Ti permette di vedere tutto quello che passa sulla seriale senza bisogno 
di cavi, configurazioni, oscilloscopi o analizzatori logici.
Ciao

 Immagino che sia un refuso: 38400 bps credo sia più plausibile :)
Immagino di si :)

 
Non ambivo a tanto! :)
L'avevo già visto questo programmino e sono intenzionato ad usarlo.
Mi chiedevo posso usarlo anche su una porta già usata da un altro 
programma? o mi serve una "derivazione" hardware della seriale?
Grazie

 programma? o mi serve una "derivazione" hardware della seriale?
Certo! E' proprio questo il suo uso.
Sul PC gira la tua applicazione che comunica con il tuo macchinario.
Installi il programmino e lui logga *tutto* quello che passa sulla 
seriale, senza nessuna modifica hardware. In pratica si mette in mezzo 
tra il driver e la tua applicazione, ed è in grado di sniffare tutto.
Ciao

Francesco Sacchi ha scritto:

Perfetto! sei il mio eroe quotidiano.
Grazie!

 tra il driver e la tua applicazione, ed è in grado di sniffare tutto.
Ok, usando questo programma ho delle letture più plausibili, ora mi 
chiedo questo: è possibile (usando questo programma o altri) andare a 
leggere come un software qualsiasi imposta la porta seriale che va ad usare?
Grazie

 usare?
Sì, dovresti vederlo all'inizio quando la porta viene aperta. Dovresti 
veder passare nei log chiamate a funzione per settare i vari parametri.
Ciao

 veder passare nei log chiamate a funzione per settare i vari parametri.
Esatto, visto, solo che ci sono dei parametri di cui non trovo la 
spiegazione, tipo:
IOCTL_SERIAL_SET_CHAR Serial0 SUCCESS EOF:1a ERR:0 BRK:0 EVT:0 XON:11 
XOFF:13	
IOCTL_SERIAL_SET_HANDFLOW Serial0 SUCCESS Shake:1 Replace:40 
XonLimit:256 XoffLimit:256
ho googleggiato in giro, ma non ho trovato nulla che mi abbia aiutato.
Hai qualche link sottomano che mi possa spiegare i parametri di quelle 
chiamate?
Grazie

 chiamate?
Link sottomano no, ma mi *sembra* di capire che la seriale viene settata 
per usare un controllo di flusso software con xon/xoff.
Prova a cercare con google "xon/xoff" o "software flow control".
Ciao