[技巧] 使用虚拟串口来仿真测试串口通讯

好吧,现在许多软件仍然是通过串口通讯的方式来与底层的硬件通讯。不论是真串口,还是 USB->COM 出来的串口,总之是串口进行通讯。

我们做软件开发时,要与设备通讯,但是,如果硬件设备没有或者还在研发中怎么办?那就只能通过各种方式来模拟。

这里我知道的有两个选择:

1、使用虚拟机软件,无论是 VirtualBox 还是 VMWare workstation,都支持虚拟串口的,而且 VirtualBox 还支持将数据转发到 TCP 地址端口上。所以,你就可以结合 Sokit 来模拟收发数据。当然了,这种方式总体还是不错的,不过不知道为什么,新版的 VirtualBox 在 Win 7 下,我用 TCP 方式测试总是失败,所以最终我放弃了这种方式。而 NamePipe 方式,需要自己写一个对端的模拟应用,对于我这种有点小懒的人,实在不是什么太好的选择,剩下的方式都不能多步交互,所以俺这个方式就说到这儿,打住打住。

2、使用虚拟串口软件,我用的是 Virtual Serial Port+ComMonitor 的超强组合。

2.1、首先,使用 Virtual Serial Port 创建一对虚拟串口(我这里是COM2+COM3);

2.2、用ComMonitor自带的监视工具可以监视 COM2 或 COM3 以查看通讯内容;

2.3、设置应用程序使用 COM2 通讯,总增加通讯超时时间,毕竟你输入回应的数据包内容需要点时间,我这儿测试时用的是 15 秒;

2.4、设置 ComMonitor 自带的调试工具使用 COM3 通讯;

现在,按照方式2,应用程序发往 COM2 的数据会被 Virtual Serial Port 转发到 COM3,然后被 ComMonitor 自带的调试工具接收到,然后 ComMonitor 自带的调试工具可以通过写入数据到 COM3 回送给应用,然后应用程序接收到回应进行相应的处理。

好了,这里使用的工具软件就不提供了,大家请自己问度娘要吧。

分享到: