我正在尝试反转九十年代早期逻辑分析仪及其 PC 软件所使用的协议(protocol)。 该设备通过RS-232(专有接线)连接并与DOS程序通信,在DOSBOX上成功运行。
我能够使用原始软件控制设备,但使用自定义程序自动从分析仪下载数据会很有用,但要做到这一点,我需要知道串行端口上发生了什么。
我需要知道串行端口设置的模式,虽然我确定数据速率是 1200 或 9600 bps(可在设备上配置),但我不知道流量控制(我猜是 RTS/CTS)。
我还需要在程序和设备之间进行对话,而不干扰他们的通信。
使用另一个程序(cutecom/minicom)读取串行端口会阻止仿真器从硬件接收数据。
所以,总结一下,我需要知道的是:
- /dev/ttyS0 上设置了什么配置(我认为是通过 IOCTL 调用)
- 程序和设备之间发生了什么。
我正在考虑编写一个库来充当标准 c 库的代理(通过 LD_PRELOAD),但必须有一种更简单的方法来做到这一点。
最佳答案
您可以使用slsnif
(串行线路SNIFfer)。
http://linux.die.net/man/1/slsnif
这是 sourceforge 项目的链接,您可以下载它。我不相信任何现代发行版都附带它,但我可能是错的,所以请先检查您的发行版的软件存储库。
关于linux - 嗅探IOCTL和串口通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15469511/