3

Many embedded system communication protocols uses a simple format like Device ID, Data or Command ID, Data length, and CRC or Checksum format, and will be communicated over RS232 or RS485 bus to a PC or different boards.

Are there any standard utilities or programs available that can parse these data packets after reading them from the serial port (Mostly virtual COM port via USB)?

I have tried logging serial terminal and then parsing using CSV formatted in Microsoft Excel, but doing this manually is very time consuming.

1
  • Did you ever find an answer?
    – Mawg
    Commented Nov 14, 2018 at 15:27

2 Answers 2

8

I am not aware of any standard utility program that can parse serial data in an arbitrary format. You are correct that many simple proprietary serial wire formats are very similar, but there are also a lot of quirks and special cases to handle.

Parsing arbitrary binary serial wire protocols can usually be done in a few tens of lines of code with a scripting language like Python (or Ruby, or your favorite here). In particular I would recommend Python's mature cross-platform PySerial library in combination with the built-in array module.

When vendors use more standard serial formats (like SLIP, Modbus, SCPI, Open Sound Control, NMEA, AT Command sequences, etc), then there usually exist utilities, libraries, or even built-in support in environments like Python, Octave, Processing/Arduino, or LabView.

7

Wireshark running under linux can capture packets on a USB interface. The capture file can then be analysed in exhaustive detail with the Wireshark GUI.

https://wiki.wireshark.org/CaptureSetup/USB

1
  • This was my first thought (+1). Note that it runs under more than Linux :-)
    – Mawg
    Commented Nov 14, 2018 at 15:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.