Si je comprends bien, vous avez 2 appareils connectés via UART. Je suppose que seules les lignes TX, RX et GND sont connectées entre les appareils? (c.-à-d., aucune ligne de contrôle DTS / CTS / DTR / RTS utilisée - ceci est typique).
Dans ce scénario, le TX (émission) du périphérique 1 est connecté au RX (réception) du périphérique 2, et vice-versa. Leurs motifs sont reliés les uns aux autres. Ainsi, chaque appareil peut transmettre et recevoir en même temps (chacun transmet sur un fil séparé, la communication est en duplex intégral).
La raison pour laquelle je mentionne tout cela est parce qu'il devient clair que pour "renifler" ou "écouter", vous aurez en fait besoin de 2 UART pour écouter les deux côtés de la conversation.
Fondamentalement, tout ce que vous feriez est de vous assurer que les GND UART des 3 appareils sont court-circuités et de connecter (vraiment, "tee", comme dans un raccord en T, comme la plomberie) les lignes TX de l'appareil 1 et de l'appareil 2 aux 2 lignes RX sur 2 UART. Assurez-vous que les débits en bauds sont tous configurés de manière identique.
Il existe de nombreuses cartes / conceptions Arduino. Le plus courant de nos jours, le Duemilanove, utilise l'ATMega328P, qui, je pense, n'a qu'un seul UART (enfin, USART). Il vous faudrait donc soit câbler un 2e CI UART, soit recourir à un "coup de bit" sur le deuxième récepteur.
Les communications UART Async sont bien définies, avec des bits de démarrage et d'arrêt (et parfois des bits de parité), donc si votre processeur est assez rapide, vous pouvez simplement connecter l'une des lignes UART TX de l'appareil à un GPIO configuré en entrée et interroger la ligne assez rapide avec suréchantillonnage pour détecter START & STOP et échantillonner les bits. L'article "Bit Banging" de Jack Ganssle vous donnera beaucoup à mâcher.
Une description décente de la forme d'onde RS232 peut être trouvée sur BeyondLogic .
Notez qu'il y a d'autres problèmes tels que les niveaux de tension (0 / + 5, -10V / + 10V, etc.) que vous devrez prendre en considération (voir la section Beyond Logic sur "Convertisseurs de niveau RS232"). Je n'ai pas assez d'informations sur votre système pour discuter de l'interface matérielle en plus de l'approche «connecter les lignes» discutée ci-dessus. En supposant que les niveaux de tension correspondent, généralement ce n'est pas un problème de "raccorder" la ligne TX à un deuxième récepteur (le renifleur), mais si le TX n'a pas assez de lecteur, vous devrez peut-être insérer un tampon / pilote pour empêcher la signal de dégradation.