Wer die UART Kommunikation zwischen zwei Geräten abhören möchte, um so Reverse Engineering zu betreiben und die Erkenntnisse eines Tages für mehr oder weniger moralisch flexible Zwecke einsetzen möchte, der braucht zwingend einen UART Sniffer. Es gibt zwar Software Lösungen, mit denen es möglich ist die Kommunikation zwischen der seriellen Schnittstelle des Rechners und einem anderen Gerät mitzuschneiden, aber das hilft nicht mehr weiter, wenn sich zwei Geräte untereinander über UART unterhalten. Meinen konkreten Anwendungszweck werde ich hier (noch) nicht beschreiben. Es sei nur so viel gesagt: Rechtlich wäre eine Veröffentlichung kritisch.
Wie dem auch sei, ein echter Sniffer ist schnell aufgebaut. Benötigt werden dafür zwei UART <-> USB Module. Ich verwende hierfür zwei CP2012 Breakout Boards. Wie ich im Artikel Warum RX und TX gekreuzt werden müssen bereits erklärt habe, steht der RX Pin für Receive und ist somit hochohmig. Das heißt es reicht aus die Datenleitung zwischen den beiden Geräten aufzutrennnen und Masse sowie die beiden Datenleitungen erneut miteinander zu verbinden. Zusätzlich müssen die beiden CP2012 Boards mit Masse verbunden werden sowie jeweils der RX Pin der CP2012 Boards mit einer Datenleitung. Auf diese Weise können ausgehende Pakete beider Seiten gleichzeitig abgehört werden. Nun müssen, sofern nicht bekannt die Parameter wie Baudrate und Parität noch experimentell ermittelt werden und das Reverse Engenieering kann beginnen. Als sehr vielseitig hat sich Moserial erwiesen, das es sowohl ermöglicht die Pakete als HEX Codes, als auch als ASCII Entsprechungen darzustellen und zu senden.
Wer nur ein UART Modul zur Verfügung stehen hat, der kann den RX Pin des Moduls natürlich auch jederzeit zwischen den beiden Datenleitungen umstecken.