常见串口与usb异同点

单工:只能从a到b,不能从b到a

半双工:同一时刻只能在一个方向上传输,使用同一组信号线进行发送和接收,需要在发送和接收之间切换(在硬件层面可能需要对io引脚的输入、输出模式之间进行切换),因此效率低。

全双工:同时在两个方向上传输,需要独立的发送和接收通道,效率高

usb2.0,两根数据线为D+和D-,通过两线电压差的差分信号进行通讯,数据在两个方向上传输,同一时刻只能接收或者发送,属于半双工。

usb3.0,全双工,有一组差分rx和一组差分tx,能同时发送和接收,且抗共模干扰。保留2.0引脚,因此可以兼容2.0

c口,有两组差分rx,和两组差分tx,因此速度比usb3.0快一倍,cc1和cc2引脚用来分辨正插和反插,协商供电协议,协商供电电压和电流。sbu1和sbu2为附加功能引脚,如dp视频传输。

在硬件差别之上,还有协议的区别,如同样是c口,雷电协议速度比usb4要快的多。协议层属于硬件和软件的交叉应用了,需要人为的对时钟、开始位、数据段、结束标志、校验位等进行定义。协议原理基本类似,但细节差距极大。

rs232:有rx和tx两根,有全双工和半双工两种模式,单端信号传输,逻辑“1”为-3V至-15V,逻辑“0”为+3V至+15V。

usb2.0,半双工,有D+和D-两根,差分信号,逻辑“1”:D+线的电压高于D-线的电压。逻辑“0”:D-线的电压高于D+线的电压。差分更能抵抗电磁干扰。因此在使用stm32的串口转usb时,当主机发送一段串口数据后,需要使用代码将串口转为接收模式。

模拟的虚拟usb原理,其实和软件spi与硬件spi一样,只不过usb的协议层更复杂,需要使用普通的io口的高低电平模拟出串口的协议。

普通io口和usart口在硬件上是有区别的,芯片内部集成了usart硬件,通过设置usart模块的寄存器,设置波特率、数据位、校验位、停止位等参数,该部分硬件独立于cpu工作,速度更快,比软件更方便。软件spi与硬件spi也是如此。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值