发布时间:2025-12-09 16:16:17 浏览次数:4
USB转串口设备在主机上使用时需要配合USB设备驱动,根据使用场景的不同,又可以细分为不同类型的USB转串口应用,常见有:USB转VCP虚拟串口、USB转CDC虚拟串口、USB HID转串口、安卓AOA转串口等。其中以USB转VCP虚拟串口应用最为广泛。事实上,USB转串口硬件完整的工作流程需要主机端USB设备驱动的配合才可以完成。硬件完成的仅是USB数据和串口数据的处理,其使用方法是由串口驱动决定。关于各驱动类型介绍,说明如下:
使用厂商提供的USB虚拟串口驱动程序,工作时在Windows系统的“端口(COM和LPT)”一栏下会生成COM口,Linux/Android/macOS系统在/dev目录下会生成TTY设备节点。
应用特点:
Windows 10及以上的操作系统版本内置CDC串口驱动,以下的系统版本则需要安装驱动。因CDC类协议和类驱动的原因,CDC串口功能没有VCP完整,使用上也存在一些差异,具体见如下使用注意事项:
Windows系统CDC串口使用注意点
-> 在串口打开的情况下,不要插拔串口
在串口应用软件已打开串口状态下,拔插一次CDC串口设备的USB端,后续应用软件将无法再打开串口,此时必须重新插拔USB。(与系统自带CDC串口驱动PnP处理有关)
(注:在WIN 10之前系统版本中有此情况)
-> 串口RTS(Request To Send)信号不支持单独控制
因CDC-ACM协议的限制和系统集成的CDC类驱动的特性,RTS无法单独控制,只能在DTR有变化时,DTR和RTS状态才会更新至硬件。
-> 不支持串口CTS(Clear To Send)信号
CDC-ACM协议不支持CTS状态更新。
-> 不支持软件和硬件流控
CDC-ACM协议不支持串口硬件流控,系统CDC串口驱动不支持软件流控。
-> 使用串口高波特率时不建议持续传输数据,建议在发送间隔内增加延时
使用系统自带的CDC串口驱动,在串口高波特率(超过115200bps)连续通讯时,有可能会丢失数据。
-> 在系统睡眠休眠前建议关闭串口,否则有概率在唤醒后串口会停止接收
在串口应用软件已打开串口状态下,Windows主机进入睡眠或休眠状态,则有概率出现主机唤醒后串口无法再接收数据。此时必须重新开关串口或插拔USB。
(注:在WIN 10之前系统版本中有此情况)
Linux系统CDC串口使用注意点
-> 不支持串口CTS(Clear To Send)信号
CDC-ACM协议不支持CTS状态更新。
-> 不支持软件和硬件流控
CDC-ACM协议不支持串口硬件流控,系统CDC串口驱动不支持软件流控。
macOS系统CDC串口使用注意点
-> 不支持串口Modem输入信号
因CDC-ACM协议和系统自带驱动的原因,不支持CTS/DSR/RI/DCD状态更新。
->不支持软件和硬件流控
CDC-ACM协议不支持串口硬件流控,系统CDC串口驱动不支持软件流控。
使用操作系统自带的USB HID设备驱动,USB HID串口在系统上识别为标准HID设备。
应用特点:
遵循安卓AOA协议,仅用于安卓系统,使用系统自带的AOA配件驱动,AOA串口在系统上识别为标准AOA配件。
应用特点:
综上,在实际应用中,USB转VCP虚拟串口方式可提供的功能更丰富(因使用厂商提供提供,可支持和扩展其他功能),串口应用软件兼容性也更好。