• CH34X系列与CH91XX系列等USB转串口方案选型对比


    提供USB高速/全速转串口系列芯片,可实现USB转1/2/4/8路串口,支持串口I/O独立供电,支持VCP/HID/CDC/AOA转串口,VCP串口支持硬件流控和高波特率大数据连续传输,部分型号支持VID/PID/String等内容配置,支持Windows/Linux/Android/macOS等操作系统。

    最新第3代USB转串口产品拥有如下优势:

    • 内部采用DMA收发,可实现6Mbps波特率连续稳定通讯;
    • 内部高度集成,晶振/USB终端电阻/EEPROM全内置;
    • 双电源设计,支持串口IO独立供电,可支持5V/3.3V/2.5V/1.8V等串口通讯;
    • 提供多种封装,小至3*3mm;
    • 支持VID/PID/String等内容配置;
    • 内置Unique ID,可实现系统串口号固定及产品加密等;

    具体选型时建议根据串口数量、芯片驱动类型、串口波特率支持、封装类型、串口IO电压工作范围、MODEM信号支持、RS485控制信号支持、GPIO信号支持等条件灵活选用。

    芯片提供的串口默认为TTL电平,通过电平转换芯片可以灵活转换为RS-232、RS-422、RS-485串口等。应用框图:

    方案选型

    本方案所描述内容均为单芯片方案,各型号及主要区别如下:

    驱动类型:CDC/HID为系统类驱动;VCP为厂商提供串口驱动,功能多,效率高,建议优先选用。

    USB配置:通过专用配置工具可以设置芯片的VID,PID,产品描述字符串等。
    外置:通过外接串行EEPROM配置
    内置:内置EEPROM
    批量定制:支持批量化芯片与串口驱动定制
    峰值最大波特率:芯片支持的最高波特率。
    流控连续波特率:大数据量连续通讯支持的最高波特率。
    MODEM信号:可兼做普通GPIO口使用,其中RTS/DTR用作普通输出,CTS/DSR/DCD/RI用作普通输入。如:MCU程序下载场景,可使用RTS/DTR其中一路信号控制复位,另一路信号用于控制MCU进入BOOT下载模式。
    除MODEM信号,部分型号提供GPIO、I2C、BLE蓝牙等其他通讯接口。
    CH9143实现USB转串口功能的同时增加了BLE无线传输通道,实现BLE/串口/USB三向透传。

    全方位提供多种USB串口驱动程序供选择,支持Windows/Linux/Android/macOS等操作系统。各类型详细特点如下:
    1、 VCP:使用厂商提供的USB虚拟串口驱动程序,工作时在Windows系统的“端口(COM和LPT)”一栏下会生成COM口,Linux/Android/macOS系统在/dev目录下会生成TTY设备节点。
    方案应用特点:

    • 支持高速率通讯及硬件流控。
    • 功能齐全,支持GPIO等扩展功能。
    • 仿真标准串口,用于升级原串口外围设备,或者通过USB增加额外串口。
    • 计算机端串口应用程序完全兼容,无需修改。
    • 驱动只需安装一次也可以联网自动安装。

    2、CDC: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串口驱动不支持软件流控。

    方案应用特点:

    • 支持多功能高速率的 VCP 厂商驱动程序或者部分操作系统内置的CDC类驱动程序。
    • 计算机端串口应用程序大部分功能可兼容。

    3、 HID:使用操作系统自带的USB HID设备驱动,USB HID串口在系统上识别为标准HID设备。
    方案应用特点:

    • 支持免安装的操作系统内置HID类驱动程序。
    • 系统下不生成串口节点,无需手动选择,同时也实现了一定程度的信息隐藏。
    • 数据收发使用USB中断传输,支持最高波特率为:115200bps。
    • 需使用系统HID原生API或者WCH提供的动态库操作串口。

    4、AOA:遵循安卓AOA协议,仅用于安卓系统,使用系统自带的AOA配件驱动,AOA串口在系统上识别为标准AOA配件。
    方案应用特点:

    • 使用安卓标准Accessory配件库,实现免驱应用。
    • 实现安卓设备边充电边通讯。
    • 对比安卓OTG扩展串口方式,通用性更强。
  • 相关阅读:
    uci机器学习数据库简介
    c++征途 --- 类和对象 --- 多态
    php 二分查询算法实现
    记录一次Java调试cannot find local variable ‘envelope‘错误
    小学生python游戏编程arcade----敌人自动移向角色并开火类的实现
    2022-04-23 团队分享会议
    浅谈Python异常处理
    2分钟快速安装 `nginx` 和配置 `keepalived`
    linux centos7 环境下 no such file or directory
    关于ASO优化的分步入门指南1
  • 原文地址:https://blog.csdn.net/Cheryl2020sale/article/details/126657694