虚拟串口

软件下载
软件下载
【虚拟串口软件】点击下载
注意: 需要下载 全功能 版本才支持虚拟串口功能
虚拟串口与远程串口
虚拟串口工具可以把蓝牙、网络或本机串口转换为 Windows 应用程序可以直接使用的串口。用户原有的串口软件通常不需要修改,只需要在软件中选择管理器创建或连接的 COM 端口即可。
工具支持同时配置多个通道。每个通道独立运行,通道之间可以使用不同的工作模式、串口参数和网络参数。
这是什么工具?
很多电脑软件只能选择 COM1、COM2 这类串口,不能直接选择蓝牙设备、网络地址或 MQTT 服务器。虚拟串口工具会在电脑中“增加一个看起来像真实串口的 COM 端口”,再把这个端口收到的数据转发到蓝牙、网络或另一个串口。
对普通串口软件来说,它只需要打开一个 COM 端口即可,不需要知道数据实际经过了蓝牙、网线还是 MQTT。可以把它理解成一个“串口转接器”,只是这个转接器由软件完成。
功能特点:
主要功能
- 创建点对点虚拟串口,用于两个串口应用程序之间互相通信。
- 将一个物理串口共享给多个虚拟串口。
- 将 BLE 蓝牙设备转换为虚拟串口。
- 使用 TCP、UDP 或 MQTT 将数据连接到网络。
- 直接打开本机已有的物理串口或虚拟串口,通过 MQTT、TCP 或 UDP 进行串口桥接。
- 查看通道连接状态、运行状态和数据收发统计。
- 支持服务开机启动、通道开机自动运行、断线自动重连和实时日志监视。
系统要求
- 支持 Windows 7、Windows 10 和 Windows 11。
- 点对点串口、物理串口共享、TCP、UDP、MQTT 等功能可以在低版本 Windows 上使用。
- BLE 蓝牙模式需要 Windows 10 1703 或更高版本,并且电脑需要有可用的蓝牙 LE 适配器。
- 使用虚拟串口前,需要先安装虚拟串口服务和虚拟串口驱动,并完成产品激活。
先记住这三点
- 虚拟串口号是给电脑软件选择的端口,例如
COM10。 - 物理串口号是电脑实际存在的端口,例如 USB 转串口设备产生的
COM3。 - 通道就是一组完整的连接设置,包括端口、工作模式和对应的参数。
我应该选择哪种模式?
可以先根据实际用途选择,不需要先理解所有网络术语:
| 我的需求 | 建议模式 | 结果 |
|---|---|---|
| 让两个本地串口软件互相传数据 | 点对点串口 | 创建两个虚拟 COM 口,两个软件分别打开一个端口 |
| 让多个软件共同使用一个真实串口设备 | 物理串口共享 | 打开一个真实 COM 口,同时创建多个虚拟 COM 口 |
| 电脑通过蓝牙连接一个 BLE 串口模块 | BLE 蓝牙 | 创建一个虚拟 COM 口,软件通过它访问蓝牙设备 |
| 让远程电脑通过网络访问本机串口 | TCP 服务端或 TCP 服务端串口桥接 | 本机等待远程电脑连接 |
| 本机主动连接另一台电脑的 TCP 服务 | TCP 客户端或 TCP 客户端串口桥接 | 本机主动连接远程地址 |
| 使用简单、速度快但不保证到达的网络传输 | UDP 或 UDP 直连串口桥接 | 适合局域网实时数据,应用程序需要能够接受偶尔丢包 |
| 通过 MQTT 服务器连接两台电脑或多个地点 | MQTT 或 MQTT 直连串口桥接 | 两端使用相同 Broker 和对应主题传输数据 |
带“直连串口桥接”的模式不会新建虚拟串口,而是直接打开本机已经存在的物理串口或虚拟串口。没有“直连”三个字的网络模式,则会先创建一个虚拟串口供本机软件使用。
还可以按照下面的流程快速判断:
如果需要给普通串口软件提供一个新的 COM 口,请选择 BLE、点对点、物理串口共享、TCP、UDP 或 MQTT;如果要直接使用电脑已有的串口,请选择名称中带“直连串口桥接”的模式。
首次使用
配置前准备
开始配置前,建议先准备好以下信息:
- 要给本地软件使用的 COM 端口号,例如
COM10。 - 如果连接真实设备,确认设备使用的物理串口号,例如
COM3。 - 如果连接网络,准备好对方电脑的 IP 地址、端口号,或 MQTT Broker 地址、账号和密码。
- 如果连接 BLE 设备,让设备保持通电并处于可以被发现、可以连接的状态。
端口号不能重复使用。不要把正在被其他软件占用的 COM 端口配置给新的通道。
从安装到开始通信
下面是第一次使用时的完整流程。每一步完成后再进行下一步即可:
已经激活过的电脑会自动跳过激活步骤。如果创建通道后暂时显示“连接中”,通常表示服务正在创建端口或等待设备上线,请先等待状态刷新,不要连续重复点击“新建”。
1. 安装服务
- 打开虚拟串口管理工具。
- 点击“安装服务”。
- 工具会检查当前目录中的服务包和虚拟串口驱动文件。
- 如果提示“虚拟串口驱动服务包缺失”,请将完整服务包解压到管理工具所在目录后重新安装。
- 安装成功后,可以在服务状态提示中查看服务是否运行以及安装目录。
覆盖安装或更新服务时,工具会先停止已安装的服务,再进行更新。卸载服务时请选择“完整卸载”,以便同时清理服务文件和相关运行内容。
2. 激活产品
服务安装成功但产品尚未激活时,管理器会显示“激活功能”按钮。点击后输入购买产品的 SN,按界面提示完成激活。激活成功后,所有工作模式和虚拟串口操作才可以正常使用。
3. 创建通道
- 确认服务正在运行并且管理器显示服务已连接。
- 点击“新建虚拟串口”。
- 输入便于记忆的通道名称。
- 选择工作模式,填写该模式对应的参数。
- 选择“启用当前通道”以及是否“允许开机自动创建”。
- 点击“确定”保存。
保存后服务会自动创建或打开对应的串口。创建过程可能需要几秒钟,请等待状态栏提示完成后再使用串口。
通道列表
管理器主窗口使用表格显示已保存的通道,主要列包括:
| 列 | 说明 |
|---|---|
| 通道名称 | 用户自定义的记忆名称。 |
| 已启用 | 是否允许该通道运行。 |
| 开机运行 | 系统启动后是否自动运行该通道。 |
| 虚拟串口 | 通道创建或使用的 COM 端口;直连串口桥接模式显示本地串口。 |
| 连接状态 | 当前连接、断开、连接中或异常状态。 |
| 工作模式 | 当前通道使用的蓝牙、串口、TCP、UDP 或 MQTT 模式。 |
| 模式参数摘要 | 当前模式的主要地址、端口、设备或主题摘要。 |
| 收发统计 | 当前通道累计发送和接收的数据量。 |
通道名称是给用户看的名称,不要求用户理解系统内部编号。双击通道行或点击“编辑”可以修改配置;修改成功后服务会自动按新配置重新运行。
工作模式
数据是怎样传输的?
无论选择哪一种模式,普通串口软件看到的都是一个 COM 端口。服务负责把数据从这个端口转发到实际的设备或网络:
图中的实际目标由编辑窗口里选择的工作模式决定。BLE、网络和物理串口只是不同的转发方向,使用方法仍然是让串口软件打开正确的 COM 端口。数据接收时会沿着相反方向返回。
所有模式都有的基本选项
新建或编辑通道时,窗口上方的选项适用于当前通道。模式下方出现的专属参数会随工作模式切换。
| 选项 | 作用 | 使用建议 |
|---|---|---|
| 通道名称 | 给通道起一个便于自己识别的名称,会显示在管理器列表中。 | 可以按设备或用途命名,例如“仓库温湿度”或“COM3 远程桥接”。 |
| 创建虚拟串口号 | 指定服务要创建的 COM 口,范围为 COM1~COM256。 | 不能与电脑已有串口或其他通道重复。 |
| 连接本地串口号 | 仅在直连串口桥接模式显示,指定要直接打开的现有 COM 口。 | 这个串口必须已经存在,可以是物理串口,也可以是其他通道创建的虚拟串口。 |
| 工作模式 | 决定串口数据要转发到蓝牙、网络还是另一个串口。 | 不确定时可参考前面的“我应该选择哪种模式”。 |
| 启用当前通道 | 允许服务运行该通道。关闭后只保存配置,不创建或打开串口。 | 暂时不用某个通道时可以关闭,不必删除配置。 |
| 允许开机自动创建 | 服务随系统启动后,自动运行这个通道。 | 需要无人值守运行时开启。 |
| 严格模拟虚拟串口波特率 | 按串口软件设置的波特率模拟数据发送耗时。 | 默认关闭。只有被测试的软件或设备依赖真实串口传输时间时才建议开启;开启后速度会有意降低。直连串口桥接不显示此选项。 |
BLE 蓝牙
BLE 模式会创建一个虚拟串口,并将串口数据透传到 BLE 设备。
简单来说:电脑上的串口软件打开虚拟 COM 口,数据会通过电脑蓝牙发送给 BLE 模块;BLE 模块收到的数据也会回到这个虚拟 COM 口。BLE 设备必须支持串口透传服务,普通蓝牙耳机、键盘等设备不能用于此模式。
数据可以双向传输:串口软件发出的数据会到达 BLE 设备,BLE 设备返回的数据也会回到串口软件。
使用方法:
- 在工作模式中选择“BLE 蓝牙”。
- 点击“扫描 BLE 蓝牙”。扫描只会在用户手动点击时开始,不会长期后台扫描。
- 在设备列表中选择蓝牙名称和地址。
- 设置虚拟串口号并保存。
可配置参数:
| 参数 | 支持值或默认值 | 说明 |
|---|---|---|
| 创建虚拟串口号 | COM1~COM256 | 串口软件最终打开的端口,例如 COM10。 |
| 扫描 BLE 蓝牙 | 手动点击扫描 | 扫描附近可以发现的 BLE 设备。程序不会因为打开配置窗口就长期扫描。 |
| 蓝牙名称、蓝牙地址 | 从扫描列表选择 | 用于确定要连接的设备。相同名称的设备应通过地址区分。 |
| 写入模式 | 自动选择(默认)、带响应写入、无响应写入 | “带响应”会等待设备确认,可靠性较高但较慢;“无响应”速度较快,但设备必须支持且不逐包确认;不确定时选择“自动选择”。 |
| 单包发送后等待 | 0~1000 ms,默认 10 ms | 每一个 BLE 小包发送完成后,等待多久再发下一包。设备处理较慢或连续大包不稳定时可适当增加。 |
| MTU 单包大小 | 留空自动,手动范围 1~512 字节 | 限制每个 BLE 小包的最大数据长度。通常留空,让服务根据实际连接协商结果自动分包。 |
| 蓝牙状态变化时通知串口 | 默认关闭 | 开启后,连接或断开时向虚拟串口发送 connected 或 Disconnect;串口软件刚打开端口时也会收到一次当前状态。 |
| 严格模拟虚拟串口波特率 | 默认关闭 | 按虚拟串口波特率模拟发送耗时。普通透传通常不需要开启。 |
一般情况下建议保留“写入模式:自动选择”和“MTU 单包大小:留空自动”。只有设备说明书明确要求固定写入方式或固定分包大小时,才需要手动修改这两项。
BLE 模式的 MTU 和连接状态会显示在通道状态或参数摘要中。蓝牙设备连接成功后,管理器会自动停止本次扫描;只有连接失败或通道需要重新连接时才会再次尝试。
点对点串口
该模式创建两个互相连接的虚拟串口。写入其中一个串口的数据会从另一个串口读出,适合测试串口软件或在两个本地串口应用之间转发数据。
例如创建 COM10 和 COM11 后,程序 A 打开 COM10,程序 B 打开 COM11,A 发出的数据会被 B 收到,B 发出的数据也会被 A 收到。这个模式不需要蓝牙、网线或外部设备。
上图显示的是 A 到 B 的方向,B 到 A 的数据会按原路返回。
可配置参数:
| 参数 | 支持值或默认值 | 说明 |
|---|---|---|
| 创建虚拟串口号 | 例如 COM10 | 点对点串口中的第一个端口。 |
| 对端虚拟串口号 | 例如 COM11 | 点对点串口中的第二个端口。两个端口写入和读取方向相反。 |
| 严格模拟虚拟串口波特率 | 默认关闭 | 开启后,两个虚拟串口会按应用程序设置的波特率模拟传输时间。 |
两个 COM 端口不能与其他通道重复使用。
物理串口共享
该模式打开一个真实物理串口,并创建多个虚拟串口。多个虚拟串口可以共同访问同一个物理串口,适合让多个本地程序共享一个串口设备。
例如电脑上的 USB 转串口是 COM3,可以创建 COM11、COM12 两个虚拟串口。两个应用程序分别打开 COM11 和 COM12,数据都会转发到 COM3。这是“共享”而不是“复制”:外部设备仍然只有一个,多个程序发出的数据需要由用户确认不会互相干扰。
多个程序分别打开自己的虚拟串口。服务会把这些虚拟串口的数据汇集到同一个物理串口,设备返回的数据则会发送给虚拟串口。
可配置参数:
| 参数 | 支持值或默认值 | 说明 |
|---|---|---|
| 创建虚拟串口号 | 例如 COM10 | 共享通道的主虚拟串口。 |
| 物理串口号 | 例如 COM3 | 电脑上连接真实设备的串口。该串口不能同时被其他软件直接占用。 |
| 虚拟串口号列表 | 例如 COM11,COM12 | 需要额外创建的虚拟串口,多个端口用英文逗号分隔。 |
| 波特率 | 默认 9600,支持常用值,也可输入 50~4000000 | 必须与物理设备一致。 |
| 数据位 | 5、6、7、8,默认 8 | 必须与物理设备一致。 |
| 校验位 | 无、奇、偶、标记、空格校验,默认无校验 | 界面中的 None/Odd/Even/Mark/Space 分别对应这些校验方式。 |
| 停止位 | 1、1.5、2,默认 1 | 界面中的 One/OnePointFive/Two 分别对应这些停止位。 |
| 自动同步虚拟串口参数到物理串口 | 默认关闭 | 开启后,某个虚拟串口改变参数时,物理串口会跟随最后一次发生的参数变更。多个程序设置不一致时,以最后一次变更为准。 |
| 严格模拟虚拟串口波特率 | 默认关闭 | 控制虚拟串口侧是否模拟真实波特率产生的传输时间。 |
删除或修改端口前,请先关闭正在使用这些串口的应用程序。
TCP 服务端
该模式创建一个虚拟串口,并在本机监听 TCP 端口。远程 TCP 客户端连接后,网络数据与虚拟串口数据双向转发。
可以把 TCP 服务端理解为“等待别人来连接”。本机电脑上运行的串口软件打开虚拟 COM 口,另一台电脑通过本机 IP 地址和端口连接即可。
可配置参数:
| 参数 | 支持值或默认值 | 说明 |
|---|---|---|
| 创建虚拟串口号 | 例如 COM10 | 本机串口软件使用的端口。 |
| 本地地址 | 默认 0.0.0.0 | 0.0.0.0 表示监听电脑上的所有网卡;也可以填写指定网卡的本机 IP。 |
| 本地端口 | 1~65535,默认 9000 | 远程客户端连接时填写的 TCP 端口。不要与其他网络程序使用的端口冲突。 |
| 允许多个客户端连接 | 默认关闭 | 关闭时只允许一个客户端;开启时可同时接收多个客户端的数据,并把串口数据发送给已连接客户端。 |
| 最大客户端数 | 1~64,默认 8 | 只有开启多客户端后才生效。根据实际数量设置即可。 |
| 低延迟发送模式 | 默认开启 | 减少小数据包等待时间,适合串口实时通信。通常保持开启。 |
| 严格模拟虚拟串口波特率 | 默认关闭 | 需要模拟真实串口速度时再开启。 |
TCP 客户端
该模式创建一个虚拟串口,主动连接远程 TCP 服务端。
可以把 TCP 客户端理解为“主动去连接别人”。请在远端电脑先配置 TCP 服务端,再在本机填写远端电脑的 IP 地址和端口。
可配置参数:
| 参数 | 支持值或默认值 | 说明 |
|---|---|---|
| 创建虚拟串口号 | 例如 COM10 | 本机串口软件使用的端口。 |
| 远端主机地址 | 默认 127.0.0.1 | 填写 TCP 服务端的 IP 地址或域名。127.0.0.1 只代表本机。 |
| 远端端口 | 1~65535,默认 9000 | 必须与服务端监听端口一致。 |
| 本地绑定地址 | 默认留空 | 一般留空由系统选择网卡;多网卡电脑需要指定出口时再填写本机 IP。 |
| 本地端口 | 0~65535,默认 0 | 0 表示由系统自动分配,通常不需要修改。 |
| 低延迟发送模式 | 默认开启 | 减少小数据包等待时间,串口透传通常保持开启。 |
| 开启断线自动重连 | 默认开启 | 网络中断或服务端重启后自动尝试恢复连接。 |
| 重连间隔 | 250~60000 ms,默认 2000 ms | 每次重连失败后等待多久再次尝试。局域网通常保持默认。 |
| 连接超时 | 500~120000 ms,默认 10000 ms | 单次连接最多等待多久。公网或网络较慢时可以适当增加。 |
| 严格模拟虚拟串口波特率 | 默认关闭 | 需要模拟真实串口速度时再开启。 |
UDP
该模式创建一个虚拟串口,并通过 UDP 数据报进行双向收发。UDP 不保证数据一定到达,适合对实时性要求较高、能够在应用层处理丢包或重复包的场景。
UDP 不需要先建立持续连接,发送速度通常较快,但网络拥堵、电脑休眠或 Wi-Fi 信号较差时,数据可能丢失或重复。需要每一条数据都可靠到达时,优先选择 TCP 或 MQTT。
可配置参数:
| 参数 | 支持值或默认值 | 说明 |
|---|---|---|
| 创建虚拟串口号 | 例如 COM10 | 本机串口软件使用的端口。 |
| 本地地址 | 默认 0.0.0.0 | 表示 UDP 在哪块网卡上接收数据。一般使用 0.0.0.0。 |
| 本地端口 | 1~65535,默认 9000 | 本机接收 UDP 数据的端口。 |
| 远端数据收发策略 | 固定远端、首个发送方锁定、跟随最后发送方 | 决定服务把串口数据发给哪一台远端设备,具体区别见下表。 |
| 远端主机、远端端口 | 默认 127.0.0.1:9000 | 固定远端模式必须填写;另外两种模式会根据收到的数据自动识别远端。 |
| 允许广播收发数据 | 默认关闭 | 需要向局域网广播地址发送数据时开启;普通一对一通信不需要。 |
| 严格模拟虚拟串口波特率 | 默认关闭 | 需要模拟真实串口速度时再开启。 |
| UDP 远端策略 | 工作方式 | 适用情况 |
|---|---|---|
| 固定远端 | 只接收指定远端的数据,并始终向指定远端发送。 | 双方地址和端口固定的一对一通信,最容易理解。 |
| 首个发送方锁定 | 以第一个发来数据的远端作为通信对象,之后忽略其他远端。 | 远端地址不确定,但一次只允许一个设备通信。重新识别通常需要重启通道。 |
| 跟随最后发送方 | 每次收到新远端的数据后,把后续串口数据发给最后一个发送方。 | 多个设备轮流访问,但要注意远端切换可能导致数据发给后来者。 |
MQTT
该模式创建一个虚拟串口,通过 MQTT Broker 进行数据收发。
MQTT Broker 可以理解为“网络上的消息中转站”。两台电脑不需要直接互相访问,只要都能连接同一个 Broker,并使用一组对应的发布主题和订阅主题,就可以互相传输串口数据。Broker 地址、主题和账号必须填写正确。
可配置参数:
| 参数 | 支持值或默认值 | 说明 |
|---|---|---|
| 创建虚拟串口号 | 例如 COM10 | 本机串口软件使用的端口。 |
| Broker | 默认 tcp://127.0.0.1:1883 | MQTT 服务器地址,例如 tcp://192.168.1.20:1883。127.0.0.1 只表示本机。 |
| ClientId | 自动生成 | Broker 用它区分客户端。同一个 Broker 上同时在线的每个通道应使用不同的 ClientId。 |
| 用户名、密码 | 默认留空 | Broker 要求身份验证时填写;不要求时留空。 |
| 发布 Topic | 自动生成 | 串口发出的数据会发布到这个主题。 |
| 订阅 Topic | 自动生成 | 从这个主题收到的消息会写回虚拟串口。两台电脑互通时,两端的发布和订阅主题应交叉对应。 |
| MQTT 版本 | MQTT 3.1、MQTT 3.1.1(默认) | 应与 Broker 支持的版本一致。一般选择 3.1.1。 |
| QoS | 0、1、2,默认 0 | 0 延迟最低但不重发;1 至少送达一次,可能重复;2 保证只送达一次但开销最大。串口实时数据通常先使用 0。 |
| 启用 TLS | 默认关闭 | 开启后使用加密连接,并且必须选择 Broker 证书。 |
| 证书路径 | 启用 TLS 后必填 | 选择与 Broker 配套且仍在有效期内的证书文件,并确保电脑日期和时间正确。 |
| CleanSession | 默认开启 | 每次连接使用干净会话,不保留上次断线期间的订阅状态。普通实时串口透传建议保持开启。 |
| 开启断线自动重连 | 默认开启 | Broker 重启或网络恢复后自动重新连接和订阅。 |
| KeepAlive | 10~3600 s,默认 60 s | 用于确认连接仍然有效。值太小会增加网络开销,一般保持默认。 |
| 超时 | 1000~120000 ms,默认 15000 ms | 单次连接和通信操作允许等待的时间。公网较慢时可适当增加。 |
| 重连间隔 | 500~60000 ms,默认 3000 ms | 连接失败后等待多久再次尝试。 |
启用 TLS 时,请选择正确的 Broker 证书,并确认系统时间和证书有效期正确。
直连串口桥接模式
以下模式不创建新的虚拟串口,而是打开本机已有的物理串口或虚拟串口,通过网络进行桥接:
- MQTT 直连串口桥接
- TCP 服务端串口桥接
- TCP 客户端串口桥接
- UDP 直连串口桥接
本地串口可以是物理串口,也可以是其他通道创建的虚拟串口。四种桥接模式都有以下本地串口参数:
| 本地串口参数 | 支持值或默认值 | 说明 |
|---|---|---|
| 连接本地串口号 | COM1~COM256 | 要直接打开的现有串口。保存前应确认端口已经存在,并且没有被其他程序独占。 |
| 波特率 | 默认 9600,可输入 50~4000000 | 与串口设备要求一致。连接其他虚拟串口时,一般与对端软件使用相同设置。 |
| 数据位 | 5、6、7、8,默认 8 | 与设备参数一致。 |
| 校验位 | None/Odd/Even/Mark/Space,默认 None | 分别表示无、奇、偶、标记和空格校验。 |
| 停止位 | One/OnePointFive/Two,默认 One | 分别表示 1、1.5 和 2 个停止位。 |
| 启用 DTR | 默认关闭 | 某些串口设备用 DTR 判断主机是否就绪;设备说明书有要求时才开启。 |
| 启用 RTS | 默认关闭 | 某些设备或转换器会使用 RTS 控制线;设备说明书有要求时才开启。 |
| 写入超时 | 100~120000 ms,默认 5000 ms | 服务向本地串口写数据时允许等待的最长时间。通常保持默认。 |
MQTT 直连串口桥接
直接打开本地串口,通过 MQTT Broker 收发数据。除上表中的本地串口参数外,还支持 Broker、ClientId、用户名、密码、发布主题、订阅主题、MQTT 版本、QoS、TLS 证书、CleanSession、断线自动重连、KeepAlive、连接超时和重连间隔。这些选项的含义和取值与前面的“MQTT”模式相同。
TCP 服务端串口桥接
直接打开本地串口,并等待远程 TCP 客户端连接。网络参数包括:
| 参数 | 支持值或默认值 | 说明 |
|---|---|---|
| 本地地址 | 默认 0.0.0.0 | 监听所有网卡;也可以指定某块网卡的本机 IP。 |
| 本地端口 | 1~65535,默认 9000 | 远程客户端连接的端口。 |
| 允许多个客户端连接 | 默认关闭 | 开启后允许多个客户端同时访问本地串口。 |
| 最大客户端数 | 1~64,默认 8 | 开启多客户端时生效。 |
| 低延迟发送模式 | 默认开启 | 减少小数据包等待时间,通常保持开启。 |
TCP 客户端串口桥接
直接打开本地串口,并主动连接远程 TCP 服务端。网络参数包括远端主机、远端端口、本地绑定地址、本地端口、低延迟发送、断线自动重连、重连间隔和连接超时,含义和取值范围与前面的“TCP 客户端”模式相同。
UDP 直连串口桥接
直接打开本地串口,并使用 UDP 收发数据。网络参数包括本地地址、本地端口、远端数据收发策略、远端主机、远端端口和允许广播,含义与前面的“UDP”模式相同。
例如先创建一个点对点串口 COM10/COM11,再创建 MQTT 直连串口桥接并填写本地串口 COM10,就可以把打开 COM10 的程序接入 MQTT。这样可以把多个通道组合起来,组成“虚拟串口 → MQTT → 另一台电脑虚拟串口”的数据链路。
下面是一种常见的远程串口用法。电脑 A 上的串口软件,可以通过网络访问电脑 B 上连接的真实串口设备:
两端使用 TCP 时,一端选择服务端、另一端选择客户端;使用 MQTT 时,两端连接同一个 Broker,并让两端的发布主题和订阅主题互相对应;使用 UDP 时,两端填写彼此的地址和端口。
TCP 客户端、MQTT 及相应的串口桥接模式支持断线自动重连;TCP 服务端和 UDP 的连接策略由客户端或对端数据决定。
串口参数说明
涉及串口的工作模式可以配置以下参数:
- 波特率:常用值包括 1200、2400、4800、9600、19200、38400、57600、115200、230400、460800 等。
- 数据位:5、6、7 或 8。
- 校验位:无校验、奇校验、偶校验、标记校验或空格校验。
- 停止位:1、1.5 或 2。
- DTR、RTS:部分直连串口桥接模式提供硬件控制线设置。
- 写入超时:本地串口写入数据允许等待的最长时间。
本地串口参数必须与实际设备或远程串口另一端保持一致,否则可能出现乱码、丢帧或无法通信。
用一个例子理解串口参数
如果设备说明书写着“9600 8N1”,它表示:
- 波特率:
9600 - 数据位:
8 N表示无校验- 停止位:
1
管理器中应选择波特率 9600、数据位 8、校验位“无校验”、停止位 1。两边只要有一项不一样,就可能出现乱码。
什么是 MTU 和分包?
BLE 一次能够发送的数据长度有限,较长的数据会被自动切成多个小包发送。MTU 可以简单理解为“单个 BLE 小包允许的最大数据长度”。例如应用程序发送 1220 字节,工具会根据当前连接的 MTU 自动分成多个数据包,接收端仍然可以按原顺序收到完整数据。
“单包发送后等待”是每个小包发送完成后,继续发送下一个小包前等待的时间。设备处理速度较慢时可以适当增加;追求速度时可以保持较小值。
网络参数怎么填写?
IP 地址
本地地址填写 0.0.0.0 时,表示监听电脑上的所有网络接口,最容易配置。远端主机地址要填写另一台电脑的局域网 IP,例如 192.168.1.20。
端口号
端口号是网络程序的“房间号”,通信两端必须使用相同的端口。一个端口同一时间通常只能被一个服务端通道监听;如果提示端口被占用,请更换端口或关闭占用该端口的软件。
TCP 和 UDP 怎么选?
- TCP 会检查数据是否正常到达,适合指令、配置和不能丢失的数据。
- UDP 发送更直接、延迟较低,但网络异常时可能丢失数据,适合实时性优先的场景。
MQTT 主题怎么理解?
发布主题是“发送数据的名称”,订阅主题是“接收数据的名称”。两端必须交叉对应:一端发布的主题,应当是另一端订阅的主题;两端不要同时填写完全相同的上下行方向,除非你明确需要双向转发。
服务和通道操作
- 启动服务、停止服务:控制后台服务运行状态。
- 重启虚拟串口:重新创建或重新打开当前选中的通道;未启用的通道不会被创建。
- 删除通道:删除配置并清理该通道创建的虚拟串口。若串口仍被其他程序打开,请先关闭占用程序。
- 修复虚拟串口驱动:重新安装或修复虚拟串口驱动运行库。
- 日志监视:实时查看通道的数据收发、连接变化、串口打开关闭和串口参数事件。
管理器在执行安装、卸载、创建、删除和重启操作时会显示进度提示。操作期间请不要重复点击相同按钮。
操作顺序建议
修改工作模式、修改 COM 端口或卸载驱动前,请先关闭使用这些串口的程序。程序仍然打开串口时,Windows 可能暂时不允许删除或重新创建端口。
状态和日志
通道状态可能显示为连接中、已连接、已断开、运行异常或已停止。状态摘要还可以查看当前连接设备或网络端点、BLE 协商 MTU(适用时)、发送和接收数据量,以及虚拟串口是否已创建或被应用程序打开。
打开日志监视后,可以选择以字符串、HEX 或字符串+HEX 的方式查看数据。日志文件保存位置和日志保留数量可以在管理器的日志设置中配置。关闭日志监视后,实时监视订阅会停止。
常见问题
安装时提示服务包缺失
请确认服务包文件放在管理工具所在目录。服务包可以是工具目录中的普通压缩包,也可以是管理器识别的 vcps.dat 文件。不要直接修改压缩包内部的目录结构;解压后应能看到服务和虚拟串口驱动相关文件。
管理器提示服务未连接
请确认服务已经安装并处于运行状态,再检查管理器是否具有访问服务的权限。若刚完成安装或启动,请等待服务状态刷新后再操作。
BLE 模式没有扫描到设备
确认系统版本满足要求、蓝牙适配器已启用,并确保目标设备处于可连接状态。BLE 扫描需要手动点击“扫描 BLE 蓝牙”触发。
虚拟串口创建失败
确认服务已经激活、虚拟串口驱动已经安装,且 COM 端口没有被其他通道或软件占用。修改或删除端口前,先关闭所有打开该串口的程序。
如果端口曾经由其他虚拟串口软件创建,管理器可能提示是否接管。确认没有其他程序正在使用该端口后,选择接管即可;如果不确定端口来源,请选择取消并先检查系统中的串口软件。
MQTT 无法连接
检查 Broker 地址、端口、用户名、密码、主题和 MQTT 版本;如果启用了 TLS,确认 Broker 证书路径正确且证书有效。
数据乱码或收发不完整
检查两端波特率、数据位、校验位和停止位是否一致。BLE 模式下可调整 MTU 单包大小和单包发送后的等待时间;UDP 模式下请注意 UDP 不提供可靠传输保证。
为什么列表状态会显示“连接中”
服务已经收到配置,正在创建虚拟串口、打开本地串口或连接网络设备。首次创建驱动端口可能需要几秒钟,请先等待状态刷新;如果长时间没有变化,再打开日志监视查看具体原因。
常用名词简单说明
| 名词 | 简单说明 |
|---|---|
| 虚拟串口 | 软件创建出来的 COM 端口,普通串口软件可以像使用真实串口一样使用。 |
| 物理串口 | 电脑真实存在的串口,常见于主板串口或 USB 转串口设备。 |
| BLE | 一种低功耗蓝牙通信方式,常用于蓝牙串口模块和传感器。 |
| Broker | MQTT 消息中转服务器,两台电脑通过它交换数据。 |
| Topic | MQTT 消息的名称,类似消息所在的频道。 |
| MTU | BLE 单个数据包允许的最大长度。 |
| QoS | MQTT 消息送达级别,数值越高确认越多,但通信开销也越大。 |
| DTR / RTS | 串口上的硬件控制信号,只有设备确实使用时才需要打开。 |
| 自动重连 | 网络或设备暂时断开后,服务自动再次尝试连接。 |
使用建议
- 每个通道使用独立的 COM 端口和网络监听端口。
- 通道名称使用易于识别的设备或用途名称,例如“仓库温湿度”或“COM3 蓝牙透传”。
- 不使用的通道请取消“已启用”,避免服务启动后创建不必要的端口。
- 只有需要开机自动运行的通道才勾选“开机运行”。
- 进行驱动修复、服务更新或完整卸载前,先关闭正在使用虚拟串口的应用程序。