伪造RS232串行端口


82

我正在开发一个项目,该项目具有许多通过RS232串行端口连接到部署机器的硬件传感器。

但是...我在没有物理RS232串行端口的机器上进行开发,但是我想制作一些伪造的串行端口,我可以连接这些端口并从中输出数据,以伪造硬件传感器的输入。

有谁知道一种在Windows XP上创建伪串行端口并对其进行控制的方法吗?


2
您是否尝试过安装了串行端口的虚拟机?
Restuta

4
我还没试过 听起来它需要一个完整的答案,而不是一个评论:)
BefittingTheorem,2009年

1
我能够在没有问题的Windows 7 64位上使用com0com和Com Port串行仿真器,效果很好。
JWiley 2014年

对于那些谁在这里结束了,我已经写了com0com一个简短的指令,在这里
FOAD

Answers:


68

如果您正在为Windows开发,则com0com项目可能就是您想要的。

它提供了通过虚拟调制解调器连接链接的成对的虚拟COM端口。然后,您可以使用自己喜欢的终端应用程序或任何您喜欢的将数据发送到一个COM端口并从另一个COM端口接收数据的应用程序。

编辑:

正如Thomas所指出的,该项目缺少签名驱动程序,这在某些Windows版本(例如Windows 7 x64)上尤其成问题。

周围有几个非官方的com0com版本,它们确实包含签名的驱动程序。可以从此处下载一个最新版本(3.0.0.0)。


4
尽管com0com项目是一个出色的开源项目,但由于它应该安装没有数字签名的设备驱动程序,因此某些检查数字签名驱动程序的Windows系统将无法使用其虚拟串行端口。只想让人们知道。
泰成新社

5
@Thomas:在网上搜索发现周围存在一些非官方的驱动程序签名版本。可以从此处下载一个最新版本(3.0.0.0)。
Frank Bollack 2013年

非常感谢,您应该喝啤酒!
帕尔·阿莱2013年

实际如何完成?Windows的基础知识是什么?
Nacht

@Nacht即使有真正的串行端口“ connectet”,每个驱动程序也会进行一些抽象。这意味着,如果您编写驱动程序,您将注意到您不必与真实事物交流。比您可以根据需要使用迁移缓冲区。在这种虚拟情况下,您不是将数据流发送到真实对象,而是将数据发送到另一个“端口”。该端口与第一个端口是一对。整个过程看起来就像镜像数据流。我希望现在已经清楚了。
MrHIDEn'2

63

我知道这是旧的文章,但如果别人发生就这个问题,一个好的选择是虚拟串行端口仿真器(VSPE)从Eterlogic 它提供了一个API,用于创建内核模式虚拟COMPORT装置,即连接器,映射器,功分器等。
然而一些广告的能力是真的 没有能力 可言

编辑
一个更好的选择 Eltima。该产品已完全烘烤。良好的开发人员技术支持。该产品完成了它声称的全部工作。产品选项包括桌面应用程序以及带有API的软件开发套件。

这些产品都不是开源的,也不是免费的。但是,正如这里的其他帖子所指出的那样,还有其他选择。以下是各种串行实用程序的列表:

com0com (当前)
com0com-带签名驱动程序(旧版本)
com0com带有签名驱动程序的另一个地方 (皮特博客)
战术软件
白蚁
COM端口串行仿真器
Kermit(已淘汰,但仍可下载)
HWVSP3
HHD软件(免费版)


34

我在Windows 7 x64上使用com0com-带签名的驱动程序,将COM3和COM4一对模拟。

然后,我使用COM Dataport Emulator从COM4接收。

然后,我使用开发中的应用程序(c#)打开COM3并将数据发送到COM3。

通过COM3发送的数据由COM4接收,并由“ COM数据端口仿真器”显示,后者也可以发送回响应(不是自动的)。

因此,通过这2个出色的程序,我设法模拟了RS-232串行通信。

希望能帮助到你。

这两个程序都是免费的!


1
太棒了 这对我有所帮助,这是肯定的。您是否知道我可以使COM端口数据仿真器等待我的输入,然后将其发送回去的方法?
Bunggo '16

3

即使OP没有要求,也可以使用另一种方法:

存在USB到串行适配器。根据适配器的类型,您可能还需要一根nullmodem电缆。

如果您已安装有效的驱动程序,则它们在linux下非常容易使用,在Windows下也可以工作。

这样,您可以直接使用传感器,而不必尝试模拟数据。这样,您甚至可以免于构建贫血系统。(由于模拟数据输入未涵盖所有情况,因此导致系统脆弱。)

与真实的东西一起工作通常更好。


是否可以为软件USB到串行适配器命名?:)谢谢
alcor

1
screen /dev/ttyUSB0 9600minicom在需要用于此类硬件的软件时使用。
sjas 2016年

3

总是有硬件路线。购买两个USB到串行转换器,然后通过NULL调制解调器连接它们。

专业提示:1)Windows可能会在每次设备睡眠或重新启动后为适配器分配新的COM端口。2)Prolific和FTDI是USB到串行芯片的市场领导者。两家公司都在与假货作斗争,并且可能会在将来的官方Windows驱动程序中受阻。但是,Linux驱动程序可与克隆正常工作。


3
请注意,USB串行适配器与传统UART具有不同的定时/捆绑行为。但是,如果有可能使用一个进行测试,这并不是一个坏主意。当它们开始流行时,设计或执行不当的协议有时会与之一起使用时崩溃或变慢。如今,不用开发中的USB连接UART进行尝试的可能性就很小了。实际上,现在不太可能在PC上的传统UART上进行尝试。
克里斯·斯特拉顿

1

我使用eltima make虚拟串行端口进行我的Modbus应用程序调试工作。在不连接硬件的情况下检查串行端口程序在开发阶段确实是非常好的应用程序。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.