代码之家  ›  专栏  ›  技术社区  ›  Joe Pitz

串行端口重定向或拆分[关闭]

  •  4
  • Joe Pitz  · 技术社区  · 16 年前

    我正在寻找一本书和或一个如何做串行端口重定向或端口拆分的代码示例。我编写了很多com端口应用程序,并希望编写一个监视器应用程序,以便监视应用程序和设备之间的串行端口。

    我知道在某些情况下,这必须在内核级别完成。(在USB情况下)

    我已经用编写了监视器应用程序system.IO.端口在C中。如果我必须调用C++ + C程序集,那就很好了。

    谢谢

    4 回复  |  直到 13 年前
        1
  •  3
  •   RBerteig Keith Adler    16 年前

    你会发现的 PortMon 作者markrussinovich对您的工作很有帮助,尽管它没有提供源代码。它将记录与端口相关的所有系统调用,并具有广泛的过滤功能,使日志保持在可管理的大小。

    编辑: PortMon的工作原理是在系统运行时向系统注入内核模式设备驱动程序。该驱动程序通过在堆栈中插入一个过滤器驱动程序来钩住它想要监视的端口。该过滤器驱动程序向应用程序报告通过它的所有irp。这不是一个容易实现的猛兽,而且在用户模式下也不可能实现。

    WindowsDDK确实有端口筛选器驱动程序的示例代码,但是要从示例转换到有用的东西,需要做大量的工作。

    FT2232H device from FTDI ,它有一个可用的 evaluation module . 加上两个RS232级别的转换器和一些D接口,你就有了一个USB上的串行窃听器,看起来像是两个Windows的COM端口。

    另一种现成的方法是,许多逻辑分析仪和混合信号示波器可以进行串行协议解码,通常作为可选组件。廉价USB+软件解决方案的一个来源是 Saelig . 我自己也从他们那里买了芯片和模块,但对他们销售的基于USB的逻辑分析仪没有任何直接的经验,尽管我认为我应该在我的包里放一台上网本。。。

        2
  •  0
  •   ChrisW    16 年前

    我写了一本,很多年前。DDK(设备驱动程序工具包)包含了并行端口驱动程序的过滤器驱动程序的示例源代码:我调整了这个示例来使用串行端口驱动程序,然后添加了监视和拆分等功能。

    这是串行端口, 美国宇航局。

    我还实现了另一个驱动程序,它是一个“虚拟”串行端口,也就是说,它实现了一个串行端口API,但随后将数据I/O重定向到其他地方。

    这是一个很长的工作(许多月)来实施。

        3
  •  0
  •   Oliver    16 年前

    一如既往,这取决于你要做什么。如果你需要弄清楚两个串行设备之间的线路是如何连接的,或者需要一些“好的”定时信息,那么最好的办法就是使用外部设备 break-out box 就像安东尼说过的。

    如果你只是需要某种监控你可以去 PortMon Serial Port Monitor .

    也许你写了两个应用程序,它们将通过串行连接进行通信。要在没有本地环回电缆的情况下在一台PC上完成此操作,您可以尝试 Com0Com

        4
  •  0
  •   RBerteig Keith Adler    16 年前

    购买 RS232 DB9 Serial Data Tap . 这是一个硬件设备,连接在两个串行端口之间,并被动地监听设备之间的“颤音”。我使用以下设备两年半了,它为我节省了大量的故障排除时间和精力。(我习惯于每天晚上把它带回家,以防止技术支持人员“借用”它。)制造这个设备很容易,但下面的数据抽头是灵活的。

    “点击串行数据流并透明地监视数据活动。输出可以输入监视器打印机或其他设备。双列直插式组件(DIP)允许编程来单独或同时监控主传输和接收线路。无需外部电源,易于安装,透明连接理想的RS232/串行软件开发辅助工具

    或者,制作或购买串行分接监视器电缆。见 NST documentation 一种可能的配置。

    我强烈建议您不要使用软件解决方案,因为监控软件可能会受到物理情况的影响。