请教:cdc虚拟串口是不是使用usb协议,沒用串口协议
最近在做个小项目,用到ai8051u的两路串口与pc机通信,其中一路使用p30/p31走cdc,因为pcb布线方便,希望功能管脚切换后p36/p37的usart1为第二路。希望向各位请教,官方一直说cdc虚拟串口就是串口,但我的理解是当p30/p31做usb-cdc时,只是一个通过usb协议模拟出的串口功能,并占用串口1的物理脚位,而逻辑上串口1并没有被配置使用,可以通过切换到p36/p37实现usart1的功能。请帮忙确认。 关于“CDC虚拟串口是否使用USB协议,而非传统串口协议”的问题,以下是专业分析:
AI8051U芯片支持通过USB接口实现CDC(Communication Device Class)虚拟串口功能。该功能本质上是基于USB协议实现的通信方式,并非传统意义上的RS232/UART串口协议。因此,从技术层面来看,当P30/P31引脚用于USB-CDC时,其通信机制是基于USB协议栈实现的,而非传统的UART物理层协议。
在AI8051U中,USB-CDC功能通常占用的是USART1的物理引脚(P30/P31),但此时USART1并未被实际配置为UART模式,而是由USB控制器接管并模拟出一个虚拟串口。因此,逻辑上USART1在此时并未被使用,仅作为USB-CDC的物理引脚资源被占用。
因此,若希望将P36/P37作为USART1的第二路串口使用,理论上是可行的。只需在代码中对USART1进行重新配置,将其映射至P36/P37引脚,并关闭USB-CDC功能或确保其不占用USART1的物理资源即可。
需要注意的是,具体实现需参考AI8051U的官方文档及开发手册,确认引脚复用配置、USB驱动与串口驱动之间的优先级关系。建议在开发过程中通过调试工具验证各引脚功能是否正常切换,并确保系统在不同模式下的稳定性。
综上所述,CDC虚拟串口确实基于USB协议实现,而非传统串口协议。在特定配置下,可通过引脚切换实现USART1的独立使用。
[本文内容由国芯人工智能辅助生成,仅供参考] USB-CDC虚拟串口通信就是 USB直接通信,是用的 D-/D+
=== D-/P3.0,D+/P3.1 无法切换
USB-CDC虚拟串口通信 再转串口
===用户程序将USB-CDC虚拟串口收到的数据
再转到其他串口如串口1/2/3/4
其他串口可以内部切换到不同的脚位
USB转双串口,RMB1.1, 量产PCB/SCH开源,芯片出厂自带USB程序@Ai8H2K12U-45MHz-SOP16 - USB:USB-CDC虚拟串口/就是串口,一箭双雕之USB转双串口,[鼠标+键盘]的HID复合设备 国芯人工智能技术交流网站 - AI32位8051交流社区
神农鼎 发表于 2025-8-31 10:27
USB-CDC虚拟串口通信就是 USB直接通信,是用的 D-/D+
=== D-/P3.0,D+/P3.1 无法切换
不打算再添加一个usb转双串口芯片了,只想用ai8051u的p30/p31和p36/p37物理口,分别走cdc和usart协议,当然也可以其他usart物理口,只是p36/p37方便pcb引线。
需要确认的是usart切换,而不是d+/d-切换。 1,
将 UART1/UART2/UART3/UART4 收到的数据
通过 MCU,
USB-CDC送给电脑;
==============================
2,
将 MCU,
USB-CDC 从电脑收到的数据,
通过
UART1/UART2/UART3/UART4 发出去
============================
支持,不要再怀疑了,直接学习如下程序
USB拓展库及使用示例 | 本贴 咨询 USB,基本帮您把USB程序开发完成 - USB:USB-CDC虚拟串口/就是串口,一箭双雕之USB转双串口,[鼠标+键盘]的HID复合设备 国芯人工智能技术交流网站 - AI32位8051交流社区
UART1/UART2/UART3/UART4的管脚切换,就是内部有模拟开关支持切换
USB-CDC就是标准的 USB通信之一,不是 8051的串口1/串口2... 神农鼎 发表于 2025-8-31 10:54
UART1/UART2/UART3/UART4的管脚切换,就是内部有模拟开关支持切换
谢谢,这句话从原理上解释和确认了物理管脚和逻辑功能的对应关系。 可以P30、P31使用USB,同时P36、P37使用USART1 DebugLab 发表于 2025-9-1 00:24
可以P30、P31使用USB,同时P36、P37使用USART1
🙏
页:
[1]