Se ho capito bene hai 2 dispositivi collegati tramite UART. Presumo solo le linee TX, RX e GND collegate tra i dispositivi? (cioè, nessuna linea di controllo DTS / CTS / DTR / RTS utilizzata - questo è tipico).
In questo scenario, il TX (trasmissione) del dispositivo 1 è collegato all'RX (ricezione) del dispositivo 2 e viceversa. I loro motivi sono collegati tra loro. Pertanto, ogni dispositivo può essere trasmesso e ricevuto contemporaneamente (ciascuno trasmette su un filo separato, la comunicazione è full duplex).
Il motivo per cui menziono tutto questo è perché diventa chiaro che per "annusare" o "ascoltare", avrai effettivamente bisogno di 2 UART per ascoltare entrambi i lati della conversazione.
Fondamentalmente, tutto ciò che dovresti fare è assicurarti che i GND UART di tutti e 3 i dispositivi siano in cortocircuito e connetti (davvero, "tee", come in un raccordo a T, come un impianto idraulico) le linee TX del dispositivo 1 e del dispositivo 2 alle 2 linee RX su 2 UART. Assicurarsi che i baud rate siano tutti configurati in modo identico.
Ci sono molte schede / disegni Arduino. Il più comune al giorno d'oggi, il Duemilanove, utilizza ATMega328P, che credo abbia solo 1 UART (beh, USART). Quindi dovresti collegare un secondo UART IC o ricorrere al "bit banging" sul secondo ricevitore.
Le comunicazioni UART asincrone sono ben definite, con bit di avvio e arresto (e talvolta bit di parità), quindi se il tuo processore è abbastanza veloce, puoi semplicemente collegare una delle linee UART TX del dispositivo a un GPIO configurato come input e eseguire il polling della linea abbastanza veloce con sovracampionamento per rilevare START & STOP e bit di campionamento. L'articolo "Bit Banging" di Jack Ganssle ti darà molto da masticare.
Una descrizione decente della forma d'onda RS232 è disponibile su BeyondLogic .
Nota che ci sono altri problemi come i livelli di tensione (0 / + 5, -10V / + 10V, ecc.) Che dovrai prendere in considerazione (vedi la sezione Beyond Logic su "Convertitori di livello RS232"). Non ho abbastanza informazioni sul tuo sistema per discutere dell'interfaccia hardware oltre all'approccio "connetti le linee" discusso sopra. Supponendo che i livelli di tensione siano abbinati, di solito non è un problema "collegare" la linea TX in un secondo ricevitore (lo sniffer), ma se il TX non ha abbastanza unità, potrebbe essere necessario inserire un buffer / driver per impedire segnale dal degrado.