[返回首页](../README.md) # USB 转 RS-485 转换器选型与识别 ## 概述 本方案使用 USB 转 RS-485 转换器把 Linux 主机连接到 RS-485 设备,再由串口服务器以 **RFC 2217** 模式提供远程访问。 RFC 2217 与普通的原始 TCP 串口桥接不同:兼容客户端可以远程修改串口的波特率、数据位、校验位、停止位和控制线。 硬件链路如下: ```text Linux 串口服务器 | v USB 转 RS-485 转换器 | v RS-485 设备 ``` 转换器在 Linux 中通常显示为 `/dev/ttyUSB0`、`/dev/ttyACM0`,也可能使用厂商驱动提供的名称,例如 `/dev/ttyCH343USB0`。 ## 转换器选型 产品图见 [`assets/converter.jpg`](../assets/converter.jpg),提供以下芯片方案: | 端口数 | FTDI 方案 | WCH 方案 | |---|---|---| | 2 | FT2232H | CH342F | | 4 | FT4232H | CH344Q | ### 推荐方案 如需尽量降低 Linux 部署难度,建议选择: - 四路 RS-485:**FT4232H 隔离型**; - 两路 RS-485:**FT2232H 隔离型**。 FTDI 的 `ftdi_sio` 驱动已获得广泛的 Linux 内核原生支持。产品图中标出的型号也是隔离型 FT4232H 四口版本。 WCH 型号通常成本更低,也可作为合理选择。但多口 CH342/CH344 板卡可能以 USB CDC ACM 设备运行,也可能依赖 WCH 多口驱动,具体取决于产品和固件;它们并不都会以相同方式映射到主线内核的 `ch341` 驱动。采用 WCH 前,应在目标 Linux 镜像上测试具体板卡,并确认: - 每个通道的设备枚举方式; - 断开并重新连接后的稳定性; - 重启后的设备映射稳定性。 ### 电气隔离 在以下场景中,强烈建议选择带电气隔离的型号: - RS-485 设备使用不同电源; - 线缆距离较长; - 设备之间可能存在地电位差。 实际部署中,电气隔离和浪涌保护的重要性可能高于 USB 桥接芯片的品牌。 ## 在 Linux 中识别转换器 连接转换器后,检查 USB 设备和内核日志: ```bash lsusb sudo dmesg --follow ``` 在另一个终端中查看稳定的串口设备链接: ```bash ls -l /dev/serial/by-id/ ls -l /dev/serial/by-path/ ``` 如需检查单个端口,请把以下命令中的 TTY 替换为目标主机上实际生成的设备: ```bash udevadm info --query=property --name=/dev/ttyUSB0 ``` 根据转换器及其驱动,还应检查 `/dev/ttyACM*` 或 `/dev/ttyCH*`。 ## 使用稳定设备路径 不要在长期配置中直接使用 `/dev/ttyUSB0` 等动态名称。系统重启或连接其他 USB 串口设备后,其编号可能发生变化。 应按实际情况选择: - `/dev/serial/by-id/...`:每个通道都有唯一且可靠的标识时使用; - `/dev/serial/by-path/...`:需要让通道身份跟随物理 USB 插口和接口时使用。 对于多口转换器,部署前应执行一次断开和重新连接,逐一确认每条稳定路径对应的物理 RS-485 端子,并为各端口贴上标签。