我有一个旧的java程序,它正在与2000年生产的嵌入式设备通信。该程序使用标准的Windows串行堆栈与该设备通信(据我所知,当我在windows中使用PORTMON捕获数据时,我看到了像IRP_MJ_WRITE和IOCTL_SERIAL_SET_RTS这样的请求)。
但是,该设备使用串行到立体声插头连接器连接到计算机上的串行端口,类似于this。我认为这意味着设备本身只能使用两个引脚发送信号。
我如何分析两台设备之间的原始通信,以尝试对协议进行反向工程?我使用的是Windows,但可以迁移到OS X或*unix。我知道在某些时候我将不得不写一些东西来处理设备如何通信的细节,但是你们推荐什么来收集信息呢?
发布于 2015-11-15 06:12:03
立体声插孔只是实现最小RS-232连接的一种廉价方式。这应该不会影响监控。
Portmon应该会显示调查协议所需的数据。IRP_MJ_WRITE请求包含发送到设备的数据,而IRP_MJ_READ请求包含设备发送的数据。
发布于 2015-11-23 06:25:03
如果您不能通过软件拦截手段做到这一点,一个简单的多通道逻辑分析器(例如FX2 USB设计之一)应该能够捕获传输和接收线路上的流量,然后允许您在空闲时对其进行软件解码,以查看传输、响应和两者之间的任何延迟的完整相互作用。
https://stackoverflow.com/questions/33711377
复制相似问题